@okrlinkhub/agent-factory 2.0.0 → 2.0.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,wBAmcG"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,wBAifG"}
@@ -51,6 +51,16 @@ export default defineSchema({
51
51
  externalMessageId: v.optional(v.string()),
52
52
  rawUpdateJson: v.optional(v.string()),
53
53
  metadata: v.optional(v.record(v.string(), v.string())),
54
+ attachments: v.optional(v.array(v.object({
55
+ kind: v.union(v.literal("photo"), v.literal("video"), v.literal("audio"), v.literal("voice"), v.literal("document")),
56
+ status: v.union(v.literal("ready"), v.literal("expired")),
57
+ storageId: v.id("_storage"),
58
+ telegramFileId: v.string(),
59
+ fileName: v.optional(v.string()),
60
+ mimeType: v.optional(v.string()),
61
+ sizeBytes: v.optional(v.number()),
62
+ expiresAt: v.number(),
63
+ }))),
54
64
  }),
55
65
  status: v.union(v.literal("queued"), v.literal("processing"), v.literal("done"), v.literal("failed"), v.literal("dead_letter")),
56
66
  priority: v.number(),
@@ -116,9 +126,28 @@ export default defineSchema({
116
126
  })),
117
127
  messageConfig: v.optional(v.object({
118
128
  systemPrompt: v.optional(v.string()),
129
+ telegramAttachmentRetentionMs: v.optional(v.number()),
119
130
  })),
120
131
  updatedAt: v.number(),
121
132
  }).index("by_key", ["key"]),
