@djangocfg/api 2.1.10 → 2.1.15
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 +424 -55
- package/dist/auth-server.cjs +47 -0
- package/dist/auth-server.cjs.map +1 -0
- package/dist/auth-server.d.cts +16 -0
- package/dist/auth-server.d.ts +16 -0
- package/dist/auth-server.mjs +27 -0
- package/dist/auth-server.mjs.map +1 -0
- package/dist/auth.cjs +6081 -0
- package/dist/auth.cjs.map +1 -0
- package/dist/auth.d.cts +525 -0
- package/dist/auth.d.ts +525 -0
- package/dist/auth.mjs +6063 -0
- package/dist/auth.mjs.map +1 -0
- package/dist/hooks.cjs +1 -0
- package/dist/hooks.cjs.map +1 -0
- package/dist/hooks.d.cts +2 -0
- package/dist/hooks.d.ts +2 -0
- package/dist/hooks.mjs +1 -0
- package/dist/hooks.mjs.map +1 -0
- package/dist/index.cjs +7253 -16058
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7615 -16642
- package/dist/index.d.ts +7615 -16642
- package/dist/index.mjs +5819 -14624
- package/dist/index.mjs.map +1 -1
- package/package.json +21 -25
- package/src/auth/context/AccountsContext.tsx +245 -0
- package/src/auth/context/AuthContext.tsx +604 -0
- package/src/auth/context/index.ts +4 -0
- package/src/auth/context/types.ts +68 -0
- package/src/auth/hooks/index.ts +17 -0
- package/src/auth/hooks/useAuthForm.ts +332 -0
- package/src/auth/hooks/useAuthGuard.ts +25 -0
- package/src/auth/hooks/useAuthRedirect.ts +51 -0
- package/src/auth/hooks/useAutoAuth.ts +49 -0
- package/src/auth/hooks/useGithubAuth.ts +184 -0
- package/src/auth/hooks/useLocalStorage.ts +214 -0
- package/src/auth/hooks/useProfileCache.ts +146 -0
- package/src/auth/hooks/useSessionStorage.ts +189 -0
- package/src/auth/index.ts +34 -0
- package/src/auth/middlewares/index.ts +1 -0
- package/src/auth/middlewares/proxy.ts +32 -0
- package/src/auth/server.ts +19 -0
- package/src/auth/utils/analytics.ts +62 -0
- package/src/auth/utils/errors.ts +22 -0
- package/src/auth/utils/index.ts +10 -0
- package/src/auth/utils/logger.ts +28 -0
- package/src/auth/utils/validation.ts +7 -0
- package/src/{cfg/generated/_utils/fetchers/cfg__accounts.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__accounts.ts} +2 -2
- package/src/{cfg/generated/_utils/fetchers/cfg__accounts__auth.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__accounts__auth.ts} +1 -1
- package/src/{cfg/generated/_utils/fetchers/cfg__accounts__oauth.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__accounts__oauth.ts} +5 -5
- package/src/{cfg/generated/_utils/fetchers/cfg__accounts__user_profile.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__accounts__user_profile.ts} +6 -6
- package/src/{cfg/generated/_utils/fetchers/cfg__centrifugo__centrifugo_admin_api.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__centrifugo__centrifugo_admin_api.ts} +6 -6
- package/src/{cfg/generated/_utils/fetchers/cfg__centrifugo__centrifugo_auth.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__centrifugo__centrifugo_auth.ts} +1 -1
- package/src/{cfg/generated/_utils/fetchers/cfg__centrifugo__centrifugo_monitoring.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__centrifugo__centrifugo_monitoring.ts} +5 -5
- package/src/{cfg/generated/_utils/fetchers/cfg__centrifugo__centrifugo_testing.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__centrifugo__centrifugo_testing.ts} +3 -3
- package/src/{cfg/generated/_utils/fetchers/cfg__dashboard__dashboard_activity.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__dashboard__dashboard_activity.ts} +2 -2
- package/src/{cfg/generated/_utils/fetchers/cfg__dashboard__dashboard_api_zones.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__dashboard__dashboard_api_zones.ts} +2 -2
- package/src/{cfg/generated/_utils/fetchers/cfg__dashboard__dashboard_charts.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__dashboard__dashboard_charts.ts} +4 -4
- package/src/{cfg/generated/_utils/fetchers/cfg__dashboard__dashboard_commands.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__dashboard__dashboard_commands.ts} +4 -4
- package/src/{cfg/generated/_utils/fetchers/cfg__dashboard__dashboard_config.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__dashboard__dashboard_config.ts} +1 -1
- package/src/{cfg/generated/_utils/fetchers/cfg__dashboard__dashboard_overview.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__dashboard__dashboard_overview.ts} +1 -1
- package/src/{cfg/generated/_utils/fetchers/cfg__dashboard__dashboard_statistics.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__dashboard__dashboard_statistics.ts} +3 -3
- package/src/{cfg/generated/_utils/fetchers/cfg__dashboard__dashboard_system.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__dashboard__dashboard_system.ts} +2 -2
- package/src/{cfg/generated/_utils/fetchers/cfg__endpoints.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__endpoints.ts} +3 -3
- package/src/{cfg/generated/_utils/fetchers/cfg__grpc__grpc_api_keys.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__grpc__grpc_api_keys.ts} +3 -3
- package/src/{cfg/generated/_utils/fetchers/cfg__grpc__grpc_configuration.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__grpc__grpc_configuration.ts} +2 -2
- package/src/{cfg/generated/_utils/fetchers/cfg__grpc__grpc_monitoring.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__grpc__grpc_monitoring.ts} +5 -5
- package/src/{cfg/generated/_utils/fetchers/cfg__grpc__grpc_services.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__grpc__grpc_services.ts} +3 -3
- package/src/{cfg/generated/_utils/fetchers/cfg__health.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__health.ts} +2 -2
- package/src/{cfg/generated/_utils/fetchers/cfg__rq__rq_jobs.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__rq__rq_jobs.ts} +5 -5
- package/src/{cfg/generated/_utils/fetchers/cfg__rq__rq_monitoring.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__rq__rq_monitoring.ts} +3 -3
- package/src/{cfg/generated/_utils/fetchers/cfg__rq__rq_queues.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__rq__rq_queues.ts} +4 -4
- package/src/{cfg/generated/_utils/fetchers/cfg__rq__rq_registries.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__rq__rq_registries.ts} +7 -7
- package/src/{cfg/generated/_utils/fetchers/cfg__rq__rq_schedules.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__rq__rq_schedules.ts} +4 -4
- package/src/{cfg/generated/_utils/fetchers/cfg__rq__rq_testing.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__rq__rq_testing.ts} +6 -6
- package/src/{cfg/generated/_utils/fetchers/cfg__rq__rq_workers.ts → generated/cfg_accounts/_utils/fetchers/cfg_accounts__rq__rq_workers.ts} +2 -2
- package/src/generated/cfg_accounts/_utils/fetchers/index.ts +56 -0
- package/src/{cfg/generated/_utils/hooks/cfg__accounts.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__accounts.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__accounts__auth.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__accounts__auth.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__accounts__oauth.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__accounts__oauth.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__accounts__user_profile.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__accounts__user_profile.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__centrifugo__centrifugo_admin_api.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__centrifugo__centrifugo_admin_api.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__centrifugo__centrifugo_auth.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__centrifugo__centrifugo_auth.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__centrifugo__centrifugo_monitoring.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__centrifugo__centrifugo_monitoring.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__centrifugo__centrifugo_testing.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__centrifugo__centrifugo_testing.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__dashboard__dashboard_activity.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__dashboard__dashboard_activity.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__dashboard__dashboard_api_zones.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__dashboard__dashboard_api_zones.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__dashboard__dashboard_charts.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__dashboard__dashboard_charts.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__dashboard__dashboard_commands.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__dashboard__dashboard_commands.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__dashboard__dashboard_config.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__dashboard__dashboard_config.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__dashboard__dashboard_overview.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__dashboard__dashboard_overview.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__dashboard__dashboard_statistics.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__dashboard__dashboard_statistics.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__dashboard__dashboard_system.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__dashboard__dashboard_system.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__endpoints.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__endpoints.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__grpc__grpc_api_keys.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__grpc__grpc_api_keys.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__grpc__grpc_configuration.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__grpc__grpc_configuration.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__grpc__grpc_monitoring.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__grpc__grpc_monitoring.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__grpc__grpc_services.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__grpc__grpc_services.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__health.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__health.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__rq__rq_jobs.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__rq__rq_jobs.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__rq__rq_monitoring.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__rq__rq_monitoring.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__rq__rq_queues.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__rq__rq_queues.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__rq__rq_registries.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__rq__rq_registries.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__rq__rq_schedules.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__rq__rq_schedules.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__rq__rq_testing.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__rq__rq_testing.ts} +1 -1
- package/src/{cfg/generated/_utils/hooks/cfg__rq__rq_workers.ts → generated/cfg_accounts/_utils/hooks/cfg_accounts__rq__rq_workers.ts} +1 -1
- package/src/generated/cfg_accounts/_utils/hooks/index.ts +56 -0
- package/src/generated/cfg_accounts/_utils/schemas/CentrifugoConfig.schema.ts +35 -0
- package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/DjangoConfig.schema.ts +5 -8
- package/src/generated/cfg_accounts/_utils/schemas/GRPCConfigDashboard.schema.ts +33 -0
- package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/index.ts +0 -102
- package/src/{cfg/generated/cfg__accounts → generated/cfg_accounts/cfg_accounts__accounts}/client.ts +1 -1
- package/src/{cfg/generated/cfg__accounts__auth → generated/cfg_accounts/cfg_accounts__accounts__auth}/client.ts +1 -1
- package/src/{cfg/generated/cfg__accounts__oauth → generated/cfg_accounts/cfg_accounts__accounts__oauth}/client.ts +1 -1
- package/src/{cfg/generated/cfg__accounts__user_profile → generated/cfg_accounts/cfg_accounts__accounts__user_profile}/client.ts +1 -1
- package/src/{cfg/generated/cfg__centrifugo__centrifugo_admin_api → generated/cfg_accounts/cfg_accounts__centrifugo__centrifugo_admin_api}/client.ts +1 -1
- package/src/{cfg/generated/cfg__centrifugo__centrifugo_auth → generated/cfg_accounts/cfg_accounts__centrifugo__centrifugo_auth}/client.ts +1 -1
- package/src/{cfg/generated/cfg__centrifugo__centrifugo_monitoring → generated/cfg_accounts/cfg_accounts__centrifugo__centrifugo_monitoring}/client.ts +1 -1
- package/src/{cfg/generated/cfg__centrifugo__centrifugo_testing → generated/cfg_accounts/cfg_accounts__centrifugo__centrifugo_testing}/client.ts +1 -1
- package/src/{cfg/generated/cfg__dashboard__dashboard_activity → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_activity}/client.ts +1 -1
- package/src/{cfg/generated/cfg__dashboard__dashboard_api_zones → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_api_zones}/client.ts +1 -1
- package/src/{cfg/generated/cfg__dashboard__dashboard_charts → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_charts}/client.ts +1 -1
- package/src/{cfg/generated/cfg__dashboard__dashboard_commands → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_commands}/client.ts +1 -1
- package/src/{cfg/generated/cfg__dashboard__dashboard_config → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_config}/client.ts +1 -1
- package/src/{cfg/generated/cfg__dashboard__dashboard_config → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_config}/models.ts +33 -16
- package/src/{cfg/generated/cfg__dashboard__dashboard_overview → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_overview}/client.ts +1 -1
- package/src/{cfg/generated/cfg__dashboard__dashboard_statistics → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_statistics}/client.ts +1 -1
- package/src/{cfg/generated/cfg__dashboard__dashboard_system → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_system}/client.ts +1 -1
- package/src/{cfg/generated/cfg__endpoints → generated/cfg_accounts/cfg_accounts__endpoints}/client.ts +1 -1
- package/src/{cfg/generated/cfg__grpc__grpc_api_keys → generated/cfg_accounts/cfg_accounts__grpc__grpc_api_keys}/client.ts +1 -1
- package/src/{cfg/generated/cfg__grpc__grpc_configuration → generated/cfg_accounts/cfg_accounts__grpc__grpc_configuration}/client.ts +1 -1
- package/src/{cfg/generated/cfg__grpc__grpc_monitoring → generated/cfg_accounts/cfg_accounts__grpc__grpc_monitoring}/client.ts +1 -1
- package/src/{cfg/generated/cfg__grpc__grpc_services → generated/cfg_accounts/cfg_accounts__grpc__grpc_services}/client.ts +1 -1
- package/src/{cfg/generated/cfg__health → generated/cfg_accounts/cfg_accounts__health}/client.ts +1 -1
- package/src/{cfg/generated/cfg__rq__rq_jobs → generated/cfg_accounts/cfg_accounts__rq__rq_jobs}/client.ts +1 -1
- package/src/{cfg/generated/cfg__rq__rq_monitoring → generated/cfg_accounts/cfg_accounts__rq__rq_monitoring}/client.ts +1 -1
- package/src/{cfg/generated/cfg__rq__rq_queues → generated/cfg_accounts/cfg_accounts__rq__rq_queues}/client.ts +1 -1
- package/src/{cfg/generated/cfg__rq__rq_registries → generated/cfg_accounts/cfg_accounts__rq__rq_registries}/client.ts +1 -1
- package/src/{cfg/generated/cfg__rq__rq_schedules → generated/cfg_accounts/cfg_accounts__rq__rq_schedules}/client.ts +1 -1
- package/src/{cfg/generated/cfg__rq__rq_testing → generated/cfg_accounts/cfg_accounts__rq__rq_testing}/client.ts +1 -1
- package/src/{cfg/generated/cfg__rq__rq_workers → generated/cfg_accounts/cfg_accounts__rq__rq_workers}/client.ts +1 -1
- package/src/{cfg/generated → generated/cfg_accounts}/client.ts +87 -126
- package/src/generated/cfg_accounts/enums.ts +132 -0
- package/src/generated/cfg_accounts/index.ts +469 -0
- package/src/{cfg/generated → generated/cfg_accounts}/schema.json +3793 -14481
- package/src/hooks/index.ts +0 -0
- package/src/index.ts +52 -30
- package/src/server.ts +9 -18
- package/dist/server-Drl03IjJ.d.cts +0 -17993
- package/dist/server-Drl03IjJ.d.ts +0 -17993
- package/dist/server.cjs +0 -13808
- package/dist/server.cjs.map +0 -1
- package/dist/server.d.cts +0 -16786
- package/dist/server.d.ts +0 -16786
- package/dist/server.mjs +0 -13797
- package/dist/server.mjs.map +0 -1
- package/src/cfg/BaseClient.ts +0 -57
- package/src/cfg/generated/_utils/fetchers/cfg__db.ts +0 -494
- package/src/cfg/generated/_utils/fetchers/cfg__knowbase.ts +0 -2983
- package/src/cfg/generated/_utils/fetchers/cfg__leads.ts +0 -337
- package/src/cfg/generated/_utils/fetchers/cfg__leads__lead_submission.ts +0 -93
- package/src/cfg/generated/_utils/fetchers/cfg__newsletter.ts +0 -210
- package/src/cfg/generated/_utils/fetchers/cfg__newsletter__bulk_email.ts +0 -93
- package/src/cfg/generated/_utils/fetchers/cfg__newsletter__campaigns.ts +0 -338
- package/src/cfg/generated/_utils/fetchers/cfg__newsletter__logs.ts +0 -92
- package/src/cfg/generated/_utils/fetchers/cfg__newsletter__newsletters.ts +0 -150
- package/src/cfg/generated/_utils/fetchers/cfg__newsletter__subscriptions.ts +0 -210
- package/src/cfg/generated/_utils/fetchers/cfg__newsletter__testing.ts +0 -93
- package/src/cfg/generated/_utils/fetchers/cfg__payments.ts +0 -408
- package/src/cfg/generated/_utils/fetchers/cfg__support.ts +0 -642
- package/src/cfg/generated/_utils/fetchers/index.ts +0 -69
- package/src/cfg/generated/_utils/hooks/cfg__db.ts +0 -151
- package/src/cfg/generated/_utils/hooks/cfg__knowbase.ts +0 -999
- package/src/cfg/generated/_utils/hooks/cfg__leads.ts +0 -129
- package/src/cfg/generated/_utils/hooks/cfg__leads__lead_submission.ts +0 -42
- package/src/cfg/generated/_utils/hooks/cfg__newsletter.ts +0 -81
- package/src/cfg/generated/_utils/hooks/cfg__newsletter__bulk_email.ts +0 -42
- package/src/cfg/generated/_utils/hooks/cfg__newsletter__campaigns.ts +0 -130
- package/src/cfg/generated/_utils/hooks/cfg__newsletter__logs.ts +0 -37
- package/src/cfg/generated/_utils/hooks/cfg__newsletter__newsletters.ts +0 -52
- package/src/cfg/generated/_utils/hooks/cfg__newsletter__subscriptions.ts +0 -78
- package/src/cfg/generated/_utils/hooks/cfg__newsletter__testing.ts +0 -42
- package/src/cfg/generated/_utils/hooks/cfg__payments.ts +0 -147
- package/src/cfg/generated/_utils/hooks/cfg__support.ts +0 -237
- package/src/cfg/generated/_utils/hooks/index.ts +0 -69
- package/src/cfg/generated/_utils/schemas/ArchiveItem.schema.ts +0 -33
- package/src/cfg/generated/_utils/schemas/ArchiveItemChunk.schema.ts +0 -29
- package/src/cfg/generated/_utils/schemas/ArchiveItemChunkDetail.schema.ts +0 -30
- package/src/cfg/generated/_utils/schemas/ArchiveItemChunkRequest.schema.ts +0 -22
- package/src/cfg/generated/_utils/schemas/ArchiveItemDetail.schema.ts +0 -35
- package/src/cfg/generated/_utils/schemas/ArchiveItemRequest.schema.ts +0 -22
- package/src/cfg/generated/_utils/schemas/ArchiveProcessingResult.schema.ts +0 -26
- package/src/cfg/generated/_utils/schemas/ArchiveSearchRequestRequest.schema.ts +0 -25
- package/src/cfg/generated/_utils/schemas/ArchiveSearchResult.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/ArchiveStatistics.schema.ts +0 -28
- package/src/cfg/generated/_utils/schemas/BackupRecord.schema.ts +0 -43
- package/src/cfg/generated/_utils/schemas/BackupRecordList.schema.ts +0 -28
- package/src/cfg/generated/_utils/schemas/Balance.schema.ts +0 -23
- package/src/cfg/generated/_utils/schemas/BulkEmailRequest.schema.ts +0 -26
- package/src/cfg/generated/_utils/schemas/BulkEmailResponse.schema.ts +0 -23
- package/src/cfg/generated/_utils/schemas/CentrifugoConfig.schema.ts +0 -23
- package/src/cfg/generated/_utils/schemas/ChatHistory.schema.ts +0 -22
- package/src/cfg/generated/_utils/schemas/ChatMessage.schema.ts +0 -27
- package/src/cfg/generated/_utils/schemas/ChatQueryRequest.schema.ts +0 -22
- package/src/cfg/generated/_utils/schemas/ChatResponse.schema.ts +0 -26
- package/src/cfg/generated/_utils/schemas/ChatResponseRequest.schema.ts +0 -26
- package/src/cfg/generated/_utils/schemas/ChatSession.schema.ts +0 -29
- package/src/cfg/generated/_utils/schemas/ChatSessionCreateRequest.schema.ts +0 -22
- package/src/cfg/generated/_utils/schemas/ChatSessionRequest.schema.ts +0 -25
- package/src/cfg/generated/_utils/schemas/ChatSource.schema.ts +0 -21
- package/src/cfg/generated/_utils/schemas/ChatSourceRequest.schema.ts +0 -21
- package/src/cfg/generated/_utils/schemas/ChunkRevectorizationRequestRequest.schema.ts +0 -20
- package/src/cfg/generated/_utils/schemas/Currency.schema.ts +0 -28
- package/src/cfg/generated/_utils/schemas/Document.schema.ts +0 -32
- package/src/cfg/generated/_utils/schemas/DocumentArchive.schema.ts +0 -44
- package/src/cfg/generated/_utils/schemas/DocumentArchiveDetail.schema.ts +0 -48
- package/src/cfg/generated/_utils/schemas/DocumentArchiveList.schema.ts +0 -35
- package/src/cfg/generated/_utils/schemas/DocumentArchiveRequest.schema.ts +0 -21
- package/src/cfg/generated/_utils/schemas/DocumentCategory.schema.ts +0 -23
- package/src/cfg/generated/_utils/schemas/DocumentCategoryRequest.schema.ts +0 -21
- package/src/cfg/generated/_utils/schemas/DocumentCreateRequest.schema.ts +0 -22
- package/src/cfg/generated/_utils/schemas/DocumentProcessingStatus.schema.ts +0 -23
- package/src/cfg/generated/_utils/schemas/DocumentRequest.schema.ts +0 -22
- package/src/cfg/generated/_utils/schemas/DocumentStats.schema.ts +0 -25
- package/src/cfg/generated/_utils/schemas/EmailLog.schema.ts +0 -31
- package/src/cfg/generated/_utils/schemas/ErrorResponse.schema.ts +0 -20
- package/src/cfg/generated/_utils/schemas/GRPCConfigDashboard.schema.ts +0 -25
- package/src/cfg/generated/_utils/schemas/LeadSubmission.schema.ts +0 -29
- package/src/cfg/generated/_utils/schemas/LeadSubmissionError.schema.ts +0 -21
- package/src/cfg/generated/_utils/schemas/LeadSubmissionRequest.schema.ts +0 -29
- package/src/cfg/generated/_utils/schemas/LeadSubmissionResponse.schema.ts +0 -21
- package/src/cfg/generated/_utils/schemas/Message.schema.ts +0 -21
- package/src/cfg/generated/_utils/schemas/MessageCreate.schema.ts +0 -15
- package/src/cfg/generated/_utils/schemas/MessageCreateRequest.schema.ts +0 -15
- package/src/cfg/generated/_utils/schemas/MessageRequest.schema.ts +0 -15
- package/src/cfg/generated/_utils/schemas/Newsletter.schema.ts +0 -26
- package/src/cfg/generated/_utils/schemas/NewsletterCampaign.schema.ts +0 -33
- package/src/cfg/generated/_utils/schemas/NewsletterCampaignRequest.schema.ts +0 -26
- package/src/cfg/generated/_utils/schemas/NewsletterSubscription.schema.ts +0 -27
- package/src/cfg/generated/_utils/schemas/PaginatedArchiveItemChunkList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedArchiveItemList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedArchiveSearchResultList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedBackupRecordListList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedChatResponseList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedChatSessionList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedDocumentArchiveListList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedDocumentList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedEmailLogList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedLeadSubmissionList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedMessageList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedNewsletterCampaignList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedNewsletterList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedNewsletterSubscriptionList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedPaymentListList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedPublicCategoryList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedPublicDocumentListList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedRestoreRecordList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PaginatedTicketList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/PatchedArchiveItemChunkRequest.schema.ts +0 -22
- package/src/cfg/generated/_utils/schemas/PatchedArchiveItemRequest.schema.ts +0 -22
- package/src/cfg/generated/_utils/schemas/PatchedChatResponseRequest.schema.ts +0 -26
- package/src/cfg/generated/_utils/schemas/PatchedChatSessionRequest.schema.ts +0 -25
- package/src/cfg/generated/_utils/schemas/PatchedDocumentArchiveRequest.schema.ts +0 -21
- package/src/cfg/generated/_utils/schemas/PatchedDocumentRequest.schema.ts +0 -22
- package/src/cfg/generated/_utils/schemas/PatchedLeadSubmissionRequest.schema.ts +0 -29
- package/src/cfg/generated/_utils/schemas/PatchedMessageRequest.schema.ts +0 -15
- package/src/cfg/generated/_utils/schemas/PatchedNewsletterCampaignRequest.schema.ts +0 -26
- package/src/cfg/generated/_utils/schemas/PatchedTicketRequest.schema.ts +0 -18
- package/src/cfg/generated/_utils/schemas/PatchedUnsubscribeRequest.schema.ts +0 -19
- package/src/cfg/generated/_utils/schemas/PaymentDetail.schema.ts +0 -44
- package/src/cfg/generated/_utils/schemas/PaymentList.schema.ts +0 -28
- package/src/cfg/generated/_utils/schemas/PublicCategory.schema.ts +0 -21
- package/src/cfg/generated/_utils/schemas/PublicDocument.schema.ts +0 -25
- package/src/cfg/generated/_utils/schemas/PublicDocumentList.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/RestoreRecord.schema.ts +0 -30
- package/src/cfg/generated/_utils/schemas/SendCampaignRequest.schema.ts +0 -19
- package/src/cfg/generated/_utils/schemas/SendCampaignResponse.schema.ts +0 -22
- package/src/cfg/generated/_utils/schemas/Sender.schema.ts +0 -21
- package/src/cfg/generated/_utils/schemas/SubscribeRequest.schema.ts +0 -20
- package/src/cfg/generated/_utils/schemas/SubscribeResponse.schema.ts +0 -21
- package/src/cfg/generated/_utils/schemas/SuccessResponse.schema.ts +0 -20
- package/src/cfg/generated/_utils/schemas/TestEmailRequest.schema.ts +0 -21
- package/src/cfg/generated/_utils/schemas/Ticket.schema.ts +0 -21
- package/src/cfg/generated/_utils/schemas/TicketRequest.schema.ts +0 -18
- package/src/cfg/generated/_utils/schemas/Transaction.schema.ts +0 -28
- package/src/cfg/generated/_utils/schemas/Unsubscribe.schema.ts +0 -19
- package/src/cfg/generated/_utils/schemas/UnsubscribeRequest.schema.ts +0 -19
- package/src/cfg/generated/_utils/schemas/VectorizationResult.schema.ts +0 -24
- package/src/cfg/generated/_utils/schemas/VectorizationStatistics.schema.ts +0 -26
- package/src/cfg/generated/cfg__db/client.ts +0 -117
- package/src/cfg/generated/cfg__db/models.ts +0 -181
- package/src/cfg/generated/cfg__knowbase/client.ts +0 -666
- package/src/cfg/generated/cfg__knowbase/models.ts +0 -1120
- package/src/cfg/generated/cfg__leads/client.ts +0 -85
- package/src/cfg/generated/cfg__leads/models.ts +0 -99
- package/src/cfg/generated/cfg__leads__lead_submission/client.ts +0 -25
- package/src/cfg/generated/cfg__leads__lead_submission/models.ts +0 -48
- package/src/cfg/generated/cfg__newsletter/client.ts +0 -38
- package/src/cfg/generated/cfg__newsletter/models.ts +0 -71
- package/src/cfg/generated/cfg__newsletter__bulk_email/client.ts +0 -24
- package/src/cfg/generated/cfg__newsletter__bulk_email/models.ts +0 -29
- package/src/cfg/generated/cfg__newsletter__campaigns/client.ts +0 -85
- package/src/cfg/generated/cfg__newsletter__campaigns/models.ts +0 -100
- package/src/cfg/generated/cfg__newsletter__logs/client.ts +0 -35
- package/src/cfg/generated/cfg__newsletter__logs/index.ts +0 -2
- package/src/cfg/generated/cfg__newsletter__logs/models.ts +0 -51
- package/src/cfg/generated/cfg__newsletter__newsletters/client.ts +0 -45
- package/src/cfg/generated/cfg__newsletter__newsletters/index.ts +0 -2
- package/src/cfg/generated/cfg__newsletter__newsletters/models.ts +0 -42
- package/src/cfg/generated/cfg__newsletter__subscriptions/client.ts +0 -55
- package/src/cfg/generated/cfg__newsletter__subscriptions/index.ts +0 -2
- package/src/cfg/generated/cfg__newsletter__subscriptions/models.ts +0 -92
- package/src/cfg/generated/cfg__newsletter__testing/client.ts +0 -24
- package/src/cfg/generated/cfg__newsletter__testing/index.ts +0 -2
- package/src/cfg/generated/cfg__newsletter__testing/models.ts +0 -24
- package/src/cfg/generated/cfg__payments/client.ts +0 -118
- package/src/cfg/generated/cfg__payments/index.ts +0 -2
- package/src/cfg/generated/cfg__payments/models.ts +0 -135
- package/src/cfg/generated/cfg__rq__rq_jobs/index.ts +0 -2
- package/src/cfg/generated/cfg__rq__rq_monitoring/index.ts +0 -2
- package/src/cfg/generated/cfg__rq__rq_queues/index.ts +0 -2
- package/src/cfg/generated/cfg__rq__rq_registries/index.ts +0 -2
- package/src/cfg/generated/cfg__rq__rq_schedules/index.ts +0 -2
- package/src/cfg/generated/cfg__rq__rq_testing/index.ts +0 -2
- package/src/cfg/generated/cfg__rq__rq_workers/index.ts +0 -2
- package/src/cfg/generated/cfg__support/client.ts +0 -151
- package/src/cfg/generated/cfg__support/index.ts +0 -2
- package/src/cfg/generated/cfg__support/models.ts +0 -165
- package/src/cfg/generated/enums.ts +0 -634
- package/src/cfg/generated/index.ts +0 -561
- package/src/cfg/generated/package.json +0 -39
- package/src/cfg/generated/tsconfig.json +0 -20
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/APIZone.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/APIZonesSummary.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ActivityEntry.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ActivityTrackerDay.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ApiKey.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ApiKeyStats.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/AppStatistics.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/AppStatisticsData.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/AxesConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoChannelInfo.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoChannelsRequestRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoChannelsResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoChannelsResult.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoClientInfo.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoError.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoHealthCheck.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoHistoryRequestRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoHistoryResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoHistoryResult.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoInfoResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoInfoResult.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoMetrics.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoNodeInfo.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoOverviewStats.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoPresenceRequestRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoPresenceResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoPresenceResult.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoPresenceStatsRequestRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoPresenceStatsResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoPresenceStatsResult.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoProcess.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoPublication.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoStreamPosition.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CentrifugoToken.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ChannelList.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ChannelStats.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ChartData.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ChartDataset.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/Command.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CommandCategory.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CommandExecuteRequestRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CommandHelpResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/CommandsSummary.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ConfigData.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ConfigMeta.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ConfigValidation.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ConnectionTokenResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ConstanceConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/DRFConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/DRFHealthCheck.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/DashboardOverview.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/DatabaseConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/DjangoRQConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/EmailConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/Endpoint.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/EndpointsStatus.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/GRPCConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/GRPCFeatures.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/GRPCFrameworkConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/GRPCHealthCheck.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/GRPCInterceptorInfo.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/GRPCOverviewStats.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/GRPCRegisteredService.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/GRPCServerConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/GRPCServerInfo.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/GRPCServerStatus.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/GRPCServiceInfo.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/GRPCServiceRegistryMethodStats.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/GRPCStats.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/GitHubOAuthConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/JWTConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/JobActionResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/JobDetail.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/JobList.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/JobListRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ManualAckRequestRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ManualAckResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/MethodInfo.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/MethodList.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/MethodSummary.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ModelStatistics.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/NextJSAdminConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/NgrokConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/OAuthAuthorizeRequestRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/OAuthAuthorizeResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/OAuthCallbackRequestRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/OAuthConnection.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/OAuthDisconnectRequestRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/OAuthError.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/OAuthProvidersResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/OAuthTokenResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/OTPErrorResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/OTPRequestRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/OTPRequestResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/OTPVerifyRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/OTPVerifyResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/OpenAPIClientConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/PaginatedApiKeyList.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/PaginatedJobListList.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/PaginatedPublishList.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/PaginatedRecentRequestList.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/PaginatedScheduledJobList.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/PaginatedServiceSummaryList.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/PatchedUserProfileUpdateRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/PaymentsConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/PaymentsNowPayments.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/Publish.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/PublishTestRequestRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/PublishTestResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/QueueDetail.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/QueueStats.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/QuickAction.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/QuickHealth.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/RQConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/RQHealthCheck.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/RQSchedule.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/RecentError.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/RecentRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/RecentUser.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/RedisQueueConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/RunDemoRequestRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ScheduleActionResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ScheduleCreateRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ScheduleInfo.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ScheduledJob.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ServiceDetail.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ServiceMethods.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ServiceStats.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ServiceSummary.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/SpectacularConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/StatCard.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/StressTestRequestRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/SystemHealth.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/SystemHealthItem.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/SystemMetrics.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/TelegramConfig.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/TestScenario.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/TestingActionResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/TimelineItem.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/TimelineResponse.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/TokenRefresh.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/TokenRefreshRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/URLPattern.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/URLsList.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/User.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/UserProfileUpdateRequest.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/UserStatistics.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/Worker.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/WorkerStats.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/_utils/schemas/ZonesSummaryStats.schema.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/api-instance.ts +0 -0
- /package/src/{cfg/generated/cfg__accounts → generated/cfg_accounts/cfg_accounts__accounts}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__accounts → generated/cfg_accounts/cfg_accounts__accounts}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__accounts__auth → generated/cfg_accounts/cfg_accounts__accounts__auth}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__accounts__auth → generated/cfg_accounts/cfg_accounts__accounts__auth}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__accounts__oauth → generated/cfg_accounts/cfg_accounts__accounts__oauth}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__accounts__oauth → generated/cfg_accounts/cfg_accounts__accounts__oauth}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__accounts__user_profile → generated/cfg_accounts/cfg_accounts__accounts__user_profile}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__accounts__user_profile → generated/cfg_accounts/cfg_accounts__accounts__user_profile}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__centrifugo__centrifugo_admin_api → generated/cfg_accounts/cfg_accounts__centrifugo__centrifugo_admin_api}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__centrifugo__centrifugo_admin_api → generated/cfg_accounts/cfg_accounts__centrifugo__centrifugo_admin_api}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__centrifugo__centrifugo_auth → generated/cfg_accounts/cfg_accounts__centrifugo__centrifugo_auth}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__centrifugo__centrifugo_auth → generated/cfg_accounts/cfg_accounts__centrifugo__centrifugo_auth}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__centrifugo__centrifugo_monitoring → generated/cfg_accounts/cfg_accounts__centrifugo__centrifugo_monitoring}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__centrifugo__centrifugo_monitoring → generated/cfg_accounts/cfg_accounts__centrifugo__centrifugo_monitoring}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__centrifugo__centrifugo_testing → generated/cfg_accounts/cfg_accounts__centrifugo__centrifugo_testing}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__centrifugo__centrifugo_testing → generated/cfg_accounts/cfg_accounts__centrifugo__centrifugo_testing}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__dashboard__dashboard_activity → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_activity}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__dashboard__dashboard_activity → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_activity}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__dashboard__dashboard_api_zones → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_api_zones}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__dashboard__dashboard_api_zones → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_api_zones}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__dashboard__dashboard_charts → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_charts}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__dashboard__dashboard_charts → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_charts}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__dashboard__dashboard_commands → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_commands}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__dashboard__dashboard_commands → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_commands}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__dashboard__dashboard_config → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_config}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__dashboard__dashboard_overview → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_overview}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__dashboard__dashboard_overview → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_overview}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__dashboard__dashboard_statistics → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_statistics}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__dashboard__dashboard_statistics → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_statistics}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__dashboard__dashboard_system → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_system}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__dashboard__dashboard_system → generated/cfg_accounts/cfg_accounts__dashboard__dashboard_system}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__db → generated/cfg_accounts/cfg_accounts__endpoints}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__endpoints → generated/cfg_accounts/cfg_accounts__endpoints}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__endpoints → generated/cfg_accounts/cfg_accounts__grpc__grpc_api_keys}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__grpc__grpc_api_keys → generated/cfg_accounts/cfg_accounts__grpc__grpc_api_keys}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__grpc__grpc_api_keys → generated/cfg_accounts/cfg_accounts__grpc__grpc_configuration}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__grpc__grpc_configuration → generated/cfg_accounts/cfg_accounts__grpc__grpc_configuration}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__grpc__grpc_configuration → generated/cfg_accounts/cfg_accounts__grpc__grpc_monitoring}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__grpc__grpc_monitoring → generated/cfg_accounts/cfg_accounts__grpc__grpc_monitoring}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__grpc__grpc_monitoring → generated/cfg_accounts/cfg_accounts__grpc__grpc_services}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__grpc__grpc_services → generated/cfg_accounts/cfg_accounts__grpc__grpc_services}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__grpc__grpc_services → generated/cfg_accounts/cfg_accounts__health}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__health → generated/cfg_accounts/cfg_accounts__health}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__health → generated/cfg_accounts/cfg_accounts__rq__rq_jobs}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__rq__rq_jobs → generated/cfg_accounts/cfg_accounts__rq__rq_jobs}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__knowbase → generated/cfg_accounts/cfg_accounts__rq__rq_monitoring}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__rq__rq_monitoring → generated/cfg_accounts/cfg_accounts__rq__rq_monitoring}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__leads → generated/cfg_accounts/cfg_accounts__rq__rq_queues}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__rq__rq_queues → generated/cfg_accounts/cfg_accounts__rq__rq_queues}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__leads__lead_submission → generated/cfg_accounts/cfg_accounts__rq__rq_registries}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__rq__rq_registries → generated/cfg_accounts/cfg_accounts__rq__rq_registries}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__newsletter → generated/cfg_accounts/cfg_accounts__rq__rq_schedules}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__rq__rq_schedules → generated/cfg_accounts/cfg_accounts__rq__rq_schedules}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__newsletter__bulk_email → generated/cfg_accounts/cfg_accounts__rq__rq_testing}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__rq__rq_testing → generated/cfg_accounts/cfg_accounts__rq__rq_testing}/models.ts +0 -0
- /package/src/{cfg/generated/cfg__newsletter__campaigns → generated/cfg_accounts/cfg_accounts__rq__rq_workers}/index.ts +0 -0
- /package/src/{cfg/generated/cfg__rq__rq_workers → generated/cfg_accounts/cfg_accounts__rq__rq_workers}/models.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/errors.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/http.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/logger.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/retry.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/storage.ts +0 -0
- /package/src/{cfg/generated → generated/cfg_accounts}/validation-events.ts +0 -0
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
4
|
+
|
|
5
|
+
import { useAuth } from '../context';
|
|
6
|
+
import { useAutoAuth } from './useAutoAuth';
|
|
7
|
+
import { useLocalStorage } from './useLocalStorage';
|
|
8
|
+
import { authLogger } from '../utils/logger';
|
|
9
|
+
|
|
10
|
+
export interface AuthFormState {
|
|
11
|
+
identifier: string; // Email or phone number
|
|
12
|
+
channel: 'email' | 'phone';
|
|
13
|
+
otp: string;
|
|
14
|
+
isLoading: boolean;
|
|
15
|
+
acceptedTerms: boolean;
|
|
16
|
+
step: 'identifier' | 'otp';
|
|
17
|
+
error: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface AuthFormHandlers {
|
|
21
|
+
setIdentifier: (identifier: string) => void;
|
|
22
|
+
setChannel: (channel: 'email' | 'phone') => void;
|
|
23
|
+
setOtp: (otp: string) => void;
|
|
24
|
+
setAcceptedTerms: (accepted: boolean) => void;
|
|
25
|
+
setError: (error: string) => void;
|
|
26
|
+
clearError: () => void;
|
|
27
|
+
handleIdentifierSubmit: (e: React.FormEvent) => Promise<void>;
|
|
28
|
+
handleOTPSubmit: (e: React.FormEvent) => Promise<void>;
|
|
29
|
+
handleResendOTP: () => Promise<void>;
|
|
30
|
+
handleBackToIdentifier: () => void;
|
|
31
|
+
forceOTPStep: () => void;
|
|
32
|
+
// Utility methods
|
|
33
|
+
detectChannelFromIdentifier: (identifier: string) => 'email' | 'phone' | null;
|
|
34
|
+
validateIdentifier: (identifier: string, channel?: 'email' | 'phone') => boolean;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface UseAuthFormOptions {
|
|
38
|
+
onIdentifierSuccess?: (identifier: string, channel: 'email' | 'phone') => void;
|
|
39
|
+
onOTPSuccess?: () => void;
|
|
40
|
+
onError?: (message: string) => void;
|
|
41
|
+
sourceUrl: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const useAuthForm = (options: UseAuthFormOptions): AuthFormState & AuthFormHandlers => {
|
|
45
|
+
const { onIdentifierSuccess, onOTPSuccess, onError, sourceUrl } = options;
|
|
46
|
+
|
|
47
|
+
// Form state
|
|
48
|
+
const [identifier, setIdentifier] = useState('');
|
|
49
|
+
const [channel, setChannel] = useState<'email' | 'phone'>('email');
|
|
50
|
+
const [otp, setOtp] = useState('');
|
|
51
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
52
|
+
const [acceptedTerms, setAcceptedTerms] = useState(false);
|
|
53
|
+
const [step, setStep] = useState<'identifier' | 'otp'>('identifier');
|
|
54
|
+
const [error, setError] = useState('');
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
// Auth hooks
|
|
59
|
+
const { requestOTP, verifyOTP, getSavedEmail, saveEmail, getSavedPhone, savePhone } = useAuth();
|
|
60
|
+
const [savedTermsAccepted, setSavedTermsAccepted] = useLocalStorage('auth_terms_accepted', false);
|
|
61
|
+
const [savedEmail, setSavedEmail] = useLocalStorage('auth_email', '');
|
|
62
|
+
const [savedPhone, setSavedPhone] = useLocalStorage('auth_phone', '');
|
|
63
|
+
|
|
64
|
+
// Utility functions
|
|
65
|
+
const detectChannelFromIdentifier = useCallback((identifier: string): 'email' | 'phone' | null => {
|
|
66
|
+
if (!identifier) return null;
|
|
67
|
+
|
|
68
|
+
// Email detection
|
|
69
|
+
if (identifier.includes('@')) {
|
|
70
|
+
return 'email';
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Phone detection (starts with + and contains digits)
|
|
74
|
+
if (identifier.startsWith('+') && /^\+[1-9]\d{6,14}$/.test(identifier)) {
|
|
75
|
+
return 'phone';
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return null;
|
|
79
|
+
}, []);
|
|
80
|
+
|
|
81
|
+
const validateIdentifier = useCallback((identifier: string, channelType?: 'email' | 'phone'): boolean => {
|
|
82
|
+
if (!identifier) return false;
|
|
83
|
+
|
|
84
|
+
const detectedChannel = channelType || detectChannelFromIdentifier(identifier);
|
|
85
|
+
|
|
86
|
+
if (detectedChannel === 'email') {
|
|
87
|
+
// Basic email validation
|
|
88
|
+
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(identifier);
|
|
89
|
+
} else if (detectedChannel === 'phone') {
|
|
90
|
+
// E.164 phone validation
|
|
91
|
+
return /^\+[1-9]\d{6,14}$/.test(identifier);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return false;
|
|
95
|
+
}, [detectChannelFromIdentifier]);
|
|
96
|
+
|
|
97
|
+
// Load saved data on mount
|
|
98
|
+
useEffect(() => {
|
|
99
|
+
const authSavedEmail = getSavedEmail();
|
|
100
|
+
const authSavedPhone = getSavedPhone();
|
|
101
|
+
|
|
102
|
+
// Prioritize phone over email if both exist
|
|
103
|
+
if (authSavedPhone) {
|
|
104
|
+
setIdentifier(authSavedPhone);
|
|
105
|
+
setChannel('phone');
|
|
106
|
+
} else if (authSavedEmail) {
|
|
107
|
+
setIdentifier(authSavedEmail);
|
|
108
|
+
setChannel('email');
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (savedTermsAccepted) {
|
|
112
|
+
setAcceptedTerms(savedTermsAccepted);
|
|
113
|
+
}
|
|
114
|
+
}, [getSavedEmail, getSavedPhone, savedTermsAccepted]);
|
|
115
|
+
|
|
116
|
+
// Auto-detect channel when identifier changes
|
|
117
|
+
useEffect(() => {
|
|
118
|
+
if (identifier) {
|
|
119
|
+
const detectedChannel = detectChannelFromIdentifier(identifier);
|
|
120
|
+
if (detectedChannel && detectedChannel !== channel) {
|
|
121
|
+
setChannel(detectedChannel);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}, [identifier, channel, detectChannelFromIdentifier]);
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
const clearError = useCallback(() => setError(''), []);
|
|
129
|
+
|
|
130
|
+
const handleIdentifierSubmit = useCallback(async (e: React.FormEvent) => {
|
|
131
|
+
e.preventDefault();
|
|
132
|
+
|
|
133
|
+
if (!identifier) {
|
|
134
|
+
const message = channel === 'phone' ? 'Please enter your phone number' : 'Please enter your email address';
|
|
135
|
+
setError(message);
|
|
136
|
+
onError?.(message);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Validate identifier format
|
|
141
|
+
if (!validateIdentifier(identifier, channel)) {
|
|
142
|
+
const message = channel === 'phone'
|
|
143
|
+
? 'Please enter a valid phone number (e.g., +1234567890)'
|
|
144
|
+
: 'Please enter a valid email address';
|
|
145
|
+
setError(message);
|
|
146
|
+
onError?.(message);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if (!acceptedTerms) {
|
|
151
|
+
const message = 'Please accept the Terms of Service and Privacy Policy';
|
|
152
|
+
setError(message);
|
|
153
|
+
onError?.(message);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
setIsLoading(true);
|
|
158
|
+
clearError();
|
|
159
|
+
|
|
160
|
+
try {
|
|
161
|
+
const result = await requestOTP(identifier, channel, sourceUrl);
|
|
162
|
+
|
|
163
|
+
if (result.success) {
|
|
164
|
+
// Save identifier and terms acceptance on successful request, clear opposite channel
|
|
165
|
+
if (channel === 'email') {
|
|
166
|
+
saveEmail(identifier);
|
|
167
|
+
setSavedPhone(''); // Clear phone storage
|
|
168
|
+
} else if (channel === 'phone') {
|
|
169
|
+
savePhone(identifier);
|
|
170
|
+
setSavedEmail(''); // Clear email storage
|
|
171
|
+
}
|
|
172
|
+
setSavedTermsAccepted(true);
|
|
173
|
+
setStep('otp');
|
|
174
|
+
onIdentifierSuccess?.(identifier, channel);
|
|
175
|
+
} else {
|
|
176
|
+
setError(result.message);
|
|
177
|
+
onError?.(result.message);
|
|
178
|
+
}
|
|
179
|
+
} catch (error) {
|
|
180
|
+
const message = 'An unexpected error occurred';
|
|
181
|
+
setError(message);
|
|
182
|
+
onError?.(message);
|
|
183
|
+
} finally {
|
|
184
|
+
setIsLoading(false);
|
|
185
|
+
}
|
|
186
|
+
}, [identifier, channel, acceptedTerms, validateIdentifier, requestOTP, saveEmail, clearError, setSavedTermsAccepted, onIdentifierSuccess, onError, sourceUrl]);
|
|
187
|
+
|
|
188
|
+
const handleOTPSubmit = useCallback(async (e: React.FormEvent) => {
|
|
189
|
+
e.preventDefault();
|
|
190
|
+
|
|
191
|
+
if (!otp || otp.length < 6) {
|
|
192
|
+
const message = 'Please enter the 6-digit verification code';
|
|
193
|
+
setError(message);
|
|
194
|
+
onError?.(message);
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
setIsLoading(true);
|
|
199
|
+
clearError();
|
|
200
|
+
|
|
201
|
+
try {
|
|
202
|
+
const result = await verifyOTP(identifier, otp, channel, sourceUrl);
|
|
203
|
+
|
|
204
|
+
if (result.success) {
|
|
205
|
+
// Save identifier on successful login, clear opposite channel
|
|
206
|
+
if (channel === 'email') {
|
|
207
|
+
setSavedEmail(identifier);
|
|
208
|
+
setSavedPhone(''); // Clear phone storage
|
|
209
|
+
} else if (channel === 'phone') {
|
|
210
|
+
setSavedPhone(identifier);
|
|
211
|
+
setSavedEmail(''); // Clear email storage
|
|
212
|
+
}
|
|
213
|
+
onOTPSuccess?.();
|
|
214
|
+
} else {
|
|
215
|
+
setError(result.message);
|
|
216
|
+
onError?.(result.message);
|
|
217
|
+
}
|
|
218
|
+
} catch (error) {
|
|
219
|
+
const message = 'An unexpected error occurred';
|
|
220
|
+
setError(message);
|
|
221
|
+
onError?.(message);
|
|
222
|
+
} finally {
|
|
223
|
+
setIsLoading(false);
|
|
224
|
+
}
|
|
225
|
+
}, [identifier, otp, channel, verifyOTP, clearError, setSavedEmail, onOTPSuccess, onError, sourceUrl]);
|
|
226
|
+
|
|
227
|
+
const handleResendOTP = useCallback(async () => {
|
|
228
|
+
setIsLoading(true);
|
|
229
|
+
clearError();
|
|
230
|
+
|
|
231
|
+
try {
|
|
232
|
+
const result = await requestOTP(identifier, channel, sourceUrl);
|
|
233
|
+
|
|
234
|
+
if (result.success) {
|
|
235
|
+
// Save identifier and clear OTP input, clear opposite channel
|
|
236
|
+
if (channel === 'email') {
|
|
237
|
+
saveEmail(identifier);
|
|
238
|
+
setSavedPhone(''); // Clear phone storage
|
|
239
|
+
} else if (channel === 'phone') {
|
|
240
|
+
savePhone(identifier);
|
|
241
|
+
setSavedEmail(''); // Clear email storage
|
|
242
|
+
}
|
|
243
|
+
setOtp('');
|
|
244
|
+
} else {
|
|
245
|
+
setError(result.message);
|
|
246
|
+
onError?.(result.message);
|
|
247
|
+
}
|
|
248
|
+
} catch (error) {
|
|
249
|
+
const message = 'Failed to resend verification code';
|
|
250
|
+
setError(message);
|
|
251
|
+
onError?.(message);
|
|
252
|
+
} finally {
|
|
253
|
+
setIsLoading(false);
|
|
254
|
+
}
|
|
255
|
+
}, [identifier, channel, requestOTP, saveEmail, clearError, setOtp, onError, sourceUrl]);
|
|
256
|
+
|
|
257
|
+
const handleBackToIdentifier = useCallback(() => {
|
|
258
|
+
setStep('identifier');
|
|
259
|
+
clearError();
|
|
260
|
+
}, [clearError]);
|
|
261
|
+
|
|
262
|
+
const forceOTPStep = useCallback(() => {
|
|
263
|
+
setStep('otp');
|
|
264
|
+
clearError();
|
|
265
|
+
}, [clearError]);
|
|
266
|
+
|
|
267
|
+
const handleAcceptedTermsChange = useCallback((checked: boolean) => {
|
|
268
|
+
setAcceptedTerms(checked);
|
|
269
|
+
setSavedTermsAccepted(checked);
|
|
270
|
+
}, [setSavedTermsAccepted]);
|
|
271
|
+
|
|
272
|
+
// Auto-detect OTP from URL query parameters
|
|
273
|
+
useAutoAuth({
|
|
274
|
+
onOTPDetected: (otp: string) => {
|
|
275
|
+
authLogger.info('OTP detected, auto-submitting');
|
|
276
|
+
|
|
277
|
+
// Get saved identifier from auth context
|
|
278
|
+
const savedEmail = getSavedEmail();
|
|
279
|
+
const savedPhone = getSavedPhone();
|
|
280
|
+
|
|
281
|
+
// Prioritize phone over email if both exist
|
|
282
|
+
if (savedPhone) {
|
|
283
|
+
setIdentifier(savedPhone);
|
|
284
|
+
setChannel('phone');
|
|
285
|
+
} else if (savedEmail) {
|
|
286
|
+
setIdentifier(savedEmail);
|
|
287
|
+
setChannel('email');
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
// Set OTP and force OTP step
|
|
291
|
+
setOtp(otp);
|
|
292
|
+
setStep('otp');
|
|
293
|
+
|
|
294
|
+
// Auto-submit after a short delay to ensure state is updated
|
|
295
|
+
setTimeout(() => {
|
|
296
|
+
const fakeEvent = { preventDefault: () => {} } as React.FormEvent;
|
|
297
|
+
handleOTPSubmit(fakeEvent);
|
|
298
|
+
}, 200);
|
|
299
|
+
},
|
|
300
|
+
cleanupUrl: true,
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
return {
|
|
304
|
+
// Form state
|
|
305
|
+
identifier,
|
|
306
|
+
channel,
|
|
307
|
+
otp,
|
|
308
|
+
isLoading,
|
|
309
|
+
acceptedTerms,
|
|
310
|
+
step,
|
|
311
|
+
error,
|
|
312
|
+
|
|
313
|
+
// Form handlers
|
|
314
|
+
setIdentifier,
|
|
315
|
+
setChannel,
|
|
316
|
+
setOtp,
|
|
317
|
+
setAcceptedTerms: handleAcceptedTermsChange,
|
|
318
|
+
setError,
|
|
319
|
+
clearError,
|
|
320
|
+
|
|
321
|
+
// Auth handlers
|
|
322
|
+
handleIdentifierSubmit,
|
|
323
|
+
handleOTPSubmit,
|
|
324
|
+
handleResendOTP,
|
|
325
|
+
handleBackToIdentifier,
|
|
326
|
+
forceOTPStep,
|
|
327
|
+
|
|
328
|
+
// Utility methods
|
|
329
|
+
detectChannelFromIdentifier,
|
|
330
|
+
validateIdentifier,
|
|
331
|
+
};
|
|
332
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import { useEffect } from 'react';
|
|
4
|
+
|
|
5
|
+
import { useAuth } from '../context';
|
|
6
|
+
import { useCfgRouter } from '@djangocfg/ui-nextjs/hooks';
|
|
7
|
+
|
|
8
|
+
interface UseAuthGuardOptions {
|
|
9
|
+
redirectTo?: string;
|
|
10
|
+
requireAuth?: boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const useAuthGuard = (options: UseAuthGuardOptions = {}) => {
|
|
14
|
+
const { redirectTo = '/auth', requireAuth = true } = options;
|
|
15
|
+
const { isAuthenticated, isLoading } = useAuth();
|
|
16
|
+
const router = useCfgRouter();
|
|
17
|
+
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (!isLoading && requireAuth && !isAuthenticated) {
|
|
20
|
+
router.push(redirectTo);
|
|
21
|
+
}
|
|
22
|
+
}, [isAuthenticated, isLoading, router, redirectTo, requireAuth]);
|
|
23
|
+
|
|
24
|
+
return { isAuthenticated, isLoading };
|
|
25
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { useSessionStorage } from './useSessionStorage';
|
|
2
|
+
|
|
3
|
+
const AUTH_REDIRECT_KEY = 'auth_redirect_url';
|
|
4
|
+
|
|
5
|
+
export interface AuthRedirectOptions {
|
|
6
|
+
fallbackUrl?: string;
|
|
7
|
+
clearOnUse?: boolean;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const useAuthRedirectManager = (options: AuthRedirectOptions = {}) => {
|
|
11
|
+
const { fallbackUrl = '/dashboard', clearOnUse = true } = options;
|
|
12
|
+
const [redirectUrl, setRedirectUrl, removeRedirectUrl] = useSessionStorage<string>(AUTH_REDIRECT_KEY, '');
|
|
13
|
+
|
|
14
|
+
const setRedirect = (url: string) => {
|
|
15
|
+
setRedirectUrl(url);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const getRedirect = () => {
|
|
19
|
+
return redirectUrl;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const clearRedirect = () => {
|
|
23
|
+
removeRedirectUrl();
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const hasRedirect = () => {
|
|
27
|
+
return redirectUrl.length > 0;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const getFinalRedirectUrl = () => {
|
|
31
|
+
return redirectUrl || fallbackUrl;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const useAndClearRedirect = () => {
|
|
35
|
+
const finalUrl = getFinalRedirectUrl();
|
|
36
|
+
if (clearOnUse) {
|
|
37
|
+
clearRedirect();
|
|
38
|
+
}
|
|
39
|
+
return finalUrl;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
redirectUrl,
|
|
44
|
+
setRedirect,
|
|
45
|
+
getRedirect,
|
|
46
|
+
clearRedirect,
|
|
47
|
+
hasRedirect,
|
|
48
|
+
getFinalRedirectUrl,
|
|
49
|
+
useAndClearRedirect
|
|
50
|
+
};
|
|
51
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useEffect } from 'react';
|
|
4
|
+
import { usePathname } from 'next/navigation';
|
|
5
|
+
import { useQueryParams, useCfgRouter } from '@djangocfg/ui-nextjs/hooks';
|
|
6
|
+
import { authLogger } from '../utils/logger';
|
|
7
|
+
|
|
8
|
+
export interface UseAutoAuthOptions {
|
|
9
|
+
onOTPDetected?: (otp: string) => void;
|
|
10
|
+
cleanupUrl?: boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Hook for automatic authentication from URL query parameters
|
|
15
|
+
* Detects OTP from URL and triggers callback
|
|
16
|
+
*/
|
|
17
|
+
export const useAutoAuth = (options: UseAutoAuthOptions = {}) => {
|
|
18
|
+
const { onOTPDetected, cleanupUrl = true } = options;
|
|
19
|
+
const queryParams = useQueryParams();
|
|
20
|
+
const pathname = usePathname();
|
|
21
|
+
const router = useCfgRouter();
|
|
22
|
+
|
|
23
|
+
const isReady = !!pathname && !!queryParams.get('otp');
|
|
24
|
+
const hasOTP = !!(queryParams.get('otp'));
|
|
25
|
+
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (!isReady) return;
|
|
28
|
+
|
|
29
|
+
const queryOtp = queryParams.get('otp') as string;
|
|
30
|
+
|
|
31
|
+
// Handle OTP detection
|
|
32
|
+
if (queryOtp && typeof queryOtp === 'string' && queryOtp.length === 6) {
|
|
33
|
+
authLogger.info('OTP detected in URL:', queryOtp);
|
|
34
|
+
onOTPDetected?.(queryOtp);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Clean up URL to remove sensitive params for security
|
|
38
|
+
if (cleanupUrl && queryOtp) {
|
|
39
|
+
const cleanQuery = Object.fromEntries(queryParams.entries());
|
|
40
|
+
delete cleanQuery.otp;
|
|
41
|
+
router.push(`${pathname}?${new URLSearchParams(cleanQuery).toString()}`);
|
|
42
|
+
}
|
|
43
|
+
}, [pathname, queryParams, onOTPDetected, cleanupUrl, router]);
|
|
44
|
+
|
|
45
|
+
return {
|
|
46
|
+
isReady,
|
|
47
|
+
hasOTP,
|
|
48
|
+
};
|
|
49
|
+
};
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useCallback, useState } from 'react';
|
|
4
|
+
|
|
5
|
+
import { api as apiAccounts } from '../../';
|
|
6
|
+
import { useCfgRouter } from '@djangocfg/ui-nextjs/hooks';
|
|
7
|
+
import { authLogger } from '../utils/logger';
|
|
8
|
+
import { Analytics, AnalyticsEvent, AnalyticsCategory } from '../utils/analytics';
|
|
9
|
+
|
|
10
|
+
export interface UseGithubAuthOptions {
|
|
11
|
+
sourceUrl?: string;
|
|
12
|
+
onSuccess?: (user: any, isNewUser: boolean) => void;
|
|
13
|
+
onError?: (error: string) => void;
|
|
14
|
+
redirectUrl?: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface UseGithubAuthReturn {
|
|
18
|
+
isLoading: boolean;
|
|
19
|
+
error: string | null;
|
|
20
|
+
startGithubAuth: () => Promise<void>;
|
|
21
|
+
handleGithubCallback: (code: string, state: string) => Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Hook for GitHub OAuth authentication flow.
|
|
26
|
+
*
|
|
27
|
+
* Usage:
|
|
28
|
+
* 1. Call startGithubAuth() to redirect user to GitHub
|
|
29
|
+
* 2. After GitHub redirects back, call handleGithubCallback(code, state)
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* const { isLoading, error, startGithubAuth } = useGithubAuth({
|
|
34
|
+
* onSuccess: (user) => router.push('/dashboard'),
|
|
35
|
+
* onError: (error) => console.error(error),
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* <Button onClick={startGithubAuth} disabled={isLoading}>
|
|
39
|
+
* Continue with GitHub
|
|
40
|
+
* </Button>
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export const useGithubAuth = (options: UseGithubAuthOptions = {}): UseGithubAuthReturn => {
|
|
44
|
+
const { sourceUrl, onSuccess, onError, redirectUrl } = options;
|
|
45
|
+
const router = useCfgRouter();
|
|
46
|
+
|
|
47
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
48
|
+
const [error, setError] = useState<string | null>(null);
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Start GitHub OAuth flow - redirects user to GitHub authorization page.
|
|
52
|
+
*/
|
|
53
|
+
const startGithubAuth = useCallback(async () => {
|
|
54
|
+
setIsLoading(true);
|
|
55
|
+
setError(null);
|
|
56
|
+
|
|
57
|
+
try {
|
|
58
|
+
authLogger.info('Starting GitHub OAuth flow...');
|
|
59
|
+
|
|
60
|
+
// Track OAuth start
|
|
61
|
+
Analytics.event(AnalyticsEvent.AUTH_OAUTH_START, {
|
|
62
|
+
category: AnalyticsCategory.AUTH,
|
|
63
|
+
label: 'github',
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
// Call API to get authorization URL
|
|
67
|
+
// The API will auto-generate redirect_uri from config if not provided
|
|
68
|
+
const response = await apiAccounts.cfg_accounts_oauth.accountsOauthGithubAuthorizeCreate({
|
|
69
|
+
source_url: sourceUrl || (typeof window !== 'undefined' ? window.location.href : ''),
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
if (!response.authorization_url) {
|
|
73
|
+
throw new Error('Failed to get authorization URL');
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
authLogger.info('Redirecting to GitHub...', response.authorization_url);
|
|
77
|
+
|
|
78
|
+
// Store state in sessionStorage for verification on callback
|
|
79
|
+
if (typeof window !== 'undefined') {
|
|
80
|
+
sessionStorage.setItem('oauth_state', response.state);
|
|
81
|
+
sessionStorage.setItem('oauth_provider', 'github');
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Redirect to GitHub
|
|
85
|
+
window.location.href = response.authorization_url;
|
|
86
|
+
|
|
87
|
+
} catch (err) {
|
|
88
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to start GitHub authentication';
|
|
89
|
+
authLogger.error('GitHub OAuth start error:', err);
|
|
90
|
+
setError(errorMessage);
|
|
91
|
+
onError?.(errorMessage);
|
|
92
|
+
|
|
93
|
+
// Track OAuth error
|
|
94
|
+
Analytics.event(AnalyticsEvent.AUTH_OAUTH_FAIL, {
|
|
95
|
+
category: AnalyticsCategory.AUTH,
|
|
96
|
+
label: 'github',
|
|
97
|
+
});
|
|
98
|
+
} finally {
|
|
99
|
+
setIsLoading(false);
|
|
100
|
+
}
|
|
101
|
+
}, [sourceUrl, onError]);
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Handle GitHub OAuth callback - exchanges code for JWT tokens.
|
|
105
|
+
*
|
|
106
|
+
* @param code - Authorization code from GitHub callback
|
|
107
|
+
* @param state - State token for CSRF verification
|
|
108
|
+
*/
|
|
109
|
+
const handleGithubCallback = useCallback(async (code: string, state: string) => {
|
|
110
|
+
setIsLoading(true);
|
|
111
|
+
setError(null);
|
|
112
|
+
|
|
113
|
+
try {
|
|
114
|
+
authLogger.info('Processing GitHub OAuth callback...');
|
|
115
|
+
|
|
116
|
+
// Verify state matches what we stored
|
|
117
|
+
if (typeof window !== 'undefined') {
|
|
118
|
+
const storedState = sessionStorage.getItem('oauth_state');
|
|
119
|
+
if (storedState && storedState !== state) {
|
|
120
|
+
throw new Error('Invalid OAuth state - possible CSRF attack');
|
|
121
|
+
}
|
|
122
|
+
// Clear stored state
|
|
123
|
+
sessionStorage.removeItem('oauth_state');
|
|
124
|
+
sessionStorage.removeItem('oauth_provider');
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Exchange code for tokens
|
|
128
|
+
// The API will auto-generate redirect_uri from config if not provided
|
|
129
|
+
const response = await apiAccounts.cfg_accounts_oauth.accountsOauthGithubCallbackCreate({
|
|
130
|
+
code,
|
|
131
|
+
state,
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
if (!response.access || !response.refresh) {
|
|
135
|
+
throw new Error('Invalid response from OAuth callback');
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
authLogger.info('GitHub OAuth successful, user:', response.user);
|
|
139
|
+
|
|
140
|
+
// Save tokens using API client
|
|
141
|
+
apiAccounts.setToken(response.access, response.refresh);
|
|
142
|
+
|
|
143
|
+
// Track successful OAuth
|
|
144
|
+
Analytics.event(AnalyticsEvent.AUTH_LOGIN_SUCCESS, {
|
|
145
|
+
category: AnalyticsCategory.AUTH,
|
|
146
|
+
label: 'github',
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
// Set user ID for future tracking
|
|
150
|
+
if (response.user?.id) {
|
|
151
|
+
Analytics.setUser(String(response.user.id));
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// Call success callback
|
|
155
|
+
onSuccess?.(response.user, response.is_new_user || false);
|
|
156
|
+
|
|
157
|
+
// Redirect to dashboard or specified URL
|
|
158
|
+
// Use hardPush for full page reload - ensures all React contexts reinitialize
|
|
159
|
+
const finalRedirectUrl = redirectUrl || '/dashboard';
|
|
160
|
+
router.hardPush(finalRedirectUrl);
|
|
161
|
+
|
|
162
|
+
} catch (err) {
|
|
163
|
+
const errorMessage = err instanceof Error ? err.message : 'GitHub authentication failed';
|
|
164
|
+
authLogger.error('GitHub OAuth callback error:', err);
|
|
165
|
+
setError(errorMessage);
|
|
166
|
+
onError?.(errorMessage);
|
|
167
|
+
|
|
168
|
+
// Track OAuth error
|
|
169
|
+
Analytics.event(AnalyticsEvent.AUTH_OAUTH_FAIL, {
|
|
170
|
+
category: AnalyticsCategory.AUTH,
|
|
171
|
+
label: 'github',
|
|
172
|
+
});
|
|
173
|
+
} finally {
|
|
174
|
+
setIsLoading(false);
|
|
175
|
+
}
|
|
176
|
+
}, [onSuccess, onError, redirectUrl, router]);
|
|
177
|
+
|
|
178
|
+
return {
|
|
179
|
+
isLoading,
|
|
180
|
+
error,
|
|
181
|
+
startGithubAuth,
|
|
182
|
+
handleGithubCallback,
|
|
183
|
+
};
|
|
184
|
+
};
|