@growth-labs/cms 0.4.0 → 0.5.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.
Files changed (59) hide show
  1. package/README.md +30 -3
  2. package/dist/engine/foundry-dispatch.d.ts +5 -1
  3. package/dist/engine/foundry-dispatch.d.ts.map +1 -1
  4. package/dist/engine/foundry-dispatch.js +19 -3
  5. package/dist/engine/foundry-dispatch.js.map +1 -1
  6. package/dist/engine/index.d.ts +1 -1
  7. package/dist/engine/index.d.ts.map +1 -1
  8. package/dist/engine/index.js +1 -1
  9. package/dist/engine/index.js.map +1 -1
  10. package/dist/engine/published-content.d.ts.map +1 -1
  11. package/dist/engine/published-content.js +29 -12
  12. package/dist/engine/published-content.js.map +1 -1
  13. package/dist/engine/publisher.d.ts +4 -0
  14. package/dist/engine/publisher.d.ts.map +1 -1
  15. package/dist/engine/publisher.js +190 -54
  16. package/dist/engine/publisher.js.map +1 -1
  17. package/dist/providers/types.d.ts +1 -0
  18. package/dist/providers/types.d.ts.map +1 -1
  19. package/dist/routes/content.d.ts.map +1 -1
  20. package/dist/routes/content.js +76 -16
  21. package/dist/routes/content.js.map +1 -1
  22. package/dist/routes/context.d.ts +1 -0
  23. package/dist/routes/context.d.ts.map +1 -1
  24. package/dist/routes/context.js.map +1 -1
  25. package/dist/routes/media.d.ts.map +1 -1
  26. package/dist/routes/media.js +53 -31
  27. package/dist/routes/media.js.map +1 -1
  28. package/dist/ui/editor/ContentForm.d.ts.map +1 -1
  29. package/dist/ui/editor/ContentForm.js +65 -10
  30. package/dist/ui/editor/ContentForm.js.map +1 -1
  31. package/dist/ui/editor/content-payload.d.ts +2 -0
  32. package/dist/ui/editor/content-payload.d.ts.map +1 -1
  33. package/dist/ui/editor/content-payload.js +15 -4
  34. package/dist/ui/editor/content-payload.js.map +1 -1
  35. package/dist/ui/editor/editor-media-duration.d.ts +24 -0
  36. package/dist/ui/editor/editor-media-duration.d.ts.map +1 -0
  37. package/dist/ui/editor/editor-media-duration.js +51 -0
  38. package/dist/ui/editor/editor-media-duration.js.map +1 -0
  39. package/dist/ui/screens/MediaScreen.d.ts.map +1 -1
  40. package/dist/ui/screens/MediaScreen.js +8 -1
  41. package/dist/ui/screens/MediaScreen.js.map +1 -1
  42. package/dist/ui/screens/media-upload.d.ts +9 -2
  43. package/dist/ui/screens/media-upload.d.ts.map +1 -1
  44. package/dist/ui/screens/media-upload.js +24 -0
  45. package/dist/ui/screens/media-upload.js.map +1 -1
  46. package/package.json +1 -1
  47. package/src/engine/foundry-dispatch.ts +32 -4
  48. package/src/engine/index.ts +1 -0
  49. package/src/engine/published-content.ts +32 -16
  50. package/src/engine/publisher.ts +297 -97
  51. package/src/providers/types.ts +1 -0
  52. package/src/routes/content.ts +91 -16
  53. package/src/routes/context.ts +1 -0
  54. package/src/routes/media.ts +63 -41
  55. package/src/ui/editor/ContentForm.tsx +121 -4
  56. package/src/ui/editor/content-payload.ts +20 -2
  57. package/src/ui/editor/editor-media-duration.ts +75 -0
  58. package/src/ui/screens/MediaScreen.tsx +13 -2
  59. package/src/ui/screens/media-upload.ts +41 -2
@@ -64,6 +64,7 @@ const initVideoUploadSchema = z.object({
64
64
  fileName: z.string().min(1),
65
65
  contentType: z.string().optional().nullable(),
66
66
  sizeBytes: z.number().int().positive().max(MAX_EDITOR_VIDEO_SOURCE_BYTES),
67
+ durationSeconds: z.number().int().positive(),
67
68
  });
