@turinhub/tale-js-sdk 1.3.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.
Files changed (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +56 -0
  3. package/dist/acl/index.d.ts +295 -0
  4. package/dist/acl/index.js +653 -0
  5. package/dist/acl/types.d.ts +142 -0
  6. package/dist/acl/types.js +1 -0
  7. package/dist/auth/index.d.ts +166 -0
  8. package/dist/auth/index.js +522 -0
  9. package/dist/auth/types.d.ts +127 -0
  10. package/dist/auth/types.js +1 -0
  11. package/dist/cms/file.d.ts +398 -0
  12. package/dist/cms/file.js +800 -0
  13. package/dist/cms/folder.d.ts +128 -0
  14. package/dist/cms/folder.js +294 -0
  15. package/dist/cms/index.d.ts +3 -0
  16. package/dist/cms/index.js +6 -0
  17. package/dist/cms/types.d.ts +157 -0
  18. package/dist/cms/types.js +1 -0
  19. package/dist/common/types.d.ts +91 -0
  20. package/dist/common/types.js +2 -0
  21. package/dist/errors.d.ts +52 -0
  22. package/dist/errors.js +109 -0
  23. package/dist/index.d.ts +13 -0
  24. package/dist/index.js +12 -0
  25. package/dist/rbac/acl.d.ts +152 -0
  26. package/dist/rbac/acl.js +723 -0
  27. package/dist/rbac/index.d.ts +464 -0
  28. package/dist/rbac/index.js +1121 -0
  29. package/dist/rbac/rbac.d.ts +198 -0
  30. package/dist/rbac/rbac.js +984 -0
  31. package/dist/rbac/types.d.ts +125 -0
  32. package/dist/rbac/types.js +1 -0
  33. package/dist/rbac/user-group.d.ts +122 -0
  34. package/dist/rbac/user-group.js +570 -0
  35. package/dist/status.d.ts +40 -0
  36. package/dist/status.js +56 -0
  37. package/dist/task/index.d.ts +163 -0
  38. package/dist/task/index.js +495 -0
  39. package/dist/task/types.d.ts +116 -0
  40. package/dist/task/types.js +1 -0
  41. package/dist/task-type/index.d.ts +92 -0
  42. package/dist/task-type/index.js +256 -0
  43. package/dist/task-type/types.d.ts +54 -0
  44. package/dist/task-type/types.js +1 -0
  45. package/dist/token.d.ts +21 -0
  46. package/dist/token.js +114 -0
  47. package/dist/user/index.d.ts +267 -0
  48. package/dist/user/index.js +786 -0
  49. package/dist/user/types.d.ts +145 -0
  50. package/dist/user/types.js +1 -0
  51. package/dist/user-attribute/index.d.ts +186 -0
  52. package/dist/user-attribute/index.js +615 -0
  53. package/dist/user-attribute/types.d.ts +109 -0
  54. package/dist/user-attribute/types.js +1 -0
  55. package/dist/user-group/index.d.ts +231 -0
  56. package/dist/user-group/index.js +566 -0
  57. package/dist/user-group/types.d.ts +50 -0
  58. package/dist/user-group/types.js +1 -0
  59. package/package.json +50 -0
@@ -0,0 +1,398 @@
1
+ import type { PageResponse } from "../common/types.js";
2
+ import type { File, CreateFileRequest, UpdateFileRequest, ListFilesRequest, FileOptions } from "./types.js";
3
+ /**
4
+ * Gets a file by ID.
5
+ *
6
+ * @param fileId - File ID (UUID)
7
+ * @param options - Optional configuration
8
+ * @returns Promise resolving to file information
9
+ * @throws {ConfigurationError} When required environment variables are missing
10
+ * @throws {ApiError} When API request fails
11
+ * @throws {NetworkError} When network request fails
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { getFile } from '@tale/client';
16
+ *
17
+ * try {
18
+ * const file = await getFile('file_id_here');
19
+ * console.log('File name:', file.file_name);
20
+ * console.log('File type:', file.file_type);
21
+ * } catch (error) {
22
+ * console.error('Failed to get file:', error.message);
23
+ * }
24
+ * ```
25
+ */
26
+ export declare function getFile(fileId: string, options?: FileOptions): Promise<File>;
27
+ /**
28
+ * Lists files with pagination.
29
+ *
30
+ * @param options - Optional parameters for pagination and filtering
31
+ * @returns Promise resolving to paginated file list
32
+ * @throws {ConfigurationError} When required environment variables are missing
33
+ * @throws {ApiError} When API request fails
34
+ * @throws {NetworkError} When network request fails
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * import { listFiles } from '@tale/client';
39
+ *
40
+ * try {
41
+ * const result = await listFiles({
42
+ * folder_id: 'folder_id_here',
43
+ * page: 0,
44
+ * size: 20,
45
+ * sort_by: 'createdAt'
46
+ * });
47
+ * console.log(`Found ${result.total} files`);
48
+ * } catch (error) {
49
+ * console.error('Failed to list files:', error.message);
50
+ * }
51
+ * ```
52
+ */
53
+ export declare function listFiles(options?: ListFilesRequest & FileOptions): Promise<PageResponse<File>>;
54
+ /**
55
+ * Creates a new file.
56
+ *
57
+ * @param request - File creation request
58
+ * @param options - Optional configuration
59
+ * @returns Promise resolving to created file
60
+ * @throws {ConfigurationError} When required environment variables are missing
61
+ * @throws {ApiError} When API request fails
62
+ * @throws {NetworkError} When network request fails
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * import { createFile } from '@tale/client';
67
+ *
68
+ * try {
69
+ * const file = await createFile({
70
+ * folder_id: 'folder_id_here',
71
+ * file_name: 'My Document',
72
+ * file_type: 'markdown',
73
+ * content: '# Hello World'
74
+ * });
75
+ * console.log('File created:', file.id);
76
+ * } catch (error) {
77
+ * console.error('Failed to create file:', error.message);
78
+ * }
79
+ * ```
80
+ */
81
+ export declare function createFile(request: CreateFileRequest, options?: FileOptions): Promise<File>;
82
+ /**
83
+ * Updates an existing file.
84
+ *
85
+ * @param fileId - File ID to update
86
+ * @param request - Update request with fields to modify
87
+ * @param options - Optional configuration
88
+ * @returns Promise resolving to updated file
89
+ * @throws {ConfigurationError} When required environment variables are missing
90
+ * @throws {ApiError} When API request fails
91
+ * @throws {NetworkError} When network request fails
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * import { updateFile } from '@tale/client';
96
+ *
97
+ * try {
98
+ * const file = await updateFile('file_id_here', {
99
+ * file_name: 'Updated Name',
100
+ * remark: 'Updated remark'
101
+ * });
102
+ * console.log('File updated:', file.file_name);
103
+ * } catch (error) {
104
+ * console.error('Failed to update file:', error.message);
105
+ * }
106
+ * ```
107
+ */
108
+ export declare function updateFile(fileId: string, request: UpdateFileRequest, options?: FileOptions): Promise<File>;
109
+ /**
110
+ * Updates the Markdown content of a file.
111
+ *
112
+ * @param fileId - File ID to update
113
+ * @param content - New Markdown content
114
+ * @param options - Optional configuration
115
+ * @returns Promise resolving to updated file
116
+ * @throws {ConfigurationError} When required environment variables are missing
117
+ * @throws {ApiError} When API request fails
118
+ * @throws {NetworkError} When network request fails
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * import { updateFileContent } from '@tale/client';
123
+ *
124
+ * try {
125
+ * const file = await updateFileContent('file_id_here', '# New Content');
126
+ * console.log('Content updated:', file.content);
127
+ * } catch (error) {
128
+ * console.error('Failed to update content:', error.message);
129
+ * }
130
+ * ```
131
+ */
132
+ export declare function updateFileContent(fileId: string, content: string, options?: FileOptions): Promise<File>;
133
+ /**
134
+ * Deletes a file.
135
+ *
136
+ * @param fileId - File ID to delete
137
+ * @param options - Optional configuration
138
+ * @returns Promise that resolves when deletion is successful
139
+ * @throws {ConfigurationError} When required environment variables are missing
140
+ * @throws {ApiError} When API request fails
141
+ * @throws {NetworkError} When network request fails
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * import { deleteFile } from '@tale/client';
146
+ *
147
+ * try {
148
+ * await deleteFile('file_id_here');
149
+ * console.log('File deleted successfully');
150
+ * } catch (error) {
151
+ * console.error('Failed to delete file:', error.message);
152
+ * }
153
+ * ```
154
+ */
155
+ export declare function deleteFile(fileId: string, options?: FileOptions): Promise<void>;
156
+ /**
157
+ * Gets a presigned URL for file download.
158
+ *
159
+ * @param fileId - File ID
160
+ * @param expireTimeInSeconds - Expiration time in seconds (default: 3600)
161
+ * @param options - Optional configuration
162
+ * @returns Promise resolving to presigned URL information
163
+ * @throws {ConfigurationError} When required environment variables are missing
164
+ * @throws {ApiError} When API request fails
165
+ * @throws {NetworkError} When network request fails
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * import { getFilePresignedUrl } from '@tale/client';
170
+ *
171
+ * try {
172
+ * const result = await getFilePresignedUrl('file_id_here', 3600);
173
+ * console.log('Presigned URL:', result.presigned_url);
174
+ * // Now you can download the file directly
175
+ * } catch (error) {
176
+ * console.error('Failed to get presigned URL:', error.message);
177
+ * }
178
+ * ```
179
+ */
180
+ export declare function getFilePresignedUrl(fileId: string, expireTimeInSeconds?: number, options?: FileOptions): Promise<{
181
+ file_id: string;
182
+ file_name: string;
183
+ oss_key: string;
184
+ presigned_url: string;
185
+ expire_time_in_seconds: number;
186
+ }>;
187
+ /**
188
+ * Batch gets presigned URLs for multiple files.
189
+ *
190
+ * @param fileIds - Array of file IDs (max 10)
191
+ * @param expireTimeInSeconds - Expiration time in seconds (default: 3600)
192
+ * @param options - Optional configuration
193
+ * @returns Promise resolving to array of presigned URL information or errors
194
+ * @throws {ConfigurationError} When required environment variables are missing
195
+ * @throws {ApiError} When API request fails
196
+ * @throws {NetworkError} When network request fails
197
+ *
198
+ * @example
199
+ * ```typescript
200
+ * import { batchGetFilePresignedUrl } from '@tale/client';
201
+ *
202
+ * try {
203
+ * const results = await batchGetFilePresignedUrl(
204
+ * ['file_id_1', 'file_id_2'],
205
+ * 3600
206
+ * );
207
+ * results.forEach(result => {
208
+ * if (result.error) {
209
+ * console.error('Error for file:', result.file_id, result.error);
210
+ * } else {
211
+ * console.log('URL:', result.presigned_url);
212
+ * }
213
+ * });
214
+ * } catch (error) {
215
+ * console.error('Failed to batch get presigned URLs:', error.message);
216
+ * }
217
+ * ```
218
+ */
219
+ export declare function batchGetFilePresignedUrl(fileIds: string[], expireTimeInSeconds?: number, options?: FileOptions): Promise<Array<{
220
+ file_id: string;
221
+ file_name?: string;
222
+ oss_key?: string;
223
+ presigned_url?: string;
224
+ expire_time_in_seconds?: number;
225
+ error?: string;
226
+ }>>;
227
+ /**
228
+ * Gets OSS object metadata.
229
+ *
230
+ * @param ossKey - OSS key
231
+ * @param options - Optional configuration
232
+ * @returns Promise resolving to OSS metadata
233
+ * @throws {ConfigurationError} When required environment variables are missing
234
+ * @throws {ApiError} When API request fails
235
+ * @throws {NetworkError} When network request fails
236
+ *
237
+ * @example
238
+ * ```typescript
239
+ * import { getOssMetadata } from '@tale/client';
240
+ *
241
+ * try {
242
+ * const metadata = await getOssMetadata('cms/appkey/folder/fileid.pdf');
243
+ * console.log('File size:', metadata.content_length);
244
+ * console.log('Content type:', metadata.content_type);
245
+ * } catch (error) {
246
+ * console.error('Failed to get OSS metadata:', error.message);
247
+ * }
248
+ * ```
249
+ */
250
+ export declare function getOssMetadata(ossKey: string, options?: FileOptions): Promise<{
251
+ oss_key: string;
252
+ content_type?: string;
253
+ content_length?: number;
254
+ last_modified?: string;
255
+ etag?: string;
256
+ metadata?: Record<string, string>;
257
+ }>;
258
+ /**
259
+ * Gets upload authorization for a new file (presets OSS key + presigned upload URL).
260
+ *
261
+ * @param request - Upload authorization request
262
+ * @param options - Optional configuration
263
+ * @returns Promise resolving to upload authorization response
264
+ * @throws {ConfigurationError} When required environment variables are missing
265
+ * @throws {ApiError} When API request fails
266
+ * @throws {NetworkError} When network request fails
267
+ *
268
+ * @example
269
+ * ```typescript
270
+ * import { getUploadAuthorization } from '@tale/client';
271
+ *
272
+ * try {
273
+ * const auth = await getUploadAuthorization({
274
+ * folder_id: 'folder_id_here',
275
+ * file_name: 'document.pdf',
276
+ * file_type: 'pdf'
277
+ * });
278
+ * console.log('OSS Key:', auth.oss_key);
279
+ * console.log('Upload URL:', auth.presigned_url);
280
+ * console.log('File ID:', auth.file_id);
281
+ * // Use presigned_url to upload the file directly to OSS
282
+ * } catch (error) {
283
+ * console.error('Failed to get upload authorization:', error.message);
284
+ * }
285
+ * ```
286
+ */
287
+ export declare function getUploadAuthorization(request: {
288
+ folder_id: string;
289
+ file_name: string;
290
+ file_type: string;
291
+ expire_time_in_seconds?: number;
292
+ }, options?: FileOptions): Promise<{
293
+ oss_key: string;
294
+ presigned_url: string;
295
+ file_name: string;
296
+ file_type: string;
297
+ expire_time_in_seconds: number;
298
+ file_id: string;
299
+ }>;
300
+ /**
301
+ * Gets STS credentials for uploading to an existing file.
302
+ *
303
+ * @param fileId - File ID
304
+ * @param fileExtension - File extension (e.g., ".pdf")
305
+ * @param durationSeconds - Credential duration in seconds (default: 1800)
306
+ * @param options - Optional configuration
307
+ * @returns Promise resolving to STS credentials
308
+ * @throws {ConfigurationError} When required environment variables are missing
309
+ * @throws {ApiError} When API request fails
310
+ * @throws {NetworkError} When network request fails
311
+ *
312
+ * @example
313
+ * ```typescript
314
+ * import { getFileStsCredentials } from '@tale/client';
315
+ *
316
+ * try {
317
+ * const credentials = await getFileStsCredentials('file_id_here', '.pdf', 1800);
318
+ * console.log('Access Key ID:', credentials.access_key_id);
319
+ * console.log('Secret Access Key:', credentials.secret_access_key);
320
+ * console.log('Session Token:', credentials.session_token);
321
+ * console.log('Upload Path:', credentials.upload_path);
322
+ * // Use these credentials to upload with OSS SDK
323
+ * } catch (error) {
324
+ * console.error('Failed to get STS credentials:', error.message);
325
+ * }
326
+ * ```
327
+ */
328
+ export declare function getFileStsCredentials(fileId: string, fileExtension: string, durationSeconds?: number, options?: FileOptions): Promise<{
329
+ access_key_id: string;
330
+ secret_access_key: string;
331
+ session_token: string;
332
+ expiration: string;
333
+ upload_path: string;
334
+ region: string;
335
+ }>;
336
+ /**
337
+ * Marks file upload as complete and updates OSS information.
338
+ *
339
+ * @param fileId - File ID
340
+ * @param request - Upload completion information
341
+ * @param options - Optional configuration
342
+ * @returns Promise resolving to success message
343
+ * @throws {ConfigurationError} When required environment variables are missing
344
+ * @throws {ApiError} When API request fails
345
+ * @throws {NetworkError} When network request fails
346
+ *
347
+ * @example
348
+ * ```typescript
349
+ * import { fileUploadComplete } from '@tale/client';
350
+ *
351
+ * try {
352
+ * const result = await fileUploadComplete('file_id_here', {
353
+ * oss_key: 'cms/appkey/folder/fileid.pdf',
354
+ * file_size: 12345,
355
+ * etag: 'abc123'
356
+ * });
357
+ * console.log('Upload complete:', result.message);
358
+ * } catch (error) {
359
+ * console.error('Failed to mark upload complete:', error.message);
360
+ * }
361
+ * ```
362
+ */
363
+ export declare function fileUploadComplete(fileId: string, request: {
364
+ oss_key: string;
365
+ file_size: number;
366
+ etag: string;
367
+ }, options?: FileOptions): Promise<{
368
+ message: string;
369
+ file_id: string;
370
+ }>;
371
+ /**
372
+ * Sets a preview image for a file.
373
+ *
374
+ * @param fileId - File ID
375
+ * @param imageFile - Image file to upload (File or Blob)
376
+ * @param options - Optional configuration
377
+ * @returns Promise resolving to updated file
378
+ * @throws {ConfigurationError} When required environment variables are missing
379
+ * @throws {ApiError} When API request fails
380
+ * @throws {NetworkError} When network request fails
381
+ *
382
+ * @example
383
+ * ```typescript
384
+ * import { setFilePreviewImage } from '@tale/client';
385
+ *
386
+ * try {
387
+ * // Get file from input element
388
+ * const input = document.getElementById('previewInput');
389
+ * const file = input.files[0];
390
+ *
391
+ * const updatedFile = await setFilePreviewImage('file_id_here', file);
392
+ * console.log('Preview image set:', updatedFile.preview_image_url);
393
+ * } catch (error) {
394
+ * console.error('Failed to set preview image:', error.message);
395
+ * }
396
+ * ```
397
+ */
398
+ export declare function setFilePreviewImage(fileId: string, imageFile: File | Blob, options?: FileOptions): Promise<File>;