@@ -16,16 +16,6 @@ When implementing new features:
16163. Understand the API surface of your codebase
1717
1818```typescript
19- ## apps/web/src/components/editor/timeline
20-
21- audio-waveform.tsx
22- export function AudioWaveform({
23- audioUrl,
24- audioBuffer,
25- height = 32,
26- className = "",
27- }: AudioWaveformProps)
28-
2919## apps/web/src/constants
3020
3121editor-constants.ts
@@ -464,46 +454,46 @@ rate-limit.ts
464454scenes.ts
465455 export function getMainScene({ scenes }: { scenes: TScene[] }): TScene | null
466456 export function ensureMainScene({ scenes }: { scenes: TScene[] }): TScene[]
467- export function buildDefaultScene({
468- name,
469- isMain,
470- }: {
471- name: string;
472- isMain: boolean;
457+ export function buildDefaultScene({
458+ name,
459+ isMain,
460+ }: {
461+ name: string;
462+ isMain: boolean;
473463 }): TScene
474- export function canDeleteScene({ scene }: { scene: TScene }): {
475- canDelete: boolean;
476- reason?: string;
477- }
478- export function getFallbackSceneAfterDelete({
479- scenes,
480- deletedSceneId,
481- currentSceneId,
482- }: {
483- scenes: TScene[];
484- deletedSceneId: string;
485- currentSceneId: string | null;
464+ export function canDeleteScene({ scene }: { scene: TScene }): {
465+ canDelete: boolean;
466+ reason?: string;
467+ }
468+ export function getFallbackSceneAfterDelete({
469+ scenes,
470+ deletedSceneId,
471+ currentSceneId,
472+ }: {
473+ scenes: TScene[];
474+ deletedSceneId: string;
475+ currentSceneId: string | null;
486476 }): TScene | null
487- export function findCurrentScene({
488- scenes,
489- currentSceneId,
490- }: {
491- scenes: TScene[];
492- currentSceneId: string;
477+ export function findCurrentScene({
478+ scenes,
479+ currentSceneId,
480+ }: {
481+ scenes: TScene[];
482+ currentSceneId: string;
493483 }): TScene | null
494- export function getProjectDurationFromScenes({
495- scenes,
496- }: {
497- scenes: TScene[];
484+ export function getProjectDurationFromScenes({
485+ scenes,
486+ }: {
487+ scenes: TScene[];
498488 }): number
499- export function updateSceneInArray({
500- scenes,
501- sceneId,
502- updates,
503- }: {
504- scenes: TScene[];
505- sceneId: string;
506- updates: Partial<TScene>;
489+ export function updateSceneInArray({
490+ scenes,
491+ sceneId,
492+ updates,
493+ }: {
494+ scenes: TScene[];
495+ sceneId: string;
496+ updates: Partial<TScene>;
507497 }): TScene[]
508498
509499time.ts
@@ -699,27 +689,28 @@ parser.ts
699689## apps/web/src/lib/media
700690
701691audio.ts
702- export type CollectedAudioElement = Omit<
703- AudioElement,
704- "type" | "mediaId" | "volume" | "id" | "name" | "sourceType" | "sourceUrl...
692+ export type CollectedAudioElement = Omit<
693+ AudioElement,
694+ "type" | "mediaId" | "volume" | "id" | "name" | "sourceType" | "sourceUrl"
695+ ...
705696 export function createAudioContext(): AudioContext
706697 export interface DecodedAudio {
707698 samples: Float32Array
708699 sampleRate: number
709700 }
710- export function decodeAudioToFloat32({
711- audioBlob,
712- }: {
713- audioBlob: Blob;
701+ export function decodeAudioToFloat32({
702+ audioBlob,
703+ }: {
704+ audioBlob: Blob;
714705 }): Promise<DecodedAudio>
715- export function collectAudioElements({
716- tracks,
717- mediaAssets,
718- audioContext,
719- }: {
720- tracks: TimelineTrack[];
721- mediaAssets: MediaAsset[];
722- audioContext: AudioContext;
706+ export function collectAudioElements({
707+ tracks,
708+ mediaAssets,
709+ audioContext,
710+ }: {
711+ tracks: TimelineTrack[];
712+ mediaAssets: MediaAsset[];
713+ audioContext: AudioContext;
723714 }): Promise<CollectedAudioElement[]>
724715 export interface AudioClipSource {
725716 id: string
@@ -731,32 +722,32 @@ audio.ts
731722 trimEnd: number
732723 muted: boolean
733724 }
734- export function collectAudioMixSources({
735- tracks,
736- mediaAssets,
737- }: {
738- tracks: TimelineTrack[];
739- mediaAssets: MediaAsset[];
725+ export function collectAudioMixSources({
726+ tracks,
727+ mediaAssets,
728+ }: {
729+ tracks: TimelineTrack[];
730+ mediaAssets: MediaAsset[];
740731 }): Promise<AudioMixSource[]>
741- export function collectAudioClips({
742- tracks,
743- mediaAssets,
744- }: {
745- tracks: TimelineTrack[];
746- mediaAssets: MediaAsset[];
732+ export function collectAudioClips({
733+ tracks,
734+ mediaAssets,
735+ }: {
736+ tracks: TimelineTrack[];
737+ mediaAssets: MediaAsset[];
747738 }): Promise<AudioClipSource[]>
748- export function createTimelineAudioBuffer({
749- tracks,
750- mediaAssets,
751- duration,
752- sampleRate = 44100,
753- audioContext,
754- }: {
755- tracks: TimelineTrack[];
756- mediaAssets: MediaAsset[];
757- duration: number;
758- sampleRate?: number;
759- audioContext?: AudioContext;
739+ export function createTimelineAudioBuffer({
740+ tracks,
741+ mediaAssets,
742+ duration,
743+ sampleRate = 44100,
744+ audioContext,
745+ }: {
746+ tracks: TimelineTrack[];
747+ mediaAssets: MediaAsset[];
748+ duration: number;
749+ sampleRate?: number;
750+ audioContext?: AudioContext;
760751 }): Promise<AudioBuffer | null>
761752
762753media-utils.ts
@@ -1091,28 +1082,46 @@ track-utils.ts
10911082 }): { isValid: boolean; errorMessage?: string }
10921083
10931084zoom-utils.ts
1094- export function getTimelineZoomMin({
1095- duration,
1096- containerWidth,
1097- }: {
1098- duration: number;
1099- containerWidth: number | null | undefined;
1085+ export function getTimelineZoomMin({
1086+ duration,
1087+ containerWidth,
1088+ }: {
1089+ duration: number;
1090+ containerWidth: number | null | undefined;
11001091 }): number
1101- export function getTimelinePaddingPx({
1102- containerWidth,
1103- zoomLevel,
1104- minZoom,
1105- }: {
1106- containerWidth: number;
1107- zoomLevel: number;
1108- minZoom: number;
1092+ export function getTimelinePaddingPx({
1093+ containerWidth,
1094+ zoomLevel,
1095+ minZoom,
1096+ }: {
1097+ containerWidth: number;
1098+ zoomLevel: number;
1099+ minZoom: number;
11091100 }): number
1110- export function getZoomPercent({
1111- zoomLevel,
1112- minZoom,
1113- }: {
1114- zoomLevel: number;
1115- minZoom: number;
1101+ export function getZoomPercent({
1102+ zoomLevel,
1103+ minZoom,
1104+ }: {
1105+ zoomLevel: number;
1106+ minZoom: number;
1107+ }): number
1108+ export function sliderToZoom({
1109+ sliderPosition,
1110+ minZoom,
1111+ maxZoom = TIMELINE_CONSTANTS.ZOOM_MAX,
1112+ }: {
1113+ sliderPosition: number;
1114+ minZoom: number;
1115+ maxZoom?: number;
1116+ }): number
1117+ export function zoomToSlider({
1118+ zoomLevel,
1119+ minZoom,
1120+ maxZoom = TIMELINE_CONSTANTS.ZOOM_MAX,
1121+ }: {
1122+ zoomLevel: number;
1123+ minZoom: number;
1124+ maxZoom?: number;
11161125 }): number
11171126
11181127## apps/web/src/lib/transcription
0 commit comments