@tuturuuu/internal-api 0.0.2 → 0.2.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 (114) hide show
  1. package/dist/ai-memory.d.ts +76 -0
  2. package/dist/ai-memory.d.ts.map +1 -0
  3. package/dist/ai-memory.js +59 -0
  4. package/dist/ai.d.ts +67 -3
  5. package/dist/ai.d.ts.map +1 -1
  6. package/dist/ai.js +121 -0
  7. package/dist/auth.d.ts +143 -1
  8. package/dist/auth.d.ts.map +1 -1
  9. package/dist/auth.js +143 -0
  10. package/dist/calendar.d.ts +60 -1
  11. package/dist/calendar.d.ts.map +1 -1
  12. package/dist/calendar.js +27 -0
  13. package/dist/chat-conversations.d.ts +81 -0
  14. package/dist/chat-conversations.d.ts.map +1 -0
  15. package/dist/chat-conversations.js +384 -0
  16. package/dist/chat-internal.d.ts +11 -0
  17. package/dist/chat-internal.d.ts.map +1 -0
  18. package/dist/chat-internal.js +39 -0
  19. package/dist/chat-legacy.d.ts +23 -0
  20. package/dist/chat-legacy.d.ts.map +1 -0
  21. package/dist/chat-legacy.js +68 -0
  22. package/dist/chat-types.d.ts +262 -0
  23. package/dist/chat-types.d.ts.map +1 -0
  24. package/dist/chat-types.js +2 -0
  25. package/dist/chat.d.ts +3 -45
  26. package/dist/chat.d.ts.map +1 -1
  27. package/dist/chat.js +17 -65
  28. package/dist/client.d.ts +5 -0
  29. package/dist/client.d.ts.map +1 -1
  30. package/dist/client.js +109 -8
  31. package/dist/education.d.ts +288 -2
  32. package/dist/education.d.ts.map +1 -1
  33. package/dist/education.js +176 -0
  34. package/dist/external-project-team.d.ts +51 -0
  35. package/dist/external-project-team.d.ts.map +1 -0
  36. package/dist/external-project-team.js +137 -0
  37. package/dist/external-projects.d.ts +89 -9
  38. package/dist/external-projects.d.ts.map +1 -1
  39. package/dist/external-projects.js +80 -31
  40. package/dist/finance.d.ts +491 -3
  41. package/dist/finance.d.ts.map +1 -1
  42. package/dist/finance.js +611 -1
  43. package/dist/hive.d.ts +739 -0
  44. package/dist/hive.d.ts.map +1 -0
  45. package/dist/hive.js +333 -0
  46. package/dist/index.d.ts +33 -19
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +361 -8
  49. package/dist/infrastructure.d.ts +1085 -1
  50. package/dist/infrastructure.d.ts.map +1 -1
  51. package/dist/infrastructure.js +652 -0
  52. package/dist/inventory.d.ts +355 -0
  53. package/dist/inventory.d.ts.map +1 -0
  54. package/dist/inventory.js +268 -0
  55. package/dist/mail.d.ts +125 -0
  56. package/dist/mail.d.ts.map +1 -1
  57. package/dist/mail.js +112 -1
  58. package/dist/meet.d.ts +54 -0
  59. package/dist/meet.d.ts.map +1 -0
  60. package/dist/meet.js +37 -0
  61. package/dist/mind.d.ts +55 -0
  62. package/dist/mind.d.ts.map +1 -0
  63. package/dist/mind.js +84 -0
  64. package/dist/posts.d.ts +33 -0
  65. package/dist/posts.d.ts.map +1 -1
  66. package/dist/posts.js +42 -0
  67. package/dist/promotions.d.ts +54 -0
  68. package/dist/promotions.d.ts.map +1 -1
  69. package/dist/promotions.js +52 -0
  70. package/dist/settings.d.ts +28 -1
  71. package/dist/settings.d.ts.map +1 -1
  72. package/dist/settings.js +68 -0
  73. package/dist/storage.d.ts +33 -21
  74. package/dist/storage.d.ts.map +1 -1
  75. package/dist/storage.js +53 -32
  76. package/dist/tasks-scheduling.d.ts +29 -0
  77. package/dist/tasks-scheduling.d.ts.map +1 -1
  78. package/dist/tasks-scheduling.js +20 -0
  79. package/dist/tasks.d.ts +239 -4
  80. package/dist/tasks.d.ts.map +1 -1
  81. package/dist/tasks.js +213 -0
  82. package/dist/teach.d.ts +130 -0
  83. package/dist/teach.d.ts.map +1 -0
  84. package/dist/teach.js +110 -0
  85. package/dist/topic-announcements.d.ts +235 -0
  86. package/dist/topic-announcements.d.ts.map +1 -0
  87. package/dist/topic-announcements.js +182 -0
  88. package/dist/tulearn.d.ts +223 -0
  89. package/dist/tulearn.d.ts.map +1 -0
  90. package/dist/tulearn.js +97 -0
  91. package/dist/tutoring.d.ts +152 -0
  92. package/dist/tutoring.d.ts.map +1 -0
  93. package/dist/tutoring.js +58 -0
  94. package/dist/user-group-activity.d.ts +54 -0
  95. package/dist/user-group-activity.d.ts.map +1 -0
  96. package/dist/user-group-activity.js +11 -0
  97. package/dist/user-groups.d.ts +35 -0
  98. package/dist/user-groups.d.ts.map +1 -0
  99. package/dist/user-groups.js +84 -0
  100. package/dist/users.d.ts +101 -1
  101. package/dist/users.d.ts.map +1 -1
  102. package/dist/users.js +178 -0
  103. package/dist/workspace-config-ids.d.ts +9 -0
  104. package/dist/workspace-config-ids.d.ts.map +1 -0
  105. package/dist/workspace-config-ids.js +11 -0
  106. package/dist/workspace-configs.d.ts +1 -7
  107. package/dist/workspace-configs.d.ts.map +1 -1
  108. package/dist/workspace-configs.js +14 -10
  109. package/dist/workspace-user-audit.d.ts +1 -0
  110. package/dist/workspace-user-audit.d.ts.map +1 -1
  111. package/dist/workspaces.d.ts +57 -0
  112. package/dist/workspaces.d.ts.map +1 -1
  113. package/dist/workspaces.js +58 -1
  114. package/package.json +65 -7
