Repository Analysis

Augani/openreel-video

OpenReel Video - Professional browser-based video editor. Open source CapCut alternative. 100% browser-based, no installation, no cloud uploads, no watermarks.

1.5 Likely human-written View on GitHub
1.5
Adjusted Score
1.5
Raw Score
100%
Time Factor
2026-05-30
Last Push
3,272
Stars
TypeScript
Language
217,754
Lines of Code
641
Files
184
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 69LOW 115

Pattern Findings

184 matches across 9 categories. Click a row to expand file-level details.

Decorative Section Separators67 hits · 206 pts
SeverityFileLineSnippet
MEDIUMpackages/image-core/src/schema.ts3// ── Primitives ──────────────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/schema.ts75// ── Adjustments ──────────────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/schema.ts195// ── Mask ──────────────────────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/schema.ts209// ── Layer base ────────────────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/schema.ts241// ── Layer variants ────────────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/schema.ts366// ── Project types ─────────────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts48// ── Fixtures ──────────────────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts131// ── Helper: apply then invert ─────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts143// ── SetProjectNameCommand ─────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts166// ── AddArtboardCommand ────────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts188// ── RemoveArtboardCommand ─────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts224// ── UpdateArtboardCommand ─────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts242// ── AddLayerCommand ───────────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts271// ── RemoveLayerCommand ────────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts297// ── DuplicateLayerCommand ─────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts317// ── ReorderLayerCommand ───────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts344// ── UpdateLayerTransformCommand ───────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts391// ── UpdateLayerStyleCommand ───────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts435// ── UpdateTextCommand ─────────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts473// ── ApplyAdjustmentCommand ────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts519// ── ApplyMaskCommand ──────────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts555// ── RasterEditCommand ─────────────────────────────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts591// ── GroupLayersCommand / UngroupLayersCommand ─────────────────────────────────
MEDIUMpackages/image-core/src/commands.test.ts703// ── PasteLayersCommand ────────────────────────────────────────────────────────
MEDIUM…s/web/src/components/editor/kieai/KieAIImageDialog.tsx32// ─── Default inputs per model ────────────────────────────────────────────────
MEDIUM…s/web/src/components/editor/kieai/KieAIImageDialog.tsx53// ─── Step types ───────────────────────────────────────────────────────────────
MEDIUM…s/web/src/components/editor/kieai/KieAIImageDialog.tsx217 // ─── Derived display ──────────────────────────────────────────────────────
MEDIUMapps/web/src/services/kieai/types.ts6// ─── Common response wrapper ────────────────────────────────────────────────
MEDIUMapps/web/src/services/kieai/types.ts15// ─── File upload ─────────────────────────────────────────────────────────────
MEDIUMapps/web/src/services/kieai/types.ts59// ─── Error ───────────────────────────────────────────────────────────────────
MEDIUMapps/web/src/services/kieai/image-generation.ts18// ─── Model identifiers ────────────────────────────────────────────────────────
MEDIUMapps/web/src/services/kieai/image-generation.ts31// ─── Per-model input types ────────────────────────────────────────────────────
MEDIUMapps/web/src/services/kieai/image-generation.ts100// ─── Task lifecycle ───────────────────────────────────────────────────────────
MEDIUMapps/web/src/services/kieai/image-generation.ts119// ─── Create task ──────────────────────────────────────────────────────────────
MEDIUMapps/web/src/services/kieai/image-generation.ts133// ─── Poll task ────────────────────────────────────────────────────────────────
MEDIUMapps/image/src/app.test.ts5// ── App smoke tests ──────────────────────────────────────────────────────────
MEDIUMapps/image/src/stores/project-store.test.ts21// ── Helpers ──────────────────────────────────────────────────────────────────
MEDIUMapps/image/src/stores/project-store.test.ts28// ── Tests ────────────────────────────────────────────────────────────────────
MEDIUMapps/image/src/stores/project-store.test.ts33 // ── Project lifecycle ───────────────────────────────────────────────────
MEDIUMapps/image/src/stores/project-store.test.ts120 // ── Artboard operations ──────────────────────────────────────────────────
MEDIUMapps/image/src/stores/project-store.test.ts194 // ── Layer operations ──────────────────────────────────────────────────────
MEDIUMapps/image/src/stores/project-store.ts155 // ── Project lifecycle ────────────────────────────────────────────────
MEDIUMapps/image/src/stores/project-store.ts198 // ── Undo / Redo ─────────────────────────────────────────────────────
MEDIUMapps/image/src/stores/project-store.ts231 // ── Artboard operations ──────────────────────────────────────────────
MEDIUMapps/image/src/stores/project-store.ts293 // ── Layer add helpers ────────────────────────────────────────────────
MEDIUMapps/image/src/stores/project-store.ts669 // ── Selection (no commands needed, pure UI state) ────────────────────
MEDIUMapps/image/src/stores/project-store.ts701 // ── Layer reorder operations ─────────────────────────────────────────
MEDIUMapps/image/src/stores/project-store.ts763 // ── Copy / paste ─────────────────────────────────────────────────────
MEDIUMapps/image/src/stores/project-store.ts850 // ── Group / ungroup ──────────────────────────────────────────────────
MEDIUMapps/image/src/stores/project-store.ts882 // ── Assets (no undo needed for asset registration) ───────────────────
MEDIUMapps/image/src/stores/history-store.ts90 // ── Named snapshots (checkpoint-style) ──────────────────────────────────
MEDIUMapps/image/src/stores/history-store.ts263 // ── Named snapshots ────────────────────────────────────────────────────
MEDIUMapps/image/src/stores/history-store.test.ts36 // ── execute / canUndo / canRedo ──────────────────────────────────────────
MEDIUMapps/image/src/stores/history-store.test.ts85 // ── undo ─────────────────────────────────────────────────────────────────
MEDIUMapps/image/src/stores/history-store.test.ts117 // ── redo ─────────────────────────────────────────────────────────────────
MEDIUMapps/image/src/stores/history-store.test.ts140 // ── getEntries ────────────────────────────────────────────────────────────
MEDIUMapps/image/src/stores/history-store.test.ts164 // ── getUndoDescription / getRedoDescription ───────────────────────────────
MEDIUMapps/image/src/stores/history-store.test.ts189 // ── Command coalescing ────────────────────────────────────────────────────
MEDIUMapps/image/src/stores/history-store.test.ts214 // ── goToEntry ─────────────────────────────────────────────────────────────
MEDIUMapps/image/src/stores/history-store.test.ts241 // ── clear ─────────────────────────────────────────────────────────────────
7 more matches not shown…
Hyper-Verbose Identifiers100 hits · 103 pts
SeverityFileLineSnippet
LOWpackages/core/src/video/chroma-key-engine.ts41export function createDefaultChromaKeySettings(): ChromaKeySettings {
LOWpackages/core/src/video/video-effects-engine.ts1655export async function getVideoEffectsEngineAsync(
LOWpackages/core/src/video/video-effects-engine.ts1703export function disposeVideoEffectsEngine(): void {
LOWpackages/core/src/video/unified-effects-processor.ts252export function getUnifiedEffectsProcessor(): UnifiedEffectsProcessor {
LOWpackages/core/src/video/unified-effects-processor.ts259export async function initUnifiedEffectsProcessor(
LOWpackages/core/src/video/parallel-frame-decoder.ts430export async function initializeParallelDecoder(
LOWpackages/core/src/video/motion-tracking-engine.ts456export function initializeMotionTrackingEngine(): MotionTrackingEngine {
LOWpackages/core/src/video/adjustment-layer-engine.ts334export function resetAdjustmentLayerEngine(): void {
LOWpackages/core/src/video/decode-worker.ts63async function getOrCreateResources(
LOWpackages/core/src/video/decode-worker.ts249async function getOrCreateResources(clipId, blob, width, height) {
LOW…ideo/frame-interpolation/frame-interpolation-engine.ts214export function getFrameInterpolationEngine(): FrameInterpolationEngine {
LOW…ideo/frame-interpolation/frame-interpolation-engine.ts222export function disposeFrameInterpolationEngine(): void {
LOWpackages/core/src/video/stabilization/motion-path.ts37function findDominantMotionCluster(
LOW…s/core/src/video/stabilization/stabilization-engine.ts359export function disposeStabilizationEngine(): void {
LOWpackages/core/src/video/upscaling/shaders/index.ts317export function createLanczosDimensionsBuffer(
LOWpackages/core/src/video/upscaling/shaders/index.ts337export function createEdgeDimensionsBuffer(
LOWpackages/core/src/video/upscaling/shaders/index.ts350export function createSharpenUniformsBuffer(
LOWpackages/core/src/video/shaders/index.ts154export function createLayerUniformsBuffer(opacity: number): Float32Array {
LOWpackages/core/src/video/shaders/index.ts161export function createTransformUniformsBuffer(
LOWpackages/core/src/video/shaders/index.ts180export function createBorderRadiusUniformsBuffer(
LOWpackages/core/src/video/shaders/index.ts272export function calculateBorderRadiusAlpha(
LOWpackages/core/src/video/shaders/index.ts545export function createEffectUniformsBuffer(
LOWpackages/core/src/types/transitions.ts454export function getTransitionPresetsByCategory(
LOWpackages/core/src/types/scriptable-template.ts315export function createProjectSettingsFromPreset(
LOWpackages/core/src/types/shape-tools.ts88export function createDefaultShapeToolState(): ShapeToolState {
LOWpackages/core/src/types/shape-tools.ts99export function createDefaultRectangleConfig(
LOWpackages/core/src/types/shape-tools.ts111export function createDefaultEllipseConfig(
LOWpackages/core/src/types/shape-tools.ts122export function createDefaultPolygonConfig(
LOWpackages/core/src/wasm/beat-detection/index.ts70export function isWasmBeatDetectionAvailable(): boolean {
LOWpackages/core/src/wasm/beat-detection/index.ts262export function getBeatDetectionProcessor(): BeatDetectionProcessor {
LOWpackages/core/src/animation/animation-importer.ts53function createDefaultMediaMetadata(
LOWpackages/core/src/animation/animation-schema.ts406export function createEmptyAnimationSchema(): AnimationSchema {
LOWpackages/core/src/animation/gsap-engine.ts230export function generateDefaultControlPoints(
LOWpackages/core/src/utils/immutable-updates.ts264export function removeTransitionFromTrack(
LOWpackages/core/src/audio/realtime-audio-graph.ts738export function initializeRealtimeAudioGraph(
LOWpackages/core/src/audio/realtime-audio-graph.ts748export function disposeRealtimeAudioGraph(): void {
LOWpackages/core/src/audio/highlight-analyzer.ts21export function analyzeAudioForHighlights(
LOWpackages/core/src/audio/audio-effects-engine.ts1246export async function initializeAudioEffectsEngine(
LOWpackages/core/src/audio/realtime-processor.ts370export function getRealtimeAudioProcessor(): RealtimeAudioProcessor {
LOWpackages/core/src/audio/realtime-processor.ts377export async function initializeRealtimeProcessor(
LOWpackages/core/src/audio/effects-worklet-processor.ts203export function updateEffectsWorkletParams(
LOWpackages/core/src/audio/noise-reduction.ts374function findQuietestContiguousWindow(
LOWpackages/core/src/audio/beat-detection-engine.ts392export function disposeBeatDetectionEngine(): void {
LOWpackages/core/src/audio/volume-automation.ts544export async function initializeVolumeAutomation(
LOWpackages/core/src/playback/playback-controller.ts740export async function initializePlaybackController(
LOWpackages/core/src/ai/auto-reframe-engine.ts645export function initializeAutoReframeEngine(): AutoReframeEngine {
LOWpackages/core/src/ai/person-segmentation-engine.ts208export function getPersonSegmentationEngine(): PersonSegmentationEngine {
LOWpackages/core/src/ai/person-segmentation-engine.ts215export function disposePersonSegmentationEngine(): void {
LOWpackages/core/src/ai/background-removal-engine.ts460export function getBackgroundRemovalEngine(): BackgroundRemovalEngine | null {
LOWpackages/core/src/ai/background-removal-engine.ts464export function initializeBackgroundRemovalEngine(): BackgroundRemovalEngine {
LOWpackages/core/src/ai/background-removal-engine.ts471export function disposeBackgroundRemovalEngine(): void {
LOWpackages/core/src/editing-templates/resolver.ts38export function getEditingTemplateDefaultControlValues(
LOWpackages/core/src/editing-templates/resolver.ts50export function resolveEditingTemplateControlValues(
LOWpackages/core/src/editing-templates/resolver.ts421export function getEditingTemplateControlDefinition(
LOWpackages/core/src/editing-templates/registry.ts8export function getBuiltInEditingTemplates(): readonly EditingTemplate[] {
LOWpackages/core/src/editing-templates/registry.ts12export function getBuiltInEditingTemplate(
LOWpackages/core/src/editing-templates/registry.ts18export function getBuiltInEditingTemplatesByCategory(
LOWpackages/core/src/device/device-capabilities.ts336export function getResolutionRecommendations(
LOWpackages/core/src/text/transcription-service.ts415export function initializeTranscriptionService(
LOWpackages/core/src/text/transcription-service.ts425export function disposeTranscriptionService(): void {
40 more matches not shown…
Over-Commented Block7 hits · 7 pts
SeverityFileLineSnippet
LOW.serena/project.yml1# the name by which the project can be referenced within Serena
LOW.serena/project.yml21# - For Free Pascal/Lazarus, use pascal
LOW.serena/project.yml41# If not set, the global setting from serena_config.yml is used.
LOW.serena/project.yml61# Below is the complete list of tools for convenience.
LOW.serena/project.yml81# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol.
LOW.serena/project.yml101# list of tools to include that would otherwise be disabled (particularly optional tools that are disabled by default)
LOW.serena/project.local.yml1# This file allows you to locally override settings in project.yml for development purposes.
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippet
MEDIUM.serena/project.yml51# Same syntax as gitignore, so you can use * and **.
LOW.serena/project.yml62# To make sure you have the latest list of tools, and to view their descriptions,
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippet
LOW.serena/project.yml112# Set this to [] to disable base modes for this project.
LOW.serena/project.yml113# Set this to a list of mode names to always include the respective modes for this project.
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippet
MEDIUMscripts/start-issue.sh43# Create the branch linked to the issue and check it out
Verbosity Indicators2 hits · 3 pts
SeverityFileLineSnippet
LOWpackages/core/src/audio/beat-detection-engine.ts117 // Step 3: Compute dynamic threshold based on local statistics and sensitivity
LOWpackages/core/src/audio/beat-detection-engine.ts123 // Step 4: Detect peaks (onsets) with multiple constraints
Excessive Try-Catch Wrapping2 hits · 2 pts
SeverityFileLineSnippet
LOWinfra/transcribe-gpu/main.py153 except Exception as e:
LOWinfra/transcribe-gpu/main.py166 except Exception as e:
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippet
LOWinfra/transcribe-gpu/main.py83