133
+ messageAttachments: defineTable({
134
+ messageId: v.id("messageQueue"),
135
+ conversationId: v.string(),
136
+ agentKey: v.string(),
137
+ provider: v.string(),
138
+ kind: v.union(v.literal("photo"), v.literal("video"), v.literal("audio"), v.literal("voice"), v.literal("document")),
139
+ status: v.union(v.literal("ready"), v.literal("expired")),
140
+ storageId: v.id("_storage"),
141
+ telegramFileId: v.string(),
142
+ fileName: v.optional(v.string()),
143
+ mimeType: v.optional(v.string()),
144
+ sizeBytes: v.optional(v.number()),
145
+ createdAt: v.number(),
146
+ expiresAt: v.number(),
147
+ })
148
+ .index("by_messageId", ["messageId"])
149
+ .index("by_status_and_expiresAt", ["status", "expiresAt"])
150
+ .index("by_conversationId_and_createdAt", ["conversationId", "createdAt"]),
122
151
  dataSnapshots: defineTable({
123
152
  workspaceId: v.string(),
124
153
  agentKey: v.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "bugs": {
10
10
  "url": "https://github.com/okrlinkhub/agent-factory/issues"
11
11
  },
12
- "version": "2.0.0",
12
+ "version": "2.0.1",
13
13
  "license": "Apache-2.0",
14
14
  "keywords": [
15
15
  "convex",
@@ -4,7 +4,7 @@ import {
4
4
  mutationGeneric,
5
5
  queryGeneric,
6
6
  } from "convex/server";
7
- import type { Auth, HttpRouter } from "convex/server";
7
+ import type { Auth, GenericActionCtx, GenericDataModel, HttpRouter } from "convex/server";
8
8
  import { v } from "convex/values";
9
9
  import type { ComponentApi } from "../component/_generated/component.js";
10
10
  import {
@@ -13,6 +13,25 @@ import {
13
13
  type ProviderConfig,
14
14
  } from "../component/config.js";
15
15
 
16
+ const telegramAttachmentKindValidator = v.union(
17
+ v.literal("photo"),
18
+ v.literal("video"),
19
+ v.literal("audio"),
20
+ v.literal("voice"),
21
+ v.literal("document"),
22
+ );
23
+
24
+ const telegramAttachmentValidator = v.object({
25
+ kind: telegramAttachmentKindValidator,
26
+ status: v.union(v.literal("ready"), v.literal("expired")),
27
+ storageId: v.string(),
28
+ telegramFileId: v.string(),
29
+ fileName: v.optional(v.string()),
30
+ mimeType: v.optional(v.string()),
31
+ sizeBytes: v.optional(v.number()),
32
+ expiresAt: v.number(),
33
+ });
34
+
16
35
  const pushPeriodicityValidator = v.union(
17
36
  v.literal("manual"),
18
37
  v.literal("daily"),
@@ -59,6 +78,7 @@ const pushScheduleValidator = v.union(
59
78
 
60
79
  const messageRuntimeConfigValidator = v.object({
61
80
  systemPrompt: v.optional(v.string()),
81
+ telegramAttachmentRetentionMs: v.optional(v.number()),
62
82
  });
63
83
  export {
64
84
  bridgeFunctionKeyFromToolName,
@@ -139,6 +159,7 @@ export function exposeApi(
139
159
  externalMessageId: v.optional(v.string()),
140
160
  rawUpdateJson: v.optional(v.string()),
141
161
  metadata: v.optional(v.record(v.string(), v.string())),
162
+ attachments: v.optional(v.array(telegramAttachmentValidator)),
142
163
  priority: v.optional(v.number()),
143
164
  providerConfig: v.optional(providerConfigValidator),
144
165
  },
@@ -158,6 +179,7 @@ export function exposeApi(
158
179
  externalMessageId: args.externalMessageId,
159
180
  rawUpdateJson: args.rawUpdateJson,
160
181
  metadata: args.metadata,
182
+ attachments: args.attachments,
161
183
  },
162
184
  priority: args.priority,
163
185
  providerConfig: args.providerConfig ?? options.providerConfig,
@@ -1139,10 +1161,28 @@ export function registerRoutes(
1139
1161
  text?: string;
1140
1162
  caption?: string;
1141
1163
  message_id?: number;
1142
- photo?: Array<{ file_id?: string }>;
1143
- video?: { file_id?: string; duration?: number };
1144
- audio?: { file_id?: string; duration?: number };
1145
- voice?: { file_id?: string; duration?: number };
1164
+ photo?: Array<{ file_id?: string; file_size?: number }>;
1165
+ video?: {
1166
+ file_id?: string;
1167
+ duration?: number;
1168
+ file_name?: string;
1169
+ mime_type?: string;
1170
+ file_size?: number;
1171
+ };
1172
+ audio?: {
1173
+ file_id?: string;
1174
+ duration?: number;
1175
+ file_name?: string;
1176
+ mime_type?: string;
1177
+ file_size?: number;
1178
+ };
1179
+ voice?: { file_id?: string; duration?: number; mime_type?: string; file_size?: number };
1180
+ document?: {
1181
+ file_id?: string;
1182
+ file_name?: string;
1183
+ mime_type?: string;
1184
+ file_size?: number;
1185
+ };
1146
1186
  chat?: { id?: number | string };
1147
1187
  from?: { id?: number | string };
1148
1188
  };
@@ -1160,9 +1200,7 @@ export function registerRoutes(
1160
1200
  const telegramChatId = String(message.chat.id);
1161
1201
  const text = typeof message.text === "string" ? message.text.trim() : "";
1162
1202
  const caption = typeof message.caption === "string" ? message.caption.trim() : "";
1163
- const hasPhoto = Array.isArray(message.photo) && message.photo.length > 0;
1164
- const hasVideo = !!message.video;
1165
- const hasAudio = !!message.audio || !!message.voice;
1203
+ const attachmentCandidates = collectTelegramAttachmentCandidates(message);
1166
1204
 
1167
1205
  const startCommandCode = text ? parseStartCommandCode(text) : null;
1168
1206
  const isStartCommand = text.trimStart().startsWith("/start");
@@ -1241,24 +1279,8 @@ export function registerRoutes(
1241
1279
  },
1242
1280
  );
1243
1281
  }
1244
- const messageText =
1245
- text ||
1246
- caption ||
1247
- (hasPhoto && hasVideo && hasAudio
1248
- ? "[telegram media] photo + video + audio message"
1249
- : hasPhoto && hasVideo
1250
- ? "[telegram media] photo + video message"
1251
- : hasPhoto && hasAudio
1252
- ? "[telegram media] photo + audio message"
1253
- : hasVideo && hasAudio
1254
- ? "[telegram media] video + audio message"
1255
- : hasPhoto
1256
- ? "[telegram media] photo message"
1257
- : hasVideo
1258
- ? "[telegram media] video message"
1259
- : hasAudio
1260
- ? "[telegram media] audio message"
1261
- : "");
1282
+
1283
+ const messageText = buildTelegramMessageText(text, caption, attachmentCandidates);
1262
1284
  if (!messageText) {
1263
1285
  return new Response(JSON.stringify({ ok: true, ignored: true }), {
1264
1286
  status: 200,
@@ -1269,25 +1291,46 @@ export function registerRoutes(
1269
1291
  telegramChatId,
1270
1292
  telegramUserId,
1271
1293
  };
1272
- if (hasPhoto) {
1273
- metadata.telegramMediaType = "photo";
1274
- const largestPhoto = message.photo?.[message.photo.length - 1];
1275
- if (largestPhoto?.file_id) {
1276
- metadata.telegramPhotoFileId = largestPhoto.file_id;
1294
+ if (attachmentCandidates.length > 0) {
1295
+ metadata.telegramMediaType = Array.from(
1296
+ new Set(attachmentCandidates.map((attachment) => attachment.kind)),
1297
+ ).join("+");
1298
+ for (const attachment of attachmentCandidates) {
1299
+ const metadataKey = `telegram${attachment.kind[0].toUpperCase()}${attachment.kind.slice(1)}FileId`;
1300
+ metadata[metadataKey] = attachment.telegramFileId;
1277
1301
  }
1278
1302
  }
1279
- if (message.audio?.file_id) {
1280
- metadata.telegramMediaType = hasPhoto ? "photo+audio" : hasVideo ? "video+audio" : "audio";
1281
- metadata.telegramAudioFileId = message.audio.file_id;
1282
- }
1283
- if (message.voice?.file_id) {
1284
- metadata.telegramMediaType = hasPhoto ? "photo+voice" : hasVideo ? "video+voice" : "voice";
1285
- metadata.telegramVoiceFileId = message.voice.file_id;
1286
- }
1287
- if (message.video?.file_id) {
1288
- metadata.telegramMediaType = hasPhoto ? "photo+video" : "video";
1289
- metadata.telegramVideoFileId = message.video.file_id;
1303
+ const ingressConfig = await ctx.runQuery(
1304
+ (component.queue as any).getTelegramIngressRuntimeConfig,
1305
+ { agentKey },
1306
+ );
1307
+ if (attachmentCandidates.length > 0 && !ingressConfig.botToken) {
1308
+ return new Response(
1309
+ JSON.stringify({
1310
+ ok: false,
1311
+ error: `missing active telegram bot token for agent '${agentKey}'`,
1312
+ }),
1313
+ {
1314
+ status: 503,
1315
+ headers: { "Content-Type": "application/json" },
1316
+ },
1317
+ );
1290
1318
  }
1319
+ const expiresAt = Date.now() + ingressConfig.attachmentRetentionMs;
1320
+ const attachments =
1321
+ attachmentCandidates.length > 0 && ingressConfig.botToken
1322
+ ? await Promise.all(
1323
+ attachmentCandidates.map((attachment) =>
1324
+ uploadTelegramAttachmentToConvex(
1325
+ ctx,
1326
+ component,
1327
+ ingressConfig.botToken as string,
1328
+ attachment,
1329
+ expiresAt,
1330
+ ),
1331
+ ),
1332
+ )
1333
+ : undefined;
1291
1334
  await ctx.runMutation(component.lib.enqueue, {
1292
1335
  conversationId: mapped.conversationId ?? `telegram:${telegramChatId}`,
1293
1336
  agentKey,
@@ -1298,6 +1341,7 @@ export function registerRoutes(
1298
1341
  externalMessageId: String(message.message_id ?? update.update_id ?? ""),
1299
1342
  rawUpdateJson: JSON.stringify(update),
1300
1343
  metadata,
1344
+ attachments,
1301
1345
  },
1302
1346
  providerConfig,
1303
1347
  });
@@ -1313,3 +1357,219 @@ function parseStartCommandCode(messageText: string): string | null {
1313
1357
  const match = messageText.match(/^\/start(?:@\w+)?\s+([A-Za-z0-9_-]{4,128})\s*$/);
1314
1358
  return match ? match[1] : null;
1315
1359
  }
1360
+
1361
+ type TelegramWebhookMessage = {
1362
+ text?: string;
1363
+ caption?: string;
1364
+ message_id?: number;
1365
+ photo?: Array<{ file_id?: string; file_size?: number }>;
1366
+ video?: {
1367
+ file_id?: string;
1368
+ file_name?: string;
1369
+ mime_type?: string;
1370
+ file_size?: number;
1371
+ };
1372
+ audio?: {
1373
+ file_id?: string;
1374
+ file_name?: string;
1375
+ mime_type?: string;
1376
+ file_size?: number;
1377
+ };
1378
+ voice?: {
1379
+ file_id?: string;
1380
+ mime_type?: string;
1381
+ file_size?: number;
1382
+ };
1383
+ document?: {
1384
+ file_id?: string;
1385
+ file_name?: string;
1386
+ mime_type?: string;
1387
+ file_size?: number;
1388
+ };
1389
+ };
1390
+
1391
+ type TelegramAttachmentCandidate = {
1392
+ kind: "photo" | "video" | "audio" | "voice" | "document";
1393
+ telegramFileId: string;
1394
+ fileName?: string;
1395
+ mimeType?: string;
1396
+ sizeBytes?: number;
1397
+ };
1398
+
1399
+ function collectTelegramAttachmentCandidates(
1400
+ message: TelegramWebhookMessage,
1401
+ ): Array<TelegramAttachmentCandidate> {
1402
+ const attachments: Array<TelegramAttachmentCandidate> = [];
1403
+ const largestPhoto = Array.isArray(message.photo) ? message.photo[message.photo.length - 1] : null;
1404
+ if (largestPhoto?.file_id) {
1405
+ attachments.push({
1406
+ kind: "photo",
1407
+ telegramFileId: largestPhoto.file_id,
1408
+ sizeBytes: largestPhoto.file_size,
1409
+ mimeType: "image/jpeg",
1410
+ });
1411
+ }
1412
+ if (message.video?.file_id) {
1413
+ attachments.push({
1414
+ kind: "video",
1415
+ telegramFileId: message.video.file_id,
1416
+ fileName: message.video.file_name,
1417
+ mimeType: message.video.mime_type,
1418
+ sizeBytes: message.video.file_size,
1419
+ });
1420
+ }
1421
+ if (message.audio?.file_id) {
1422
+ attachments.push({
1423
+ kind: "audio",
1424
+ telegramFileId: message.audio.file_id,
1425
+ fileName: message.audio.file_name,
1426
+ mimeType: message.audio.mime_type,
1427
+ sizeBytes: message.audio.file_size,
1428
+ });
1429
+ }
1430
+ if (message.voice?.file_id) {
1431
+ attachments.push({
1432
+ kind: "voice",
1433
+ telegramFileId: message.voice.file_id,
1434
+ mimeType: message.voice.mime_type,
1435
+ sizeBytes: message.voice.file_size,
1436
+ });
1437
+ }
1438
+ if (message.document?.file_id) {
1439
+ attachments.push({
1440
+ kind: "document",
1441
+ telegramFileId: message.document.file_id,
1442
+ fileName: message.document.file_name,
1443
+ mimeType: message.document.mime_type,
1444
+ sizeBytes: message.document.file_size,
1445
+ });
1446
+ }
1447
+ return attachments;
1448
+ }
1449
+
1450
+ function buildTelegramMessageText(
1451
+ text: string,
1452
+ caption: string,
1453
+ attachments: Array<TelegramAttachmentCandidate>,
1454
+ ): string {
1455
+ if (text) {
1456
+ return text;
1457
+ }
1458
+ if (caption) {
1459
+ return caption;
1460
+ }
1461
+ if (attachments.length === 0) {
1462
+ return "";
1463
+ }
1464
+ const kinds = Array.from(new Set(attachments.map((attachment) => attachment.kind)));
1465
+ const label = kinds.join(" + ");
1466
+ return `[telegram media] ${label} message`;
1467
+ }
1468
+
1469
+ async function uploadTelegramAttachmentToConvex(
1470
+ ctx: Pick<GenericActionCtx<GenericDataModel>, "runMutation">,
1471
+ component: ComponentApi,
1472
+ telegramBotToken: string,
1473
+ attachment: TelegramAttachmentCandidate,
1474
+ expiresAt: number,
1475
+ ) {
1476
+ const filePath = await fetchTelegramFilePath(telegramBotToken, attachment.telegramFileId);
1477
+ const downloaded = await downloadTelegramFile(telegramBotToken, filePath);
1478
+ const uploadTarget = (await ctx.runMutation((component.queue as any).generateMediaUploadUrl, {})) as {
1479
+ uploadUrl: string;
1480
+ };
1481
+ const uploadResponse = await fetch(uploadTarget.uploadUrl, {
1482
+ method: "POST",
1483
+ headers:
1484
+ downloaded.mimeType.length > 0
1485
+ ? {
1486
+ "Content-Type": downloaded.mimeType,
1487
+ }
1488
+ : undefined,
1489
+ body: downloaded.blob,
1490
+ });
1491
+ const uploadPayload = (await uploadResponse.json().catch(() => ({}))) as {
1492
+ storageId?: string;
1493
+ };
1494
+ if (!uploadResponse.ok || typeof uploadPayload.storageId !== "string") {
1495
+ throw new Error(`Convex storage upload failed for Telegram ${attachment.kind} attachment`);
1496
+ }
1497
+ return {
1498
+ kind: attachment.kind,
1499
+ status: "ready" as const,
1500
+ storageId: uploadPayload.storageId,
1501
+ telegramFileId: attachment.telegramFileId,
1502
+ fileName: attachment.fileName,
1503
+ mimeType: downloaded.mimeType || attachment.mimeType,
1504
+ sizeBytes: attachment.sizeBytes ?? downloaded.blob.size,
1505
+ expiresAt,
1506
+ };
1507
+ }
1508
+
1509
+ async function fetchTelegramFilePath(
1510
+ telegramBotToken: string,
1511
+ telegramFileId: string,
1512
+ ): Promise<string> {
1513
+ const telegramApiBaseUrl = `https://api.telegram.org/bot${encodeURIComponent(telegramBotToken)}`;
1514
+ const response = await fetch(
1515
+ `${telegramApiBaseUrl}/getFile?file_id=${encodeURIComponent(telegramFileId)}`,
1516
+ );
1517
+ const payload = (await response.json().catch(() => ({}))) as {
1518
+ ok?: boolean;
1519
+ description?: string;
1520
+ result?: {
1521
+ file_path?: string;
1522
+ };
1523
+ };
1524
+ if (!response.ok || payload.ok !== true || typeof payload.result?.file_path !== "string") {
1525
+ throw new Error(
1526
+ `Telegram getFile failed: ${typeof payload.description === "string" ? payload.description : "missing file_path"}`,
1527
+ );
1528
+ }
1529
+ return payload.result.file_path;
1530
+ }
1531
+
1532
+ async function downloadTelegramFile(telegramBotToken: string, filePath: string) {
1533
+ const response = await fetch(
1534
+ `https://api.telegram.org/file/bot${encodeURIComponent(telegramBotToken)}/${filePath}`,
1535
+ );
1536
+ if (!response.ok) {
1537
+ throw new Error(`Telegram file download failed with status ${response.status}`);
1538
+ }
1539
+ const blob = await response.blob();
1540
+ const mimeType =
1541
+ response.headers.get("Content-Type") ??
1542
+ blob.type ??
1543
+ inferMimeTypeFromFilePath(filePath) ??
1544
+ "application/octet-stream";
1545
+ return {
1546
+ blob: mimeType === blob.type ? blob : new Blob([await blob.arrayBuffer()], { type: mimeType }),
1547
+ mimeType,
1548
+ };
1549
+ }
1550
+
1551
+ function inferMimeTypeFromFilePath(filePath: string): string | null {
1552
+ const normalizedPath = filePath.toLowerCase();
1553
+ if (normalizedPath.endsWith(".jpg") || normalizedPath.endsWith(".jpeg")) {
1554
+ return "image/jpeg";
1555
+ }
1556
+ if (normalizedPath.endsWith(".png")) {
1557
+ return "image/png";
1558
+ }
1559
+ if (normalizedPath.endsWith(".webp")) {
1560
+ return "image/webp";
1561
+ }
1562
+ if (normalizedPath.endsWith(".mp4")) {
1563
+ return "video/mp4";
1564
+ }
1565
+ if (normalizedPath.endsWith(".mp3")) {
1566
+ return "audio/mpeg";
1567
+ }
1568
+ if (normalizedPath.endsWith(".ogg")) {
1569
+ return "audio/ogg";
1570
+ }
1571
+ if (normalizedPath.endsWith(".pdf")) {
1572
+ return "application/pdf";
1573
+ }
1574
+ return null;
1575
+ }