@@ -0,0 +1,235 @@
1
+ import { type InternalApiClientOptions, type InternalApiQuery } from './client';
2
+ export type TopicAnnouncementVerificationStatus = 'linked_confirmed_account' | 'needs_verification' | 'pending' | 'verified';
3
+ export type TopicAnnouncementStatus = 'cancelled' | 'draft' | 'failed' | 'queued' | 'sent' | 'skipped';
4
+ export type TopicAnnouncementAttachmentContentType = 'application/pdf' | 'image/gif' | 'image/jpeg' | 'image/png' | 'image/webp';
5
+ export type TopicAnnouncementAttachmentStorageProvider = 'r2' | 'supabase';
6
+ export interface TopicAnnouncementAttachmentDraft {
7
+ contentType: TopicAnnouncementAttachmentContentType;
8
+ fileName: string;
9
+ sizeBytes: number;
10
+ storagePath: string;
11
+ storageProvider: TopicAnnouncementAttachmentStorageProvider;
12
+ }
13
+ export interface TopicAnnouncementAttachment extends TopicAnnouncementAttachmentDraft {
14
+ createdAt: string;
15
+ id: string;
16
+ }
17
+ export interface TopicAnnouncementContact {
18
+ archived: boolean;
19
+ createdAt: string;
20
+ email: string;
21
+ id: string;
22
+ metadata: unknown;
23
+ name: string;
24
+ tags: string[];
25
+ verificationStatus: TopicAnnouncementVerificationStatus;
26
+ workspaceUserId: string | null;
27
+ }
28
+ export interface TopicAnnouncementGroupSummary {
29
+ id: string;
30
+ name: string;
31
+ }
32
+ export interface TopicAnnouncementRecord {
33
+ attachments: TopicAnnouncementAttachment[];
34
+ batch_id: string | null;
35
+ body: string;
36
+ class_label: string | null;
37
+ contacts: TopicAnnouncementContact[];
38
+ created_at: string;
39
+ day_label: string | null;
40
+ end_time: string | null;
41
+ group: TopicAnnouncementGroupSummary | null;
42
+ group_id: string | null;
43
+ id: string;
44
+ last_error: string | null;
45
+ place: string | null;
46
+ room: string | null;
47
+ scheduled_send_at: string | null;
48
+ sent_email_audit_id: string | null;
49
+ sent_at: string | null;
50
+ session_date: string | null;
51
+ source_type: string;
52
+ start_time: string | null;
53
+ status: TopicAnnouncementStatus;
54
+ title: string;
55
+ topic: string;
56
+ }
57
+ export interface TopicAnnouncementTemplateRecord {
58
+ class_label: string | null;
59
+ created_at: string;
60
+ day_label: string | null;
61
+ default_contact_ids: string[];
62
+ end_time: string | null;
63
+ group: TopicAnnouncementGroupSummary | null;
64
+ group_id: string | null;
65
+ id: string;
66
+ name: string;
67
+ place: string | null;
68
+ room: string | null;
69
+ session_date: string | null;
70
+ start_time: string | null;
71
+ title: string;
72
+ topic: string;
73
+ updated_at: string;
74
+ }
75
+ export interface TopicAnnouncementTemplatePayload {
76
+ classLabel?: string | null;
77
+ dayLabel?: string | null;
78
+ defaultContactIds?: string[];
79
+ endTime?: string | null;
80
+ groupId?: string | null;
81
+ name: string;
82
+ place?: string | null;
83
+ room?: string | null;
84
+ sessionDate?: string | null;
85
+ startTime?: string | null;
86
+ title: string;
87
+ topic?: string;
88
+ }
89
+ export interface TopicAnnouncementPayload {
90
+ attachmentDrafts?: TopicAnnouncementAttachmentDraft[];
91
+ body?: string;
92
+ classLabel?: string | null;
93
+ contactIds: string[];
94
+ dayLabel?: string | null;
95
+ endTime?: string | null;
96
+ groupId?: string | null;
97
+ place?: string | null;
98
+ room?: string | null;
99
+ sessionDate?: string | null;
100
+ sourceType?: string;
101
+ startTime?: string | null;
102
+ status?: TopicAnnouncementStatus;
103
+ title: string;
104
+ topic: string;
105
+ }
106
+ export interface TopicAnnouncementEmailPreviewContent {
107
+ attachments: TopicAnnouncementAttachmentDraft[];
108
+ html: string;
109
+ subject: string;
110
+ text: string;
111
+ }
112
+ export interface TopicAnnouncementContactPayload {
113
+ archived?: boolean;
114
+ email: string;
115
+ metadata?: Record<string, unknown>;
116
+ name: string;
117
+ tags?: string[];
118
+ workspaceUserId?: string | null;
119
+ }
120
+ export interface TopicAnnouncementImportRow {
121
+ classLabel?: string;
122
+ contactEmail?: string;
123
+ contactName?: string;
124
+ dayLabel?: string;
125
+ endTime?: string;
126
+ place?: string;
127
+ room?: string;
128
+ sessionDate?: string;
129
+ startTime?: string;
130
+ title?: string;
131
+ topic?: string;
132
+ }
133
+ export interface TopicAnnouncementImportPayload {
134
+ rows: TopicAnnouncementImportRow[];
135
+ sourceName?: string;
136
+ sourceType?: string;
137
+ }
138
+ export interface TopicAnnouncementImportResult {
139
+ announcementIds: string[];
140
+ batchId?: string;
141
+ createdAnnouncements: number;
142
+ createdContacts: number;
143
+ rowErrors: {
144
+ message: string;
145
+ rowNumber: number;
146
+ }[];
147
+ }
148
+ export declare function normalizeTopicAnnouncementAttachmentFileName(fileName: string): string;
149
+ export declare function listTopicAnnouncementContacts(workspaceId: string, params?: InternalApiQuery, options?: InternalApiClientOptions): Promise<{
150
+ data: TopicAnnouncementContact[];
151
+ }>;
152
+ export declare function createTopicAnnouncementContact(workspaceId: string, payload: TopicAnnouncementContactPayload, options?: InternalApiClientOptions): Promise<{
153
+ data: TopicAnnouncementContact;
154
+ }>;
155
+ export declare function updateTopicAnnouncementContact(workspaceId: string, contactId: string, payload: Partial<TopicAnnouncementContactPayload>, options?: InternalApiClientOptions): Promise<{
156
+ data: TopicAnnouncementContact;
157
+ }>;
158
+ export declare function deleteTopicAnnouncementContact(workspaceId: string, contactId: string, options?: InternalApiClientOptions): Promise<void>;
159
+ export declare function requestTopicAnnouncementContactVerification(workspaceId: string, contactId: string, options?: InternalApiClientOptions): Promise<{
160
+ alreadyPending?: boolean;
161
+ expiresAt: string;
162
+ }>;
163
+ export declare function listTopicAnnouncements(workspaceId: string, params?: InternalApiQuery, options?: InternalApiClientOptions): Promise<{
164
+ count: number;
165
+ data: TopicAnnouncementRecord[];
166
+ page: number;
167
+ pageSize: number;
168
+ totalPages: number;
169
+ }>;
170
+ export declare function createTopicAnnouncement(workspaceId: string, payload: TopicAnnouncementPayload, options?: InternalApiClientOptions): Promise<{
171
+ data: TopicAnnouncementRecord;
172
+ }>;
173
+ export declare function updateTopicAnnouncement(workspaceId: string, announcementId: string, payload: Partial<TopicAnnouncementPayload>, options?: InternalApiClientOptions): Promise<{
174
+ data: TopicAnnouncementRecord;
175
+ }>;
176
+ export declare function deleteTopicAnnouncement(workspaceId: string, announcementId: string, options?: InternalApiClientOptions): Promise<void>;
177
+ export declare function uploadTopicAnnouncementAttachment(workspaceId: string, file: File, options?: InternalApiClientOptions): Promise<{
178
+ data: {
179
+ contentType: TopicAnnouncementAttachmentContentType;
180
+ fileName: string;
181
+ sizeBytes: number;
182
+ storagePath: string;
183
+ storageProvider: TopicAnnouncementAttachmentStorageProvider;
184
+ };
185
+ }>;
186
+ export declare function deleteTopicAnnouncementAttachment(workspaceId: string, announcementId: string, attachmentId: string, options?: InternalApiClientOptions): Promise<void>;
187
+ export declare function importTopicAnnouncements(workspaceId: string, payload: TopicAnnouncementImportPayload, options?: InternalApiClientOptions): Promise<TopicAnnouncementImportResult>;
188
+ export declare function sendTopicAnnouncement(workspaceId: string, announcementId: string, payload?: {
189
+ resend?: boolean;
190
+ }, options?: InternalApiClientOptions): Promise<{
191
+ auditId: string | null;
192
+ messageId: string | null;
193
+ }>;
194
+ export declare function previewTopicAnnouncementEmail(workspaceId: string, payload: TopicAnnouncementPayload, options?: InternalApiClientOptions): Promise<{
195
+ data: TopicAnnouncementEmailPreviewContent;
196
+ }>;
197
+ export declare function listTopicAnnouncementTemplates(workspaceId: string, options?: InternalApiClientOptions): Promise<{
198
+ data: TopicAnnouncementTemplateRecord[];
199
+ }>;
200
+ export declare function createTopicAnnouncementTemplate(workspaceId: string, payload: TopicAnnouncementTemplatePayload, options?: InternalApiClientOptions): Promise<{
201
+ data: TopicAnnouncementTemplateRecord;
202
+ }>;
203
+ export declare function updateTopicAnnouncementTemplate(workspaceId: string, templateId: string, payload: Partial<TopicAnnouncementTemplatePayload>, options?: InternalApiClientOptions): Promise<{
204
+ data: TopicAnnouncementTemplateRecord;
205
+ }>;
206
+ export declare function deleteTopicAnnouncementTemplate(workspaceId: string, templateId: string, options?: InternalApiClientOptions): Promise<void>;
207
+ export declare function scheduleTopicAnnouncement(workspaceId: string, announcementId: string, payload: {
208
+ scheduledSendAt: string;
209
+ }, options?: InternalApiClientOptions): Promise<{
210
+ data: {
211
+ id: string;
212
+ scheduledSendAt: string;
213
+ status: TopicAnnouncementStatus;
214
+ };
215
+ timezone: string;
216
+ }>;
217
+ export declare function cancelTopicAnnouncementSchedule(workspaceId: string, announcementId: string, options?: InternalApiClientOptions): Promise<{
218
+ data: {
219
+ id: string;
220
+ status: TopicAnnouncementStatus;
221
+ };
222
+ }>;
223
+ export declare function sendTopicAnnouncementsBulk(workspaceId: string, payload: {
224
+ announcementIds: string[];
225
+ resend?: boolean;
226
+ }, options?: InternalApiClientOptions): Promise<{
227
+ results: Array<{
228
+ announcementId: string;
229
+ auditId?: string | null;
230
+ error?: string;
231
+ messageId?: string | null;
232
+ status?: number;
233
+ }>;
234
+ }>;
235
+ //# sourceMappingURL=topic-announcements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topic-announcements.d.ts","sourceRoot":"","sources":["../src/topic-announcements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeTopicAnnouncementAttachmentFileName = normalizeTopicAnnouncementAttachmentFileName;
4
+ exports.listTopicAnnouncementContacts = listTopicAnnouncementContacts;
5
+ exports.createTopicAnnouncementContact = createTopicAnnouncementContact;
6
+ exports.updateTopicAnnouncementContact = updateTopicAnnouncementContact;
7
+ exports.deleteTopicAnnouncementContact = deleteTopicAnnouncementContact;
8
+ exports.requestTopicAnnouncementContactVerification = requestTopicAnnouncementContactVerification;
9
+ exports.listTopicAnnouncements = listTopicAnnouncements;
10
+ exports.createTopicAnnouncement = createTopicAnnouncement;
11
+ exports.updateTopicAnnouncement = updateTopicAnnouncement;
12
+ exports.deleteTopicAnnouncement = deleteTopicAnnouncement;
13
+ exports.uploadTopicAnnouncementAttachment = uploadTopicAnnouncementAttachment;
14
+ exports.deleteTopicAnnouncementAttachment = deleteTopicAnnouncementAttachment;
15
+ exports.importTopicAnnouncements = importTopicAnnouncements;
16
+ exports.sendTopicAnnouncement = sendTopicAnnouncement;
17
+ exports.previewTopicAnnouncementEmail = previewTopicAnnouncementEmail;
18
+ exports.listTopicAnnouncementTemplates = listTopicAnnouncementTemplates;
19
+ exports.createTopicAnnouncementTemplate = createTopicAnnouncementTemplate;
20
+ exports.updateTopicAnnouncementTemplate = updateTopicAnnouncementTemplate;
21
+ exports.deleteTopicAnnouncementTemplate = deleteTopicAnnouncementTemplate;
22
+ exports.scheduleTopicAnnouncement = scheduleTopicAnnouncement;
23
+ exports.cancelTopicAnnouncementSchedule = cancelTopicAnnouncementSchedule;
24
+ exports.sendTopicAnnouncementsBulk = sendTopicAnnouncementsBulk;
25
+ const client_1 = require("./client");
26
+ const storage_1 = require("./storage");
27
+ function basePath(workspaceId) {
28
+ return `/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/topic-announcements`;
29
+ }
30
+ const TOPIC_ANNOUNCEMENT_ATTACHMENT_UPLOAD_PATH = 'topic-announcements/attachments';
31
+ const GENERATED_UUID_FILENAME_PREFIX = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}-(?=.)/iu;
32
+ function normalizeTopicAnnouncementAttachmentFileName(fileName) {
33
+ const baseName = fileName.split(/[\\/]/u).pop()?.trim() ?? '';
34
+ const withoutGeneratedPrefix = baseName.replace(GENERATED_UUID_FILENAME_PREFIX, '');
35
+ return withoutGeneratedPrefix.trim() || baseName || 'attachment';
36
+ }
37
+ async function listTopicAnnouncementContacts(workspaceId, params = {}, options) {
38
+ const client = (0, client_1.getInternalApiClient)(options);
39
+ return client.json(`${basePath(workspaceId)}/contacts`, { cache: 'no-store', query: params });
40
+ }
41
+ async function createTopicAnnouncementContact(workspaceId, payload, options) {
42
+ const client = (0, client_1.getInternalApiClient)(options);
43
+ return client.json(`${basePath(workspaceId)}/contacts`, {
44
+ body: JSON.stringify(payload),
45
+ headers: { 'Content-Type': 'application/json' },
46
+ method: 'POST',
47
+ });
48
+ }
49
+ async function updateTopicAnnouncementContact(workspaceId, contactId, payload, options) {
50
+ const client = (0, client_1.getInternalApiClient)(options);
51
+ return client.json(`${basePath(workspaceId)}/contacts/${(0, client_1.encodePathSegment)(contactId)}`, {
52
+ body: JSON.stringify(payload),
53
+ headers: { 'Content-Type': 'application/json' },
54
+ method: 'PATCH',
55
+ });
56
+ }
57
+ async function deleteTopicAnnouncementContact(workspaceId, contactId, options) {
58
+ const client = (0, client_1.getInternalApiClient)(options);
59
+ return client.json(`${basePath(workspaceId)}/contacts/${(0, client_1.encodePathSegment)(contactId)}`, { method: 'DELETE' });
60
+ }
61
+ async function requestTopicAnnouncementContactVerification(workspaceId, contactId, options) {
62
+ const client = (0, client_1.getInternalApiClient)(options);
63
+ return client.json(`${basePath(workspaceId)}/contacts/${(0, client_1.encodePathSegment)(contactId)}/verify`, { method: 'POST' });
64
+ }
65
+ async function listTopicAnnouncements(workspaceId, params = {}, options) {
66
+ const client = (0, client_1.getInternalApiClient)(options);
67
+ return client.json(basePath(workspaceId), { cache: 'no-store', query: params });
68
+ }
69
+ async function createTopicAnnouncement(workspaceId, payload, options) {
70
+ const client = (0, client_1.getInternalApiClient)(options);
71
+ return client.json(basePath(workspaceId), {
72
+ body: JSON.stringify(payload),
73
+ headers: { 'Content-Type': 'application/json' },
74
+ method: 'POST',
75
+ });
76
+ }
77
+ async function updateTopicAnnouncement(workspaceId, announcementId, payload, options) {
78
+ const client = (0, client_1.getInternalApiClient)(options);
79
+ return client.json(`${basePath(workspaceId)}/announcements/${(0, client_1.encodePathSegment)(announcementId)}`, {
80
+ body: JSON.stringify(payload),
81
+ headers: { 'Content-Type': 'application/json' },
82
+ method: 'PATCH',
83
+ });
84
+ }
85
+ async function deleteTopicAnnouncement(workspaceId, announcementId, options) {
86
+ const client = (0, client_1.getInternalApiClient)(options);
87
+ return client.json(`${basePath(workspaceId)}/announcements/${(0, client_1.encodePathSegment)(announcementId)}`, { method: 'DELETE' });
88
+ }
89
+ async function uploadTopicAnnouncementAttachment(workspaceId, file, options) {
90
+ const fetchImpl = options?.fetch ?? globalThis.fetch;
91
+ const uploadUrlResult = await (0, storage_1.createWorkspaceStorageUploadUrl)(workspaceId, file.name, {
92
+ contentType: file.type || undefined,
93
+ path: TOPIC_ANNOUNCEMENT_ATTACHMENT_UPLOAD_PATH,
94
+ size: file.size,
95
+ upsert: false,
96
+ }, options);
97
+ await (0, storage_1.uploadFileWithSignedUrl)(file, uploadUrlResult, fetchImpl);
98
+ const contentType = (uploadUrlResult.contentType ||
99
+ file.type);
100
+ const storageProvider = uploadUrlResult.provider ?? 'supabase';
101
+ return {
102
+ data: {
103
+ contentType,
104
+ fileName: normalizeTopicAnnouncementAttachmentFileName(uploadUrlResult.filename ?? file.name),
105
+ sizeBytes: file.size,
106
+ storagePath: uploadUrlResult.path,
107
+ storageProvider,
108
+ },
109
+ };
110
+ }
111
+ async function deleteTopicAnnouncementAttachment(workspaceId, announcementId, attachmentId, options) {
112
+ const client = (0, client_1.getInternalApiClient)(options);
113
+ return client.json(`${basePath(workspaceId)}/announcements/${(0, client_1.encodePathSegment)(announcementId)}/attachments/${(0, client_1.encodePathSegment)(attachmentId)}`, { method: 'DELETE' });
114
+ }
115
+ async function importTopicAnnouncements(workspaceId, payload, options) {
116
+ const client = (0, client_1.getInternalApiClient)(options);
117
+ return client.json(`${basePath(workspaceId)}/import`, {
118
+ body: JSON.stringify(payload),
119
+ headers: { 'Content-Type': 'application/json' },
120
+ method: 'POST',
121
+ });
122
+ }
123
+ async function sendTopicAnnouncement(workspaceId, announcementId, payload = {}, options) {
124
+ const client = (0, client_1.getInternalApiClient)(options);
125
+ return client.json(`${basePath(workspaceId)}/announcements/${(0, client_1.encodePathSegment)(announcementId)}/send`, {
126
+ body: JSON.stringify(payload),
127
+ headers: { 'Content-Type': 'application/json' },
128
+ method: 'POST',
129
+ });
130
+ }
131
+ async function previewTopicAnnouncementEmail(workspaceId, payload, options) {
132
+ const client = (0, client_1.getInternalApiClient)(options);
133
+ return client.json(`${basePath(workspaceId)}/preview`, {
134
+ body: JSON.stringify(payload),
135
+ headers: { 'Content-Type': 'application/json' },
136
+ method: 'POST',
137
+ });
138
+ }
139
+ async function listTopicAnnouncementTemplates(workspaceId, options) {
140
+ const client = (0, client_1.getInternalApiClient)(options);
141
+ return client.json(`${basePath(workspaceId)}/templates`, { cache: 'no-store' });
142
+ }
143
+ async function createTopicAnnouncementTemplate(workspaceId, payload, options) {
144
+ const client = (0, client_1.getInternalApiClient)(options);
145
+ return client.json(`${basePath(workspaceId)}/templates`, {
146
+ body: JSON.stringify(payload),
147
+ headers: { 'Content-Type': 'application/json' },
148
+ method: 'POST',
149
+ });
150
+ }
151
+ async function updateTopicAnnouncementTemplate(workspaceId, templateId, payload, options) {
152
+ const client = (0, client_1.getInternalApiClient)(options);
153
+ return client.json(`${basePath(workspaceId)}/templates/${(0, client_1.encodePathSegment)(templateId)}`, {
154
+ body: JSON.stringify(payload),
155
+ headers: { 'Content-Type': 'application/json' },
156
+ method: 'PATCH',
157
+ });
158
+ }
159
+ async function deleteTopicAnnouncementTemplate(workspaceId, templateId, options) {
160
+ const client = (0, client_1.getInternalApiClient)(options);
161
+ return client.json(`${basePath(workspaceId)}/templates/${(0, client_1.encodePathSegment)(templateId)}`, { method: 'DELETE' });
162
+ }
163
+ async function scheduleTopicAnnouncement(workspaceId, announcementId, payload, options) {
164
+ const client = (0, client_1.getInternalApiClient)(options);
165
+ return client.json(`${basePath(workspaceId)}/announcements/${(0, client_1.encodePathSegment)(announcementId)}/schedule`, {
166
+ body: JSON.stringify(payload),
167
+ headers: { 'Content-Type': 'application/json' },
168
+ method: 'POST',
169
+ });
170
+ }
171
+ async function cancelTopicAnnouncementSchedule(workspaceId, announcementId, options) {
172
+ const client = (0, client_1.getInternalApiClient)(options);
173
+ return client.json(`${basePath(workspaceId)}/announcements/${(0, client_1.encodePathSegment)(announcementId)}/cancel-schedule`, { method: 'POST' });
174
+ }
175
+ async function sendTopicAnnouncementsBulk(workspaceId, payload, options) {
176
+ const client = (0, client_1.getInternalApiClient)(options);
177
+ return client.json(`${basePath(workspaceId)}/send-bulk`, {
178
+ body: JSON.stringify(payload),
179
+ headers: { 'Content-Type': 'application/json' },
180
+ method: 'POST',
181
+ });
182
+ }
@@ -0,0 +1,223 @@
1
+ import { type InternalApiClientOptions } from './client';
2
+ export type TulearnRole = 'parent' | 'student';
3
+ export interface TulearnWorkspaceSummary {
4
+ id: string;
5
+ name: string | null;
6
+ avatar_url: string | null;
7
+ logo_url: string | null;
8
+ roles: TulearnRole[];
9
+ }
10
+ export interface TulearnStudentSummary {
11
+ id: string;
12
+ platform_user_id: string;
13
+ workspace_user_id: string;
14
+ workspace_id: string;
15
+ name: string | null;
16
+ email: string | null;
17
+ avatar_url: string | null;
18
+ }
19
+ export interface TulearnBootstrapResponse {
20
+ profile: {
21
+ id: string;
22
+ email: string | null;
23
+ display_name: string | null;
24
+ avatar_url: string | null;
25
+ };
26
+ workspaces: TulearnWorkspaceSummary[];
27
+ linkedStudents: TulearnStudentSummary[];
28
+ }
29
+ export interface TulearnLearnerState {
30
+ hearts: number;
31
+ max_hearts: number;
32
+ xp_total: number;
33
+ current_streak: number;
34
+ longest_streak: number;
35
+ streak_freezes: number;
36
+ last_activity_date: string | null;
37
+ }
38
+ export interface TulearnCourseSummary {
39
+ id: string;
40
+ name: string;
41
+ description: string | null;
42
+ completedModules: number;
43
+ totalModules: number;
44
+ progress: number;
45
+ }
46
+ export interface TulearnAssignmentSummary {
47
+ id: string;
48
+ title: string | null;
49
+ content: string | null;
50
+ created_at: string;
51
+ course: {
52
+ id: string;
53
+ name: string | null;
54
+ };
55
+ is_completed: boolean;
56
+ approval_status?: string | null;
57
+ }
58
+ export interface TulearnMarkSummary {
59
+ id: string;
60
+ value: number | null;
61
+ created_at: string | null;
62
+ metric: {
63
+ id: string;
64
+ name: string | null;
65
+ unit: string | null;
66
+ };
67
+ course: {
68
+ id: string;
69
+ name: string;
70
+ } | null;
71
+ }
72
+ export interface TulearnReportSummary {
73
+ id: string;
74
+ title: string;
75
+ content: string;
76
+ feedback: string | null;
77
+ score: number | null;
78
+ created_at: string;
79
+ course: {
80
+ id: string;
81
+ name: string;
82
+ } | null;
83
+ }
84
+ export interface TulearnHomeResponse {
85
+ role: TulearnRole;
86
+ readOnly: boolean;
87
+ student: {
88
+ id: string;
89
+ name: string | null;
90
+ };
91
+ state: TulearnLearnerState;
92
+ courses: TulearnCourseSummary[];
93
+ assignments: TulearnAssignmentSummary[];
94
+ marks: TulearnMarkSummary[];
95
+ recommendedPractice: TulearnPracticeItem | null;
96
+ }
97
+ export interface TulearnCourseModuleSummary {
98
+ id: string;
99
+ name: string;
100
+ sort_key: number;
101
+ is_published: boolean;
102
+ completed: boolean;
103
+ locked: boolean;
104
+ counts: {
105
+ flashcards: number;
106
+ quizzes: number;
107
+ quizSets: number;
108
+ };
109
+ }
110
+ export interface TulearnCourseDetail extends TulearnCourseSummary {
111
+ modules: TulearnCourseModuleSummary[];
112
+ }
113
+ export interface TulearnCourseModuleDetail extends TulearnCourseModuleSummary {
114
+ content: unknown;
115
+ extra_content: unknown;
116
+ youtube_links: string[] | null;
117
+ flashcards: Array<{
118
+ id: string;
119
+ front: string;
120
+ back: string;
121
+ }>;
122
+ quizzes: Array<{
123
+ id: string;
124
+ question: string;
125
+ score: number;
126
+ }>;
127
+ quizSets: Array<{
128
+ id: string;
129
+ name: string;
130
+ }>;
131
+ }
132
+ export interface TulearnPracticeItem {
133
+ type: 'flashcard' | 'module' | 'quiz' | 'quiz_set';
134
+ id: string;
135
+ title: string;
136
+ courseId: string;
137
+ courseName: string;
138
+ prompt: string | null;
139
+ }
140
+ export interface SubmitTulearnPracticePayload {
141
+ type: TulearnPracticeItem['type'] | 'assignment';
142
+ itemId: string;
143
+ correct?: boolean;
144
+ }
145
+ export interface TulearnPracticeResult {
146
+ correct: boolean;
147
+ hearts: number;
148
+ xpAwarded: number;
149
+ state: TulearnLearnerState;
150
+ }
151
+ export interface CompleteTulearnAssignmentPayload {
152
+ postId: string;
153
+ completed: boolean;
154
+ }
155
+ export interface UpdateTulearnProfilePayload {
156
+ displayName: string;
157
+ email?: string;
158
+ }
159
+ export declare function getTulearnBootstrap(options?: InternalApiClientOptions): Promise<TulearnBootstrapResponse>;
160
+ export declare function getTulearnHome(workspaceId: string, studentId?: string | null, options?: InternalApiClientOptions): Promise<TulearnHomeResponse>;
161
+ export declare function listTulearnCourses(workspaceId: string, studentId?: string | null, options?: InternalApiClientOptions): Promise<{
162
+ courses: TulearnCourseSummary[];
163
+ }>;
164
+ export declare function getTulearnCourse(workspaceId: string, courseId: string, studentId?: string | null, options?: InternalApiClientOptions): Promise<TulearnCourseDetail>;
165
+ export declare function getTulearnCourseModule(workspaceId: string, courseId: string, moduleId: string, studentId?: string | null, options?: InternalApiClientOptions): Promise<TulearnCourseModuleDetail>;
166
+ export declare function getTulearnPractice(workspaceId: string, studentId?: string | null, options?: InternalApiClientOptions): Promise<{
167
+ item: TulearnPracticeItem | null;
168
+ }>;
169
+ export declare function submitTulearnPractice(workspaceId: string, payload: SubmitTulearnPracticePayload, studentId?: string | null, options?: InternalApiClientOptions): Promise<TulearnPracticeResult>;
170
+ export declare function listTulearnAssignments(workspaceId: string, studentId?: string | null, options?: InternalApiClientOptions): Promise<{
171
+ assignments: TulearnAssignmentSummary[];
172
+ }>;
173
+ export declare function completeTulearnAssignment(workspaceId: string, payload: CompleteTulearnAssignmentPayload, studentId?: string | null, options?: InternalApiClientOptions): Promise<{
174
+ assignment: TulearnAssignmentSummary;
175
+ xpAwarded: number;
176
+ }>;
177
+ export declare function listTulearnReports(workspaceId: string, studentId?: string | null, options?: InternalApiClientOptions): Promise<{
178
+ reports: TulearnReportSummary[];
179
+ }>;
180
+ export declare function listTulearnMarks(workspaceId: string, studentId?: string | null, options?: InternalApiClientOptions): Promise<{
181
+ marks: TulearnMarkSummary[];
182
+ }>;
183
+ export declare function updateTulearnProfile(payload: UpdateTulearnProfilePayload, options?: InternalApiClientOptions): Promise<{
184
+ message: string;
185
+ }>;
186
+ export interface SharedCourseContentResponse {
187
+ group: {
188
+ name: string | null;
189
+ description: string | null;
190
+ };
191
+ modules: Array<{
192
+ id: string;
193
+ name: string | null;
194
+ content: unknown;
195
+ extra_content: unknown;
196
+ youtube_links: string[] | null;
197
+ group_id: string;
198
+ module_group_id: string;
199
+ created_at: string;
200
+ is_public: boolean;
201
+ is_published: boolean;
202
+ sort_key: number | null;
203
+ flashcards: number;
204
+ quizzes: number;
205
+ quizSets: number;
206
+ }>;
207
+ }
208
+ export declare function getSharedCourseContent(courseId: string, options?: InternalApiClientOptions): Promise<SharedCourseContentResponse>;
209
+ export interface CourseListItem {
210
+ id: string;
211
+ name: string | null;
212
+ description: string | null;
213
+ totalModules: number;
214
+ completedModules: number;
215
+ progress: number;
216
+ }
217
+ export interface CourseListResponse {
218
+ courses: CourseListItem[];
219
+ }
220
+ export declare function listSharedCourses(wsId: string, studentId?: string | null, options?: InternalApiClientOptions): Promise<{
221
+ courses: TulearnCourseSummary[];
222
+ }>;
223
+ //# sourceMappingURL=tulearn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tulearn.d.ts","sourceRoot":"","sources":["../src/tulearn.ts"],"names":[],"mappings":"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"}