sa2kit 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/UniversalFileService-CEZRJ87g.d.mts +727 -0
  2. package/dist/UniversalFileService-CEZRJ87g.d.ts +727 -0
  3. package/dist/api/index.d.mts +248 -0
  4. package/dist/api/index.d.ts +248 -0
  5. package/dist/api/index.js +294 -0
  6. package/dist/api/index.js.map +1 -0
  7. package/dist/api/index.mjs +290 -0
  8. package/dist/api/index.mjs.map +1 -0
  9. package/dist/auth/client/index.d.mts +52 -3
  10. package/dist/auth/client/index.d.ts +52 -3
  11. package/dist/auth/components/index.d.mts +149 -4
  12. package/dist/auth/components/index.d.ts +149 -4
  13. package/dist/auth/components/index.js +243 -9
  14. package/dist/auth/components/index.js.map +1 -1
  15. package/dist/auth/components/index.mjs +237 -4
  16. package/dist/auth/components/index.mjs.map +1 -1
  17. package/dist/auth/hooks/index.d.mts +31 -2
  18. package/dist/auth/hooks/index.d.ts +31 -2
  19. package/dist/auth/index.d.mts +5 -5
  20. package/dist/auth/index.d.ts +5 -5
  21. package/dist/auth/index.js +49 -17
  22. package/dist/auth/index.mjs +1 -1
  23. package/dist/auth/routes/index.d.mts +103 -5
  24. package/dist/auth/routes/index.d.ts +103 -5
  25. package/dist/auth/routes/index.js +37 -5
  26. package/dist/auth/routes/index.mjs +1 -1
  27. package/dist/chunk-42IJ7HEI.js +573 -0
  28. package/dist/chunk-42IJ7HEI.js.map +1 -0
  29. package/dist/chunk-7XLFSPDG.mjs +31 -0
  30. package/dist/chunk-7XLFSPDG.mjs.map +1 -0
  31. package/dist/chunk-GCVOKQZP.js +36 -0
  32. package/dist/chunk-GCVOKQZP.js.map +1 -0
  33. package/dist/chunk-IBLB7ARJ.mjs +560 -0
  34. package/dist/chunk-IBLB7ARJ.mjs.map +1 -0
  35. package/dist/{chunk-6FNUWAIV.js → chunk-LX4XX6W7.js} +54 -8
  36. package/dist/chunk-LX4XX6W7.js.map +1 -0
  37. package/dist/{chunk-HXFFYNIF.mjs → chunk-T5OZHYVM.mjs} +54 -8
  38. package/dist/chunk-T5OZHYVM.mjs.map +1 -0
  39. package/dist/config/server/index.d.mts +1533 -0
  40. package/dist/config/server/index.d.ts +1533 -0
  41. package/dist/config/server/index.js +1177 -0
  42. package/dist/config/server/index.js.map +1 -0
  43. package/dist/config/server/index.mjs +1138 -0
  44. package/dist/config/server/index.mjs.map +1 -0
  45. package/dist/i18n/index.d.mts +2 -1
  46. package/dist/i18n/index.d.ts +2 -1
  47. package/dist/i18n/index.js +125 -61
  48. package/dist/i18n/index.js.map +1 -1
  49. package/dist/i18n/index.mjs +126 -62
  50. package/dist/i18n/index.mjs.map +1 -1
  51. package/dist/index.js +6 -6
  52. package/dist/index.mjs +1 -1
  53. package/dist/mmd/index.d.mts +346 -0
  54. package/dist/mmd/index.d.ts +346 -0
  55. package/dist/mmd/index.js +1535 -0
  56. package/dist/mmd/index.js.map +1 -0
  57. package/dist/mmd/index.mjs +1503 -0
  58. package/dist/mmd/index.mjs.map +1 -0
  59. package/dist/storage/index.d.mts +1 -0
  60. package/dist/storage/index.d.ts +1 -0
  61. package/dist/storage/index.js +9 -9
  62. package/dist/storage/index.mjs +1 -1
  63. package/dist/{index-8VoHap_4.d.mts → types-CroexXnI.d.ts} +38 -44
  64. package/dist/{index-8VoHap_4.d.ts → types-DmsXCWvm.d.mts} +38 -44
  65. package/dist/{types-DAxQ1MeY.d.ts → types-Dt0oqeFM.d.mts} +1 -1
  66. package/dist/{types-DT8LVCvE.d.mts → types-zK6kDzDQ.d.ts} +1 -1
  67. package/dist/universalExport/index.js +17 -32
  68. package/dist/universalExport/index.js.map +1 -1
  69. package/dist/universalExport/index.mjs +2 -29
  70. package/dist/universalExport/index.mjs.map +1 -1
  71. package/dist/universalExport/server/index.d.mts +849 -8
  72. package/dist/universalExport/server/index.d.ts +849 -8
  73. package/dist/universalExport/server/index.js +1382 -2
  74. package/dist/universalExport/server/index.js.map +1 -1
  75. package/dist/universalExport/server/index.mjs +1355 -3
  76. package/dist/universalExport/server/index.mjs.map +1 -1
  77. package/dist/universalFile/index.d.mts +54 -3
  78. package/dist/universalFile/index.d.ts +54 -3
  79. package/dist/universalFile/index.js +272 -0
  80. package/dist/universalFile/index.js.map +1 -1
  81. package/dist/universalFile/index.mjs +267 -1
  82. package/dist/universalFile/index.mjs.map +1 -1
  83. package/dist/universalFile/server/index.d.mts +2541 -469
  84. package/dist/universalFile/server/index.d.ts +2541 -469
  85. package/dist/universalFile/server/index.js +830 -64
  86. package/dist/universalFile/server/index.js.map +1 -1
  87. package/dist/universalFile/server/index.mjs +803 -66
  88. package/dist/universalFile/server/index.mjs.map +1 -1
  89. package/package.json +47 -23
  90. package/dist/chunk-6FNUWAIV.js.map +0 -1
  91. package/dist/chunk-APY57REU.js +0 -300
  92. package/dist/chunk-APY57REU.js.map +0 -1
  93. package/dist/chunk-C64RY2OW.mjs +0 -295
  94. package/dist/chunk-C64RY2OW.mjs.map +0 -1
  95. package/dist/chunk-HXFFYNIF.mjs.map +0 -1
  96. package/dist/types-CoGG1rNV.d.mts +0 -258
  97. package/dist/types-CoGG1rNV.d.ts +0 -258
  98. package/dist/types-DW9qar-w.d.mts +0 -52
  99. package/dist/types-DW9qar-w.d.ts +0 -52
@@ -1,395 +1,9 @@
1
- import { F as FileMetadata, A as AccessPermission, i as UploadStatus, f as StorageType$1, U as UploadFileInfo$1, g as CDNType$1, h as ProcessorType$1, j as ProcessingOptions$1, I as ImageProcessingOptions, k as AudioProcessingOptions, V as VideoProcessingOptions, a as UploadProgress, o as FileEventListener$1 } from '../../types-CoGG1rNV.mjs';
1
+ import { q as UniversalFileServiceConfig, r as StorageConfig, s as IStorageProvider, t as StorageType, u as UploadFileInfo, v as StorageResult, w as ICDNProvider, x as CDNType, y as CDNConfig, z as CDNResult, D as IFileProcessor, E as ProcessorType, G as ProcessingOptions, H as ProcessingResult, I as ImageProcessingOptions, l as AudioProcessingOptions, V as VideoProcessingOptions, J as IFileMetadataRepository, K as AliyunOSSConfig, L as AliyunCDNConfig, M as LocalStorageConfig, c as UniversalFileService } from '../../UniversalFileService-CEZRJ87g.mjs';
2
+ export { a4 as CDNProviderError, R as CDNStats, O as CacheConfig, Z as FileEvent, _ as FileEventListener, $ as FileEventType, a2 as FileProcessingError, X as FileQueryOptions, W as FileRecord, a0 as FileServiceError, N as FileServicePersistenceConfig, a1 as FileUploadError, Y as PaginatedResult, T as ProcessorInfo, Q as StorageMetadata, a3 as StorageProviderError } from '../../UniversalFileService-CEZRJ87g.mjs';
2
3
  import { EventEmitter } from 'events';
3
4
  import { NextResponse } from 'next/server';
4
-
5
- /**
6
- * UniversalFile Server 端类型定义
7
- */
8
-
9
- type StorageType = StorageType$1;
10
- type CDNType = CDNType$1;
11
- type ProcessorType = ProcessorType$1;
12
- type UploadFileInfo = UploadFileInfo$1;
13
- type ProcessingOptions = ProcessingOptions$1;
14
- /** 存储提供者接口 */
15
- interface IStorageProvider {
16
- /** 提供者类型 */
17
- readonly type: StorageType;
18
- /** 初始化 */
19
- initialize(config: StorageConfig): Promise<void>;
20
- /** 上传文件 */
21
- upload(fileInfo: UploadFileInfo, path: string): Promise<StorageResult>;
22
- /** 下载文件 */
23
- download(path: string): Promise<Buffer>;
24
- /** 删除文件 */
25
- delete(path: string): Promise<StorageResult>;
26
- /** 获取文件信息 */
27
- getFileInfo(path: string): Promise<StorageResult>;
28
- /** 生成访问URL */
29
- getAccessUrl(path: string, expiresIn?: number): Promise<string>;
30
- /** 生成预签名上传URL */
31
- getUploadUrl(path: string, expiresIn?: number): Promise<string>;
32
- /** 检查文件是否存在 */
33
- exists(path: string): Promise<boolean>;
34
- /** 列出文件 */
35
- list(prefix: string, maxKeys?: number): Promise<string[]>;
36
- }
37
- /** CDN 提供者接口 */
38
- interface ICDNProvider {
39
- /** 提供者类型 */
40
- readonly type: CDNType;
41
- /** 初始化 */
42
- initialize(config: CDNConfig): Promise<void>;
43
- /** 生成CDN URL */
44
- generateUrl(originalUrl: string): Promise<string>;
45
- /** 刷新缓存 */
46
- refreshCache(urls: string[]): Promise<CDNResult>;
47
- /** 预热缓存 */
48
- preheatCache(urls: string[]): Promise<CDNResult>;
49
- /** 获取访问统计 */
50
- getAccessStats(startTime: Date, endTime: Date): Promise<CDNResult>;
51
- }
52
- /** 文件处理器接口 */
53
- interface IFileProcessor {
54
- /** 处理器类型 */
55
- readonly type: ProcessorType;
56
- /** 初始化 */
57
- initialize(): Promise<void>;
58
- /** 处理文件 */
59
- process(inputPath: string, outputPath: string, options: ProcessingOptions): Promise<ProcessingResult>;
60
- /** 检查文件是否支持处理 */
61
- supports(mimeType: string): boolean;
62
- /** 获取文件信息 */
63
- getFileInfo(filePath: string): Promise<Record<string, any>>;
64
- }
65
- /** 存储配置基础接口 */
66
- interface StorageConfig {
67
- /** 存储类型 */
68
- type: StorageType;
69
- /** 是否启用 */
70
- enabled: boolean;
71
- }
72
- /** 本地存储配置 */
73
- interface LocalStorageConfig extends StorageConfig {
74
- type: 'local';
75
- /** 存储根目录 */
76
- rootPath: string;
77
- /** 基础URL */
78
- baseUrl: string;
79
- }
80
- /** 阿里云 OSS 配置 */
81
- interface AliyunOSSConfig extends StorageConfig {
82
- type: 'aliyun-oss';
83
- /** 地域 */
84
- region: string;
85
- /** 存储桶名称 */
86
- bucket: string;
87
- /** 访问密钥ID */
88
- accessKeyId: string;
89
- /** 访问密钥密码 */
90
- accessKeySecret: string;
91
- /** 自定义域名 */
92
- customDomain?: string;
93
- /** 是否使用HTTPS */
94
- secure?: boolean;
95
- /** 是否使用内网访问 */
96
- internal?: boolean;
97
- }
98
- /** CDN配置基础接口 */
99
- interface CDNConfig {
100
- /** CDN类型 */
101
- type: CDNType;
102
- /** 是否启用 */
103
- enabled: boolean;
104
- }
105
- /** 阿里云 CDN 配置 */
106
- interface AliyunCDNConfig extends CDNConfig {
107
- type: 'aliyun-cdn';
108
- /** CDN域名 */
109
- domain: string;
110
- /** 访问密钥ID */
111
- accessKeyId: string;
112
- /** 访问密钥密码 */
113
- accessKeySecret: string;
114
- /** 地域 */
115
- region?: string;
116
- }
117
- /** 缓存配置 */
118
- interface CacheConfig {
119
- /** 是否启用缓存 */
120
- enabled: boolean;
121
- /** 最大缓存大小 */
122
- maxSize?: number;
123
- /** 缓存 TTL(秒) */
124
- ttl?: number;
125
- /** 是否使用 Redis */
126
- useRedis?: boolean;
127
- /** Redis 配置 */
128
- redisConfig?: {
129
- host: string;
130
- port: number;
131
- password?: string;
132
- db?: number;
133
- };
134
- }
135
- /** 文件服务配置 */
136
- /** 缓存配置扩展 */
137
- interface CacheConfig {
138
- /** 是否启用缓存 */
139
- enabled: boolean;
140
- /** 元数据缓存TTL(秒) */
141
- metadataTTL?: number;
142
- /** URL缓存TTL(秒) */
143
- urlTTL?: number;
144
- /** 最大缓存条目数 */
145
- maxSize?: number;
146
- }
147
- interface UniversalFileServiceConfig {
148
- /** 存储配置 */
149
- storage: StorageConfig;
150
- /** CDN 配置(可选) */
151
- cdn?: CDNConfig;
152
- /** 缓存配置(可选) */
153
- cache?: CacheConfig;
154
- /** 数据库持久化配置(可选) */
155
- persistence?: FileServicePersistenceConfig;
156
- /** 启用的处理器 */
157
- processors?: ProcessorType[];
158
- /** 数据库连接(可选) @deprecated 使用 persistence.repository 代替 */
159
- db?: any;
160
- /** 最大文件大小(字节) */
161
- maxFileSize?: number;
162
- /** 允许的文件类型 */
163
- allowedMimeTypes?: string[];
164
- /** 是否启用监控 */
165
- enableMonitoring?: boolean;
166
- /** 存储提供者映射(内部使用) */
167
- storageProviders?: Map<StorageType, IStorageProvider>;
168
- /** 默认存储类型 */
169
- defaultStorage?: StorageType;
170
- /** 默认CDN类型 */
171
- defaultCDN?: CDNType;
172
- }
173
- /** 存储结果 */
174
- /** 存储操作结果 */
175
- interface StorageResult {
176
- /** 是否成功 */
177
- success: boolean;
178
- /** 存储路径 */
179
- path?: string;
180
- /** 访问URL */
181
- url?: string;
182
- /** 文件大小 */
183
- size?: number;
184
- /** 错误信息 */
185
- error?: string;
186
- /** 额外数据 */
187
- data?: Record<string, any>;
188
- }
189
- /** 存储元数据 */
190
- interface StorageMetadata {
191
- /** 文件大小 */
192
- size: number;
193
- /** MIME 类型 */
194
- mimeType: string;
195
- /** 最后修改时间 */
196
- lastModified: Date;
197
- /** 自定义元数据 */
198
- metadata?: Record<string, any>;
199
- }
200
- /** CDN 结果 */
201
- /** CDN操作结果 */
202
- interface CDNResult {
203
- /** 是否成功 */
204
- success: boolean;
205
- /** CDN URL */
206
- url?: string;
207
- /** 错误信息 */
208
- error?: string;
209
- /** 额外数据 */
210
- data?: Record<string, any>;
211
- }
212
- /** CDN 统计信息 */
213
- interface CDNStats {
214
- /** 带宽(字节/秒) */
215
- bandwidth: number;
216
- /** 请求数 */
217
- requests: number;
218
- /** 流量(字节) */
219
- traffic: number;
220
- /** 统计时间范围 */
221
- timeRange: {
222
- start: Date;
223
- end: Date;
224
- };
225
- }
226
- /** 处理结果 */
227
- interface ProcessingResult {
228
- /** 是否成功 */
229
- success: boolean;
230
- /** 处理后的文件路径 */
231
- processedPath?: string;
232
- /** 处理后的文件大小 */
233
- processedSize?: number;
234
- /** 缩略图路径 */
235
- thumbnailPath?: string;
236
- /** 错误信息 */
237
- error?: string;
238
- /** 处理耗时(毫秒) */
239
- processingTime?: number;
240
- /** 额外数据 */
241
- data?: Record<string, any>;
242
- }
243
- /** 处理器信息 */
244
- interface ProcessorInfo {
245
- /** 处理器名称 */
246
- name: string;
247
- /** 处理器版本 */
248
- version: string;
249
- /** 支持的格式 */
250
- supportedFormats: string[];
251
- /** 支持的操作 */
252
- supportedOperations: string[];
253
- }
254
- /** 文件数据库记录 */
255
- interface FileRecord extends FileMetadata {
256
- /** 创建时间 */
257
- createdAt: Date | string;
258
- /** 更新时间 */
259
- updatedAt: Date | string;
260
- }
261
- /** 文件查询选项 */
262
- interface FileQueryOptions {
263
- /** 模块 ID */
264
- moduleId?: string;
265
- /** 业务 ID */
266
- businessId?: string;
267
- /** 上传者 ID */
268
- uploaderId?: string;
269
- /** 文件类型 */
270
- mimeType?: string;
271
- /** 访问权限 */
272
- permission?: AccessPermission;
273
- /** 状态 */
274
- status?: UploadStatus;
275
- /** 分页 */
276
- page?: number;
277
- pageSize?: number;
278
- /** 排序 */
279
- orderBy?: string;
280
- orderDirection?: 'asc' | 'desc';
281
- }
282
- /** 分页结果 */
283
- interface PaginatedResult<T> {
284
- /** 数据列表 */
285
- items: T[];
286
- /** 总数 */
287
- total: number;
288
- /** 当前页 */
289
- page: number;
290
- /** 每页大小 */
291
- pageSize: number;
292
- /** 总页数 */
293
- totalPages: number;
294
- }
295
- /** 文件事件类型 */
296
- type FileEventType = 'upload:start' | 'upload:progress' | 'upload:complete' | 'upload:error' | 'download:start' | 'download:complete' | 'download:error' | 'delete:complete' | 'delete:error' | 'process:start' | 'process:complete' | 'process:error';
297
- /** 文件事件 */
298
- interface FileEvent {
299
- /** 事件类型 */
300
- type: FileEventType;
301
- /** 文件 ID */
302
- fileId: string;
303
- /** 事件数据 */
304
- data?: any;
305
- /** 时间戳 */
306
- timestamp: Date;
307
- }
308
- /** 事件监听器 */
309
- type FileEventListener = (event: FileEvent) => void | Promise<void>;
310
- /**
311
- * 文件元数据数据库持久化接口
312
- *
313
- * 实现此接口以提供自定义的数据库持久化支持
314
- *
315
- * @example
316
- * ```typescript
317
- * // Drizzle ORM 实现
318
- * class DrizzleFileRepository implements IFileMetadataRepository {
319
- * async save(metadata: FileMetadata): Promise<void> {
320
- * await db.insert(fileMetadata).values(metadata);
321
- * }
322
- * // ... 其他方法
323
- * }
324
- * ```
325
- */
326
- interface IFileMetadataRepository {
327
- /**
328
- * 保存文件元数据到数据库
329
- */
330
- save(metadata: FileMetadata): Promise<void>;
331
- /**
332
- * 从数据库获取文件元数据
333
- */
334
- get(fileId: string): Promise<FileMetadata | null>;
335
- /**
336
- * 查询文件列表
337
- */
338
- query(options: FileQueryOptions): Promise<PaginatedResult<FileMetadata>>;
339
- /**
340
- * 从数据库删除文件元数据
341
- */
342
- delete(fileId: string): Promise<void>;
343
- /**
344
- * 批量删除文件元数据
345
- */
346
- batchDelete(fileIds: string[]): Promise<void>;
347
- }
348
- /**
349
- * 数据库持久化配置
350
- */
351
- interface FileServicePersistenceConfig {
352
- /**
353
- * 是否启用持久化
354
- */
355
- enabled: boolean;
356
- /**
357
- * 持久化仓储实现
358
- */
359
- repository: IFileMetadataRepository;
360
- /**
361
- * 是否自动持久化(默认 true)
362
- * 如果为 true,文件上传完成后自动保存到数据库
363
- */
364
- autoPersist?: boolean;
365
- /**
366
- * 是否优先使用缓存(默认 false)
367
- * 如果为 true,查询时优先从缓存获取
368
- */
369
- cacheFirst?: boolean;
370
- }
371
- /** 文件服务异常基类 */
372
- declare class FileServiceError extends Error {
373
- readonly code: string;
374
- readonly details?: Record<string, any> | undefined;
375
- constructor(message: string, code: string, details?: Record<string, any> | undefined);
376
- }
377
- /** 文件上传异常 */
378
- declare class FileUploadError extends FileServiceError {
379
- constructor(message: string, details?: Record<string, any>);
380
- }
381
- /** 文件处理异常 */
382
- declare class FileProcessingError extends FileServiceError {
383
- constructor(message: string, details?: Record<string, any>);
384
- }
385
- /** 存储提供者异常 */
386
- declare class StorageProviderError extends FileServiceError {
387
- constructor(message: string, details?: Record<string, any>);
388
- }
389
- /** CDN提供者异常 */
390
- declare class CDNProviderError extends FileServiceError {
391
- constructor(message: string, details?: Record<string, any>);
392
- }
5
+ import * as drizzle_orm from 'drizzle-orm';
6
+ import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
393
7
 
