flexibuckets 1.0.0

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.
@@ -0,0 +1,364 @@
1
+ export type Provider = "CLOUDFLARE" | "MINIO" | "FLYTIGRIS" | "WASABI" | "TEBI" | "IDRIVE" | "BACKBLAZE" | "STORJ" | "HETZNER" | "VULTR";
2
+ export type BucketPermission = "READ_ONLY" | "READ_WRITE";
3
+ export type TeamBucketPermission = "READ_ONLY" | "READ_WRITE" | "FULL_ACCESS";
4
+ export type TeamRole = "OWNER" | "ADMIN" | "MEMBER";
5
+ export type AuditAction = "FILE_UPLOAD" | "FILE_DOWNLOAD" | "FILE_DELETE" | "FILE_RENAME" | "FILE_MOVE" | "FILE_SHARE" | "FILE_UNSHARE" | "FOLDER_CREATE" | "FOLDER_DELETE" | "FOLDER_RENAME" | "FOLDER_SHARE" | "FOLDER_UNSHARE" | "BUCKET_ADD" | "BUCKET_DELETE" | "BUCKET_CORS_UPDATE" | "BUCKET_IMPORT_OBJECTS" | "TEAM_CREATE" | "TEAM_JOIN" | "TEAM_LEAVE" | "TEAM_MEMBER_ADD" | "TEAM_MEMBER_REMOVE" | "TEAM_MEMBER_ROLE_UPDATE" | "TEAM_BUCKET_ADD" | "TEAM_BUCKET_REMOVE" | "API_KEY_CREATE" | "API_KEY_DELETE" | "USER_SIGNIN" | "USER_SIGNUP" | "USER_SETTINGS_UPDATE" | "SHARE_DOWNLOAD" | "PUBLIC_UPLOAD_RECEIVED" | "WEBHOOK_CREATED" | "WEBHOOK_DELETED";
6
+ export type WebhookEvent = "FILE_UPLOAD" | "FILE_DELETE" | "FILE_SHARE" | "FILE_UNSHARE" | "FOLDER_CREATE" | "FOLDER_DELETE" | "FOLDER_SHARE" | "BUCKET_ADD" | "BUCKET_DELETE" | "PUBLIC_UPLOAD_RECEIVED";
7
+ export type EmailProvider = "SMTP" | "RESEND";
8
+ export interface Bucket {
9
+ id: string;
10
+ name: string;
11
+ provider: string;
12
+ storageUsed: number;
13
+ createdAt: string;
14
+ team?: {
15
+ id: string;
16
+ name: string;
17
+ } | null;
18
+ isShared?: boolean;
19
+ permissions?: BucketPermission;
20
+ }
21
+ export interface BucketDetail {
22
+ id: string;
23
+ name: unknown;
24
+ endpointUrl: unknown;
25
+ region: unknown;
26
+ provider: Provider;
27
+ fileCount: number;
28
+ folderCount: unknown;
29
+ createdAt: unknown;
30
+ }
31
+ export interface AddBucketRequest {
32
+ accessKey: string;
33
+ secretKey: string;
34
+ bucket: string;
35
+ region: string;
36
+ provider: string;
37
+ endpointUrl: string;
38
+ }
39
+ export interface FileItem {
40
+ id: string;
41
+ name: unknown;
42
+ type: unknown;
43
+ size: unknown;
44
+ s3Key: unknown;
45
+ folderId: unknown | null;
46
+ isShared: boolean;
47
+ sharedUrl: unknown;
48
+ createdAt: unknown;
49
+ updatedAt: unknown;
50
+ }
51
+ export interface FolderItem {
52
+ id: unknown;
53
+ name: unknown;
54
+ size: unknown;
55
+ parentId: unknown;
56
+ isShared: unknown;
57
+ sharedUrl: unknown;
58
+ createdAt: unknown;
59
+ updatedAt: unknown;
60
+ }
61
+ export interface BucketFilesResponse {
62
+ files: FileItem[];
63
+ folders: FolderItem[];
64
+ }
65
+ export interface FileInfo {
66
+ id: string;
67
+ name: unknown;
68
+ type: unknown;
69
+ size: unknown;
70
+ url: unknown;
71
+ }
72
+ export interface FileTeamUpload {
73
+ id: string;
74
+ userId: unknown;
75
+ createdAt: unknown;
76
+ name: unknown;
77
+ type: unknown;
78
+ size: unknown;
79
+ s3Key: unknown;
80
+ folderId: unknown | null;
81
+ s3CredentialId: unknown;
82
+ isShared: boolean;
83
+ shortUrl: unknown;
84
+ updatedAt: unknown;
85
+ }
86
+ export interface UploadRequestResponse {
87
+ uploadUrl: string;
88
+ fileId: unknown;
89
+ s3Key: unknown;
90
+ }
91
+ export interface UploadCompleteRequest {
92
+ message: string;
93
+ fileId: unknown;
94
+ }
95
+ export interface PresignedUrlRequest {
96
+ endpointUrl: string;
97
+ accessKey: string;
98
+ secretKey: string;
99
+ fileNames: string[];
100
+ bucketName: string;
101
+ region: string;
102
+ fileSizes: number[];
103
+ }
104
+ export interface TeamPresignedUrlRequest extends PresignedUrlRequest {
105
+ teamId: string;
106
+ }
107
+ export interface SharedItem {
108
+ id: string;
109
+ teamId: unknown | null;
110
+ createdAt: unknown;
111
+ updatedAt: unknown;
112
+ expiresAt: unknown | null;
113
+ downloadUrl: unknown;
114
+ isSharedInfinitely: boolean;
115
+ sharedById: unknown;
116
+ fileId?: unknown;
117
+ downloadedSize?: unknown;
118
+ folderId?: unknown;
119
+ }
120
+ export interface SharedPreview {
121
+ url: string;
122
+ }
123
+ export interface FolderStructure {
124
+ id: string;
125
+ name: string;
126
+ type: string;
127
+ size?: unknown;
128
+ s3Key?: unknown;
129
+ children?: unknown;
130
+ parentFolder: unknown | null;
131
+ }
132
+ export interface Team {
133
+ id: string;
134
+ createdAt: unknown;
135
+ name: unknown;
136
+ updatedAt: unknown;
137
+ inviteCode: unknown | null;
138
+ description: unknown;
139
+ ownerId: unknown;
140
+ totalStorageUsed: unknown;
141
+ maxMembers: number;
142
+ currentMembers: unknown;
143
+ totalSharedFiles: unknown;
144
+ totalSharedStorage: unknown;
145
+ }
146
+ export interface TeamMember {
147
+ id: string;
148
+ userId: unknown;
149
+ teamId: unknown;
150
+ role: TeamRole;
151
+ joinedAt: unknown;
152
+ }
153
+ export interface TeamBucket {
154
+ id: string;
155
+ teamId: unknown;
156
+ name: unknown;
157
+ s3CredentialId: unknown;
158
+ addedAt: unknown;
159
+ permissions: TeamBucketPermission;
160
+ addedById: unknown;
161
+ }
162
+ export interface TeamAccess {
163
+ hasAccess: boolean;
164
+ reason: string;
165
+ }
166
+ export interface Webhook {
167
+ id: string;
168
+ userId: unknown;
169
+ createdAt: unknown;
170
+ updatedAt: unknown;
171
+ url: unknown;
172
+ description: unknown | null;
173
+ secret?: unknown;
174
+ events: WebhookEvent[];
175
+ enabled: boolean;
176
+ lastTriggeredAt: unknown | null;
177
+ failureCount: number;
178
+ }
179
+ export interface CreateWebhookResponse extends Webhook {
180
+ secret: string;
181
+ }
182
+ export interface VersionInfo {
183
+ currentVersion: string;
184
+ latestVersion: string;
185
+ updateAvailable: boolean;
186
+ releaseNotes: string;
187
+ publishedAt: string;
188
+ htmlUrl: string;
189
+ }
190
+ export interface HealthStatus {
191
+ status: string;
192
+ timestamp: string;
193
+ version: string;
194
+ services: {
195
+ database: {
196
+ status: string;
197
+ latency: number;
198
+ metrics: {
199
+ memory: number;
200
+ cpu: number;
201
+ } | null;
202
+ };
203
+ traefik: {
204
+ status: string;
205
+ metrics: {
206
+ memory: number;
207
+ cpu: number;
208
+ } | null;
209
+ };
210
+ app: {
211
+ status: string;
212
+ metrics: {
213
+ memory: {
214
+ total: number;
215
+ used: number;
216
+ free: number;
217
+ };
218
+ uptime: number;
219
+ };
220
+ };
221
+ };
222
+ system: {
223
+ uptime: number;
224
+ memory: {
225
+ total: number;
226
+ used: number;
227
+ free: number;
228
+ };
229
+ disk: {
230
+ total: number;
231
+ used: number;
232
+ free: number;
233
+ };
234
+ };
235
+ }
236
+ export interface Session {
237
+ isAdmin: boolean;
238
+ totalUploadSize: number;
239
+ id?: unknown | string;
240
+ name?: unknown;
241
+ email?: unknown;
242
+ image?: unknown;
243
+ }
244
+ export interface AuditLog {
245
+ id: string;
246
+ userId: unknown;
247
+ action: AuditAction;
248
+ resourceType: unknown | null;
249
+ resourceId: unknown;
250
+ resourceName: unknown;
251
+ details: unknown;
252
+ ipAddress: unknown;
253
+ userAgent: unknown;
254
+ teamId: unknown;
255
+ createdAt: unknown;
256
+ }
257
+ export interface AuditLogsResponse {
258
+ logs: AuditLog[];
259
+ total: unknown;
260
+ }
261
+ export interface PublicUploadLink {
262
+ id: string;
263
+ userId: unknown;
264
+ createdAt: unknown;
265
+ s3CredentialId: unknown;
266
+ updatedAt: unknown;
267
+ token: unknown;
268
+ folderName: unknown;
269
+ maxFileSize: number;
270
+ maxFileCount: unknown | null;
271
+ currentFileCount: unknown;
272
+ allowedTypes: unknown | null;
273
+ expiresAt: unknown | null;
274
+ isExpired: boolean;
275
+ }
276
+ export interface CreatePublicUploadLinkResponse {
277
+ token: string;
278
+ id: unknown;
279
+ userId: unknown;
280
+ createdAt: unknown;
281
+ s3CredentialId: unknown;
282
+ updatedAt: unknown;
283
+ folderName: unknown;
284
+ maxFileSize: number;
285
+ maxFileCount: unknown | null;
286
+ currentFileCount: unknown;
287
+ allowedTypes: unknown | null;
288
+ expiresAt: unknown | null;
289
+ isExpired: boolean;
290
+ }
291
+ export interface DomainSettings {
292
+ domain: string;
293
+ ssl: {
294
+ managed: boolean;
295
+ provider: unknown;
296
+ } | null;
297
+ status: unknown;
298
+ }
299
+ export interface EmailSettings {
300
+ provider: EmailProvider;
301
+ emailFrom: string | null;
302
+ smtp: Record<string, unknown> | null;
303
+ resend: {
304
+ from: unknown;
305
+ } | null;
306
+ }
307
+ export interface SuccessResponse {
308
+ success: boolean;
309
+ message?: string;
310
+ }
311
+ export interface DnsCheckResponse {
312
+ isValid: boolean;
313
+ serverIp: string;
314
+ domainIp: null;
315
+ message: unknown;
316
+ }
317
+ export interface ImportObjectsResponse {
318
+ totalObjects: number;
319
+ totalFolders: unknown;
320
+ totalSize: unknown;
321
+ sampleFiles: Array<{
322
+ name: string;
323
+ size: unknown;
324
+ lastModified: unknown;
325
+ }>;
326
+ }
327
+ export interface ImportObjectsResult {
328
+ importedFiles: number;
329
+ importedFolders: unknown;
330
+ skipped: unknown;
331
+ }
332
+ export interface DownloadFolderResponse {
333
+ urls: Array<{
334
+ name: string;
335
+ url: unknown;
336
+ }>;
337
+ }
338
+ export interface DownloadSharedItemsResponse {
339
+ urls: Array<{
340
+ id?: unknown | string;
341
+ name: unknown;
342
+ url: unknown;
343
+ }>;
344
+ }
345
+ export interface BucketCheckLimitResponse {
346
+ allowed: boolean;
347
+ }
348
+ export interface BucketCorsResponse {
349
+ success: boolean;
350
+ }
351
+ export interface DeleteFileResponse {
352
+ message: string;
353
+ file?: unknown;
354
+ }
355
+ export interface GetParentKeyResponse {
356
+ folderPath: string;
357
+ }
358
+ export interface RefreshExpiringSharesResponse {
359
+ refreshedFilesCount: {
360
+ message: string;
361
+ };
362
+ refreshedFoldersCount: unknown;
363
+ message: unknown;
364
+ }
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "flexibuckets",
3
+ "version": "1.0.0",
4
+ "description": "TypeScript SDK for FlexiBuckets API",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "prepublishOnly": "npm run build"
10
+ },
11
+ "keywords": ["flexibuckets", "sdk", "s3", "storage"],
12
+ "author": "",
13
+ "license": "ISC",
14
+ "files": ["dist"],
15
+ "devDependencies": {
16
+ "@types/node": "^25.6.2",
17
+ "typescript": "^6.0.3"
18
+ }
19
+ }