@studyfetch/sdk 1.42.0 → 1.45.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.
- package/CHANGELOG.md +57 -0
- package/internal/to-file.d.mts +1 -1
- package/internal/to-file.d.ts +1 -1
- package/internal/to-file.js +1 -1
- package/internal/to-file.mjs +1 -1
- package/package.json +1 -1
- package/resources/v1/assignment-grader/assignment-grader.d.mts +12 -0
- package/resources/v1/assignment-grader/assignment-grader.d.mts.map +1 -1
- package/resources/v1/assignment-grader/assignment-grader.d.ts +12 -0
- package/resources/v1/assignment-grader/assignment-grader.d.ts.map +1 -1
- package/resources/v1/assignment-grader/assignment-grader.js.map +1 -1
- package/resources/v1/assignment-grader/assignment-grader.mjs.map +1 -1
- package/resources/v1/assignment-grader/rubric-templates.d.mts +8 -0
- package/resources/v1/assignment-grader/rubric-templates.d.mts.map +1 -1
- package/resources/v1/assignment-grader/rubric-templates.d.ts +8 -0
- package/resources/v1/assignment-grader/rubric-templates.d.ts.map +1 -1
- package/resources/v1/chat.d.mts +53 -1
- package/resources/v1/chat.d.mts.map +1 -1
- package/resources/v1/chat.d.ts +53 -1
- package/resources/v1/chat.d.ts.map +1 -1
- package/resources/v1/chat.js +30 -0
- package/resources/v1/chat.js.map +1 -1
- package/resources/v1/chat.mjs +30 -0
- package/resources/v1/chat.mjs.map +1 -1
- package/resources/v1/components.d.mts +37 -1
- package/resources/v1/components.d.mts.map +1 -1
- package/resources/v1/components.d.ts +37 -1
- package/resources/v1/components.d.ts.map +1 -1
- package/resources/v1/embed/context.d.mts +61 -0
- package/resources/v1/embed/context.d.mts.map +1 -0
- package/resources/v1/embed/context.d.ts +61 -0
- package/resources/v1/embed/context.d.ts.map +1 -0
- package/resources/v1/embed/context.js +61 -0
- package/resources/v1/embed/context.js.map +1 -0
- package/resources/v1/embed/context.mjs +57 -0
- package/resources/v1/embed/context.mjs.map +1 -0
- package/resources/v1/embed/embed.d.mts +4 -0
- package/resources/v1/embed/embed.d.mts.map +1 -1
- package/resources/v1/embed/embed.d.ts +4 -0
- package/resources/v1/embed/embed.d.ts.map +1 -1
- package/resources/v1/embed/embed.js +4 -0
- package/resources/v1/embed/embed.js.map +1 -1
- package/resources/v1/embed/embed.mjs +4 -0
- package/resources/v1/embed/embed.mjs.map +1 -1
- package/resources/v1/embed/index.d.mts +1 -0
- package/resources/v1/embed/index.d.mts.map +1 -1
- package/resources/v1/embed/index.d.ts +1 -0
- package/resources/v1/embed/index.d.ts.map +1 -1
- package/resources/v1/embed/index.js +3 -1
- package/resources/v1/embed/index.js.map +1 -1
- package/resources/v1/embed/index.mjs +1 -0
- package/resources/v1/embed/index.mjs.map +1 -1
- package/resources/v1/folders.d.mts +25 -1
- package/resources/v1/folders.d.mts.map +1 -1
- package/resources/v1/folders.d.ts +25 -1
- package/resources/v1/folders.d.ts.map +1 -1
- package/resources/v1/folders.js +11 -0
- package/resources/v1/folders.js.map +1 -1
- package/resources/v1/folders.mjs +11 -0
- package/resources/v1/folders.mjs.map +1 -1
- package/resources/v1/index.d.mts +5 -3
- package/resources/v1/index.d.mts.map +1 -1
- package/resources/v1/index.d.ts +5 -3
- package/resources/v1/index.d.ts.map +1 -1
- package/resources/v1/index.js +5 -1
- package/resources/v1/index.js.map +1 -1
- package/resources/v1/index.mjs +2 -0
- package/resources/v1/index.mjs.map +1 -1
- package/resources/v1/materials/index.d.mts +1 -1
- package/resources/v1/materials/index.d.mts.map +1 -1
- package/resources/v1/materials/index.d.ts +1 -1
- package/resources/v1/materials/index.d.ts.map +1 -1
- package/resources/v1/materials/index.js.map +1 -1
- package/resources/v1/materials/index.mjs.map +1 -1
- package/resources/v1/materials/materials.d.mts +92 -1
- package/resources/v1/materials/materials.d.mts.map +1 -1
- package/resources/v1/materials/materials.d.ts +92 -1
- package/resources/v1/materials/materials.d.ts.map +1 -1
- package/resources/v1/materials/materials.js +25 -0
- package/resources/v1/materials/materials.js.map +1 -1
- package/resources/v1/materials/materials.mjs +25 -0
- package/resources/v1/materials/materials.mjs.map +1 -1
- package/resources/v1/materials/upload.d.mts +38 -4
- package/resources/v1/materials/upload.d.mts.map +1 -1
- package/resources/v1/materials/upload.d.ts +38 -4
- package/resources/v1/materials/upload.d.ts.map +1 -1
- package/resources/v1/materials/upload.js +20 -3
- package/resources/v1/materials/upload.js.map +1 -1
- package/resources/v1/materials/upload.mjs +19 -2
- package/resources/v1/materials/upload.mjs.map +1 -1
- package/resources/v1/pdf-generator/get.d.mts +65 -0
- package/resources/v1/pdf-generator/get.d.mts.map +1 -0
- package/resources/v1/pdf-generator/get.d.ts +65 -0
- package/resources/v1/pdf-generator/get.d.ts.map +1 -0
- package/resources/v1/pdf-generator/get.js +9 -0
- package/resources/v1/pdf-generator/get.js.map +1 -0
- package/resources/v1/pdf-generator/get.mjs +5 -0
- package/resources/v1/pdf-generator/get.mjs.map +1 -0
- package/resources/v1/pdf-generator/index.d.mts +3 -0
- package/resources/v1/pdf-generator/index.d.mts.map +1 -0
- package/resources/v1/pdf-generator/index.d.ts +3 -0
- package/resources/v1/pdf-generator/index.d.ts.map +1 -0
- package/resources/v1/pdf-generator/index.js +9 -0
- package/resources/v1/pdf-generator/index.js.map +1 -0
- package/resources/v1/pdf-generator/index.mjs +4 -0
- package/resources/v1/pdf-generator/index.mjs.map +1 -0
- package/resources/v1/pdf-generator/pdf-generator.d.mts +109 -0
- package/resources/v1/pdf-generator/pdf-generator.d.mts.map +1 -0
- package/resources/v1/pdf-generator/pdf-generator.d.ts +109 -0
- package/resources/v1/pdf-generator/pdf-generator.d.ts.map +1 -0
- package/resources/v1/pdf-generator/pdf-generator.js +70 -0
- package/resources/v1/pdf-generator/pdf-generator.js.map +1 -0
- package/resources/v1/pdf-generator/pdf-generator.mjs +65 -0
- package/resources/v1/pdf-generator/pdf-generator.mjs.map +1 -0
- package/resources/v1/pdf-generator.d.mts +2 -0
- package/resources/v1/pdf-generator.d.mts.map +1 -0
- package/resources/v1/pdf-generator.d.ts +2 -0
- package/resources/v1/pdf-generator.d.ts.map +1 -0
- package/resources/v1/pdf-generator.js +6 -0
- package/resources/v1/pdf-generator.js.map +1 -0
- package/resources/v1/pdf-generator.mjs +3 -0
- package/resources/v1/pdf-generator.mjs.map +1 -0
- package/resources/v1/performance-insights/conversations.d.mts +131 -0
- package/resources/v1/performance-insights/conversations.d.mts.map +1 -0
- package/resources/v1/performance-insights/conversations.d.ts +131 -0
- package/resources/v1/performance-insights/conversations.d.ts.map +1 -0
- package/resources/v1/performance-insights/conversations.js +131 -0
- package/resources/v1/performance-insights/conversations.js.map +1 -0
- package/resources/v1/performance-insights/conversations.mjs +127 -0
- package/resources/v1/performance-insights/conversations.mjs.map +1 -0
- package/resources/v1/performance-insights/index.d.mts +3 -0
- package/resources/v1/performance-insights/index.d.mts.map +1 -0
- package/resources/v1/performance-insights/index.d.ts +3 -0
- package/resources/v1/performance-insights/index.d.ts.map +1 -0
- package/resources/v1/performance-insights/index.js +9 -0
- package/resources/v1/performance-insights/index.js.map +1 -0
- package/resources/v1/performance-insights/index.mjs +4 -0
- package/resources/v1/performance-insights/index.mjs.map +1 -0
- package/resources/v1/performance-insights/performance-insights.d.mts +139 -0
- package/resources/v1/performance-insights/performance-insights.d.mts.map +1 -0
- package/resources/v1/performance-insights/performance-insights.d.ts +139 -0
- package/resources/v1/performance-insights/performance-insights.d.ts.map +1 -0
- package/resources/v1/performance-insights/performance-insights.js +55 -0
- package/resources/v1/performance-insights/performance-insights.js.map +1 -0
- package/resources/v1/performance-insights/performance-insights.mjs +50 -0
- package/resources/v1/performance-insights/performance-insights.mjs.map +1 -0
- package/resources/v1/performance-insights.d.mts +2 -0
- package/resources/v1/performance-insights.d.mts.map +1 -0
- package/resources/v1/performance-insights.d.ts +2 -0
- package/resources/v1/performance-insights.d.ts.map +1 -0
- package/resources/v1/performance-insights.js +6 -0
- package/resources/v1/performance-insights.js.map +1 -0
- package/resources/v1/performance-insights.mjs +3 -0
- package/resources/v1/performance-insights.mjs.map +1 -0
- package/resources/v1/usage.d.mts +8 -0
- package/resources/v1/usage.d.mts.map +1 -1
- package/resources/v1/usage.d.ts +8 -0
- package/resources/v1/usage.d.ts.map +1 -1
- package/resources/v1/v1.d.mts +14 -6
- package/resources/v1/v1.d.mts.map +1 -1
- package/resources/v1/v1.d.ts +14 -6
- package/resources/v1/v1.d.ts.map +1 -1
- package/resources/v1/v1.js +8 -0
- package/resources/v1/v1.js.map +1 -1
- package/resources/v1/v1.mjs +8 -0
- package/resources/v1/v1.mjs.map +1 -1
- package/src/internal/to-file.ts +1 -1
- package/src/resources/v1/assignment-grader/assignment-grader.ts +15 -0
- package/src/resources/v1/assignment-grader/rubric-templates.ts +10 -0
- package/src/resources/v1/chat.ts +81 -1
- package/src/resources/v1/components.ts +45 -1
- package/src/resources/v1/embed/context.ts +96 -0
- package/src/resources/v1/embed/embed.ts +11 -0
- package/src/resources/v1/embed/index.ts +6 -0
- package/src/resources/v1/folders.ts +35 -0
- package/src/resources/v1/index.ts +18 -1
- package/src/resources/v1/materials/index.ts +2 -0
- package/src/resources/v1/materials/materials.ts +117 -0
- package/src/resources/v1/materials/upload.ts +74 -7
- package/src/resources/v1/pdf-generator/get.ts +80 -0
- package/src/resources/v1/pdf-generator/index.ts +10 -0
- package/src/resources/v1/pdf-generator/pdf-generator.ts +147 -0
- package/src/resources/v1/pdf-generator.ts +3 -0
- package/src/resources/v1/performance-insights/conversations.ts +238 -0
- package/src/resources/v1/performance-insights/index.ts +17 -0
- package/src/resources/v1/performance-insights/performance-insights.ts +214 -0
- package/src/resources/v1/performance-insights.ts +3 -0
- package/src/resources/v1/usage.ts +10 -0
- package/src/resources/v1/v1.ts +49 -2
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
|
@@ -9,7 +9,7 @@ export {
|
|
|
9
9
|
type AssignmentGraderGetAllResponse,
|
|
10
10
|
type AssignmentGraderCreateParams,
|
|
11
11
|
} from './assignment-grader/index';
|
|
12
|
-
export { Chat, type ChatStreamParams } from './chat';
|
|
12
|
+
export { Chat, type ChatRetrieveFeedbackParams, type ChatStreamParams } from './chat';
|
|
13
13
|
export {
|
|
14
14
|
ChatAnalytics,
|
|
15
15
|
type ChatAnalyticsResponse,
|
|
@@ -33,6 +33,7 @@ export {
|
|
|
33
33
|
Folders,
|
|
34
34
|
type FolderMetadata,
|
|
35
35
|
type FolderCreateResponse,
|
|
36
|
+
type FolderGetByNameResponse,
|
|
36
37
|
type FolderRetrieveResponse,
|
|
37
38
|
type FolderUpdateResponse,
|
|
38
39
|
type FolderListResponse,
|
|
@@ -40,6 +41,7 @@ export {
|
|
|
40
41
|
type FolderListMaterialsResponse,
|
|
41
42
|
type FolderMoveResponse,
|
|
42
43
|
type FolderCreateParams,
|
|
44
|
+
type FolderGetByNameParams,
|
|
43
45
|
type FolderUpdateParams,
|
|
44
46
|
type FolderListParams,
|
|
45
47
|
type FolderListMaterialsParams,
|
|
@@ -52,9 +54,11 @@ export {
|
|
|
52
54
|
type MaterialResponse,
|
|
53
55
|
type Reference,
|
|
54
56
|
type MaterialListResponse,
|
|
57
|
+
type MaterialCancelJobResponse,
|
|
55
58
|
type MaterialCreateBatchUploadURLsResponse,
|
|
56
59
|
type MaterialGetDebugInfoResponse,
|
|
57
60
|
type MaterialGetDownloadURLResponse,
|
|
61
|
+
type MaterialGetJobStatusResponse,
|
|
58
62
|
type MaterialSearchResponse,
|
|
59
63
|
type MaterialCreateParams,
|
|
60
64
|
type MaterialUpdateParams,
|
|
@@ -68,6 +72,19 @@ export {
|
|
|
68
72
|
type MaterialRenameParams,
|
|
69
73
|
type MaterialSearchParams,
|
|
70
74
|
} from './materials/index';
|
|
75
|
+
export {
|
|
76
|
+
PdfGenerator,
|
|
77
|
+
type PdfGeneratorCreateResponse,
|
|
78
|
+
type PdfGeneratorDeleteResponse,
|
|
79
|
+
type PdfGeneratorGetAllResponse,
|
|
80
|
+
type PdfGeneratorCreateParams,
|
|
81
|
+
} from './pdf-generator/index';
|
|
82
|
+
export {
|
|
83
|
+
PerformanceInsights,
|
|
84
|
+
type PerformanceInsightsGenerateEmbedResponse,
|
|
85
|
+
type PerformanceInsightsGenerateEmbedParams,
|
|
86
|
+
type PerformanceInsightsStreamParams,
|
|
87
|
+
} from './performance-insights/index';
|
|
71
88
|
export {
|
|
72
89
|
Usage,
|
|
73
90
|
type UsageGetStatsParams,
|
|
@@ -8,9 +8,11 @@ export {
|
|
|
8
8
|
type MaterialResponse,
|
|
9
9
|
type Reference,
|
|
10
10
|
type MaterialListResponse,
|
|
11
|
+
type MaterialCancelJobResponse,
|
|
11
12
|
type MaterialCreateBatchUploadURLsResponse,
|
|
12
13
|
type MaterialGetDebugInfoResponse,
|
|
13
14
|
type MaterialGetDownloadURLResponse,
|
|
15
|
+
type MaterialGetJobStatusResponse,
|
|
14
16
|
type MaterialSearchResponse,
|
|
15
17
|
type MaterialCreateParams,
|
|
16
18
|
type MaterialUpdateParams,
|
|
@@ -96,6 +96,18 @@ export class Materials extends APIResource {
|
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
+
/**
|
|
100
|
+
* Attempts to cancel a currently running PDF processing job
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* const response = await client.v1.materials.cancelJob('id');
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
cancelJob(id: string, options?: RequestOptions): APIPromise<MaterialCancelJobResponse> {
|
|
108
|
+
return this._client.post(path`/api/v1/materials/${id}/cancel-job`, options);
|
|
109
|
+
}
|
|
110
|
+
|
|
99
111
|
/**
|
|
100
112
|
* Creates a material and waits for processing to finish before returning. Useful
|
|
101
113
|
* for synchronous API usage.
|
|
@@ -211,6 +223,21 @@ export class Materials extends APIResource {
|
|
|
211
223
|
return this._client.get(path`/api/v1/materials/${id}/download-url`, { query, ...options });
|
|
212
224
|
}
|
|
213
225
|
|
|
226
|
+
/**
|
|
227
|
+
* Returns the current status of a PDF processing job including progress
|
|
228
|
+
* information
|
|
229
|
+
*
|
|
230
|
+
* @example
|
|
231
|
+
* ```ts
|
|
232
|
+
* const response = await client.v1.materials.getJobStatus(
|
|
233
|
+
* 'id',
|
|
234
|
+
* );
|
|
235
|
+
* ```
|
|
236
|
+
*/
|
|
237
|
+
getJobStatus(id: string, options?: RequestOptions): APIPromise<MaterialGetJobStatusResponse> {
|
|
238
|
+
return this._client.get(path`/api/v1/materials/${id}/job-status`, options);
|
|
239
|
+
}
|
|
240
|
+
|
|
214
241
|
/**
|
|
215
242
|
* Move material to a different folder
|
|
216
243
|
*
|
|
@@ -484,6 +511,12 @@ export interface MaterialListResponse {
|
|
|
484
511
|
totalPages?: number;
|
|
485
512
|
}
|
|
486
513
|
|
|
514
|
+
export interface MaterialCancelJobResponse {
|
|
515
|
+
message?: string;
|
|
516
|
+
|
|
517
|
+
success?: boolean;
|
|
518
|
+
}
|
|
519
|
+
|
|
487
520
|
export type MaterialCreateBatchUploadURLsResponse =
|
|
488
521
|
Array<MaterialCreateBatchUploadURLsResponse.MaterialCreateBatchUploadURLsResponseItem>;
|
|
489
522
|
|
|
@@ -574,6 +607,88 @@ export interface MaterialGetDownloadURLResponse {
|
|
|
574
607
|
downloadUrl: string;
|
|
575
608
|
}
|
|
576
609
|
|
|
610
|
+
export interface MaterialGetJobStatusResponse {
|
|
611
|
+
/**
|
|
612
|
+
* Job completion time
|
|
613
|
+
*/
|
|
614
|
+
completedAt?: string;
|
|
615
|
+
|
|
616
|
+
/**
|
|
617
|
+
* Error message if job failed
|
|
618
|
+
*/
|
|
619
|
+
error?: string;
|
|
620
|
+
|
|
621
|
+
/**
|
|
622
|
+
* Unique job identifier
|
|
623
|
+
*/
|
|
624
|
+
jobId?: string;
|
|
625
|
+
|
|
626
|
+
progress?: MaterialGetJobStatusResponse.Progress;
|
|
627
|
+
|
|
628
|
+
resultSummary?: MaterialGetJobStatusResponse.ResultSummary;
|
|
629
|
+
|
|
630
|
+
/**
|
|
631
|
+
* Job start time
|
|
632
|
+
*/
|
|
633
|
+
startedAt?: string;
|
|
634
|
+
|
|
635
|
+
/**
|
|
636
|
+
* Current job status
|
|
637
|
+
*/
|
|
638
|
+
status?: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
export namespace MaterialGetJobStatusResponse {
|
|
642
|
+
export interface Progress {
|
|
643
|
+
/**
|
|
644
|
+
* Current batch being processed
|
|
645
|
+
*/
|
|
646
|
+
currentBatch?: number;
|
|
647
|
+
|
|
648
|
+
/**
|
|
649
|
+
* Completion percentage (0-100)
|
|
650
|
+
*/
|
|
651
|
+
percentage?: number;
|
|
652
|
+
|
|
653
|
+
/**
|
|
654
|
+
* Images processed so far
|
|
655
|
+
*/
|
|
656
|
+
processedImages?: number;
|
|
657
|
+
|
|
658
|
+
/**
|
|
659
|
+
* Total number of batches
|
|
660
|
+
*/
|
|
661
|
+
totalBatches?: number;
|
|
662
|
+
|
|
663
|
+
/**
|
|
664
|
+
* Total images to process
|
|
665
|
+
*/
|
|
666
|
+
totalImages?: number;
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
export interface ResultSummary {
|
|
670
|
+
/**
|
|
671
|
+
* Number of images processed
|
|
672
|
+
*/
|
|
673
|
+
imagesProcessed?: number;
|
|
674
|
+
|
|
675
|
+
/**
|
|
676
|
+
* Total processing time in milliseconds
|
|
677
|
+
*/
|
|
678
|
+
processingTimeMs?: number;
|
|
679
|
+
|
|
680
|
+
/**
|
|
681
|
+
* Whether text was extracted
|
|
682
|
+
*/
|
|
683
|
+
textExtracted?: boolean;
|
|
684
|
+
|
|
685
|
+
/**
|
|
686
|
+
* Length of extracted text
|
|
687
|
+
*/
|
|
688
|
+
textLength?: number;
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
|
|
577
692
|
export interface MaterialSearchResponse {
|
|
578
693
|
/**
|
|
579
694
|
* Whether results were filtered by scope
|
|
@@ -922,9 +1037,11 @@ export declare namespace Materials {
|
|
|
922
1037
|
type MaterialResponse as MaterialResponse,
|
|
923
1038
|
type Reference as Reference,
|
|
924
1039
|
type MaterialListResponse as MaterialListResponse,
|
|
1040
|
+
type MaterialCancelJobResponse as MaterialCancelJobResponse,
|
|
925
1041
|
type MaterialCreateBatchUploadURLsResponse as MaterialCreateBatchUploadURLsResponse,
|
|
926
1042
|
type MaterialGetDebugInfoResponse as MaterialGetDebugInfoResponse,
|
|
927
1043
|
type MaterialGetDownloadURLResponse as MaterialGetDownloadURLResponse,
|
|
1044
|
+
type MaterialGetJobStatusResponse as MaterialGetJobStatusResponse,
|
|
928
1045
|
type MaterialSearchResponse as MaterialSearchResponse,
|
|
929
1046
|
type MaterialCreateParams as MaterialCreateParams,
|
|
930
1047
|
type MaterialUpdateParams as MaterialUpdateParams,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { APIResource } from '../../../core/resource';
|
|
4
4
|
import * as MaterialsAPI from './materials';
|
|
5
5
|
import { APIPromise } from '../../../core/api-promise';
|
|
6
|
-
import { type Uploadable } from '../../../core/uploads';
|
|
6
|
+
import { toFile, type Uploadable } from '../../../core/uploads';
|
|
7
7
|
import { RequestOptions } from '../../../internal/request-options';
|
|
8
8
|
import { multipartFormRequestOptions } from '../../../internal/uploads';
|
|
9
9
|
|
|
@@ -65,7 +65,7 @@ export class Upload extends APIResource {
|
|
|
65
65
|
): APIPromise<MaterialsAPI.MaterialResponse> {
|
|
66
66
|
return this._client.post(
|
|
67
67
|
'/api/v1/materials/upload',
|
|
68
|
-
|
|
68
|
+
multipartUploadRequestOptions(body, options, this._client),
|
|
69
69
|
);
|
|
70
70
|
}
|
|
71
71
|
|
|
@@ -88,7 +88,7 @@ export class Upload extends APIResource {
|
|
|
88
88
|
): APIPromise<MaterialsAPI.MaterialResponse> {
|
|
89
89
|
return this._client.post(
|
|
90
90
|
'/api/v1/materials/upload/file-and-process',
|
|
91
|
-
|
|
91
|
+
multipartUploadRequestOptions(body, options, this._client),
|
|
92
92
|
);
|
|
93
93
|
}
|
|
94
94
|
|
|
@@ -201,16 +201,29 @@ export interface UploadUploadFileParams {
|
|
|
201
201
|
*/
|
|
202
202
|
name: string;
|
|
203
203
|
|
|
204
|
+
/**
|
|
205
|
+
* Content-Type/MIME type of the file (e.g., video/mp4, application/pdf).
|
|
206
|
+
* If not provided, the uploadable's existing type is used.
|
|
207
|
+
*/
|
|
208
|
+
contentType?: string;
|
|
209
|
+
|
|
204
210
|
/**
|
|
205
211
|
* Whether to extract images from files (true/false, default: true)
|
|
206
212
|
*/
|
|
207
213
|
extractImages?: string;
|
|
208
214
|
|
|
209
215
|
/**
|
|
210
|
-
* Folder ID (optional)
|
|
216
|
+
* Folder ID (optional). If folderPath is provided, folderId will be ignored.
|
|
211
217
|
*/
|
|
212
218
|
folderId?: string;
|
|
213
219
|
|
|
220
|
+
/**
|
|
221
|
+
* Relative folder path (e.g., "folder1/folder2"). Folders will be created if
|
|
222
|
+
* they don't exist. The filename can be included and will be extracted
|
|
223
|
+
* automatically.
|
|
224
|
+
*/
|
|
225
|
+
folderPath?: string;
|
|
226
|
+
|
|
214
227
|
/**
|
|
215
228
|
* JSON string of references array (optional)
|
|
216
229
|
*/
|
|
@@ -225,16 +238,29 @@ export interface UploadUploadFileAndProcessParams {
|
|
|
225
238
|
*/
|
|
226
239
|
name: string;
|
|
227
240
|
|
|
241
|
+
/**
|
|
242
|
+
* Content-Type/MIME type of the file (e.g., video/mp4, application/pdf).
|
|
243
|
+
* If not provided, the uploadable's existing type is used.
|
|
244
|
+
*/
|
|
245
|
+
contentType?: string;
|
|
246
|
+
|
|
228
247
|
/**
|
|
229
248
|
* Whether to extract images from files (true/false, default: true)
|
|
230
249
|
*/
|
|
231
250
|
extractImages?: string;
|
|
232
251
|
|
|
233
252
|
/**
|
|
234
|
-
* Folder ID (optional)
|
|
253
|
+
* Folder ID (optional). If folderPath is provided, folderId will be ignored.
|
|
235
254
|
*/
|
|
236
255
|
folderId?: string;
|
|
237
256
|
|
|
257
|
+
/**
|
|
258
|
+
* Relative folder path (e.g., "folder1/folder2"). Folders will be created if
|
|
259
|
+
* they don't exist. The filename can be included and will be extracted
|
|
260
|
+
* automatically.
|
|
261
|
+
*/
|
|
262
|
+
folderPath?: string;
|
|
263
|
+
|
|
238
264
|
/**
|
|
239
265
|
* Polling interval in milliseconds (default: 2000)
|
|
240
266
|
*/
|
|
@@ -258,9 +284,16 @@ export interface UploadUploadFromURLParams {
|
|
|
258
284
|
url: string;
|
|
259
285
|
|
|
260
286
|
/**
|
|
261
|
-
* Folder ID (optional)
|
|
287
|
+
* Folder ID (optional). If folderPath is provided, folderId will be ignored.
|
|
262
288
|
*/
|
|
263
289
|
folderId?: string;
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Relative folder path (e.g., "folder1/folder2"). Folders will be created if
|
|
293
|
+
* they don't exist. The filename can be included and will be extracted
|
|
294
|
+
* automatically.
|
|
295
|
+
*/
|
|
296
|
+
folderPath?: string;
|
|
264
297
|
}
|
|
265
298
|
|
|
266
299
|
export interface UploadUploadFromURLAndProcessParams {
|
|
@@ -275,10 +308,17 @@ export interface UploadUploadFromURLAndProcessParams {
|
|
|
275
308
|
url: string;
|
|
276
309
|
|
|
277
310
|
/**
|
|
278
|
-
* Folder ID (optional)
|
|
311
|
+
* Folder ID (optional). If folderPath is provided, folderId will be ignored.
|
|
279
312
|
*/
|
|
280
313
|
folderId?: string;
|
|
281
314
|
|
|
315
|
+
/**
|
|
316
|
+
* Relative folder path (e.g., "folder1/folder2"). Folders will be created if
|
|
317
|
+
* they don't exist. The filename can be included and will be extracted
|
|
318
|
+
* automatically.
|
|
319
|
+
*/
|
|
320
|
+
folderPath?: string;
|
|
321
|
+
|
|
282
322
|
/**
|
|
283
323
|
* Polling interval in milliseconds (default: 2 seconds)
|
|
284
324
|
*/
|
|
@@ -306,3 +346,30 @@ export declare namespace Upload {
|
|
|
306
346
|
type UploadUploadFromURLAndProcessParams as UploadUploadFromURLAndProcessParams,
|
|
307
347
|
};
|
|
308
348
|
}
|
|
349
|
+
|
|
350
|
+
type MultipartClient = Parameters<typeof multipartFormRequestOptions>[1];
|
|
351
|
+
type MultipartUploadBody = UploadUploadFileParams | UploadUploadFileAndProcessParams;
|
|
352
|
+
|
|
353
|
+
async function multipartUploadRequestOptions(
|
|
354
|
+
body: MultipartUploadBody,
|
|
355
|
+
options: RequestOptions | undefined,
|
|
356
|
+
client: MultipartClient,
|
|
357
|
+
): Promise<RequestOptions> {
|
|
358
|
+
const { contentType, ...bodyWithoutContentType } = body;
|
|
359
|
+
const multipartBody =
|
|
360
|
+
contentType ?
|
|
361
|
+
{ ...bodyWithoutContentType, file: await toUploadableWithContentType(body.file, contentType) }
|
|
362
|
+
: bodyWithoutContentType;
|
|
363
|
+
|
|
364
|
+
return multipartFormRequestOptions({ body: multipartBody, ...options }, client);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
async function toUploadableWithContentType(file: Uploadable, contentType: string): Promise<Uploadable> {
|
|
368
|
+
const typedFile = await toFile(file, undefined, { type: contentType });
|
|
369
|
+
if (typedFile.type === contentType) return typedFile;
|
|
370
|
+
|
|
371
|
+
return new File([typedFile], typedFile.name, {
|
|
372
|
+
type: contentType,
|
|
373
|
+
lastModified: typedFile.lastModified,
|
|
374
|
+
});
|
|
375
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { APIResource } from '../../../core/resource';
|
|
4
|
+
|
|
5
|
+
export class Get extends APIResource {}
|
|
6
|
+
|
|
7
|
+
export interface PdfResponse {
|
|
8
|
+
/**
|
|
9
|
+
* PDF presentation ID
|
|
10
|
+
*/
|
|
11
|
+
_id: string;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Creation timestamp
|
|
15
|
+
*/
|
|
16
|
+
createdAt: string;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Locale of the presentation
|
|
20
|
+
*/
|
|
21
|
+
locale: string;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Number of slides
|
|
25
|
+
*/
|
|
26
|
+
numberOfSlides: number;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Organization ID
|
|
30
|
+
*/
|
|
31
|
+
organizationId: string;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Topic of the presentation
|
|
35
|
+
*/
|
|
36
|
+
topic: string;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Transcript of each slide
|
|
40
|
+
*/
|
|
41
|
+
transcript: Array<PdfResponse.Transcript>;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Update timestamp
|
|
45
|
+
*/
|
|
46
|
+
updatedAt: string;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* URL to the generated PDF on S3
|
|
50
|
+
*/
|
|
51
|
+
url: string;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* URL to the generated PowerPoint (PPTX) on S3
|
|
55
|
+
*/
|
|
56
|
+
pptxUrl?: string;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* User ID
|
|
60
|
+
*/
|
|
61
|
+
userId?: string;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export namespace PdfResponse {
|
|
65
|
+
export interface Transcript {
|
|
66
|
+
/**
|
|
67
|
+
* Description of the slide content and OCR text
|
|
68
|
+
*/
|
|
69
|
+
descriptionOfPage: string;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Page number of the slide
|
|
73
|
+
*/
|
|
74
|
+
pageNum: number;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export declare namespace Get {
|
|
79
|
+
export { type PdfResponse as PdfResponse };
|
|
80
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
export { Get, type PdfResponse } from './get';
|
|
4
|
+
export {
|
|
5
|
+
PdfGenerator,
|
|
6
|
+
type PdfGeneratorCreateResponse,
|
|
7
|
+
type PdfGeneratorDeleteResponse,
|
|
8
|
+
type PdfGeneratorGetAllResponse,
|
|
9
|
+
type PdfGeneratorCreateParams,
|
|
10
|
+
} from './pdf-generator';
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { APIResource } from '../../../core/resource';
|
|
4
|
+
import * as GetAPI from './get';
|
|
5
|
+
import { Get, PdfResponse } from './get';
|
|
6
|
+
import { APIPromise } from '../../../core/api-promise';
|
|
7
|
+
import { RequestOptions } from '../../../internal/request-options';
|
|
8
|
+
import { path } from '../../../internal/utils/path';
|
|
9
|
+
|
|
10
|
+
export class PdfGenerator extends APIResource {
|
|
11
|
+
get: GetAPI.Get = new GetAPI.Get(this._client);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Generate a new PDF presentation
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* const pdfGenerator = await client.v1.pdfGenerator.create({
|
|
19
|
+
* locale: 'locale',
|
|
20
|
+
* numberOfSlides: 1,
|
|
21
|
+
* topic: 'topic',
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
create(body: PdfGeneratorCreateParams, options?: RequestOptions): APIPromise<PdfGeneratorCreateResponse> {
|
|
26
|
+
return this._client.post('/api/v1/pdf-generator/create', { body, ...options });
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Delete a PDF presentation by ID
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* const pdfGenerator = await client.v1.pdfGenerator.delete(
|
|
35
|
+
* 'id',
|
|
36
|
+
* );
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
delete(id: string, options?: RequestOptions): APIPromise<PdfGeneratorDeleteResponse> {
|
|
40
|
+
return this._client.delete(path`/api/v1/pdf-generator/delete/${id}`, options);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Get all PDF presentations
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* const pdfResponses = await client.v1.pdfGenerator.getAll();
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
getAll(options?: RequestOptions): APIPromise<PdfGeneratorGetAllResponse> {
|
|
52
|
+
return this._client.get('/api/v1/pdf-generator/get', options);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Get a PDF presentation by ID
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* const pdfResponse = await client.v1.pdfGenerator.getByID(
|
|
61
|
+
* 'id',
|
|
62
|
+
* );
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
getByID(id: string, options?: RequestOptions): APIPromise<GetAPI.PdfResponse> {
|
|
66
|
+
return this._client.get(path`/api/v1/pdf-generator/get/${id}`, options);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export interface PdfGeneratorCreateResponse {
|
|
71
|
+
presentation?: GetAPI.PdfResponse;
|
|
72
|
+
|
|
73
|
+
success?: boolean;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export interface PdfGeneratorDeleteResponse {
|
|
77
|
+
message?: string;
|
|
78
|
+
|
|
79
|
+
success?: boolean;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export type PdfGeneratorGetAllResponse = Array<GetAPI.PdfResponse>;
|
|
83
|
+
|
|
84
|
+
export interface PdfGeneratorCreateParams {
|
|
85
|
+
/**
|
|
86
|
+
* Locale/language for the presentation (e.g., en-US, es-ES, fr-FR)
|
|
87
|
+
*/
|
|
88
|
+
locale: string;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Number of slides to generate
|
|
92
|
+
*/
|
|
93
|
+
numberOfSlides: number;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* The topic for the PDF presentation
|
|
97
|
+
*/
|
|
98
|
+
topic: string;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Custom images to use (required when imageMode is "provide-own")
|
|
102
|
+
*/
|
|
103
|
+
customImages?: Array<PdfGeneratorCreateParams.CustomImage>;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Image handling mode: search (auto-search), provide-own (use custom images), none
|
|
107
|
+
* (no images, use icons)
|
|
108
|
+
*/
|
|
109
|
+
imageMode?: 'search' | 'provide-own' | 'none';
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Custom logo URL to use (optional, falls back to default StudyFetch logo)
|
|
113
|
+
*/
|
|
114
|
+
logoUrl?: string;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export namespace PdfGeneratorCreateParams {
|
|
118
|
+
export interface CustomImage {
|
|
119
|
+
/**
|
|
120
|
+
* Description of what this image shows
|
|
121
|
+
*/
|
|
122
|
+
description: string;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Base64-encoded image data (provide either url or base64)
|
|
126
|
+
*/
|
|
127
|
+
base64?: string;
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Image URL to download and use (provide either url or base64)
|
|
131
|
+
*/
|
|
132
|
+
url?: string;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
PdfGenerator.Get = Get;
|
|
137
|
+
|
|
138
|
+
export declare namespace PdfGenerator {
|
|
139
|
+
export {
|
|
140
|
+
type PdfGeneratorCreateResponse as PdfGeneratorCreateResponse,
|
|
141
|
+
type PdfGeneratorDeleteResponse as PdfGeneratorDeleteResponse,
|
|
142
|
+
type PdfGeneratorGetAllResponse as PdfGeneratorGetAllResponse,
|
|
143
|
+
type PdfGeneratorCreateParams as PdfGeneratorCreateParams,
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
export { Get as Get, type PdfResponse as PdfResponse };
|
|
147
|
+
}
|