394
8
  /**
395
9
  * UniversalFile Service 工厂函数
@@ -1345,84 +959,6 @@ declare class ProcessingQueue extends EventEmitter {
1345
959
  */
1346
960
  declare function getMimeType(filename: string): string;
1347
961
 
1348
- /**
1349
- * 通用文件服务核心实现
1350
- *
1351
- * 提供统一的文件上传、下载、管理接口
1352
- */
1353
-
1354
- /**
1355
- * 通用文件服务类
1356
- */
1357
- declare class UniversalFileService extends EventEmitter {
1358
- private config;
1359
- private storageProviders;
1360
- private cdnProviders;
1361
- private fileProcessors;
1362
- private uploadProgressMap;
1363
- private metadataCache;
1364
- private urlCache;
1365
- private processingQueue;
1366
- private isProcessingQueueRunning;
1367
- constructor(config: UniversalFileServiceConfig);
1368
- /**
1369
- * 设置数据库持久化监听器
1370
- *
1371
- * 当文件上传完成或删除时,自动触发数据库操作
1372
- */
1373
- private setupPersistenceListeners;
1374
- /**
1375
- * 初始化文件服务
1376
- */
1377
- initialize(): Promise<void>;
1378
- /**
1379
- * 重新初始化存储提供者(支持配置热更新)
1380
- */
1381
- reinitializeStorageProviders(): Promise<void>;
1382
- /**
1383
- * 注册存储提供者
1384
- */
1385
- registerStorageProvider(provider: IStorageProvider): void;
1386
- /**
1387
- * 注册CDN提供者
1388
- */
1389
- registerCDNProvider(provider: ICDNProvider): void;
1390
- /**
1391
- * 注册文件处理器
1392
- */
1393
- registerFileProcessor(processor: IFileProcessor): void;
1394
- /**
1395
- * 上传文件
1396
- */
1397
- uploadFile(fileInfo: UploadFileInfo$1, storageType?: StorageType$1, onProgress?: (progress: UploadProgress) => void): Promise<FileMetadata>;
1398
- /**
1399
- * 获取上传进度
1400
- */
1401
- getUploadProgress(fileId: string): UploadProgress | undefined;
1402
- /**
1403
- * 监听文件事件
1404
- */
1405
- onFileEvent(eventType: string, listener: FileEventListener$1): void;
1406
- /**
1407
- * 移除文件事件监听器
1408
- */
1409
- offFileEvent(eventType: string, listener: FileEventListener$1): void;
1410
- private initializeStorageProviders;
1411
- private registerDefaultStorageProviders;
1412
- private initializeCDNProviders;
1413
- private initializeFileProcessors;
1414
- private validateFile;
1415
- private generateFileMetadata;
1416
- private generateStoragePath;
1417
- private generateFileHash;
1418
- private queueFileProcessing;
1419
- private generateProcessedPath;
1420
- private processFileQueue;
1421
- private cacheMetadata;
1422
- private _clearMetadataCache2;
1423
- private emitFileEvent;
1424
- }
1425
-
1426
962
  /**
1427
963
  * 通用文件服务缓存管理器
1428
964
  * 支持多层缓存策略:内存缓存 + Redis缓存
@@ -2425,4 +1961,2540 @@ interface DrizzleRepositoryConfig {
2425
1961
  */
2426
1962
  declare function createDrizzleRepository(config: DrizzleRepositoryConfig): IFileMetadataRepository;
2427
1963
 
