@jazzmind/busibox-app 3.0.18
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 +158 -0
- package/dist/components/UserDropdown.d.ts +51 -0
- package/dist/components/UserDropdown.d.ts.map +1 -0
- package/dist/components/UserDropdown.js +88 -0
- package/dist/components/UserDropdown.js.map +1 -0
- package/dist/components/account/ChannelLinkingSettings.d.ts +2 -0
- package/dist/components/account/ChannelLinkingSettings.d.ts.map +1 -0
- package/dist/components/account/ChannelLinkingSettings.js +102 -0
- package/dist/components/account/ChannelLinkingSettings.js.map +1 -0
- package/dist/components/auth/PasskeyRequiredWrapper.d.ts +15 -0
- package/dist/components/auth/PasskeyRequiredWrapper.d.ts.map +1 -0
- package/dist/components/auth/PasskeyRequiredWrapper.js +125 -0
- package/dist/components/auth/PasskeyRequiredWrapper.js.map +1 -0
- package/dist/components/auth/ProtectedRoute.d.ts +21 -0
- package/dist/components/auth/ProtectedRoute.d.ts.map +1 -0
- package/dist/components/auth/ProtectedRoute.js +55 -0
- package/dist/components/auth/ProtectedRoute.js.map +1 -0
- package/dist/components/auth/SessionProvider.d.ts +88 -0
- package/dist/components/auth/SessionProvider.d.ts.map +1 -0
- package/dist/components/auth/SessionProvider.js +417 -0
- package/dist/components/auth/SessionProvider.js.map +1 -0
- package/dist/components/chat/AgentBadge.d.ts +14 -0
- package/dist/components/chat/AgentBadge.d.ts.map +1 -0
- package/dist/components/chat/AgentBadge.js +15 -0
- package/dist/components/chat/AgentBadge.js.map +1 -0
- package/dist/components/chat/AgentSelectionPanel.d.ts +23 -0
- package/dist/components/chat/AgentSelectionPanel.d.ts.map +1 -0
- package/dist/components/chat/AgentSelectionPanel.js +49 -0
- package/dist/components/chat/AgentSelectionPanel.js.map +1 -0
- package/dist/components/chat/AgentSelector.d.ts +23 -0
- package/dist/components/chat/AgentSelector.d.ts.map +1 -0
- package/dist/components/chat/AgentSelector.js +76 -0
- package/dist/components/chat/AgentSelector.js.map +1 -0
- package/dist/components/chat/AgentToolSelector.d.ts +19 -0
- package/dist/components/chat/AgentToolSelector.d.ts.map +1 -0
- package/dist/components/chat/AgentToolSelector.js +62 -0
- package/dist/components/chat/AgentToolSelector.js.map +1 -0
- package/dist/components/chat/AttachmentPreview.d.ts +13 -0
- package/dist/components/chat/AttachmentPreview.d.ts.map +1 -0
- package/dist/components/chat/AttachmentPreview.js +36 -0
- package/dist/components/chat/AttachmentPreview.js.map +1 -0
- package/dist/components/chat/AttachmentUploader.d.ts +25 -0
- package/dist/components/chat/AttachmentUploader.d.ts.map +1 -0
- package/dist/components/chat/AttachmentUploader.js +97 -0
- package/dist/components/chat/AttachmentUploader.js.map +1 -0
- package/dist/components/chat/ChatContainer.d.ts +30 -0
- package/dist/components/chat/ChatContainer.d.ts.map +1 -0
- package/dist/components/chat/ChatContainer.js +1054 -0
- package/dist/components/chat/ChatContainer.js.map +1 -0
- package/dist/components/chat/ChatInterface.d.ts +16 -0
- package/dist/components/chat/ChatInterface.d.ts.map +1 -0
- package/dist/components/chat/ChatInterface.js +129 -0
- package/dist/components/chat/ChatInterface.js.map +1 -0
- package/dist/components/chat/ChatPage.d.ts +46 -0
- package/dist/components/chat/ChatPage.d.ts.map +1 -0
- package/dist/components/chat/ChatPage.js +92 -0
- package/dist/components/chat/ChatPage.js.map +1 -0
- package/dist/components/chat/ChatSkeleton.d.ts +9 -0
- package/dist/components/chat/ChatSkeleton.d.ts.map +1 -0
- package/dist/components/chat/ChatSkeleton.js +12 -0
- package/dist/components/chat/ChatSkeleton.js.map +1 -0
- package/dist/components/chat/ConversationSettings.d.ts +10 -0
- package/dist/components/chat/ConversationSettings.d.ts.map +1 -0
- package/dist/components/chat/ConversationSettings.js +131 -0
- package/dist/components/chat/ConversationSettings.js.map +1 -0
- package/dist/components/chat/ConversationSidebar.d.ts +7 -0
- package/dist/components/chat/ConversationSidebar.d.ts.map +1 -0
- package/dist/components/chat/ConversationSidebar.js +120 -0
- package/dist/components/chat/ConversationSidebar.js.map +1 -0
- package/dist/components/chat/DeleteConversationModal.d.ts +12 -0
- package/dist/components/chat/DeleteConversationModal.d.ts.map +1 -0
- package/dist/components/chat/DeleteConversationModal.js +26 -0
- package/dist/components/chat/DeleteConversationModal.js.map +1 -0
- package/dist/components/chat/FullChatInterface.d.ts +48 -0
- package/dist/components/chat/FullChatInterface.d.ts.map +1 -0
- package/dist/components/chat/FullChatInterface.js +439 -0
- package/dist/components/chat/FullChatInterface.js.map +1 -0
- package/dist/components/chat/InsightEditModal.d.ts +21 -0
- package/dist/components/chat/InsightEditModal.d.ts.map +1 -0
- package/dist/components/chat/InsightEditModal.js +64 -0
- package/dist/components/chat/InsightEditModal.js.map +1 -0
- package/dist/components/chat/LibrarySelector.d.ts +25 -0
- package/dist/components/chat/LibrarySelector.d.ts.map +1 -0
- package/dist/components/chat/LibrarySelector.js +100 -0
- package/dist/components/chat/LibrarySelector.js.map +1 -0
- package/dist/components/chat/MessageInput.d.ts +21 -0
- package/dist/components/chat/MessageInput.d.ts.map +1 -0
- package/dist/components/chat/MessageInput.js +154 -0
- package/dist/components/chat/MessageInput.js.map +1 -0
- package/dist/components/chat/MessageList.d.ts +57 -0
- package/dist/components/chat/MessageList.d.ts.map +1 -0
- package/dist/components/chat/MessageList.js +176 -0
- package/dist/components/chat/MessageList.js.map +1 -0
- package/dist/components/chat/ModelSelector.d.ts +13 -0
- package/dist/components/chat/ModelSelector.d.ts.map +1 -0
- package/dist/components/chat/ModelSelector.js +62 -0
- package/dist/components/chat/ModelSelector.js.map +1 -0
- package/dist/components/chat/RawContentToggle.d.ts +17 -0
- package/dist/components/chat/RawContentToggle.d.ts.map +1 -0
- package/dist/components/chat/RawContentToggle.js +19 -0
- package/dist/components/chat/RawContentToggle.js.map +1 -0
- package/dist/components/chat/SearchToggles.d.ts +25 -0
- package/dist/components/chat/SearchToggles.d.ts.map +1 -0
- package/dist/components/chat/SearchToggles.js +125 -0
- package/dist/components/chat/SearchToggles.js.map +1 -0
- package/dist/components/chat/SimpleChatInterface.d.ts +64 -0
- package/dist/components/chat/SimpleChatInterface.d.ts.map +1 -0
- package/dist/components/chat/SimpleChatInterface.js +585 -0
- package/dist/components/chat/SimpleChatInterface.js.map +1 -0
- package/dist/components/chat/ThinkingSection.d.ts +34 -0
- package/dist/components/chat/ThinkingSection.d.ts.map +1 -0
- package/dist/components/chat/ThinkingSection.js +82 -0
- package/dist/components/chat/ThinkingSection.js.map +1 -0
- package/dist/components/chat/ThinkingToggle.d.ts +31 -0
- package/dist/components/chat/ThinkingToggle.d.ts.map +1 -0
- package/dist/components/chat/ThinkingToggle.js +47 -0
- package/dist/components/chat/ThinkingToggle.js.map +1 -0
- package/dist/components/chat/ToolSelector.d.ts +22 -0
- package/dist/components/chat/ToolSelector.d.ts.map +1 -0
- package/dist/components/chat/ToolSelector.js +72 -0
- package/dist/components/chat/ToolSelector.js.map +1 -0
- package/dist/components/documents/AppDataItemActions.d.ts +18 -0
- package/dist/components/documents/AppDataItemActions.d.ts.map +1 -0
- package/dist/components/documents/AppDataItemActions.js +62 -0
- package/dist/components/documents/AppDataItemActions.js.map +1 -0
- package/dist/components/documents/AppDataList.d.ts +8 -0
- package/dist/components/documents/AppDataList.d.ts.map +1 -0
- package/dist/components/documents/AppDataList.js +166 -0
- package/dist/components/documents/AppDataList.js.map +1 -0
- package/dist/components/documents/ChunksBrowser.d.ts +7 -0
- package/dist/components/documents/ChunksBrowser.d.ts.map +1 -0
- package/dist/components/documents/ChunksBrowser.js +130 -0
- package/dist/components/documents/ChunksBrowser.js.map +1 -0
- package/dist/components/documents/ClassificationSuggestionBadge.d.ts +15 -0
- package/dist/components/documents/ClassificationSuggestionBadge.d.ts.map +1 -0
- package/dist/components/documents/ClassificationSuggestionBadge.js +34 -0
- package/dist/components/documents/ClassificationSuggestionBadge.js.map +1 -0
- package/dist/components/documents/CodeViewer.d.ts +8 -0
- package/dist/components/documents/CodeViewer.d.ts.map +1 -0
- package/dist/components/documents/CodeViewer.js +112 -0
- package/dist/components/documents/CodeViewer.js.map +1 -0
- package/dist/components/documents/CreatePersonalLibraryModal.d.ts +8 -0
- package/dist/components/documents/CreatePersonalLibraryModal.d.ts.map +1 -0
- package/dist/components/documents/CreatePersonalLibraryModal.js +50 -0
- package/dist/components/documents/CreatePersonalLibraryModal.js.map +1 -0
- package/dist/components/documents/DocumentList.d.ts +7 -0
- package/dist/components/documents/DocumentList.d.ts.map +1 -0
- package/dist/components/documents/DocumentList.js +162 -0
- package/dist/components/documents/DocumentList.js.map +1 -0
- package/dist/components/documents/DocumentSearch.d.ts +8 -0
- package/dist/components/documents/DocumentSearch.d.ts.map +1 -0
- package/dist/components/documents/DocumentSearch.js +151 -0
- package/dist/components/documents/DocumentSearch.js.map +1 -0
- package/dist/components/documents/DocumentSearchAdvanced.d.ts +2 -0
- package/dist/components/documents/DocumentSearchAdvanced.d.ts.map +1 -0
- package/dist/components/documents/DocumentSearchAdvanced.js +169 -0
- package/dist/components/documents/DocumentSearchAdvanced.js.map +1 -0
- package/dist/components/documents/DocumentTagView.d.ts +7 -0
- package/dist/components/documents/DocumentTagView.d.ts.map +1 -0
- package/dist/components/documents/DocumentTagView.js +122 -0
- package/dist/components/documents/DocumentTagView.js.map +1 -0
- package/dist/components/documents/DocumentTagsAndGraphSection.d.ts +12 -0
- package/dist/components/documents/DocumentTagsAndGraphSection.d.ts.map +1 -0
- package/dist/components/documents/DocumentTagsAndGraphSection.js +132 -0
- package/dist/components/documents/DocumentTagsAndGraphSection.js.map +1 -0
- package/dist/components/documents/DocumentUpload.d.ts +29 -0
- package/dist/components/documents/DocumentUpload.d.ts.map +1 -0
- package/dist/components/documents/DocumentUpload.js +148 -0
- package/dist/components/documents/DocumentUpload.js.map +1 -0
- package/dist/components/documents/ExtractionSplitView.d.ts +10 -0
- package/dist/components/documents/ExtractionSplitView.d.ts.map +1 -0
- package/dist/components/documents/ExtractionSplitView.js +134 -0
- package/dist/components/documents/ExtractionSplitView.js.map +1 -0
- package/dist/components/documents/HtmlViewer.d.ts +16 -0
- package/dist/components/documents/HtmlViewer.d.ts.map +1 -0
- package/dist/components/documents/HtmlViewer.js +602 -0
- package/dist/components/documents/HtmlViewer.js.map +1 -0
- package/dist/components/documents/KnowledgeGraph.d.ts +7 -0
- package/dist/components/documents/KnowledgeGraph.d.ts.map +1 -0
- package/dist/components/documents/KnowledgeGraph.js +570 -0
- package/dist/components/documents/KnowledgeGraph.js.map +1 -0
- package/dist/components/documents/LibraryClassification.d.ts +9 -0
- package/dist/components/documents/LibraryClassification.d.ts.map +1 -0
- package/dist/components/documents/LibraryClassification.js +124 -0
- package/dist/components/documents/LibraryClassification.js.map +1 -0
- package/dist/components/documents/LibraryDeleteModal.d.ts +12 -0
- package/dist/components/documents/LibraryDeleteModal.d.ts.map +1 -0
- package/dist/components/documents/LibraryDeleteModal.js +54 -0
- package/dist/components/documents/LibraryDeleteModal.js.map +1 -0
- package/dist/components/documents/LibraryTriggers.d.ts +8 -0
- package/dist/components/documents/LibraryTriggers.d.ts.map +1 -0
- package/dist/components/documents/LibraryTriggers.js +294 -0
- package/dist/components/documents/LibraryTriggers.js.map +1 -0
- package/dist/components/documents/PortalDocumentList.d.ts +9 -0
- package/dist/components/documents/PortalDocumentList.d.ts.map +1 -0
- package/dist/components/documents/PortalDocumentList.js +147 -0
- package/dist/components/documents/PortalDocumentList.js.map +1 -0
- package/dist/components/documents/ProcessingHistoryModal.d.ts +32 -0
- package/dist/components/documents/ProcessingHistoryModal.d.ts.map +1 -0
- package/dist/components/documents/ProcessingHistoryModal.js +131 -0
- package/dist/components/documents/ProcessingHistoryModal.js.map +1 -0
- package/dist/components/documents/ProcessingHistoryTab.d.ts +6 -0
- package/dist/components/documents/ProcessingHistoryTab.d.ts.map +1 -0
- package/dist/components/documents/ProcessingHistoryTab.js +161 -0
- package/dist/components/documents/ProcessingHistoryTab.js.map +1 -0
- package/dist/components/documents/ProvenanceHighlighter.d.ts +25 -0
- package/dist/components/documents/ProvenanceHighlighter.d.ts.map +1 -0
- package/dist/components/documents/ProvenanceHighlighter.js +72 -0
- package/dist/components/documents/ProvenanceHighlighter.js.map +1 -0
- package/dist/components/documents/RenamePersonalLibraryModal.d.ts +10 -0
- package/dist/components/documents/RenamePersonalLibraryModal.d.ts.map +1 -0
- package/dist/components/documents/RenamePersonalLibraryModal.js +47 -0
- package/dist/components/documents/RenamePersonalLibraryModal.js.map +1 -0
- package/dist/components/documents/SchemaEditor.d.ts +16 -0
- package/dist/components/documents/SchemaEditor.d.ts.map +1 -0
- package/dist/components/documents/SchemaEditor.js +518 -0
- package/dist/components/documents/SchemaEditor.js.map +1 -0
- package/dist/components/documents/SchemaFieldViewer.d.ts +13 -0
- package/dist/components/documents/SchemaFieldViewer.d.ts.map +1 -0
- package/dist/components/documents/SchemaFieldViewer.js +230 -0
- package/dist/components/documents/SchemaFieldViewer.js.map +1 -0
- package/dist/components/documents/SchemaFormRenderer.d.ts +11 -0
- package/dist/components/documents/SchemaFormRenderer.d.ts.map +1 -0
- package/dist/components/documents/SchemaFormRenderer.js +151 -0
- package/dist/components/documents/SchemaFormRenderer.js.map +1 -0
- package/dist/components/index.d.ts +77 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +61 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/libraries/LibrarySelector.d.ts +8 -0
- package/dist/components/libraries/LibrarySelector.d.ts.map +1 -0
- package/dist/components/libraries/LibrarySelector.js +52 -0
- package/dist/components/libraries/LibrarySelector.js.map +1 -0
- package/dist/components/libraries/LibrarySidebar.d.ts +30 -0
- package/dist/components/libraries/LibrarySidebar.d.ts.map +1 -0
- package/dist/components/libraries/LibrarySidebar.js +260 -0
- package/dist/components/libraries/LibrarySidebar.js.map +1 -0
- package/dist/components/shared/AppIcon.d.ts +15 -0
- package/dist/components/shared/AppIcon.d.ts.map +1 -0
- package/dist/components/shared/AppIcon.js +29 -0
- package/dist/components/shared/AppIcon.js.map +1 -0
- package/dist/components/shared/Button.d.ts +18 -0
- package/dist/components/shared/Button.d.ts.map +1 -0
- package/dist/components/shared/Button.js +18 -0
- package/dist/components/shared/Button.js.map +1 -0
- package/dist/components/shared/ConfirmModal.d.ts +19 -0
- package/dist/components/shared/ConfirmModal.d.ts.map +1 -0
- package/dist/components/shared/ConfirmModal.js +16 -0
- package/dist/components/shared/ConfirmModal.js.map +1 -0
- package/dist/components/shared/DeleteConfirmModal.d.ts +37 -0
- package/dist/components/shared/DeleteConfirmModal.d.ts.map +1 -0
- package/dist/components/shared/DeleteConfirmModal.js +30 -0
- package/dist/components/shared/DeleteConfirmModal.js.map +1 -0
- package/dist/components/shared/DynamicFavicon.d.ts +8 -0
- package/dist/components/shared/DynamicFavicon.d.ts.map +1 -0
- package/dist/components/shared/DynamicFavicon.js +35 -0
- package/dist/components/shared/DynamicFavicon.js.map +1 -0
- package/dist/components/shared/FetchWrapper.d.ts +27 -0
- package/dist/components/shared/FetchWrapper.d.ts.map +1 -0
- package/dist/components/shared/FetchWrapper.js +113 -0
- package/dist/components/shared/FetchWrapper.js.map +1 -0
- package/dist/components/shared/Input.d.ts +26 -0
- package/dist/components/shared/Input.d.ts.map +1 -0
- package/dist/components/shared/Input.js +10 -0
- package/dist/components/shared/Input.js.map +1 -0
- package/dist/components/shared/Modal.d.ts +30 -0
- package/dist/components/shared/Modal.d.ts.map +1 -0
- package/dist/components/shared/Modal.js +51 -0
- package/dist/components/shared/Modal.js.map +1 -0
- package/dist/components/shared/Table.d.ts +35 -0
- package/dist/components/shared/Table.d.ts.map +1 -0
- package/dist/components/shared/Table.js +39 -0
- package/dist/components/shared/Table.js.map +1 -0
- package/dist/components/shared/UserAvatar.d.ts +10 -0
- package/dist/components/shared/UserAvatar.d.ts.map +1 -0
- package/dist/components/shared/UserAvatar.js +90 -0
- package/dist/components/shared/UserAvatar.js.map +1 -0
- package/dist/components/shared/UserPicker.d.ts +10 -0
- package/dist/components/shared/UserPicker.d.ts.map +1 -0
- package/dist/components/shared/UserPicker.js +80 -0
- package/dist/components/shared/UserPicker.js.map +1 -0
- package/dist/components/ui/button.d.ts +11 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +34 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/card.d.ts +10 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +25 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +28 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +37 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/input.d.ts +4 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +7 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +6 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.js +12 -0
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/select.d.ts +16 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/select.js +38 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/videos/UserSearchInput.d.ts +14 -0
- package/dist/components/videos/UserSearchInput.d.ts.map +1 -0
- package/dist/components/videos/UserSearchInput.js +119 -0
- package/dist/components/videos/UserSearchInput.js.map +1 -0
- package/dist/components/videos/VideoCard.d.ts +17 -0
- package/dist/components/videos/VideoCard.d.ts.map +1 -0
- package/dist/components/videos/VideoCard.js +203 -0
- package/dist/components/videos/VideoCard.js.map +1 -0
- package/dist/components/videos/VideoExpirationBadge.d.ts +8 -0
- package/dist/components/videos/VideoExpirationBadge.d.ts.map +1 -0
- package/dist/components/videos/VideoExpirationBadge.js +25 -0
- package/dist/components/videos/VideoExpirationBadge.js.map +1 -0
- package/dist/components/videos/VideoPlayerModal.d.ts +9 -0
- package/dist/components/videos/VideoPlayerModal.d.ts.map +1 -0
- package/dist/components/videos/VideoPlayerModal.js +54 -0
- package/dist/components/videos/VideoPlayerModal.js.map +1 -0
- package/dist/components/videos/VideoRemixModal.d.ts +16 -0
- package/dist/components/videos/VideoRemixModal.d.ts.map +1 -0
- package/dist/components/videos/VideoRemixModal.js +48 -0
- package/dist/components/videos/VideoRemixModal.js.map +1 -0
- package/dist/components/videos/VideoShareModal.d.ts +10 -0
- package/dist/components/videos/VideoShareModal.d.ts.map +1 -0
- package/dist/components/videos/VideoShareModal.js +171 -0
- package/dist/components/videos/VideoShareModal.js.map +1 -0
- package/dist/components/videos/VideoStatusModal.d.ts +7 -0
- package/dist/components/videos/VideoStatusModal.d.ts.map +1 -0
- package/dist/components/videos/VideoStatusModal.js +92 -0
- package/dist/components/videos/VideoStatusModal.js.map +1 -0
- package/dist/components/videos/VideoUpload.d.ts +8 -0
- package/dist/components/videos/VideoUpload.d.ts.map +1 -0
- package/dist/components/videos/VideoUpload.js +92 -0
- package/dist/components/videos/VideoUpload.js.map +1 -0
- package/dist/components/workflow/WorkflowList.d.ts +20 -0
- package/dist/components/workflow/WorkflowList.d.ts.map +1 -0
- package/dist/components/workflow/WorkflowList.js +50 -0
- package/dist/components/workflow/WorkflowList.js.map +1 -0
- package/dist/contexts/ApiContext.d.ts +73 -0
- package/dist/contexts/ApiContext.d.ts.map +1 -0
- package/dist/contexts/ApiContext.js +73 -0
- package/dist/contexts/ApiContext.js.map +1 -0
- package/dist/contexts/AuthContext.d.ts +113 -0
- package/dist/contexts/AuthContext.d.ts.map +1 -0
- package/dist/contexts/AuthContext.js +351 -0
- package/dist/contexts/AuthContext.js.map +1 -0
- package/dist/contexts/CustomizationContext.d.ts +44 -0
- package/dist/contexts/CustomizationContext.d.ts.map +1 -0
- package/dist/contexts/CustomizationContext.js +117 -0
- package/dist/contexts/CustomizationContext.js.map +1 -0
- package/dist/contexts/ThemeContext.d.ts +18 -0
- package/dist/contexts/ThemeContext.d.ts.map +1 -0
- package/dist/contexts/ThemeContext.js +54 -0
- package/dist/contexts/ThemeContext.js.map +1 -0
- package/dist/contexts/index.d.ts +8 -0
- package/dist/contexts/index.d.ts.map +1 -0
- package/dist/contexts/index.js +5 -0
- package/dist/contexts/index.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/AdminHeader.d.ts +14 -0
- package/dist/layout/AdminHeader.d.ts.map +1 -0
- package/dist/layout/AdminHeader.js +17 -0
- package/dist/layout/AdminHeader.js.map +1 -0
- package/dist/layout/Footer.d.ts +7 -0
- package/dist/layout/Footer.d.ts.map +1 -0
- package/dist/layout/Footer.js +27 -0
- package/dist/layout/Footer.js.map +1 -0
- package/dist/layout/Header.d.ts +32 -0
- package/dist/layout/Header.d.ts.map +1 -0
- package/dist/layout/Header.js +66 -0
- package/dist/layout/Header.js.map +1 -0
- package/dist/layout/ThemeToggle.d.ts +7 -0
- package/dist/layout/ThemeToggle.d.ts.map +1 -0
- package/dist/layout/ThemeToggle.js +33 -0
- package/dist/layout/ThemeToggle.js.map +1 -0
- package/dist/layout/VersionBar.d.ts +2 -0
- package/dist/layout/VersionBar.d.ts.map +1 -0
- package/dist/layout/VersionBar.js +49 -0
- package/dist/layout/VersionBar.js.map +1 -0
- package/dist/layout/index.d.ts +7 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +6 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/lib/agent/agent-api-base.d.ts +41 -0
- package/dist/lib/agent/agent-api-base.d.ts.map +1 -0
- package/dist/lib/agent/agent-api-base.js +152 -0
- package/dist/lib/agent/agent-api-base.js.map +1 -0
- package/dist/lib/agent/agent-api-helpers.d.ts +16 -0
- package/dist/lib/agent/agent-api-helpers.d.ts.map +1 -0
- package/dist/lib/agent/agent-api-helpers.js +50 -0
- package/dist/lib/agent/agent-api-helpers.js.map +1 -0
- package/dist/lib/agent/agent-service-client.d.ts +89 -0
- package/dist/lib/agent/agent-service-client.d.ts.map +1 -0
- package/dist/lib/agent/agent-service-client.js +158 -0
- package/dist/lib/agent/agent-service-client.js.map +1 -0
- package/dist/lib/agent/api-helpers.d.ts +16 -0
- package/dist/lib/agent/api-helpers.d.ts.map +1 -0
- package/dist/lib/agent/api-helpers.js +50 -0
- package/dist/lib/agent/api-helpers.js.map +1 -0
- package/dist/lib/agent/app-client.d.ts +24 -0
- package/dist/lib/agent/app-client.d.ts.map +1 -0
- package/dist/lib/agent/app-client.js +49 -0
- package/dist/lib/agent/app-client.js.map +1 -0
- package/dist/lib/agent/chat-api-client.d.ts +152 -0
- package/dist/lib/agent/chat-api-client.d.ts.map +1 -0
- package/dist/lib/agent/chat-api-client.js +127 -0
- package/dist/lib/agent/chat-api-client.js.map +1 -0
- package/dist/lib/agent/chat-attachments.d.ts +118 -0
- package/dist/lib/agent/chat-attachments.d.ts.map +1 -0
- package/dist/lib/agent/chat-attachments.js +317 -0
- package/dist/lib/agent/chat-attachments.js.map +1 -0
- package/dist/lib/agent/chat-cleanup.d.ts +34 -0
- package/dist/lib/agent/chat-cleanup.d.ts.map +1 -0
- package/dist/lib/agent/chat-cleanup.js +133 -0
- package/dist/lib/agent/chat-cleanup.js.map +1 -0
- package/dist/lib/agent/chat-client.d.ts +142 -0
- package/dist/lib/agent/chat-client.d.ts.map +1 -0
- package/dist/lib/agent/chat-client.js +318 -0
- package/dist/lib/agent/chat-client.js.map +1 -0
- package/dist/lib/agent/chat-config.d.ts +28 -0
- package/dist/lib/agent/chat-config.d.ts.map +1 -0
- package/dist/lib/agent/chat-config.js +152 -0
- package/dist/lib/agent/chat-config.js.map +1 -0
- package/dist/lib/agent/chat-conversations.d.ts +159 -0
- package/dist/lib/agent/chat-conversations.d.ts.map +1 -0
- package/dist/lib/agent/chat-conversations.js +278 -0
- package/dist/lib/agent/chat-conversations.js.map +1 -0
- package/dist/lib/agent/chat-insights.d.ts +84 -0
- package/dist/lib/agent/chat-insights.d.ts.map +1 -0
- package/dist/lib/agent/chat-insights.js +193 -0
- package/dist/lib/agent/chat-insights.js.map +1 -0
- package/dist/lib/agent/chat-messages.d.ts +154 -0
- package/dist/lib/agent/chat-messages.d.ts.map +1 -0
- package/dist/lib/agent/chat-messages.js +282 -0
- package/dist/lib/agent/chat-messages.js.map +1 -0
- package/dist/lib/agent/chat-middleware.d.ts +119 -0
- package/dist/lib/agent/chat-middleware.d.ts.map +1 -0
- package/dist/lib/agent/chat-middleware.js +234 -0
- package/dist/lib/agent/chat-middleware.js.map +1 -0
- package/dist/lib/agent/chat-search.d.ts +89 -0
- package/dist/lib/agent/chat-search.d.ts.map +1 -0
- package/dist/lib/agent/chat-search.js +203 -0
- package/dist/lib/agent/chat-search.js.map +1 -0
- package/dist/lib/agent/chat-sharing.d.ts +70 -0
- package/dist/lib/agent/chat-sharing.d.ts.map +1 -0
- package/dist/lib/agent/chat-sharing.js +133 -0
- package/dist/lib/agent/chat-sharing.js.map +1 -0
- package/dist/lib/agent/client.d.ts +55 -0
- package/dist/lib/agent/client.d.ts.map +1 -0
- package/dist/lib/agent/client.js +103 -0
- package/dist/lib/agent/client.js.map +1 -0
- package/dist/lib/agent/index.d.ts +10 -0
- package/dist/lib/agent/index.d.ts.map +1 -0
- package/dist/lib/agent/index.js +10 -0
- package/dist/lib/agent/index.js.map +1 -0
- package/dist/lib/agent/insights.d.ts +131 -0
- package/dist/lib/agent/insights.d.ts.map +1 -0
- package/dist/lib/agent/insights.js +306 -0
- package/dist/lib/agent/insights.js.map +1 -0
- package/dist/lib/agent/litellm.d.ts +45 -0
- package/dist/lib/agent/litellm.d.ts.map +1 -0
- package/dist/lib/agent/litellm.js +147 -0
- package/dist/lib/agent/litellm.js.map +1 -0
- package/dist/lib/agent/llm-client.d.ts +94 -0
- package/dist/lib/agent/llm-client.d.ts.map +1 -0
- package/dist/lib/agent/llm-client.js +290 -0
- package/dist/lib/agent/llm-client.js.map +1 -0
- package/dist/lib/agent/models.d.ts +46 -0
- package/dist/lib/agent/models.d.ts.map +1 -0
- package/dist/lib/agent/models.js +96 -0
- package/dist/lib/agent/models.js.map +1 -0
- package/dist/lib/agent/openai.d.ts +94 -0
- package/dist/lib/agent/openai.d.ts.map +1 -0
- package/dist/lib/agent/openai.js +290 -0
- package/dist/lib/agent/openai.js.map +1 -0
- package/dist/lib/agent/server-client.d.ts +288 -0
- package/dist/lib/agent/server-client.d.ts.map +1 -0
- package/dist/lib/agent/server-client.js +363 -0
- package/dist/lib/agent/server-client.js.map +1 -0
- package/dist/lib/ai/dual-model-router.d.ts +130 -0
- package/dist/lib/ai/dual-model-router.d.ts.map +1 -0
- package/dist/lib/ai/dual-model-router.js +413 -0
- package/dist/lib/ai/dual-model-router.js.map +1 -0
- package/dist/lib/ai/openai.d.ts +94 -0
- package/dist/lib/ai/openai.d.ts.map +1 -0
- package/dist/lib/ai/openai.js +290 -0
- package/dist/lib/ai/openai.js.map +1 -0
- package/dist/lib/ai/tools.d.ts +64 -0
- package/dist/lib/ai/tools.d.ts.map +1 -0
- package/dist/lib/ai/tools.js +159 -0
- package/dist/lib/ai/tools.js.map +1 -0
- package/dist/lib/audit/client.d.ts +138 -0
- package/dist/lib/audit/client.d.ts.map +1 -0
- package/dist/lib/audit/client.js +486 -0
- package/dist/lib/audit/client.js.map +1 -0
- package/dist/lib/audit/index.d.ts +6 -0
- package/dist/lib/audit/index.d.ts.map +1 -0
- package/dist/lib/audit/index.js +6 -0
- package/dist/lib/audit/index.js.map +1 -0
- package/dist/lib/auth/auth-helper.d.ts +167 -0
- package/dist/lib/auth/auth-helper.d.ts.map +1 -0
- package/dist/lib/auth/auth-helper.js +345 -0
- package/dist/lib/auth/auth-helper.js.map +1 -0
- package/dist/lib/auth/auth-state-manager.d.ts +201 -0
- package/dist/lib/auth/auth-state-manager.d.ts.map +1 -0
- package/dist/lib/auth/auth-state-manager.js +597 -0
- package/dist/lib/auth/auth-state-manager.js.map +1 -0
- package/dist/lib/auth/client.d.ts +276 -0
- package/dist/lib/auth/client.d.ts.map +1 -0
- package/dist/lib/auth/client.js +325 -0
- package/dist/lib/auth/client.js.map +1 -0
- package/dist/lib/auth/index.d.ts +10 -0
- package/dist/lib/auth/index.d.ts.map +1 -0
- package/dist/lib/auth/index.js +10 -0
- package/dist/lib/auth/index.js.map +1 -0
- package/dist/lib/auth/sso-route-handler.d.ts +114 -0
- package/dist/lib/auth/sso-route-handler.d.ts.map +1 -0
- package/dist/lib/auth/sso-route-handler.js +199 -0
- package/dist/lib/auth/sso-route-handler.js.map +1 -0
- package/dist/lib/auth/sso.d.ts +162 -0
- package/dist/lib/auth/sso.d.ts.map +1 -0
- package/dist/lib/auth/sso.js +282 -0
- package/dist/lib/auth/sso.js.map +1 -0
- package/dist/lib/authz/audit.d.ts +167 -0
- package/dist/lib/authz/audit.d.ts.map +1 -0
- package/dist/lib/authz/audit.js +518 -0
- package/dist/lib/authz/audit.js.map +1 -0
- package/dist/lib/authz/auth-helper.d.ts +176 -0
- package/dist/lib/authz/auth-helper.d.ts.map +1 -0
- package/dist/lib/authz/auth-helper.js +354 -0
- package/dist/lib/authz/auth-helper.js.map +1 -0
- package/dist/lib/authz/auth-state-manager.d.ts +204 -0
- package/dist/lib/authz/auth-state-manager.d.ts.map +1 -0
- package/dist/lib/authz/auth-state-manager.js +594 -0
- package/dist/lib/authz/auth-state-manager.js.map +1 -0
- package/dist/lib/authz/authz-url.d.ts +12 -0
- package/dist/lib/authz/authz-url.d.ts.map +1 -0
- package/dist/lib/authz/authz-url.js +14 -0
- package/dist/lib/authz/authz-url.js.map +1 -0
- package/dist/lib/authz/delegation.d.ts +47 -0
- package/dist/lib/authz/delegation.d.ts.map +1 -0
- package/dist/lib/authz/delegation.js +82 -0
- package/dist/lib/authz/delegation.js.map +1 -0
- package/dist/lib/authz/email-validation.d.ts +33 -0
- package/dist/lib/authz/email-validation.d.ts.map +1 -0
- package/dist/lib/authz/email-validation.js +70 -0
- package/dist/lib/authz/email-validation.js.map +1 -0
- package/dist/lib/authz/email.d.ts +65 -0
- package/dist/lib/authz/email.d.ts.map +1 -0
- package/dist/lib/authz/email.js +112 -0
- package/dist/lib/authz/email.js.map +1 -0
- package/dist/lib/authz/index.d.ts +16 -0
- package/dist/lib/authz/index.d.ts.map +1 -0
- package/dist/lib/authz/index.js +24 -0
- package/dist/lib/authz/index.js.map +1 -0
- package/dist/lib/authz/next-client.d.ts +101 -0
- package/dist/lib/authz/next-client.d.ts.map +1 -0
- package/dist/lib/authz/next-client.js +156 -0
- package/dist/lib/authz/next-client.js.map +1 -0
- package/dist/lib/authz/passkey.d.ts +78 -0
- package/dist/lib/authz/passkey.d.ts.map +1 -0
- package/dist/lib/authz/passkey.js +458 -0
- package/dist/lib/authz/passkey.js.map +1 -0
- package/dist/lib/authz/permissions.d.ts +109 -0
- package/dist/lib/authz/permissions.d.ts.map +1 -0
- package/dist/lib/authz/permissions.js +238 -0
- package/dist/lib/authz/permissions.js.map +1 -0
- package/dist/lib/authz/rbac.d.ts +320 -0
- package/dist/lib/authz/rbac.d.ts.map +1 -0
- package/dist/lib/authz/rbac.js +532 -0
- package/dist/lib/authz/rbac.js.map +1 -0
- package/dist/lib/authz/service-audit.d.ts +41 -0
- package/dist/lib/authz/service-audit.d.ts.map +1 -0
- package/dist/lib/authz/service-audit.js +60 -0
- package/dist/lib/authz/service-audit.js.map +1 -0
- package/dist/lib/authz/session-client.d.ts +276 -0
- package/dist/lib/authz/session-client.d.ts.map +1 -0
- package/dist/lib/authz/session-client.js +325 -0
- package/dist/lib/authz/session-client.js.map +1 -0
- package/dist/lib/authz/session-route-handlers.d.ts +70 -0
- package/dist/lib/authz/session-route-handlers.d.ts.map +1 -0
- package/dist/lib/authz/session-route-handlers.js +200 -0
- package/dist/lib/authz/session-route-handlers.js.map +1 -0
- package/dist/lib/authz/sso-generator.d.ts +51 -0
- package/dist/lib/authz/sso-generator.d.ts.map +1 -0
- package/dist/lib/authz/sso-generator.js +167 -0
- package/dist/lib/authz/sso-generator.js.map +1 -0
- package/dist/lib/authz/sso-route-handler.d.ts +117 -0
- package/dist/lib/authz/sso-route-handler.d.ts.map +1 -0
- package/dist/lib/authz/sso-route-handler.js +206 -0
- package/dist/lib/authz/sso-route-handler.js.map +1 -0
- package/dist/lib/authz/sso.d.ts +157 -0
- package/dist/lib/authz/sso.d.ts.map +1 -0
- package/dist/lib/authz/sso.js +275 -0
- package/dist/lib/authz/sso.js.map +1 -0
- package/dist/lib/authz/user-management.d.ts +106 -0
- package/dist/lib/authz/user-management.d.ts.map +1 -0
- package/dist/lib/authz/user-management.js +205 -0
- package/dist/lib/authz/user-management.js.map +1 -0
- package/dist/lib/authz/zero-trust.d.ts +155 -0
- package/dist/lib/authz/zero-trust.d.ts.map +1 -0
- package/dist/lib/authz/zero-trust.js +344 -0
- package/dist/lib/authz/zero-trust.js.map +1 -0
- package/dist/lib/bridge/config.d.ts +44 -0
- package/dist/lib/bridge/config.d.ts.map +1 -0
- package/dist/lib/bridge/config.js +201 -0
- package/dist/lib/bridge/config.js.map +1 -0
- package/dist/lib/bridge/email-config.d.ts +46 -0
- package/dist/lib/bridge/email-config.d.ts.map +1 -0
- package/dist/lib/bridge/email-config.js +199 -0
- package/dist/lib/bridge/email-config.js.map +1 -0
- package/dist/lib/bridge/email.d.ts +69 -0
- package/dist/lib/bridge/email.d.ts.map +1 -0
- package/dist/lib/bridge/email.js +120 -0
- package/dist/lib/bridge/email.js.map +1 -0
- package/dist/lib/bridge/masking.d.ts +7 -0
- package/dist/lib/bridge/masking.d.ts.map +1 -0
- package/dist/lib/bridge/masking.js +13 -0
- package/dist/lib/bridge/masking.js.map +1 -0
- package/dist/lib/chat-server/agent-api-client.d.ts +151 -0
- package/dist/lib/chat-server/agent-api-client.d.ts.map +1 -0
- package/dist/lib/chat-server/agent-api-client.js +162 -0
- package/dist/lib/chat-server/agent-api-client.js.map +1 -0
- package/dist/lib/chat-server/attachments.d.ts +118 -0
- package/dist/lib/chat-server/attachments.d.ts.map +1 -0
- package/dist/lib/chat-server/attachments.js +317 -0
- package/dist/lib/chat-server/attachments.js.map +1 -0
- package/dist/lib/chat-server/cleanup.d.ts +34 -0
- package/dist/lib/chat-server/cleanup.d.ts.map +1 -0
- package/dist/lib/chat-server/cleanup.js +133 -0
- package/dist/lib/chat-server/cleanup.js.map +1 -0
- package/dist/lib/chat-server/conversations.d.ts +159 -0
- package/dist/lib/chat-server/conversations.d.ts.map +1 -0
- package/dist/lib/chat-server/conversations.js +278 -0
- package/dist/lib/chat-server/conversations.js.map +1 -0
- package/dist/lib/chat-server/insights.d.ts +84 -0
- package/dist/lib/chat-server/insights.d.ts.map +1 -0
- package/dist/lib/chat-server/insights.js +193 -0
- package/dist/lib/chat-server/insights.js.map +1 -0
- package/dist/lib/chat-server/messages.d.ts +154 -0
- package/dist/lib/chat-server/messages.d.ts.map +1 -0
- package/dist/lib/chat-server/messages.js +282 -0
- package/dist/lib/chat-server/messages.js.map +1 -0
- package/dist/lib/chat-server/middleware.d.ts +119 -0
- package/dist/lib/chat-server/middleware.d.ts.map +1 -0
- package/dist/lib/chat-server/middleware.js +234 -0
- package/dist/lib/chat-server/middleware.js.map +1 -0
- package/dist/lib/chat-server/models.d.ts +60 -0
- package/dist/lib/chat-server/models.d.ts.map +1 -0
- package/dist/lib/chat-server/models.js +205 -0
- package/dist/lib/chat-server/models.js.map +1 -0
- package/dist/lib/chat-server/search.d.ts +89 -0
- package/dist/lib/chat-server/search.d.ts.map +1 -0
- package/dist/lib/chat-server/search.js +203 -0
- package/dist/lib/chat-server/search.js.map +1 -0
- package/dist/lib/chat-server/sharing.d.ts +70 -0
- package/dist/lib/chat-server/sharing.d.ts.map +1 -0
- package/dist/lib/chat-server/sharing.js +146 -0
- package/dist/lib/chat-server/sharing.js.map +1 -0
- package/dist/lib/config/client.d.ts +111 -0
- package/dist/lib/config/client.d.ts.map +1 -0
- package/dist/lib/config/client.js +147 -0
- package/dist/lib/config/client.js.map +1 -0
- package/dist/lib/config/index.d.ts +2 -0
- package/dist/lib/config/index.d.ts.map +1 -0
- package/dist/lib/config/index.js +2 -0
- package/dist/lib/config/index.js.map +1 -0
- package/dist/lib/data/app-client.d.ts +87 -0
- package/dist/lib/data/app-client.d.ts.map +1 -0
- package/dist/lib/data/app-client.js +136 -0
- package/dist/lib/data/app-client.js.map +1 -0
- package/dist/lib/data/client.d.ts +113 -0
- package/dist/lib/data/client.d.ts.map +1 -0
- package/dist/lib/data/client.js +296 -0
- package/dist/lib/data/client.js.map +1 -0
- package/dist/lib/data/documents.d.ts +84 -0
- package/dist/lib/data/documents.d.ts.map +1 -0
- package/dist/lib/data/documents.js +250 -0
- package/dist/lib/data/documents.js.map +1 -0
- package/dist/lib/data/embeddings-app-client.d.ts +37 -0
- package/dist/lib/data/embeddings-app-client.d.ts.map +1 -0
- package/dist/lib/data/embeddings-app-client.js +72 -0
- package/dist/lib/data/embeddings-app-client.js.map +1 -0
- package/dist/lib/data/embeddings-session.d.ts +21 -0
- package/dist/lib/data/embeddings-session.d.ts.map +1 -0
- package/dist/lib/data/embeddings-session.js +47 -0
- package/dist/lib/data/embeddings-session.js.map +1 -0
- package/dist/lib/data/embeddings.d.ts +41 -0
- package/dist/lib/data/embeddings.d.ts.map +1 -0
- package/dist/lib/data/embeddings.js +88 -0
- package/dist/lib/data/embeddings.js.map +1 -0
- package/dist/lib/data/index.d.ts +11 -0
- package/dist/lib/data/index.d.ts.map +1 -0
- package/dist/lib/data/index.js +10 -0
- package/dist/lib/data/index.js.map +1 -0
- package/dist/lib/data/libraries.d.ts +124 -0
- package/dist/lib/data/libraries.d.ts.map +1 -0
- package/dist/lib/data/libraries.js +517 -0
- package/dist/lib/data/libraries.js.map +1 -0
- package/dist/lib/data/portal-config.d.ts +39 -0
- package/dist/lib/data/portal-config.d.ts.map +1 -0
- package/dist/lib/data/portal-config.js +87 -0
- package/dist/lib/data/portal-config.js.map +1 -0
- package/dist/lib/data/settings.d.ts +44 -0
- package/dist/lib/data/settings.d.ts.map +1 -0
- package/dist/lib/data/settings.js +202 -0
- package/dist/lib/data/settings.js.map +1 -0
- package/dist/lib/data/tags.d.ts +33 -0
- package/dist/lib/data/tags.d.ts.map +1 -0
- package/dist/lib/data/tags.js +190 -0
- package/dist/lib/data/tags.js.map +1 -0
- package/dist/lib/date-utils.d.ts +72 -0
- package/dist/lib/date-utils.d.ts.map +1 -0
- package/dist/lib/date-utils.js +278 -0
- package/dist/lib/date-utils.js.map +1 -0
- package/dist/lib/deploy/app-config.d.ts +96 -0
- package/dist/lib/deploy/app-config.d.ts.map +1 -0
- package/dist/lib/deploy/app-config.js +352 -0
- package/dist/lib/deploy/app-config.js.map +1 -0
- package/dist/lib/deploy/app-library.d.ts +32 -0
- package/dist/lib/deploy/app-library.d.ts.map +1 -0
- package/dist/lib/deploy/app-library.js +117 -0
- package/dist/lib/deploy/app-library.js.map +1 -0
- package/dist/lib/deploy/app-permissions.d.ts +43 -0
- package/dist/lib/deploy/app-permissions.d.ts.map +1 -0
- package/dist/lib/deploy/app-permissions.js +96 -0
- package/dist/lib/deploy/app-permissions.js.map +1 -0
- package/dist/lib/deploy/app-utils.d.ts +22 -0
- package/dist/lib/deploy/app-utils.d.ts.map +1 -0
- package/dist/lib/deploy/app-utils.js +36 -0
- package/dist/lib/deploy/app-utils.js.map +1 -0
- package/dist/lib/deploy/client.d.ts +141 -0
- package/dist/lib/deploy/client.d.ts.map +1 -0
- package/dist/lib/deploy/client.js +170 -0
- package/dist/lib/deploy/client.js.map +1 -0
- package/dist/lib/deploy/default-apps.d.ts +31 -0
- package/dist/lib/deploy/default-apps.d.ts.map +1 -0
- package/dist/lib/deploy/default-apps.js +142 -0
- package/dist/lib/deploy/default-apps.js.map +1 -0
- package/dist/lib/deploy/deployment-client.d.ts +122 -0
- package/dist/lib/deploy/deployment-client.d.ts.map +1 -0
- package/dist/lib/deploy/deployment-client.js +245 -0
- package/dist/lib/deploy/deployment-client.js.map +1 -0
- package/dist/lib/deploy/github-manifest.d.ts +52 -0
- package/dist/lib/deploy/github-manifest.d.ts.map +1 -0
- package/dist/lib/deploy/github-manifest.js +168 -0
- package/dist/lib/deploy/github-manifest.js.map +1 -0
- package/dist/lib/deploy/manifest-schema.d.ts +66 -0
- package/dist/lib/deploy/manifest-schema.d.ts.map +1 -0
- package/dist/lib/deploy/manifest-schema.js +86 -0
- package/dist/lib/deploy/manifest-schema.js.map +1 -0
- package/dist/lib/deploy/manifest-validator.d.ts +25 -0
- package/dist/lib/deploy/manifest-validator.d.ts.map +1 -0
- package/dist/lib/deploy/manifest-validator.js +142 -0
- package/dist/lib/deploy/manifest-validator.js.map +1 -0
- package/dist/lib/deploy/manifest.d.ts +45 -0
- package/dist/lib/deploy/manifest.d.ts.map +1 -0
- package/dist/lib/deploy/manifest.js +137 -0
- package/dist/lib/deploy/manifest.js.map +1 -0
- package/dist/lib/deploy/url-validation.d.ts +22 -0
- package/dist/lib/deploy/url-validation.d.ts.map +1 -0
- package/dist/lib/deploy/url-validation.js +86 -0
- package/dist/lib/deploy/url-validation.js.map +1 -0
- package/dist/lib/docs/client.d.ts +80 -0
- package/dist/lib/docs/client.d.ts.map +1 -0
- package/dist/lib/docs/client.js +160 -0
- package/dist/lib/docs/client.js.map +1 -0
- package/dist/lib/embeddings/data-client.d.ts +37 -0
- package/dist/lib/embeddings/data-client.d.ts.map +1 -0
- package/dist/lib/embeddings/data-client.js +72 -0
- package/dist/lib/embeddings/data-client.js.map +1 -0
- package/dist/lib/hooks/useAutosave.d.ts +26 -0
- package/dist/lib/hooks/useAutosave.d.ts.map +1 -0
- package/dist/lib/hooks/useAutosave.js +81 -0
- package/dist/lib/hooks/useAutosave.js.map +1 -0
- package/dist/lib/hooks/useImageUrls.d.ts +16 -0
- package/dist/lib/hooks/useImageUrls.d.ts.map +1 -0
- package/dist/lib/hooks/useImageUrls.js +64 -0
- package/dist/lib/hooks/useImageUrls.js.map +1 -0
- package/dist/lib/hooks/useIsMobile.d.ts +6 -0
- package/dist/lib/hooks/useIsMobile.d.ts.map +1 -0
- package/dist/lib/hooks/useIsMobile.js +18 -0
- package/dist/lib/hooks/useIsMobile.js.map +1 -0
- package/dist/lib/hooks/useMediaQuery.d.ts +6 -0
- package/dist/lib/hooks/useMediaQuery.d.ts.map +1 -0
- package/dist/lib/hooks/useMediaQuery.js +18 -0
- package/dist/lib/hooks/useMediaQuery.js.map +1 -0
- package/dist/lib/http/fetch-with-fallback.d.ts +35 -0
- package/dist/lib/http/fetch-with-fallback.d.ts.map +1 -0
- package/dist/lib/http/fetch-with-fallback.js +53 -0
- package/dist/lib/http/fetch-with-fallback.js.map +1 -0
- package/dist/lib/icons.d.ts +27 -0
- package/dist/lib/icons.d.ts.map +1 -0
- package/dist/lib/icons.js +212 -0
- package/dist/lib/icons.js.map +1 -0
- package/dist/lib/index.d.ts +16 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +24 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/insights/client.d.ts +131 -0
- package/dist/lib/insights/client.d.ts.map +1 -0
- package/dist/lib/insights/client.js +306 -0
- package/dist/lib/insights/client.js.map +1 -0
- package/dist/lib/insights/index.d.ts +5 -0
- package/dist/lib/insights/index.d.ts.map +1 -0
- package/dist/lib/insights/index.js +5 -0
- package/dist/lib/insights/index.js.map +1 -0
- package/dist/lib/media/access-control.d.ts +35 -0
- package/dist/lib/media/access-control.d.ts.map +1 -0
- package/dist/lib/media/access-control.js +63 -0
- package/dist/lib/media/access-control.js.map +1 -0
- package/dist/lib/media/agent-api-client.d.ts +46 -0
- package/dist/lib/media/agent-api-client.d.ts.map +1 -0
- package/dist/lib/media/agent-api-client.js +75 -0
- package/dist/lib/media/agent-api-client.js.map +1 -0
- package/dist/lib/media/creation.d.ts +25 -0
- package/dist/lib/media/creation.d.ts.map +1 -0
- package/dist/lib/media/creation.js +112 -0
- package/dist/lib/media/creation.js.map +1 -0
- package/dist/lib/media/expiration.d.ts +13 -0
- package/dist/lib/media/expiration.d.ts.map +1 -0
- package/dist/lib/media/expiration.js +95 -0
- package/dist/lib/media/expiration.js.map +1 -0
- package/dist/lib/media/image-resize.d.ts +42 -0
- package/dist/lib/media/image-resize.d.ts.map +1 -0
- package/dist/lib/media/image-resize.js +106 -0
- package/dist/lib/media/image-resize.js.map +1 -0
- package/dist/lib/media/processing.d.ts +35 -0
- package/dist/lib/media/processing.d.ts.map +1 -0
- package/dist/lib/media/processing.js +154 -0
- package/dist/lib/media/processing.js.map +1 -0
- package/dist/lib/media/status.d.ts +2 -0
- package/dist/lib/media/status.d.ts.map +1 -0
- package/dist/lib/media/status.js +141 -0
- package/dist/lib/media/status.js.map +1 -0
- package/dist/lib/media/store.d.ts +91 -0
- package/dist/lib/media/store.d.ts.map +1 -0
- package/dist/lib/media/store.js +451 -0
- package/dist/lib/media/store.js.map +1 -0
- package/dist/lib/media/upload.d.ts +41 -0
- package/dist/lib/media/upload.d.ts.map +1 -0
- package/dist/lib/media/upload.js +118 -0
- package/dist/lib/media/upload.js.map +1 -0
- package/dist/lib/media/url-normalization.d.ts +29 -0
- package/dist/lib/media/url-normalization.d.ts.map +1 -0
- package/dist/lib/media/url-normalization.js +61 -0
- package/dist/lib/media/url-normalization.js.map +1 -0
- package/dist/lib/next/api-url.d.ts +42 -0
- package/dist/lib/next/api-url.d.ts.map +1 -0
- package/dist/lib/next/api-url.js +128 -0
- package/dist/lib/next/api-url.js.map +1 -0
- package/dist/lib/next/authz-client.d.ts +120 -0
- package/dist/lib/next/authz-client.d.ts.map +1 -0
- package/dist/lib/next/authz-client.js +203 -0
- package/dist/lib/next/authz-client.js.map +1 -0
- package/dist/lib/next/middleware.d.ts +264 -0
- package/dist/lib/next/middleware.d.ts.map +1 -0
- package/dist/lib/next/middleware.js +696 -0
- package/dist/lib/next/middleware.js.map +1 -0
- package/dist/lib/next/passkey.d.ts +78 -0
- package/dist/lib/next/passkey.d.ts.map +1 -0
- package/dist/lib/next/passkey.js +380 -0
- package/dist/lib/next/passkey.js.map +1 -0
- package/dist/lib/next/service-client.d.ts +99 -0
- package/dist/lib/next/service-client.d.ts.map +1 -0
- package/dist/lib/next/service-client.js +146 -0
- package/dist/lib/next/service-client.js.map +1 -0
- package/dist/lib/next/sso.d.ts +51 -0
- package/dist/lib/next/sso.d.ts.map +1 -0
- package/dist/lib/next/sso.js +167 -0
- package/dist/lib/next/sso.js.map +1 -0
- package/dist/lib/rbac/client.d.ts +320 -0
- package/dist/lib/rbac/client.d.ts.map +1 -0
- package/dist/lib/rbac/client.js +532 -0
- package/dist/lib/rbac/client.js.map +1 -0
- package/dist/lib/rbac/index.d.ts +6 -0
- package/dist/lib/rbac/index.d.ts.map +1 -0
- package/dist/lib/rbac/index.js +6 -0
- package/dist/lib/rbac/index.js.map +1 -0
- package/dist/lib/search/app-providers.d.ts +9 -0
- package/dist/lib/search/app-providers.d.ts.map +1 -0
- package/dist/lib/search/app-providers.js +9 -0
- package/dist/lib/search/app-providers.js.map +1 -0
- package/dist/lib/search/client.d.ts +214 -0
- package/dist/lib/search/client.d.ts.map +1 -0
- package/dist/lib/search/client.js +289 -0
- package/dist/lib/search/client.js.map +1 -0
- package/dist/lib/search/config.d.ts +16 -0
- package/dist/lib/search/config.d.ts.map +1 -0
- package/dist/lib/search/config.js +20 -0
- package/dist/lib/search/config.js.map +1 -0
- package/dist/lib/search/index.d.ts +13 -0
- package/dist/lib/search/index.d.ts.map +1 -0
- package/dist/lib/search/index.js +22 -0
- package/dist/lib/search/index.js.map +1 -0
- package/dist/lib/search/providers.d.ts +105 -0
- package/dist/lib/search/providers.d.ts.map +1 -0
- package/dist/lib/search/providers.js +140 -0
- package/dist/lib/search/providers.js.map +1 -0
- package/dist/lib/services/api-client.d.ts +46 -0
- package/dist/lib/services/api-client.d.ts.map +1 -0
- package/dist/lib/services/api-client.js +80 -0
- package/dist/lib/services/api-client.js.map +1 -0
- package/dist/lib/services/app-library.d.ts +36 -0
- package/dist/lib/services/app-library.d.ts.map +1 -0
- package/dist/lib/services/app-library.js +123 -0
- package/dist/lib/services/app-library.js.map +1 -0
- package/dist/lib/services/app-utils.d.ts +22 -0
- package/dist/lib/services/app-utils.d.ts.map +1 -0
- package/dist/lib/services/app-utils.js +36 -0
- package/dist/lib/services/app-utils.js.map +1 -0
- package/dist/lib/services/audit.d.ts +41 -0
- package/dist/lib/services/audit.d.ts.map +1 -0
- package/dist/lib/services/audit.js +60 -0
- package/dist/lib/services/audit.js.map +1 -0
- package/dist/lib/services/database-cloner.d.ts +28 -0
- package/dist/lib/services/database-cloner.d.ts.map +1 -0
- package/dist/lib/services/database-cloner.js +197 -0
- package/dist/lib/services/database-cloner.js.map +1 -0
- package/dist/lib/services/default-apps.d.ts +31 -0
- package/dist/lib/services/default-apps.d.ts.map +1 -0
- package/dist/lib/services/default-apps.js +121 -0
- package/dist/lib/services/default-apps.js.map +1 -0
- package/dist/lib/services/deploy-api-client.d.ts +184 -0
- package/dist/lib/services/deploy-api-client.d.ts.map +1 -0
- package/dist/lib/services/deploy-api-client.js +208 -0
- package/dist/lib/services/deploy-api-client.js.map +1 -0
- package/dist/lib/services/deployment-service-client.d.ts +122 -0
- package/dist/lib/services/deployment-service-client.d.ts.map +1 -0
- package/dist/lib/services/deployment-service-client.js +245 -0
- package/dist/lib/services/deployment-service-client.js.map +1 -0
- package/dist/lib/services/docs.d.ts +80 -0
- package/dist/lib/services/docs.d.ts.map +1 -0
- package/dist/lib/services/docs.js +160 -0
- package/dist/lib/services/docs.js.map +1 -0
- package/dist/lib/services/email-validation.d.ts +33 -0
- package/dist/lib/services/email-validation.d.ts.map +1 -0
- package/dist/lib/services/email-validation.js +70 -0
- package/dist/lib/services/email-validation.js.map +1 -0
- package/dist/lib/services/email.d.ts +65 -0
- package/dist/lib/services/email.d.ts.map +1 -0
- package/dist/lib/services/email.js +112 -0
- package/dist/lib/services/email.js.map +1 -0
- package/dist/lib/services/github-manifest-fetcher.d.ts +74 -0
- package/dist/lib/services/github-manifest-fetcher.d.ts.map +1 -0
- package/dist/lib/services/github-manifest-fetcher.js +168 -0
- package/dist/lib/services/github-manifest-fetcher.js.map +1 -0
- package/dist/lib/services/libraries.d.ts +124 -0
- package/dist/lib/services/libraries.d.ts.map +1 -0
- package/dist/lib/services/libraries.js +507 -0
- package/dist/lib/services/libraries.js.map +1 -0
- package/dist/lib/services/litellm.d.ts +33 -0
- package/dist/lib/services/litellm.d.ts.map +1 -0
- package/dist/lib/services/litellm.js +222 -0
- package/dist/lib/services/litellm.js.map +1 -0
- package/dist/lib/services/manifest-schema.d.ts +66 -0
- package/dist/lib/services/manifest-schema.d.ts.map +1 -0
- package/dist/lib/services/manifest-schema.js +86 -0
- package/dist/lib/services/manifest-schema.js.map +1 -0
- package/dist/lib/services/manifest-validator.d.ts +25 -0
- package/dist/lib/services/manifest-validator.d.ts.map +1 -0
- package/dist/lib/services/manifest-validator.js +142 -0
- package/dist/lib/services/manifest-validator.js.map +1 -0
- package/dist/lib/services/manifest.d.ts +45 -0
- package/dist/lib/services/manifest.d.ts.map +1 -0
- package/dist/lib/services/manifest.js +137 -0
- package/dist/lib/services/manifest.js.map +1 -0
- package/dist/lib/services/permissions.d.ts +109 -0
- package/dist/lib/services/permissions.d.ts.map +1 -0
- package/dist/lib/services/permissions.js +238 -0
- package/dist/lib/services/permissions.js.map +1 -0
- package/dist/lib/services/service-client.d.ts +99 -0
- package/dist/lib/services/service-client.d.ts.map +1 -0
- package/dist/lib/services/service-client.js +146 -0
- package/dist/lib/services/service-client.js.map +1 -0
- package/dist/lib/services/tags.d.ts +37 -0
- package/dist/lib/services/tags.d.ts.map +1 -0
- package/dist/lib/services/tags.js +189 -0
- package/dist/lib/services/tags.js.map +1 -0
- package/dist/lib/services/url-validation.d.ts +22 -0
- package/dist/lib/services/url-validation.d.ts.map +1 -0
- package/dist/lib/services/url-validation.js +86 -0
- package/dist/lib/services/url-validation.js.map +1 -0
- package/dist/lib/services/user-management.d.ts +81 -0
- package/dist/lib/services/user-management.d.ts.map +1 -0
- package/dist/lib/services/user-management.js +154 -0
- package/dist/lib/services/user-management.js.map +1 -0
- package/dist/lib/sse.d.ts +113 -0
- package/dist/lib/sse.d.ts.map +1 -0
- package/dist/lib/sse.js +264 -0
- package/dist/lib/sse.js.map +1 -0
- package/dist/lib/storage/index.d.ts +11 -0
- package/dist/lib/storage/index.d.ts.map +1 -0
- package/dist/lib/storage/index.js +12 -0
- package/dist/lib/storage/index.js.map +1 -0
- package/dist/lib/storage/types.d.ts +61 -0
- package/dist/lib/storage/types.d.ts.map +1 -0
- package/dist/lib/storage/types.js +8 -0
- package/dist/lib/storage/types.js.map +1 -0
- package/dist/lib/stores/app-config-store.d.ts +90 -0
- package/dist/lib/stores/app-config-store.d.ts.map +1 -0
- package/dist/lib/stores/app-config-store.js +491 -0
- package/dist/lib/stores/app-config-store.js.map +1 -0
- package/dist/lib/stores/bridge-config-store.d.ts +44 -0
- package/dist/lib/stores/bridge-config-store.d.ts.map +1 -0
- package/dist/lib/stores/bridge-config-store.js +207 -0
- package/dist/lib/stores/bridge-config-store.js.map +1 -0
- package/dist/lib/stores/chat-config-store.d.ts +28 -0
- package/dist/lib/stores/chat-config-store.d.ts.map +1 -0
- package/dist/lib/stores/chat-config-store.js +152 -0
- package/dist/lib/stores/chat-config-store.js.map +1 -0
- package/dist/lib/stores/data-settings-store.d.ts +44 -0
- package/dist/lib/stores/data-settings-store.d.ts.map +1 -0
- package/dist/lib/stores/data-settings-store.js +202 -0
- package/dist/lib/stores/data-settings-store.js.map +1 -0
- package/dist/lib/stores/email-config-store.d.ts +45 -0
- package/dist/lib/stores/email-config-store.d.ts.map +1 -0
- package/dist/lib/stores/email-config-store.js +185 -0
- package/dist/lib/stores/email-config-store.js.map +1 -0
- package/dist/lib/stores/portal-config-store.d.ts +38 -0
- package/dist/lib/stores/portal-config-store.d.ts.map +1 -0
- package/dist/lib/stores/portal-config-store.js +238 -0
- package/dist/lib/stores/portal-config-store.js.map +1 -0
- package/dist/lib/stores/video-store.d.ts +91 -0
- package/dist/lib/stores/video-store.d.ts.map +1 -0
- package/dist/lib/stores/video-store.js +451 -0
- package/dist/lib/stores/video-store.js.map +1 -0
- package/dist/lib/utils.d.ts +13 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +52 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/videos/access-control.d.ts +35 -0
- package/dist/lib/videos/access-control.d.ts.map +1 -0
- package/dist/lib/videos/access-control.js +63 -0
- package/dist/lib/videos/access-control.js.map +1 -0
- package/dist/lib/videos/agent-api-client.d.ts +46 -0
- package/dist/lib/videos/agent-api-client.d.ts.map +1 -0
- package/dist/lib/videos/agent-api-client.js +75 -0
- package/dist/lib/videos/agent-api-client.js.map +1 -0
- package/dist/lib/videos/creation.d.ts +24 -0
- package/dist/lib/videos/creation.d.ts.map +1 -0
- package/dist/lib/videos/creation.js +112 -0
- package/dist/lib/videos/creation.js.map +1 -0
- package/dist/lib/videos/expiration.d.ts +13 -0
- package/dist/lib/videos/expiration.d.ts.map +1 -0
- package/dist/lib/videos/expiration.js +95 -0
- package/dist/lib/videos/expiration.js.map +1 -0
- package/dist/lib/videos/image-resize.d.ts +42 -0
- package/dist/lib/videos/image-resize.d.ts.map +1 -0
- package/dist/lib/videos/image-resize.js +106 -0
- package/dist/lib/videos/image-resize.js.map +1 -0
- package/dist/lib/videos/processing.d.ts +35 -0
- package/dist/lib/videos/processing.d.ts.map +1 -0
- package/dist/lib/videos/processing.js +154 -0
- package/dist/lib/videos/processing.js.map +1 -0
- package/dist/lib/videos/status.d.ts +2 -0
- package/dist/lib/videos/status.d.ts.map +1 -0
- package/dist/lib/videos/status.js +141 -0
- package/dist/lib/videos/status.js.map +1 -0
- package/dist/lib/videos/upload.d.ts +41 -0
- package/dist/lib/videos/upload.d.ts.map +1 -0
- package/dist/lib/videos/upload.js +118 -0
- package/dist/lib/videos/upload.js.map +1 -0
- package/dist/lib/videos/url-normalization.d.ts +29 -0
- package/dist/lib/videos/url-normalization.d.ts.map +1 -0
- package/dist/lib/videos/url-normalization.js +61 -0
- package/dist/lib/videos/url-normalization.js.map +1 -0
- package/dist/sso/index.d.ts +3 -0
- package/dist/sso/index.d.ts.map +1 -0
- package/dist/sso/index.js +3 -0
- package/dist/sso/index.js.map +1 -0
- package/dist/sso/token.d.ts +17 -0
- package/dist/sso/token.d.ts.map +1 -0
- package/dist/sso/token.js +57 -0
- package/dist/sso/token.js.map +1 -0
- package/dist/types/chat.d.ts +128 -0
- package/dist/types/chat.d.ts.map +1 -0
- package/dist/types/chat.js +2 -0
- package/dist/types/chat.js.map +1 -0
- package/dist/types/data-documents.d.ts +78 -0
- package/dist/types/data-documents.d.ts.map +1 -0
- package/dist/types/data-documents.js +6 -0
- package/dist/types/data-documents.js.map +1 -0
- package/dist/types/documents.d.ts +63 -0
- package/dist/types/documents.d.ts.map +1 -0
- package/dist/types/documents.js +7 -0
- package/dist/types/documents.js.map +1 -0
- package/dist/types/index.d.ts +32 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +9 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/library.d.ts +94 -0
- package/dist/types/library.d.ts.map +1 -0
- package/dist/types/library.js +6 -0
- package/dist/types/library.js.map +1 -0
- package/dist/types/next-auth.d.ts +78 -0
- package/dist/types/next-auth.d.ts.map +1 -0
- package/dist/types/next-auth.js +5 -0
- package/dist/types/next-auth.js.map +1 -0
- package/dist/types/processing-history.d.ts +22 -0
- package/dist/types/processing-history.d.ts.map +1 -0
- package/dist/types/processing-history.js +7 -0
- package/dist/types/processing-history.js.map +1 -0
- package/dist/types/sso.d.ts +37 -0
- package/dist/types/sso.d.ts.map +1 -0
- package/dist/types/sso.js +2 -0
- package/dist/types/sso.js.map +1 -0
- package/dist/types/video.d.ts +118 -0
- package/dist/types/video.d.ts.map +1 -0
- package/dist/types/video.js +84 -0
- package/dist/types/video.js.map +1 -0
- package/dist/types/workflow.d.ts +222 -0
- package/dist/types/workflow.d.ts.map +1 -0
- package/dist/types/workflow.js +11 -0
- package/dist/types/workflow.js.map +1 -0
- package/package.json +201 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Video Processing Utilities
|
|
3
|
+
*
|
|
4
|
+
* Functions for downloading videos, extracting poster frames,
|
|
5
|
+
* and storing them using the data service (MinIO).
|
|
6
|
+
*
|
|
7
|
+
* NOTE: Videos are stored but NOT processed. This means:
|
|
8
|
+
* - Videos are uploaded to MinIO and stored permanently
|
|
9
|
+
* - No transcript generation
|
|
10
|
+
* - No frame sampling for descriptions
|
|
11
|
+
* - No analysis or metadata extraction
|
|
12
|
+
*
|
|
13
|
+
* Processing (transcript, frame sampling, description generation) will be added later.
|
|
14
|
+
* For now, videos are simply stored for retrieval/download.
|
|
15
|
+
*/
|
|
16
|
+
import { dataFetch } from '../data/app-client';
|
|
17
|
+
import { downloadVideoViaAgent } from './agent-api-client';
|
|
18
|
+
/**
|
|
19
|
+
* Extract first frame from video as JPEG poster image
|
|
20
|
+
*
|
|
21
|
+
* Uses sharp and fluent-ffmpeg to extract the first frame.
|
|
22
|
+
* Falls back to a placeholder if extraction fails.
|
|
23
|
+
*/
|
|
24
|
+
async function extractPosterFrame(videoBuffer) {
|
|
25
|
+
try {
|
|
26
|
+
// We'll use ffmpeg through a temporary file approach
|
|
27
|
+
const { exec } = await import('child_process');
|
|
28
|
+
const { promisify } = await import('util');
|
|
29
|
+
const execAsync = promisify(exec);
|
|
30
|
+
const fs = await import('fs');
|
|
31
|
+
const path = await import('path');
|
|
32
|
+
const os = await import('os');
|
|
33
|
+
// Check if ffmpeg is available by trying to run it with --version
|
|
34
|
+
// This is more reliable than 'which' in some environments
|
|
35
|
+
try {
|
|
36
|
+
await execAsync('ffmpeg -version', { timeout: 5000 });
|
|
37
|
+
}
|
|
38
|
+
catch (checkError) {
|
|
39
|
+
console.error('[VIDEO STORAGE] ffmpeg not found or not executable, using fallback');
|
|
40
|
+
// Return fallback image if ffmpeg is not available
|
|
41
|
+
const fallbackBase64 = '/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAABAAEDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAv/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAX/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/wA=';
|
|
42
|
+
return Buffer.from(fallbackBase64, 'base64');
|
|
43
|
+
}
|
|
44
|
+
// Create temp files
|
|
45
|
+
const tempDir = os.tmpdir();
|
|
46
|
+
const tempVideoPath = path.join(tempDir, `video-${Date.now()}.mp4`);
|
|
47
|
+
const tempPosterPath = path.join(tempDir, `poster-${Date.now()}.jpg`);
|
|
48
|
+
try {
|
|
49
|
+
// Write video to temp file
|
|
50
|
+
await fs.promises.writeFile(tempVideoPath, videoBuffer);
|
|
51
|
+
// Extract first frame using ffmpeg
|
|
52
|
+
// -ss 0.5: seek to 0.5 seconds (avoid black frames at start)
|
|
53
|
+
// -vframes 1: extract only 1 frame
|
|
54
|
+
// -q:v 2: high quality JPEG (scale 2-31, lower is better)
|
|
55
|
+
await execAsync(`ffmpeg -i "${tempVideoPath}" -ss 0.5 -vframes 1 -q:v 2 "${tempPosterPath}"`);
|
|
56
|
+
// Read the poster
|
|
57
|
+
const posterBuffer = await fs.promises.readFile(tempPosterPath);
|
|
58
|
+
// Cleanup
|
|
59
|
+
await fs.promises.unlink(tempVideoPath).catch(() => { });
|
|
60
|
+
await fs.promises.unlink(tempPosterPath).catch(() => { });
|
|
61
|
+
return posterBuffer;
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
// Cleanup on error
|
|
65
|
+
await fs.promises.unlink(tempVideoPath).catch(() => { });
|
|
66
|
+
await fs.promises.unlink(tempPosterPath).catch(() => { });
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
console.error('Failed to extract poster frame:', error);
|
|
72
|
+
// Return a minimal 1x1 pixel JPEG as fallback
|
|
73
|
+
// This is a base64-encoded 1x1 black JPEG
|
|
74
|
+
const fallbackBase64 = '/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAABAAEDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAv/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAX/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/wA=';
|
|
75
|
+
return Buffer.from(fallbackBase64, 'base64');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Upload file buffer to data service
|
|
80
|
+
*/
|
|
81
|
+
async function uploadFileToData(buffer, filename, contentType, userId, metadata) {
|
|
82
|
+
// Use built-in FormData (Node.js 18+) with Blob
|
|
83
|
+
// Create a Blob from the buffer (convert Buffer to Uint8Array for Blob compatibility)
|
|
84
|
+
const blob = new Blob([new Uint8Array(buffer)], { type: contentType });
|
|
85
|
+
const formData = new FormData();
|
|
86
|
+
formData.append('file', blob, filename);
|
|
87
|
+
if (metadata) {
|
|
88
|
+
formData.append('metadata', JSON.stringify(metadata));
|
|
89
|
+
}
|
|
90
|
+
const response = await dataFetch(`uploadFileToData (${filename}, ${contentType})`, '/upload', {
|
|
91
|
+
method: 'POST',
|
|
92
|
+
headers: {
|
|
93
|
+
'X-User-Id': userId,
|
|
94
|
+
// Don't set Content-Type - let fetch set it with boundary
|
|
95
|
+
},
|
|
96
|
+
body: formData,
|
|
97
|
+
userId, // Required for auth token exchange
|
|
98
|
+
timeout: 180000, // 3 minutes - video files can be large (tens of MB)
|
|
99
|
+
});
|
|
100
|
+
const data = await response.json();
|
|
101
|
+
return { fileId: data.fileId };
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Download video from OpenAI and store it with a poster image
|
|
105
|
+
*
|
|
106
|
+
* @param videoId - Our internal video ID
|
|
107
|
+
* @param openaiVideoId - OpenAI's video ID
|
|
108
|
+
* @param userId - User ID who owns the video
|
|
109
|
+
* @returns URLs and sizes for the stored video and poster
|
|
110
|
+
*/
|
|
111
|
+
export async function downloadAndStoreVideo(videoId, openaiVideoId, userId, agentAccessToken) {
|
|
112
|
+
console.log(`[VIDEO STORAGE] Starting download and storage for video ${videoId}`);
|
|
113
|
+
// Download video via Agent API -> LiteLLM -> OpenAI
|
|
114
|
+
console.log(`[VIDEO STORAGE] Downloading from OpenAI via Agent API: ${openaiVideoId}`);
|
|
115
|
+
if (!agentAccessToken) {
|
|
116
|
+
throw new Error('Agent access token required for video content download');
|
|
117
|
+
}
|
|
118
|
+
const videoBuffer = await downloadVideoViaAgent(agentAccessToken, openaiVideoId);
|
|
119
|
+
console.log(`[VIDEO STORAGE] Downloaded ${videoBuffer.length} bytes`);
|
|
120
|
+
// Extract poster frame
|
|
121
|
+
console.log(`[VIDEO STORAGE] Extracting poster frame`);
|
|
122
|
+
const posterBuffer = await extractPosterFrame(videoBuffer);
|
|
123
|
+
console.log(`[VIDEO STORAGE] Extracted poster: ${posterBuffer.length} bytes`);
|
|
124
|
+
// Upload video to data service
|
|
125
|
+
console.log(`[VIDEO STORAGE] Uploading video to data service`);
|
|
126
|
+
const videoUploadResult = await uploadFileToData(videoBuffer, `${videoId}-video.mp4`, 'video/mp4', userId, {
|
|
127
|
+
source: 'video_generation',
|
|
128
|
+
videoId,
|
|
129
|
+
openaiVideoId,
|
|
130
|
+
type: 'video',
|
|
131
|
+
});
|
|
132
|
+
console.log(`[VIDEO STORAGE] Video uploaded with fileId: ${videoUploadResult.fileId}`);
|
|
133
|
+
// Upload poster to data service
|
|
134
|
+
console.log(`[VIDEO STORAGE] Uploading poster to data service`);
|
|
135
|
+
const posterUploadResult = await uploadFileToData(posterBuffer, `${videoId}-poster.jpg`, 'image/jpeg', userId, {
|
|
136
|
+
source: 'video_generation',
|
|
137
|
+
videoId,
|
|
138
|
+
openaiVideoId,
|
|
139
|
+
type: 'poster',
|
|
140
|
+
});
|
|
141
|
+
console.log(`[VIDEO STORAGE] Poster uploaded with fileId: ${posterUploadResult.fileId}`);
|
|
142
|
+
// Generate URLs using relative paths - these will work regardless of the host
|
|
143
|
+
// The browser will resolve these relative to the current origin
|
|
144
|
+
// This ensures videos work whether accessed via localhost, container IP, or domain
|
|
145
|
+
const videoUrl = `/api/videos/files/${videoUploadResult.fileId}`;
|
|
146
|
+
const posterUrl = `/api/videos/files/${posterUploadResult.fileId}`;
|
|
147
|
+
return {
|
|
148
|
+
videoUrl,
|
|
149
|
+
posterUrl,
|
|
150
|
+
videoSize: videoBuffer.length,
|
|
151
|
+
posterSize: posterBuffer.length,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=processing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processing.js","sourceRoot":"","sources":["../../../src/lib/videos/processing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/lib/videos/status.ts"],"names":[],"mappings":"AAoFA,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,MAAM,gBAoG1B"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { downloadAndStoreVideo } from './processing';
|
|
2
|
+
import { VideoStatus } from '../../types/video';
|
|
3
|
+
import { setSessionJwtForUser } from '../data/app-client';
|
|
4
|
+
import { getVideoById, updateVideo } from '../stores/video-store';
|
|
5
|
+
import { getVideoStatusViaAgent } from './agent-api-client';
|
|
6
|
+
function mapOpenAIStatus(openaiStatus) {
|
|
7
|
+
// OpenAI uses: "queued" | "in_progress" | "completed" | "failed"
|
|
8
|
+
switch (openaiStatus.toLowerCase()) {
|
|
9
|
+
case 'queued':
|
|
10
|
+
return VideoStatus.QUEUED;
|
|
11
|
+
case 'in_progress':
|
|
12
|
+
return VideoStatus.PROCESSING;
|
|
13
|
+
case 'completed':
|
|
14
|
+
return VideoStatus.COMPLETED;
|
|
15
|
+
case 'failed':
|
|
16
|
+
return VideoStatus.FAILED;
|
|
17
|
+
default:
|
|
18
|
+
return VideoStatus.QUEUED;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
// Track in-flight storage operations to prevent duplicate downloads
|
|
22
|
+
const storageInFlight = new Set();
|
|
23
|
+
/**
|
|
24
|
+
* Fire-and-forget: download video from OpenAI and store in MinIO.
|
|
25
|
+
* Runs in the background so the status endpoint can return immediately.
|
|
26
|
+
*/
|
|
27
|
+
async function backgroundStoreVideo(videoId, openaiVideoId, ownerId, accessToken, roleIds, sessionJwt, agentAccessToken) {
|
|
28
|
+
if (storageInFlight.has(videoId)) {
|
|
29
|
+
console.log(`[VIDEO STORAGE BG] Already storing video ${videoId}, skipping duplicate`);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
storageInFlight.add(videoId);
|
|
33
|
+
try {
|
|
34
|
+
console.log(`[VIDEO STORAGE BG] Starting background storage for video ${videoId}`);
|
|
35
|
+
if (sessionJwt) {
|
|
36
|
+
setSessionJwtForUser(ownerId, sessionJwt);
|
|
37
|
+
}
|
|
38
|
+
const storageResult = await downloadAndStoreVideo(videoId, openaiVideoId, ownerId, agentAccessToken);
|
|
39
|
+
// Update DB with stored file URLs
|
|
40
|
+
await updateVideo(accessToken, roleIds, videoId, {
|
|
41
|
+
downloadUrl: storageResult.videoUrl,
|
|
42
|
+
posterUrl: storageResult.posterUrl,
|
|
43
|
+
expiresAt: null,
|
|
44
|
+
errorMessage: null,
|
|
45
|
+
});
|
|
46
|
+
console.log('[VIDEO STORAGE BG] Video stored successfully:', {
|
|
47
|
+
videoId,
|
|
48
|
+
videoUrl: storageResult.videoUrl,
|
|
49
|
+
posterUrl: storageResult.posterUrl,
|
|
50
|
+
videoSize: storageResult.videoSize,
|
|
51
|
+
posterSize: storageResult.posterSize,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
console.error(`[VIDEO STORAGE BG] Failed to store video ${videoId}:`, error);
|
|
56
|
+
// Mark as storage-pending so the next poll will retry
|
|
57
|
+
try {
|
|
58
|
+
await updateVideo(accessToken, roleIds, videoId, {
|
|
59
|
+
errorMessage: `Storage pending: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
catch (updateError) {
|
|
63
|
+
console.error(`[VIDEO STORAGE BG] Failed to update error message for ${videoId}:`, updateError);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
storageInFlight.delete(videoId);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export async function updateVideoStatusFromOpenAI(videoId, accessToken, roleIds, sessionJwt, agentAccessToken) {
|
|
71
|
+
const video = await getVideoById(accessToken, videoId);
|
|
72
|
+
if (!video) {
|
|
73
|
+
throw new Error('Video not found');
|
|
74
|
+
}
|
|
75
|
+
// If video is already failed, return it without re-processing
|
|
76
|
+
if (video.status === VideoStatus.FAILED) {
|
|
77
|
+
console.log(`[VIDEO STATUS] Video ${videoId} already FAILED, skipping processing`);
|
|
78
|
+
return video;
|
|
79
|
+
}
|
|
80
|
+
// If video is COMPLETED and has stored files, return it without re-processing
|
|
81
|
+
if (video.status === VideoStatus.COMPLETED && video.downloadUrl && video.posterUrl) {
|
|
82
|
+
console.log(`[VIDEO STATUS] Video ${videoId} already COMPLETED with stored files, skipping processing`);
|
|
83
|
+
return video;
|
|
84
|
+
}
|
|
85
|
+
// If video is COMPLETED but storage is still in-flight, return current state
|
|
86
|
+
if (video.status === VideoStatus.COMPLETED && storageInFlight.has(videoId)) {
|
|
87
|
+
console.log(`[VIDEO STATUS] Video ${videoId} COMPLETED, storage in progress...`);
|
|
88
|
+
return video;
|
|
89
|
+
}
|
|
90
|
+
// If video is COMPLETED but missing files (storage failed previously), retry in background
|
|
91
|
+
if (video.status === VideoStatus.COMPLETED && (!video.downloadUrl || !video.posterUrl)) {
|
|
92
|
+
if (video.openaiVideoId && agentAccessToken) {
|
|
93
|
+
console.log(`[VIDEO STATUS] Video ${videoId} COMPLETED but missing stored files, retrying storage...`);
|
|
94
|
+
// Fire-and-forget background storage
|
|
95
|
+
backgroundStoreVideo(videoId, video.openaiVideoId, video.ownerId, accessToken, roleIds, sessionJwt, agentAccessToken);
|
|
96
|
+
}
|
|
97
|
+
return video;
|
|
98
|
+
}
|
|
99
|
+
if (!video.openaiVideoId) {
|
|
100
|
+
throw new Error('Video has no OpenAI ID');
|
|
101
|
+
}
|
|
102
|
+
if (!agentAccessToken) {
|
|
103
|
+
throw new Error('Agent access token required for video status check');
|
|
104
|
+
}
|
|
105
|
+
// Call Agent API which proxies to LiteLLM -> OpenAI
|
|
106
|
+
const openaiVideo = await getVideoStatusViaAgent(agentAccessToken, video.openaiVideoId);
|
|
107
|
+
const newStatus = mapOpenAIStatus(openaiVideo.status);
|
|
108
|
+
console.log('[VIDEO STATUS] OpenAI response for', video.openaiVideoId, ':', JSON.stringify(openaiVideo, null, 2));
|
|
109
|
+
const updateData = {
|
|
110
|
+
status: newStatus,
|
|
111
|
+
progress: openaiVideo.progress || null,
|
|
112
|
+
};
|
|
113
|
+
if (newStatus === VideoStatus.COMPLETED) {
|
|
114
|
+
updateData.completedAt = new Date();
|
|
115
|
+
// Check if files are already stored (race condition guard)
|
|
116
|
+
const existingVideo = await getVideoById(accessToken, videoId);
|
|
117
|
+
if (existingVideo?.downloadUrl && existingVideo?.posterUrl) {
|
|
118
|
+
console.log('[VIDEO STATUS] Video already stored, skipping download');
|
|
119
|
+
updateData.expiresAt = null;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
// Mark as COMPLETED immediately and kick off background storage
|
|
123
|
+
console.log('[VIDEO STATUS] Video completed on OpenAI, starting background storage...');
|
|
124
|
+
// Update status to COMPLETED right away so the UI shows completion
|
|
125
|
+
updateData.status = VideoStatus.COMPLETED;
|
|
126
|
+
updateData.errorMessage = null;
|
|
127
|
+
// Fire-and-forget: download and store in background
|
|
128
|
+
backgroundStoreVideo(videoId, video.openaiVideoId, video.ownerId, accessToken, roleIds, sessionJwt, agentAccessToken);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (newStatus === VideoStatus.FAILED) {
|
|
132
|
+
updateData.errorMessage = openaiVideo.error?.message || 'Video generation failed';
|
|
133
|
+
}
|
|
134
|
+
const updatedVideo = await updateVideo(accessToken, roleIds, videoId, updateData);
|
|
135
|
+
if (!updatedVideo) {
|
|
136
|
+
throw new Error('Video not found');
|
|
137
|
+
}
|
|
138
|
+
console.log(`Video ${videoId} status updated: ${video.status} -> ${newStatus}`);
|
|
139
|
+
return updatedVideo;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/lib/videos/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Upload validation and processing utilities for reference media
|
|
3
|
+
*
|
|
4
|
+
* Handles validation of image and video files for video generation.
|
|
5
|
+
*/
|
|
6
|
+
import type { FileValidationResult } from '../../types/video';
|
|
7
|
+
/**
|
|
8
|
+
* Validate a reference media file (client-side)
|
|
9
|
+
*
|
|
10
|
+
* Checks file type and size before upload.
|
|
11
|
+
*/
|
|
12
|
+
export declare function validateReferenceFile(file: File): FileValidationResult;
|
|
13
|
+
/**
|
|
14
|
+
* Convert a file to base64 data URL
|
|
15
|
+
*/
|
|
16
|
+
export declare function fileToBase64(file: File): Promise<string>;
|
|
17
|
+
/**
|
|
18
|
+
* Extract file format from MIME type
|
|
19
|
+
*/
|
|
20
|
+
export declare function getFormatFromMimeType(mimeType: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Get file type category from MIME type
|
|
23
|
+
*/
|
|
24
|
+
export declare function getFileTypeFromMimeType(mimeType: string): 'image' | 'video';
|
|
25
|
+
/**
|
|
26
|
+
* Format file size for display
|
|
27
|
+
*/
|
|
28
|
+
export declare function formatFileSize(bytes: number): string;
|
|
29
|
+
export declare function validateBase64ReferenceMedia(base64Data: string): {
|
|
30
|
+
valid: boolean;
|
|
31
|
+
error: string | null;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Create a preview URL from a file
|
|
35
|
+
*/
|
|
36
|
+
export declare function createPreviewUrl(file: File): string;
|
|
37
|
+
/**
|
|
38
|
+
* Revoke a preview URL to free memory
|
|
39
|
+
*/
|
|
40
|
+
export declare function revokePreviewUrl(url: string): void;
|
|
41
|
+
//# sourceMappingURL=upload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/lib/videos/upload.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG9D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,oBAAoB,CAwBtE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBxD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ9D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAE3E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQpD;AAiBD,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAWzG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAElD"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Upload validation and processing utilities for reference media
|
|
3
|
+
*
|
|
4
|
+
* Handles validation of image and video files for video generation.
|
|
5
|
+
*/
|
|
6
|
+
import { ALLOWED_MIME_TYPES, FILE_SIZE_LIMITS } from '../../types/video';
|
|
7
|
+
/**
|
|
8
|
+
* Validate a reference media file (client-side)
|
|
9
|
+
*
|
|
10
|
+
* Checks file type and size before upload.
|
|
11
|
+
*/
|
|
12
|
+
export function validateReferenceFile(file) {
|
|
13
|
+
const isImage = ALLOWED_MIME_TYPES.IMAGE.includes(file.type);
|
|
14
|
+
const isVideo = ALLOWED_MIME_TYPES.VIDEO.includes(file.type);
|
|
15
|
+
// Check if file type is allowed
|
|
16
|
+
if (!isImage && !isVideo) {
|
|
17
|
+
return {
|
|
18
|
+
valid: false,
|
|
19
|
+
error: 'Please upload a JPG, PNG, WebP image or MP4, MOV video',
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
// Check file size based on type
|
|
23
|
+
const maxSize = isImage ? FILE_SIZE_LIMITS.IMAGE : FILE_SIZE_LIMITS.VIDEO;
|
|
24
|
+
if (file.size > maxSize) {
|
|
25
|
+
const maxSizeMB = maxSize / (1024 * 1024);
|
|
26
|
+
const fileType = isImage ? 'Image' : 'Video';
|
|
27
|
+
return {
|
|
28
|
+
valid: false,
|
|
29
|
+
error: `${fileType} file too large. Maximum size: ${maxSizeMB}MB`,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return { valid: true };
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Convert a file to base64 data URL
|
|
36
|
+
*/
|
|
37
|
+
export function fileToBase64(file) {
|
|
38
|
+
return new Promise((resolve, reject) => {
|
|
39
|
+
const reader = new FileReader();
|
|
40
|
+
reader.onload = () => {
|
|
41
|
+
if (typeof reader.result === 'string') {
|
|
42
|
+
resolve(reader.result);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
reject(new Error('Failed to read file as text'));
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
reader.onerror = () => {
|
|
49
|
+
reject(new Error('Failed to read file'));
|
|
50
|
+
};
|
|
51
|
+
reader.readAsDataURL(file);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Extract file format from MIME type
|
|
56
|
+
*/
|
|
57
|
+
export function getFormatFromMimeType(mimeType) {
|
|
58
|
+
const format = mimeType.split('/')[1];
|
|
59
|
+
// Handle special cases
|
|
60
|
+
if (format === 'jpeg')
|
|
61
|
+
return 'jpg';
|
|
62
|
+
if (format === 'quicktime')
|
|
63
|
+
return 'mov';
|
|
64
|
+
return format;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get file type category from MIME type
|
|
68
|
+
*/
|
|
69
|
+
export function getFileTypeFromMimeType(mimeType) {
|
|
70
|
+
return mimeType.startsWith('image/') ? 'image' : 'video';
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Format file size for display
|
|
74
|
+
*/
|
|
75
|
+
export function formatFileSize(bytes) {
|
|
76
|
+
if (bytes === 0)
|
|
77
|
+
return '0 Bytes';
|
|
78
|
+
const k = 1024;
|
|
79
|
+
const sizes = ['Bytes', 'KB', 'MB', 'GB'];
|
|
80
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
81
|
+
return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;
|
|
82
|
+
}
|
|
83
|
+
const MAX_FILE_SIZE_MB = 100;
|
|
84
|
+
const MAX_FILE_SIZE_BYTES = MAX_FILE_SIZE_MB * 1024 * 1024;
|
|
85
|
+
function base64DataLengthBytes(base64DataUrl) {
|
|
86
|
+
const parts = base64DataUrl.split(',');
|
|
87
|
+
if (parts.length < 2)
|
|
88
|
+
return 0;
|
|
89
|
+
const base64 = parts[1] ?? '';
|
|
90
|
+
// Browser-safe size estimation:
|
|
91
|
+
// 1) strip padding
|
|
92
|
+
// 2) bytes = (len * 3) / 4
|
|
93
|
+
const len = base64.replace(/=+$/, '').length;
|
|
94
|
+
return Math.floor((len * 3) / 4);
|
|
95
|
+
}
|
|
96
|
+
export function validateBase64ReferenceMedia(base64Data) {
|
|
97
|
+
if (!base64Data.startsWith('data:')) {
|
|
98
|
+
return { valid: false, error: 'Invalid base64 data: must be a data URL' };
|
|
99
|
+
}
|
|
100
|
+
const fileSize = base64DataLengthBytes(base64Data);
|
|
101
|
+
if (fileSize > MAX_FILE_SIZE_BYTES) {
|
|
102
|
+
return { valid: false, error: `File size exceeds ${MAX_FILE_SIZE_MB}MB limit` };
|
|
103
|
+
}
|
|
104
|
+
return { valid: true, error: null };
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Create a preview URL from a file
|
|
108
|
+
*/
|
|
109
|
+
export function createPreviewUrl(file) {
|
|
110
|
+
return URL.createObjectURL(file);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Revoke a preview URL to free memory
|
|
114
|
+
*/
|
|
115
|
+
export function revokePreviewUrl(url) {
|
|
116
|
+
URL.revokeObjectURL(url);
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=upload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/lib/videos/upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* URL Normalization Utilities
|
|
3
|
+
*
|
|
4
|
+
* Normalizes video and poster URLs to use relative paths.
|
|
5
|
+
* This ensures URLs work regardless of the host (localhost, container IP, or domain).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Normalize a URL to a relative path if it's a localhost or container IP URL
|
|
9
|
+
*
|
|
10
|
+
* Converts:
|
|
11
|
+
* - http://localhost:3000/api/videos/files/... → /api/videos/files/...
|
|
12
|
+
* - http://10.96.200.201:3000/api/videos/files/... → /api/videos/files/...
|
|
13
|
+
* - /api/videos/files/... → /api/videos/files/... (unchanged)
|
|
14
|
+
*
|
|
15
|
+
* @param url - The URL to normalize
|
|
16
|
+
* @returns Normalized relative path
|
|
17
|
+
*/
|
|
18
|
+
export declare function normalizeVideoUrl(url: string | null | undefined): string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Normalize video object URLs
|
|
21
|
+
*
|
|
22
|
+
* @param video - Video object with downloadUrl and posterUrl
|
|
23
|
+
* @returns Video object with normalized URLs
|
|
24
|
+
*/
|
|
25
|
+
export declare function normalizeVideoUrls<T extends {
|
|
26
|
+
downloadUrl?: string | null;
|
|
27
|
+
posterUrl?: string | null;
|
|
28
|
+
}>(video: T): T;
|
|
29
|
+
//# sourceMappingURL=url-normalization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-normalization.d.ts","sourceRoot":"","sources":["../../../src/lib/videos/url-normalization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAiC/E;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACrG,KAAK,EAAE,CAAC,GACP,CAAC,CAMH"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* URL Normalization Utilities
|
|
3
|
+
*
|
|
4
|
+
* Normalizes video and poster URLs to use relative paths.
|
|
5
|
+
* This ensures URLs work regardless of the host (localhost, container IP, or domain).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Normalize a URL to a relative path if it's a localhost or container IP URL
|
|
9
|
+
*
|
|
10
|
+
* Converts:
|
|
11
|
+
* - http://localhost:3000/api/videos/files/... → /api/videos/files/...
|
|
12
|
+
* - http://10.96.200.201:3000/api/videos/files/... → /api/videos/files/...
|
|
13
|
+
* - /api/videos/files/... → /api/videos/files/... (unchanged)
|
|
14
|
+
*
|
|
15
|
+
* @param url - The URL to normalize
|
|
16
|
+
* @returns Normalized relative path
|
|
17
|
+
*/
|
|
18
|
+
export function normalizeVideoUrl(url) {
|
|
19
|
+
if (!url) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
// If it's already a relative path, return as-is
|
|
23
|
+
if (url.startsWith('/')) {
|
|
24
|
+
return url;
|
|
25
|
+
}
|
|
26
|
+
// Extract the path from absolute URLs
|
|
27
|
+
try {
|
|
28
|
+
const urlObj = new URL(url);
|
|
29
|
+
// Check if it's a localhost or internal IP URL
|
|
30
|
+
const hostname = urlObj.hostname;
|
|
31
|
+
if (hostname === 'localhost' ||
|
|
32
|
+
hostname === '127.0.0.1' ||
|
|
33
|
+
hostname.startsWith('10.96.') ||
|
|
34
|
+
hostname.startsWith('192.168.') ||
|
|
35
|
+
hostname.startsWith('172.')) {
|
|
36
|
+
// Return just the pathname
|
|
37
|
+
return urlObj.pathname;
|
|
38
|
+
}
|
|
39
|
+
// For external URLs, return as-is (shouldn't happen for our videos, but just in case)
|
|
40
|
+
return url;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// If URL parsing fails, assume it's already a relative path or invalid
|
|
44
|
+
// If it starts with /, return as-is, otherwise return null
|
|
45
|
+
return url.startsWith('/') ? url : null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Normalize video object URLs
|
|
50
|
+
*
|
|
51
|
+
* @param video - Video object with downloadUrl and posterUrl
|
|
52
|
+
* @returns Video object with normalized URLs
|
|
53
|
+
*/
|
|
54
|
+
export function normalizeVideoUrls(video) {
|
|
55
|
+
return {
|
|
56
|
+
...video,
|
|
57
|
+
downloadUrl: normalizeVideoUrl(video.downloadUrl),
|
|
58
|
+
posterUrl: normalizeVideoUrl(video.posterUrl),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=url-normalization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-normalization.js","sourceRoot":"","sources":["../../../src/lib/videos/url-normalization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAA8B;IAC9D,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gDAAgD;IAChD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,sCAAsC;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IACE,QAAQ,KAAK,WAAW;YACxB,QAAQ,KAAK,WAAW;YACxB,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC7B,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;YAC/B,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAC3B,CAAC;YACD,2BAA2B;YAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QAED,sFAAsF;QACtF,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,2DAA2D;QAC3D,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAQ;IAER,OAAO;QACL,GAAG,KAAK;QACR,WAAW,EAAE,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC;QACjD,SAAS,EAAE,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC;KAC9C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sso/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sso/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { EntraIdClaims, SsoJwtClaims, VerifySsoTokenOptions } from '../types/sso';
|
|
2
|
+
/**
|
|
3
|
+
* Verify and parse an Busibox Portal SSO token.
|
|
4
|
+
*
|
|
5
|
+
* This is intentionally **stateless**: no DB lookups, no "usedAt" checks, no client-secret validation.
|
|
6
|
+
* Those DB-backed checks remain busibox-portal-only.
|
|
7
|
+
*/
|
|
8
|
+
export declare function verifySsoToken(token: string, options: VerifySsoTokenOptions): Promise<SsoJwtClaims>;
|
|
9
|
+
/**
|
|
10
|
+
* Decode token without verification (useful for debugging only).
|
|
11
|
+
*/
|
|
12
|
+
export declare function decodeSsoToken(token: string): SsoJwtClaims;
|
|
13
|
+
export declare function getRoleNamesFromSsoClaims(claims: SsoJwtClaims): string[];
|
|
14
|
+
export declare function hasRole(roleNames: string[], roleName: string): boolean;
|
|
15
|
+
export declare function isAdmin(roleNames: string[]): boolean;
|
|
16
|
+
export declare function getEntraIdClaims(claims: SsoJwtClaims): EntraIdClaims;
|
|
17
|
+
//# sourceMappingURL=token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/sso/token.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAMvF;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,YAAY,CAAC,CAUvB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAG1D;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAaxE;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAEpD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CASpE"}
|