68
69
  const uploadedPartSchema = z.object({
69
70
  partNumber: z.number().int().min(1).max(10_000),
@@ -76,6 +77,7 @@ const completeVideoUploadSchema = z.object({
76
77
  fileName: z.string().min(1),
77
78
  contentType: z.string().optional().nullable(),
78
79
  sizeBytes: z.number().int().positive().max(MAX_EDITOR_VIDEO_SOURCE_BYTES),
80
+ durationSeconds: z.number().int().positive(),
79
81
  parts: z.array(uploadedPartSchema).min(1).max(10_000),
80
82
  });
81
83
  const abortVideoUploadSchema = z.object({
@@ -87,6 +89,7 @@ const initPodcastUploadSchema = z.object({
87
89
  fileName: z.string().min(1),
88
90
  contentType: z.string().optional().nullable(),
89
91
  sizeBytes: z.number().int().positive().max(MAX_EDITOR_AUDIO_SOURCE_BYTES),
92
+ durationSeconds: z.number().int().positive(),
90
93
  });
91
94
  const completePodcastUploadSchema = z.object({
92
95
  slug: z.string().min(1),
@@ -95,6 +98,7 @@ const completePodcastUploadSchema = z.object({
95
98
  fileName: z.string().min(1),
96
99
  contentType: z.string().optional().nullable(),
97
100
  sizeBytes: z.number().int().positive().max(MAX_EDITOR_AUDIO_SOURCE_BYTES),
101
+ durationSeconds: z.number().int().positive(),
98
102
  parts: z.array(uploadedPartSchema).min(1).max(10_000),
99
103
  });
100
104
  const abortPodcastUploadSchema = z.object({
@@ -368,6 +372,7 @@ export function createMediaRoutes(config) {
368
372
  cacheControl: 'public, max-age=31536000, immutable',
369
373
  },
370
374
  customMetadata: {
375
+ durationSeconds: String(parsed.data.durationSeconds),
371
376
  originalFilename: parsed.data.fileName,
372
377
  sizeBytes: String(parsed.data.sizeBytes),
373
378
  source: 'cms',
@@ -431,6 +436,9 @@ export function createMediaRoutes(config) {
431
436
  if (typeof bucket.resumeMultipartUpload !== 'function') {
432
437
  return json({ error: 'Missing configuration' }, 500);
433
438
  }
439
+ if (typeof bucket.head !== 'function') {
440
+ return json({ error: 'R2 metadata verification is unavailable' }, 500);
441
+ }
434
442
  const parsed = completePodcastUploadSchema.safeParse(await readJson(ctx));
435
443
  if (!parsed.success)
436
444
  return json({ error: 'Invalid podcast upload completion request' }, 400);
@@ -463,20 +471,21 @@ export function createMediaRoutes(config) {
463
471
  const parts = [...parsed.data.parts].sort((a, b) => a.partNumber - b.partNumber);
464
472
  const upload = bucket.resumeMultipartUpload(parsed.data.key, parsed.data.uploadId);
465
473
  await upload.complete(parts);
466
- let sizeVerification = 'unsupported';
467
- if (typeof bucket.head === 'function') {
468
- const object = await bucket.head(parsed.data.key);
469
- if (!object ||
470
- object.size !== parsed.data.sizeBytes ||
471
- object.size > MAX_EDITOR_AUDIO_SOURCE_BYTES) {
472
- await deletePodcastAudioAsset(ctx, bucket, parsed.data.key);
473
- return json({
474
- error: 'Uploaded podcast audio size did not match the expected size',
475
- expectedSizeBytes: parsed.data.sizeBytes,
476
- actualSizeBytes: object?.size ?? null,
477
- }, 400);
478
- }
479
- sizeVerification = 'verified';
474
+ const object = await bucket.head(parsed.data.key);
475
+ if (!object ||
476
+ object.size !== parsed.data.sizeBytes ||
477
+ object.customMetadata?.sizeBytes !== String(parsed.data.sizeBytes) ||
478
+ object.size > MAX_EDITOR_AUDIO_SOURCE_BYTES) {
479
+ await deletePodcastAudioAsset(ctx, bucket, parsed.data.key);
480
+ return json({
481
+ error: 'Uploaded podcast audio size did not match the expected size',
482
+ expectedSizeBytes: parsed.data.sizeBytes,
483
+ actualSizeBytes: object?.size ?? null,
484
+ }, 400);
485
+ }
486
+ if (object.customMetadata?.durationSeconds !== String(parsed.data.durationSeconds)) {
487
+ await deletePodcastAudioAsset(ctx, bucket, parsed.data.key);
488
+ return json({ error: 'Uploaded podcast duration did not match the multipart upload' }, 400);
480
489
  }
481
490
  try {
482
491
  await insertMediaAsset(ctx.db, {
@@ -493,6 +502,7 @@ export function createMediaRoutes(config) {
493
502
  height: null,
494
503
  variantsJson: JSON.stringify({
495
504
  contentType,
505
+ durationSeconds: parsed.data.durationSeconds,
496
506
  sizeBytes: parsed.data.sizeBytes,
497
507
  slug: slugify(parsed.data.slug) || 'podcast',
498
508
  }),
@@ -510,8 +520,9 @@ export function createMediaRoutes(config) {
510
520
  key: parsed.data.key,
511
521
  publicUrl,
512
522
  url: publicUrl,
513
- sizeVerification,
523
+ sizeVerification: 'verified',
514
524
  sizeBytes: parsed.data.sizeBytes,
525
+ durationSeconds: parsed.data.durationSeconds,
515
526
  });
516
527
  },
517
528
  async abortPodcastUpload(ctx) {
@@ -566,6 +577,7 @@ export function createMediaRoutes(config) {
566
577
  const upload = await bucket.createMultipartUpload(key, {
567
578
  httpMetadata: { contentType, cacheControl: 'public, max-age=3600' },
568
579
  customMetadata: {
580
+ durationSeconds: String(parsed.data.durationSeconds),
569
581
  originalFilename: parsed.data.fileName,
570
582
  sizeBytes: String(parsed.data.sizeBytes),
571
583
  source: 'cms',
@@ -630,6 +642,9 @@ export function createMediaRoutes(config) {
630
642
  if (typeof bucket.resumeMultipartUpload !== 'function') {
631
643
  return json({ error: 'Missing configuration' }, 500);
632
644
  }
645
+ if (typeof bucket.head !== 'function') {
646
+ return json({ error: 'R2 metadata verification is unavailable' }, 500);
647
+ }
633
648
  const parsed = completeVideoUploadSchema.safeParse(await readJson(ctx));
634
649
  if (!parsed.success)
635
650
  return json({ error: 'Invalid video upload completion request' }, 400);
@@ -671,20 +686,21 @@ export function createMediaRoutes(config) {
671
686
  objectKey: parsed.data.key,
672
687
  publicDomain: domain,
673
688
  });
674
- let sizeVerification = 'unsupported';
675
- if (typeof bucket.head === 'function') {
676
- const object = await bucket.head(parsed.data.key);
677
- if (!object ||
678
- object.size !== parsed.data.sizeBytes ||
679
- object.size > MAX_EDITOR_VIDEO_SOURCE_BYTES) {
680
- await deleteStagedVideoSource(ctx.db, bucket, sourceUrl, domain);
681
- return json({
682
- error: 'Uploaded video source size did not match the expected size',
683
- expectedSizeBytes: parsed.data.sizeBytes,
684
- actualSizeBytes: object?.size ?? null,
685
- }, 400);
686
- }
687
- sizeVerification = 'verified';
689
+ const object = await bucket.head(parsed.data.key);
690
+ if (!object ||
691
+ object.size !== parsed.data.sizeBytes ||
692
+ object.customMetadata?.sizeBytes !== String(parsed.data.sizeBytes) ||
693
+ object.size > MAX_EDITOR_VIDEO_SOURCE_BYTES) {
694
+ await deleteStagedVideoSource(ctx.db, bucket, sourceUrl, domain);
695
+ return json({
696
+ error: 'Uploaded video source size did not match the expected size',
697
+ expectedSizeBytes: parsed.data.sizeBytes,
698
+ actualSizeBytes: object?.size ?? null,
699
+ }, 400);
700
+ }
701
+ if (object.customMetadata?.durationSeconds !== String(parsed.data.durationSeconds)) {
702
+ await deleteStagedVideoSource(ctx.db, bucket, sourceUrl, domain);
703
+ return json({ error: 'Uploaded video duration did not match the multipart upload' }, 400);
688
704
  }
689
705
  try {
690
706
  await insertMediaAsset(ctx.db, {
@@ -699,7 +715,12 @@ export function createMediaRoutes(config) {
699
715
  url: sourceUrl,
700
716
  width: null,
701
717
  height: null,
702
- variantsJson: JSON.stringify({ contentType, sizeBytes: parsed.data.sizeBytes, videoId }),
718
+ variantsJson: JSON.stringify({
719
+ contentType,
720
+ durationSeconds: parsed.data.durationSeconds,
721
+ sizeBytes: parsed.data.sizeBytes,
722
+ videoId,
723
+ }),
703
724
  r2Binding: mediaR2Binding,
704
725
  });
705
726
  }
@@ -716,9 +737,10 @@ export function createMediaRoutes(config) {
716
737
  processingStatus: 'processing',
717
738
  sourceUrl,
718
739
  sourceKind: 'http_url',
719
- sizeVerification,
740
+ sizeVerification: 'verified',
720
741
  videoId,
721
742
  sizeBytes: parsed.data.sizeBytes,
743
+ durationSeconds: parsed.data.durationSeconds,
722
744
  });
723
745
  },
724
746
  async abortVideoUpload(ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/routes/media.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/routes/media.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContentForm.d.ts","sourceRoot":"","sources":["../../../src/ui/editor/ContentForm.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAevE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAM9C,MAAM,WAAW,gBAAgB;IAChC,oDAAoD;IACpD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,oEAAoE;IACpE,WAAW,EAAE,WAAW,CAAA;IACxB,iFAAiF;IACjF,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,oFAAoF;IACpF,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAA;IACpD,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uFAAuF;IACvF,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAA;IAChD,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAA;CACrD;AAED,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,MAAM,WAAW,mBAAmB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,WAAW,CAAA;IACjB,MAAM,EAAE,aAAa,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AA8HD,wBAAgB,WAAW,CAAC,EAC3B,KAAK,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAe,EACf,cAAc,EACd,iBAAiB,GACjB,EAAE,gBAAgB,+BA0oBlB;AA+kBD,OAAO,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"ContentForm.d.ts","sourceRoot":"","sources":["../../../src/ui/editor/ContentForm.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAiBvE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAM9C,MAAM,WAAW,gBAAgB;IAChC,oDAAoD;IACpD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,oEAAoE;IACpE,WAAW,EAAE,WAAW,CAAA;IACxB,iFAAiF;IACjF,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,oFAAoF;IACpF,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAA;IACpD,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uFAAuF;IACvF,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAA;IAChD,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAA;CACrD;AAED,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,MAAM,WAAW,mBAAmB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,WAAW,CAAA;IACjB,MAAM,EAAE,aAAa,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAiID,wBAAgB,WAAW,CAAC,EAC3B,KAAK,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAe,EACf,cAAc,EACd,iBAAiB,GACjB,EAAE,gBAAgB,+BAisBlB;AAwoBD,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -18,13 +18,14 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
18
18
  // on the first save and switches to update mode.
19
19
  //
20
20
  // Compile-gated: all Tiptap/React usage verified by `pnpm run build` (tsc).
21
- import { useCallback, useEffect, useRef, useState } from 'react';
21
+ import { useCallback, useEffect, useId, useRef, useState } from 'react';
22
22
  import { countWords, estimateReadTime } from '../../engine/publisher.js';
23
23
  import { Icon } from '../icons.js';
24
24
  import { uploadMediaAsset } from '../screens/media-upload.js';
25
25
  import { AiAssistPanel } from './AiAssistPanel.js';
26
26
  import { AUTOSAVE_DEBOUNCE_MS, shouldSnapshot } from './autosave.js';
27
- import { buildContentCreatePayload, buildContentUpdatePayload, canCreateContentDraft, foundryDispatchSourceForDraft, slugifyTitle, } from './content-payload.js';
27
+ import { buildContentCreatePayload, buildContentUpdatePayload, canCreateContentDraft, foundryDispatchSourceForDraft, normalizeMediaDurationSeconds, slugifyTitle, } from './content-payload.js';
28
+ import { measureEditorMediaDurationSeconds } from './editor-media-duration.js';
28
29
  import { uploadEditorImage } from './editor-media-upload.js';
29
30
  import { Rte } from './Rte.js';
30
31
  import { docToMarkdown } from './serialize.js';
@@ -54,6 +55,7 @@ function createEmptyFormState(docId) {
54
55
  thumbnailUploadStatus: 'idle',
55
56
  thumbnailUploadError: null,
56
57
  audioUrl: '',
58
+ durationSeconds: null,
57
59
  audioUploadStatus: 'idle',
58
60
  audioUploadError: null,
59
61
  videoUploadStatus: 'idle',
@@ -125,7 +127,16 @@ export function ContentForm({ docId, contentType, onDocCreated, onTitleChange, o
125
127
  const source = foundryDispatchSourceForDraft(contentType, draft);
126
128
  if (!source)
127
129
  return;
128
- const queueKey = `${contentType}:${id}:${source}`;
130
+ const durationSeconds = normalizeMediaDurationSeconds(draft.durationSeconds);
131
+ if (durationSeconds === null) {
132
+ setForm((prev) => ({
133
+ ...prev,
134
+ videoPipelineStatus: 'idle',
135
+ videoPipelineError: 'Enter the authoritative media duration in whole seconds before queueing.',
136
+ }));
137
+ return;
138
+ }
139
+ const queueKey = `${contentType}:${id}:${source}:${durationSeconds}`;
129
140
  if (queuedVideoSources.current.has(queueKey))
130
141
  return;
131
142
  setForm((prev) => ({
@@ -161,9 +172,13 @@ export function ContentForm({ docId, contentType, onDocCreated, onTitleChange, o
161
172
  const draft = currentForm;
162
173
  if (id === null) {
163
174
  if (!canCreateContentDraft(contentType, draft)) {
175
+ const mediaSource = foundryDispatchSourceForDraft(contentType, draft);
176
+ const missingMediaDuration = mediaSource && normalizeMediaDurationSeconds(draft.durationSeconds) === null;
164
177
  setForm((prev) => ({
165
178
  ...prev,
166
- saveError: 'Add the required title and content before saving.',
179
+ saveError: missingMediaDuration
180
+ ? 'Enter the authoritative media duration in whole seconds before saving.'
181
+ : 'Add the required title and content before saving.',
167
182
  }));
168
183
  return;
169
184
  }
@@ -310,6 +325,7 @@ export function ContentForm({ docId, contentType, onDocCreated, onTitleChange, o
310
325
  const next = {
311
326
  ...latestForm.current,
312
327
  videoUrl: value,
328
+ durationSeconds: null,
313
329
  videoSourceKind: null,
314
330
  videoId: null,
315
331
  videoPipelineStatus: 'idle',
@@ -320,7 +336,26 @@ export function ContentForm({ docId, contentType, onDocCreated, onTitleChange, o
320
336
  scheduleAutosave(next);
321
337
  }
322
338
  function handleAudioUrlChange(value) {
323
- const next = { ...latestForm.current, audioUrl: value };
339
+ const next = {
340
+ ...latestForm.current,
341
+ audioUrl: value,
342
+ durationSeconds: null,
343
+ videoPipelineStatus: 'idle',
344
+ videoPipelineError: null,
345
+ };
346
+ setForm(next);
347
+ publishDraft(next);
348
+ scheduleAutosave(next);
349
+ }
350
+ function handleDurationSecondsChange(value) {
351
+ const parsed = value.trim() === '' ? null : Number(value);
352
+ const durationSeconds = typeof parsed === 'number' && Number.isInteger(parsed) && parsed > 0 ? parsed : null;
353
+ const next = {
354
+ ...latestForm.current,
355
+ durationSeconds,
356
+ videoPipelineStatus: 'idle',
357
+ videoPipelineError: null,
358
+ };
324
359
  setForm(next);
325
360
  publishDraft(next);
326
361
  scheduleAutosave(next);
@@ -357,18 +392,25 @@ export function ContentForm({ docId, contentType, onDocCreated, onTitleChange, o
357
392
  videoPipelineError: null,
358
393
  }));
359
394
  try {
395
+ const measuredDurationSeconds = await measureEditorMediaDurationSeconds(file, 'video');
360
396
  const uploaded = await uploadMediaAsset({
361
397
  kind: 'video',
362
398
  file,
363
399
  slug: baseSlug || undefined,
400
+ durationSeconds: measuredDurationSeconds,
364
401
  });
365
402
  if (!uploaded.url)
366
403
  throw new Error('Video upload did not return a source URL');
404
+ const durationSeconds = normalizeMediaDurationSeconds(uploaded.durationSeconds);
405
+ if (durationSeconds === null) {
406
+ throw new Error('Video upload did not return its verified duration');
407
+ }
367
408
  const next = {
368
409
  ...latestForm.current,
369
410
  videoUrl: uploaded.url,
370
411
  videoSourceKind: uploaded.sourceKind ?? 'http_url',
371
412
  videoId: uploaded.videoId ?? baseSlug,
413
+ durationSeconds,
372
414
  videoUploadStatus: 'staged',
373
415
  videoUploadError: null,
374
416
  videoPipelineStatus: 'idle',
@@ -459,14 +501,21 @@ export function ContentForm({ docId, contentType, onDocCreated, onTitleChange, o
459
501
  audioUploadError: null,
460
502
  }));
461
503
  try {
504
+ const measuredDurationSeconds = await measureEditorMediaDurationSeconds(file, 'audio');
462
505
  const uploaded = await uploadMediaAsset({
463
506
  kind: 'podcast',
464
507
  file,
465
508
  slug: baseSlug || undefined,
509
+ durationSeconds: measuredDurationSeconds,
466
510
  });
511
+ const durationSeconds = normalizeMediaDurationSeconds(uploaded.durationSeconds);
512
+ if (durationSeconds === null) {
513
+ throw new Error('Podcast upload did not return its verified duration');
514
+ }
467
515
  const next = {
468
516
  ...latestForm.current,
469
517
  audioUrl: uploaded.id,
518
+ durationSeconds,
470
519
  audioUploadStatus: 'staged',
471
520
  audioUploadError: null,
472
521
  };
@@ -507,7 +556,7 @@ export function ContentForm({ docId, contentType, onDocCreated, onTitleChange, o
507
556
  borderColor: form.aiOpen ? 'var(--accent)' : 'var(--field-border)',
508
557
  color: form.aiOpen ? 'var(--accent)' : 'var(--ink)',
509
558
  opacity: form.savedId === null ? 0.45 : 1,
510
- }, "aria-pressed": form.aiOpen, "aria-label": "AI assist", children: [_jsx(Icon, { name: "sparkle", size: 15 }), "AI assist"] })] }), form.aiOpen && form.savedId !== null && _jsx(AiAssistPanel, { docId: form.savedId }), _jsx("div", { style: fieldGroup, children: _jsx("input", { type: "text", placeholder: "Title", value: form.title, onChange: (e) => handleTitleChange(e.currentTarget.value), style: titleInput, "aria-label": "Content title" }) }), _jsx("div", { style: fieldGroup, children: _jsx("textarea", { placeholder: "Add a short summary or subheadline (optional)\u2026", value: form.dek, onChange: (e) => handleDekChange(e.currentTarget.value), rows: 2, style: dekInput, "aria-label": "Short summary or subheadline" }) }), _jsx("hr", { className: "masthead-rule", style: { margin: '6px 0 20px' } }), _jsx("div", { style: fieldGroup, children: contentType === 'video' ? (_jsxs("div", { style: mediaBlockStack, children: [_jsx(VideoBlock, { videoUrl: form.videoUrl, onVideoUrlChange: handleVideoUrlChange, onVideoFileUpload: handleVideoFileUpload, uploadStatus: form.videoUploadStatus, uploadError: form.videoUploadError, pipelineStatus: form.videoPipelineStatus, pipelineError: form.videoPipelineError }), _jsx(ImageAssetBlock, { title: "Video Poster Image", description: "Shown on the video page, video index, social previews, and locked-player preview.", uploadLabel: "Upload Poster Image", idLabel: "Poster Image ID", idHelp: "Use this only when the poster image already exists in R2.", emptyText: "No poster image attached", successText: "Poster image uploaded.", imageId: form.thumbnailImageId, previewUrl: form.thumbnailImageUrl, uploadStatus: form.thumbnailUploadStatus, uploadError: form.thumbnailUploadError, onImageIdChange: handleThumbnailImageIdChange, onFileUpload: handleThumbnailImageUpload })] })) : contentType === 'podcast' ? (_jsxs("div", { style: mediaBlockStack, children: [_jsx(AudioBlock, { audioUrl: form.audioUrl, onAudioUrlChange: handleAudioUrlChange, onAudioFileUpload: handleAudioFileUpload, uploadStatus: form.audioUploadStatus, uploadError: form.audioUploadError, pipelineStatus: form.videoPipelineStatus, pipelineError: form.videoPipelineError }), _jsx(ImageAssetBlock, { title: "Podcast Hero Image", description: "Upload the episode artwork or hero image here. This fills the Hero Image ID automatically.", uploadLabel: "Upload Podcast Image", idLabel: "Hero Image ID", idHelp: "Use this only when the podcast image already exists in R2.", emptyText: "No podcast image attached", successText: "Podcast image uploaded.", imageId: form.heroImageId, previewUrl: form.heroImageUrl, uploadStatus: form.heroUploadStatus, uploadError: form.heroUploadError, onImageIdChange: handleHeroImageIdChange, onFileUpload: handleHeroImageUpload })] })) : (
559
+ }, "aria-pressed": form.aiOpen, "aria-label": "AI assist", children: [_jsx(Icon, { name: "sparkle", size: 15 }), "AI assist"] })] }), form.aiOpen && form.savedId !== null && _jsx(AiAssistPanel, { docId: form.savedId }), _jsx("div", { style: fieldGroup, children: _jsx("input", { type: "text", placeholder: "Title", value: form.title, onChange: (e) => handleTitleChange(e.currentTarget.value), style: titleInput, "aria-label": "Content title" }) }), _jsx("div", { style: fieldGroup, children: _jsx("textarea", { placeholder: "Add a short summary or subheadline (optional)\u2026", value: form.dek, onChange: (e) => handleDekChange(e.currentTarget.value), rows: 2, style: dekInput, "aria-label": "Short summary or subheadline" }) }), _jsx("hr", { className: "masthead-rule", style: { margin: '6px 0 20px' } }), _jsx("div", { style: fieldGroup, children: contentType === 'video' ? (_jsxs("div", { style: mediaBlockStack, children: [_jsx(VideoBlock, { videoUrl: form.videoUrl, durationSeconds: form.durationSeconds, onVideoUrlChange: handleVideoUrlChange, onDurationSecondsChange: handleDurationSecondsChange, onVideoFileUpload: handleVideoFileUpload, uploadStatus: form.videoUploadStatus, uploadError: form.videoUploadError, pipelineStatus: form.videoPipelineStatus, pipelineError: form.videoPipelineError }), _jsx(ImageAssetBlock, { title: "Video Poster Image", description: "Shown on the video page, video index, social previews, and locked-player preview.", uploadLabel: "Upload Poster Image", idLabel: "Poster Image ID", idHelp: "Use this only when the poster image already exists in R2.", emptyText: "No poster image attached", successText: "Poster image uploaded.", imageId: form.thumbnailImageId, previewUrl: form.thumbnailImageUrl, uploadStatus: form.thumbnailUploadStatus, uploadError: form.thumbnailUploadError, onImageIdChange: handleThumbnailImageIdChange, onFileUpload: handleThumbnailImageUpload })] })) : contentType === 'podcast' ? (_jsxs("div", { style: mediaBlockStack, children: [_jsx(AudioBlock, { audioUrl: form.audioUrl, durationSeconds: form.durationSeconds, onAudioUrlChange: handleAudioUrlChange, onDurationSecondsChange: handleDurationSecondsChange, onAudioFileUpload: handleAudioFileUpload, uploadStatus: form.audioUploadStatus, uploadError: form.audioUploadError, pipelineStatus: form.videoPipelineStatus, pipelineError: form.videoPipelineError }), _jsx(ImageAssetBlock, { title: "Podcast Hero Image", description: "Upload the episode artwork or hero image here. This fills the Hero Image ID automatically.", uploadLabel: "Upload Podcast Image", idLabel: "Hero Image ID", idHelp: "Use this only when the podcast image already exists in R2.", emptyText: "No podcast image attached", successText: "Podcast image uploaded.", imageId: form.heroImageId, previewUrl: form.heroImageUrl, uploadStatus: form.heroUploadStatus, uploadError: form.heroUploadError, onImageIdChange: handleHeroImageIdChange, onFileUpload: handleHeroImageUpload })] })) : (
511
560
  /* article | newsletter | page */
512
561
  _jsxs(_Fragment, { children: [contentType === 'article' && (_jsx("div", { style: { marginBottom: 14 }, children: _jsx(ImageAssetBlock, { title: "Article Hero Image", description: "Upload the downloaded hero image here. This fills the Hero Image ID automatically.", uploadLabel: "Upload Hero Image", idLabel: "Hero Image ID", idHelp: "Use this only when the hero image already exists in R2.", emptyText: "No hero image attached", successText: "Hero image uploaded.", imageId: form.heroImageId, previewUrl: form.heroImageUrl, uploadStatus: form.heroUploadStatus, uploadError: form.heroUploadError, onImageIdChange: handleHeroImageIdChange, onFileUpload: handleHeroImageUpload }) })), _jsx(Rte, { value: form.body, onChange: handleBodyChange, onImageUpload: handleEditorImageUpload })] })) }), (contentType === 'article' || contentType === 'newsletter' || contentType === 'page') && (_jsxs("div", { style: footer, children: [_jsx(Icon, { name: "edit", size: 12, style: { color: 'var(--ink-faint)' } }), _jsxs("span", { children: [wordCount.toLocaleString(), " ", wordCount === 1 ? 'word' : 'words'] }), _jsx("span", { style: { color: 'var(--ink-faint)' }, children: "\u00B7" }), _jsxs("span", { children: [readTime, " min read"] })] }))] }));
513
562
  }
@@ -528,7 +577,7 @@ function ImageAssetBlock({ title, description, uploadLabel, idLabel, idHelp, emp
528
577
  void onFileUpload(file);
529
578
  }, style: hiddenFileInput, "aria-label": uploadLabel })] }) }), _jsx("label", { htmlFor: inputId, style: assetLabel, children: idLabel }), _jsx("input", { id: inputId, type: "text", placeholder: "images/articles/example.jpg", value: imageId, onChange: (e) => onImageIdChange(e.currentTarget.value), style: urlInput, "aria-label": idLabel }), _jsx("div", { style: assetHelp, children: idHelp }), statusText && _jsx("div", { style: videoStatusText, children: statusText }), uploadError && _jsx("div", { style: videoErrorText, children: uploadError })] }));
530
579
  }
531
- function VideoBlock({ videoUrl, onVideoUrlChange, onVideoFileUpload, uploadStatus, uploadError, pipelineStatus, pipelineError, }) {
580
+ function VideoBlock({ videoUrl, durationSeconds, onVideoUrlChange, onDurationSecondsChange, onVideoFileUpload, uploadStatus, uploadError, pipelineStatus, pipelineError, }) {
532
581
  const statusText = pipelineStatus === 'queued'
533
582
  ? 'Queued. Most videos finish in 20-45 minutes; long files can take up to 90.'
534
583
  : pipelineStatus === 'queueing'
@@ -546,14 +595,14 @@ function VideoBlock({ videoUrl, onVideoUrlChange, onVideoFileUpload, uploadStatu
546
595
  alignItems: 'center',
547
596
  justifyContent: 'center',
548
597
  marginBottom: 12,
549
- }, children: videoUrl ? (_jsx("span", { style: { fontSize: 11, color: 'var(--ink-muted)', wordBreak: 'break-all' }, children: videoUrl })) : (_jsx("span", { style: { fontSize: 12, color: 'var(--ink-faint)', fontStyle: 'italic' }, children: "No video attached" })) }), _jsx("input", { type: "url", placeholder: "Video source URL or R2 key\u2026", value: videoUrl, onChange: (e) => onVideoUrlChange(e.currentTarget.value), style: urlInput, "aria-label": "Video source URL" }), _jsx("div", { style: videoActions, children: _jsxs("label", { className: "btn sm", style: uploadButton, children: [_jsx(Icon, { name: "upload", size: 14 }), uploadStatus === 'uploading' ? 'Uploading…' : 'Upload source', _jsx("input", { type: "file", accept: "video/*,.mp4,.mov,.m4v,.webm", disabled: uploadStatus === 'uploading', onChange: (event) => {
598
+ }, children: videoUrl ? (_jsx("span", { style: { fontSize: 11, color: 'var(--ink-muted)', wordBreak: 'break-all' }, children: videoUrl })) : (_jsx("span", { style: { fontSize: 12, color: 'var(--ink-faint)', fontStyle: 'italic' }, children: "No video attached" })) }), _jsx("input", { type: "url", placeholder: "Video source URL or R2 key\u2026", value: videoUrl, onChange: (e) => onVideoUrlChange(e.currentTarget.value), style: urlInput, "aria-label": "Video source URL" }), _jsx(MediaDurationField, { durationSeconds: durationSeconds, onChange: onDurationSecondsChange, hasSource: videoUrl.trim().length > 0 }), _jsx("div", { style: videoActions, children: _jsxs("label", { className: "btn sm", style: uploadButton, children: [_jsx(Icon, { name: "upload", size: 14 }), uploadStatus === 'uploading' ? 'Uploading…' : 'Upload source', _jsx("input", { type: "file", accept: "video/*,.mp4,.mov,.m4v,.webm", disabled: uploadStatus === 'uploading', onChange: (event) => {
550
599
  const file = event.currentTarget.files?.[0];
551
600
  event.currentTarget.value = '';
552
601
  if (file)
553
602
  void onVideoFileUpload(file);
554
603
  }, style: hiddenFileInput, "aria-label": "Upload video source" })] }) }), statusText && _jsx("div", { style: videoStatusText, children: statusText }), (uploadError || pipelineError) && (_jsx("div", { style: videoErrorText, children: uploadError || pipelineError })), _jsx("div", { style: { marginTop: 6, fontSize: 11, color: 'var(--ink-faint)' }, children: "Upload a source file or paste a public source URL; saving queues the Foundry pipeline." })] }));
555
604
  }
556
- function AudioBlock({ audioUrl, onAudioUrlChange, onAudioFileUpload, uploadStatus, uploadError, pipelineStatus, pipelineError, }) {
605
+ function AudioBlock({ audioUrl, durationSeconds, onAudioUrlChange, onDurationSecondsChange, onAudioFileUpload, uploadStatus, uploadError, pipelineStatus, pipelineError, }) {
557
606
  const statusText = pipelineStatus === 'queued'
558
607
  ? 'Queued for transcription. Most episodes finish in 10-30 minutes; long files can take up to 60.'
559
608
  : pipelineStatus === 'queueing'
@@ -576,7 +625,11 @@ function AudioBlock({ audioUrl, onAudioUrlChange, onAudioFileUpload, uploadStatu
576
625
  event.currentTarget.value = '';
577
626
  if (file)
578
627
  void onAudioFileUpload(file);
579
- }, style: hiddenFileInput, "aria-label": "Upload podcast audio file" })] }) }), _jsx("label", { htmlFor: "podcast-audio-r2-key", style: assetLabel, children: "Audio R2 Key (filled after upload)" }), _jsx("input", { id: "podcast-audio-r2-key", type: "text", placeholder: "audio/example-episode.mp3", value: audioUrl, onChange: (e) => onAudioUrlChange(e.currentTarget.value), style: urlInput, "aria-label": "Audio R2 Key" }), _jsx("div", { style: assetHelp, children: "Only paste a key manually if the audio already exists in R2." }), statusText && _jsx("div", { style: videoStatusText, children: statusText }), (uploadError || pipelineError) && (_jsx("div", { style: videoErrorText, children: uploadError || pipelineError }))] }));
628
+ }, style: hiddenFileInput, "aria-label": "Upload podcast audio file" })] }) }), _jsx("label", { htmlFor: "podcast-audio-r2-key", style: assetLabel, children: "Audio R2 Key (filled after upload)" }), _jsx("input", { id: "podcast-audio-r2-key", type: "text", placeholder: "audio/example-episode.mp3", value: audioUrl, onChange: (e) => onAudioUrlChange(e.currentTarget.value), style: urlInput, "aria-label": "Audio R2 Key" }), _jsx(MediaDurationField, { durationSeconds: durationSeconds, onChange: onDurationSecondsChange, hasSource: audioUrl.trim().length > 0 }), _jsx("div", { style: assetHelp, children: "Only paste a key manually if the audio already exists in R2." }), statusText && _jsx("div", { style: videoStatusText, children: statusText }), (uploadError || pipelineError) && (_jsx("div", { style: videoErrorText, children: uploadError || pipelineError }))] }));
629
+ }
630
+ function MediaDurationField({ durationSeconds, onChange, hasSource, }) {
631
+ const inputId = useId();
632
+ return (_jsxs(_Fragment, { children: [_jsx("label", { htmlFor: inputId, style: assetLabel, children: "Media duration (seconds)" }), _jsx("input", { id: inputId, type: "number", min: 1, step: 1, value: durationSeconds ?? '', onChange: (event) => onChange(event.currentTarget.value), style: urlInput, "aria-label": "Media duration in seconds" }), _jsx("div", { style: assetHelp, children: "Uploads are measured automatically and rounded up. For a pasted source URL or R2 key, enter its authoritative whole-second duration." }), hasSource && durationSeconds === null && (_jsx("div", { style: videoErrorText, children: "Duration is required before this source can be queued." }))] }));
580
633
  }
