@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,458 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebAuthn / Passkey Utility Functions
|
|
3
|
+
*
|
|
4
|
+
* Implements passkey registration and authentication using the WebAuthn standard.
|
|
5
|
+
* Uses @simplewebauthn/server for server-side operations.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: Passkey storage is now handled by the authz service.
|
|
8
|
+
* This module performs WebAuthn verification locally, then stores results via authz.
|
|
9
|
+
*/
|
|
10
|
+
import { generateRegistrationOptions, verifyRegistrationResponse, generateAuthenticationOptions, verifyAuthenticationResponse, } from '@simplewebauthn/server';
|
|
11
|
+
import { createPasskeyChallenge, registerPasskey as authzRegisterPasskey, listUserPasskeys as authzListUserPasskeys, deletePasskey as authzDeletePasskey, authenticateWithPasskey as authzAuthenticateWithPasskey, } from './session-client';
|
|
12
|
+
import { getAuthzOptions, getAuthzBaseUrl } from './next-client';
|
|
13
|
+
// RP (Relying Party) configuration
|
|
14
|
+
// APP_URL is a runtime env var (server-side only) - it's NOT prefixed with NEXT_PUBLIC_
|
|
15
|
+
// because we don't want it baked into the client bundle at build time.
|
|
16
|
+
// This ensures the correct domain is used even if the build was done with different env vars.
|
|
17
|
+
const getAppUrl = () => process.env.APP_URL || process.env.NEXT_PUBLIC_APP_URL || 'http://localhost:3000';
|
|
18
|
+
// Log on module load so we can verify the new code is actually running
|
|
19
|
+
console.log('[PASSKEY] Module loaded (v2). WEBAUTHN_RP_ID=%s, APP_URL=%s, NEXT_PUBLIC_APP_URL=%s, PORTAL_URL=%s', process.env.WEBAUTHN_RP_ID ?? '(unset)', process.env.APP_URL ?? '(unset)', process.env.NEXT_PUBLIC_APP_URL ?? '(unset)', process.env.NEXT_PUBLIC_BUSIBOX_PORTAL_URL ?? '(unset)');
|
|
20
|
+
/**
|
|
21
|
+
* Extract a valid public hostname from available environment variables.
|
|
22
|
+
* Priority: WEBAUTHN_RP_ID > APP_URL > NEXT_PUBLIC_APP_URL > NEXT_PUBLIC_BUSIBOX_PORTAL_URL.
|
|
23
|
+
* If the hostname derived from APP_URL looks like an internal name (no dots,
|
|
24
|
+
* not localhost), fall back to NEXT_PUBLIC_BUSIBOX_PORTAL_URL which is always
|
|
25
|
+
* set to the public-facing URL.
|
|
26
|
+
*/
|
|
27
|
+
const getRpId = () => {
|
|
28
|
+
if (process.env.WEBAUTHN_RP_ID) {
|
|
29
|
+
console.log(`[PASSKEY] getRpId: using WEBAUTHN_RP_ID="${process.env.WEBAUTHN_RP_ID}"`);
|
|
30
|
+
return process.env.WEBAUTHN_RP_ID;
|
|
31
|
+
}
|
|
32
|
+
const url = getAppUrl();
|
|
33
|
+
try {
|
|
34
|
+
const hostname = new URL(url).hostname;
|
|
35
|
+
// If the hostname has dots or is localhost, it's usable as an RP ID.
|
|
36
|
+
// Otherwise it's likely an internal Docker/container service name
|
|
37
|
+
// (e.g. "portal", "core-apps") and we need to find the real domain.
|
|
38
|
+
if (hostname.includes('.') || hostname === 'localhost') {
|
|
39
|
+
console.log(`[PASSKEY] getRpId: using hostname "${hostname}" from url="${url}"`);
|
|
40
|
+
return hostname;
|
|
41
|
+
}
|
|
42
|
+
console.log(`[PASSKEY] getRpId: hostname "${hostname}" looks internal, trying PORTAL_URL fallback`);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
console.log(`[PASSKEY] getRpId: failed to parse url="${url}"`);
|
|
46
|
+
}
|
|
47
|
+
// Fallback: derive from the portal URL which is always the public domain
|
|
48
|
+
const portalUrl = process.env.NEXT_PUBLIC_BUSIBOX_PORTAL_URL;
|
|
49
|
+
if (portalUrl) {
|
|
50
|
+
try {
|
|
51
|
+
const portalHostname = new URL(portalUrl).hostname;
|
|
52
|
+
console.log(`[PASSKEY] getRpId: using portal hostname "${portalHostname}" from PORTAL_URL="${portalUrl}"`);
|
|
53
|
+
return portalHostname;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// fall through
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
console.log('[PASSKEY] getRpId: all sources exhausted, falling back to localhost');
|
|
60
|
+
return 'localhost';
|
|
61
|
+
};
|
|
62
|
+
const getRpName = () => process.env.APP_NAME || 'Busibox Portal';
|
|
63
|
+
/**
|
|
64
|
+
* Returns the expected origin(s) for WebAuthn verification.
|
|
65
|
+
* Supports multiple origins for SSH tunnel access (e.g., https://localhost:4443).
|
|
66
|
+
* When rpId is localhost, automatically includes common tunnel ports (443, 4443, 3000).
|
|
67
|
+
* Use WEBAUTHN_ADDITIONAL_ORIGINS (comma-separated) for extra origins.
|
|
68
|
+
*/
|
|
69
|
+
const getOrigin = () => {
|
|
70
|
+
const rpId = getRpId();
|
|
71
|
+
let primaryOrigin;
|
|
72
|
+
if (rpId === 'localhost') {
|
|
73
|
+
primaryOrigin = 'http://localhost:3000';
|
|
74
|
+
}
|
|
75
|
+
else if (rpId.includes('.')) {
|
|
76
|
+
// Real domain — always https
|
|
77
|
+
primaryOrigin = `https://${rpId}`;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
// Internal hostname fallback — shouldn't happen after getRpId() improvements
|
|
81
|
+
const url = getAppUrl();
|
|
82
|
+
try {
|
|
83
|
+
const parsed = new URL(url);
|
|
84
|
+
primaryOrigin = `${parsed.protocol}//${parsed.hostname}${parsed.port ? ':' + parsed.port : ''}`;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
primaryOrigin = 'http://localhost:3000';
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
const origins = [primaryOrigin];
|
|
91
|
+
// For localhost, also accept common tunnel ports (e.g., SSH tunnel on 4443)
|
|
92
|
+
if (rpId === 'localhost') {
|
|
93
|
+
const localPorts = ['443', '4443', '3000'];
|
|
94
|
+
for (const port of localPorts) {
|
|
95
|
+
const candidate = `https://localhost:${port}`;
|
|
96
|
+
if (!origins.includes(candidate)) {
|
|
97
|
+
origins.push(candidate);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// Also accept https://localhost without port (port 443 is implicit)
|
|
101
|
+
if (!origins.includes('https://localhost')) {
|
|
102
|
+
origins.push('https://localhost');
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Support additional origins via environment variable
|
|
106
|
+
const additionalOrigins = process.env.WEBAUTHN_ADDITIONAL_ORIGINS;
|
|
107
|
+
if (additionalOrigins) {
|
|
108
|
+
for (const origin of additionalOrigins.split(',').map(o => o.trim()).filter(Boolean)) {
|
|
109
|
+
if (!origins.includes(origin)) {
|
|
110
|
+
origins.push(origin);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Return single string if only one origin, otherwise array
|
|
115
|
+
return origins.length === 1 ? origins[0] : origins;
|
|
116
|
+
};
|
|
117
|
+
// ============================================================================
|
|
118
|
+
// Registration (adding a new passkey)
|
|
119
|
+
// ============================================================================
|
|
120
|
+
/**
|
|
121
|
+
* Generate registration options for a user to create a new passkey
|
|
122
|
+
* @param userId - User ID
|
|
123
|
+
* @param userEmail - User email
|
|
124
|
+
* @param sessionJwt - Session JWT for authentication with authz service
|
|
125
|
+
*/
|
|
126
|
+
export async function generatePasskeyRegistrationOptions(userId, userEmail, sessionJwt) {
|
|
127
|
+
// Use session JWT directly for self-service auth (no token exchange needed)
|
|
128
|
+
// The authz passkey endpoints support session JWT for users managing their own passkeys
|
|
129
|
+
const options = {
|
|
130
|
+
authzUrl: getAuthzBaseUrl(),
|
|
131
|
+
accessToken: sessionJwt, // Session JWT works for self-service
|
|
132
|
+
};
|
|
133
|
+
// Get existing passkeys for this user to exclude
|
|
134
|
+
const existingPasskeys = await authzListUserPasskeys(userId, options);
|
|
135
|
+
const excludeCredentials = existingPasskeys.map((passkey) => ({
|
|
136
|
+
id: passkey.credential_id,
|
|
137
|
+
type: 'public-key',
|
|
138
|
+
transports: (passkey.transports || []),
|
|
139
|
+
}));
|
|
140
|
+
const registrationOptions = await generateRegistrationOptions({
|
|
141
|
+
rpName: getRpName(),
|
|
142
|
+
rpID: getRpId(),
|
|
143
|
+
userID: new TextEncoder().encode(userId),
|
|
144
|
+
userName: userEmail,
|
|
145
|
+
userDisplayName: userEmail.split('@')[0],
|
|
146
|
+
// Timeout after 5 minutes
|
|
147
|
+
timeout: 300000,
|
|
148
|
+
// Prefer platform authenticators (Face ID, Touch ID, Windows Hello)
|
|
149
|
+
authenticatorSelection: {
|
|
150
|
+
authenticatorAttachment: 'platform',
|
|
151
|
+
residentKey: 'preferred',
|
|
152
|
+
userVerification: 'preferred',
|
|
153
|
+
},
|
|
154
|
+
// Don't re-register existing authenticators
|
|
155
|
+
excludeCredentials,
|
|
156
|
+
// Request attestation for device info
|
|
157
|
+
attestationType: 'none',
|
|
158
|
+
});
|
|
159
|
+
// Store challenge for verification via authz
|
|
160
|
+
await createPasskeyChallenge('registration', userId, options);
|
|
161
|
+
return registrationOptions;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Verify a registration response and store the new passkey
|
|
165
|
+
* @param userId - User ID
|
|
166
|
+
* @param response - Registration response from WebAuthn
|
|
167
|
+
* @param deviceName - Name for the passkey
|
|
168
|
+
* @param sessionJwt - Session JWT for authentication with authz service
|
|
169
|
+
*/
|
|
170
|
+
export async function verifyPasskeyRegistration(userId, response, deviceName, sessionJwt) {
|
|
171
|
+
// Use session JWT directly for self-service auth (no token exchange needed)
|
|
172
|
+
// The authz passkey endpoints support session JWT for users managing their own passkeys
|
|
173
|
+
const options = {
|
|
174
|
+
authzUrl: getAuthzBaseUrl(),
|
|
175
|
+
accessToken: sessionJwt, // Session JWT works for self-service
|
|
176
|
+
};
|
|
177
|
+
// Get the challenge from authz (we use the user's most recent challenge)
|
|
178
|
+
// Since authz stores challenges separately, we need to fetch it
|
|
179
|
+
// For now, we'll pass the expected challenge from the client
|
|
180
|
+
// This is a simplification - in production, you'd want to fetch the challenge
|
|
181
|
+
// Note: The challenge is in the response's clientDataJSON
|
|
182
|
+
// We need to extract it and verify against what we stored
|
|
183
|
+
const clientDataJSON = JSON.parse(Buffer.from(response.response.clientDataJSON, 'base64').toString());
|
|
184
|
+
const expectedChallenge = clientDataJSON.challenge;
|
|
185
|
+
// Verify the registration response
|
|
186
|
+
const verification = await verifyRegistrationResponse({
|
|
187
|
+
response,
|
|
188
|
+
expectedChallenge,
|
|
189
|
+
expectedOrigin: getOrigin(),
|
|
190
|
+
expectedRPID: getRpId(),
|
|
191
|
+
requireUserVerification: false,
|
|
192
|
+
});
|
|
193
|
+
if (!verification.verified || !verification.registrationInfo) {
|
|
194
|
+
throw new Error('Registration verification failed');
|
|
195
|
+
}
|
|
196
|
+
const { credential, credentialDeviceType, credentialBackedUp } = verification.registrationInfo;
|
|
197
|
+
// Store the new passkey via authz
|
|
198
|
+
const passkey = await authzRegisterPasskey({
|
|
199
|
+
userId,
|
|
200
|
+
credentialId: bufferToBase64Url(credential.id),
|
|
201
|
+
credentialPublicKey: bufferToBase64Url(credential.publicKey),
|
|
202
|
+
counter: credential.counter,
|
|
203
|
+
deviceType: credentialDeviceType,
|
|
204
|
+
backedUp: credentialBackedUp,
|
|
205
|
+
transports: response.response.transports || [],
|
|
206
|
+
aaguid: verification.registrationInfo.aaguid,
|
|
207
|
+
name: deviceName,
|
|
208
|
+
}, options);
|
|
209
|
+
return passkey;
|
|
210
|
+
}
|
|
211
|
+
// ============================================================================
|
|
212
|
+
// Authentication (signing in with a passkey)
|
|
213
|
+
// ============================================================================
|
|
214
|
+
/**
|
|
215
|
+
* Generate authentication options for passkey login
|
|
216
|
+
*
|
|
217
|
+
* Note: We don't look up user by email here because:
|
|
218
|
+
* 1. During login, we don't have an access token yet
|
|
219
|
+
* 2. Modern browsers support "discoverable credentials" which auto-select the right passkey
|
|
220
|
+
* 3. Allowing any passkey is actually the correct UX for passkey authentication
|
|
221
|
+
*/
|
|
222
|
+
export async function generatePasskeyAuthenticationOptions(_email) {
|
|
223
|
+
const options = getAuthzOptions();
|
|
224
|
+
// We don't restrict to specific credentials - the browser will show
|
|
225
|
+
// all available passkeys for this RP (discoverable credentials)
|
|
226
|
+
// This is the correct behavior for passkey authentication
|
|
227
|
+
const authOptions = await generateAuthenticationOptions({
|
|
228
|
+
rpID: getRpId(),
|
|
229
|
+
timeout: 300000,
|
|
230
|
+
userVerification: 'preferred',
|
|
231
|
+
// undefined means allow any passkey (discoverable credential)
|
|
232
|
+
allowCredentials: undefined,
|
|
233
|
+
});
|
|
234
|
+
// Store challenge for verification via authz (userId is null because we don't know the user yet)
|
|
235
|
+
await createPasskeyChallenge('authentication', undefined, options);
|
|
236
|
+
return authOptions;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Verify an authentication response and return the user and session
|
|
240
|
+
*/
|
|
241
|
+
export async function verifyPasskeyAuthentication(response) {
|
|
242
|
+
const options = getAuthzOptions();
|
|
243
|
+
// Extract the challenge from the response first (needed for verification)
|
|
244
|
+
const clientDataJSON = JSON.parse(Buffer.from(response.response.clientDataJSON, 'base64').toString());
|
|
245
|
+
const expectedChallenge = clientDataJSON.challenge;
|
|
246
|
+
// Find the passkey by credential ID via authz
|
|
247
|
+
// The credential ID should match what was stored during registration
|
|
248
|
+
// During registration, we store: bufferToBase64Url(credential.id)
|
|
249
|
+
// During authentication, response.id and response.rawId should both be Base64URL-encoded
|
|
250
|
+
// Use rawId if available, otherwise fall back to id
|
|
251
|
+
const credentialId = response.rawId || response.id;
|
|
252
|
+
if (!credentialId) {
|
|
253
|
+
throw new Error('Missing credential ID in authentication response');
|
|
254
|
+
}
|
|
255
|
+
// Log for debugging
|
|
256
|
+
console.log('[PASSKEY] Authentication response credential IDs:', {
|
|
257
|
+
id: response.id,
|
|
258
|
+
rawId: response.rawId,
|
|
259
|
+
using: credentialId,
|
|
260
|
+
id_length: response.id?.length,
|
|
261
|
+
rawId_length: response.rawId?.length,
|
|
262
|
+
});
|
|
263
|
+
// Get passkey details from authz via HTTP call
|
|
264
|
+
// Zero Trust: This is a public endpoint during authentication - no auth needed
|
|
265
|
+
const authzUrl = getAuthzBaseUrl();
|
|
266
|
+
// Credential ID is already Base64URL-encoded, but we need to URL-encode it for the path
|
|
267
|
+
const encodedCredentialId = encodeURIComponent(credentialId);
|
|
268
|
+
console.log('[PASSKEY] Looking up passkey with credential ID:', credentialId.substring(0, 30) + '...');
|
|
269
|
+
const passkeyResponse = await fetch(`${authzUrl}/auth/passkeys/by-credential/${encodedCredentialId}`);
|
|
270
|
+
if (!passkeyResponse.ok) {
|
|
271
|
+
const errorText = await passkeyResponse.text().catch(() => 'Unknown error');
|
|
272
|
+
console.error(`[PASSKEY] Failed to get passkey by credential ID: ${passkeyResponse.status} - ${errorText}`);
|
|
273
|
+
console.error(`[PASSKEY] Credential ID: ${credentialId.substring(0, 20)}...`);
|
|
274
|
+
throw new Error('Passkey not found');
|
|
275
|
+
}
|
|
276
|
+
const passkeyData = await passkeyResponse.json();
|
|
277
|
+
// Validate that user_id exists in the response
|
|
278
|
+
if (!passkeyData.user_id) {
|
|
279
|
+
console.error('[PASSKEY] Passkey lookup response missing user_id:', passkeyData);
|
|
280
|
+
throw new Error('Passkey lookup returned invalid data: missing user_id');
|
|
281
|
+
}
|
|
282
|
+
const passkey = passkeyData;
|
|
283
|
+
// Log the passkey data for debugging
|
|
284
|
+
console.log('[PASSKEY] Passkey lookup result:', {
|
|
285
|
+
passkey_id: passkey.passkey_id,
|
|
286
|
+
user_id: passkey.user_id,
|
|
287
|
+
user_id_type: typeof passkey.user_id,
|
|
288
|
+
credential_id: passkey.credential_id?.substring(0, 20) + '...',
|
|
289
|
+
});
|
|
290
|
+
// Verify the authentication response
|
|
291
|
+
const verification = await verifyAuthenticationResponse({
|
|
292
|
+
response,
|
|
293
|
+
expectedChallenge,
|
|
294
|
+
expectedOrigin: getOrigin(),
|
|
295
|
+
expectedRPID: getRpId(),
|
|
296
|
+
credential: {
|
|
297
|
+
id: passkey.credential_id,
|
|
298
|
+
publicKey: base64UrlToBuffer(passkey.credential_public_key),
|
|
299
|
+
counter: passkey.counter,
|
|
300
|
+
transports: (passkey.transports || []),
|
|
301
|
+
},
|
|
302
|
+
requireUserVerification: false,
|
|
303
|
+
});
|
|
304
|
+
if (!verification.verified) {
|
|
305
|
+
throw new Error('Authentication verification failed');
|
|
306
|
+
}
|
|
307
|
+
// Authenticate with authz - this updates the counter, creates a session, and returns user info
|
|
308
|
+
// This is a public endpoint - no access token needed (the passkey signature is the proof)
|
|
309
|
+
const authResult = await authzAuthenticateWithPasskey(credentialId, verification.authenticationInfo.newCounter, options);
|
|
310
|
+
if (!authResult) {
|
|
311
|
+
throw new Error('Passkey authentication failed - counter replay or invalid passkey');
|
|
312
|
+
}
|
|
313
|
+
// The authResult already has the user info - no need to call getUser separately
|
|
314
|
+
// Get user ID - authz API may return 'id' or 'user_id' depending on endpoint
|
|
315
|
+
const authUser = authResult.user;
|
|
316
|
+
const resolvedUserId = authUser.id || authUser.user_id;
|
|
317
|
+
if (!resolvedUserId) {
|
|
318
|
+
throw new Error('Passkey authentication failed - no user ID in response');
|
|
319
|
+
}
|
|
320
|
+
// Map the roles to include required fields (authz returns minimal role info)
|
|
321
|
+
const user = {
|
|
322
|
+
id: resolvedUserId,
|
|
323
|
+
email: authResult.user.email,
|
|
324
|
+
status: authResult.user.status,
|
|
325
|
+
roles: authResult.user.roles.map(r => ({
|
|
326
|
+
id: r.id,
|
|
327
|
+
name: r.name,
|
|
328
|
+
created_at: '', // Not returned by auth endpoint
|
|
329
|
+
updated_at: '', // Not returned by auth endpoint
|
|
330
|
+
})),
|
|
331
|
+
created_at: '', // Not returned by auth endpoint
|
|
332
|
+
updated_at: '', // Not returned by auth endpoint
|
|
333
|
+
};
|
|
334
|
+
// Extract session info from authResult
|
|
335
|
+
const session = {
|
|
336
|
+
token: authResult.session.token,
|
|
337
|
+
expires_at: authResult.session.expires_at,
|
|
338
|
+
};
|
|
339
|
+
console.log('[PASSKEY] Authentication successful:', {
|
|
340
|
+
user_id: user.id,
|
|
341
|
+
email: user.email,
|
|
342
|
+
roles: user.roles?.map(r => r.name),
|
|
343
|
+
session_token_length: session.token?.length,
|
|
344
|
+
});
|
|
345
|
+
return { passkey, user, session };
|
|
346
|
+
}
|
|
347
|
+
// ============================================================================
|
|
348
|
+
// Passkey Management
|
|
349
|
+
// ============================================================================
|
|
350
|
+
/**
|
|
351
|
+
* Get all passkeys for a user
|
|
352
|
+
* @param userId - User ID
|
|
353
|
+
* @param sessionJwt - Optional session JWT for self-service authentication
|
|
354
|
+
*/
|
|
355
|
+
export async function getUserPasskeys(userId, sessionJwt) {
|
|
356
|
+
const options = {
|
|
357
|
+
...getAuthzOptions(),
|
|
358
|
+
...(sessionJwt && { accessToken: sessionJwt }),
|
|
359
|
+
};
|
|
360
|
+
return authzListUserPasskeys(userId, options);
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Delete a passkey
|
|
364
|
+
* @param userId - User ID (for ownership verification)
|
|
365
|
+
* @param passkeyId - Passkey ID to delete
|
|
366
|
+
* @param sessionJwt - Optional session JWT for self-service authentication
|
|
367
|
+
*/
|
|
368
|
+
export async function deletePasskey(userId, passkeyId, sessionJwt) {
|
|
369
|
+
const options = {
|
|
370
|
+
...getAuthzOptions(),
|
|
371
|
+
...(sessionJwt && { accessToken: sessionJwt }),
|
|
372
|
+
};
|
|
373
|
+
// First verify the passkey belongs to this user
|
|
374
|
+
const passkeys = await authzListUserPasskeys(userId, options);
|
|
375
|
+
const passkey = passkeys.find(p => p.passkey_id === passkeyId);
|
|
376
|
+
if (!passkey) {
|
|
377
|
+
throw new Error('Passkey not found');
|
|
378
|
+
}
|
|
379
|
+
await authzDeletePasskey(passkeyId, options);
|
|
380
|
+
return passkey;
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Rename a passkey
|
|
384
|
+
* @param userId - User ID (for ownership verification)
|
|
385
|
+
* @param passkeyId - Passkey ID to rename
|
|
386
|
+
* @param newName - New name for the passkey
|
|
387
|
+
* @param sessionJwt - Optional session JWT for self-service authentication
|
|
388
|
+
*/
|
|
389
|
+
export async function renamePasskey(userId, passkeyId, newName, sessionJwt) {
|
|
390
|
+
const options = {
|
|
391
|
+
...getAuthzOptions(),
|
|
392
|
+
...(sessionJwt && { accessToken: sessionJwt }),
|
|
393
|
+
};
|
|
394
|
+
// First verify the passkey belongs to this user
|
|
395
|
+
const passkeys = await authzListUserPasskeys(userId, options);
|
|
396
|
+
const passkey = passkeys.find(p => p.passkey_id === passkeyId);
|
|
397
|
+
if (!passkey) {
|
|
398
|
+
throw new Error('Passkey not found');
|
|
399
|
+
}
|
|
400
|
+
// Update the passkey name via authz
|
|
401
|
+
const authzUrl = getAuthzBaseUrl();
|
|
402
|
+
const headers = {
|
|
403
|
+
'Content-Type': 'application/json',
|
|
404
|
+
};
|
|
405
|
+
if (sessionJwt) {
|
|
406
|
+
headers['Authorization'] = `Bearer ${sessionJwt}`;
|
|
407
|
+
}
|
|
408
|
+
const response = await fetch(`${authzUrl}/auth/passkeys/${passkeyId}`, {
|
|
409
|
+
method: 'PATCH',
|
|
410
|
+
headers,
|
|
411
|
+
body: JSON.stringify({ name: newName }),
|
|
412
|
+
});
|
|
413
|
+
if (!response.ok) {
|
|
414
|
+
throw new Error('Failed to rename passkey');
|
|
415
|
+
}
|
|
416
|
+
return response.json();
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Check if user has any passkeys
|
|
420
|
+
* @param userId - User ID
|
|
421
|
+
* @param sessionJwt - Optional session JWT for self-service authentication
|
|
422
|
+
*/
|
|
423
|
+
export async function userHasPasskeys(userId, sessionJwt) {
|
|
424
|
+
const options = {
|
|
425
|
+
...getAuthzOptions(),
|
|
426
|
+
...(sessionJwt && { accessToken: sessionJwt }),
|
|
427
|
+
};
|
|
428
|
+
const passkeys = await authzListUserPasskeys(userId, options);
|
|
429
|
+
return passkeys.length > 0;
|
|
430
|
+
}
|
|
431
|
+
// ============================================================================
|
|
432
|
+
// Utility Functions
|
|
433
|
+
// ============================================================================
|
|
434
|
+
function bufferToBase64Url(input) {
|
|
435
|
+
const buffer = typeof input === 'string' ? base64UrlToBuffer(input) : input;
|
|
436
|
+
return Buffer.from(buffer).toString('base64url');
|
|
437
|
+
}
|
|
438
|
+
function base64UrlToBuffer(base64url) {
|
|
439
|
+
return new Uint8Array(Buffer.from(base64url, 'base64url'));
|
|
440
|
+
}
|
|
441
|
+
// ============================================================================
|
|
442
|
+
// Challenge Cleanup (should be run periodically)
|
|
443
|
+
// ============================================================================
|
|
444
|
+
export async function cleanupExpiredChallenges() {
|
|
445
|
+
const options = getAuthzOptions();
|
|
446
|
+
// Call the authz cleanup endpoint
|
|
447
|
+
// Zero Trust: This is a maintenance endpoint - should be called with service account JWT
|
|
448
|
+
const authzUrl = getAuthzBaseUrl();
|
|
449
|
+
const response = await fetch(`${authzUrl}/auth/cleanup`, {
|
|
450
|
+
method: 'POST',
|
|
451
|
+
});
|
|
452
|
+
if (!response.ok) {
|
|
453
|
+
throw new Error('Failed to cleanup expired challenges');
|
|
454
|
+
}
|
|
455
|
+
const result = await response.json();
|
|
456
|
+
return result.passkeyChallengesDeleted || 0;
|
|
457
|
+
}
|
|
458
|
+
//# sourceMappingURL=passkey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"passkey.js","sourceRoot":"","sources":["../../../src/lib/authz/passkey.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RBAC Permission Checking Utilities (busibox-portal wrapper)
|
|
3
|
+
*
|
|
4
|
+
* Zero Trust Architecture:
|
|
5
|
+
* All authorization checks are delegated to the authz service via busibox-app.
|
|
6
|
+
*
|
|
7
|
+
* For user self-service operations (checking own access, listing own resources),
|
|
8
|
+
* the session JWT is passed directly to authz - no token exchange required.
|
|
9
|
+
*
|
|
10
|
+
* Token exchange is only needed for:
|
|
11
|
+
* - Admin operations on other users
|
|
12
|
+
* - Downstream service access (busibox-agents, etc.)
|
|
13
|
+
*/
|
|
14
|
+
import { type Role } from '@jazzmind/busibox-app';
|
|
15
|
+
/**
|
|
16
|
+
* Check if a user can access a specific app
|
|
17
|
+
*
|
|
18
|
+
* Queries the authz service to check if the user has any role
|
|
19
|
+
* that is bound to the specified app.
|
|
20
|
+
*
|
|
21
|
+
* @param userId - User ID to check
|
|
22
|
+
* @param appId - App ID to check access for
|
|
23
|
+
* @param accessToken - Optional access token for authenticated check
|
|
24
|
+
* @returns true if user has permission, false otherwise
|
|
25
|
+
*/
|
|
26
|
+
export declare function canAccessApp(userId: string, appId: string, accessToken?: string): Promise<boolean>;
|
|
27
|
+
/**
|
|
28
|
+
* Get all apps a user can access
|
|
29
|
+
*
|
|
30
|
+
* Queries the authz service for accessible app IDs, then fetches
|
|
31
|
+
* app details from the local database.
|
|
32
|
+
*
|
|
33
|
+
* @param userId - User ID
|
|
34
|
+
* @param accessToken - Optional access token for authenticated check
|
|
35
|
+
* @returns Array of apps the user has permission to access
|
|
36
|
+
*/
|
|
37
|
+
export declare function getUserApps(userId: string, accessToken?: string): Promise<{
|
|
38
|
+
id: string;
|
|
39
|
+
name: string;
|
|
40
|
+
description: string | null;
|
|
41
|
+
type: import("../deploy/app-config").AppConfigType;
|
|
42
|
+
url: string | null;
|
|
43
|
+
iconUrl: string | null;
|
|
44
|
+
selectedIcon: string | null;
|
|
45
|
+
displayOrder: number;
|
|
46
|
+
isActive: boolean;
|
|
47
|
+
}[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Get user's roles from authz service
|
|
50
|
+
*
|
|
51
|
+
* @deprecated Use busibox-app's getUserRoles() directly
|
|
52
|
+
*/
|
|
53
|
+
export declare function getUserRoles(userId: string): Promise<Role[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Get user's role names
|
|
56
|
+
*
|
|
57
|
+
* @deprecated Use busibox-app's getUserRoleNames() directly
|
|
58
|
+
*/
|
|
59
|
+
export declare function getUserRoleNames(userId: string): Promise<string[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Check if user has a specific role
|
|
62
|
+
*
|
|
63
|
+
* @deprecated Use busibox-app's hasRole() directly
|
|
64
|
+
*/
|
|
65
|
+
export declare function hasRole(userId: string, roleName: string): Promise<boolean>;
|
|
66
|
+
/**
|
|
67
|
+
* Check if user is an admin
|
|
68
|
+
*
|
|
69
|
+
* @deprecated Use busibox-app's isAdmin() directly
|
|
70
|
+
*/
|
|
71
|
+
export declare function isAdmin(userId: string): Promise<boolean>;
|
|
72
|
+
/**
|
|
73
|
+
* Check if user is a guest
|
|
74
|
+
*
|
|
75
|
+
* @deprecated Use busibox-app's isGuest() directly
|
|
76
|
+
*/
|
|
77
|
+
export declare function isGuest(userId: string): Promise<boolean>;
|
|
78
|
+
/**
|
|
79
|
+
* Check if user has any of the specified roles
|
|
80
|
+
*
|
|
81
|
+
* @deprecated Use busibox-app's hasAnyRole() directly
|
|
82
|
+
*/
|
|
83
|
+
export declare function hasAnyRole(userId: string, roleNames: string[]): Promise<boolean>;
|
|
84
|
+
/**
|
|
85
|
+
* Check if user has all of the specified roles
|
|
86
|
+
*
|
|
87
|
+
* @deprecated Use busibox-app's hasAllRoles() directly
|
|
88
|
+
*/
|
|
89
|
+
export declare function hasAllRoles(userId: string, roleNames: string[]): Promise<boolean>;
|
|
90
|
+
/**
|
|
91
|
+
* Check if user is active
|
|
92
|
+
*
|
|
93
|
+
* This checks the authz service.
|
|
94
|
+
*/
|
|
95
|
+
export declare function isUserActive(userId: string): Promise<boolean>;
|
|
96
|
+
/**
|
|
97
|
+
* Get user with roles from authz service
|
|
98
|
+
*/
|
|
99
|
+
export declare function getUserWithRoles(userId: string): Promise<{
|
|
100
|
+
id: string;
|
|
101
|
+
email: string;
|
|
102
|
+
status: string | undefined;
|
|
103
|
+
lastLoginAt: Date | null;
|
|
104
|
+
createdAt: Date;
|
|
105
|
+
updatedAt: Date;
|
|
106
|
+
roles: Role[];
|
|
107
|
+
} | null>;
|
|
108
|
+
export type { Role } from '@jazzmind/busibox-app';
|
|
109
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/lib/authz/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAML,KAAK,IAAI,EAEV,MAAM,uBAAuB,CAAC;AA0B/B;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBxG;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;;;;;;;;;;KAkCrE;AAMD;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAGlE;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAIxE;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhF;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9D;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9D;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAKtF;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAKvF;AAMD;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASnE;AAYD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM;;;;;;;;UA0BpD;AAGD,YAAY,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC"}
|