@jazzmind/busibox-app 3.0.18 → 3.0.19
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/dist/components/UserDropdown.d.ts +0 -16
- package/dist/components/UserDropdown.d.ts.map +1 -1
- package/dist/components/UserDropdown.js +2 -2
- package/dist/components/UserDropdown.js.map +1 -1
- package/dist/components/auth/PasskeyRequiredWrapper.d.ts +0 -8
- package/dist/components/auth/PasskeyRequiredWrapper.d.ts.map +1 -1
- package/dist/components/auth/PasskeyRequiredWrapper.js +2 -2
- package/dist/components/auth/PasskeyRequiredWrapper.js.map +1 -1
- package/dist/components/auth/ProtectedRoute.d.ts +0 -9
- package/dist/components/auth/ProtectedRoute.d.ts.map +1 -1
- package/dist/components/auth/ProtectedRoute.js +2 -2
- package/dist/components/auth/ProtectedRoute.js.map +1 -1
- package/dist/components/auth/SessionProvider.d.ts +0 -40
- package/dist/components/auth/SessionProvider.d.ts.map +1 -1
- package/dist/components/auth/SessionProvider.js +2 -2
- package/dist/components/auth/SessionProvider.js.map +1 -1
- package/dist/components/chat/AgentBadge.d.ts +0 -5
- package/dist/components/chat/AgentBadge.d.ts.map +1 -1
- package/dist/components/chat/AgentBadge.js +2 -2
- package/dist/components/chat/AgentBadge.js.map +1 -1
- package/dist/components/chat/AgentSelectionPanel.d.ts +0 -6
- package/dist/components/chat/AgentSelectionPanel.d.ts.map +1 -1
- package/dist/components/chat/AgentSelectionPanel.js +2 -2
- package/dist/components/chat/AgentSelectionPanel.js.map +1 -1
- package/dist/components/chat/AgentSelector.d.ts +0 -6
- package/dist/components/chat/AgentSelector.d.ts.map +1 -1
- package/dist/components/chat/AgentSelector.js +2 -2
- package/dist/components/chat/AgentSelector.js.map +1 -1
- package/dist/components/chat/AgentToolSelector.d.ts +0 -7
- package/dist/components/chat/AgentToolSelector.d.ts.map +1 -1
- package/dist/components/chat/AgentToolSelector.js +2 -2
- package/dist/components/chat/AgentToolSelector.js.map +1 -1
- package/dist/components/chat/AttachmentPreview.d.ts.map +1 -1
- package/dist/components/chat/AttachmentPreview.js +0 -5
- package/dist/components/chat/AttachmentPreview.js.map +1 -1
- package/dist/components/chat/AttachmentUploader.d.ts +0 -5
- package/dist/components/chat/AttachmentUploader.d.ts.map +1 -1
- package/dist/components/chat/AttachmentUploader.js +2 -2
- package/dist/components/chat/AttachmentUploader.js.map +1 -1
- package/dist/components/chat/ChatContainer.d.ts +0 -6
- package/dist/components/chat/ChatContainer.d.ts.map +1 -1
- package/dist/components/chat/ChatContainer.js +2 -2
- package/dist/components/chat/ChatContainer.js.map +1 -1
- package/dist/components/chat/ConversationSidebar.d.ts +0 -5
- package/dist/components/chat/ConversationSidebar.d.ts.map +1 -1
- package/dist/components/chat/ConversationSidebar.js +2 -2
- package/dist/components/chat/ConversationSidebar.js.map +1 -1
- package/dist/components/chat/DeleteConversationModal.d.ts +0 -3
- package/dist/components/chat/DeleteConversationModal.d.ts.map +1 -1
- package/dist/components/chat/DeleteConversationModal.js +2 -2
- package/dist/components/chat/DeleteConversationModal.js.map +1 -1
- package/dist/components/chat/FullChatInterface.d.ts +0 -23
- package/dist/components/chat/FullChatInterface.d.ts.map +1 -1
- package/dist/components/chat/FullChatInterface.js +2 -2
- package/dist/components/chat/FullChatInterface.js.map +1 -1
- package/dist/components/chat/InsightEditModal.d.ts +0 -5
- package/dist/components/chat/InsightEditModal.d.ts.map +1 -1
- package/dist/components/chat/InsightEditModal.js +2 -2
- package/dist/components/chat/InsightEditModal.js.map +1 -1
- package/dist/components/chat/LibrarySelector.d.ts +0 -6
- package/dist/components/chat/LibrarySelector.d.ts.map +1 -1
- package/dist/components/chat/LibrarySelector.js +2 -2
- package/dist/components/chat/LibrarySelector.js.map +1 -1
- package/dist/components/chat/MessageInput.d.ts +0 -5
- package/dist/components/chat/MessageInput.d.ts.map +1 -1
- package/dist/components/chat/MessageInput.js +2 -2
- package/dist/components/chat/MessageInput.js.map +1 -1
- package/dist/components/chat/MessageList.d.ts +0 -5
- package/dist/components/chat/MessageList.d.ts.map +1 -1
- package/dist/components/chat/MessageList.js +2 -2
- package/dist/components/chat/MessageList.js.map +1 -1
- package/dist/components/chat/RawContentToggle.d.ts.map +1 -1
- package/dist/components/chat/RawContentToggle.js +0 -6
- package/dist/components/chat/RawContentToggle.js.map +1 -1
- package/dist/components/chat/SearchToggles.d.ts +0 -5
- package/dist/components/chat/SearchToggles.d.ts.map +1 -1
- package/dist/components/chat/SearchToggles.js +2 -2
- package/dist/components/chat/SearchToggles.js.map +1 -1
- package/dist/components/chat/SimpleChatInterface.d.ts +0 -25
- package/dist/components/chat/SimpleChatInterface.d.ts.map +1 -1
- package/dist/components/chat/SimpleChatInterface.js +2 -2
- package/dist/components/chat/SimpleChatInterface.js.map +1 -1
- package/dist/components/chat/ThinkingSection.d.ts +0 -7
- package/dist/components/chat/ThinkingSection.d.ts.map +1 -1
- package/dist/components/chat/ThinkingSection.js +2 -2
- package/dist/components/chat/ThinkingSection.js.map +1 -1
- package/dist/components/chat/ThinkingToggle.d.ts +0 -6
- package/dist/components/chat/ThinkingToggle.d.ts.map +1 -1
- package/dist/components/chat/ThinkingToggle.js +2 -2
- package/dist/components/chat/ThinkingToggle.js.map +1 -1
- package/dist/components/chat/ToolSelector.d.ts +0 -6
- package/dist/components/chat/ToolSelector.d.ts.map +1 -1
- package/dist/components/chat/ToolSelector.js +2 -2
- package/dist/components/chat/ToolSelector.js.map +1 -1
- package/dist/components/shared/AppIcon.d.ts.map +1 -1
- package/dist/components/shared/AppIcon.js +2 -2
- package/dist/components/shared/AppIcon.js.map +1 -1
- package/dist/components/shared/Modal.d.ts.map +1 -1
- package/dist/components/shared/Modal.js +2 -2
- package/dist/components/shared/Modal.js.map +1 -1
- package/dist/components/workflow/WorkflowList.d.ts.map +1 -1
- package/dist/components/workflow/WorkflowList.js +2 -2
- package/dist/components/workflow/WorkflowList.js.map +1 -1
- package/dist/contexts/AuthContext.d.ts.map +1 -1
- package/dist/contexts/AuthContext.js +2 -2
- package/dist/contexts/AuthContext.js.map +1 -1
- package/dist/contexts/CustomizationContext.d.ts.map +1 -1
- package/dist/contexts/CustomizationContext.js +2 -2
- package/dist/contexts/CustomizationContext.js.map +1 -1
- package/dist/contexts/ThemeContext.d.ts.map +1 -1
- package/dist/contexts/ThemeContext.js +2 -2
- package/dist/contexts/ThemeContext.js.map +1 -1
- package/dist/layout/AdminHeader.d.ts +0 -5
- package/dist/layout/AdminHeader.d.ts.map +1 -1
- package/dist/layout/AdminHeader.js +2 -2
- package/dist/layout/AdminHeader.js.map +1 -1
- package/dist/layout/Footer.d.ts +0 -5
- package/dist/layout/Footer.d.ts.map +1 -1
- package/dist/layout/Footer.js +2 -2
- package/dist/layout/Footer.js.map +1 -1
- package/dist/layout/Header.d.ts.map +1 -1
- package/dist/layout/Header.js +2 -2
- package/dist/layout/Header.js.map +1 -1
- package/dist/layout/ThemeToggle.d.ts +0 -5
- package/dist/layout/ThemeToggle.d.ts.map +1 -1
- package/dist/layout/ThemeToggle.js +2 -2
- package/dist/layout/ThemeToggle.js.map +1 -1
- package/package.json +1 -1
- package/dist/lib/agent/agent-api-helpers.d.ts +0 -16
- package/dist/lib/agent/agent-api-helpers.d.ts.map +0 -1
- package/dist/lib/agent/agent-api-helpers.js +0 -50
- package/dist/lib/agent/agent-api-helpers.js.map +0 -1
- package/dist/lib/agent/api-helpers.d.ts +0 -16
- package/dist/lib/agent/api-helpers.d.ts.map +0 -1
- package/dist/lib/agent/api-helpers.js +0 -50
- package/dist/lib/agent/api-helpers.js.map +0 -1
- package/dist/lib/agent/chat-cleanup.d.ts +0 -34
- package/dist/lib/agent/chat-cleanup.d.ts.map +0 -1
- package/dist/lib/agent/chat-cleanup.js +0 -133
- package/dist/lib/agent/chat-cleanup.js.map +0 -1
- package/dist/lib/agent/client.d.ts +0 -55
- package/dist/lib/agent/client.d.ts.map +0 -1
- package/dist/lib/agent/client.js +0 -103
- package/dist/lib/agent/client.js.map +0 -1
- package/dist/lib/agent/openai.d.ts +0 -94
- package/dist/lib/agent/openai.d.ts.map +0 -1
- package/dist/lib/agent/openai.js +0 -290
- package/dist/lib/agent/openai.js.map +0 -1
- package/dist/lib/ai/dual-model-router.d.ts +0 -130
- package/dist/lib/ai/dual-model-router.d.ts.map +0 -1
- package/dist/lib/ai/dual-model-router.js +0 -413
- package/dist/lib/ai/dual-model-router.js.map +0 -1
- package/dist/lib/ai/openai.d.ts +0 -94
- package/dist/lib/ai/openai.d.ts.map +0 -1
- package/dist/lib/ai/openai.js +0 -290
- package/dist/lib/ai/openai.js.map +0 -1
- package/dist/lib/ai/tools.d.ts +0 -64
- package/dist/lib/ai/tools.d.ts.map +0 -1
- package/dist/lib/ai/tools.js +0 -159
- package/dist/lib/ai/tools.js.map +0 -1
- package/dist/lib/audit/client.d.ts +0 -138
- package/dist/lib/audit/client.d.ts.map +0 -1
- package/dist/lib/audit/client.js +0 -486
- package/dist/lib/audit/client.js.map +0 -1
- package/dist/lib/audit/index.d.ts +0 -6
- package/dist/lib/audit/index.d.ts.map +0 -1
- package/dist/lib/audit/index.js +0 -6
- package/dist/lib/audit/index.js.map +0 -1
- package/dist/lib/auth/auth-helper.d.ts +0 -167
- package/dist/lib/auth/auth-helper.d.ts.map +0 -1
- package/dist/lib/auth/auth-helper.js +0 -345
- package/dist/lib/auth/auth-helper.js.map +0 -1
- package/dist/lib/auth/auth-state-manager.d.ts +0 -201
- package/dist/lib/auth/auth-state-manager.d.ts.map +0 -1
- package/dist/lib/auth/auth-state-manager.js +0 -597
- package/dist/lib/auth/auth-state-manager.js.map +0 -1
- package/dist/lib/auth/client.d.ts +0 -276
- package/dist/lib/auth/client.d.ts.map +0 -1
- package/dist/lib/auth/client.js +0 -325
- package/dist/lib/auth/client.js.map +0 -1
- package/dist/lib/auth/index.d.ts +0 -10
- package/dist/lib/auth/index.d.ts.map +0 -1
- package/dist/lib/auth/index.js +0 -10
- package/dist/lib/auth/index.js.map +0 -1
- package/dist/lib/auth/sso-route-handler.d.ts +0 -114
- package/dist/lib/auth/sso-route-handler.d.ts.map +0 -1
- package/dist/lib/auth/sso-route-handler.js +0 -199
- package/dist/lib/auth/sso-route-handler.js.map +0 -1
- package/dist/lib/auth/sso.d.ts +0 -162
- package/dist/lib/auth/sso.d.ts.map +0 -1
- package/dist/lib/auth/sso.js +0 -282
- package/dist/lib/auth/sso.js.map +0 -1
- package/dist/lib/authz/email.d.ts +0 -65
- package/dist/lib/authz/email.d.ts.map +0 -1
- package/dist/lib/authz/email.js +0 -112
- package/dist/lib/authz/email.js.map +0 -1
- package/dist/lib/authz/permissions.d.ts +0 -109
- package/dist/lib/authz/permissions.d.ts.map +0 -1
- package/dist/lib/authz/permissions.js +0 -238
- package/dist/lib/authz/permissions.js.map +0 -1
- package/dist/lib/authz/service-audit.d.ts +0 -41
- package/dist/lib/authz/service-audit.d.ts.map +0 -1
- package/dist/lib/authz/service-audit.js +0 -60
- package/dist/lib/authz/service-audit.js.map +0 -1
- package/dist/lib/chat-server/agent-api-client.d.ts +0 -151
- package/dist/lib/chat-server/agent-api-client.d.ts.map +0 -1
- package/dist/lib/chat-server/agent-api-client.js +0 -162
- package/dist/lib/chat-server/agent-api-client.js.map +0 -1
- package/dist/lib/chat-server/attachments.d.ts +0 -118
- package/dist/lib/chat-server/attachments.d.ts.map +0 -1
- package/dist/lib/chat-server/attachments.js +0 -317
- package/dist/lib/chat-server/attachments.js.map +0 -1
- package/dist/lib/chat-server/cleanup.d.ts +0 -34
- package/dist/lib/chat-server/cleanup.d.ts.map +0 -1
- package/dist/lib/chat-server/cleanup.js +0 -133
- package/dist/lib/chat-server/cleanup.js.map +0 -1
- package/dist/lib/chat-server/conversations.d.ts +0 -159
- package/dist/lib/chat-server/conversations.d.ts.map +0 -1
- package/dist/lib/chat-server/conversations.js +0 -278
- package/dist/lib/chat-server/conversations.js.map +0 -1
- package/dist/lib/chat-server/insights.d.ts +0 -84
- package/dist/lib/chat-server/insights.d.ts.map +0 -1
- package/dist/lib/chat-server/insights.js +0 -193
- package/dist/lib/chat-server/insights.js.map +0 -1
- package/dist/lib/chat-server/messages.d.ts +0 -154
- package/dist/lib/chat-server/messages.d.ts.map +0 -1
- package/dist/lib/chat-server/messages.js +0 -282
- package/dist/lib/chat-server/messages.js.map +0 -1
- package/dist/lib/chat-server/middleware.d.ts +0 -119
- package/dist/lib/chat-server/middleware.d.ts.map +0 -1
- package/dist/lib/chat-server/middleware.js +0 -234
- package/dist/lib/chat-server/middleware.js.map +0 -1
- package/dist/lib/chat-server/models.d.ts +0 -60
- package/dist/lib/chat-server/models.d.ts.map +0 -1
- package/dist/lib/chat-server/models.js +0 -205
- package/dist/lib/chat-server/models.js.map +0 -1
- package/dist/lib/chat-server/search.d.ts +0 -89
- package/dist/lib/chat-server/search.d.ts.map +0 -1
- package/dist/lib/chat-server/search.js +0 -203
- package/dist/lib/chat-server/search.js.map +0 -1
- package/dist/lib/chat-server/sharing.d.ts +0 -70
- package/dist/lib/chat-server/sharing.d.ts.map +0 -1
- package/dist/lib/chat-server/sharing.js +0 -146
- package/dist/lib/chat-server/sharing.js.map +0 -1
- package/dist/lib/data/embeddings-app-client.d.ts +0 -37
- package/dist/lib/data/embeddings-app-client.d.ts.map +0 -1
- package/dist/lib/data/embeddings-app-client.js +0 -72
- package/dist/lib/data/embeddings-app-client.js.map +0 -1
- package/dist/lib/deploy/manifest-validator.d.ts +0 -25
- package/dist/lib/deploy/manifest-validator.d.ts.map +0 -1
- package/dist/lib/deploy/manifest-validator.js +0 -142
- package/dist/lib/deploy/manifest-validator.js.map +0 -1
- package/dist/lib/embeddings/data-client.d.ts +0 -37
- package/dist/lib/embeddings/data-client.d.ts.map +0 -1
- package/dist/lib/embeddings/data-client.js +0 -72
- package/dist/lib/embeddings/data-client.js.map +0 -1
- package/dist/lib/hooks/useMediaQuery.d.ts +0 -6
- package/dist/lib/hooks/useMediaQuery.d.ts.map +0 -1
- package/dist/lib/hooks/useMediaQuery.js +0 -18
- package/dist/lib/hooks/useMediaQuery.js.map +0 -1
- package/dist/lib/insights/client.d.ts +0 -131
- package/dist/lib/insights/client.d.ts.map +0 -1
- package/dist/lib/insights/client.js +0 -306
- package/dist/lib/insights/client.js.map +0 -1
- package/dist/lib/insights/index.d.ts +0 -5
- package/dist/lib/insights/index.d.ts.map +0 -1
- package/dist/lib/insights/index.js +0 -5
- package/dist/lib/insights/index.js.map +0 -1
- package/dist/lib/next/authz-client.d.ts +0 -120
- package/dist/lib/next/authz-client.d.ts.map +0 -1
- package/dist/lib/next/authz-client.js +0 -203
- package/dist/lib/next/authz-client.js.map +0 -1
- package/dist/lib/next/passkey.d.ts +0 -78
- package/dist/lib/next/passkey.d.ts.map +0 -1
- package/dist/lib/next/passkey.js +0 -380
- package/dist/lib/next/passkey.js.map +0 -1
- package/dist/lib/next/sso.d.ts +0 -51
- package/dist/lib/next/sso.d.ts.map +0 -1
- package/dist/lib/next/sso.js +0 -167
- package/dist/lib/next/sso.js.map +0 -1
- package/dist/lib/rbac/client.d.ts +0 -320
- package/dist/lib/rbac/client.d.ts.map +0 -1
- package/dist/lib/rbac/client.js +0 -532
- package/dist/lib/rbac/client.js.map +0 -1
- package/dist/lib/rbac/index.d.ts +0 -6
- package/dist/lib/rbac/index.d.ts.map +0 -1
- package/dist/lib/rbac/index.js +0 -6
- package/dist/lib/rbac/index.js.map +0 -1
- package/dist/lib/search/providers.d.ts +0 -105
- package/dist/lib/search/providers.d.ts.map +0 -1
- package/dist/lib/search/providers.js +0 -140
- package/dist/lib/search/providers.js.map +0 -1
- package/dist/lib/services/api-client.d.ts +0 -46
- package/dist/lib/services/api-client.d.ts.map +0 -1
- package/dist/lib/services/api-client.js +0 -80
- package/dist/lib/services/api-client.js.map +0 -1
- package/dist/lib/services/app-library.d.ts +0 -36
- package/dist/lib/services/app-library.d.ts.map +0 -1
- package/dist/lib/services/app-library.js +0 -123
- package/dist/lib/services/app-library.js.map +0 -1
- package/dist/lib/services/app-utils.d.ts +0 -22
- package/dist/lib/services/app-utils.d.ts.map +0 -1
- package/dist/lib/services/app-utils.js +0 -36
- package/dist/lib/services/app-utils.js.map +0 -1
- package/dist/lib/services/audit.d.ts +0 -41
- package/dist/lib/services/audit.d.ts.map +0 -1
- package/dist/lib/services/audit.js +0 -60
- package/dist/lib/services/audit.js.map +0 -1
- package/dist/lib/services/database-cloner.d.ts +0 -28
- package/dist/lib/services/database-cloner.d.ts.map +0 -1
- package/dist/lib/services/database-cloner.js +0 -197
- package/dist/lib/services/database-cloner.js.map +0 -1
- package/dist/lib/services/default-apps.d.ts +0 -31
- package/dist/lib/services/default-apps.d.ts.map +0 -1
- package/dist/lib/services/default-apps.js +0 -121
- package/dist/lib/services/default-apps.js.map +0 -1
- package/dist/lib/services/deploy-api-client.d.ts +0 -184
- package/dist/lib/services/deploy-api-client.d.ts.map +0 -1
- package/dist/lib/services/deploy-api-client.js +0 -208
- package/dist/lib/services/deploy-api-client.js.map +0 -1
- package/dist/lib/services/deployment-service-client.d.ts +0 -122
- package/dist/lib/services/deployment-service-client.d.ts.map +0 -1
- package/dist/lib/services/deployment-service-client.js +0 -245
- package/dist/lib/services/deployment-service-client.js.map +0 -1
- package/dist/lib/services/docs.d.ts +0 -80
- package/dist/lib/services/docs.d.ts.map +0 -1
- package/dist/lib/services/docs.js +0 -160
- package/dist/lib/services/docs.js.map +0 -1
- package/dist/lib/services/email-validation.d.ts +0 -33
- package/dist/lib/services/email-validation.d.ts.map +0 -1
- package/dist/lib/services/email-validation.js +0 -70
- package/dist/lib/services/email-validation.js.map +0 -1
- package/dist/lib/services/email.d.ts +0 -65
- package/dist/lib/services/email.d.ts.map +0 -1
- package/dist/lib/services/email.js +0 -112
- package/dist/lib/services/email.js.map +0 -1
- package/dist/lib/services/github-manifest-fetcher.d.ts +0 -74
- package/dist/lib/services/github-manifest-fetcher.d.ts.map +0 -1
- package/dist/lib/services/github-manifest-fetcher.js +0 -168
- package/dist/lib/services/github-manifest-fetcher.js.map +0 -1
- package/dist/lib/services/libraries.d.ts +0 -124
- package/dist/lib/services/libraries.d.ts.map +0 -1
- package/dist/lib/services/libraries.js +0 -507
- package/dist/lib/services/libraries.js.map +0 -1
- package/dist/lib/services/litellm.d.ts +0 -33
- package/dist/lib/services/litellm.d.ts.map +0 -1
- package/dist/lib/services/litellm.js +0 -222
- package/dist/lib/services/litellm.js.map +0 -1
- package/dist/lib/services/manifest-schema.d.ts +0 -66
- package/dist/lib/services/manifest-schema.d.ts.map +0 -1
- package/dist/lib/services/manifest-schema.js +0 -86
- package/dist/lib/services/manifest-schema.js.map +0 -1
- package/dist/lib/services/manifest-validator.d.ts +0 -25
- package/dist/lib/services/manifest-validator.d.ts.map +0 -1
- package/dist/lib/services/manifest-validator.js +0 -142
- package/dist/lib/services/manifest-validator.js.map +0 -1
- package/dist/lib/services/manifest.d.ts +0 -45
- package/dist/lib/services/manifest.d.ts.map +0 -1
- package/dist/lib/services/manifest.js +0 -137
- package/dist/lib/services/manifest.js.map +0 -1
- package/dist/lib/services/permissions.d.ts +0 -109
- package/dist/lib/services/permissions.d.ts.map +0 -1
- package/dist/lib/services/permissions.js +0 -238
- package/dist/lib/services/permissions.js.map +0 -1
- package/dist/lib/services/service-client.d.ts +0 -99
- package/dist/lib/services/service-client.d.ts.map +0 -1
- package/dist/lib/services/service-client.js +0 -146
- package/dist/lib/services/service-client.js.map +0 -1
- package/dist/lib/services/tags.d.ts +0 -37
- package/dist/lib/services/tags.d.ts.map +0 -1
- package/dist/lib/services/tags.js +0 -189
- package/dist/lib/services/tags.js.map +0 -1
- package/dist/lib/services/url-validation.d.ts +0 -22
- package/dist/lib/services/url-validation.d.ts.map +0 -1
- package/dist/lib/services/url-validation.js +0 -86
- package/dist/lib/services/url-validation.js.map +0 -1
- package/dist/lib/services/user-management.d.ts +0 -81
- package/dist/lib/services/user-management.d.ts.map +0 -1
- package/dist/lib/services/user-management.js +0 -154
- package/dist/lib/services/user-management.js.map +0 -1
- package/dist/lib/storage/index.d.ts +0 -11
- package/dist/lib/storage/index.d.ts.map +0 -1
- package/dist/lib/storage/index.js +0 -12
- package/dist/lib/storage/index.js.map +0 -1
- package/dist/lib/storage/types.d.ts +0 -61
- package/dist/lib/storage/types.d.ts.map +0 -1
- package/dist/lib/storage/types.js +0 -8
- package/dist/lib/storage/types.js.map +0 -1
- package/dist/lib/stores/app-config-store.d.ts +0 -90
- package/dist/lib/stores/app-config-store.d.ts.map +0 -1
- package/dist/lib/stores/app-config-store.js +0 -491
- package/dist/lib/stores/app-config-store.js.map +0 -1
- package/dist/lib/stores/bridge-config-store.d.ts +0 -44
- package/dist/lib/stores/bridge-config-store.d.ts.map +0 -1
- package/dist/lib/stores/bridge-config-store.js +0 -207
- package/dist/lib/stores/bridge-config-store.js.map +0 -1
- package/dist/lib/stores/chat-config-store.d.ts +0 -28
- package/dist/lib/stores/chat-config-store.d.ts.map +0 -1
- package/dist/lib/stores/chat-config-store.js +0 -152
- package/dist/lib/stores/chat-config-store.js.map +0 -1
- package/dist/lib/stores/data-settings-store.d.ts +0 -44
- package/dist/lib/stores/data-settings-store.d.ts.map +0 -1
- package/dist/lib/stores/data-settings-store.js +0 -202
- package/dist/lib/stores/data-settings-store.js.map +0 -1
- package/dist/lib/stores/email-config-store.d.ts +0 -45
- package/dist/lib/stores/email-config-store.d.ts.map +0 -1
- package/dist/lib/stores/email-config-store.js +0 -185
- package/dist/lib/stores/email-config-store.js.map +0 -1
- package/dist/lib/stores/portal-config-store.d.ts +0 -38
- package/dist/lib/stores/portal-config-store.d.ts.map +0 -1
- package/dist/lib/stores/portal-config-store.js +0 -238
- package/dist/lib/stores/portal-config-store.js.map +0 -1
- package/dist/lib/stores/video-store.d.ts +0 -91
- package/dist/lib/stores/video-store.d.ts.map +0 -1
- package/dist/lib/stores/video-store.js +0 -451
- package/dist/lib/stores/video-store.js.map +0 -1
- package/dist/lib/videos/access-control.d.ts +0 -35
- package/dist/lib/videos/access-control.d.ts.map +0 -1
- package/dist/lib/videos/access-control.js +0 -63
- package/dist/lib/videos/access-control.js.map +0 -1
- package/dist/lib/videos/agent-api-client.d.ts +0 -46
- package/dist/lib/videos/agent-api-client.d.ts.map +0 -1
- package/dist/lib/videos/agent-api-client.js +0 -75
- package/dist/lib/videos/agent-api-client.js.map +0 -1
- package/dist/lib/videos/creation.d.ts +0 -24
- package/dist/lib/videos/creation.d.ts.map +0 -1
- package/dist/lib/videos/creation.js +0 -112
- package/dist/lib/videos/creation.js.map +0 -1
- package/dist/lib/videos/expiration.d.ts +0 -13
- package/dist/lib/videos/expiration.d.ts.map +0 -1
- package/dist/lib/videos/expiration.js +0 -95
- package/dist/lib/videos/expiration.js.map +0 -1
- package/dist/lib/videos/image-resize.d.ts +0 -42
- package/dist/lib/videos/image-resize.d.ts.map +0 -1
- package/dist/lib/videos/image-resize.js +0 -106
- package/dist/lib/videos/image-resize.js.map +0 -1
- package/dist/lib/videos/processing.d.ts +0 -35
- package/dist/lib/videos/processing.d.ts.map +0 -1
- package/dist/lib/videos/processing.js +0 -154
- package/dist/lib/videos/processing.js.map +0 -1
- package/dist/lib/videos/status.d.ts +0 -2
- package/dist/lib/videos/status.d.ts.map +0 -1
- package/dist/lib/videos/status.js +0 -141
- package/dist/lib/videos/status.js.map +0 -1
- package/dist/lib/videos/upload.d.ts +0 -41
- package/dist/lib/videos/upload.d.ts.map +0 -1
- package/dist/lib/videos/upload.js +0 -118
- package/dist/lib/videos/upload.js.map +0 -1
- package/dist/lib/videos/url-normalization.d.ts +0 -29
- package/dist/lib/videos/url-normalization.d.ts.map +0 -1
- package/dist/lib/videos/url-normalization.js +0 -61
- package/dist/lib/videos/url-normalization.js.map +0 -1
- package/dist/sso/index.d.ts +0 -3
- package/dist/sso/index.d.ts.map +0 -1
- package/dist/sso/index.js +0 -3
- package/dist/sso/index.js.map +0 -1
- package/dist/sso/token.d.ts +0 -17
- package/dist/sso/token.d.ts.map +0 -1
- package/dist/sso/token.js +0 -57
- package/dist/sso/token.js.map +0 -1
- package/dist/types/sso.d.ts +0 -37
- package/dist/types/sso.d.ts.map +0 -1
- package/dist/types/sso.js +0 -2
- package/dist/types/sso.js.map +0 -1
package/dist/lib/auth/sso.js
DELETED
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SSO Authentication Library (Zero Trust JWKS)
|
|
3
|
-
*
|
|
4
|
-
* Validates RS256 JWT tokens issued by authz service via JWKS.
|
|
5
|
-
* This is the standard authentication method for Busibox apps.
|
|
6
|
-
*
|
|
7
|
-
* Token Flow:
|
|
8
|
-
* 1. User clicks app in Busibox Portal
|
|
9
|
-
* 2. Busibox Portal exchanges user's session JWT for app-scoped token via authz
|
|
10
|
-
* 3. authz verifies user has app access via RBAC bindings
|
|
11
|
-
* 4. authz issues RS256 token with app_id claim and user's roles
|
|
12
|
-
* 5. App validates token via authz JWKS endpoint
|
|
13
|
-
*
|
|
14
|
-
* Token validation is done via authz JWKS endpoint - no shared secrets needed.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* import { validateSSOToken, createSessionFromSSO } from '@jazzmind/busibox-app/lib/auth';
|
|
19
|
-
*
|
|
20
|
-
* const validation = await validateSSOToken(token);
|
|
21
|
-
* if (validation.valid) {
|
|
22
|
-
* const session = createSessionFromSSO(validation);
|
|
23
|
-
* }
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
import * as jose from "jose";
|
|
27
|
-
// Default configuration from environment
|
|
28
|
-
const getDefaultAuthzUrl = () => process.env.AUTHZ_BASE_URL || "http://authz-api:8010";
|
|
29
|
-
const getDefaultAppName = () => process.env.APP_NAME || "app";
|
|
30
|
-
const DEFAULT_ISSUER = "busibox-authz";
|
|
31
|
-
// Cache JWKS for performance (keyed by authz URL)
|
|
32
|
-
const jwksCache = new Map();
|
|
33
|
-
const JWKS_CACHE_TTL = 5 * 60 * 1000; // 5 minutes
|
|
34
|
-
// ============================================================================
|
|
35
|
-
// JWKS Verification
|
|
36
|
-
// ============================================================================
|
|
37
|
-
/**
|
|
38
|
-
* Get or create JWKS verifier from authz service
|
|
39
|
-
*/
|
|
40
|
-
async function getJwksVerifier(authzUrl) {
|
|
41
|
-
const now = Date.now();
|
|
42
|
-
const cached = jwksCache.get(authzUrl);
|
|
43
|
-
// Return cached JWKS if still valid
|
|
44
|
-
if (cached && now - cached.time < JWKS_CACHE_TTL) {
|
|
45
|
-
return cached.verifier;
|
|
46
|
-
}
|
|
47
|
-
// Fetch fresh JWKS from authz
|
|
48
|
-
const jwksUrl = new URL("/.well-known/jwks.json", authzUrl);
|
|
49
|
-
console.log("[SSO] Fetching JWKS from:", jwksUrl.toString());
|
|
50
|
-
const verifier = jose.createRemoteJWKSet(jwksUrl);
|
|
51
|
-
jwksCache.set(authzUrl, { verifier, time: now });
|
|
52
|
-
return verifier;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Invalidate JWKS cache (call this if key rotation is detected)
|
|
56
|
-
*/
|
|
57
|
-
export function invalidateJwksCache(authzUrl) {
|
|
58
|
-
if (authzUrl) {
|
|
59
|
-
jwksCache.delete(authzUrl);
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
jwksCache.clear();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
// ============================================================================
|
|
66
|
-
// Token Validation
|
|
67
|
-
// ============================================================================
|
|
68
|
-
/**
|
|
69
|
-
* Validate app-scoped token from authz
|
|
70
|
-
*
|
|
71
|
-
* Token is RS256 signed by authz. We verify using authz JWKS endpoint.
|
|
72
|
-
* No shared secrets needed - asymmetric verification.
|
|
73
|
-
*
|
|
74
|
-
* Handles multiple audience formats robustly:
|
|
75
|
-
* - Short app IDs (e.g., "estimator", "dredge-estimator")
|
|
76
|
-
* - Display names (e.g., "Dredging Cost Estimator")
|
|
77
|
-
* - Explicit path/ID audiences (e.g., "projects", "busibox-projects")
|
|
78
|
-
*
|
|
79
|
-
* @param token - JWT token string
|
|
80
|
-
* @param options - Validation options (authzUrl, appName, issuer)
|
|
81
|
-
* @returns Validation result with user info or error
|
|
82
|
-
*
|
|
83
|
-
* @example
|
|
84
|
-
* ```typescript
|
|
85
|
-
* // Using environment variables
|
|
86
|
-
* const result = await validateSSOToken(token);
|
|
87
|
-
*
|
|
88
|
-
* // With explicit options
|
|
89
|
-
* const result = await validateSSOToken(token, {
|
|
90
|
-
* authzUrl: 'http://authz:8010',
|
|
91
|
-
* appName: 'My App',
|
|
92
|
-
* });
|
|
93
|
-
* ```
|
|
94
|
-
*/
|
|
95
|
-
export async function validateSSOToken(token, options) {
|
|
96
|
-
const authzUrl = options?.authzUrl || getDefaultAuthzUrl();
|
|
97
|
-
const appName = options?.appName || getDefaultAppName();
|
|
98
|
-
const issuer = options?.issuer || DEFAULT_ISSUER;
|
|
99
|
-
try {
|
|
100
|
-
const jwks = await getJwksVerifier(authzUrl);
|
|
101
|
-
console.log(`[SSO] Validating token with expected audience: "${appName}"`);
|
|
102
|
-
// Debug: Log current time vs token expiration
|
|
103
|
-
try {
|
|
104
|
-
const parts = token.split('.');
|
|
105
|
-
if (parts.length === 3) {
|
|
106
|
-
const payload = JSON.parse(Buffer.from(parts[1], 'base64').toString());
|
|
107
|
-
const now = Math.floor(Date.now() / 1000);
|
|
108
|
-
const exp = payload.exp;
|
|
109
|
-
const iat = payload.iat;
|
|
110
|
-
console.log(`[SSO] Token timing - Now: ${now}, Issued: ${iat}, Expires: ${exp}, Age: ${now - iat}s, TTL: ${exp - now}s`);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
catch (e) {
|
|
114
|
-
// Ignore parsing errors
|
|
115
|
-
}
|
|
116
|
-
// Verify and decode token WITHOUT strict audience check
|
|
117
|
-
// We'll validate audience manually for more flexibility
|
|
118
|
-
// Add clock tolerance to handle clock skew between services
|
|
119
|
-
const { payload } = await jose.jwtVerify(token, jwks, {
|
|
120
|
-
issuer,
|
|
121
|
-
clockTolerance: 60, // Allow 60 seconds clock skew
|
|
122
|
-
// Don't enforce audience in jwtVerify - we'll check manually
|
|
123
|
-
});
|
|
124
|
-
const appToken = payload;
|
|
125
|
-
// Manual audience validation with flexible matching
|
|
126
|
-
const tokenAud = appToken.aud;
|
|
127
|
-
// Build list of acceptable audiences for this app.
|
|
128
|
-
// Security: do not include global legacy wildcards like "Busibox App".
|
|
129
|
-
const acceptedAudiences = [];
|
|
130
|
-
const addAudience = (value) => {
|
|
131
|
-
const normalized = (value || "").trim();
|
|
132
|
-
if (!normalized)
|
|
133
|
-
return;
|
|
134
|
-
if (!acceptedAudiences.some((aud) => aud.toLowerCase() === normalized.toLowerCase())) {
|
|
135
|
-
acceptedAudiences.push(normalized);
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
// Primary configured app name
|
|
139
|
-
addAudience(appName);
|
|
140
|
-
// Explicit audience override(s), from options or env (comma-separated)
|
|
141
|
-
const ssoAudienceConfig = options?.ssoAudience || process.env.SSO_AUDIENCE || "";
|
|
142
|
-
for (const value of ssoAudienceConfig.split(",")) {
|
|
143
|
-
addAudience(value);
|
|
144
|
-
}
|
|
145
|
-
// Deployed path audience fallback (portal often uses this format)
|
|
146
|
-
const basePath = process.env.NEXT_PUBLIC_BASE_PATH || "";
|
|
147
|
-
if (basePath) {
|
|
148
|
-
addAudience(basePath.replace(/^\//, "").toLowerCase());
|
|
149
|
-
}
|
|
150
|
-
// Common variations based on appName
|
|
151
|
-
if (appName) {
|
|
152
|
-
addAudience(appName.toLowerCase().replace(/\s+/g, "-"));
|
|
153
|
-
addAudience(appName
|
|
154
|
-
.split(/[-_\s]+/)
|
|
155
|
-
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
156
|
-
.join(" "));
|
|
157
|
-
}
|
|
158
|
-
// Check if token audience matches any accepted audience
|
|
159
|
-
const audMatch = acceptedAudiences.some(aud => {
|
|
160
|
-
// Exact match
|
|
161
|
-
if (tokenAud === aud)
|
|
162
|
-
return true;
|
|
163
|
-
// Case-insensitive match
|
|
164
|
-
if (typeof tokenAud === 'string' && tokenAud.toLowerCase() === aud.toLowerCase())
|
|
165
|
-
return true;
|
|
166
|
-
// Array of audiences (token can have multiple audiences)
|
|
167
|
-
if (Array.isArray(tokenAud) && tokenAud.some(a => a === aud || (typeof a === 'string' && a.toLowerCase() === aud.toLowerCase())))
|
|
168
|
-
return true;
|
|
169
|
-
return false;
|
|
170
|
-
});
|
|
171
|
-
if (!audMatch) {
|
|
172
|
-
console.error(`[SSO] Token audience mismatch. Expected one of:`, acceptedAudiences, `Got:`, tokenAud);
|
|
173
|
-
// Create a proper error without using JWTClaimValidationFailed constructor directly
|
|
174
|
-
const error = new Error('Token audience validation failed');
|
|
175
|
-
error.name = 'JWTClaimValidationFailed';
|
|
176
|
-
throw error;
|
|
177
|
-
}
|
|
178
|
-
console.log(`[SSO] Token audience validated:`, tokenAud);
|
|
179
|
-
// Extract email from various possible claims
|
|
180
|
-
// Session tokens include 'email', access tokens may not
|
|
181
|
-
const email = appToken.email ||
|
|
182
|
-
appToken.preferred_username ||
|
|
183
|
-
appToken.name ||
|
|
184
|
-
''; // Empty if not found
|
|
185
|
-
console.log('[SSO] Token claims:', {
|
|
186
|
-
sub: appToken.sub,
|
|
187
|
-
email: appToken.email,
|
|
188
|
-
preferred_username: appToken.preferred_username,
|
|
189
|
-
name: appToken.name,
|
|
190
|
-
roles: appToken.roles?.map((r) => r.name),
|
|
191
|
-
});
|
|
192
|
-
// Token is valid - extract user info including profile fields
|
|
193
|
-
return {
|
|
194
|
-
valid: true,
|
|
195
|
-
userId: appToken.sub,
|
|
196
|
-
email,
|
|
197
|
-
roles: appToken.roles?.map((r) => r.name) || [],
|
|
198
|
-
appId: appToken.app_id,
|
|
199
|
-
scopes: appToken.scope?.split(" ").filter(Boolean) || [],
|
|
200
|
-
displayName: appToken.name || undefined,
|
|
201
|
-
firstName: appToken.given_name || undefined,
|
|
202
|
-
lastName: appToken.family_name || undefined,
|
|
203
|
-
avatarUrl: appToken.picture || undefined,
|
|
204
|
-
favoriteColor: appToken.favorite_color || undefined,
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
catch (error) {
|
|
208
|
-
console.error("[SSO] Token validation error:", error);
|
|
209
|
-
let errorMessage = "Invalid token";
|
|
210
|
-
if (error instanceof jose.errors.JWTExpired) {
|
|
211
|
-
errorMessage = "Token expired";
|
|
212
|
-
}
|
|
213
|
-
else if (error instanceof jose.errors.JWTClaimValidationFailed) {
|
|
214
|
-
errorMessage = "Token claims validation failed";
|
|
215
|
-
}
|
|
216
|
-
else if (error instanceof jose.errors.JWSSignatureVerificationFailed) {
|
|
217
|
-
errorMessage = "Token signature verification failed";
|
|
218
|
-
// Invalidate cache in case of key rotation
|
|
219
|
-
invalidateJwksCache(authzUrl);
|
|
220
|
-
}
|
|
221
|
-
return {
|
|
222
|
-
valid: false,
|
|
223
|
-
error: errorMessage,
|
|
224
|
-
};
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* Full validation - validates the token via JWKS
|
|
229
|
-
* @deprecated Use validateSSOToken instead
|
|
230
|
-
*/
|
|
231
|
-
export async function validateSSOTokenFull(token, options) {
|
|
232
|
-
return validateSSOToken(token, options);
|
|
233
|
-
}
|
|
234
|
-
// ============================================================================
|
|
235
|
-
// Session Management Helpers
|
|
236
|
-
// ============================================================================
|
|
237
|
-
/**
|
|
238
|
-
* Create session data from validated SSO token
|
|
239
|
-
*
|
|
240
|
-
* @param validation - Result from validateSSOToken
|
|
241
|
-
* @returns Session data object
|
|
242
|
-
* @throws Error if validation result is invalid
|
|
243
|
-
*/
|
|
244
|
-
export function createSessionFromSSO(validation) {
|
|
245
|
-
if (!validation.valid || !validation.userId) {
|
|
246
|
-
throw new Error("Invalid SSO validation result");
|
|
247
|
-
}
|
|
248
|
-
return {
|
|
249
|
-
userId: validation.userId,
|
|
250
|
-
email: validation.email || "",
|
|
251
|
-
roles: validation.roles || [],
|
|
252
|
-
appId: validation.appId || "",
|
|
253
|
-
scopes: validation.scopes || [],
|
|
254
|
-
authenticatedAt: new Date().toISOString(),
|
|
255
|
-
authMethod: "sso",
|
|
256
|
-
// Profile fields from JWT claims
|
|
257
|
-
displayName: validation.displayName,
|
|
258
|
-
firstName: validation.firstName,
|
|
259
|
-
lastName: validation.lastName,
|
|
260
|
-
avatarUrl: validation.avatarUrl,
|
|
261
|
-
favoriteColor: validation.favoriteColor,
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Check if session has specific role
|
|
266
|
-
*/
|
|
267
|
-
export function hasSessionRole(session, roleName) {
|
|
268
|
-
return session.roles?.includes(roleName) || false;
|
|
269
|
-
}
|
|
270
|
-
/**
|
|
271
|
-
* Check if session has specific scope
|
|
272
|
-
*/
|
|
273
|
-
export function hasSessionScope(session, scope) {
|
|
274
|
-
return session.scopes?.includes(scope) || false;
|
|
275
|
-
}
|
|
276
|
-
/**
|
|
277
|
-
* Check if session user is admin
|
|
278
|
-
*/
|
|
279
|
-
export function isSessionAdmin(session) {
|
|
280
|
-
return hasSessionRole(session, "Admin") || hasSessionRole(session, "admin");
|
|
281
|
-
}
|
|
282
|
-
//# sourceMappingURL=sso.js.map
|
package/dist/lib/auth/sso.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sso.js","sourceRoot":"","sources":["../../../src/lib/auth/sso.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Email Sending — Bridge API Client
|
|
3
|
-
*
|
|
4
|
-
* All outbound email is delegated to the Bridge API service.
|
|
5
|
-
* Busibox Portal no longer holds SMTP or Resend secrets.
|
|
6
|
-
*
|
|
7
|
-
* Bridge API endpoints (internal network, no auth required):
|
|
8
|
-
* POST /api/v1/email/send-magic-link — magic link + TOTP code
|
|
9
|
-
* POST /api/v1/email/send-magic-link-simple — simple magic link
|
|
10
|
-
* POST /api/v1/email/send — generic email
|
|
11
|
-
* POST /api/v1/email/send-welcome — welcome email
|
|
12
|
-
* POST /api/v1/email/send-account-deactivated
|
|
13
|
-
* POST /api/v1/email/send-account-reactivated
|
|
14
|
-
* POST /api/v1/email/test — test email
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* Send a magic-link + TOTP code email via Bridge API.
|
|
18
|
-
*/
|
|
19
|
-
export declare function sendMagicLinkWithCodeEmail(email: string, magicLinkUrl: string, totpCode: string): Promise<{
|
|
20
|
-
data: any;
|
|
21
|
-
error: null;
|
|
22
|
-
}>;
|
|
23
|
-
/**
|
|
24
|
-
* Send a simple magic-link email (no TOTP) via Bridge API.
|
|
25
|
-
*/
|
|
26
|
-
export declare function sendMagicLinkEmail(email: string, magicLinkUrl: string): Promise<{
|
|
27
|
-
data: any;
|
|
28
|
-
error: null;
|
|
29
|
-
}>;
|
|
30
|
-
/**
|
|
31
|
-
* Send a welcome email via Bridge API.
|
|
32
|
-
*/
|
|
33
|
-
export declare function sendWelcomeEmail(email: string, userName?: string): Promise<{
|
|
34
|
-
data: any;
|
|
35
|
-
error: null;
|
|
36
|
-
}>;
|
|
37
|
-
/**
|
|
38
|
-
* Send an account-deactivated email via Bridge API.
|
|
39
|
-
*/
|
|
40
|
-
export declare function sendAccountDeactivatedEmail(email: string): Promise<{
|
|
41
|
-
data: any;
|
|
42
|
-
error: null;
|
|
43
|
-
}>;
|
|
44
|
-
/**
|
|
45
|
-
* Send an account-reactivated email via Bridge API.
|
|
46
|
-
*/
|
|
47
|
-
export declare function sendAccountReactivatedEmail(email: string): Promise<{
|
|
48
|
-
data: any;
|
|
49
|
-
error: null;
|
|
50
|
-
}>;
|
|
51
|
-
/**
|
|
52
|
-
* Send a test email via Bridge API.
|
|
53
|
-
* Returns the provider that was used.
|
|
54
|
-
*/
|
|
55
|
-
export declare function sendTestEmail(to: string): Promise<{
|
|
56
|
-
provider: string;
|
|
57
|
-
}>;
|
|
58
|
-
/**
|
|
59
|
-
* Send a generic email via Bridge API.
|
|
60
|
-
*/
|
|
61
|
-
export declare function sendEmail(to: string, subject: string, html: string, text: string): Promise<{
|
|
62
|
-
data: any;
|
|
63
|
-
error: null;
|
|
64
|
-
}>;
|
|
65
|
-
//# sourceMappingURL=email.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/lib/authz/email.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiCH;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM;;;GASjB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;;;GAO3E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;;;GAStE;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,KAAK,EAAE,MAAM;;;GAK9D;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,KAAK,EAAE,MAAM;;;GAQ9D;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAM7E;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM;;;GAIb"}
|
package/dist/lib/authz/email.js
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Email Sending — Bridge API Client
|
|
3
|
-
*
|
|
4
|
-
* All outbound email is delegated to the Bridge API service.
|
|
5
|
-
* Busibox Portal no longer holds SMTP or Resend secrets.
|
|
6
|
-
*
|
|
7
|
-
* Bridge API endpoints (internal network, no auth required):
|
|
8
|
-
* POST /api/v1/email/send-magic-link — magic link + TOTP code
|
|
9
|
-
* POST /api/v1/email/send-magic-link-simple — simple magic link
|
|
10
|
-
* POST /api/v1/email/send — generic email
|
|
11
|
-
* POST /api/v1/email/send-welcome — welcome email
|
|
12
|
-
* POST /api/v1/email/send-account-deactivated
|
|
13
|
-
* POST /api/v1/email/send-account-reactivated
|
|
14
|
-
* POST /api/v1/email/test — test email
|
|
15
|
-
*/
|
|
16
|
-
import { getBridgeApiUrl } from '../next/api-url';
|
|
17
|
-
// ---------------------------------------------------------------------------
|
|
18
|
-
// Low-level bridge call
|
|
19
|
-
// ---------------------------------------------------------------------------
|
|
20
|
-
async function bridgePost(path, body) {
|
|
21
|
-
const url = `${getBridgeApiUrl()}${path}`;
|
|
22
|
-
const resp = await fetch(url, {
|
|
23
|
-
method: 'POST',
|
|
24
|
-
headers: { 'Content-Type': 'application/json' },
|
|
25
|
-
body: JSON.stringify(body),
|
|
26
|
-
});
|
|
27
|
-
if (!resp.ok) {
|
|
28
|
-
const text = await resp.text().catch(() => '');
|
|
29
|
-
let detail = text;
|
|
30
|
-
try {
|
|
31
|
-
const json = JSON.parse(text);
|
|
32
|
-
detail = json.detail || json.error || text;
|
|
33
|
-
}
|
|
34
|
-
catch { /* use raw text */ }
|
|
35
|
-
throw new Error(`Bridge API ${resp.status} ${path}: ${detail}`);
|
|
36
|
-
}
|
|
37
|
-
return resp.json();
|
|
38
|
-
}
|
|
39
|
-
// ---------------------------------------------------------------------------
|
|
40
|
-
// Public API — mirrors the old email.ts exports
|
|
41
|
-
// ---------------------------------------------------------------------------
|
|
42
|
-
/**
|
|
43
|
-
* Send a magic-link + TOTP code email via Bridge API.
|
|
44
|
-
*/
|
|
45
|
-
export async function sendMagicLinkWithCodeEmail(email, magicLinkUrl, totpCode) {
|
|
46
|
-
console.log('[EMAIL] Sending magic link + TOTP via Bridge API for', email);
|
|
47
|
-
const result = await bridgePost('/api/v1/email/send-magic-link', {
|
|
48
|
-
to: email,
|
|
49
|
-
magic_link_url: magicLinkUrl,
|
|
50
|
-
totp_code: totpCode,
|
|
51
|
-
});
|
|
52
|
-
return { data: result, error: null };
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Send a simple magic-link email (no TOTP) via Bridge API.
|
|
56
|
-
*/
|
|
57
|
-
export async function sendMagicLinkEmail(email, magicLinkUrl) {
|
|
58
|
-
console.log('[EMAIL] Sending magic link via Bridge API for', email);
|
|
59
|
-
const result = await bridgePost('/api/v1/email/send-magic-link-simple', {
|
|
60
|
-
to: email,
|
|
61
|
-
magic_link_url: magicLinkUrl,
|
|
62
|
-
});
|
|
63
|
-
return { data: result, error: null };
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Send a welcome email via Bridge API.
|
|
67
|
-
*/
|
|
68
|
-
export async function sendWelcomeEmail(email, userName) {
|
|
69
|
-
const portalUrl = process.env.APP_URL || process.env.NEXT_PUBLIC_APP_URL || 'http://localhost:3000';
|
|
70
|
-
const result = await bridgePost('/api/v1/email/send-welcome', {
|
|
71
|
-
to: email,
|
|
72
|
-
user_name: userName || null,
|
|
73
|
-
portal_url: portalUrl,
|
|
74
|
-
});
|
|
75
|
-
return { data: result, error: null };
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Send an account-deactivated email via Bridge API.
|
|
79
|
-
*/
|
|
80
|
-
export async function sendAccountDeactivatedEmail(email) {
|
|
81
|
-
const result = await bridgePost('/api/v1/email/send-account-deactivated', {
|
|
82
|
-
to: email,
|
|
83
|
-
});
|
|
84
|
-
return { data: result, error: null };
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Send an account-reactivated email via Bridge API.
|
|
88
|
-
*/
|
|
89
|
-
export async function sendAccountReactivatedEmail(email) {
|
|
90
|
-
const portalUrl = process.env.APP_URL || process.env.NEXT_PUBLIC_APP_URL || 'http://localhost:3000';
|
|
91
|
-
const result = await bridgePost('/api/v1/email/send-account-reactivated', {
|
|
92
|
-
to: email,
|
|
93
|
-
portal_url: portalUrl,
|
|
94
|
-
});
|
|
95
|
-
return { data: result, error: null };
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Send a test email via Bridge API.
|
|
99
|
-
* Returns the provider that was used.
|
|
100
|
-
*/
|
|
101
|
-
export async function sendTestEmail(to) {
|
|
102
|
-
const result = await bridgePost('/api/v1/email/test', { to });
|
|
103
|
-
return { provider: result.provider };
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Send a generic email via Bridge API.
|
|
107
|
-
*/
|
|
108
|
-
export async function sendEmail(to, subject, html, text) {
|
|
109
|
-
const result = await bridgePost('/api/v1/email/send', { to, subject, html, text });
|
|
110
|
-
return { data: result, error: null };
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=email.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../../src/lib/authz/email.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,109 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|