@thunderkiller/video-clipper 1.6.0 → 1.8.0
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 +21 -8
- package/dist/{cli.d.ts → app/cli/args.d.ts} +2 -2
- package/dist/app/cli/args.d.ts.map +1 -0
- package/dist/{cli.js → app/cli/args.js} +3 -3
- package/dist/app/cli/args.js.map +1 -0
- package/dist/{index.d.ts.map → app/cli/index.d.ts.map} +1 -1
- package/dist/{index.js → app/cli/index.js} +4 -4
- package/dist/app/cli/index.js.map +1 -0
- package/dist/{pipeline → app/cli/pipeline}/dumper.d.ts +1 -1
- package/dist/app/cli/pipeline/dumper.d.ts.map +1 -0
- package/dist/{pipeline → app/cli/pipeline}/dumper.js +2 -2
- package/dist/app/cli/pipeline/dumper.js.map +1 -0
- package/dist/{pipeline → app/cli/pipeline}/runner.d.ts +1 -1
- package/dist/app/cli/pipeline/runner.d.ts.map +1 -0
- package/dist/app/cli/pipeline/runner.js +248 -0
- package/dist/app/cli/pipeline/runner.js.map +1 -0
- package/dist/app/cli/pipeline/stages/audioProcessor.d.ts +17 -0
- package/dist/app/cli/pipeline/stages/audioProcessor.d.ts.map +1 -0
- package/dist/{pipeline → app/cli/pipeline}/stages/audioProcessor.js +17 -32
- package/dist/app/cli/pipeline/stages/audioProcessor.js.map +1 -0
- package/dist/app/cli/pipeline/stages/videoResolver.d.ts +4 -0
- package/dist/app/cli/pipeline/stages/videoResolver.d.ts.map +1 -0
- package/dist/{pipeline → app/cli/pipeline}/stages/videoResolver.js +6 -14
- package/dist/app/cli/pipeline/stages/videoResolver.js.map +1 -0
- package/dist/app/web/lib/activity/analysisActivity.d.ts +20 -0
- package/dist/app/web/lib/activity/analysisActivity.d.ts.map +1 -0
- package/dist/app/web/lib/activity/analysisActivity.js +194 -0
- package/dist/app/web/lib/activity/analysisActivity.js.map +1 -0
- package/dist/app/web/lib/activity/analysisLogging.d.ts +3 -0
- package/dist/app/web/lib/activity/analysisLogging.d.ts.map +1 -0
- package/dist/app/web/lib/activity/analysisLogging.js +17 -0
- package/dist/app/web/lib/activity/analysisLogging.js.map +1 -0
- package/dist/app/web/lib/analysisStream.d.ts +13 -0
- package/dist/app/web/lib/analysisStream.d.ts.map +1 -0
- package/dist/app/web/lib/analysisStream.js +83 -0
- package/dist/app/web/lib/analysisStream.js.map +1 -0
- package/dist/app/web/lib/api.d.ts +3 -0
- package/dist/app/web/lib/api.d.ts.map +1 -0
- package/dist/app/web/lib/api.js +21 -0
- package/dist/app/web/lib/api.js.map +1 -0
- package/dist/app/web/lib/configStore.d.ts +8 -0
- package/dist/app/web/lib/configStore.d.ts.map +1 -0
- package/dist/app/web/lib/configStore.js +67 -0
- package/dist/app/web/lib/configStore.js.map +1 -0
- package/dist/app/web/lib/format.d.ts +3 -0
- package/dist/app/web/lib/format.d.ts.map +1 -0
- package/dist/app/web/lib/format.js +17 -0
- package/dist/app/web/lib/format.js.map +1 -0
- package/dist/app/web/lib/index.d.ts +2 -0
- package/dist/app/web/lib/index.d.ts.map +1 -0
- package/dist/app/web/lib/index.js +2 -0
- package/dist/app/web/lib/index.js.map +1 -0
- package/dist/app/web/lib/services/analysis/analysisService.d.ts +5 -0
- package/dist/app/web/lib/services/analysis/analysisService.d.ts.map +1 -0
- package/dist/app/web/lib/services/analysis/analysisService.js +146 -0
- package/dist/app/web/lib/services/analysis/analysisService.js.map +1 -0
- package/dist/app/web/lib/services/analysis/streamEvents.d.ts +4 -0
- package/dist/app/web/lib/services/analysis/streamEvents.d.ts.map +1 -0
- package/dist/app/web/lib/services/analysis/streamEvents.js +69 -0
- package/dist/app/web/lib/services/analysis/streamEvents.js.map +1 -0
- package/dist/app/web/lib/services/analysis/transcriptService.d.ts +4 -0
- package/dist/app/web/lib/services/analysis/transcriptService.d.ts.map +1 -0
- package/dist/app/web/lib/services/analysis/transcriptService.js +34 -0
- package/dist/app/web/lib/services/analysis/transcriptService.js.map +1 -0
- package/dist/app/web/lib/services/artifacts/artifactStore.d.ts +14 -0
- package/dist/app/web/lib/services/artifacts/artifactStore.d.ts.map +1 -0
- package/dist/app/web/lib/services/artifacts/artifactStore.js +109 -0
- package/dist/app/web/lib/services/artifacts/artifactStore.js.map +1 -0
- package/dist/app/web/lib/services/clipping/clipService.d.ts +4 -0
- package/dist/app/web/lib/services/clipping/clipService.d.ts.map +1 -0
- package/dist/app/web/lib/services/clipping/clipService.js +73 -0
- package/dist/app/web/lib/services/clipping/clipService.js.map +1 -0
- package/dist/app/web/lib/services/config/webConfig.d.ts +10 -0
- package/dist/app/web/lib/services/config/webConfig.d.ts.map +1 -0
- package/dist/app/web/lib/services/config/webConfig.js +12 -0
- package/dist/app/web/lib/services/config/webConfig.js.map +1 -0
- package/dist/app/web/lib/services/http/responses.d.ts +8 -0
- package/dist/app/web/lib/services/http/responses.d.ts.map +1 -0
- package/dist/app/web/lib/services/http/responses.js +23 -0
- package/dist/app/web/lib/services/http/responses.js.map +1 -0
- package/dist/app/web/lib/services/publishing/draftService.d.ts +5 -0
- package/dist/app/web/lib/services/publishing/draftService.d.ts.map +1 -0
- package/dist/app/web/lib/services/publishing/draftService.js +70 -0
- package/dist/app/web/lib/services/publishing/draftService.js.map +1 -0
- package/dist/app/web/lib/services/publishing/metadataCache.d.ts +12 -0
- package/dist/app/web/lib/services/publishing/metadataCache.d.ts.map +1 -0
- package/dist/app/web/lib/services/publishing/metadataCache.js +44 -0
- package/dist/app/web/lib/services/publishing/metadataCache.js.map +1 -0
- package/dist/app/web/lib/services/publishing/metadataService.d.ts +5 -0
- package/dist/app/web/lib/services/publishing/metadataService.d.ts.map +1 -0
- package/dist/app/web/lib/services/publishing/metadataService.js +131 -0
- package/dist/app/web/lib/services/publishing/metadataService.js.map +1 -0
- package/dist/app/web/lib/services/publishing/uploadService.d.ts +9 -0
- package/dist/app/web/lib/services/publishing/uploadService.d.ts.map +1 -0
- package/dist/app/web/lib/services/publishing/uploadService.js +224 -0
- package/dist/app/web/lib/services/publishing/uploadService.js.map +1 -0
- package/dist/app/web/lib/services/publishing/uploadStreamEvents.d.ts +4 -0
- package/dist/app/web/lib/services/publishing/uploadStreamEvents.d.ts.map +1 -0
- package/dist/app/web/lib/services/publishing/uploadStreamEvents.js +45 -0
- package/dist/app/web/lib/services/publishing/uploadStreamEvents.js.map +1 -0
- package/dist/app/web/lib/services/youtube/authStore.d.ts +5 -0
- package/dist/app/web/lib/services/youtube/authStore.d.ts.map +1 -0
- package/dist/app/web/lib/services/youtube/authStore.js +46 -0
- package/dist/app/web/lib/services/youtube/authStore.js.map +1 -0
- package/dist/app/web/lib/services/youtube/catalogFactory.d.ts +3 -0
- package/dist/app/web/lib/services/youtube/catalogFactory.d.ts.map +1 -0
- package/dist/app/web/lib/services/youtube/catalogFactory.js +10 -0
- package/dist/app/web/lib/services/youtube/catalogFactory.js.map +1 -0
- package/dist/app/web/lib/services/youtube/uploadAuth.d.ts +14 -0
- package/dist/app/web/lib/services/youtube/uploadAuth.d.ts.map +1 -0
- package/dist/app/web/lib/services/youtube/uploadAuth.js +194 -0
- package/dist/app/web/lib/services/youtube/uploadAuth.js.map +1 -0
- package/dist/app/web/lib/toastStore.d.ts +9 -0
- package/dist/app/web/lib/toastStore.d.ts.map +1 -0
- package/dist/app/web/lib/toastStore.js +14 -0
- package/dist/app/web/lib/toastStore.js.map +1 -0
- package/dist/app/web/lib/uploadStream.d.ts +19 -0
- package/dist/app/web/lib/uploadStream.d.ts.map +1 -0
- package/dist/app/web/lib/uploadStream.js +68 -0
- package/dist/app/web/lib/uploadStream.js.map +1 -0
- package/dist/app/web/lib/videoWorkflow.d.ts +10 -0
- package/dist/app/web/lib/videoWorkflow.d.ts.map +1 -0
- package/dist/app/web/lib/videoWorkflow.js +39 -0
- package/dist/app/web/lib/videoWorkflow.js.map +1 -0
- package/dist/app/web/routes/api/analysis/transcript/+server.d.ts +3 -0
- package/dist/app/web/routes/api/analysis/transcript/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/analysis/transcript/+server.js +71 -0
- package/dist/app/web/routes/api/analysis/transcript/+server.js.map +1 -0
- package/dist/app/web/routes/api/clips/+server.d.ts +3 -0
- package/dist/app/web/routes/api/clips/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/clips/+server.js +25 -0
- package/dist/app/web/routes/api/clips/+server.js.map +1 -0
- package/dist/app/web/routes/api/config/+server.d.ts +4 -0
- package/dist/app/web/routes/api/config/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/config/+server.js +37 -0
- package/dist/app/web/routes/api/config/+server.js.map +1 -0
- package/dist/app/web/routes/api/library/analyses/+server.d.ts +3 -0
- package/dist/app/web/routes/api/library/analyses/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/library/analyses/+server.js +16 -0
- package/dist/app/web/routes/api/library/analyses/+server.js.map +1 -0
- package/dist/app/web/routes/api/library/analyses/[analysisId]/+server.d.ts +3 -0
- package/dist/app/web/routes/api/library/analyses/[analysisId]/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/library/analyses/[analysisId]/+server.js +31 -0
- package/dist/app/web/routes/api/library/analyses/[analysisId]/+server.js.map +1 -0
- package/dist/app/web/routes/api/library/clips/+server.d.ts +3 -0
- package/dist/app/web/routes/api/library/clips/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/library/clips/+server.js +29 -0
- package/dist/app/web/routes/api/library/clips/+server.js.map +1 -0
- package/dist/app/web/routes/api/publish/drafts/+server.d.ts +3 -0
- package/dist/app/web/routes/api/publish/drafts/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/publish/drafts/+server.js +23 -0
- package/dist/app/web/routes/api/publish/drafts/+server.js.map +1 -0
- package/dist/app/web/routes/api/publish/drafts/[analysisId]/+server.d.ts +3 -0
- package/dist/app/web/routes/api/publish/drafts/[analysisId]/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/publish/drafts/[analysisId]/+server.js +34 -0
- package/dist/app/web/routes/api/publish/drafts/[analysisId]/+server.js.map +1 -0
- package/dist/app/web/routes/api/publish/drafts/generate/+server.d.ts +3 -0
- package/dist/app/web/routes/api/publish/drafts/generate/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/publish/drafts/generate/+server.js +33 -0
- package/dist/app/web/routes/api/publish/drafts/generate/+server.js.map +1 -0
- package/dist/app/web/routes/api/publish/thumbnails/+server.d.ts +3 -0
- package/dist/app/web/routes/api/publish/thumbnails/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/publish/thumbnails/+server.js +53 -0
- package/dist/app/web/routes/api/publish/thumbnails/+server.js.map +1 -0
- package/dist/app/web/routes/api/youtube/auth/callback/+server.d.ts +3 -0
- package/dist/app/web/routes/api/youtube/auth/callback/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/youtube/auth/callback/+server.js +49 -0
- package/dist/app/web/routes/api/youtube/auth/callback/+server.js.map +1 -0
- package/dist/app/web/routes/api/youtube/auth/disconnect/+server.d.ts +3 -0
- package/dist/app/web/routes/api/youtube/auth/disconnect/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/youtube/auth/disconnect/+server.js +16 -0
- package/dist/app/web/routes/api/youtube/auth/disconnect/+server.js.map +1 -0
- package/dist/app/web/routes/api/youtube/auth/manual/+server.d.ts +3 -0
- package/dist/app/web/routes/api/youtube/auth/manual/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/youtube/auth/manual/+server.js +23 -0
- package/dist/app/web/routes/api/youtube/auth/manual/+server.js.map +1 -0
- package/dist/app/web/routes/api/youtube/auth/start/+server.d.ts +3 -0
- package/dist/app/web/routes/api/youtube/auth/start/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/youtube/auth/start/+server.js +43 -0
- package/dist/app/web/routes/api/youtube/auth/start/+server.js.map +1 -0
- package/dist/app/web/routes/api/youtube/auth/status/+server.d.ts +3 -0
- package/dist/app/web/routes/api/youtube/auth/status/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/youtube/auth/status/+server.js +16 -0
- package/dist/app/web/routes/api/youtube/auth/status/+server.js.map +1 -0
- package/dist/app/web/routes/api/youtube/channels/[channelId]/videos/+server.d.ts +3 -0
- package/dist/app/web/routes/api/youtube/channels/[channelId]/videos/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/youtube/channels/[channelId]/videos/+server.js +32 -0
- package/dist/app/web/routes/api/youtube/channels/[channelId]/videos/+server.js.map +1 -0
- package/dist/app/web/routes/api/youtube/channels/resolve/+server.d.ts +3 -0
- package/dist/app/web/routes/api/youtube/channels/resolve/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/youtube/channels/resolve/+server.js +27 -0
- package/dist/app/web/routes/api/youtube/channels/resolve/+server.js.map +1 -0
- package/dist/app/web/routes/api/youtube/uploads/+server.d.ts +5 -0
- package/dist/app/web/routes/api/youtube/uploads/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/youtube/uploads/+server.js +107 -0
- package/dist/app/web/routes/api/youtube/uploads/+server.js.map +1 -0
- package/dist/app/web/routes/api/youtube/videos/[videoId]/+server.d.ts +3 -0
- package/dist/app/web/routes/api/youtube/videos/[videoId]/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/youtube/videos/[videoId]/+server.js +28 -0
- package/dist/app/web/routes/api/youtube/videos/[videoId]/+server.js.map +1 -0
- package/dist/app/web/routes/api/youtube/videos/[videoId]/transcript/+server.d.ts +3 -0
- package/dist/app/web/routes/api/youtube/videos/[videoId]/transcript/+server.d.ts.map +1 -0
- package/dist/app/web/routes/api/youtube/videos/[videoId]/transcript/+server.js +27 -0
- package/dist/app/web/routes/api/youtube/videos/[videoId]/transcript/+server.js.map +1 -0
- package/dist/app/web/routes/videos/[videoId]/analysis/[analysisId]/+layout.server.d.ts +13 -0
- package/dist/app/web/routes/videos/[videoId]/analysis/[analysisId]/+layout.server.d.ts.map +1 -0
- package/dist/app/web/routes/videos/[videoId]/analysis/[analysisId]/+layout.server.js +50 -0
- package/dist/app/web/routes/videos/[videoId]/analysis/[analysisId]/+layout.server.js.map +1 -0
- package/dist/app/web/types/activity.d.ts +20 -0
- package/dist/app/web/types/activity.d.ts.map +1 -0
- package/dist/app/web/types/activity.js +2 -0
- package/dist/app/web/types/activity.js.map +1 -0
- package/dist/app/web/types/analysis.d.ts +152 -0
- package/dist/app/web/types/analysis.d.ts.map +1 -0
- package/dist/app/web/types/analysis.js +75 -0
- package/dist/app/web/types/analysis.js.map +1 -0
- package/dist/app/web/types/publish.d.ts +266 -0
- package/dist/app/web/types/publish.d.ts.map +1 -0
- package/dist/app/web/types/publish.js +126 -0
- package/dist/app/web/types/publish.js.map +1 -0
- package/dist/app/web/types/web.d.ts +9 -0
- package/dist/app/web/types/web.d.ts.map +1 -0
- package/dist/app/web/types/web.js +8 -0
- package/dist/app/web/types/web.js.map +1 -0
- package/dist/hooks.server.d.ts +3 -0
- package/dist/hooks.server.d.ts.map +1 -0
- package/dist/hooks.server.js +11 -0
- package/dist/hooks.server.js.map +1 -0
- package/dist/lib/config/env.d.ts +11 -0
- package/dist/lib/config/env.d.ts.map +1 -0
- package/dist/lib/config/env.js +81 -0
- package/dist/lib/config/env.js.map +1 -0
- package/dist/lib/config/fileStore.d.ts +5 -0
- package/dist/lib/config/fileStore.d.ts.map +1 -0
- package/dist/lib/config/fileStore.js +34 -0
- package/dist/lib/config/fileStore.js.map +1 -0
- package/dist/lib/config/index.d.ts +4 -0
- package/dist/lib/config/index.d.ts.map +1 -0
- package/dist/lib/config/index.js +3 -0
- package/dist/lib/config/index.js.map +1 -0
- package/dist/lib/config/registry.d.ts +25 -0
- package/dist/lib/config/registry.d.ts.map +1 -0
- package/dist/lib/config/registry.js +148 -0
- package/dist/lib/config/registry.js.map +1 -0
- package/dist/lib/index.d.ts +59 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +53 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/pipeline/stages/clipExporter.d.ts +10 -0
- package/dist/lib/pipeline/stages/clipExporter.d.ts.map +1 -0
- package/dist/{pipeline → lib/pipeline}/stages/clipExporter.js +10 -21
- package/dist/lib/pipeline/stages/clipExporter.js.map +1 -0
- package/dist/lib/pipeline/stages/segmentAnalyzer.d.ts +5 -0
- package/dist/lib/pipeline/stages/segmentAnalyzer.d.ts.map +1 -0
- package/dist/lib/pipeline/stages/segmentAnalyzer.js +40 -0
- package/dist/lib/pipeline/stages/segmentAnalyzer.js.map +1 -0
- package/dist/lib/pipeline/stages/segmentSelector.d.ts.map +1 -0
- package/dist/{pipeline → lib/pipeline}/stages/segmentSelector.js +2 -2
- package/dist/lib/pipeline/stages/segmentSelector.js.map +1 -0
- package/dist/lib/services/analysis/index.d.ts +9 -0
- package/dist/lib/services/analysis/index.d.ts.map +1 -0
- package/dist/lib/services/analysis/index.js +7 -0
- package/dist/lib/services/analysis/index.js.map +1 -0
- package/dist/lib/services/analysis/llm/LLMAnalyzer.d.ts +18 -0
- package/dist/lib/services/analysis/llm/LLMAnalyzer.d.ts.map +1 -0
- package/dist/lib/services/analysis/llm/LLMAnalyzer.js +66 -0
- package/dist/lib/services/analysis/llm/LLMAnalyzer.js.map +1 -0
- package/dist/lib/services/analysis/llm/index.d.ts +12 -0
- package/dist/lib/services/analysis/llm/index.d.ts.map +1 -0
- package/dist/{services/llmAnalyzer → lib/services/analysis/llm}/index.js +83 -62
- package/dist/lib/services/analysis/llm/index.js.map +1 -0
- package/dist/{services/segmentRanker → lib/services/analysis/ranker}/index.d.ts +2 -2
- package/dist/lib/services/analysis/ranker/index.d.ts.map +1 -0
- package/dist/{services/segmentRanker → lib/services/analysis/ranker}/index.js +4 -5
- package/dist/lib/services/analysis/ranker/index.js.map +1 -0
- package/dist/lib/services/analysis/refiner/index.d.ts +13 -0
- package/dist/lib/services/analysis/refiner/index.d.ts.map +1 -0
- package/dist/{services/clipRefiner → lib/services/analysis/refiner}/index.js +47 -37
- package/dist/lib/services/analysis/refiner/index.js.map +1 -0
- package/dist/{services/chunkBuilder → lib/services/analysis/transcript/chunker}/index.d.ts +1 -1
- package/dist/lib/services/analysis/transcript/chunker/index.d.ts.map +1 -0
- package/dist/lib/services/analysis/transcript/chunker/index.js.map +1 -0
- package/dist/{services/transcriptDetector/index.d.ts → lib/services/analysis/transcript/detector.d.ts} +8 -5
- package/dist/lib/services/analysis/transcript/detector.d.ts.map +1 -0
- package/dist/{services/transcriptDetector/index.js → lib/services/analysis/transcript/detector.js} +12 -7
- package/dist/lib/services/analysis/transcript/detector.js.map +1 -0
- package/dist/lib/services/analysis/transcript/index.d.ts +5 -0
- package/dist/lib/services/analysis/transcript/index.d.ts.map +1 -0
- package/dist/lib/services/analysis/transcript/index.js +4 -0
- package/dist/lib/services/analysis/transcript/index.js.map +1 -0
- package/dist/{services/audioAnalyzers → lib/services/audio/analyzer}/base.d.ts +2 -2
- package/dist/lib/services/audio/analyzer/base.d.ts.map +1 -0
- package/dist/{services/audioAnalyzers → lib/services/audio/analyzer}/base.js +1 -1
- package/dist/lib/services/audio/analyzer/base.js.map +1 -0
- package/dist/{services/audioAnalyzers → lib/services/audio/analyzer}/factory.d.ts +8 -2
- package/dist/lib/services/audio/analyzer/factory.d.ts.map +1 -0
- package/dist/{services/audioAnalyzers → lib/services/audio/analyzer}/factory.js +5 -5
- package/dist/lib/services/audio/analyzer/factory.js.map +1 -0
- package/dist/{services/audioAnalyzers → lib/services/audio/analyzer}/gemini.d.ts +8 -1
- package/dist/lib/services/audio/analyzer/gemini.d.ts.map +1 -0
- package/dist/{services/audioAnalyzers → lib/services/audio/analyzer}/gemini.js +10 -6
- package/dist/lib/services/audio/analyzer/gemini.js.map +1 -0
- package/dist/{services/audioAnalyzers → lib/services/audio/analyzer}/index.d.ts +1 -0
- package/dist/lib/services/audio/analyzer/index.d.ts.map +1 -0
- package/dist/lib/services/audio/analyzer/index.js.map +1 -0
- package/dist/lib/services/audio/analyzer/whisper.d.ts +10 -0
- package/dist/lib/services/audio/analyzer/whisper.d.ts.map +1 -0
- package/dist/{services/audioAnalyzers → lib/services/audio/analyzer}/whisper.js +11 -11
- package/dist/lib/services/audio/analyzer/whisper.js.map +1 -0
- package/dist/lib/services/audio/analyzer/yamnet.d.ts +9 -0
- package/dist/lib/services/audio/analyzer/yamnet.d.ts.map +1 -0
- package/dist/{services/audioAnalyzers → lib/services/audio/analyzer}/yamnet.js +8 -10
- package/dist/lib/services/audio/analyzer/yamnet.js.map +1 -0
- package/dist/lib/services/audio/index.d.ts +9 -0
- package/dist/lib/services/audio/index.d.ts.map +1 -0
- package/dist/lib/services/audio/index.js +7 -0
- package/dist/lib/services/audio/index.js.map +1 -0
- package/dist/{services/eventDetector/index.d.ts → lib/services/audio/processor/detector.d.ts} +3 -3
- package/dist/lib/services/audio/processor/detector.d.ts.map +1 -0
- package/dist/{services/eventDetector/index.js → lib/services/audio/processor/detector.js} +2 -2
- package/dist/lib/services/audio/processor/detector.js.map +1 -0
- package/dist/lib/services/audio/processor/slicer.d.ts +6 -0
- package/dist/lib/services/audio/processor/slicer.d.ts.map +1 -0
- package/dist/{services/audioDownloader/sliceAudio.js → lib/services/audio/processor/slicer.js} +8 -9
- package/dist/lib/services/audio/processor/slicer.js.map +1 -0
- package/dist/lib/services/audio/source/index.d.ts +3 -0
- package/dist/lib/services/audio/source/index.d.ts.map +1 -0
- package/dist/lib/services/audio/source/index.js +2 -0
- package/dist/lib/services/audio/source/index.js.map +1 -0
- package/dist/lib/services/audio/source/types.d.ts +5 -0
- package/dist/lib/services/audio/source/types.d.ts.map +1 -0
- package/dist/lib/services/audio/source/types.js +2 -0
- package/dist/lib/services/audio/source/types.js.map +1 -0
- package/dist/lib/services/audio/source/youtube.d.ts +4 -0
- package/dist/lib/services/audio/source/youtube.d.ts.map +1 -0
- package/dist/{services/audioDownloader/index.js → lib/services/audio/source/youtube.js} +36 -31
- package/dist/lib/services/audio/source/youtube.js.map +1 -0
- package/dist/{services/transcriptAnalyzers → lib/services/audio/transcriber}/base.d.ts +2 -2
- package/dist/lib/services/audio/transcriber/base.d.ts.map +1 -0
- package/dist/{services/transcriptAnalyzers → lib/services/audio/transcriber}/base.js +1 -1
- package/dist/lib/services/audio/transcriber/base.js.map +1 -0
- package/dist/{services/transcriptAnalyzers → lib/services/audio/transcriber}/factory.d.ts +4 -2
- package/dist/lib/services/audio/transcriber/factory.d.ts.map +1 -0
- package/dist/{services/transcriptAnalyzers → lib/services/audio/transcriber}/factory.js +5 -5
- package/dist/lib/services/audio/transcriber/factory.js.map +1 -0
- package/dist/{services/transcriptAnalyzers → lib/services/audio/transcriber}/gemini.d.ts +1 -1
- package/dist/lib/services/audio/transcriber/gemini.d.ts.map +1 -0
- package/dist/lib/services/audio/transcriber/gemini.js.map +1 -0
- package/dist/{services/transcriptAnalyzers → lib/services/audio/transcriber}/index.d.ts +1 -0
- package/dist/lib/services/audio/transcriber/index.d.ts.map +1 -0
- package/dist/lib/services/audio/transcriber/index.js.map +1 -0
- package/dist/{services/transcriptAnalyzers → lib/services/audio/transcriber}/whisper.d.ts +3 -1
- package/dist/lib/services/audio/transcriber/whisper.d.ts.map +1 -0
- package/dist/{services/transcriptAnalyzers → lib/services/audio/transcriber}/whisper.js +8 -4
- package/dist/lib/services/audio/transcriber/whisper.js.map +1 -0
- package/dist/{services/clipGenerator → lib/services/video/clipper}/index.d.ts +21 -3
- package/dist/lib/services/video/clipper/index.d.ts.map +1 -0
- package/dist/{services/clipGenerator → lib/services/video/clipper}/index.js +96 -22
- package/dist/lib/services/video/clipper/index.js.map +1 -0
- package/dist/lib/services/video/index.d.ts +13 -0
- package/dist/lib/services/video/index.d.ts.map +1 -0
- package/dist/lib/services/video/index.js +9 -0
- package/dist/lib/services/video/index.js.map +1 -0
- package/dist/lib/services/video/source/index.d.ts +8 -0
- package/dist/lib/services/video/source/index.d.ts.map +1 -0
- package/dist/lib/services/video/source/index.js +6 -0
- package/dist/lib/services/video/source/index.js.map +1 -0
- package/dist/lib/services/video/source/types.d.ts +12 -0
- package/dist/lib/services/video/source/types.d.ts.map +1 -0
- package/dist/lib/services/video/source/types.js +2 -0
- package/dist/lib/services/video/source/types.js.map +1 -0
- package/dist/lib/services/video/source/youtube/catalog.d.ts +28 -0
- package/dist/lib/services/video/source/youtube/catalog.d.ts.map +1 -0
- package/dist/lib/services/video/source/youtube/catalog.js +177 -0
- package/dist/lib/services/video/source/youtube/catalog.js.map +1 -0
- package/dist/{services/videoDownloader/index.d.ts → lib/services/video/source/youtube/downloader.d.ts} +6 -4
- package/dist/lib/services/video/source/youtube/downloader.d.ts.map +1 -0
- package/dist/{services/videoDownloader/index.js → lib/services/video/source/youtube/downloader.js} +104 -50
- package/dist/lib/services/video/source/youtube/downloader.js.map +1 -0
- package/dist/lib/services/video/source/youtube/metadata.d.ts +14 -0
- package/dist/lib/services/video/source/youtube/metadata.d.ts.map +1 -0
- package/dist/{services/metadataExtractor/index.js → lib/services/video/source/youtube/metadata.js} +11 -15
- package/dist/lib/services/video/source/youtube/metadata.js.map +1 -0
- package/dist/{services/urlParser/index.d.ts → lib/services/video/source/youtube/parser.d.ts} +1 -1
- package/dist/lib/services/video/source/youtube/parser.d.ts.map +1 -0
- package/dist/{services/urlParser/index.js → lib/services/video/source/youtube/parser.js} +1 -1
- package/dist/lib/services/video/source/youtube/parser.js.map +1 -0
- package/dist/lib/services/video/source/youtube/subtitles.d.ts +61 -0
- package/dist/lib/services/video/source/youtube/subtitles.d.ts.map +1 -0
- package/dist/lib/services/video/source/youtube/subtitles.js +340 -0
- package/dist/lib/services/video/source/youtube/subtitles.js.map +1 -0
- package/dist/lib/types/analyzer.d.ts +32 -0
- package/dist/lib/types/analyzer.d.ts.map +1 -0
- package/dist/{types → lib/types}/analyzer.js.map +1 -1
- package/dist/{types → lib/types}/audio.d.ts +1 -1
- package/dist/lib/types/audio.d.ts.map +1 -0
- package/dist/lib/types/audio.js.map +1 -0
- package/dist/lib/types/cache.d.ts.map +1 -0
- package/dist/lib/types/cache.js.map +1 -0
- package/dist/lib/types/cli.d.ts.map +1 -0
- package/dist/lib/types/cli.js.map +1 -0
- package/dist/lib/types/config.d.ts +171 -0
- package/dist/lib/types/config.d.ts.map +1 -0
- package/dist/lib/types/config.js +462 -0
- package/dist/lib/types/config.js.map +1 -0
- package/dist/lib/types/downloader.d.ts +32 -0
- package/dist/lib/types/downloader.d.ts.map +1 -0
- package/dist/{types → lib/types}/downloader.js.map +1 -1
- package/dist/lib/types/factory.d.ts.map +1 -0
- package/dist/{types → lib/types}/factory.js.map +1 -1
- package/dist/{types → lib/types}/index.d.ts +10 -7
- package/dist/lib/types/index.d.ts.map +1 -0
- package/dist/{types → lib/types}/index.js +2 -1
- package/dist/lib/types/index.js.map +1 -0
- package/dist/{types → lib/types}/pipeline.d.ts +21 -0
- package/dist/lib/types/pipeline.d.ts.map +1 -0
- package/dist/{types → lib/types}/pipeline.js.map +1 -1
- package/dist/{types → lib/types}/segment.d.ts +1 -1
- package/dist/lib/types/segment.d.ts.map +1 -0
- package/dist/lib/types/segment.js.map +1 -0
- package/dist/lib/types/transcript.d.ts.map +1 -0
- package/dist/lib/types/transcript.js.map +1 -0
- package/dist/{types → lib/types}/video.d.ts +11 -1
- package/dist/lib/types/video.d.ts.map +1 -0
- package/dist/lib/types/video.js.map +1 -0
- package/dist/lib/types/youtube.d.ts +89 -0
- package/dist/lib/types/youtube.d.ts.map +1 -0
- package/dist/lib/types/youtube.js +43 -0
- package/dist/lib/types/youtube.js.map +1 -0
- package/dist/lib/utils/cache.d.ts.map +1 -0
- package/dist/lib/utils/cache.js.map +1 -0
- package/dist/lib/utils/cacheBackend.d.ts.map +1 -0
- package/dist/lib/utils/cacheBackend.js.map +1 -0
- package/dist/lib/utils/cacheFactory.d.ts.map +1 -0
- package/dist/lib/utils/cacheFactory.js.map +1 -0
- package/dist/lib/utils/chunker.d.ts.map +1 -0
- package/dist/lib/utils/chunker.js.map +1 -0
- package/dist/lib/utils/fileCacheBackend.d.ts.map +1 -0
- package/dist/lib/utils/fileCacheBackend.js.map +1 -0
- package/dist/lib/utils/format.d.ts.map +1 -0
- package/dist/lib/utils/format.js.map +1 -0
- package/dist/lib/utils/logger.d.ts +10 -0
- package/dist/lib/utils/logger.d.ts.map +1 -0
- package/dist/lib/utils/logger.js +54 -0
- package/dist/lib/utils/logger.js.map +1 -0
- package/dist/lib/utils/modelFactory.d.ts +9 -0
- package/dist/lib/utils/modelFactory.d.ts.map +1 -0
- package/dist/lib/utils/modelFactory.js +45 -0
- package/dist/lib/utils/modelFactory.js.map +1 -0
- package/dist/lib/utils/mongoCacheBackend.d.ts.map +1 -0
- package/dist/lib/utils/mongoCacheBackend.js.map +1 -0
- package/dist/lib/utils/paths.d.ts.map +1 -0
- package/dist/lib/utils/paths.js.map +1 -0
- package/dist/lib/utils/pythonBin.d.ts.map +1 -0
- package/dist/lib/utils/pythonBin.js.map +1 -0
- package/dist/lib/utils/retryAsync.d.ts +19 -0
- package/dist/lib/utils/retryAsync.d.ts.map +1 -0
- package/dist/lib/utils/retryAsync.js +38 -0
- package/dist/lib/utils/retryAsync.js.map +1 -0
- package/package.json +55 -16
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/config/env.d.ts +0 -53
- package/dist/config/env.d.ts.map +0 -1
- package/dist/config/env.js +0 -15
- package/dist/config/env.js.map +0 -1
- package/dist/config/index.d.ts +0 -2
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -2
- package/dist/config/index.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib.d.ts +0 -17
- package/dist/lib.d.ts.map +0 -1
- package/dist/lib.js +0 -17
- package/dist/lib.js.map +0 -1
- package/dist/pipeline/dumper.d.ts.map +0 -1
- package/dist/pipeline/dumper.js.map +0 -1
- package/dist/pipeline/runner.d.ts.map +0 -1
- package/dist/pipeline/runner.js +0 -132
- package/dist/pipeline/runner.js.map +0 -1
- package/dist/pipeline/stages/audioProcessor.d.ts +0 -19
- package/dist/pipeline/stages/audioProcessor.d.ts.map +0 -1
- package/dist/pipeline/stages/audioProcessor.js.map +0 -1
- package/dist/pipeline/stages/clipExporter.d.ts +0 -14
- package/dist/pipeline/stages/clipExporter.d.ts.map +0 -1
- package/dist/pipeline/stages/clipExporter.js.map +0 -1
- package/dist/pipeline/stages/segmentAnalyzer.d.ts +0 -26
- package/dist/pipeline/stages/segmentAnalyzer.d.ts.map +0 -1
- package/dist/pipeline/stages/segmentAnalyzer.js +0 -47
- package/dist/pipeline/stages/segmentAnalyzer.js.map +0 -1
- package/dist/pipeline/stages/segmentSelector.d.ts.map +0 -1
- package/dist/pipeline/stages/segmentSelector.js.map +0 -1
- package/dist/pipeline/stages/videoResolver.d.ts +0 -11
- package/dist/pipeline/stages/videoResolver.d.ts.map +0 -1
- package/dist/pipeline/stages/videoResolver.js.map +0 -1
- package/dist/services/audioAnalyzers/base.d.ts.map +0 -1
- package/dist/services/audioAnalyzers/base.js.map +0 -1
- package/dist/services/audioAnalyzers/factory.d.ts.map +0 -1
- package/dist/services/audioAnalyzers/factory.js.map +0 -1
- package/dist/services/audioAnalyzers/gemini.d.ts.map +0 -1
- package/dist/services/audioAnalyzers/gemini.js.map +0 -1
- package/dist/services/audioAnalyzers/index.d.ts.map +0 -1
- package/dist/services/audioAnalyzers/index.js.map +0 -1
- package/dist/services/audioAnalyzers/whisper.d.ts +0 -13
- package/dist/services/audioAnalyzers/whisper.d.ts.map +0 -1
- package/dist/services/audioAnalyzers/whisper.js.map +0 -1
- package/dist/services/audioAnalyzers/yamnet.d.ts +0 -13
- package/dist/services/audioAnalyzers/yamnet.d.ts.map +0 -1
- package/dist/services/audioAnalyzers/yamnet.js.map +0 -1
- package/dist/services/audioDownloader/index.d.ts +0 -2
- package/dist/services/audioDownloader/index.d.ts.map +0 -1
- package/dist/services/audioDownloader/index.js.map +0 -1
- package/dist/services/audioDownloader/sliceAudio.d.ts +0 -2
- package/dist/services/audioDownloader/sliceAudio.d.ts.map +0 -1
- package/dist/services/audioDownloader/sliceAudio.js.map +0 -1
- package/dist/services/chunkBuilder/index.d.ts.map +0 -1
- package/dist/services/chunkBuilder/index.js.map +0 -1
- package/dist/services/clipGenerator/index.d.ts.map +0 -1
- package/dist/services/clipGenerator/index.js.map +0 -1
- package/dist/services/clipRefiner/index.d.ts +0 -10
- package/dist/services/clipRefiner/index.d.ts.map +0 -1
- package/dist/services/clipRefiner/index.js.map +0 -1
- package/dist/services/eventDetector/index.d.ts.map +0 -1
- package/dist/services/eventDetector/index.js.map +0 -1
- package/dist/services/llmAnalyzer/LLMAnalyzer.d.ts +0 -41
- package/dist/services/llmAnalyzer/LLMAnalyzer.d.ts.map +0 -1
- package/dist/services/llmAnalyzer/LLMAnalyzer.js +0 -62
- package/dist/services/llmAnalyzer/LLMAnalyzer.js.map +0 -1
- package/dist/services/llmAnalyzer/index.d.ts +0 -9
- package/dist/services/llmAnalyzer/index.d.ts.map +0 -1
- package/dist/services/llmAnalyzer/index.js.map +0 -1
- package/dist/services/metadataExtractor/index.d.ts +0 -12
- package/dist/services/metadataExtractor/index.d.ts.map +0 -1
- package/dist/services/metadataExtractor/index.js.map +0 -1
- package/dist/services/segmentRanker/index.d.ts.map +0 -1
- package/dist/services/segmentRanker/index.js.map +0 -1
- package/dist/services/transcriptAnalyzers/base.d.ts.map +0 -1
- package/dist/services/transcriptAnalyzers/base.js.map +0 -1
- package/dist/services/transcriptAnalyzers/factory.d.ts.map +0 -1
- package/dist/services/transcriptAnalyzers/factory.js.map +0 -1
- package/dist/services/transcriptAnalyzers/gemini.d.ts.map +0 -1
- package/dist/services/transcriptAnalyzers/gemini.js.map +0 -1
- package/dist/services/transcriptAnalyzers/index.d.ts.map +0 -1
- package/dist/services/transcriptAnalyzers/index.js.map +0 -1
- package/dist/services/transcriptAnalyzers/whisper.d.ts.map +0 -1
- package/dist/services/transcriptAnalyzers/whisper.js.map +0 -1
- package/dist/services/transcriptAnalyzers/ytdlp.d.ts +0 -26
- package/dist/services/transcriptAnalyzers/ytdlp.d.ts.map +0 -1
- package/dist/services/transcriptAnalyzers/ytdlp.js +0 -136
- package/dist/services/transcriptAnalyzers/ytdlp.js.map +0 -1
- package/dist/services/transcriptDetector/index.d.ts.map +0 -1
- package/dist/services/transcriptDetector/index.js.map +0 -1
- package/dist/services/urlParser/index.d.ts.map +0 -1
- package/dist/services/urlParser/index.js.map +0 -1
- package/dist/services/videoDownloader/index.d.ts.map +0 -1
- package/dist/services/videoDownloader/index.js.map +0 -1
- package/dist/types/analyzer.d.ts +0 -22
- package/dist/types/analyzer.d.ts.map +0 -1
- package/dist/types/audio.d.ts.map +0 -1
- package/dist/types/audio.js.map +0 -1
- package/dist/types/cache.d.ts.map +0 -1
- package/dist/types/cache.js.map +0 -1
- package/dist/types/cli.d.ts.map +0 -1
- package/dist/types/cli.js.map +0 -1
- package/dist/types/config.d.ts +0 -94
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/config.js +0 -140
- package/dist/types/config.js.map +0 -1
- package/dist/types/downloader.d.ts +0 -11
- package/dist/types/downloader.d.ts.map +0 -1
- package/dist/types/factory.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/types/pipeline.d.ts.map +0 -1
- package/dist/types/segment.d.ts.map +0 -1
- package/dist/types/segment.js.map +0 -1
- package/dist/types/transcript.d.ts.map +0 -1
- package/dist/types/transcript.js.map +0 -1
- package/dist/types/video.d.ts.map +0 -1
- package/dist/types/video.js.map +0 -1
- package/dist/utils/cache.d.ts.map +0 -1
- package/dist/utils/cache.js.map +0 -1
- package/dist/utils/cacheBackend.d.ts.map +0 -1
- package/dist/utils/cacheBackend.js.map +0 -1
- package/dist/utils/cacheFactory.d.ts.map +0 -1
- package/dist/utils/cacheFactory.js.map +0 -1
- package/dist/utils/chunker.d.ts.map +0 -1
- package/dist/utils/chunker.js.map +0 -1
- package/dist/utils/fileCacheBackend.d.ts.map +0 -1
- package/dist/utils/fileCacheBackend.js.map +0 -1
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -7
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -27
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/modelFactory.d.ts +0 -14
- package/dist/utils/modelFactory.d.ts.map +0 -1
- package/dist/utils/modelFactory.js +0 -61
- package/dist/utils/modelFactory.js.map +0 -1
- package/dist/utils/mongoCacheBackend.d.ts.map +0 -1
- package/dist/utils/mongoCacheBackend.js.map +0 -1
- package/dist/utils/paths.d.ts.map +0 -1
- package/dist/utils/paths.js.map +0 -1
- package/dist/utils/pythonBin.d.ts.map +0 -1
- package/dist/utils/pythonBin.js.map +0 -1
- /package/dist/{index.d.ts → app/cli/index.d.ts} +0 -0
- /package/dist/{pipeline → lib/pipeline}/stages/segmentSelector.d.ts +0 -0
- /package/dist/{services/chunkBuilder → lib/services/analysis/transcript/chunker}/index.js +0 -0
- /package/dist/{services/audioAnalyzers → lib/services/audio/analyzer}/index.js +0 -0
- /package/dist/{services/transcriptAnalyzers → lib/services/audio/transcriber}/gemini.js +0 -0
- /package/dist/{services/transcriptAnalyzers → lib/services/audio/transcriber}/index.js +0 -0
- /package/dist/{types → lib/types}/analyzer.js +0 -0
- /package/dist/{types → lib/types}/audio.js +0 -0
- /package/dist/{types → lib/types}/cache.d.ts +0 -0
- /package/dist/{types → lib/types}/cache.js +0 -0
- /package/dist/{types → lib/types}/cli.d.ts +0 -0
- /package/dist/{types → lib/types}/cli.js +0 -0
- /package/dist/{types → lib/types}/downloader.js +0 -0
- /package/dist/{types → lib/types}/factory.d.ts +0 -0
- /package/dist/{types → lib/types}/factory.js +0 -0
- /package/dist/{types → lib/types}/pipeline.js +0 -0
- /package/dist/{types → lib/types}/segment.js +0 -0
- /package/dist/{types → lib/types}/transcript.d.ts +0 -0
- /package/dist/{types → lib/types}/transcript.js +0 -0
- /package/dist/{types → lib/types}/video.js +0 -0
- /package/dist/{utils → lib/utils}/cache.d.ts +0 -0
- /package/dist/{utils → lib/utils}/cache.js +0 -0
- /package/dist/{utils → lib/utils}/cacheBackend.d.ts +0 -0
- /package/dist/{utils → lib/utils}/cacheBackend.js +0 -0
- /package/dist/{utils → lib/utils}/cacheFactory.d.ts +0 -0
- /package/dist/{utils → lib/utils}/cacheFactory.js +0 -0
- /package/dist/{utils → lib/utils}/chunker.d.ts +0 -0
- /package/dist/{utils → lib/utils}/chunker.js +0 -0
- /package/dist/{utils → lib/utils}/fileCacheBackend.d.ts +0 -0
- /package/dist/{utils → lib/utils}/fileCacheBackend.js +0 -0
- /package/dist/{utils → lib/utils}/format.d.ts +0 -0
- /package/dist/{utils → lib/utils}/format.js +0 -0
- /package/dist/{utils → lib/utils}/mongoCacheBackend.d.ts +0 -0
- /package/dist/{utils → lib/utils}/mongoCacheBackend.js +0 -0
- /package/dist/{utils → lib/utils}/paths.d.ts +0 -0
- /package/dist/{utils → lib/utils}/paths.js +0 -0
- /package/dist/{utils → lib/utils}/pythonBin.d.ts +0 -0
- /package/dist/{utils → lib/utils}/pythonBin.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.js","sourceRoot":"","sources":["../../../../../../src/app/web/routes/api/clips/+server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EACL,YAAY,EACZ,SAAS,EACT,MAAM,EACN,aAAa,EACb,cAAc,GACf,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,CAAC,MAAM,IAAI,GAAmB,KAAK,EAAE,KAAK,EAAE,EAAE;IAClD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1E,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;QACnE,GAAG,CAAC,IAAI,CACN,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,+BAA+B,KAAK,CAAC,UAAU,YAAY,KAAK,CAAC,OAAO,aAAa,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CACtI,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzF,GAAG,CAAC,IAAI,CACN,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,sCAAsC,KAAK,CAAC,UAAU,cAAc,KAAK,CAAC,MAAM,EAAE,CAC5G,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,SAAS,CAAC,GAAG,EAAE,kCAAkC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACnF,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,SAAS,CAAC,GAAG,EAAE,2BAA2B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.d.ts","sourceRoot":"","sources":["../../../../../../src/app/web/routes/api/config/+server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAUpD,eAAO,MAAM,GAAG,EAAE,cAiBjB,CAAC;AAIF,eAAO,MAAM,IAAI,EAAE,cAsBlB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { buildConfigRegistry, getMaskedConfig, setConfigValues } from '../../../../../lib/config/index.js';
|
|
3
|
+
import { jsonOk, jsonError, parseJsonBody, zodErrorDetail, } from '../../../lib/services/http/responses.js';
|
|
4
|
+
import { log } from '../../../../../lib/utils/logger.js';
|
|
5
|
+
export const GET = async (event) => {
|
|
6
|
+
const reqDone = log.request('GET', '/api/config', event.locals.requestId);
|
|
7
|
+
try {
|
|
8
|
+
const registry = buildConfigRegistry();
|
|
9
|
+
const values = getMaskedConfig();
|
|
10
|
+
reqDone(200);
|
|
11
|
+
return jsonOk({ registry, values });
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
reqDone(500);
|
|
15
|
+
return jsonError(500, 'Failed to load config', error instanceof Error ? error.message : String(error));
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const ConfigUpdateSchema = z.record(z.string(), z.unknown());
|
|
19
|
+
export const POST = async (event) => {
|
|
20
|
+
const reqDone = log.request('POST', '/api/config', event.locals.requestId);
|
|
21
|
+
try {
|
|
22
|
+
const updates = await parseJsonBody(event, ConfigUpdateSchema);
|
|
23
|
+
const result = setConfigValues(updates);
|
|
24
|
+
const values = getMaskedConfig();
|
|
25
|
+
reqDone(200);
|
|
26
|
+
return jsonOk({ ...result, values });
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
if (error instanceof z.ZodError) {
|
|
30
|
+
reqDone(400);
|
|
31
|
+
return jsonError(400, 'Invalid config values', zodErrorDetail(error));
|
|
32
|
+
}
|
|
33
|
+
reqDone(500);
|
|
34
|
+
return jsonError(500, 'Failed to update config', error instanceof Error ? error.message : String(error));
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=+server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.js","sourceRoot":"","sources":["../../../../../../src/app/web/routes/api/config/+server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EACL,MAAM,EACN,SAAS,EACT,aAAa,EACb,cAAc,GACf,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,CAAC,MAAM,GAAG,GAAmB,KAAK,EAAE,KAAK,EAAE,EAAE;IACjD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE1E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QAEjC,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,SAAS,CACd,GAAG,EACH,uBAAuB,EACvB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,IAAI,GAAmB,KAAK,EAAE,KAAK,EAAE,EAAE;IAClD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE3E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QAEjC,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,SAAS,CAAC,GAAG,EAAE,uBAAuB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,SAAS,CACd,GAAG,EACH,yBAAyB,EACzB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.d.ts","sourceRoot":"","sources":["../../../../../../../src/app/web/routes/api/library/analyses/+server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD,eAAO,MAAM,GAAG,EAAE,cAUjB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { listAnalyses } from '../../../../lib/services/artifacts/artifactStore.js';
|
|
2
|
+
import { errorMessage, jsonError, jsonOk } from '../../../../lib/services/http/responses.js';
|
|
3
|
+
import { log } from '../../../../../../lib/utils/logger.js';
|
|
4
|
+
export const GET = async ({ locals }) => {
|
|
5
|
+
const reqDone = log.request('GET', '/api/library/analyses', locals.requestId);
|
|
6
|
+
try {
|
|
7
|
+
const analyses = await listAnalyses(locals.config.OUTPUT_DIR);
|
|
8
|
+
reqDone(200);
|
|
9
|
+
return jsonOk({ analyses });
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
reqDone(500);
|
|
13
|
+
return jsonError(500, 'Failed to list saved analyses.', errorMessage(error));
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=+server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.js","sourceRoot":"","sources":["../../../../../../../src/app/web/routes/api/library/analyses/+server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kDAAkD,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,CAAC,MAAM,GAAG,GAAmB,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACtD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,uBAAuB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,SAAS,CAAC,GAAG,EAAE,gCAAgC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.d.ts","sourceRoot":"","sources":["../../../../../../../../src/app/web/routes/api/library/analyses/[analysisId]/+server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAcpD,eAAO,MAAM,GAAG,EAAE,cAyBjB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getAnalysis } from '../../../../../lib/services/artifacts/artifactStore.js';
|
|
3
|
+
import { errorMessage, jsonError, jsonOk, zodErrorDetail, } from '../../../../../lib/services/http/responses.js';
|
|
4
|
+
import { log } from '../../../../../../../lib/utils/logger.js';
|
|
5
|
+
const AnalysisParamsSchema = z.object({
|
|
6
|
+
analysisId: z.string().min(1),
|
|
7
|
+
});
|
|
8
|
+
export const GET = async ({ params, locals }) => {
|
|
9
|
+
const reqDone = log.request('GET', '/api/library/analyses/[analysisId]', locals.requestId, {
|
|
10
|
+
analysisId: params.analysisId,
|
|
11
|
+
});
|
|
12
|
+
const parsed = AnalysisParamsSchema.safeParse(params);
|
|
13
|
+
if (!parsed.success) {
|
|
14
|
+
reqDone(400);
|
|
15
|
+
return jsonError(400, 'Invalid analysis lookup request.', zodErrorDetail(parsed.error));
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const analysis = await getAnalysis(locals.config.OUTPUT_DIR, parsed.data.analysisId);
|
|
19
|
+
if (!analysis) {
|
|
20
|
+
reqDone(404);
|
|
21
|
+
return jsonError(404, 'Analysis artifact was not found.');
|
|
22
|
+
}
|
|
23
|
+
reqDone(200);
|
|
24
|
+
return jsonOk(analysis);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
reqDone(500);
|
|
28
|
+
return jsonError(500, 'Failed to load saved analysis.', errorMessage(error));
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=+server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.js","sourceRoot":"","sources":["../../../../../../../../src/app/web/routes/api/library/analyses/[analysisId]/+server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAC/E,OAAO,EACL,YAAY,EACZ,SAAS,EACT,MAAM,EACN,cAAc,GACf,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,GAAG,GAAmB,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;IAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,oCAAoC,EAAE,MAAM,CAAC,SAAS,EAAE;QACzF,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,SAAS,CAAC,GAAG,EAAE,kCAAkC,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAErF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,SAAS,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,SAAS,CAAC,GAAG,EAAE,gCAAgC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.d.ts","sourceRoot":"","sources":["../../../../../../../src/app/web/routes/api/library/clips/+server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAapD,eAAO,MAAM,GAAG,EAAE,cAsBjB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { listClipArtifacts, listClipArtifactsByAnalysisId, } from '../../../../lib/services/artifacts/artifactStore.js';
|
|
3
|
+
import { errorMessage, jsonError, jsonOk } from '../../../../lib/services/http/responses.js';
|
|
4
|
+
import { log } from '../../../../../../lib/utils/logger.js';
|
|
5
|
+
const ListClipsQuerySchema = z.object({
|
|
6
|
+
analysisId: z.string().min(1).optional(),
|
|
7
|
+
});
|
|
8
|
+
export const GET = async ({ locals, url }) => {
|
|
9
|
+
const reqDone = log.request('GET', '/api/library/clips', locals.requestId);
|
|
10
|
+
const parsed = ListClipsQuerySchema.safeParse({
|
|
11
|
+
analysisId: url.searchParams.get('analysisId') ?? undefined,
|
|
12
|
+
});
|
|
13
|
+
if (!parsed.success) {
|
|
14
|
+
reqDone(400);
|
|
15
|
+
return jsonError(400, 'Invalid clip listing request.', parsed.error.issues[0]?.message);
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const clips = parsed.data.analysisId
|
|
19
|
+
? await listClipArtifactsByAnalysisId(locals.config.OUTPUT_DIR, parsed.data.analysisId)
|
|
20
|
+
: await listClipArtifacts(locals.config.OUTPUT_DIR);
|
|
21
|
+
reqDone(200);
|
|
22
|
+
return jsonOk({ clips });
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
reqDone(500);
|
|
26
|
+
return jsonError(500, 'Failed to list saved clips.', errorMessage(error));
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=+server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.js","sourceRoot":"","sources":["../../../../../../../src/app/web/routes/api/library/clips/+server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,6BAA6B,GAC9B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,GAAG,GAAmB,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;IAC3D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAE3E,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC;QAC5C,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,SAAS;KAC5D,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,SAAS,CAAC,GAAG,EAAE,+BAA+B,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU;YAClC,CAAC,CAAC,MAAM,6BAA6B,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YACvF,CAAC,CAAC,MAAM,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,SAAS,CAAC,GAAG,EAAE,6BAA6B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.d.ts","sourceRoot":"","sources":["../../../../../../../src/app/web/routes/api/publish/drafts/+server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAYpD,eAAO,MAAM,IAAI,EAAE,cAqBlB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { savePublishDraftFromRequest } from '../../../../lib/services/publishing/draftService.js';
|
|
3
|
+
import { errorMessage, jsonError, jsonOk, parseJsonBody, zodErrorDetail, } from '../../../../lib/services/http/responses.js';
|
|
4
|
+
import { SavePublishDraftRequestSchema } from '../../../../types/publish.js';
|
|
5
|
+
import { log } from '../../../../../../lib/utils/logger.js';
|
|
6
|
+
export const POST = async (event) => {
|
|
7
|
+
const reqDone = log.request('POST', '/api/publish/drafts', event.locals.requestId);
|
|
8
|
+
try {
|
|
9
|
+
const input = await parseJsonBody(event, SavePublishDraftRequestSchema);
|
|
10
|
+
const draft = await savePublishDraftFromRequest(input, event.locals.config, event.locals.requestId);
|
|
11
|
+
reqDone(200);
|
|
12
|
+
return jsonOk({ draft });
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
if (error instanceof z.ZodError) {
|
|
16
|
+
reqDone(400);
|
|
17
|
+
return jsonError(400, 'Invalid publish draft request.', zodErrorDetail(error));
|
|
18
|
+
}
|
|
19
|
+
reqDone(500);
|
|
20
|
+
return jsonError(500, 'Failed to save publish draft.', errorMessage(error));
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=+server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.js","sourceRoot":"","sources":["../../../../../../../src/app/web/routes/api/publish/drafts/+server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AAC/F,OAAO,EACL,YAAY,EACZ,SAAS,EACT,MAAM,EACN,aAAa,EACb,cAAc,GACf,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,CAAC,MAAM,IAAI,GAAmB,KAAK,EAAE,KAAK,EAAE,EAAE;IAClD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEnF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,MAAM,2BAA2B,CAC7C,KAAK,EACL,KAAK,CAAC,MAAM,CAAC,MAAM,EACnB,KAAK,CAAC,MAAM,CAAC,SAAS,CACvB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,SAAS,CAAC,GAAG,EAAE,gCAAgC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACjF,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,SAAS,CAAC,GAAG,EAAE,+BAA+B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.d.ts","sourceRoot":"","sources":["../../../../../../../../src/app/web/routes/api/publish/drafts/[analysisId]/+server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAepD,eAAO,MAAM,GAAG,EAAE,cA4BjB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getPublishDraft } from '../../../../../lib/services/artifacts/artifactStore.js';
|
|
3
|
+
import { buildPublishDraft } from '../../../../../lib/services/publishing/draftService.js';
|
|
4
|
+
import { errorMessage, jsonError, jsonOk, zodErrorDetail, } from '../../../../../lib/services/http/responses.js';
|
|
5
|
+
import { log } from '../../../../../../../lib/utils/logger.js';
|
|
6
|
+
const DraftParamsSchema = z.object({
|
|
7
|
+
analysisId: z.string().min(1),
|
|
8
|
+
});
|
|
9
|
+
export const GET = async ({ params, locals }) => {
|
|
10
|
+
const reqDone = log.request('GET', '/api/publish/drafts/[analysisId]', locals.requestId, {
|
|
11
|
+
analysisId: params.analysisId,
|
|
12
|
+
});
|
|
13
|
+
const parsed = DraftParamsSchema.safeParse(params);
|
|
14
|
+
if (!parsed.success) {
|
|
15
|
+
reqDone(400);
|
|
16
|
+
return jsonError(400, 'Invalid publish draft request.', zodErrorDetail(parsed.error));
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const existingDraft = await getPublishDraft(locals.config.OUTPUT_DIR, parsed.data.analysisId);
|
|
20
|
+
const draft = existingDraft ??
|
|
21
|
+
(await buildPublishDraft(parsed.data.analysisId, locals.config, locals.requestId));
|
|
22
|
+
if (!draft) {
|
|
23
|
+
reqDone(404);
|
|
24
|
+
return jsonError(404, 'Publish draft could not be created for this analysis yet.');
|
|
25
|
+
}
|
|
26
|
+
reqDone(200);
|
|
27
|
+
return jsonOk({ draft });
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
reqDone(500);
|
|
31
|
+
return jsonError(500, 'Failed to load publish draft.', errorMessage(error));
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=+server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.js","sourceRoot":"","sources":["../../../../../../../../src/app/web/routes/api/publish/drafts/[analysisId]/+server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACrF,OAAO,EACL,YAAY,EACZ,SAAS,EACT,MAAM,EACN,cAAc,GACf,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,GAAG,GAAmB,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;IAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,kCAAkC,EAAE,MAAM,CAAC,SAAS,EAAE;QACvF,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEnD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,SAAS,CAAC,GAAG,EAAE,gCAAgC,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9F,MAAM,KAAK,GACT,aAAa;YACb,CAAC,MAAM,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAErF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,SAAS,CAAC,GAAG,EAAE,2DAA2D,CAAC,CAAC;QACrF,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,SAAS,CAAC,GAAG,EAAE,+BAA+B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.d.ts","sourceRoot":"","sources":["../../../../../../../../src/app/web/routes/api/publish/drafts/generate/+server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAcpD,eAAO,MAAM,IAAI,EAAE,cAqClB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { generatePublishMetadata } from '../../../../../lib/services/publishing/metadataService.js';
|
|
3
|
+
import { loadYouTubeAuthState } from '../../../../../lib/services/youtube/authStore.js';
|
|
4
|
+
import { errorMessage, jsonError, jsonOk, parseJsonBody, zodErrorDetail, } from '../../../../../lib/services/http/responses.js';
|
|
5
|
+
import { GeneratePublishMetadataRequestSchema } from '../../../../../types/publish.js';
|
|
6
|
+
import { log } from '../../../../../../../lib/utils/logger.js';
|
|
7
|
+
export const POST = async (event) => {
|
|
8
|
+
const reqDone = log.request('POST', '/api/publish/drafts/generate', event.locals.requestId);
|
|
9
|
+
try {
|
|
10
|
+
const input = await parseJsonBody(event, GeneratePublishMetadataRequestSchema);
|
|
11
|
+
log.info(`[publish-metadata] request workflow="${input.workflowTitle}" items=${input.items.length}${input.sourceChannelTitle ? ` source="${input.sourceChannelTitle}"` : ''}`);
|
|
12
|
+
// Best-effort: read upload channel name. Non-throwing — if not connected, omit.
|
|
13
|
+
const auth = await loadYouTubeAuthState().catch(() => null);
|
|
14
|
+
const context = {
|
|
15
|
+
videoDescription: input.videoDescription,
|
|
16
|
+
sourceChannelTitle: input.sourceChannelTitle,
|
|
17
|
+
uploadChannelName: auth?.channel.title,
|
|
18
|
+
};
|
|
19
|
+
const items = await generatePublishMetadata(input.workflowTitle, input.items, event.locals.config, context, event.locals.requestId);
|
|
20
|
+
reqDone(200);
|
|
21
|
+
return jsonOk({ items });
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
if (error instanceof z.ZodError) {
|
|
25
|
+
reqDone(400);
|
|
26
|
+
return jsonError(400, 'Invalid metadata generation request.', zodErrorDetail(error));
|
|
27
|
+
}
|
|
28
|
+
reqDone(500);
|
|
29
|
+
log.error(`[publish-metadata] request error: ${errorMessage(error)}`);
|
|
30
|
+
return jsonError(500, 'Failed to generate publish metadata.', errorMessage(error));
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=+server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.js","sourceRoot":"","sources":["../../../../../../../../src/app/web/routes/api/publish/drafts/generate/+server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAE9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EACL,YAAY,EACZ,SAAS,EACT,MAAM,EACN,aAAa,EACb,cAAc,GACf,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,oCAAoC,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,CAAC,MAAM,IAAI,GAAmB,KAAK,EAAE,KAAK,EAAE,EAAE;IAClD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,8BAA8B,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE5F,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,oCAAoC,CAAC,CAAC;QAC/E,GAAG,CAAC,IAAI,CACN,wCAAwC,KAAK,CAAC,aAAa,WAAW,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrK,CAAC;QAEF,gFAAgF;QAChF,MAAM,IAAI,GAAG,MAAM,oBAAoB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAE5D,MAAM,OAAO,GAA8B;YACzC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,iBAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK;SACvC,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,uBAAuB,CACzC,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,MAAM,CAAC,MAAM,EACnB,OAAO,EACP,KAAK,CAAC,MAAM,CAAC,SAAS,CACvB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,SAAS,CAAC,GAAG,EAAE,sCAAsC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACvF,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,qCAAqC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtE,OAAO,SAAS,CAAC,GAAG,EAAE,sCAAsC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACrF,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.d.ts","sourceRoot":"","sources":["../../../../../../../src/app/web/routes/api/publish/thumbnails/+server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAOpD,eAAO,MAAM,IAAI,EAAE,cAiDlB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { promises as fs } from 'fs';
|
|
2
|
+
import { extname, join } from 'path';
|
|
3
|
+
import { errorMessage, jsonError, jsonOk } from '../../../../lib/services/http/responses.js';
|
|
4
|
+
import { log } from '../../../../../../lib/utils/logger.js';
|
|
5
|
+
const ALLOWED_MIME_PREFIXES = ['image/jpeg', 'image/png', 'image/webp'];
|
|
6
|
+
const ALLOWED_EXTENSIONS = new Set(['.jpg', '.jpeg', '.png', '.webp']);
|
|
7
|
+
export const POST = async (event) => {
|
|
8
|
+
const reqDone = log.request('POST', '/api/publish/thumbnails', event.locals.requestId);
|
|
9
|
+
try {
|
|
10
|
+
const formData = await event.request.formData();
|
|
11
|
+
const clipArtifactId = formData.get('clipArtifactId');
|
|
12
|
+
const file = formData.get('file');
|
|
13
|
+
if (typeof clipArtifactId !== 'string' || !clipArtifactId.trim()) {
|
|
14
|
+
reqDone(400);
|
|
15
|
+
return jsonError(400, 'Missing clipArtifactId field.');
|
|
16
|
+
}
|
|
17
|
+
if (!(file instanceof File)) {
|
|
18
|
+
reqDone(400);
|
|
19
|
+
return jsonError(400, 'Missing file field.');
|
|
20
|
+
}
|
|
21
|
+
const mimeType = file.type.split(';')[0].trim().toLowerCase();
|
|
22
|
+
if (!ALLOWED_MIME_PREFIXES.some((prefix) => mimeType === prefix)) {
|
|
23
|
+
reqDone(400);
|
|
24
|
+
return jsonError(400, `Unsupported image type: ${mimeType}. Use JPEG, PNG, or WebP.`);
|
|
25
|
+
}
|
|
26
|
+
const ext = extname(file.name).toLowerCase() || mimeTypeToExt(mimeType);
|
|
27
|
+
if (!ALLOWED_EXTENSIONS.has(ext)) {
|
|
28
|
+
reqDone(400);
|
|
29
|
+
return jsonError(400, `Unsupported file extension: ${ext}.`);
|
|
30
|
+
}
|
|
31
|
+
const thumbnailDir = join(event.locals.config.OUTPUT_DIR, 'thumbnails');
|
|
32
|
+
await fs.mkdir(thumbnailDir, { recursive: true });
|
|
33
|
+
const filename = `${clipArtifactId}${ext}`;
|
|
34
|
+
const outputPath = join(thumbnailDir, filename);
|
|
35
|
+
const buffer = Buffer.from(await file.arrayBuffer());
|
|
36
|
+
await fs.writeFile(outputPath, buffer);
|
|
37
|
+
log.info(`${event.locals.requestId ?? 'no-request-id'} [publish-thumbnails] [saved] | clipArtifactId=${clipArtifactId} path=${outputPath} bytes=${buffer.length}`);
|
|
38
|
+
reqDone(200);
|
|
39
|
+
return jsonOk({ path: outputPath });
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
reqDone(500);
|
|
43
|
+
return jsonError(500, 'Failed to save thumbnail.', errorMessage(error));
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
function mimeTypeToExt(mimeType) {
|
|
47
|
+
if (mimeType === 'image/png')
|
|
48
|
+
return '.png';
|
|
49
|
+
if (mimeType === 'image/webp')
|
|
50
|
+
return '.webp';
|
|
51
|
+
return '.jpg';
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=+server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.js","sourceRoot":"","sources":["../../../../../../../src/app/web/routes/api/publish/thumbnails/+server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.d.ts","sourceRoot":"","sources":["../../../../../../../../src/app/web/routes/api/youtube/auth/callback/+server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,cAAc,EAAE,MAAM,eAAe,CAAC;AAQ7D,eAAO,MAAM,GAAG,EAAE,cAkCjB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { redirect } from '@sveltejs/kit';
|
|
2
|
+
import { completeYouTubeOAuthCallback } from '../../../../../lib/services/youtube/uploadAuth.js';
|
|
3
|
+
import { log } from '../../../../../../../lib/utils/logger.js';
|
|
4
|
+
const OAUTH_STATE_COOKIE = 'yt_oauth_state';
|
|
5
|
+
const OAUTH_VERIFIER_COOKIE = 'yt_oauth_verifier';
|
|
6
|
+
const OAUTH_RETURN_TO_COOKIE = 'yt_oauth_return_to';
|
|
7
|
+
export const GET = async ({ url, cookies, locals }) => {
|
|
8
|
+
const reqDone = log.request('GET', '/api/youtube/auth/callback', locals.requestId);
|
|
9
|
+
const code = url.searchParams.get('code');
|
|
10
|
+
const state = url.searchParams.get('state');
|
|
11
|
+
const authError = url.searchParams.get('error');
|
|
12
|
+
const expectedState = cookies.get(OAUTH_STATE_COOKIE);
|
|
13
|
+
const codeVerifier = cookies.get(OAUTH_VERIFIER_COOKIE);
|
|
14
|
+
const returnTo = cookies.get(OAUTH_RETURN_TO_COOKIE) ?? '/';
|
|
15
|
+
clearOAuthCookies(cookies);
|
|
16
|
+
if (authError) {
|
|
17
|
+
reqDone(302);
|
|
18
|
+
throw redirect(302, appendAuthError(returnTo, `Google OAuth failed: ${authError}`));
|
|
19
|
+
}
|
|
20
|
+
if (!code || !state || !expectedState || !codeVerifier || state !== expectedState) {
|
|
21
|
+
reqDone(302);
|
|
22
|
+
throw redirect(302, appendAuthError(returnTo, 'Google OAuth callback validation failed.'));
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
await completeYouTubeOAuthCallback(code, {
|
|
26
|
+
state,
|
|
27
|
+
codeVerifier,
|
|
28
|
+
returnTo,
|
|
29
|
+
});
|
|
30
|
+
reqDone(302);
|
|
31
|
+
throw redirect(302, returnTo);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
35
|
+
reqDone(302);
|
|
36
|
+
throw redirect(302, appendAuthError(returnTo, message));
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
function clearOAuthCookies(cookies) {
|
|
40
|
+
cookies.delete(OAUTH_STATE_COOKIE, { path: '/' });
|
|
41
|
+
cookies.delete(OAUTH_VERIFIER_COOKIE, { path: '/' });
|
|
42
|
+
cookies.delete(OAUTH_RETURN_TO_COOKIE, { path: '/' });
|
|
43
|
+
}
|
|
44
|
+
function appendAuthError(returnTo, message) {
|
|
45
|
+
const url = new URL(returnTo, 'http://localhost');
|
|
46
|
+
url.searchParams.set('authError', message);
|
|
47
|
+
return `${url.pathname}${url.search}`;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=+server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.js","sourceRoot":"","sources":["../../../../../../../../src/app/web/routes/api/youtube/auth/callback/+server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.d.ts","sourceRoot":"","sources":["../../../../../../../../src/app/web/routes/api/youtube/auth/disconnect/+server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD,eAAO,MAAM,IAAI,EAAE,cAWlB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { disconnectYouTubeAuth } from '../../../../../lib/services/youtube/uploadAuth.js';
|
|
2
|
+
import { errorMessage, jsonError, jsonOk } from '../../../../../lib/services/http/responses.js';
|
|
3
|
+
import { log } from '../../../../../../../lib/utils/logger.js';
|
|
4
|
+
export const POST = async ({ locals }) => {
|
|
5
|
+
const reqDone = log.request('POST', '/api/youtube/auth/disconnect', locals.requestId);
|
|
6
|
+
try {
|
|
7
|
+
await disconnectYouTubeAuth();
|
|
8
|
+
reqDone(200);
|
|
9
|
+
return jsonOk({ success: true });
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
reqDone(500);
|
|
13
|
+
return jsonError(500, 'Failed to disconnect YouTube auth.', errorMessage(error));
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=+server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.js","sourceRoot":"","sources":["../../../../../../../../src/app/web/routes/api/youtube/auth/disconnect/+server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,CAAC,MAAM,IAAI,GAAmB,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACvD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,8BAA8B,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAEtF,IAAI,CAAC;QACH,MAAM,qBAAqB,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,SAAS,CAAC,GAAG,EAAE,oCAAoC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACnF,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.d.ts","sourceRoot":"","sources":["../../../../../../../../src/app/web/routes/api/youtube/auth/manual/+server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAYpD,eAAO,MAAM,IAAI,EAAE,cAiBlB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { saveManualYouTubeAuth } from '../../../../../lib/services/youtube/uploadAuth.js';
|
|
3
|
+
import { errorMessage, jsonError, jsonOk, parseJsonBody, zodErrorDetail, } from '../../../../../lib/services/http/responses.js';
|
|
4
|
+
import { SaveYouTubeManualAuthRequestSchema } from '../../../../../types/publish.js';
|
|
5
|
+
import { log } from '../../../../../../../lib/utils/logger.js';
|
|
6
|
+
export const POST = async (event) => {
|
|
7
|
+
const reqDone = log.request('POST', '/api/youtube/auth/manual', event.locals.requestId);
|
|
8
|
+
try {
|
|
9
|
+
const input = await parseJsonBody(event, SaveYouTubeManualAuthRequestSchema);
|
|
10
|
+
const status = await saveManualYouTubeAuth(input);
|
|
11
|
+
reqDone(200);
|
|
12
|
+
return jsonOk(status);
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
if (error instanceof z.ZodError) {
|
|
16
|
+
reqDone(400);
|
|
17
|
+
return jsonError(400, 'Invalid YouTube auth request.', zodErrorDetail(error));
|
|
18
|
+
}
|
|
19
|
+
reqDone(500);
|
|
20
|
+
return jsonError(500, 'Failed to save YouTube auth.', errorMessage(error));
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=+server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.js","sourceRoot":"","sources":["../../../../../../../../src/app/web/routes/api/youtube/auth/manual/+server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EACL,YAAY,EACZ,SAAS,EACT,MAAM,EACN,aAAa,EACb,cAAc,GACf,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,kCAAkC,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,CAAC,MAAM,IAAI,GAAmB,KAAK,EAAE,KAAK,EAAE,EAAE;IAClD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,0BAA0B,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAExF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,kCAAkC,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,SAAS,CAAC,GAAG,EAAE,+BAA+B,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,SAAS,CAAC,GAAG,EAAE,8BAA8B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.d.ts","sourceRoot":"","sources":["../../../../../../../../src/app/web/routes/api/youtube/auth/start/+server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAW,cAAc,EAAE,MAAM,eAAe,CAAC;AAQ7D,eAAO,MAAM,GAAG,EAAE,cAkBjB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { randomBytes } from 'crypto';
|
|
2
|
+
import { redirect } from '@sveltejs/kit';
|
|
3
|
+
import { buildYouTubeOAuthAuthorizationUrl } from '../../../../../lib/services/youtube/uploadAuth.js';
|
|
4
|
+
import { log } from '../../../../../../../lib/utils/logger.js';
|
|
5
|
+
const OAUTH_STATE_COOKIE = 'yt_oauth_state';
|
|
6
|
+
const OAUTH_VERIFIER_COOKIE = 'yt_oauth_verifier';
|
|
7
|
+
const OAUTH_RETURN_TO_COOKIE = 'yt_oauth_return_to';
|
|
8
|
+
export const GET = async ({ url, cookies, locals }) => {
|
|
9
|
+
const reqDone = log.request('GET', '/api/youtube/auth/start', locals.requestId);
|
|
10
|
+
const returnTo = sanitizeReturnTo(url.searchParams.get('returnTo'));
|
|
11
|
+
const state = toBase64Url(randomBytes(24));
|
|
12
|
+
const codeVerifier = toBase64Url(randomBytes(48));
|
|
13
|
+
setOAuthCookie(cookies, OAUTH_STATE_COOKIE, state);
|
|
14
|
+
setOAuthCookie(cookies, OAUTH_VERIFIER_COOKIE, codeVerifier);
|
|
15
|
+
setOAuthCookie(cookies, OAUTH_RETURN_TO_COOKIE, returnTo);
|
|
16
|
+
const authUrl = buildYouTubeOAuthAuthorizationUrl({
|
|
17
|
+
state,
|
|
18
|
+
codeVerifier,
|
|
19
|
+
returnTo,
|
|
20
|
+
});
|
|
21
|
+
reqDone(302);
|
|
22
|
+
throw redirect(302, authUrl);
|
|
23
|
+
};
|
|
24
|
+
function sanitizeReturnTo(value) {
|
|
25
|
+
if (!value || !value.startsWith('/'))
|
|
26
|
+
return '/';
|
|
27
|
+
if (value.startsWith('//'))
|
|
28
|
+
return '/';
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
function setOAuthCookie(cookies, name, value) {
|
|
32
|
+
cookies.set(name, value, {
|
|
33
|
+
path: '/',
|
|
34
|
+
httpOnly: true,
|
|
35
|
+
sameSite: 'lax',
|
|
36
|
+
secure: false,
|
|
37
|
+
maxAge: 60 * 10,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function toBase64Url(buffer) {
|
|
41
|
+
return buffer.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=+server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.js","sourceRoot":"","sources":["../../../../../../../../src/app/web/routes/api/youtube/auth/start/+server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,iCAAiC,EAAE,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAC5C,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AAClD,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAEpD,MAAM,CAAC,MAAM,GAAG,GAAmB,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;IACpE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,yBAAyB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAElD,cAAc,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACnD,cAAc,CAAC,OAAO,EAAE,qBAAqB,EAAE,YAAY,CAAC,CAAC;IAC7D,cAAc,CAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,iCAAiC,CAAC;QAChD,KAAK;QACL,YAAY;QACZ,QAAQ;KACT,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,CAAC;IACb,MAAM,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,SAAS,gBAAgB,CAAC,KAAoB;IAC5C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACjD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IACvC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB,EAAE,IAAY,EAAE,KAAa;IACnE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QACvB,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,EAAE,GAAG,EAAE;KAChB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC/F,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"+server.d.ts","sourceRoot":"","sources":["../../../../../../../../src/app/web/routes/api/youtube/auth/status/+server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD,eAAO,MAAM,GAAG,EAAE,cAWjB,CAAC"}
|