581
634
  const PODCAST_UPLOAD_HELP = 'Large audio files can take a few minutes to upload; keep this tab open until the Audio R2 Key appears.';
582
635
  const PODCAST_PIPELINE_HELP = 'After upload, save or publish sends the episode through the pipeline for transcription and episode prep.';
@@ -610,6 +663,7 @@ function contentResponseToFormState(data, contentType, docId) {
610
663
  next.videoUrl = toStringValue(content.processing_source_url);
611
664
  next.videoSourceKind = toNullableString(content.processing_source_kind);
612
665
  next.videoId = toNullableString(content.video_id);
666
+ next.durationSeconds = normalizeMediaDurationSeconds(content.duration_seconds);
613
667
  next.thumbnailImageId = thumbnailImageId;
614
668
  next.thumbnailImageUrl =
615
669
  thumbnailImageUrl || (thumbnailImageId ? mediaUrlFromId(thumbnailImageId) : null);
@@ -617,6 +671,7 @@ function contentResponseToFormState(data, contentType, docId) {
617
671
  if (contentType === 'podcast') {
618
672
  next.body = toStringValue(content.transcript);
619
673
  next.audioUrl = toStringValue(content.audio_r2_key);
674
+ next.durationSeconds = normalizeMediaDurationSeconds(content.duration_seconds);
620
675
  }
621
676
  return next;
622
677
  }