@devultur/convex 1.4.1 → 1.4.3
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/README.md +6 -1
- package/dist/chunk-JZYKPLI4.js +185 -0
- package/dist/{chunk-EX3W77VY.js → chunk-YYOZ3PDH.js} +16 -3
- package/dist/component/_generated/api.d.ts +0 -1
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts +0 -1
- package/dist/component/_generated/component.js.map +1 -1
- package/dist/component/_generated/dataModel.d.ts +0 -1
- package/dist/component/_generated/dataModel.js.map +1 -1
- package/dist/component/_generated/server.d.ts +0 -1
- package/dist/component/_generated/server.js.map +1 -1
- package/dist/component/convex.config.d.ts +0 -1
- package/dist/component/convex.config.js.map +1 -1
- package/dist/component/http.d.ts +0 -1
- package/dist/component/http.js.map +1 -1
- package/dist/component/library.d.ts +0 -1
- package/dist/component/library.js.map +1 -1
- package/dist/component/lock.d.ts +0 -1
- package/dist/component/lock.js.map +1 -1
- package/dist/component/lockValidators.d.ts +0 -1
- package/dist/component/lockValidators.js.map +1 -1
- package/dist/component/mediaClient.d.ts +0 -1
- package/dist/component/mediaClient.js.map +1 -1
- package/dist/component/mediaMeta.d.ts +0 -1
- package/dist/component/mediaMeta.js.map +1 -1
- package/dist/component/metadata.d.ts +0 -1
- package/dist/component/metadata.js.map +1 -1
- package/dist/component/public.d.ts +0 -1
- package/dist/component/public.js.map +1 -1
- package/dist/component/schema.d.ts +0 -1
- package/dist/component/schema.js.map +1 -1
- package/dist/component/uploadKeys.d.ts +0 -1
- package/dist/component/uploadKeys.js.map +1 -1
- package/dist/component/uploads.d.ts +0 -1
- package/dist/component/uploads.js.map +1 -1
- package/dist/component/workerErrors.d.ts +0 -1
- package/dist/component/workerErrors.js.map +1 -1
- package/dist/{error-labels-BfqcFh2R.d.ts → error-labels-D0Vbp-qA.d.ts} +1 -1
- package/dist/index.d.ts +12 -8
- package/dist/index.js +1 -1
- package/dist/locales/es-formal.d.ts +14 -0
- package/dist/locales/es-formal.js +64 -0
- package/dist/locales/es.d.ts +7 -4
- package/dist/locales/es.js +10 -156
- package/dist/{media-picker-labels-CiVcNUZo.d.ts → preview-labels-B7HNa7Va.d.ts} +59 -2
- package/dist/react.d.ts +24 -64
- package/dist/react.js +37 -17
- package/dist/types-DZxN6Eij.d.ts +190 -0
- package/package.json +9 -4
- package/dist/component/_generated/api.d.ts.map +0 -1
- package/dist/component/_generated/component.d.ts.map +0 -1
- package/dist/component/_generated/dataModel.d.ts.map +0 -1
- package/dist/component/_generated/server.d.ts.map +0 -1
- package/dist/component/convex.config.d.ts.map +0 -1
- package/dist/component/http.d.ts.map +0 -1
- package/dist/component/library.d.ts.map +0 -1
- package/dist/component/lock.d.ts.map +0 -1
- package/dist/component/lockValidators.d.ts.map +0 -1
- package/dist/component/mediaClient.d.ts.map +0 -1
- package/dist/component/mediaMeta.d.ts.map +0 -1
- package/dist/component/metadata.d.ts.map +0 -1
- package/dist/component/public.d.ts.map +0 -1
- package/dist/component/schema.d.ts.map +0 -1
- package/dist/component/uploadKeys.d.ts.map +0 -1
- package/dist/component/uploads.d.ts.map +0 -1
- package/dist/component/workerErrors.d.ts.map +0 -1
- package/dist/types-LrusGVDf.d.ts +0 -62
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/component/public.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/component/public.ts"],"names":[],"mappings":"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","sourcesContent":["import type { WorkerClient } from \"@devultur/core\";\nimport { DEFAULT_TOKEN_EXPIRY_SECONDS, extractId, MediaEventName, MediaStatus } from \"@devultur/core\";\nimport { paginationOptsValidator } from \"convex/server\";\nimport { v } from \"convex/values\";\nimport { api, internal } from \"./_generated/api\";\nimport type { MutationCtx, QueryCtx } from \"./_generated/server\";\nimport { internalMutation, mutation, query } from \"./_generated/server\";\nimport { listNewestFirst } from \"./library\";\nimport { objectLockValidator } from \"./lockValidators\";\nimport { getMediaClient } from \"./mediaClient\";\nimport { missingSearchText, searchTextOf } from \"./mediaMeta\";\nimport { transcodeOutputFields } from \"./schema\";\nimport { UPLOAD_CONFIRM_BACKSTOP_MS } from \"./uploads\";\nimport { workerAction } from \"./workerErrors\";\n\n// Webhook path RELATIVE to the component. Convex gives the component a `CONVEX_SITE_URL` that ALREADY\n// includes its mount prefix (e.g. `${site}/devultur`), so `${CONVEX_SITE_URL}/webhook` resolves to the\n// mounted route (`${site}/devultur/webhook`) without duplicating the prefix. Do NOT add `/devultur/` here\n// (that duplicates it).\nconst WEBHOOK_PATH = \"/webhook\";\n// Accept-timeout (fail-fast): the machine emits the \"downloading\" heartbeat seconds after booting.\n// If it's still \"queued\" at 90s, it never started → FAILED capacity/retriable (fast, not an opaque 5 min).\nconst ACCEPT_TIMEOUT_MS = 90 * 1000;\n// Stuck-timeout (long encode): backstop in case the job hangs mid-processing.\nconst STUCK_TIMEOUT_MS = 45 * 60 * 1000;\n\n// Reusable validator for the categorized failure reason (see FailureReason in @devultur/core).\nconst failureReasonValidator = v.union(\n\tv.literal(\"invalid_input\"),\n\tv.literal(\"unsupported_codec\"),\n\tv.literal(\"timeout\"),\n\tv.literal(\"capacity\"),\n\tv.literal(\"internal\"),\n);\n\n// --- Media Actions (call CF Worker) ---\n\nexport const issueViewerToken = workerAction({\n\t// `userId`: the token's subject. Your server sets it (a guard's `userId`, see `defineDevulturFunctions`), never a\n\t// browser: the exposed `issueViewerToken` only takes `sessionSecret`. Omitted → the shared `viewer` subject.\n\targs: { sessionSecret: v.optional(v.string()), userId: v.optional(v.string()) },\n\thandler: async (_ctx, args) => {\n\t\tconst media = getMediaClient();\n\t\tconst { token, expiresIn } = await media.issueToken(args.userId ?? \"viewer\", {\n\t\t\texpiresIn: DEFAULT_TOKEN_EXPIRY_SECONDS,\n\t\t\tsessionSecret: args.sessionSecret,\n\t\t});\n\t\treturn { token, expiresIn };\n\t},\n});\n\nexport const createUploadUrl = workerAction({\n\targs: {\n\t\tfilename: v.string(),\n\t\tcontentType: v.string(),\n\t\tvisibility: v.optional(v.union(v.literal(\"public\"), v.literal(\"private\"))),\n\t\t/** Lock of the new file (retention and/or hold), written with its bytes. */\n\t\tlock: v.optional(objectLockValidator),\n\t\thold: v.optional(v.boolean()),\n\t},\n\thandler: async (ctx, args) => {\n\t\tconst media = getMediaClient();\n\t\t// Returns { url, key, id, kind, visibility } → the client assembles the DevulturMedia after the PUT.\n\t\tconst upload = await media.createUploadUrl(args);\n\t\t// Backstop for a client that never confirms: records the upload later if its bytes were stored (uploads.ts).\n\t\tawait ctx.scheduler.runAfter(UPLOAD_CONFIRM_BACKSTOP_MS, internal.uploads.confirmUploadLater, {\n\t\t\tkey: upload.key,\n\t\t\tfilename: args.filename,\n\t\t});\n\t\treturn upload;\n\t},\n});\n\nexport const deleteMediaAction = workerAction({\n\targs: { key: v.string() },\n\thandler: async (ctx, args) => {\n\t\tconst media = getMediaClient();\n\t\tawait media.delete(args.key);\n\t\t// Only once the Worker deleted it: a refused delete (a lock) keeps the file in the library.\n\t\tawait ctx.runMutation(internal.uploads.forgetUpload, { key: args.key });\n\t},\n});\n\nexport const deleteVideo = workerAction({\n\targs: { videoId: v.string(), visibility: v.optional(v.union(v.literal(\"public\"), v.literal(\"private\"))) },\n\thandler: async (ctx, args) => {\n\t\tconst media = getMediaClient();\n\t\tconst result = await media.deleteVideo(args.videoId, args.visibility);\n\t\t// The worker purges R2; here we clean up the component's records so a successful delete doesn't\n\t\t// leave a ghost `media` row (playlist/thumbnail giving 404s) or orphaned captions behind.\n\t\tawait ctx.runMutation(internal.public.cleanupVideoRecords, { videoId: args.videoId });\n\t\treturn result;\n\t},\n});\n\n// Cascade cleanup of the component's tables when a video is deleted (after the R2 purge in the worker):\n// the `media` row (key = videoId) and its `captions` (by_media index). `progress` (watch history)\n// is left orphaned but harmless — cascading it would require a `by_video` index.\nexport const cleanupVideoRecords = internalMutation({\n\targs: { videoId: v.string() },\n\thandler: async (ctx, args) => {\n\t\tconst record = await ctx.db\n\t\t\t.query(\"media\")\n\t\t\t.withIndex(\"by_key\", (q) => q.eq(\"key\", args.videoId))\n\t\t\t.first();\n\t\tif (record) await ctx.db.delete(record._id);\n\n\t\tconst captions = await ctx.db\n\t\t\t.query(\"captions\")\n\t\t\t.withIndex(\"by_media\", (q) => q.eq(\"mediaKey\", args.videoId))\n\t\t\t.collect();\n\t\tawait Promise.all(captions.map((caption) => ctx.db.delete(caption._id)));\n\t},\n});\n\nexport const processVideo = workerAction({\n\targs: {\n\t\tkey: v.string(),\n\t\tpreset: v.optional(v.string()),\n\t\tlocales: v.optional(v.array(v.string())),\n\t\tcallbackUrl: v.optional(v.string()),\n\t},\n\thandler: async (ctx, args) => {\n\t\tconst videoId = extractId(args.key);\n\t\tconst mediaKey = videoId;\n\n\t\tconst existing = await ctx.runQuery(api.public.getMediaByKey, { key: mediaKey });\n\t\tif (!existing) {\n\t\t\tconst filename = args.key.split(\"/\").pop() ?? args.key;\n\t\t\tawait ctx.runMutation(api.public.createMedia, {\n\t\t\t\tkey: mediaKey,\n\t\t\t\ttype: \"video\" as const,\n\t\t\t\tfilename,\n\t\t\t\tcontentType: \"video/mp4\",\n\t\t\t\tsizeBytes: 0,\n\t\t\t});\n\t\t}\n\n\t\tconst media = getMediaClient();\n\t\t// No preset → the config's default (or the usual HLS ladder if there is none).\n\t\tconst preset = args.preset;\n\t\tconst callbackUrl = args.callbackUrl ?? `${process.env.CONVEX_SITE_URL}${WEBHOOK_PATH}`;\n\n\t\tconst hasCaptionLocales = (args.locales?.length ?? 0) > 0;\n\n\t\t// \"queued\" state BEFORE firing (feedback \"requesting transcode…\").\n\t\t// The transcode.started webhook will move it to \"transcoding\"; this order avoids a race.\n\t\t// `captionsPending` is set here too, before any webhook can land: `transcode.complete` reads it to choose\n\t\t// between \"captioning\" (captions still on their way) and \"ready\".\n\t\tawait ctx.runMutation(api.public.updateMedia, {\n\t\t\tkey: mediaKey,\n\t\t\ttranscodeStatus: MediaStatus.QUEUED,\n\t\t\tcaptionsPending: hasCaptionLocales,\n\t\t});\n\n\t\tlet result: Awaited<ReturnType<WorkerClient[\"transcode\"]>>;\n\t\ttry {\n\t\t\tresult = await media.transcode(args.key, { preset, callbackUrl });\n\t\t} catch (error) {\n\t\t\t// Fail-loud: the worker didn't accept the transcode (token/suspend/error) → don't leave it hanging.\n\t\t\tconst message = error instanceof Error ? error.message : \"Could not start the transcode\";\n\t\t\tawait ctx.runMutation(api.public.updateMedia, {\n\t\t\t\tkey: mediaKey,\n\t\t\t\ttranscodeStatus: MediaStatus.FAILED,\n\t\t\t\ttranscodeError: message,\n\t\t\t\tfailureReason: \"internal\",\n\t\t\t\tretriable: true,\n\t\t\t});\n\t\t\tthrow error;\n\t\t}\n\n\t\t// Captions is best-effort: its failure shouldn't mark the video as failed, nor leave it waiting for\n\t\t// captions that will never arrive.\n\t\tif (args.locales && hasCaptionLocales) {\n\t\t\ttry {\n\t\t\t\tawait media.requestCaptions(args.key, args.locales, { callbackUrl });\n\t\t\t} catch {\n\t\t\t\tawait ctx.runMutation(internal.public.skipCaptions, { key: mediaKey });\n\t\t\t}\n\t\t}\n\n\t\t// Accept-timeout (fast): if the machine never emitted the \"downloading\" heartbeat it's still \"queued\".\n\t\t// Stuck-timeout (long): backstop if the job hangs mid-processing.\n\t\tawait ctx.scheduler.runAfter(ACCEPT_TIMEOUT_MS, internal.public.checkTranscodeAccepted, { key: mediaKey });\n\t\tawait ctx.scheduler.runAfter(STUCK_TIMEOUT_MS, internal.public.checkTranscodeStuck, { key: mediaKey });\n\n\t\treturn result;\n\t},\n});\n\n// The captions request failed: stop waiting for them. A video whose transcode already completed (and is\n// waiting in \"captioning\") becomes ready.\nexport const skipCaptions = internalMutation({\n\targs: { key: v.string() },\n\thandler: async (ctx, args) => {\n\t\tconst record = await ctx.db\n\t\t\t.query(\"media\")\n\t\t\t.withIndex(\"by_key\", (q) => q.eq(\"key\", args.key))\n\t\t\t.first();\n\t\tif (!record) return;\n\n\t\tconst isWaitingForCaptions = record.transcodeStatus === MediaStatus.CAPTIONING;\n\t\tawait ctx.db.patch(record._id, {\n\t\t\t...missingSearchText(record),\n\t\t\tcaptionsPending: false,\n\t\t\t...(isWaitingForCaptions ? { transcodeStatus: MediaStatus.READY } : {}),\n\t\t});\n\t},\n});\n\n// Fail-fast: if the video is still \"queued\" at 90s (the machine never started), mark it FAILED with\n// reason `capacity` and retriable — a transient startup failure, not an invalid input.\nexport const checkTranscodeAccepted = internalMutation({\n\targs: { key: v.string() },\n\thandler: async (ctx, args) => {\n\t\tconst record = await ctx.db\n\t\t\t.query(\"media\")\n\t\t\t.withIndex(\"by_key\", (q) => q.eq(\"key\", args.key))\n\t\t\t.first();\n\t\tif (!record || record.transcodeStatus !== MediaStatus.QUEUED) return;\n\n\t\tawait ctx.db.patch(record._id, {\n\t\t\t...missingSearchText(record),\n\t\t\ttranscodeStatus: MediaStatus.FAILED,\n\t\t\ttranscodeError: \"The transcode didn't start in time. Retry.\",\n\t\t\tfailureReason: \"capacity\",\n\t\t\tretriable: true,\n\t\t\ttranscodeProgress: undefined,\n\t\t});\n\t},\n});\n\n// Long-encode backstop: if the video hasn't reached ready/failed after the max time, it got stuck\n// mid-way → FAILED with reason `timeout` and retriable.\nexport const checkTranscodeStuck = internalMutation({\n\targs: { key: v.string() },\n\thandler: async (ctx, args) => {\n\t\tconst record = await ctx.db\n\t\t\t.query(\"media\")\n\t\t\t.withIndex(\"by_key\", (q) => q.eq(\"key\", args.key))\n\t\t\t.first();\n\t\tif (!record) return;\n\t\tif (record.transcodeStatus === MediaStatus.READY || record.transcodeStatus === MediaStatus.FAILED) return;\n\n\t\tawait ctx.db.patch(record._id, {\n\t\t\t...missingSearchText(record),\n\t\t\ttranscodeStatus: MediaStatus.FAILED,\n\t\t\ttranscodeError: \"The transcode didn't finish in time. Retry.\",\n\t\t\tfailureReason: \"timeout\",\n\t\t\tretriable: true,\n\t\t\ttranscodeProgress: undefined,\n\t\t});\n\t},\n});\n\n// --- Media Mutations (component tables) ---\n\nexport const createMedia = mutation({\n\targs: {\n\t\tkey: v.string(),\n\t\ttype: v.union(v.literal(\"video\"), v.literal(\"image\"), v.literal(\"file\")),\n\t\tfilename: v.string(),\n\t\tcontentType: v.string(),\n\t\tsizeBytes: v.number(),\n\t},\n\thandler: async (ctx, args) => {\n\t\t// One record per key: `processVideo` and a confirmed upload can both get here first.\n\t\tconst existing = await ctx.db\n\t\t\t.query(\"media\")\n\t\t\t.withIndex(\"by_key\", (q) => q.eq(\"key\", args.key))\n\t\t\t.first();\n\t\tif (existing) return existing._id;\n\t\treturn ctx.db.insert(\"media\", {\n\t\t\t...args,\n\t\t\tsearchText: searchTextOf(undefined, args.filename),\n\t\t\tcreatedAt: Date.now(),\n\t\t});\n\t},\n});\n\nexport const updateMedia = mutation({\n\targs: {\n\t\tkey: v.string(),\n\t\ttranscodeStatus: v.optional(\n\t\t\tv.union(\n\t\t\t\tv.literal(\"queued\"),\n\t\t\t\tv.literal(\"transcoding\"),\n\t\t\t\tv.literal(\"captioning\"),\n\t\t\t\tv.literal(\"ready\"),\n\t\t\t\tv.literal(\"failed\"),\n\t\t\t),\n\t\t),\n\t\ttranscodeProgress: v.optional(v.object({ current: v.number(), total: v.number() })),\n\t\ttranscodeError: v.optional(v.string()),\n\t\tfailureReason: v.optional(failureReasonValidator),\n\t\tretriable: v.optional(v.boolean()),\n\t\tplaylistUrl: v.optional(v.string()),\n\t\tthumbnailKey: v.optional(v.string()),\n\t\tcaptionLocales: v.optional(v.array(v.string())),\n\t\tcaptionsPending: v.optional(v.boolean()),\n\t\tduration: v.optional(v.number()),\n\t},\n\thandler: async (ctx, args) => {\n\t\tconst record = await ctx.db\n\t\t\t.query(\"media\")\n\t\t\t.withIndex(\"by_key\", (q) => q.eq(\"key\", args.key))\n\t\t\t.first();\n\t\tif (!record) return;\n\n\t\tconst { key: _mediaKey, ...fields } = args;\n\t\t// Any write to a record from before 1.4.0 also gives it its `searchText`.\n\t\tconst patch: Record<string, unknown> = { ...missingSearchText(record) };\n\t\tfor (const [fieldName, fieldValue] of Object.entries(fields)) {\n\t\t\tif (fieldValue !== undefined) patch[fieldName] = fieldValue;\n\t\t}\n\t\tif (Object.keys(patch).length > 0) {\n\t\t\tawait ctx.db.patch(record._id, patch);\n\t\t}\n\t},\n});\n\n// --- Media Queries ---\n\nexport const getMediaByKey = query({\n\targs: { key: v.string() },\n\thandler: async (ctx, args) => {\n\t\treturn ctx.db\n\t\t\t.query(\"media\")\n\t\t\t.withIndex(\"by_key\", (q) => q.eq(\"key\", args.key))\n\t\t\t.first();\n\t},\n});\n\n// Every record at once: fine for a handful, unbounded for a library. A library pages with `listMediaPage`.\nexport const listMedia = query({\n\targs: { type: v.optional(v.union(v.literal(\"video\"), v.literal(\"image\"), v.literal(\"file\"))) },\n\thandler: async (ctx, args) => {\n\t\tconst mediaQuery = ctx.db.query(\"media\");\n\t\tif (args.type) {\n\t\t\treturn mediaQuery.filter((q) => q.eq(q.field(\"type\"), args.type)).collect();\n\t\t}\n\t\treturn mediaQuery.collect();\n\t},\n});\n\n/** One page of the media library, newest first, optionally of one type (`by_type` index). */\nexport const listMediaPage = query({\n\targs: {\n\t\ttype: v.optional(v.union(v.literal(\"video\"), v.literal(\"image\"), v.literal(\"file\"))),\n\t\tpaginationOpts: paginationOptsValidator,\n\t},\n\thandler: async (ctx, args) => listNewestFirst(ctx, args.type, args.paginationOpts),\n});\n\n// --- Captions ---\n\nexport const upsertCaption = mutation({\n\targs: {\n\t\tmediaKey: v.string(),\n\t\tlocale: v.string(),\n\t\tvttUrl: v.string(),\n\t\tsrtUrl: v.optional(v.string()),\n\t},\n\thandler: async (ctx, args) => {\n\t\tconst existing = await ctx.db\n\t\t\t.query(\"captions\")\n\t\t\t.withIndex(\"by_media_locale\", (q) => q.eq(\"mediaKey\", args.mediaKey).eq(\"locale\", args.locale))\n\t\t\t.first();\n\n\t\tif (existing) {\n\t\t\tawait ctx.db.patch(existing._id, { vttUrl: args.vttUrl, srtUrl: args.srtUrl });\n\t\t\treturn existing._id;\n\t\t}\n\t\treturn ctx.db.insert(\"captions\", { ...args, createdAt: Date.now() });\n\t},\n});\n\nexport const listCaptionsByMedia = query({\n\targs: { mediaKey: v.string() },\n\thandler: async (ctx, args) => {\n\t\treturn ctx.db\n\t\t\t.query(\"captions\")\n\t\t\t.withIndex(\"by_media\", (q) => q.eq(\"mediaKey\", args.mediaKey))\n\t\t\t.collect();\n\t},\n});\n\n// --- Progress ---\n\nfunction findProgress(ctx: QueryCtx | MutationCtx, userId: string, videoId: string) {\n\treturn ctx.db\n\t\t.query(\"progress\")\n\t\t.withIndex(\"by_user_video\", (q) => q.eq(\"userId\", userId).eq(\"videoId\", videoId))\n\t\t.first();\n}\n\nexport const saveProgress = mutation({\n\targs: { userId: v.string(), videoId: v.string(), position: v.number() },\n\thandler: async (ctx, args) => {\n\t\tconst existing = await findProgress(ctx, args.userId, args.videoId);\n\n\t\tif (existing) {\n\t\t\tawait ctx.db.patch(existing._id, { lastPosition: args.position, updatedAt: Date.now() });\n\t\t\treturn existing._id;\n\t\t}\n\t\treturn ctx.db.insert(\"progress\", {\n\t\t\tuserId: args.userId,\n\t\t\tvideoId: args.videoId,\n\t\t\tlastPosition: args.position,\n\t\t\tupdatedAt: Date.now(),\n\t\t});\n\t},\n});\n\nexport const loadProgress = query({\n\targs: { userId: v.string(), videoId: v.string() },\n\thandler: async (ctx, args) => {\n\t\treturn findProgress(ctx, args.userId, args.videoId);\n\t},\n});\n\nexport const markComplete = mutation({\n\targs: { userId: v.string(), videoId: v.string() },\n\thandler: async (ctx, args) => {\n\t\tconst existing = await findProgress(ctx, args.userId, args.videoId);\n\t\tconst now = Date.now();\n\n\t\tif (existing) {\n\t\t\tawait ctx.db.patch(existing._id, { completedAt: now, watchedPercent: 100, updatedAt: now });\n\t\t\treturn existing._id;\n\t\t}\n\t\treturn ctx.db.insert(\"progress\", {\n\t\t\tuserId: args.userId,\n\t\t\tvideoId: args.videoId,\n\t\t\tlastPosition: 0,\n\t\t\tcompletedAt: now,\n\t\t\twatchedPercent: 100,\n\t\t\tupdatedAt: now,\n\t\t});\n\t},\n});\n\nexport const resetProgress = mutation({\n\targs: { userId: v.string(), videoId: v.string() },\n\thandler: async (ctx, args) => {\n\t\tconst existing = await findProgress(ctx, args.userId, args.videoId);\n\t\tif (existing) {\n\t\t\tawait ctx.db.delete(existing._id);\n\t\t}\n\t},\n});\n\nexport const getCourseProgress = query({\n\targs: { userId: v.string(), videoIds: v.array(v.string()) },\n\thandler: async (ctx, args) => {\n\t\treturn Promise.all(args.videoIds.map((videoId) => findProgress(ctx, args.userId, videoId)));\n\t},\n});\n\n// --- Webhook Handler (updates component's media table) ---\n\nexport const handleWebhookEvent = internalMutation({\n\targs: {\n\t\tevent: v.string(),\n\t\tvideoId: v.string(),\n\t\tcurrentSegment: v.optional(v.number()),\n\t\ttotalSegments: v.optional(v.number()),\n\t\tphase: v.optional(v.string()),\n\t\tduration: v.optional(v.number()),\n\t\tplaylistKey: v.optional(v.string()),\n\t\tthumbnailKey: v.optional(v.string()),\n\t\t// Outputs of a config preset / inline spec (MP4, variants, poster). Absent with the `hls-*` aliases.\n\t\t...transcodeOutputFields,\n\t\tlocales: v.optional(v.array(v.string())),\n\t\terror: v.optional(v.string()),\n\t\treason: v.optional(failureReasonValidator),\n\t\tretriable: v.optional(v.boolean()),\n\t},\n\thandler: async (ctx, args) => {\n\t\tlet record = await ctx.db\n\t\t\t.query(\"media\")\n\t\t\t.withIndex(\"by_key\", (q) => q.eq(\"key\", args.videoId))\n\t\t\t.first();\n\t\tif (!record) {\n\t\t\trecord = await ctx.db\n\t\t\t\t.query(\"media\")\n\t\t\t\t.withIndex(\"by_key\", (q) => q.eq(\"key\", `videos/${args.videoId}`))\n\t\t\t\t.first();\n\t\t}\n\t\tif (!record) return;\n\n\t\tconst searchTextFill = missingSearchText(record);\n\t\tif (searchTextFill.searchText !== undefined) await ctx.db.patch(record._id, searchTextFill);\n\n\t\tswitch (args.event) {\n\t\t\tcase MediaEventName.TRANSCODE_STARTED:\n\t\t\t\tawait ctx.db.patch(record._id, {\n\t\t\t\t\ttranscodeStatus: MediaStatus.TRANSCODING,\n\t\t\t\t\ttranscodeProgress: { current: 0, total: args.totalSegments ?? 0 },\n\t\t\t\t\ttranscodeError: undefined,\n\t\t\t\t\tduration: args.duration,\n\t\t\t\t});\n\t\t\t\tbreak;\n\n\t\t\tcase MediaEventName.TRANSCODE_PROGRESS:\n\t\t\t\t// The \"downloading\" heartbeat is the first progress → moves out of \"queued\" as soon as the machine is alive.\n\t\t\t\tawait ctx.db.patch(record._id, {\n\t\t\t\t\ttranscodeStatus: MediaStatus.TRANSCODING,\n\t\t\t\t\ttranscodeProgress: {\n\t\t\t\t\t\tcurrent: args.currentSegment ?? 0,\n\t\t\t\t\t\ttotal: args.totalSegments ?? 0,\n\t\t\t\t\t\tphase: (args.phase as \"downloading\" | \"encoding\" | \"uploading\" | \"captioning\") ?? \"uploading\",\n\t\t\t\t\t},\n\t\t\t\t\ttranscodeError: undefined,\n\t\t\t\t});\n\t\t\t\tbreak;\n\n\t\t\tcase MediaEventName.TRANSCODE_COMPLETE: {\n\t\t\t\t// Wait in \"captioning\" only for captions that were requested and haven't arrived yet; a video\n\t\t\t\t// transcoded without captions is ready right away.\n\t\t\t\tawait ctx.db.patch(record._id, {\n\t\t\t\t\ttranscodeStatus: record.captionsPending ? MediaStatus.CAPTIONING : MediaStatus.READY,\n\t\t\t\t\ttranscodeProgress: undefined,\n\t\t\t\t\tduration: args.duration,\n\t\t\t\t\tplaylistUrl: args.playlistKey,\n\t\t\t\t\tthumbnailKey: args.thumbnailKey,\n\t\t\t\t\t...(args.renditions ? { renditions: args.renditions } : {}),\n\t\t\t\t\t...(args.posterUrls ? { posterUrls: args.posterUrls } : {}),\n\t\t\t\t\t...(args.hasAudio !== undefined ? { hasAudio: args.hasAudio } : {}),\n\t\t\t\t\t...(args.storyboardKey ? { storyboardKey: args.storyboardKey } : {}),\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase MediaEventName.CAPTIONS_COMPLETE: {\n\t\t\t\t// An MP4-only preset has no playlist: its renditions also count as \"transcode ready\".\n\t\t\t\tconst hasPlaylist = !!record.playlistUrl || (record.renditions?.length ?? 0) > 0;\n\t\t\t\tawait ctx.db.patch(record._id, {\n\t\t\t\t\ttranscodeStatus: hasPlaylist ? MediaStatus.READY : MediaStatus.TRANSCODING,\n\t\t\t\t\tcaptionLocales: args.locales,\n\t\t\t\t\tcaptionsPending: false,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase MediaEventName.TRANSCODE_FAILED:\n\t\t\tcase MediaEventName.CAPTIONS_FAILED:\n\t\t\t\tawait ctx.db.patch(record._id, {\n\t\t\t\t\ttranscodeStatus: MediaStatus.FAILED,\n\t\t\t\t\ttranscodeError: args.error,\n\t\t\t\t\tfailureReason: args.reason ?? \"internal\",\n\t\t\t\t\tretriable: args.retriable ?? true,\n\t\t\t\t\ttranscodeProgress: undefined,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\t},\n});\n"]}
|
|
@@ -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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","sourcesContent":["import { defineSchema, defineTable } from \"convex/server\";\nimport { v } from \"convex/values\";\n\n// Outputs of a preset transcode (carried by `transcode.complete`): each MP4/ladder with its stable URL, the\n// poster (JPG + AVIF per transform), and whether the video ended up with audio.\nexport const transcodeOutputFields = {\n\trenditions: v.optional(\n\t\tv.array(\n\t\t\tv.object({\n\t\t\t\tvariant: v.string(),\n\t\t\t\tkind: v.union(v.literal(\"hls\"), v.literal(\"mp4\")),\n\t\t\t\trung: v.string(),\n\t\t\t\tkey: v.string(),\n\t\t\t\twidth: v.optional(v.number()),\n\t\t\t\theight: v.optional(v.number()),\n\t\t\t\turl: v.string(),\n\t\t\t}),\n\t\t),\n\t),\n\tposterUrls: v.optional(v.object({ jpg: v.optional(v.string()), avif: v.optional(v.string()) })),\n\thasAudio: v.optional(v.boolean()),\n\t// Key of the storyboard VTT (scrub-bar previews). URL: `buildStoryboardUrl` / `buildMediaUrl` from core.\n\tstoryboardKey: v.optional(v.string()),\n};\n\nexport default defineSchema({\n\tmedia: defineTable({\n\t\tkey: v.string(),\n\t\ttype: v.union(v.literal(\"video\"), v.literal(\"image\"), v.literal(\"file\")),\n\t\tfilename: v.string(),\n\t\tcontentType: v.string(),\n\t\tsizeBytes: v.number(),\n\t\t// Set by a confirmed upload (see uploads.ts). Unset on records from before 1.1.0 and on videos recorded only by\n\t\t// `processVideo`. The record's `key` is the media id for every kind; `objectKey` is the stored object's key.\n\t\tvisibility: v.optional(v.union(v.literal(\"public\"), v.literal(\"private\"))),\n\t\tobjectKey: v.optional(v.string()),\n\t\t// An image's intrinsic size: read by the Worker from the bytes when it can, else the uploading client's hint.\n\t\twidth: v.optional(v.number()),\n\t\theight: v.optional(v.number()),\n\t\t// A PDF's page count, as the uploading client reported it (a hint, see `confirmUpload`).\n\t\tpageCount: v.optional(v.number()),\n\t\t// Set by the app (`updateMediaMeta`).\n\t\ttitle: v.optional(v.string()),\n\t\talt: v.optional(v.string()),\n\t\ttags: v.optional(v.array(v.string())),\n\t\t// `title + \" \" + filename`, lowercased, kept in step on every write. Unset on records from before 1.4.0.\n\t\tsearchText: v.optional(v.string()),\n\t\ttranscodeStatus: v.optional(\n\t\t\tv.union(\n\t\t\t\tv.literal(\"queued\"),\n\t\t\t\tv.literal(\"transcoding\"),\n\t\t\t\tv.literal(\"captioning\"),\n\t\t\t\tv.literal(\"ready\"),\n\t\t\t\tv.literal(\"failed\"),\n\t\t\t),\n\t\t),\n\t\ttranscodeProgress: v.optional(\n\t\t\tv.object({\n\t\t\t\tcurrent: v.number(),\n\t\t\t\ttotal: v.number(),\n\t\t\t\tphase: v.optional(\n\t\t\t\t\tv.union(v.literal(\"downloading\"), v.literal(\"encoding\"), v.literal(\"uploading\"), v.literal(\"captioning\")),\n\t\t\t\t),\n\t\t\t}),\n\t\t),\n\t\ttranscodeError: v.optional(v.string()),\n\t\t// Categorized failure + whether it's retriable (webhook / accept-timeout). See FailureReason in core.\n\t\tfailureReason: v.optional(\n\t\t\tv.union(\n\t\t\t\tv.literal(\"invalid_input\"),\n\t\t\t\tv.literal(\"unsupported_codec\"),\n\t\t\t\tv.literal(\"timeout\"),\n\t\t\t\tv.literal(\"capacity\"),\n\t\t\t\tv.literal(\"internal\"),\n\t\t\t),\n\t\t),\n\t\tretriable: v.optional(v.boolean()),\n\t\tplaylistUrl: v.optional(v.string()),\n\t\tthumbnailKey: v.optional(v.string()),\n\t\t// Outputs of a preset transcode: each MP4/ladder with its stable URL, poster, and whether it has audio.\n\t\t...transcodeOutputFields,\n\t\tcaptionLocales: v.optional(v.array(v.string())),\n\t\t// True while requested captions haven't arrived: `transcode.complete` then waits in \"captioning\" instead\n\t\t// of going straight to \"ready\". Unset (records from before this field) means no captions were requested.\n\t\tcaptionsPending: v.optional(v.boolean()),\n\t\t// A video's duration in seconds, from the transcode's webhook.\n\t\tduration: v.optional(v.number()),\n\t\tcreatedAt: v.number(),\n\t})\n\t\t.index(\"by_key\", [\"key\"])\n\t\t// The media library by kind (`listMediaPage`), newest first.\n\t\t.index(\"by_type\", [\"type\"])\n\t\t// Full-text search over the title and filename, optionally of one kind.\n\t\t.searchIndex(\"search_text\", { searchField: \"searchText\", filterFields: [\"type\"] }),\n\n\tcaptions: defineTable({\n\t\tmediaKey: v.string(),\n\t\tlocale: v.string(),\n\t\tvttUrl: v.string(),\n\t\tsrtUrl: v.optional(v.string()),\n\t\tcreatedAt: v.number(),\n\t})\n\t\t.index(\"by_media\", [\"mediaKey\"])\n\t\t.index(\"by_media_locale\", [\"mediaKey\", \"locale\"]),\n\n\tprogress: defineTable({\n\t\tuserId: v.string(),\n\t\tvideoId: v.string(),\n\t\tlastPosition: v.number(),\n\t\tcompletedAt: v.optional(v.number()),\n\t\twatchedPercent: v.optional(v.number()),\n\t\tupdatedAt: v.number(),\n\t}).index(\"by_user_video\", [\"userId\", \"videoId\"]),\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadKeys.js","sourceRoot":"","sources":["../../src/component/uploadKeys.ts"],"names":[],"mappings":"AAGA,MAAM,KAAK,GAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAUlE;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC;IACxC,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAoB,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAE9D,MAAM,YAAY,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAE3D,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAoB,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;AACnE,CAAC"}
|
|
1
|
+
{"version":3,"file":"uploadKeys.js","sourceRoot":"","sources":["../../src/component/uploadKeys.ts"],"names":[],"mappings":"AAGA,MAAM,KAAK,GAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAUlE;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC;IACxC,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAoB,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAE9D,MAAM,YAAY,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAE3D,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAoB,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;AACnE,CAAC","sourcesContent":["// Keys of uploaded objects, as the Worker lays them out. Dependency-free so any module can parse them.\nimport type { DevulturKind, Visibility } from \"@devultur/core\";\n\nconst KINDS: readonly DevulturKind[] = [\"video\", \"image\", \"file\"];\n\nexport interface UploadKey {\n\tvisibility: Visibility;\n\tkind: DevulturKind;\n\tid: string;\n\t/** The (sanitized) filename in the key. */\n\tstoredName: string;\n}\n\n/**\n * The parts of an upload key: `{visibility}/{image|file}/{id}/{name}` or `{visibility}/video/{id}/raw/{name}`.\n * `null` for any other key (derivatives, assets, exports): those are never library items.\n */\nexport function parseUploadKey(key: string): UploadKey | null {\n\tconst segments = key.split(\"/\");\n\tconst [visibility, kind, id] = segments;\n\tif (visibility !== \"public\" && visibility !== \"private\") return null;\n\tif (!KINDS.includes(kind as DevulturKind) || !id) return null;\n\n\tconst nameSegments = kind === \"video\" ? 5 : 4;\n\tif (segments.length !== nameSegments) return null;\n\tif (kind === \"video\" && segments[3] !== \"raw\") return null;\n\n\tconst storedName = segments.at(-1);\n\tif (!storedName) return null;\n\treturn { visibility, kind: kind as DevulturKind, id, storedName };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploads.js","sourceRoot":"","sources":["../../src/component/uploads.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"uploads.js","sourceRoot":"","sources":["../../src/component/uploads.ts"],"names":[],"mappings":"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","sourcesContent":["// Upload records: every upload (video, image, file) gets a `media` record once its bytes are stored, so `listMedia` is\n// the app's media library. A record is only written after a HEAD on the Worker finds the object: an abandoned PUT never\n// shows up. The client confirms right after its PUT (`confirmUpload`); `createUploadUrl` also schedules the same check\n// for later (`confirmUploadLater`), so an upload whose client never confirmed is still recorded.\nimport type { FileHead } from \"@devultur/core\";\nimport { extractId, sanitizeFilename } from \"@devultur/core\";\nimport { ConvexError, v } from \"convex/values\";\nimport { internal } from \"./_generated/api\";\nimport type { Doc } from \"./_generated/dataModel\";\nimport type { ActionCtx } from \"./_generated/server\";\nimport { internalAction, internalMutation } from \"./_generated/server\";\nimport { getMediaClient } from \"./mediaClient\";\nimport { searchTextOf, type UploadHints, validUploadHints } from \"./mediaMeta\";\nimport { parseUploadKey, type UploadKey } from \"./uploadKeys\";\nimport { workerAction } from \"./workerErrors\";\n\n// Past the Worker's longest upload window (a multipart upload can run for 24 hours), so the scheduled check never runs\n// while the bytes are still on their way.\nexport const UPLOAD_CONFIRM_BACKSTOP_MS = 25 * 60 * 60 * 1000;\n\n/** The display name to store: the client's when it is the name in the key, else the key's own. */\nfunction displayName(uploadKey: UploadKey, filename: string | undefined): string {\n\tif (filename && sanitizeFilename(filename) === uploadKey.storedName) return filename;\n\treturn uploadKey.storedName;\n}\n\n// The hints are the uploading client's word, not the Worker's: positive integers up to 100,000; another value is\n// dropped (and logged) and the upload recorded without it. An image size the Worker read from the bytes wins over them.\nconst confirmArgs = {\n\tkey: v.string(),\n\t/** The original filename (display and download name). Ignored unless it is the one in the key. */\n\tfilename: v.optional(v.string()),\n\t/** Intrinsic size of an image, read in the browser. */\n\twidth: v.optional(v.number()),\n\theight: v.optional(v.number()),\n\t/** A PDF's page count, counted in the browser (`countPdfPages`). Recorded for PDFs only. */\n\tpageCount: v.optional(v.number()),\n};\n\ninterface ConfirmArgs extends UploadHints {\n\tkey: string;\n\tfilename?: string;\n}\n\n/** The size to record: the Worker's (read from the bytes) when it has one, else the client's hint. */\nfunction recordedSize(head: FileHead, hints: UploadHints): { width?: number; height?: number } {\n\tif (head.width && head.height) return { width: head.width, height: head.height };\n\treturn {\n\t\t...(hints.width !== undefined ? { width: hints.width } : {}),\n\t\t...(hints.height !== undefined ? { height: hints.height } : {}),\n\t};\n}\n\n/** HEADs the object and records it; `null` when no object is stored at `key` (yet). */\n// Annotated: the result of `internal.uploads.*` would otherwise type this module in terms of itself.\nasync function confirm(ctx: ActionCtx, args: ConfirmArgs): Promise<Doc<\"media\"> | null> {\n\tconst uploadKey = parseUploadKey(args.key);\n\tif (!uploadKey) {\n\t\tthrow new ConvexError({ code: \"invalid_upload_key\", message: `Not an upload key: ${args.key}`, status: 400 });\n\t}\n\tconst hints = validUploadHints(args);\n\n\tconst head: FileHead | null = await getMediaClient().files.head(args.key);\n\tif (!head) return null;\n\n\tconst isPdf = head.contentType === \"application/pdf\";\n\treturn ctx.runMutation(internal.uploads.recordUpload, {\n\t\tkey: uploadKey.id,\n\t\tobjectKey: args.key,\n\t\ttype: uploadKey.kind,\n\t\tvisibility: uploadKey.visibility,\n\t\tfilename: displayName(uploadKey, args.filename),\n\t\tcontentType: head.contentType,\n\t\tsizeBytes: head.size,\n\t\t...recordedSize(head, hints),\n\t\t...(isPdf && hints.pageCount !== undefined ? { pageCount: hints.pageCount } : {}),\n\t});\n}\n\n/**\n * Records an upload in the component's `media` table once its bytes are stored (call it after the PUT). Returns the\n * record, or `null` when nothing is stored at `key`. Idempotent: confirming twice updates the same record, and a\n * video's transcode state is left as it is.\n */\nexport const confirmUpload = workerAction({\n\targs: confirmArgs,\n\thandler: async (ctx, args): Promise<Doc<\"media\"> | null> => confirm(ctx, args),\n});\n\n/** The scheduled check `createUploadUrl` leaves behind: records the upload if it was stored and never confirmed. */\nexport const confirmUploadLater = internalAction({\n\targs: confirmArgs,\n\thandler: async (ctx, args) => {\n\t\tawait confirm(ctx, args);\n\t},\n});\n\nexport const recordUpload = internalMutation({\n\targs: {\n\t\tkey: v.string(),\n\t\tobjectKey: v.string(),\n\t\ttype: v.union(v.literal(\"video\"), v.literal(\"image\"), v.literal(\"file\")),\n\t\tvisibility: v.union(v.literal(\"public\"), v.literal(\"private\")),\n\t\tfilename: v.string(),\n\t\tcontentType: v.string(),\n\t\tsizeBytes: v.number(),\n\t\twidth: v.optional(v.number()),\n\t\theight: v.optional(v.number()),\n\t\tpageCount: v.optional(v.number()),\n\t},\n\thandler: async (ctx, args) => {\n\t\tconst existing = await ctx.db\n\t\t\t.query(\"media\")\n\t\t\t.withIndex(\"by_key\", (q) => q.eq(\"key\", args.key))\n\t\t\t.first();\n\t\tif (!existing) {\n\t\t\tconst searchText = searchTextOf(undefined, args.filename);\n\t\t\tconst id = await ctx.db.insert(\"media\", { ...args, searchText, createdAt: Date.now() });\n\t\t\treturn ctx.db.get(id);\n\t\t}\n\n\t\t// A video `processVideo` recorded first: fill in what only the upload knows, keep its transcode state (and any\n\t\t// title the app already set).\n\t\tawait ctx.db.patch(existing._id, { ...args, searchText: searchTextOf(existing.title, args.filename) });\n\t\treturn ctx.db.get(existing._id);\n\t},\n});\n\n/** Drops the record of a deleted image or file. A video's record goes with `deleteVideo`, not with one of its keys. */\nexport const forgetUpload = internalMutation({\n\targs: { key: v.string() },\n\thandler: async (ctx, args) => {\n\t\tif (!parseUploadKey(args.key)) return;\n\t\tconst record = await ctx.db\n\t\t\t.query(\"media\")\n\t\t\t.withIndex(\"by_key\", (q) => q.eq(\"key\", extractId(args.key)))\n\t\t\t.first();\n\t\tif (!record || record.type === \"video\") return;\n\t\tif (record.objectKey && record.objectKey !== args.key) return;\n\t\tawait ctx.db.delete(record._id);\n\t},\n});\n"]}
|
|
@@ -14,4 +14,3 @@ export interface DevulturErrorData {
|
|
|
14
14
|
export declare function toComponentError(error: unknown): unknown;
|
|
15
15
|
/** `action` whose handler rethrows Worker refusals as `ConvexError<DevulturErrorData>`. */
|
|
16
16
|
export declare const workerAction: typeof action;
|
|
17
|
-
//# sourceMappingURL=workerErrors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerErrors.js","sourceRoot":"","sources":["../../src/component/workerErrors.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,sHAAsH;AACtH,0GAA0G;AAC1G,iGAAiG;AACjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAc,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAa7C,SAAS,UAAU,CAAC,KAAc;IACjC,IAAI,KAAK,YAAY,gBAAgB;QAAE,OAAO,IAAI,CAAC;IACnD,sFAAsF;IACtF,OAAO,CACN,KAAK,YAAY,KAAK;QACtB,KAAK,CAAC,IAAI,KAAK,kBAAkB;QACjC,OAAQ,KAA8B,CAAC,MAAM,KAAK,QAAQ,CAC1D,CAAC;AACH,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC9C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,IAAI,GAAsB;QAC/B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,cAAc;QAClC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,sEAAsE;QACtE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzG,CAAC;IACF,OAAO,IAAI,WAAW,CAAC,IAAwB,CAAC,CAAC;AAClD,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,UAA0E,EAAE,EAAE,CAC3G,MAAM,CAAC;IACN,GAAG,UAAU;IACb,OAAO,EAAE,KAAK,EAAE,GAAY,EAAE,IAAa,EAAE,EAAE;QAC9C,IAAI,CAAC;YACJ,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;CACQ,CAAC,CAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"workerErrors.js","sourceRoot":"","sources":["../../src/component/workerErrors.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,sHAAsH;AACtH,0GAA0G;AAC1G,iGAAiG;AACjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAc,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAa7C,SAAS,UAAU,CAAC,KAAc;IACjC,IAAI,KAAK,YAAY,gBAAgB;QAAE,OAAO,IAAI,CAAC;IACnD,sFAAsF;IACtF,OAAO,CACN,KAAK,YAAY,KAAK;QACtB,KAAK,CAAC,IAAI,KAAK,kBAAkB;QACjC,OAAQ,KAA8B,CAAC,MAAM,KAAK,QAAQ,CAC1D,CAAC;AACH,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC9C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,IAAI,GAAsB;QAC/B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,cAAc;QAClC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,sEAAsE;QACtE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzG,CAAC;IACF,OAAO,IAAI,WAAW,CAAC,IAAwB,CAAC,CAAC;AAClD,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,UAA0E,EAAE,EAAE,CAC3G,MAAM,CAAC;IACN,GAAG,UAAU;IACb,OAAO,EAAE,KAAK,EAAE,GAAY,EAAE,IAAa,EAAE,EAAE;QAC9C,IAAI,CAAC;YACJ,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;CACQ,CAAC,CAA6B,CAAC","sourcesContent":["// Worker errors across the component boundary. A plain `Error` thrown in a component function reaches the app as a\n// message only; a `ConvexError` keeps its `data`. Every component action is built with `workerAction`, which rethrows\n// the Worker's `DevulturApiError` as `ConvexError<DevulturErrorData>`, so the app reads `error.data.code`\n// (`retention_active`, `lock_conflict`, `compliance_extend_only`, ...) and `error.data.details`.\nimport { DevulturApiError } from \"@devultur/core\";\nimport { ConvexError, type Value } from \"convex/values\";\nimport { action } from \"./_generated/server\";\n\n/** `data` of the `ConvexError` a component action throws when the Worker refuses a request. */\nexport interface DevulturErrorData {\n\t/** The Worker's stable code (`retention_active`, `file_too_large`, ...), or `worker_error` when it sent none. */\n\tcode: string;\n\tmessage: string;\n\t/** HTTP status of the Worker's answer. */\n\tstatus: number;\n\t/** The rest of the Worker's error body, e.g. `{ key, mode, until, hold }` on `retention_active`. */\n\tdetails?: Record<string, Value>;\n}\n\nfunction isApiError(error: unknown): error is DevulturApiError {\n\tif (error instanceof DevulturApiError) return true;\n\t// A second copy of `@devultur/core` (bundling) fails `instanceof`; its shape doesn't.\n\treturn (\n\t\terror instanceof Error &&\n\t\terror.name === \"DevulturApiError\" &&\n\t\ttypeof (error as { status?: unknown }).status === \"number\"\n\t);\n}\n\n/** The error to rethrow: a Worker refusal becomes a `ConvexError` with its code; anything else passes through. */\nexport function toComponentError(error: unknown): unknown {\n\tif (!isApiError(error)) return error;\n\tconst data: DevulturErrorData = {\n\t\tcode: error.code ?? \"worker_error\",\n\t\tmessage: error.message,\n\t\tstatus: error.status,\n\t\t// JSON from the Worker: valid Convex values once `undefined` is gone.\n\t\t...(error.details ? { details: JSON.parse(JSON.stringify(error.details)) as Record<string, Value> } : {}),\n\t};\n\treturn new ConvexError(data as unknown as Value);\n}\n\n/** `action` whose handler rethrows Worker refusals as `ConvexError<DevulturErrorData>`. */\nexport const workerAction = ((definition: { handler: (ctx: unknown, args: unknown) => Promise<unknown> }) =>\n\taction({\n\t\t...definition,\n\t\thandler: async (ctx: unknown, args: unknown) => {\n\t\t\ttry {\n\t\t\t\treturn await definition.handler(ctx, args);\n\t\t\t} catch (error) {\n\t\t\t\tthrow toComponentError(error);\n\t\t\t}\n\t\t},\n\t} as never)) as unknown as typeof action;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const DEVULTUR_ERROR_CODES: readonly ["file_too_large", "content_type_not_allowed", "content_type_mismatch", "content_unverified", "unsupported_content_type", "media_type_mismatch", "already_exists", "write_conflict", "upload_not_found", "invalid_upload_key", "invalid_path", "path_required", "invalid_expires_in", "invalid_file_expires_in", "invalid_cache_control", "invalid_limits", "invalid_prefix", "invalid_visibility", "invalid_cursor", "invalid_sha256", "sha256_mismatch", "max_files_reached", "invalid_multipart", "invalid_size", "invalid_part", "invalid_parts", "part_size_mismatch", "part_sha256_required", "invalid_media_metadata", "expired", "invalid_key", "invalid_max_uses", "link_exists", "link_not_found", "link_expired", "link_used", "not_configured", "retention_active", "lock_conflict", "compliance_extend_only", "lock_privilege_required", "lock_record_unreadable", "lock_below_minimum", "invalid_lock", "invalid_hold", "reserved_key", "keys_bucket_missing", "encryption_key_missing", "unauthorized", "session_mismatch", "token_rejected", "reserved_user_id", "invalid_scopes", "user_mismatch", "transcode_not_configured", "transcode_runner_unavailable", "transcode_launch_failed", "original_not_retained", "locale_not_allowed", "captions_provider_rate_limited", "captions_provider_error", "captions_failed", "webhook_secret_missing", "worker_auth_secret_missing", "worker_error", "http_error", "too_large", "unsupported_type", "type_mismatch", "token_unavailable", "capability_unavailable"];
|
|
1
|
+
declare const DEVULTUR_ERROR_CODES: readonly ["file_too_large", "content_type_not_allowed", "content_type_mismatch", "content_unverified", "unsupported_content_type", "media_type_mismatch", "already_exists", "write_conflict", "upload_not_found", "invalid_upload_key", "invalid_path", "path_required", "invalid_expires_in", "invalid_file_expires_in", "invalid_cache_control", "invalid_limits", "invalid_prefix", "invalid_visibility", "invalid_cursor", "invalid_sha256", "sha256_mismatch", "max_files_reached", "invalid_multipart", "invalid_size", "invalid_part", "invalid_parts", "part_size_mismatch", "part_sha256_required", "invalid_media_metadata", "expired", "invalid_key", "invalid_max_uses", "link_exists", "link_not_found", "link_expired", "link_used", "not_configured", "retention_active", "lock_conflict", "compliance_extend_only", "lock_privilege_required", "lock_record_unreadable", "lock_below_minimum", "invalid_lock", "invalid_hold", "reserved_key", "keys_bucket_missing", "encryption_key_missing", "unauthorized", "session_mismatch", "token_rejected", "reserved_user_id", "invalid_scopes", "user_mismatch", "transcode_not_configured", "transcode_runner_unavailable", "transcode_launch_failed", "original_not_retained", "locale_not_allowed", "captions_provider_rate_limited", "captions_provider_error", "captions_failed", "webhook_secret_missing", "worker_auth_secret_missing", "worker_error", "http_error", "too_large", "unsupported_type", "type_mismatch", "token_unavailable", "page_cap", "render_failed", "capability_unavailable"];
|
|
2
2
|
/** A stable error code: match on it, not on `message`. */
|
|
3
3
|
type DevulturErrorCode = (typeof DEVULTUR_ERROR_CODES)[number];
|
|
4
4
|
declare function isDevulturErrorCode(code: unknown): code is DevulturErrorCode;
|
package/dist/index.d.ts
CHANGED
|
@@ -2,9 +2,9 @@ import { ObjectLock, LockView, SetLockOptions, HoldPage, DevulturMedia } from '@
|
|
|
2
2
|
export { CaptionLocale, DevulturConfig, DevulturKind, DevulturMedia, ImageFit, ImageFormat, SecurityLevel, SpeechProvider, StorageProvider, TranscodePreset, TranscodeProvider, TranslationProvider, VideoModuleConfig, Visibility } from '@devultur/core';
|
|
3
3
|
import { FunctionReference, FunctionVisibility, DefaultFunctionArgs, GenericQueryCtx, GenericDataModel, GenericMutationCtx, GenericActionCtx, RegisteredQuery, RegisteredMutation, RegisteredAction, PaginationOptions, PaginationResult } from 'convex/server';
|
|
4
4
|
import { PropertyValidators, Value, ConvexError } from 'convex/values';
|
|
5
|
-
import { D as DevulturComponentConfig, M as MediaRecord } from './types-
|
|
6
|
-
export { P as ProgressRecord } from './types-
|
|
7
|
-
export { a as DEVULTUR_ERROR_CODES, b as DevulturErrorCode, c as DevulturErrorDetails, d as DevulturErrorLabel, D as DevulturErrorLabels, e as describeDevulturError, f as devulturErrorLabels, i as isDevulturErrorCode } from './error-labels-
|
|
5
|
+
import { D as DevulturComponentConfig, M as MediaRecord } from './types-DZxN6Eij.js';
|
|
6
|
+
export { P as ProgressRecord } from './types-DZxN6Eij.js';
|
|
7
|
+
export { a as DEVULTUR_ERROR_CODES, b as DevulturErrorCode, c as DevulturErrorDetails, d as DevulturErrorLabel, D as DevulturErrorLabels, e as describeDevulturError, f as devulturErrorLabels, i as isDevulturErrorCode } from './error-labels-D0Vbp-qA.js';
|
|
8
8
|
export { dv } from './validators.js';
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -290,9 +290,10 @@ type RegisteredFunctions<Visibility extends FunctionVisibility> = {
|
|
|
290
290
|
};
|
|
291
291
|
|
|
292
292
|
type DevulturComponent = ComponentApi;
|
|
293
|
-
type
|
|
294
|
-
type
|
|
295
|
-
type
|
|
293
|
+
type Runners = GenericActionCtx<GenericDataModel>;
|
|
294
|
+
type QueryCtx = Pick<Runners, "runQuery">;
|
|
295
|
+
type MutationCtx = Pick<Runners, "runMutation">;
|
|
296
|
+
type ActionCtx = Pick<Runners, "runAction">;
|
|
296
297
|
type UploadUrlArgs = {
|
|
297
298
|
filename: string;
|
|
298
299
|
contentType: string;
|
|
@@ -421,8 +422,11 @@ type DevulturOperation = {
|
|
|
421
422
|
args: ArgsOf<ExposedFunctions[Name]>;
|
|
422
423
|
};
|
|
423
424
|
}[ExposedFunctionName];
|
|
424
|
-
/**
|
|
425
|
-
|
|
425
|
+
/**
|
|
426
|
+
* The ctx of the guarded function: a query's, a mutation's or an action's (all of them have `auth`). Of any data
|
|
427
|
+
* model, so a guard typed with the app's own ctx (`QueryCtx | MutationCtx | ActionCtx` from `_generated/server`) fits.
|
|
428
|
+
*/
|
|
429
|
+
type DevulturGuardCtx<DataModel extends GenericDataModel = any> = GenericQueryCtx<DataModel> | GenericMutationCtx<DataModel> | GenericActionCtx<DataModel>;
|
|
426
430
|
/**
|
|
427
431
|
* Throws to deny the call. May return what it learned about the caller: a `userId` becomes the subject of the token
|
|
428
432
|
* `issueViewerToken` issues, and the only user the progress functions act for (another `userId` in their arguments is
|
package/dist/index.js
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { A as AttachmentLabels, M as MediaLibraryLabels, a as MediaPickerLabels, P as PreviewLabels } from '../preview-labels-B7HNa7Va.js';
|
|
2
|
+
import { D as DevulturErrorLabels } from '../error-labels-D0Vbp-qA.js';
|
|
3
|
+
import '../types-DZxN6Eij.js';
|
|
4
|
+
import '@devultur/core';
|
|
5
|
+
import 'convex/values';
|
|
6
|
+
import 'convex/server';
|
|
7
|
+
|
|
8
|
+
declare const devulturErrorLabels: DevulturErrorLabels;
|
|
9
|
+
declare const attachmentLabels: AttachmentLabels;
|
|
10
|
+
declare const previewLabels: PreviewLabels;
|
|
11
|
+
declare const mediaLibraryLabels: MediaLibraryLabels;
|
|
12
|
+
declare const mediaPickerLabels: MediaPickerLabels;
|
|
13
|
+
|
|
14
|
+
export { attachmentLabels, devulturErrorLabels, mediaLibraryLabels, mediaPickerLabels, previewLabels };
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import {
|
|
2
|
+
attachmentLabels,
|
|
3
|
+
devulturErrorLabels,
|
|
4
|
+
mediaLibraryLabels,
|
|
5
|
+
mediaPickerLabels,
|
|
6
|
+
previewLabels
|
|
7
|
+
} from "../chunk-JZYKPLI4.js";
|
|
8
|
+
import "../chunk-QBHIZBOQ.js";
|
|
9
|
+
import {
|
|
10
|
+
describeDevulturError,
|
|
11
|
+
labelText
|
|
12
|
+
} from "../chunk-YYOZ3PDH.js";
|
|
13
|
+
|
|
14
|
+
// src/locales/es-formal.ts
|
|
15
|
+
var TRY_AGAIN = "Vuelva a intentarlo.";
|
|
16
|
+
var TRY_AGAIN_LATER = "Vuelva a intentarlo m\xE1s tarde.";
|
|
17
|
+
var devulturErrorLabels2 = {
|
|
18
|
+
...devulturErrorLabels,
|
|
19
|
+
content_unverified: `No se pudo verificar la subida. ${TRY_AGAIN}`,
|
|
20
|
+
write_conflict: `El archivo cambi\xF3 mientras se guardaba. ${TRY_AGAIN}`,
|
|
21
|
+
upload_not_found: "No se encontr\xF3 la subida o ya venci\xF3. Vuelva a empezarla.",
|
|
22
|
+
invalid_cursor: "La p\xE1gina de resultados no es v\xE1lida. Vuelva a cargar la lista.",
|
|
23
|
+
sha256_mismatch: `El archivo se da\xF1\xF3 durante la subida. ${TRY_AGAIN}`,
|
|
24
|
+
max_files_reached: "Alcanz\xF3 el n\xFAmero m\xE1ximo de archivos para esta subida.",
|
|
25
|
+
invalid_part: `Una parte de la subida no es v\xE1lida. ${TRY_AGAIN}`,
|
|
26
|
+
invalid_parts: `La subida est\xE1 incompleta. ${TRY_AGAIN}`,
|
|
27
|
+
part_size_mismatch: `Una parte de la subida tiene un tama\xF1o incorrecto. ${TRY_AGAIN}`,
|
|
28
|
+
invalid_media_metadata: (details) => {
|
|
29
|
+
if (details.field === "tags") return "Use como m\xE1ximo 20 etiquetas, de hasta 50 caracteres cada una.";
|
|
30
|
+
return labelText(devulturErrorLabels.invalid_media_metadata, details);
|
|
31
|
+
},
|
|
32
|
+
lock_conflict: `La protecci\xF3n del archivo cambi\xF3 mientras tanto. ${TRY_AGAIN}`,
|
|
33
|
+
lock_privilege_required: "No tiene permiso para acortar ni quitar la protecci\xF3n de este archivo.",
|
|
34
|
+
encryption_key_missing: "Este archivo ya no se puede leer. Vuelva a subirlo.",
|
|
35
|
+
unauthorized: "No tiene autorizaci\xF3n para hacer esto.",
|
|
36
|
+
session_mismatch: "Su sesi\xF3n cambi\xF3. Vuelva a cargar la p\xE1gina.",
|
|
37
|
+
user_mismatch: "Solo puede ver y cambiar su propio progreso.",
|
|
38
|
+
transcode_runner_unavailable: `El procesamiento de video est\xE1 ocupado en este momento. ${TRY_AGAIN_LATER}`,
|
|
39
|
+
original_not_retained: "El video original ya no est\xE1 disponible, as\xED que no se puede volver a procesar. Vuelva a subirlo.",
|
|
40
|
+
captions_provider_rate_limited: `El servicio de subt\xEDtulos est\xE1 ocupado en este momento. ${TRY_AGAIN_LATER}`,
|
|
41
|
+
token_unavailable: `No se pudo autorizar el acceso a este archivo. ${TRY_AGAIN}`
|
|
42
|
+
};
|
|
43
|
+
var attachmentLabels2 = attachmentLabels;
|
|
44
|
+
var previewLabels2 = {
|
|
45
|
+
...previewLabels,
|
|
46
|
+
error: (code) => code === "page_cap" ? "Descargue el archivo para ver todas las p\xE1ginas." : labelText(devulturErrorLabels2[code])
|
|
47
|
+
};
|
|
48
|
+
var mediaLibraryLabels2 = {
|
|
49
|
+
...mediaLibraryLabels,
|
|
50
|
+
searchPlaceholder: "Busque por t\xEDtulo o nombre de archivo",
|
|
51
|
+
error: (error) => describeDevulturError(error, devulturErrorLabels2) ?? "No se pudieron cargar los archivos."
|
|
52
|
+
};
|
|
53
|
+
var mediaPickerLabels2 = {
|
|
54
|
+
...mediaPickerLabels,
|
|
55
|
+
dropHint: (multiple) => multiple ? "o suelte los archivos aqu\xED" : "o suelte un archivo aqu\xED",
|
|
56
|
+
uploadError: (error) => describeDevulturError(error, devulturErrorLabels2) ?? `La subida fall\xF3. ${TRY_AGAIN}`
|
|
57
|
+
};
|
|
58
|
+
export {
|
|
59
|
+
attachmentLabels2 as attachmentLabels,
|
|
60
|
+
devulturErrorLabels2 as devulturErrorLabels,
|
|
61
|
+
mediaLibraryLabels2 as mediaLibraryLabels,
|
|
62
|
+
mediaPickerLabels2 as mediaPickerLabels,
|
|
63
|
+
previewLabels2 as previewLabels
|
|
64
|
+
};
|
package/dist/locales/es.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { A as AttachmentLabels, M as MediaLibraryLabels, a as MediaPickerLabels } from '../
|
|
2
|
-
import { D as DevulturErrorLabels } from '../error-labels-
|
|
3
|
-
import '../types-
|
|
1
|
+
import { A as AttachmentLabels, M as MediaLibraryLabels, a as MediaPickerLabels, P as PreviewLabels } from '../preview-labels-B7HNa7Va.js';
|
|
2
|
+
import { D as DevulturErrorLabels } from '../error-labels-D0Vbp-qA.js';
|
|
3
|
+
import '../types-DZxN6Eij.js';
|
|
4
4
|
import '@devultur/core';
|
|
5
|
+
import 'convex/values';
|
|
6
|
+
import 'convex/server';
|
|
5
7
|
|
|
6
8
|
declare const devulturErrorLabels: DevulturErrorLabels;
|
|
9
|
+
declare const previewLabels: PreviewLabels;
|
|
7
10
|
declare const attachmentLabels: AttachmentLabels;
|
|
8
11
|
declare const mediaLibraryLabels: MediaLibraryLabels;
|
|
9
12
|
declare const mediaPickerLabels: MediaPickerLabels;
|
|
10
13
|
|
|
11
|
-
export { attachmentLabels, devulturErrorLabels, mediaLibraryLabels, mediaPickerLabels };
|
|
14
|
+
export { attachmentLabels, devulturErrorLabels, mediaLibraryLabels, mediaPickerLabels, previewLabels };
|