2428
- export { type AliyunCDNConfig, AliyunCDNProvider, type AliyunOSSConfig, AliyunOSSProvider, ApiError, ApiErrorCode, type ApiResponse, AudioProcessor, type CDNConfig, CDNProviderError, type CDNResult, type CDNStats, type CDNType, type CacheConfig, CacheManager, CacheStrategyType$1 as CacheStrategyType, CdnCacheStrategy, ConfigValidationError, type DrizzleDb, type DrizzleRepositoryConfig, type DrizzleTable, ErrorHttpStatusMap, ErrorMessages, type FieldMapping, type FileEvent, type FileEventListener, type FileEventType, type FileInfo, type FileListResponse, type FileProcessParams, FileProcessingError, type FileQueryOptions, type FileQueryParams, type FileRecord, FileServiceError, type FileServicePersistenceConfig, type FileStats, type FileUpdateParams, FileUploadError, type FileUploadParams, type FolderCreateParams, type FolderInfo, type FolderUpdateParams, type ICDNProvider, type IFileMetadataRepository, type IFileProcessor, type IStorageProvider, ImageProcessor, type LocalStorageConfig, LocalStorageProvider, type PaginatedResult, type PaginationParams, PerformanceMonitor, type ProcessingOptions, ProcessingQueue, type ProcessingResult, type ProcessingStatus, type ProcessorInfo, type ProcessorType, type ShareAccessParams, type ShareCreateParams, type ShareInfo, type StorageConfig, type StorageMetadata, StorageProviderError, type StorageResult, type StorageType, UniversalFileService, type UniversalFileServiceConfig, type UploadFileInfo, type UploadResponse, VideoProcessor, cdnCacheStrategy, createAliyunOSSPreset, createDocumentServicePreset, createDrizzleRepository, createFileServiceConfig, createFileServiceFromEnv, createImageServicePreset, createLocalDevPreset, createSmartPreset, createUniversalFileService, createVideoServicePreset, getMimeType, getRequiredEnvVars, validateEnvironment, validateServiceConfig, validateStorageConfig };
1964
+ /**
1965
+ * 文件服务配置加载辅助工具
1966
+ *
1967
+ * 提供从环境变量加载配置、默认配置常量等通用功能
1968
+ */
1969
+
1970
+ /**
1971
+ * 默认文件大小限制(字节)
1972
+ */
1973
+ declare const DEFAULT_MAX_FILE_SIZE = 104857600;
1974
+ /**
1975
+ * 默认允许的 MIME 类型
1976
+ */
1977
+ declare const DEFAULT_ALLOWED_MIME_TYPES: string[];
1978
+ /**
1979
+ * 默认缓存配置
1980
+ */
1981
+ declare const DEFAULT_CACHE_CONFIG: {
1982
+ enabled: boolean;
1983
+ metadataTTL: number;
1984
+ urlTTL: number;
1985
+ };
1986
+ /**
1987
+ * 默认文件服务配置
1988
+ */
1989
+ declare const DEFAULT_FILE_SERVICE_CONFIG: {
1990
+ readonly maxFileSize: 104857600;
1991
+ readonly allowedMimeTypes: string[];
1992
+ readonly cache: {
1993
+ enabled: boolean;
1994
+ metadataTTL: number;
1995
+ urlTTL: number;
1996
+ };
1997
+ readonly enableMonitoring: false;
1998
+ };
1999
+ /**
2000
+ * 从环境变量加载阿里云 OSS 配置
2001
+ *
2002
+ * 支持的环境变量:
2003
+ * - ALIYUN_OSS_REGION
2004
+ * - ALIYUN_OSS_BUCKET
2005
+ * - ALIYUN_OSS_ACCESS_KEY_ID
2006
+ * - ALIYUN_OSS_ACCESS_KEY_SECRET
2007
+ * - ALIYUN_OSS_CUSTOM_DOMAIN (可选)
2008
+ * - ALIYUN_OSS_SECURE (可选,默认 false)
2009
+ * - ALIYUN_OSS_INTERNAL (可选,默认 false)
2010
+ */
2011
+ declare function loadOSSConfigFromEnv(): AliyunOSSConfig | null;
2012
+ /**
2013
+ * 从环境变量加载阿里云 CDN 配置
2014
+ *
2015
+ * 支持的环境变量:
2016
+ * - ALIYUN_CDN_DOMAIN
2017
+ * - ALIYUN_CDN_ACCESS_KEY_ID
2018
+ * - ALIYUN_CDN_ACCESS_KEY_SECRET
2019
+ * - ALIYUN_CDN_REGION (可选)
2020
+ */
2021
+ declare function loadCDNConfigFromEnv(): AliyunCDNConfig | null;
2022
+ /**
2023
+ * 获取默认本地存储配置
2024
+ *
2025
+ * 支持的环境变量:
2026
+ * - FILE_STORAGE_PATH (可选,默认 'uploads')
2027
+ * - FILE_BASE_URL (可选,默认 '/uploads')
2028
+ */
2029
+ declare function getDefaultLocalStorage(): LocalStorageConfig;
2030
+ /**
2031
+ * 从环境变量加载完整的文件服务配置
2032
+ *
2033
+ * 配置优先级:
2034
+ * 1. 阿里云 OSS(如果配置完整)
2035
+ * 2. 本地存储(备用方案)
2036
+ *
2037
+ * 支持的环境变量:
2038
+ * - MAX_FILE_SIZE (可选,默认 100MB)
2039
+ * - ENABLE_CACHE (可选,默认 false)
2040
+ * - METADATA_CACHE_TTL (可选,默认 3600秒)
2041
+ * - URL_CACHE_TTL (可选,默认 1800秒)
2042
+ * - ENABLE_FILE_MONITORING (可选,默认 false)
2043
+ */
2044
+ declare function loadConfigFromEnv(): Partial<UniversalFileServiceConfig>;
2045
+ /**
2046
+ * 配置服务接口
2047
+ *
2048
+ * 用于从配置管理系统加载配置
2049
+ */
2050
+ interface IConfigService {
2051
+ /**
2052
+ * 获取配置值
2053
+ */
2054
+ getConfig(key: string, defaultValue?: any): Promise<any>;
2055
+ }
2056
+ /**
2057
+ * 配置键映射
2058
+ */
2059
+ interface OSSConfigKeyMapping {
2060
+ region: string;
2061
+ bucket: string;
2062
+ accessKeyId: string;
2063
+ accessKeySecret: string;
2064
+ customDomain?: string;
2065
+ secure?: string;
2066
+ internal?: string;
2067
+ }
2068
+ /**
2069
+ * 默认的 OSS 配置键映射(阿里云标准)
2070
+ */
2071
+ declare const DEFAULT_OSS_CONFIG_KEYS: OSSConfigKeyMapping;
2072
+ /**
2073
+ * 从配置服务加载 OSS 配置
2074
+ *
2075
+ * 通用函数,可用于任何实现了 IConfigService 接口的配置系统
2076
+ *
2077
+ * @param configService - 配置服务实例
2078
+ * @param keyMapping - 配置键映射(可选,默认使用标准键名)
2079
+ *
2080
+ * @example
2081
+ * ```typescript
2082
+ * import { loadOSSConfigFromService } from 'sa2kit/universalFile/server';
2083
+ *
2084
+ * const config = await loadOSSConfigFromService(myConfigService, {
2085
+ * region: 'oss_region',
2086
+ * bucket: 'oss_bucket',
2087
+ * // ...
2088
+ * });
2089
+ * ```
2090
+ */
2091
+ declare function loadOSSConfigFromService(configService: IConfigService, keyMapping?: Partial<OSSConfigKeyMapping>): Promise<AliyunOSSConfig | null>;
2092
+ /**
2093
+ * 组合多个配置源
2094
+ *
2095
+ * 按优先级顺序尝试加载配置,返回第一个成功的配置
2096
+ *
2097
+ * @param loaders - 配置加载器数组(按优先级排序)
2098
+ *
2099
+ * @example
2100
+ * ```typescript
2101
+ * const config = await loadConfigWithFallback([
2102
+ * async () => loadOSSConfigFromService(configService),
2103
+ * () => loadOSSConfigFromEnv(),
2104
+ * ]);
2105
+ * ```
2106
+ */
2107
+ declare function loadConfigWithFallback<T>(loaders: Array<() => Promise<T | null>>): Promise<T | null>;
2108
+ /**
2109
+ * 文件服务工厂选项
2110
+ */
2111
+ interface FileServiceFactoryOptions {
2112
+ /**
2113
+ * 配置加载器(按优先级排序)
2114
+ */
2115
+ configLoaders?: Array<() => Promise<Partial<UniversalFileServiceConfig> | null>>;
2116
+ /**
2117
+ * 持久化仓储(可选)
2118
+ */
2119
+ repository?: any;
2120
+ /**
2121
+ * 自定义配置(会覆盖加载的配置)
2122
+ */
2123
+ customConfig?: Partial<UniversalFileServiceConfig>;
2124
+ /**
2125
+ * 是否自动初始化服务
2126
+ */
2127
+ autoInitialize?: boolean;
2128
+ }
2129
+ /**
2130
+ * 创建文件服务(工厂函数)
2131
+ *
2132
+ * 通用的服务创建函数,支持多种配置源和可选的持久化
2133
+ *
2134
+ * @param options - 工厂选项
2135
+ *
2136
+ * @example
2137
+ * ```typescript
2138
+ * import {
2139
+ * createFileServiceWithFactory,
2140
+ * loadOSSConfigFromService,
2141
+ * loadConfigFromEnv
2142
+ * } from 'sa2kit/universalFile/server';
2143
+ *
2144
+ * const service = await createFileServiceWithFactory({
2145
+ * configLoaders: [
2146
+ * async () => {
2147
+ * const ossConfig = await loadOSSConfigFromService(configService);
2148
+ * return ossConfig ? { storage: ossConfig, defaultStorage: 'aliyun-oss' } : null;
2149
+ * },
2150
+ * () => Promise.resolve(loadConfigFromEnv()),
2151
+ * ],
2152
+ * repository: myRepository,
2153
+ * autoInitialize: true,
2154
+ * });
2155
+ * ```
2156
+ */
2157
+ declare function createFileServiceWithFactory(options?: FileServiceFactoryOptions): Promise<UniversalFileService>;
2158
+ /**
2159
+ * 单例工厂返回值
2160
+ */
2161
+ interface SingletonFactory<T> {
2162
+ /**
2163
+ * 获取单例实例
2164
+ */
2165
+ get(): Promise<T>;
2166
+ /**
2167
+ * 重置单例(主要用于测试)
2168
+ */
2169
+ reset(): void;
2170
+ /**
2171
+ * 检查单例是否已创建
2172
+ */
2173
+ isCreated(): boolean;
2174
+ }
2175
+ /**
2176
+ * 创建单例工厂
2177
+ *
2178
+ * 提供单例模式的通用实现,适用于需要单例的服务
2179
+ *
2180
+ * @param factory - 创建实例的工厂函数
2181
+ * @param options - 单例选项
2182
+ *
2183
+ * @example
2184
+ * ```typescript
2185
+ * const fileServiceSingleton = createSingleton(
2186
+ * async () => {
2187
+ * const service = new UniversalFileService(config);
2188
+ * await service.initialize();
2189
+ * return service;
2190
+ * },
2191
+ * { autoInitialize: true }
2192
+ * );
2193
+ *
2194
+ * // 获取单例
2195
+ * const service = await fileServiceSingleton.get();
2196
+ *
2197
+ * // 重置(测试用)
2198
+ * fileServiceSingleton.reset();
2199
+ * ```
2200
+ */
2201
+ declare function createSingleton<T>(factory: () => Promise<T>, options?: {
2202
+ /** 是否在第一次获取时自动初始化(默认 true) */
2203
+ autoInitialize?: boolean;
2204
+ /** 单例名称(用于日志) */
2205
+ name?: string;
2206
+ }): SingletonFactory<T>;
2207
+
2208
+ /**
2209
+ * 通用文件服务 - PostgreSQL 数据库表结构定义
2210
+ *
2211
+ * 这个文件定义了通用文件服务的完整数据库表结构,使用Drizzle ORM框架。
2212
+ * 支持多模块文件管理、版本控制、分享功能、处理记录等。
2213
+ *
2214
+ * 表结构概览:
2215
+ * - file_storage_providers: 存储提供者配置表
2216
+ * - file_folders: 文件夹表(支持层级结构)
2217
+ * - file_metadata: 文件元数据主表
2218
+ * - file_versions: 文件版本表
2219
+ * - file_processing_records: 文件处理记录表
2220
+ * - file_shares: 文件分享表
2221
+ * - file_access_logs: 文件访问日志表
2222
+ * - file_thumbnails: 文件缩略图表
2223
+ *
2224
+ * 设计特点:
2225
+ * - 支持多存储提供者(本地、OSS、CDN等)
2226
+ * - 完整的文件版本管理
2227
+ * - 灵活的文件夹层级结构
2228
+ * - 详细的访问日志和统计
2229
+ * - 文件处理流水线记录
2230
+ * - 安全的分享机制
2231
+ *
2232
+ * @fileoverview 数据库表结构 - 通用文件服务 (PostgreSQL)
2233
+ * @package sa2kit/universalFile/server
2234
+ */
2235
+ /**
2236
+ * 存储提供者配置表 (file_storage_providers)
2237
+ *
2238
+ * 管理不同的文件存储提供者配置,支持本地存储、云存储等多种方式。
2239
+ * 每个提供者有独立的配置和优先级设置。
2240
+ */
2241
+ declare const fileStorageProviders: drizzle_orm_pg_core.PgTableWithColumns<{
2242
+ name: "file_storage_providers";
2243
+ schema: undefined;
2244
+ columns: {
2245
+ id: drizzle_orm_pg_core.PgColumn<{
2246
+ name: "id";
2247
+ tableName: "file_storage_providers";
2248
+ dataType: "number";
2249
+ columnType: "PgSerial";
2250
+ data: number;
2251
+ driverParam: number;
2252
+ notNull: true;
2253
+ hasDefault: true;
2254
+ isPrimaryKey: true;
2255
+ isAutoincrement: false;
2256
+ hasRuntimeDefault: false;
2257
+ enumValues: undefined;
2258
+ baseColumn: never;
2259
+ identity: undefined;
2260
+ generated: undefined;
2261
+ }, {}, {}>;
2262
+ name: drizzle_orm_pg_core.PgColumn<{
2263
+ name: "name";
2264
+ tableName: "file_storage_providers";
2265
+ dataType: "string";
2266
+ columnType: "PgVarchar";
2267
+ data: string;
2268
+ driverParam: string;
2269
+ notNull: true;
2270
+ hasDefault: false;
2271
+ isPrimaryKey: false;
2272
+ isAutoincrement: false;
2273
+ hasRuntimeDefault: false;
2274
+ enumValues: [string, ...string[]];
2275
+ baseColumn: never;
2276
+ identity: undefined;
2277
+ generated: undefined;
2278
+ }, {}, {
2279
+ length: 100;
2280
+ }>;
2281
+ type: drizzle_orm_pg_core.PgColumn<{
2282
+ name: "type";
2283
+ tableName: "file_storage_providers";
2284
+ dataType: "string";
2285
+ columnType: "PgVarchar";
2286
+ data: string;
2287
+ driverParam: string;
2288
+ notNull: true;
2289
+ hasDefault: false;
2290
+ isPrimaryKey: false;
2291
+ isAutoincrement: false;
2292
+ hasRuntimeDefault: false;
2293
+ enumValues: [string, ...string[]];
2294
+ baseColumn: never;
2295
+ identity: undefined;
2296
+ generated: undefined;
2297
+ }, {}, {
2298
+ length: 50;
2299
+ }>;
2300
+ config: drizzle_orm_pg_core.PgColumn<{
2301
+ name: "config";
2302
+ tableName: "file_storage_providers";
2303
+ dataType: "json";
2304
+ columnType: "PgJson";
2305
+ data: unknown;
2306
+ driverParam: unknown;
2307
+ notNull: true;
2308
+ hasDefault: false;
2309
+ isPrimaryKey: false;
2310
+ isAutoincrement: false;
2311
+ hasRuntimeDefault: false;
2312
+ enumValues: undefined;
2313
+ baseColumn: never;
2314
+ identity: undefined;
2315
+ generated: undefined;
2316
+ }, {}, {}>;
2317
+ isActive: drizzle_orm_pg_core.PgColumn<{
2318
+ name: "is_active";
2319
+ tableName: "file_storage_providers";
2320
+ dataType: "boolean";
2321
+ columnType: "PgBoolean";
2322
+ data: boolean;
2323
+ driverParam: boolean;
2324
+ notNull: true;
2325
+ hasDefault: true;
2326
+ isPrimaryKey: false;
2327
+ isAutoincrement: false;
2328
+ hasRuntimeDefault: false;
2329
+ enumValues: undefined;
2330
+ baseColumn: never;
2331
+ identity: undefined;
2332
+ generated: undefined;
2333
+ }, {}, {}>;
2334
+ isDefault: drizzle_orm_pg_core.PgColumn<{
2335
+ name: "is_default";
2336
+ tableName: "file_storage_providers";
2337
+ dataType: "boolean";
2338
+ columnType: "PgBoolean";
2339
+ data: boolean;
2340
+ driverParam: boolean;
2341
+ notNull: true;
2342
+ hasDefault: true;
2343
+ isPrimaryKey: false;
2344
+ isAutoincrement: false;
2345
+ hasRuntimeDefault: false;
2346
+ enumValues: undefined;
2347
+ baseColumn: never;
2348
+ identity: undefined;
2349
+ generated: undefined;
2350
+ }, {}, {}>;
2351
+ priority: drizzle_orm_pg_core.PgColumn<{
2352
+ name: "priority";
2353
+ tableName: "file_storage_providers";
2354
+ dataType: "number";
2355
+ columnType: "PgInteger";
2356
+ data: number;
2357
+ driverParam: string | number;
2358
+ notNull: true;
2359
+ hasDefault: true;
2360
+ isPrimaryKey: false;
2361
+ isAutoincrement: false;
2362
+ hasRuntimeDefault: false;
2363
+ enumValues: undefined;
2364
+ baseColumn: never;
2365
+ identity: undefined;
2366
+ generated: undefined;
2367
+ }, {}, {}>;
2368
+ maxFileSize: drizzle_orm_pg_core.PgColumn<{
2369
+ name: "max_file_size";
2370
+ tableName: "file_storage_providers";
2371
+ dataType: "number";
2372
+ columnType: "PgBigInt53";
2373
+ data: number;
2374
+ driverParam: string | number;
2375
+ notNull: false;
2376
+ hasDefault: false;
2377
+ isPrimaryKey: false;
2378
+ isAutoincrement: false;
2379
+ hasRuntimeDefault: false;
2380
+ enumValues: undefined;
2381
+ baseColumn: never;
2382
+ identity: undefined;
2383
+ generated: undefined;
2384
+ }, {}, {}>;
2385
+ supportedMimeTypes: drizzle_orm_pg_core.PgColumn<{
2386
+ name: "supported_mime_types";
2387
+ tableName: "file_storage_providers";
2388
+ dataType: "json";
2389
+ columnType: "PgJson";
2390
+ data: unknown;
2391
+ driverParam: unknown;
2392
+ notNull: false;
2393
+ hasDefault: false;
2394
+ isPrimaryKey: false;
2395
+ isAutoincrement: false;
2396
+ hasRuntimeDefault: false;
2397
+ enumValues: undefined;
2398
+ baseColumn: never;
2399
+ identity: undefined;
2400
+ generated: undefined;
2401
+ }, {}, {}>;
2402
+ createdAt: drizzle_orm_pg_core.PgColumn<{
2403
+ name: "created_at";
2404
+ tableName: "file_storage_providers";
2405
+ dataType: "date";
2406
+ columnType: "PgTimestamp";
2407
+ data: Date;
2408
+ driverParam: string;
2409
+ notNull: true;
2410
+ hasDefault: true;
2411
+ isPrimaryKey: false;
2412
+ isAutoincrement: false;
2413
+ hasRuntimeDefault: false;
2414
+ enumValues: undefined;
2415
+ baseColumn: never;
2416
+ identity: undefined;
2417
+ generated: undefined;
2418
+ }, {}, {}>;
2419
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
2420
+ name: "updated_at";
2421
+ tableName: "file_storage_providers";
2422
+ dataType: "date";
2423
+ columnType: "PgTimestamp";
2424
+ data: Date;
2425
+ driverParam: string;
2426
+ notNull: true;
2427
+ hasDefault: true;
2428
+ isPrimaryKey: false;
2429
+ isAutoincrement: false;
2430
+ hasRuntimeDefault: false;
2431
+ enumValues: undefined;
2432
+ baseColumn: never;
2433
+ identity: undefined;
2434
+ generated: undefined;
2435
+ }, {}, {}>;
2436
+ };
2437
+ dialect: "pg";
2438
+ }>;
2439
+ /**
2440
+ * 文件夹表 (file_folders)
2441
+ *
2442
+ * 支持层级结构的文件夹管理,每个模块可以有独立的文件夹结构。
2443
+ */
2444
+ declare const fileFolders: drizzle_orm_pg_core.PgTableWithColumns<{
2445
+ name: "file_folders";
2446
+ schema: undefined;
2447
+ columns: {
2448
+ id: drizzle_orm_pg_core.PgColumn<{
2449
+ name: "id";
2450
+ tableName: "file_folders";
2451
+ dataType: "string";
2452
+ columnType: "PgUUID";
2453
+ data: string;
2454
+ driverParam: string;
2455
+ notNull: true;
2456
+ hasDefault: true;
2457
+ isPrimaryKey: true;
2458
+ isAutoincrement: false;
2459
+ hasRuntimeDefault: false;
2460
+ enumValues: undefined;
2461
+ baseColumn: never;
2462
+ identity: undefined;
2463
+ generated: undefined;
2464
+ }, {}, {}>;
2465
+ name: drizzle_orm_pg_core.PgColumn<{
2466
+ name: "name";
2467
+ tableName: "file_folders";
2468
+ dataType: "string";
2469
+ columnType: "PgVarchar";
2470
+ data: string;
2471
+ driverParam: string;
2472
+ notNull: true;
2473
+ hasDefault: false;
2474
+ isPrimaryKey: false;
2475
+ isAutoincrement: false;
2476
+ hasRuntimeDefault: false;
2477
+ enumValues: [string, ...string[]];
2478
+ baseColumn: never;
2479
+ identity: undefined;
2480
+ generated: undefined;
2481
+ }, {}, {
2482
+ length: 255;
2483
+ }>;
2484
+ parentId: drizzle_orm_pg_core.PgColumn<{
2485
+ name: "parent_id";
2486
+ tableName: "file_folders";
2487
+ dataType: "string";
2488
+ columnType: "PgUUID";
2489
+ data: string;
2490
+ driverParam: string;
2491
+ notNull: false;
2492
+ hasDefault: false;
2493
+ isPrimaryKey: false;
2494
+ isAutoincrement: false;
2495
+ hasRuntimeDefault: false;
2496
+ enumValues: undefined;
2497
+ baseColumn: never;
2498
+ identity: undefined;
2499
+ generated: undefined;
2500
+ }, {}, {}>;
2501
+ moduleId: drizzle_orm_pg_core.PgColumn<{
2502
+ name: "module_id";
2503
+ tableName: "file_folders";
2504
+ dataType: "string";
2505
+ columnType: "PgVarchar";
2506
+ data: string;
2507
+ driverParam: string;
2508
+ notNull: false;
2509
+ hasDefault: false;
2510
+ isPrimaryKey: false;
2511
+ isAutoincrement: false;
2512
+ hasRuntimeDefault: false;
2513
+ enumValues: [string, ...string[]];
2514
+ baseColumn: never;
2515
+ identity: undefined;
2516
+ generated: undefined;
2517
+ }, {}, {
2518
+ length: 100;
2519
+ }>;
2520
+ businessId: drizzle_orm_pg_core.PgColumn<{
2521
+ name: "business_id";
2522
+ tableName: "file_folders";
2523
+ dataType: "string";
2524
+ columnType: "PgVarchar";
2525
+ data: string;
2526
+ driverParam: string;
2527
+ notNull: false;
2528
+ hasDefault: false;
2529
+ isPrimaryKey: false;
2530
+ isAutoincrement: false;
2531
+ hasRuntimeDefault: false;
2532
+ enumValues: [string, ...string[]];
2533
+ baseColumn: never;
2534
+ identity: undefined;
2535
+ generated: undefined;
2536
+ }, {}, {
2537
+ length: 255;
2538
+ }>;
2539
+ path: drizzle_orm_pg_core.PgColumn<{
2540
+ name: "path";
2541
+ tableName: "file_folders";
2542
+ dataType: "string";
2543
+ columnType: "PgText";
2544
+ data: string;
2545
+ driverParam: string;
2546
+ notNull: true;
2547
+ hasDefault: false;
2548
+ isPrimaryKey: false;
2549
+ isAutoincrement: false;
2550
+ hasRuntimeDefault: false;
2551
+ enumValues: [string, ...string[]];
2552
+ baseColumn: never;
2553
+ identity: undefined;
2554
+ generated: undefined;
2555
+ }, {}, {}>;
2556
+ depth: drizzle_orm_pg_core.PgColumn<{
2557
+ name: "depth";
2558
+ tableName: "file_folders";
2559
+ dataType: "number";
2560
+ columnType: "PgInteger";
2561
+ data: number;
2562
+ driverParam: string | number;
2563
+ notNull: true;
2564
+ hasDefault: true;
2565
+ isPrimaryKey: false;
2566
+ isAutoincrement: false;
2567
+ hasRuntimeDefault: false;
2568
+ enumValues: undefined;
2569
+ baseColumn: never;
2570
+ identity: undefined;
2571
+ generated: undefined;
2572
+ }, {}, {}>;
2573
+ sortOrder: drizzle_orm_pg_core.PgColumn<{
2574
+ name: "sort_order";
2575
+ tableName: "file_folders";
2576
+ dataType: "number";
2577
+ columnType: "PgInteger";
2578
+ data: number;
2579
+ driverParam: string | number;
2580
+ notNull: true;
2581
+ hasDefault: true;
2582
+ isPrimaryKey: false;
2583
+ isAutoincrement: false;
2584
+ hasRuntimeDefault: false;
2585
+ enumValues: undefined;
2586
+ baseColumn: never;
2587
+ identity: undefined;
2588
+ generated: undefined;
2589
+ }, {}, {}>;
2590
+ description: drizzle_orm_pg_core.PgColumn<{
2591
+ name: "description";
2592
+ tableName: "file_folders";
2593
+ dataType: "string";
2594
+ columnType: "PgText";
2595
+ data: string;
2596
+ driverParam: string;
2597
+ notNull: false;
2598
+ hasDefault: false;
2599
+ isPrimaryKey: false;
2600
+ isAutoincrement: false;
2601
+ hasRuntimeDefault: false;
2602
+ enumValues: [string, ...string[]];
2603
+ baseColumn: never;
2604
+ identity: undefined;
2605
+ generated: undefined;
2606
+ }, {}, {}>;
2607
+ isSystem: drizzle_orm_pg_core.PgColumn<{
2608
+ name: "is_system";
2609
+ tableName: "file_folders";
2610
+ dataType: "boolean";
2611
+ columnType: "PgBoolean";
2612
+ data: boolean;
2613
+ driverParam: boolean;
2614
+ notNull: true;
2615
+ hasDefault: true;
2616
+ isPrimaryKey: false;
2617
+ isAutoincrement: false;
2618
+ hasRuntimeDefault: false;
2619
+ enumValues: undefined;
2620
+ baseColumn: never;
2621
+ identity: undefined;
2622
+ generated: undefined;
2623
+ }, {}, {}>;
2624
+ createdBy: drizzle_orm_pg_core.PgColumn<{
2625
+ name: "created_by";
2626
+ tableName: "file_folders";
2627
+ dataType: "string";
2628
+ columnType: "PgVarchar";
2629
+ data: string;
2630
+ driverParam: string;
2631
+ notNull: true;
2632
+ hasDefault: false;
2633
+ isPrimaryKey: false;
2634
+ isAutoincrement: false;
2635
+ hasRuntimeDefault: false;
2636
+ enumValues: [string, ...string[]];
2637
+ baseColumn: never;
2638
+ identity: undefined;
2639
+ generated: undefined;
2640
+ }, {}, {
2641
+ length: 255;
2642
+ }>;
2643
+ createdAt: drizzle_orm_pg_core.PgColumn<{
2644
+ name: "created_at";
2645
+ tableName: "file_folders";
2646
+ dataType: "date";
2647
+ columnType: "PgTimestamp";
2648
+ data: Date;
2649
+ driverParam: string;
2650
+ notNull: true;
2651
+ hasDefault: true;
2652
+ isPrimaryKey: false;
2653
+ isAutoincrement: false;
2654
+ hasRuntimeDefault: false;
2655
+ enumValues: undefined;
2656
+ baseColumn: never;
2657
+ identity: undefined;
2658
+ generated: undefined;
2659
+ }, {}, {}>;
2660
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
2661
+ name: "updated_at";
2662
+ tableName: "file_folders";
2663
+ dataType: "date";
2664
+ columnType: "PgTimestamp";
2665
+ data: Date;
2666
+ driverParam: string;
2667
+ notNull: true;
2668
+ hasDefault: true;
2669
+ isPrimaryKey: false;
2670
+ isAutoincrement: false;
2671
+ hasRuntimeDefault: false;
2672
+ enumValues: undefined;
2673
+ baseColumn: never;
2674
+ identity: undefined;
2675
+ generated: undefined;
2676
+ }, {}, {}>;
2677
+ };
2678
+ dialect: "pg";
2679
+ }>;
2680
+ /**
2681
+ * 文件元数据主表 (file_metadata)
2682
+ *
2683
+ * 存储文件的完整元数据信息,是文件服务的核心表。
2684
+ */
2685
+ declare const fileMetadata: drizzle_orm_pg_core.PgTableWithColumns<{
2686
+ name: "file_metadata";
2687
+ schema: undefined;
2688
+ columns: {
2689
+ id: drizzle_orm_pg_core.PgColumn<{
2690
+ name: "id";
2691
+ tableName: "file_metadata";
2692
+ dataType: "string";
2693
+ columnType: "PgUUID";
2694
+ data: string;
2695
+ driverParam: string;
2696
+ notNull: true;
2697
+ hasDefault: true;
2698
+ isPrimaryKey: true;
2699
+ isAutoincrement: false;
2700
+ hasRuntimeDefault: false;
2701
+ enumValues: undefined;
2702
+ baseColumn: never;
2703
+ identity: undefined;
2704
+ generated: undefined;
2705
+ }, {}, {}>;
2706
+ originalName: drizzle_orm_pg_core.PgColumn<{
2707
+ name: "original_name";
2708
+ tableName: "file_metadata";
2709
+ dataType: "string";
2710
+ columnType: "PgVarchar";
2711
+ data: string;
2712
+ driverParam: string;
2713
+ notNull: true;
2714
+ hasDefault: false;
2715
+ isPrimaryKey: false;
2716
+ isAutoincrement: false;
2717
+ hasRuntimeDefault: false;
2718
+ enumValues: [string, ...string[]];
2719
+ baseColumn: never;
2720
+ identity: undefined;
2721
+ generated: undefined;
2722
+ }, {}, {
2723
+ length: 500;
2724
+ }>;
2725
+ storedName: drizzle_orm_pg_core.PgColumn<{
2726
+ name: "stored_name";
2727
+ tableName: "file_metadata";
2728
+ dataType: "string";
2729
+ columnType: "PgVarchar";
2730
+ data: string;
2731
+ driverParam: string;
2732
+ notNull: true;
2733
+ hasDefault: false;
2734
+ isPrimaryKey: false;
2735
+ isAutoincrement: false;
2736
+ hasRuntimeDefault: false;
2737
+ enumValues: [string, ...string[]];
2738
+ baseColumn: never;
2739
+ identity: undefined;
2740
+ generated: undefined;
2741
+ }, {}, {
2742
+ length: 500;
2743
+ }>;
2744
+ extension: drizzle_orm_pg_core.PgColumn<{
2745
+ name: "extension";
2746
+ tableName: "file_metadata";
2747
+ dataType: "string";
2748
+ columnType: "PgVarchar";
2749
+ data: string;
2750
+ driverParam: string;
2751
+ notNull: false;
2752
+ hasDefault: false;
2753
+ isPrimaryKey: false;
2754
+ isAutoincrement: false;
2755
+ hasRuntimeDefault: false;
2756
+ enumValues: [string, ...string[]];
2757
+ baseColumn: never;
2758
+ identity: undefined;
2759
+ generated: undefined;
2760
+ }, {}, {
2761
+ length: 20;
2762
+ }>;
2763
+ mimeType: drizzle_orm_pg_core.PgColumn<{
2764
+ name: "mime_type";
2765
+ tableName: "file_metadata";
2766
+ dataType: "string";
2767
+ columnType: "PgVarchar";
2768
+ data: string;
2769
+ driverParam: string;
2770
+ notNull: true;
2771
+ hasDefault: false;
2772
+ isPrimaryKey: false;
2773
+ isAutoincrement: false;
2774
+ hasRuntimeDefault: false;
2775
+ enumValues: [string, ...string[]];
2776
+ baseColumn: never;
2777
+ identity: undefined;
2778
+ generated: undefined;
2779
+ }, {}, {
2780
+ length: 100;
2781
+ }>;
2782
+ size: drizzle_orm_pg_core.PgColumn<{
2783
+ name: "size";
2784
+ tableName: "file_metadata";
2785
+ dataType: "number";
2786
+ columnType: "PgBigInt53";
2787
+ data: number;
2788
+ driverParam: string | number;
2789
+ notNull: true;
2790
+ hasDefault: false;
2791
+ isPrimaryKey: false;
2792
+ isAutoincrement: false;
2793
+ hasRuntimeDefault: false;
2794
+ enumValues: undefined;
2795
+ baseColumn: never;
2796
+ identity: undefined;
2797
+ generated: undefined;
2798
+ }, {}, {}>;
2799
+ md5Hash: drizzle_orm_pg_core.PgColumn<{
2800
+ name: "md5_hash";
2801
+ tableName: "file_metadata";
2802
+ dataType: "string";
2803
+ columnType: "PgVarchar";
2804
+ data: string;
2805
+ driverParam: string;
2806
+ notNull: true;
2807
+ hasDefault: false;
2808
+ isPrimaryKey: false;
2809
+ isAutoincrement: false;
2810
+ hasRuntimeDefault: false;
2811
+ enumValues: [string, ...string[]];
2812
+ baseColumn: never;
2813
+ identity: undefined;
2814
+ generated: undefined;
2815
+ }, {}, {
2816
+ length: 32;
2817
+ }>;
2818
+ sha256Hash: drizzle_orm_pg_core.PgColumn<{
2819
+ name: "sha256_hash";
2820
+ tableName: "file_metadata";
2821
+ dataType: "string";
2822
+ columnType: "PgVarchar";
2823
+ data: string;
2824
+ driverParam: string;
2825
+ notNull: false;
2826
+ hasDefault: false;
2827
+ isPrimaryKey: false;
2828
+ isAutoincrement: false;
2829
+ hasRuntimeDefault: false;
2830
+ enumValues: [string, ...string[]];
2831
+ baseColumn: never;
2832
+ identity: undefined;
2833
+ generated: undefined;
2834
+ }, {}, {
2835
+ length: 64;
2836
+ }>;
2837
+ storageProviderId: drizzle_orm_pg_core.PgColumn<{
2838
+ name: "storage_provider_id";
2839
+ tableName: "file_metadata";
2840
+ dataType: "number";
2841
+ columnType: "PgInteger";
2842
+ data: number;
2843
+ driverParam: string | number;
2844
+ notNull: true;
2845
+ hasDefault: false;
2846
+ isPrimaryKey: false;
2847
+ isAutoincrement: false;
2848
+ hasRuntimeDefault: false;
2849
+ enumValues: undefined;
2850
+ baseColumn: never;
2851
+ identity: undefined;
2852
+ generated: undefined;
2853
+ }, {}, {}>;
2854
+ storagePath: drizzle_orm_pg_core.PgColumn<{
2855
+ name: "storage_path";
2856
+ tableName: "file_metadata";
2857
+ dataType: "string";
2858
+ columnType: "PgText";
2859
+ data: string;
2860
+ driverParam: string;
2861
+ notNull: true;
2862
+ hasDefault: false;
2863
+ isPrimaryKey: false;
2864
+ isAutoincrement: false;
2865
+ hasRuntimeDefault: false;
2866
+ enumValues: [string, ...string[]];
2867
+ baseColumn: never;
2868
+ identity: undefined;
2869
+ generated: undefined;
2870
+ }, {}, {}>;
2871
+ cdnUrl: drizzle_orm_pg_core.PgColumn<{
2872
+ name: "cdn_url";
2873
+ tableName: "file_metadata";
2874
+ dataType: "string";
2875
+ columnType: "PgText";
2876
+ data: string;
2877
+ driverParam: string;
2878
+ notNull: false;
2879
+ hasDefault: false;
2880
+ isPrimaryKey: false;
2881
+ isAutoincrement: false;
2882
+ hasRuntimeDefault: false;
2883
+ enumValues: [string, ...string[]];
2884
+ baseColumn: never;
2885
+ identity: undefined;
2886
+ generated: undefined;
2887
+ }, {}, {}>;
2888
+ folderId: drizzle_orm_pg_core.PgColumn<{
2889
+ name: "folder_id";
2890
+ tableName: "file_metadata";
2891
+ dataType: "string";
2892
+ columnType: "PgUUID";
2893
+ data: string;
2894
+ driverParam: string;
2895
+ notNull: false;
2896
+ hasDefault: false;
2897
+ isPrimaryKey: false;
2898
+ isAutoincrement: false;
2899
+ hasRuntimeDefault: false;
2900
+ enumValues: undefined;
2901
+ baseColumn: never;
2902
+ identity: undefined;
2903
+ generated: undefined;
2904
+ }, {}, {}>;
2905
+ moduleId: drizzle_orm_pg_core.PgColumn<{
2906
+ name: "module_id";
2907
+ tableName: "file_metadata";
2908
+ dataType: "string";
2909
+ columnType: "PgVarchar";
2910
+ data: string;
2911
+ driverParam: string;
2912
+ notNull: false;
2913
+ hasDefault: false;
2914
+ isPrimaryKey: false;
2915
+ isAutoincrement: false;
2916
+ hasRuntimeDefault: false;
2917
+ enumValues: [string, ...string[]];
2918
+ baseColumn: never;
2919
+ identity: undefined;
2920
+ generated: undefined;
2921
+ }, {}, {
2922
+ length: 100;
2923
+ }>;
2924
+ businessId: drizzle_orm_pg_core.PgColumn<{
2925
+ name: "business_id";
2926
+ tableName: "file_metadata";
2927
+ dataType: "string";
2928
+ columnType: "PgVarchar";
2929
+ data: string;
2930
+ driverParam: string;
2931
+ notNull: false;
2932
+ hasDefault: false;
2933
+ isPrimaryKey: false;
2934
+ isAutoincrement: false;
2935
+ hasRuntimeDefault: false;
2936
+ enumValues: [string, ...string[]];
2937
+ baseColumn: never;
2938
+ identity: undefined;
2939
+ generated: undefined;
2940
+ }, {}, {
2941
+ length: 255;
2942
+ }>;
2943
+ tags: drizzle_orm_pg_core.PgColumn<{
2944
+ name: "tags";
2945
+ tableName: "file_metadata";
2946
+ dataType: "json";
2947
+ columnType: "PgJson";
2948
+ data: unknown;
2949
+ driverParam: unknown;
2950
+ notNull: false;
2951
+ hasDefault: false;
2952
+ isPrimaryKey: false;
2953
+ isAutoincrement: false;
2954
+ hasRuntimeDefault: false;
2955
+ enumValues: undefined;
2956
+ baseColumn: never;
2957
+ identity: undefined;
2958
+ generated: undefined;
2959
+ }, {}, {}>;
2960
+ metadata: drizzle_orm_pg_core.PgColumn<{
2961
+ name: "metadata";
2962
+ tableName: "file_metadata";
2963
+ dataType: "json";
2964
+ columnType: "PgJson";
2965
+ data: unknown;
2966
+ driverParam: unknown;
2967
+ notNull: false;
2968
+ hasDefault: false;
2969
+ isPrimaryKey: false;
2970
+ isAutoincrement: false;
2971
+ hasRuntimeDefault: false;
2972
+ enumValues: undefined;
2973
+ baseColumn: never;
2974
+ identity: undefined;
2975
+ generated: undefined;
2976
+ }, {}, {}>;
2977
+ isTemporary: drizzle_orm_pg_core.PgColumn<{
2978
+ name: "is_temporary";
2979
+ tableName: "file_metadata";
2980
+ dataType: "boolean";
2981
+ columnType: "PgBoolean";
2982
+ data: boolean;
2983
+ driverParam: boolean;
2984
+ notNull: true;
2985
+ hasDefault: true;
2986
+ isPrimaryKey: false;
2987
+ isAutoincrement: false;
2988
+ hasRuntimeDefault: false;
2989
+ enumValues: undefined;
2990
+ baseColumn: never;
2991
+ identity: undefined;
2992
+ generated: undefined;
2993
+ }, {}, {}>;
2994
+ isDeleted: drizzle_orm_pg_core.PgColumn<{
2995
+ name: "is_deleted";
2996
+ tableName: "file_metadata";
2997
+ dataType: "boolean";
2998
+ columnType: "PgBoolean";
2999
+ data: boolean;
3000
+ driverParam: boolean;
3001
+ notNull: true;
3002
+ hasDefault: true;
3003
+ isPrimaryKey: false;
3004
+ isAutoincrement: false;
3005
+ hasRuntimeDefault: false;
3006
+ enumValues: undefined;
3007
+ baseColumn: never;
3008
+ identity: undefined;
3009
+ generated: undefined;
3010
+ }, {}, {}>;
3011
+ accessCount: drizzle_orm_pg_core.PgColumn<{
3012
+ name: "access_count";
3013
+ tableName: "file_metadata";
3014
+ dataType: "number";
3015
+ columnType: "PgInteger";
3016
+ data: number;
3017
+ driverParam: string | number;
3018
+ notNull: true;
3019
+ hasDefault: true;
3020
+ isPrimaryKey: false;
3021
+ isAutoincrement: false;
3022
+ hasRuntimeDefault: false;
3023
+ enumValues: undefined;
3024
+ baseColumn: never;
3025
+ identity: undefined;
3026
+ generated: undefined;
3027
+ }, {}, {}>;
3028
+ downloadCount: drizzle_orm_pg_core.PgColumn<{
3029
+ name: "download_count";
3030
+ tableName: "file_metadata";
3031
+ dataType: "number";
3032
+ columnType: "PgInteger";
3033
+ data: number;
3034
+ driverParam: string | number;
3035
+ notNull: true;
3036
+ hasDefault: true;
3037
+ isPrimaryKey: false;
3038
+ isAutoincrement: false;
3039
+ hasRuntimeDefault: false;
3040
+ enumValues: undefined;
3041
+ baseColumn: never;
3042
+ identity: undefined;
3043
+ generated: undefined;
3044
+ }, {}, {}>;
3045
+ uploaderId: drizzle_orm_pg_core.PgColumn<{
3046
+ name: "uploader_id";
3047
+ tableName: "file_metadata";
3048
+ dataType: "string";
3049
+ columnType: "PgVarchar";
3050
+ data: string;
3051
+ driverParam: string;
3052
+ notNull: true;
3053
+ hasDefault: false;
3054
+ isPrimaryKey: false;
3055
+ isAutoincrement: false;
3056
+ hasRuntimeDefault: false;
3057
+ enumValues: [string, ...string[]];
3058
+ baseColumn: never;
3059
+ identity: undefined;
3060
+ generated: undefined;
3061
+ }, {}, {
3062
+ length: 255;
3063
+ }>;
3064
+ uploadTime: drizzle_orm_pg_core.PgColumn<{
3065
+ name: "upload_time";
3066
+ tableName: "file_metadata";
3067
+ dataType: "date";
3068
+ columnType: "PgTimestamp";
3069
+ data: Date;
3070
+ driverParam: string;
3071
+ notNull: true;
3072
+ hasDefault: true;
3073
+ isPrimaryKey: false;
3074
+ isAutoincrement: false;
3075
+ hasRuntimeDefault: false;
3076
+ enumValues: undefined;
3077
+ baseColumn: never;
3078
+ identity: undefined;
3079
+ generated: undefined;
3080
+ }, {}, {}>;
3081
+ lastAccessTime: drizzle_orm_pg_core.PgColumn<{
3082
+ name: "last_access_time";
3083
+ tableName: "file_metadata";
3084
+ dataType: "date";
3085
+ columnType: "PgTimestamp";
3086
+ data: Date;
3087
+ driverParam: string;
3088
+ notNull: false;
3089
+ hasDefault: false;
3090
+ isPrimaryKey: false;
3091
+ isAutoincrement: false;
3092
+ hasRuntimeDefault: false;
3093
+ enumValues: undefined;
3094
+ baseColumn: never;
3095
+ identity: undefined;
3096
+ generated: undefined;
3097
+ }, {}, {}>;
3098
+ expiresAt: drizzle_orm_pg_core.PgColumn<{
3099
+ name: "expires_at";
3100
+ tableName: "file_metadata";
3101
+ dataType: "date";
3102
+ columnType: "PgTimestamp";
3103
+ data: Date;
3104
+ driverParam: string;
3105
+ notNull: false;
3106
+ hasDefault: false;
3107
+ isPrimaryKey: false;
3108
+ isAutoincrement: false;
3109
+ hasRuntimeDefault: false;
3110
+ enumValues: undefined;
3111
+ baseColumn: never;
3112
+ identity: undefined;
3113
+ generated: undefined;
3114
+ }, {}, {}>;
3115
+ createdAt: drizzle_orm_pg_core.PgColumn<{
3116
+ name: "created_at";
3117
+ tableName: "file_metadata";
3118
+ dataType: "date";
3119
+ columnType: "PgTimestamp";
3120
+ data: Date;
3121
+ driverParam: string;
3122
+ notNull: true;
3123
+ hasDefault: true;
3124
+ isPrimaryKey: false;
3125
+ isAutoincrement: false;
3126
+ hasRuntimeDefault: false;
3127
+ enumValues: undefined;
3128
+ baseColumn: never;
3129
+ identity: undefined;
3130
+ generated: undefined;
3131
+ }, {}, {}>;
3132
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
3133
+ name: "updated_at";
3134
+ tableName: "file_metadata";
3135
+ dataType: "date";
3136
+ columnType: "PgTimestamp";
3137
+ data: Date;
3138
+ driverParam: string;
3139
+ notNull: true;
3140
+ hasDefault: true;
3141
+ isPrimaryKey: false;
3142
+ isAutoincrement: false;
3143
+ hasRuntimeDefault: false;
3144
+ enumValues: undefined;
3145
+ baseColumn: never;
3146
+ identity: undefined;
3147
+ generated: undefined;
3148
+ }, {}, {}>;
3149
+ deletedAt: drizzle_orm_pg_core.PgColumn<{
3150
+ name: "deleted_at";
3151
+ tableName: "file_metadata";
3152
+ dataType: "date";
3153
+ columnType: "PgTimestamp";
3154
+ data: Date;
3155
+ driverParam: string;
3156
+ notNull: false;
3157
+ hasDefault: false;
3158
+ isPrimaryKey: false;
3159
+ isAutoincrement: false;
3160
+ hasRuntimeDefault: false;
3161
+ enumValues: undefined;
3162
+ baseColumn: never;
3163
+ identity: undefined;
3164
+ generated: undefined;
3165
+ }, {}, {}>;
3166
+ };
3167
+ dialect: "pg";
3168
+ }>;
3169
+ /**
3170
+ * 文件版本表 (file_versions)
3171
+ *
3172
+ * 支持文件的版本管理,记录文件的历史版本信息。
3173
+ */
3174
+ declare const fileVersions: drizzle_orm_pg_core.PgTableWithColumns<{
3175
+ name: "file_versions";
3176
+ schema: undefined;
3177
+ columns: {
3178
+ id: drizzle_orm_pg_core.PgColumn<{
3179
+ name: "id";
3180
+ tableName: "file_versions";
3181
+ dataType: "string";
3182
+ columnType: "PgUUID";
3183
+ data: string;
3184
+ driverParam: string;
3185
+ notNull: true;
3186
+ hasDefault: true;
3187
+ isPrimaryKey: true;
3188
+ isAutoincrement: false;
3189
+ hasRuntimeDefault: false;
3190
+ enumValues: undefined;
3191
+ baseColumn: never;
3192
+ identity: undefined;
3193
+ generated: undefined;
3194
+ }, {}, {}>;
3195
+ fileId: drizzle_orm_pg_core.PgColumn<{
3196
+ name: "file_id";
3197
+ tableName: "file_versions";
3198
+ dataType: "string";
3199
+ columnType: "PgUUID";
3200
+ data: string;
3201
+ driverParam: string;
3202
+ notNull: true;
3203
+ hasDefault: false;
3204
+ isPrimaryKey: false;
3205
+ isAutoincrement: false;
3206
+ hasRuntimeDefault: false;
3207
+ enumValues: undefined;
3208
+ baseColumn: never;
3209
+ identity: undefined;
3210
+ generated: undefined;
3211
+ }, {}, {}>;
3212
+ version: drizzle_orm_pg_core.PgColumn<{
3213
+ name: "version";
3214
+ tableName: "file_versions";
3215
+ dataType: "number";
3216
+ columnType: "PgInteger";
3217
+ data: number;
3218
+ driverParam: string | number;
3219
+ notNull: true;
3220
+ hasDefault: false;
3221
+ isPrimaryKey: false;
3222
+ isAutoincrement: false;
3223
+ hasRuntimeDefault: false;
3224
+ enumValues: undefined;
3225
+ baseColumn: never;
3226
+ identity: undefined;
3227
+ generated: undefined;
3228
+ }, {}, {}>;
3229
+ description: drizzle_orm_pg_core.PgColumn<{
3230
+ name: "description";
3231
+ tableName: "file_versions";
3232
+ dataType: "string";
3233
+ columnType: "PgText";
3234
+ data: string;
3235
+ driverParam: string;
3236
+ notNull: false;
3237
+ hasDefault: false;
3238
+ isPrimaryKey: false;
3239
+ isAutoincrement: false;
3240
+ hasRuntimeDefault: false;
3241
+ enumValues: [string, ...string[]];
3242
+ baseColumn: never;
3243
+ identity: undefined;
3244
+ generated: undefined;
3245
+ }, {}, {}>;
3246
+ size: drizzle_orm_pg_core.PgColumn<{
3247
+ name: "size";
3248
+ tableName: "file_versions";
3249
+ dataType: "number";
3250
+ columnType: "PgBigInt53";
3251
+ data: number;
3252
+ driverParam: string | number;
3253
+ notNull: true;
3254
+ hasDefault: false;
3255
+ isPrimaryKey: false;
3256
+ isAutoincrement: false;
3257
+ hasRuntimeDefault: false;
3258
+ enumValues: undefined;
3259
+ baseColumn: never;
3260
+ identity: undefined;
3261
+ generated: undefined;
3262
+ }, {}, {}>;
3263
+ md5Hash: drizzle_orm_pg_core.PgColumn<{
3264
+ name: "md5_hash";
3265
+ tableName: "file_versions";
3266
+ dataType: "string";
3267
+ columnType: "PgVarchar";
3268
+ data: string;
3269
+ driverParam: string;
3270
+ notNull: true;
3271
+ hasDefault: false;
3272
+ isPrimaryKey: false;
3273
+ isAutoincrement: false;
3274
+ hasRuntimeDefault: false;
3275
+ enumValues: [string, ...string[]];
3276
+ baseColumn: never;
3277
+ identity: undefined;
3278
+ generated: undefined;
3279
+ }, {}, {
3280
+ length: 32;
3281
+ }>;
3282
+ storagePath: drizzle_orm_pg_core.PgColumn<{
3283
+ name: "storage_path";
3284
+ tableName: "file_versions";
3285
+ dataType: "string";
3286
+ columnType: "PgText";
3287
+ data: string;
3288
+ driverParam: string;
3289
+ notNull: true;
3290
+ hasDefault: false;
3291
+ isPrimaryKey: false;
3292
+ isAutoincrement: false;
3293
+ hasRuntimeDefault: false;
3294
+ enumValues: [string, ...string[]];
3295
+ baseColumn: never;
3296
+ identity: undefined;
3297
+ generated: undefined;
3298
+ }, {}, {}>;
3299
+ cdnUrl: drizzle_orm_pg_core.PgColumn<{
3300
+ name: "cdn_url";
3301
+ tableName: "file_versions";
3302
+ dataType: "string";
3303
+ columnType: "PgText";
3304
+ data: string;
3305
+ driverParam: string;
3306
+ notNull: false;
3307
+ hasDefault: false;
3308
+ isPrimaryKey: false;
3309
+ isAutoincrement: false;
3310
+ hasRuntimeDefault: false;
3311
+ enumValues: [string, ...string[]];
3312
+ baseColumn: never;
3313
+ identity: undefined;
3314
+ generated: undefined;
3315
+ }, {}, {}>;
3316
+ isCurrent: drizzle_orm_pg_core.PgColumn<{
3317
+ name: "is_current";
3318
+ tableName: "file_versions";
3319
+ dataType: "boolean";
3320
+ columnType: "PgBoolean";
3321
+ data: boolean;
3322
+ driverParam: boolean;
3323
+ notNull: true;
3324
+ hasDefault: true;
3325
+ isPrimaryKey: false;
3326
+ isAutoincrement: false;
3327
+ hasRuntimeDefault: false;
3328
+ enumValues: undefined;
3329
+ baseColumn: never;
3330
+ identity: undefined;
3331
+ generated: undefined;
3332
+ }, {}, {}>;
3333
+ createdBy: drizzle_orm_pg_core.PgColumn<{
3334
+ name: "created_by";
3335
+ tableName: "file_versions";
3336
+ dataType: "string";
3337
+ columnType: "PgVarchar";
3338
+ data: string;
3339
+ driverParam: string;
3340
+ notNull: true;
3341
+ hasDefault: false;
3342
+ isPrimaryKey: false;
3343
+ isAutoincrement: false;
3344
+ hasRuntimeDefault: false;
3345
+ enumValues: [string, ...string[]];
3346
+ baseColumn: never;
3347
+ identity: undefined;
3348
+ generated: undefined;
3349
+ }, {}, {
3350
+ length: 255;
3351
+ }>;
3352
+ createdAt: drizzle_orm_pg_core.PgColumn<{
3353
+ name: "created_at";
3354
+ tableName: "file_versions";
3355
+ dataType: "date";
3356
+ columnType: "PgTimestamp";
3357
+ data: Date;
3358
+ driverParam: string;
3359
+ notNull: true;
3360
+ hasDefault: true;
3361
+ isPrimaryKey: false;
3362
+ isAutoincrement: false;
3363
+ hasRuntimeDefault: false;
3364
+ enumValues: undefined;
3365
+ baseColumn: never;
3366
+ identity: undefined;
3367
+ generated: undefined;
3368
+ }, {}, {}>;
3369
+ };
3370
+ dialect: "pg";
3371
+ }>;
3372
+ /**
3373
+ * 文件处理记录表 (file_processing_records)
3374
+ *
3375
+ * 记录文件的处理历史,包括压缩、格式转换、缩略图生成等操作。
3376
+ */
3377
+ declare const fileProcessingRecords: drizzle_orm_pg_core.PgTableWithColumns<{
3378
+ name: "file_processing_records";
3379
+ schema: undefined;
3380
+ columns: {
3381
+ id: drizzle_orm_pg_core.PgColumn<{
3382
+ name: "id";
3383
+ tableName: "file_processing_records";
3384
+ dataType: "string";
3385
+ columnType: "PgUUID";
3386
+ data: string;
3387
+ driverParam: string;
3388
+ notNull: true;
3389
+ hasDefault: true;
3390
+ isPrimaryKey: true;
3391
+ isAutoincrement: false;
3392
+ hasRuntimeDefault: false;
3393
+ enumValues: undefined;
3394
+ baseColumn: never;
3395
+ identity: undefined;
3396
+ generated: undefined;
3397
+ }, {}, {}>;
3398
+ fileId: drizzle_orm_pg_core.PgColumn<{
3399
+ name: "file_id";
3400
+ tableName: "file_processing_records";
3401
+ dataType: "string";
3402
+ columnType: "PgUUID";
3403
+ data: string;
3404
+ driverParam: string;
3405
+ notNull: true;
3406
+ hasDefault: false;
3407
+ isPrimaryKey: false;
3408
+ isAutoincrement: false;
3409
+ hasRuntimeDefault: false;
3410
+ enumValues: undefined;
3411
+ baseColumn: never;
3412
+ identity: undefined;
3413
+ generated: undefined;
3414
+ }, {}, {}>;
3415
+ processingType: drizzle_orm_pg_core.PgColumn<{
3416
+ name: "processing_type";
3417
+ tableName: "file_processing_records";
3418
+ dataType: "string";
3419
+ columnType: "PgVarchar";
3420
+ data: string;
3421
+ driverParam: string;
3422
+ notNull: true;
3423
+ hasDefault: false;
3424
+ isPrimaryKey: false;
3425
+ isAutoincrement: false;
3426
+ hasRuntimeDefault: false;
3427
+ enumValues: [string, ...string[]];
3428
+ baseColumn: never;
3429
+ identity: undefined;
3430
+ generated: undefined;
3431
+ }, {}, {
3432
+ length: 50;
3433
+ }>;
3434
+ processorName: drizzle_orm_pg_core.PgColumn<{
3435
+ name: "processor_name";
3436
+ tableName: "file_processing_records";
3437
+ dataType: "string";
3438
+ columnType: "PgVarchar";
3439
+ data: string;
3440
+ driverParam: string;
3441
+ notNull: true;
3442
+ hasDefault: false;
3443
+ isPrimaryKey: false;
3444
+ isAutoincrement: false;
3445
+ hasRuntimeDefault: false;
3446
+ enumValues: [string, ...string[]];
3447
+ baseColumn: never;
3448
+ identity: undefined;
3449
+ generated: undefined;
3450
+ }, {}, {
3451
+ length: 100;
3452
+ }>;
3453
+ status: drizzle_orm_pg_core.PgColumn<{
3454
+ name: "status";
3455
+ tableName: "file_processing_records";
3456
+ dataType: "string";
3457
+ columnType: "PgVarchar";
3458
+ data: string;
3459
+ driverParam: string;
3460
+ notNull: true;
3461
+ hasDefault: true;
3462
+ isPrimaryKey: false;
3463
+ isAutoincrement: false;
3464
+ hasRuntimeDefault: false;
3465
+ enumValues: [string, ...string[]];
3466
+ baseColumn: never;
3467
+ identity: undefined;
3468
+ generated: undefined;
3469
+ }, {}, {
3470
+ length: 20;
3471
+ }>;
3472
+ parameters: drizzle_orm_pg_core.PgColumn<{
3473
+ name: "parameters";
3474
+ tableName: "file_processing_records";
3475
+ dataType: "json";
3476
+ columnType: "PgJson";
3477
+ data: unknown;
3478
+ driverParam: unknown;
3479
+ notNull: false;
3480
+ hasDefault: false;
3481
+ isPrimaryKey: false;
3482
+ isAutoincrement: false;
3483
+ hasRuntimeDefault: false;
3484
+ enumValues: undefined;
3485
+ baseColumn: never;
3486
+ identity: undefined;
3487
+ generated: undefined;
3488
+ }, {}, {}>;
3489
+ result: drizzle_orm_pg_core.PgColumn<{
3490
+ name: "result";
3491
+ tableName: "file_processing_records";
3492
+ dataType: "json";
3493
+ columnType: "PgJson";
3494
+ data: unknown;
3495
+ driverParam: unknown;
3496
+ notNull: false;
3497
+ hasDefault: false;
3498
+ isPrimaryKey: false;
3499
+ isAutoincrement: false;
3500
+ hasRuntimeDefault: false;
3501
+ enumValues: undefined;
3502
+ baseColumn: never;
3503
+ identity: undefined;
3504
+ generated: undefined;
3505
+ }, {}, {}>;
3506
+ outputPath: drizzle_orm_pg_core.PgColumn<{
3507
+ name: "output_path";
3508
+ tableName: "file_processing_records";
3509
+ dataType: "string";
3510
+ columnType: "PgText";
3511
+ data: string;
3512
+ driverParam: string;
3513
+ notNull: false;
3514
+ hasDefault: false;
3515
+ isPrimaryKey: false;
3516
+ isAutoincrement: false;
3517
+ hasRuntimeDefault: false;
3518
+ enumValues: [string, ...string[]];
3519
+ baseColumn: never;
3520
+ identity: undefined;
3521
+ generated: undefined;
3522
+ }, {}, {}>;
3523
+ outputSize: drizzle_orm_pg_core.PgColumn<{
3524
+ name: "output_size";
3525
+ tableName: "file_processing_records";
3526
+ dataType: "number";
3527
+ columnType: "PgBigInt53";
3528
+ data: number;
3529
+ driverParam: string | number;
3530
+ notNull: false;
3531
+ hasDefault: false;
3532
+ isPrimaryKey: false;
3533
+ isAutoincrement: false;
3534
+ hasRuntimeDefault: false;
3535
+ enumValues: undefined;
3536
+ baseColumn: never;
3537
+ identity: undefined;
3538
+ generated: undefined;
3539
+ }, {}, {}>;
3540
+ processingTimeMs: drizzle_orm_pg_core.PgColumn<{
3541
+ name: "processing_time_ms";
3542
+ tableName: "file_processing_records";
3543
+ dataType: "number";
3544
+ columnType: "PgInteger";
3545
+ data: number;
3546
+ driverParam: string | number;
3547
+ notNull: false;
3548
+ hasDefault: false;
3549
+ isPrimaryKey: false;
3550
+ isAutoincrement: false;
3551
+ hasRuntimeDefault: false;
3552
+ enumValues: undefined;
3553
+ baseColumn: never;
3554
+ identity: undefined;
3555
+ generated: undefined;
3556
+ }, {}, {}>;
3557
+ errorMessage: drizzle_orm_pg_core.PgColumn<{
3558
+ name: "error_message";
3559
+ tableName: "file_processing_records";
3560
+ dataType: "string";
3561
+ columnType: "PgText";
3562
+ data: string;
3563
+ driverParam: string;
3564
+ notNull: false;
3565
+ hasDefault: false;
3566
+ isPrimaryKey: false;
3567
+ isAutoincrement: false;
3568
+ hasRuntimeDefault: false;
3569
+ enumValues: [string, ...string[]];
3570
+ baseColumn: never;
3571
+ identity: undefined;
3572
+ generated: undefined;
3573
+ }, {}, {}>;
3574
+ retryCount: drizzle_orm_pg_core.PgColumn<{
3575
+ name: "retry_count";
3576
+ tableName: "file_processing_records";
3577
+ dataType: "number";
3578
+ columnType: "PgInteger";
3579
+ data: number;
3580
+ driverParam: string | number;
3581
+ notNull: true;
3582
+ hasDefault: true;
3583
+ isPrimaryKey: false;
3584
+ isAutoincrement: false;
3585
+ hasRuntimeDefault: false;
3586
+ enumValues: undefined;
3587
+ baseColumn: never;
3588
+ identity: undefined;
3589
+ generated: undefined;
3590
+ }, {}, {}>;
3591
+ priority: drizzle_orm_pg_core.PgColumn<{
3592
+ name: "priority";
3593
+ tableName: "file_processing_records";
3594
+ dataType: "number";
3595
+ columnType: "PgInteger";
3596
+ data: number;
3597
+ driverParam: string | number;
3598
+ notNull: true;
3599
+ hasDefault: true;
3600
+ isPrimaryKey: false;
3601
+ isAutoincrement: false;
3602
+ hasRuntimeDefault: false;
3603
+ enumValues: undefined;
3604
+ baseColumn: never;
3605
+ identity: undefined;
3606
+ generated: undefined;
3607
+ }, {}, {}>;
3608
+ startedAt: drizzle_orm_pg_core.PgColumn<{
3609
+ name: "started_at";
3610
+ tableName: "file_processing_records";
3611
+ dataType: "date";
3612
+ columnType: "PgTimestamp";
3613
+ data: Date;
3614
+ driverParam: string;
3615
+ notNull: false;
3616
+ hasDefault: false;
3617
+ isPrimaryKey: false;
3618
+ isAutoincrement: false;
3619
+ hasRuntimeDefault: false;
3620
+ enumValues: undefined;
3621
+ baseColumn: never;
3622
+ identity: undefined;
3623
+ generated: undefined;
3624
+ }, {}, {}>;
3625
+ completedAt: drizzle_orm_pg_core.PgColumn<{
3626
+ name: "completed_at";
3627
+ tableName: "file_processing_records";
3628
+ dataType: "date";
3629
+ columnType: "PgTimestamp";
3630
+ data: Date;
3631
+ driverParam: string;
3632
+ notNull: false;
3633
+ hasDefault: false;
3634
+ isPrimaryKey: false;
3635
+ isAutoincrement: false;
3636
+ hasRuntimeDefault: false;
3637
+ enumValues: undefined;
3638
+ baseColumn: never;
3639
+ identity: undefined;
3640
+ generated: undefined;
3641
+ }, {}, {}>;
3642
+ createdAt: drizzle_orm_pg_core.PgColumn<{
3643
+ name: "created_at";
3644
+ tableName: "file_processing_records";
3645
+ dataType: "date";
3646
+ columnType: "PgTimestamp";
3647
+ data: Date;
3648
+ driverParam: string;
3649
+ notNull: true;
3650
+ hasDefault: true;
3651
+ isPrimaryKey: false;
3652
+ isAutoincrement: false;
3653
+ hasRuntimeDefault: false;
3654
+ enumValues: undefined;
3655
+ baseColumn: never;
3656
+ identity: undefined;
3657
+ generated: undefined;
3658
+ }, {}, {}>;
3659
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
3660
+ name: "updated_at";
3661
+ tableName: "file_processing_records";
3662
+ dataType: "date";
3663
+ columnType: "PgTimestamp";
3664
+ data: Date;
3665
+ driverParam: string;
3666
+ notNull: true;
3667
+ hasDefault: true;
3668
+ isPrimaryKey: false;
3669
+ isAutoincrement: false;
3670
+ hasRuntimeDefault: false;
3671
+ enumValues: undefined;
3672
+ baseColumn: never;
3673
+ identity: undefined;
3674
+ generated: undefined;
3675
+ }, {}, {}>;
3676
+ };
3677
+ dialect: "pg";
3678
+ }>;
3679
+ /**
3680
+ * 文件分享表 (file_shares)
3681
+ *
3682
+ * 管理文件的分享功能,支持密码保护、过期时间、访问限制等。
3683
+ */
3684
+ declare const fileShares: drizzle_orm_pg_core.PgTableWithColumns<{
3685
+ name: "file_shares";
3686
+ schema: undefined;
3687
+ columns: {
3688
+ id: drizzle_orm_pg_core.PgColumn<{
3689
+ name: "id";
3690
+ tableName: "file_shares";
3691
+ dataType: "string";
3692
+ columnType: "PgUUID";
3693
+ data: string;
3694
+ driverParam: string;
3695
+ notNull: true;
3696
+ hasDefault: true;
3697
+ isPrimaryKey: true;
3698
+ isAutoincrement: false;
3699
+ hasRuntimeDefault: false;
3700
+ enumValues: undefined;
3701
+ baseColumn: never;
3702
+ identity: undefined;
3703
+ generated: undefined;
3704
+ }, {}, {}>;
3705
+ shareCode: drizzle_orm_pg_core.PgColumn<{
3706
+ name: "share_code";
3707
+ tableName: "file_shares";
3708
+ dataType: "string";
3709
+ columnType: "PgVarchar";
3710
+ data: string;
3711
+ driverParam: string;
3712
+ notNull: true;
3713
+ hasDefault: false;
3714
+ isPrimaryKey: false;
3715
+ isAutoincrement: false;
3716
+ hasRuntimeDefault: false;
3717
+ enumValues: [string, ...string[]];
3718
+ baseColumn: never;
3719
+ identity: undefined;
3720
+ generated: undefined;
3721
+ }, {}, {
3722
+ length: 20;
3723
+ }>;
3724
+ fileIds: drizzle_orm_pg_core.PgColumn<{
3725
+ name: "file_ids";
3726
+ tableName: "file_shares";
3727
+ dataType: "json";
3728
+ columnType: "PgJson";
3729
+ data: unknown;
3730
+ driverParam: unknown;
3731
+ notNull: true;
3732
+ hasDefault: false;
3733
+ isPrimaryKey: false;
3734
+ isAutoincrement: false;
3735
+ hasRuntimeDefault: false;
3736
+ enumValues: undefined;
3737
+ baseColumn: never;
3738
+ identity: undefined;
3739
+ generated: undefined;
3740
+ }, {}, {}>;
3741
+ title: drizzle_orm_pg_core.PgColumn<{
3742
+ name: "title";
3743
+ tableName: "file_shares";
3744
+ dataType: "string";
3745
+ columnType: "PgVarchar";
3746
+ data: string;
3747
+ driverParam: string;
3748
+ notNull: false;
3749
+ hasDefault: false;
3750
+ isPrimaryKey: false;
3751
+ isAutoincrement: false;
3752
+ hasRuntimeDefault: false;
3753
+ enumValues: [string, ...string[]];
3754
+ baseColumn: never;
3755
+ identity: undefined;
3756
+ generated: undefined;
3757
+ }, {}, {
3758
+ length: 255;
3759
+ }>;
3760
+ description: drizzle_orm_pg_core.PgColumn<{
3761
+ name: "description";
3762
+ tableName: "file_shares";
3763
+ dataType: "string";
3764
+ columnType: "PgText";
3765
+ data: string;
3766
+ driverParam: string;
3767
+ notNull: false;
3768
+ hasDefault: false;
3769
+ isPrimaryKey: false;
3770
+ isAutoincrement: false;
3771
+ hasRuntimeDefault: false;
3772
+ enumValues: [string, ...string[]];
3773
+ baseColumn: never;
3774
+ identity: undefined;
3775
+ generated: undefined;
3776
+ }, {}, {}>;
3777
+ password: drizzle_orm_pg_core.PgColumn<{
3778
+ name: "password";
3779
+ tableName: "file_shares";
3780
+ dataType: "string";
3781
+ columnType: "PgVarchar";
3782
+ data: string;
3783
+ driverParam: string;
3784
+ notNull: false;
3785
+ hasDefault: false;
3786
+ isPrimaryKey: false;
3787
+ isAutoincrement: false;
3788
+ hasRuntimeDefault: false;
3789
+ enumValues: [string, ...string[]];
3790
+ baseColumn: never;
3791
+ identity: undefined;
3792
+ generated: undefined;
3793
+ }, {}, {
3794
+ length: 100;
3795
+ }>;
3796
+ permission: drizzle_orm_pg_core.PgColumn<{
3797
+ name: "permission";
3798
+ tableName: "file_shares";
3799
+ dataType: "string";
3800
+ columnType: "PgVarchar";
3801
+ data: string;
3802
+ driverParam: string;
3803
+ notNull: true;
3804
+ hasDefault: true;
3805
+ isPrimaryKey: false;
3806
+ isAutoincrement: false;
3807
+ hasRuntimeDefault: false;
3808
+ enumValues: [string, ...string[]];
3809
+ baseColumn: never;
3810
+ identity: undefined;
3811
+ generated: undefined;
3812
+ }, {}, {
3813
+ length: 20;
3814
+ }>;
3815
+ maxDownloads: drizzle_orm_pg_core.PgColumn<{
3816
+ name: "max_downloads";
3817
+ tableName: "file_shares";
3818
+ dataType: "number";
3819
+ columnType: "PgInteger";
3820
+ data: number;
3821
+ driverParam: string | number;
3822
+ notNull: false;
3823
+ hasDefault: false;
3824
+ isPrimaryKey: false;
3825
+ isAutoincrement: false;
3826
+ hasRuntimeDefault: false;
3827
+ enumValues: undefined;
3828
+ baseColumn: never;
3829
+ identity: undefined;
3830
+ generated: undefined;
3831
+ }, {}, {}>;
3832
+ downloadCount: drizzle_orm_pg_core.PgColumn<{
3833
+ name: "download_count";
3834
+ tableName: "file_shares";
3835
+ dataType: "number";
3836
+ columnType: "PgInteger";
3837
+ data: number;
3838
+ driverParam: string | number;
3839
+ notNull: true;
3840
+ hasDefault: true;
3841
+ isPrimaryKey: false;
3842
+ isAutoincrement: false;
3843
+ hasRuntimeDefault: false;
3844
+ enumValues: undefined;
3845
+ baseColumn: never;
3846
+ identity: undefined;
3847
+ generated: undefined;
3848
+ }, {}, {}>;
3849
+ maxAccess: drizzle_orm_pg_core.PgColumn<{
3850
+ name: "max_access";
3851
+ tableName: "file_shares";
3852
+ dataType: "number";
3853
+ columnType: "PgInteger";
3854
+ data: number;
3855
+ driverParam: string | number;
3856
+ notNull: false;
3857
+ hasDefault: false;
3858
+ isPrimaryKey: false;
3859
+ isAutoincrement: false;
3860
+ hasRuntimeDefault: false;
3861
+ enumValues: undefined;
3862
+ baseColumn: never;
3863
+ identity: undefined;
3864
+ generated: undefined;
3865
+ }, {}, {}>;
3866
+ accessCount: drizzle_orm_pg_core.PgColumn<{
3867
+ name: "access_count";
3868
+ tableName: "file_shares";
3869
+ dataType: "number";
3870
+ columnType: "PgInteger";
3871
+ data: number;
3872
+ driverParam: string | number;
3873
+ notNull: true;
3874
+ hasDefault: true;
3875
+ isPrimaryKey: false;
3876
+ isAutoincrement: false;
3877
+ hasRuntimeDefault: false;
3878
+ enumValues: undefined;
3879
+ baseColumn: never;
3880
+ identity: undefined;
3881
+ generated: undefined;
3882
+ }, {}, {}>;
3883
+ isActive: drizzle_orm_pg_core.PgColumn<{
3884
+ name: "is_active";
3885
+ tableName: "file_shares";
3886
+ dataType: "boolean";
3887
+ columnType: "PgBoolean";
3888
+ data: boolean;
3889
+ driverParam: boolean;
3890
+ notNull: true;
3891
+ hasDefault: true;
3892
+ isPrimaryKey: false;
3893
+ isAutoincrement: false;
3894
+ hasRuntimeDefault: false;
3895
+ enumValues: undefined;
3896
+ baseColumn: never;
3897
+ identity: undefined;
3898
+ generated: undefined;
3899
+ }, {}, {}>;
3900
+ expiresAt: drizzle_orm_pg_core.PgColumn<{
3901
+ name: "expires_at";
3902
+ tableName: "file_shares";
3903
+ dataType: "date";
3904
+ columnType: "PgTimestamp";
3905
+ data: Date;
3906
+ driverParam: string;
3907
+ notNull: false;
3908
+ hasDefault: false;
3909
+ isPrimaryKey: false;
3910
+ isAutoincrement: false;
3911
+ hasRuntimeDefault: false;
3912
+ enumValues: undefined;
3913
+ baseColumn: never;
3914
+ identity: undefined;
3915
+ generated: undefined;
3916
+ }, {}, {}>;
3917
+ createdBy: drizzle_orm_pg_core.PgColumn<{
3918
+ name: "created_by";
3919
+ tableName: "file_shares";
3920
+ dataType: "string";
3921
+ columnType: "PgVarchar";
3922
+ data: string;
3923
+ driverParam: string;
3924
+ notNull: true;
3925
+ hasDefault: false;
3926
+ isPrimaryKey: false;
3927
+ isAutoincrement: false;
3928
+ hasRuntimeDefault: false;
3929
+ enumValues: [string, ...string[]];
3930
+ baseColumn: never;
3931
+ identity: undefined;
3932
+ generated: undefined;
3933
+ }, {}, {
3934
+ length: 255;
3935
+ }>;
3936
+ createdAt: drizzle_orm_pg_core.PgColumn<{
3937
+ name: "created_at";
3938
+ tableName: "file_shares";
3939
+ dataType: "date";
3940
+ columnType: "PgTimestamp";
3941
+ data: Date;
3942
+ driverParam: string;
3943
+ notNull: true;
3944
+ hasDefault: true;
3945
+ isPrimaryKey: false;
3946
+ isAutoincrement: false;
3947
+ hasRuntimeDefault: false;
3948
+ enumValues: undefined;
3949
+ baseColumn: never;
3950
+ identity: undefined;
3951
+ generated: undefined;
3952
+ }, {}, {}>;
3953
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
3954
+ name: "updated_at";
3955
+ tableName: "file_shares";
3956
+ dataType: "date";
3957
+ columnType: "PgTimestamp";
3958
+ data: Date;
3959
+ driverParam: string;
3960
+ notNull: true;
3961
+ hasDefault: true;
3962
+ isPrimaryKey: false;
3963
+ isAutoincrement: false;
3964
+ hasRuntimeDefault: false;
3965
+ enumValues: undefined;
3966
+ baseColumn: never;
3967
+ identity: undefined;
3968
+ generated: undefined;
3969
+ }, {}, {}>;
3970
+ };
3971
+ dialect: "pg";
3972
+ }>;
3973
+ /**
3974
+ * 文件访问日志表 (file_access_logs)
3975
+ *
3976
+ * 记录文件的访问历史,用于统计分析和安全审计。
3977
+ */
3978
+ declare const fileAccessLogs: drizzle_orm_pg_core.PgTableWithColumns<{
3979
+ name: "file_access_logs";
3980
+ schema: undefined;
3981
+ columns: {
3982
+ id: drizzle_orm_pg_core.PgColumn<{
3983
+ name: "id";
3984
+ tableName: "file_access_logs";
3985
+ dataType: "string";
3986
+ columnType: "PgUUID";
3987
+ data: string;
3988
+ driverParam: string;
3989
+ notNull: true;
3990
+ hasDefault: true;
3991
+ isPrimaryKey: true;
3992
+ isAutoincrement: false;
3993
+ hasRuntimeDefault: false;
3994
+ enumValues: undefined;
3995
+ baseColumn: never;
3996
+ identity: undefined;
3997
+ generated: undefined;
3998
+ }, {}, {}>;
3999
+ fileId: drizzle_orm_pg_core.PgColumn<{
4000
+ name: "file_id";
4001
+ tableName: "file_access_logs";
4002
+ dataType: "string";
4003
+ columnType: "PgUUID";
4004
+ data: string;
4005
+ driverParam: string;
4006
+ notNull: false;
4007
+ hasDefault: false;
4008
+ isPrimaryKey: false;
4009
+ isAutoincrement: false;
4010
+ hasRuntimeDefault: false;
4011
+ enumValues: undefined;
4012
+ baseColumn: never;
4013
+ identity: undefined;
4014
+ generated: undefined;
4015
+ }, {}, {}>;
4016
+ shareId: drizzle_orm_pg_core.PgColumn<{
4017
+ name: "share_id";
4018
+ tableName: "file_access_logs";
4019
+ dataType: "string";
4020
+ columnType: "PgUUID";
4021
+ data: string;
4022
+ driverParam: string;
4023
+ notNull: false;
4024
+ hasDefault: false;
4025
+ isPrimaryKey: false;
4026
+ isAutoincrement: false;
4027
+ hasRuntimeDefault: false;
4028
+ enumValues: undefined;
4029
+ baseColumn: never;
4030
+ identity: undefined;
4031
+ generated: undefined;
4032
+ }, {}, {}>;
4033
+ accessType: drizzle_orm_pg_core.PgColumn<{
4034
+ name: "access_type";
4035
+ tableName: "file_access_logs";
4036
+ dataType: "string";
4037
+ columnType: "PgVarchar";
4038
+ data: string;
4039
+ driverParam: string;
4040
+ notNull: true;
4041
+ hasDefault: false;
4042
+ isPrimaryKey: false;
4043
+ isAutoincrement: false;
4044
+ hasRuntimeDefault: false;
4045
+ enumValues: [string, ...string[]];
4046
+ baseColumn: never;
4047
+ identity: undefined;
4048
+ generated: undefined;
4049
+ }, {}, {
4050
+ length: 20;
4051
+ }>;
4052
+ userId: drizzle_orm_pg_core.PgColumn<{
4053
+ name: "user_id";
4054
+ tableName: "file_access_logs";
4055
+ dataType: "string";
4056
+ columnType: "PgVarchar";
4057
+ data: string;
4058
+ driverParam: string;
4059
+ notNull: false;
4060
+ hasDefault: false;
4061
+ isPrimaryKey: false;
4062
+ isAutoincrement: false;
4063
+ hasRuntimeDefault: false;
4064
+ enumValues: [string, ...string[]];
4065
+ baseColumn: never;
4066
+ identity: undefined;
4067
+ generated: undefined;
4068
+ }, {}, {
4069
+ length: 255;
4070
+ }>;
4071
+ ipAddress: drizzle_orm_pg_core.PgColumn<{
4072
+ name: "ip_address";
4073
+ tableName: "file_access_logs";
4074
+ dataType: "string";
4075
+ columnType: "PgVarchar";
4076
+ data: string;
4077
+ driverParam: string;
4078
+ notNull: false;
4079
+ hasDefault: false;
4080
+ isPrimaryKey: false;
4081
+ isAutoincrement: false;
4082
+ hasRuntimeDefault: false;
4083
+ enumValues: [string, ...string[]];
4084
+ baseColumn: never;
4085
+ identity: undefined;
4086
+ generated: undefined;
4087
+ }, {}, {
4088
+ length: 45;
4089
+ }>;
4090
+ userAgent: drizzle_orm_pg_core.PgColumn<{
4091
+ name: "user_agent";
4092
+ tableName: "file_access_logs";
4093
+ dataType: "string";
4094
+ columnType: "PgText";
4095
+ data: string;
4096
+ driverParam: string;
4097
+ notNull: false;
4098
+ hasDefault: false;
4099
+ isPrimaryKey: false;
4100
+ isAutoincrement: false;
4101
+ hasRuntimeDefault: false;
4102
+ enumValues: [string, ...string[]];
4103
+ baseColumn: never;
4104
+ identity: undefined;
4105
+ generated: undefined;
4106
+ }, {}, {}>;
4107
+ referer: drizzle_orm_pg_core.PgColumn<{
4108
+ name: "referer";
4109
+ tableName: "file_access_logs";
4110
+ dataType: "string";
4111
+ columnType: "PgText";
4112
+ data: string;
4113
+ driverParam: string;
4114
+ notNull: false;
4115
+ hasDefault: false;
4116
+ isPrimaryKey: false;
4117
+ isAutoincrement: false;
4118
+ hasRuntimeDefault: false;
4119
+ enumValues: [string, ...string[]];
4120
+ baseColumn: never;
4121
+ identity: undefined;
4122
+ generated: undefined;
4123
+ }, {}, {}>;
4124
+ statusCode: drizzle_orm_pg_core.PgColumn<{
4125
+ name: "status_code";
4126
+ tableName: "file_access_logs";
4127
+ dataType: "number";
4128
+ columnType: "PgInteger";
4129
+ data: number;
4130
+ driverParam: string | number;
4131
+ notNull: false;
4132
+ hasDefault: false;
4133
+ isPrimaryKey: false;
4134
+ isAutoincrement: false;
4135
+ hasRuntimeDefault: false;
4136
+ enumValues: undefined;
4137
+ baseColumn: never;
4138
+ identity: undefined;
4139
+ generated: undefined;
4140
+ }, {}, {}>;
4141
+ bytesTransferred: drizzle_orm_pg_core.PgColumn<{
4142
+ name: "bytes_transferred";
4143
+ tableName: "file_access_logs";
4144
+ dataType: "number";
4145
+ columnType: "PgBigInt53";
4146
+ data: number;
4147
+ driverParam: string | number;
4148
+ notNull: false;
4149
+ hasDefault: false;
4150
+ isPrimaryKey: false;
4151
+ isAutoincrement: false;
4152
+ hasRuntimeDefault: false;
4153
+ enumValues: undefined;
4154
+ baseColumn: never;
4155
+ identity: undefined;
4156
+ generated: undefined;
4157
+ }, {}, {}>;
4158
+ responseTimeMs: drizzle_orm_pg_core.PgColumn<{
4159
+ name: "response_time_ms";
4160
+ tableName: "file_access_logs";
4161
+ dataType: "number";
4162
+ columnType: "PgInteger";
4163
+ data: number;
4164
+ driverParam: string | number;
4165
+ notNull: false;
4166
+ hasDefault: false;
4167
+ isPrimaryKey: false;
4168
+ isAutoincrement: false;
4169
+ hasRuntimeDefault: false;
4170
+ enumValues: undefined;
4171
+ baseColumn: never;
4172
+ identity: undefined;
4173
+ generated: undefined;
4174
+ }, {}, {}>;
4175
+ accessedAt: drizzle_orm_pg_core.PgColumn<{
4176
+ name: "accessed_at";
4177
+ tableName: "file_access_logs";
4178
+ dataType: "date";
4179
+ columnType: "PgTimestamp";
4180
+ data: Date;
4181
+ driverParam: string;
4182
+ notNull: true;
4183
+ hasDefault: true;
4184
+ isPrimaryKey: false;
4185
+ isAutoincrement: false;
4186
+ hasRuntimeDefault: false;
4187
+ enumValues: undefined;
4188
+ baseColumn: never;
4189
+ identity: undefined;
4190
+ generated: undefined;
4191
+ }, {}, {}>;
4192
+ };
4193
+ dialect: "pg";
4194
+ }>;
4195
+ /**
4196
+ * 文件缩略图表 (file_thumbnails)
4197
+ *
4198
+ * 存储文件的缩略图信息,支持多种尺寸和格式。
4199
+ */
4200
+ declare const fileThumbnails: drizzle_orm_pg_core.PgTableWithColumns<{
4201
+ name: "file_thumbnails";
4202
+ schema: undefined;
4203
+ columns: {
4204
+ id: drizzle_orm_pg_core.PgColumn<{
4205
+ name: "id";
4206
+ tableName: "file_thumbnails";
4207
+ dataType: "string";
4208
+ columnType: "PgUUID";
4209
+ data: string;
4210
+ driverParam: string;
4211
+ notNull: true;
4212
+ hasDefault: true;
4213
+ isPrimaryKey: true;
4214
+ isAutoincrement: false;
4215
+ hasRuntimeDefault: false;
4216
+ enumValues: undefined;
4217
+ baseColumn: never;
4218
+ identity: undefined;
4219
+ generated: undefined;
4220
+ }, {}, {}>;
4221
+ fileId: drizzle_orm_pg_core.PgColumn<{
4222
+ name: "file_id";
4223
+ tableName: "file_thumbnails";
4224
+ dataType: "string";
4225
+ columnType: "PgUUID";
4226
+ data: string;
4227
+ driverParam: string;
4228
+ notNull: true;
4229
+ hasDefault: false;
4230
+ isPrimaryKey: false;
4231
+ isAutoincrement: false;
4232
+ hasRuntimeDefault: false;
4233
+ enumValues: undefined;
4234
+ baseColumn: never;
4235
+ identity: undefined;
4236
+ generated: undefined;
4237
+ }, {}, {}>;
4238
+ type: drizzle_orm_pg_core.PgColumn<{
4239
+ name: "type";
4240
+ tableName: "file_thumbnails";
4241
+ dataType: "string";
4242
+ columnType: "PgVarchar";
4243
+ data: string;
4244
+ driverParam: string;
4245
+ notNull: true;
4246
+ hasDefault: false;
4247
+ isPrimaryKey: false;
4248
+ isAutoincrement: false;
4249
+ hasRuntimeDefault: false;
4250
+ enumValues: [string, ...string[]];
4251
+ baseColumn: never;
4252
+ identity: undefined;
4253
+ generated: undefined;
4254
+ }, {}, {
4255
+ length: 50;
4256
+ }>;
4257
+ size: drizzle_orm_pg_core.PgColumn<{
4258
+ name: "size";
4259
+ tableName: "file_thumbnails";
4260
+ dataType: "string";
4261
+ columnType: "PgVarchar";
4262
+ data: string;
4263
+ driverParam: string;
4264
+ notNull: true;
4265
+ hasDefault: false;
4266
+ isPrimaryKey: false;
4267
+ isAutoincrement: false;
4268
+ hasRuntimeDefault: false;
4269
+ enumValues: [string, ...string[]];
4270
+ baseColumn: never;
4271
+ identity: undefined;
4272
+ generated: undefined;
4273
+ }, {}, {
4274
+ length: 20;
4275
+ }>;
4276
+ width: drizzle_orm_pg_core.PgColumn<{
4277
+ name: "width";
4278
+ tableName: "file_thumbnails";
4279
+ dataType: "number";
4280
+ columnType: "PgInteger";
4281
+ data: number;
4282
+ driverParam: string | number;
4283
+ notNull: false;
4284
+ hasDefault: false;
4285
+ isPrimaryKey: false;
4286
+ isAutoincrement: false;
4287
+ hasRuntimeDefault: false;
4288
+ enumValues: undefined;
4289
+ baseColumn: never;
4290
+ identity: undefined;
4291
+ generated: undefined;
4292
+ }, {}, {}>;
4293
+ height: drizzle_orm_pg_core.PgColumn<{
4294
+ name: "height";
4295
+ tableName: "file_thumbnails";
4296
+ dataType: "number";
4297
+ columnType: "PgInteger";
4298
+ data: number;
4299
+ driverParam: string | number;
4300
+ notNull: false;
4301
+ hasDefault: false;
4302
+ isPrimaryKey: false;
4303
+ isAutoincrement: false;
4304
+ hasRuntimeDefault: false;
4305
+ enumValues: undefined;
4306
+ baseColumn: never;
4307
+ identity: undefined;
4308
+ generated: undefined;
4309
+ }, {}, {}>;
4310
+ format: drizzle_orm_pg_core.PgColumn<{
4311
+ name: "format";
4312
+ tableName: "file_thumbnails";
4313
+ dataType: "string";
4314
+ columnType: "PgVarchar";
4315
+ data: string;
4316
+ driverParam: string;
4317
+ notNull: true;
4318
+ hasDefault: false;
4319
+ isPrimaryKey: false;
4320
+ isAutoincrement: false;
4321
+ hasRuntimeDefault: false;
4322
+ enumValues: [string, ...string[]];
4323
+ baseColumn: never;
4324
+ identity: undefined;
4325
+ generated: undefined;
4326
+ }, {}, {
4327
+ length: 10;
4328
+ }>;
4329
+ fileSize: drizzle_orm_pg_core.PgColumn<{
4330
+ name: "file_size";
4331
+ tableName: "file_thumbnails";
4332
+ dataType: "number";
4333
+ columnType: "PgInteger";
4334
+ data: number;
4335
+ driverParam: string | number;
4336
+ notNull: true;
4337
+ hasDefault: false;
4338
+ isPrimaryKey: false;
4339
+ isAutoincrement: false;
4340
+ hasRuntimeDefault: false;
4341
+ enumValues: undefined;
4342
+ baseColumn: never;
4343
+ identity: undefined;
4344
+ generated: undefined;
4345
+ }, {}, {}>;
4346
+ storagePath: drizzle_orm_pg_core.PgColumn<{
4347
+ name: "storage_path";
4348
+ tableName: "file_thumbnails";
4349
+ dataType: "string";
4350
+ columnType: "PgText";
4351
+ data: string;
4352
+ driverParam: string;
4353
+ notNull: true;
4354
+ hasDefault: false;
4355
+ isPrimaryKey: false;
4356
+ isAutoincrement: false;
4357
+ hasRuntimeDefault: false;
4358
+ enumValues: [string, ...string[]];
4359
+ baseColumn: never;
4360
+ identity: undefined;
4361
+ generated: undefined;
4362
+ }, {}, {}>;
4363
+ cdnUrl: drizzle_orm_pg_core.PgColumn<{
4364
+ name: "cdn_url";
4365
+ tableName: "file_thumbnails";
4366
+ dataType: "string";
4367
+ columnType: "PgText";
4368
+ data: string;
4369
+ driverParam: string;
4370
+ notNull: false;
4371
+ hasDefault: false;
4372
+ isPrimaryKey: false;
4373
+ isAutoincrement: false;
4374
+ hasRuntimeDefault: false;
4375
+ enumValues: [string, ...string[]];
4376
+ baseColumn: never;
4377
+ identity: undefined;
4378
+ generated: undefined;
4379
+ }, {}, {}>;
4380
+ quality: drizzle_orm_pg_core.PgColumn<{
4381
+ name: "quality";
4382
+ tableName: "file_thumbnails";
4383
+ dataType: "number";
4384
+ columnType: "PgInteger";
4385
+ data: number;
4386
+ driverParam: string | number;
4387
+ notNull: false;
4388
+ hasDefault: true;
4389
+ isPrimaryKey: false;
4390
+ isAutoincrement: false;
4391
+ hasRuntimeDefault: false;
4392
+ enumValues: undefined;
4393
+ baseColumn: never;
4394
+ identity: undefined;
4395
+ generated: undefined;
4396
+ }, {}, {}>;
4397
+ isGenerated: drizzle_orm_pg_core.PgColumn<{
4398
+ name: "is_generated";
4399
+ tableName: "file_thumbnails";
4400
+ dataType: "boolean";
4401
+ columnType: "PgBoolean";
4402
+ data: boolean;
4403
+ driverParam: boolean;
4404
+ notNull: true;
4405
+ hasDefault: true;
4406
+ isPrimaryKey: false;
4407
+ isAutoincrement: false;
4408
+ hasRuntimeDefault: false;
4409
+ enumValues: undefined;
4410
+ baseColumn: never;
4411
+ identity: undefined;
4412
+ generated: undefined;
4413
+ }, {}, {}>;
4414
+ generatedAt: drizzle_orm_pg_core.PgColumn<{
4415
+ name: "generated_at";
4416
+ tableName: "file_thumbnails";
4417
+ dataType: "date";
4418
+ columnType: "PgTimestamp";
4419
+ data: Date;
4420
+ driverParam: string;
4421
+ notNull: false;
4422
+ hasDefault: false;
4423
+ isPrimaryKey: false;
4424
+ isAutoincrement: false;
4425
+ hasRuntimeDefault: false;
4426
+ enumValues: undefined;
4427
+ baseColumn: never;
4428
+ identity: undefined;
4429
+ generated: undefined;
4430
+ }, {}, {}>;
4431
+ createdAt: drizzle_orm_pg_core.PgColumn<{
4432
+ name: "created_at";
4433
+ tableName: "file_thumbnails";
4434
+ dataType: "date";
4435
+ columnType: "PgTimestamp";
4436
+ data: Date;
4437
+ driverParam: string;
4438
+ notNull: true;
4439
+ hasDefault: true;
4440
+ isPrimaryKey: false;
4441
+ isAutoincrement: false;
4442
+ hasRuntimeDefault: false;
4443
+ enumValues: undefined;
4444
+ baseColumn: never;
4445
+ identity: undefined;
4446
+ generated: undefined;
4447
+ }, {}, {}>;
4448
+ };
4449
+ dialect: "pg";
4450
+ }>;
4451
+ declare const fileStorageProvidersRelations: drizzle_orm.Relations<"file_storage_providers", {
4452
+ files: drizzle_orm.Many<"file_metadata">;
4453
+ }>;
4454
+ declare const fileFoldersRelations: drizzle_orm.Relations<"file_folders", {
4455
+ parent: drizzle_orm.One<"file_folders", false>;
4456
+ children: drizzle_orm.Many<"file_folders">;
4457
+ files: drizzle_orm.Many<"file_metadata">;
4458
+ }>;
4459
+ declare const fileMetadataRelations: drizzle_orm.Relations<"file_metadata", {
4460
+ storageProvider: drizzle_orm.One<"file_storage_providers", true>;
4461
+ folder: drizzle_orm.One<"file_folders", false>;
4462
+ versions: drizzle_orm.Many<"file_versions">;
4463
+ processingRecords: drizzle_orm.Many<"file_processing_records">;
4464
+ accessLogs: drizzle_orm.Many<"file_access_logs">;
4465
+ thumbnails: drizzle_orm.Many<"file_thumbnails">;
4466
+ }>;
4467
+ declare const fileVersionsRelations: drizzle_orm.Relations<"file_versions", {
4468
+ file: drizzle_orm.One<"file_metadata", true>;
4469
+ }>;
4470
+ declare const fileProcessingRecordsRelations: drizzle_orm.Relations<"file_processing_records", {
4471
+ file: drizzle_orm.One<"file_metadata", true>;
4472
+ }>;
4473
+ declare const fileSharesRelations: drizzle_orm.Relations<"file_shares", {
4474
+ accessLogs: drizzle_orm.Many<"file_access_logs">;
4475
+ }>;
4476
+ declare const fileAccessLogsRelations: drizzle_orm.Relations<"file_access_logs", {
4477
+ file: drizzle_orm.One<"file_metadata", false>;
4478
+ share: drizzle_orm.One<"file_shares", false>;
4479
+ }>;
4480
+ declare const fileThumbnailsRelations: drizzle_orm.Relations<"file_thumbnails", {
4481
+ file: drizzle_orm.One<"file_metadata", true>;
4482
+ }>;
4483
+ type FileStorageProvider = typeof fileStorageProviders.$inferSelect;
4484
+ type NewFileStorageProvider = typeof fileStorageProviders.$inferInsert;
4485
+ type FileFolder = typeof fileFolders.$inferSelect;
4486
+ type NewFileFolder = typeof fileFolders.$inferInsert;
4487
+ type FileMetadata = typeof fileMetadata.$inferSelect;
4488
+ type NewFileMetadata = typeof fileMetadata.$inferInsert;
4489
+ type FileVersion = typeof fileVersions.$inferSelect;
4490
+ type NewFileVersion = typeof fileVersions.$inferInsert;
4491
+ type FileProcessingRecord = typeof fileProcessingRecords.$inferSelect;
4492
+ type NewFileProcessingRecord = typeof fileProcessingRecords.$inferInsert;
4493
+ type FileShare = typeof fileShares.$inferSelect;
4494
+ type NewFileShare = typeof fileShares.$inferInsert;
4495
+ type FileAccessLog = typeof fileAccessLogs.$inferSelect;
4496
+ type NewFileAccessLog = typeof fileAccessLogs.$inferInsert;
4497
+ type FileThumbnail = typeof fileThumbnails.$inferSelect;
4498
+ type NewFileThumbnail = typeof fileThumbnails.$inferInsert;
4499
+
4500
+ export { AliyunCDNConfig, AliyunCDNProvider, AliyunOSSConfig, AliyunOSSProvider, ApiError, ApiErrorCode, type ApiResponse, AudioProcessor, CDNConfig, CDNResult, CDNType, CacheManager, CacheStrategyType$1 as CacheStrategyType, CdnCacheStrategy, ConfigValidationError, DEFAULT_ALLOWED_MIME_TYPES, DEFAULT_CACHE_CONFIG, DEFAULT_FILE_SERVICE_CONFIG, DEFAULT_MAX_FILE_SIZE, DEFAULT_OSS_CONFIG_KEYS, type DrizzleDb, type DrizzleRepositoryConfig, type DrizzleTable, ErrorHttpStatusMap, ErrorMessages, type FieldMapping, type FileAccessLog, type FileFolder, type FileInfo, type FileListResponse, type FileMetadata, type FileProcessParams, type FileProcessingRecord, type FileQueryParams, type FileServiceFactoryOptions, type FileShare, type FileStats, type FileStorageProvider, type FileThumbnail, type FileUpdateParams, type FileUploadParams, type FileVersion, type FolderCreateParams, type FolderInfo, type FolderUpdateParams, ICDNProvider, type IConfigService, IFileMetadataRepository, IFileProcessor, IStorageProvider, ImageProcessor, LocalStorageConfig, LocalStorageProvider, type NewFileAccessLog, type NewFileFolder, type NewFileMetadata, type NewFileProcessingRecord, type NewFileShare, type NewFileStorageProvider, type NewFileThumbnail, type NewFileVersion, type OSSConfigKeyMapping, type PaginationParams, PerformanceMonitor, ProcessingOptions, ProcessingQueue, ProcessingResult, type ProcessingStatus, ProcessorType, type ShareAccessParams, type ShareCreateParams, type ShareInfo, type SingletonFactory, StorageConfig, StorageResult, StorageType, UniversalFileService, UniversalFileServiceConfig, UploadFileInfo, type UploadResponse, VideoProcessor, cdnCacheStrategy, createAliyunOSSPreset, createDocumentServicePreset, createDrizzleRepository, createFileServiceConfig, createFileServiceFromEnv, createFileServiceWithFactory, createImageServicePreset, createLocalDevPreset, createSingleton, createSmartPreset, createUniversalFileService, createVideoServicePreset, fileAccessLogs, fileAccessLogsRelations, fileFolders, fileFoldersRelations, fileMetadata, fileMetadataRelations, fileProcessingRecords, fileProcessingRecordsRelations, fileShares, fileSharesRelations, fileStorageProviders, fileStorageProvidersRelations, fileThumbnails, fileThumbnailsRelations, fileVersions, fileVersionsRelations, getDefaultLocalStorage, getMimeType, getRequiredEnvVars, loadCDNConfigFromEnv, loadConfigFromEnv, loadConfigWithFallback, loadOSSConfigFromEnv, loadOSSConfigFromService, validateEnvironment, validateServiceConfig, validateStorageConfig };