{
  "version": 3,
  "sources": ["../src/social-auth.js"],
  "sourcesContent": ["/**\n * Social Auth \u2014 Alpine.js component + SDK initializers\n * Used in: templates/account/login.html, templates/account/signup.html, templates/users/settings.html\n *\n * Handles:\n * - VK ID SDK OneTap widget (VK + Mail.ru + OK.ru)\n * - Yandex Suggest Widget (one-click popup)\n * - MAX Messenger auth (Alpine.js polling flow)\n */\n\n/**\n * Submit VK access token to backend via hidden form POST.\n * Analogous to submitYandexAccessToken().\n */\nfunction submitVkAccessToken(accessToken) {\n    var config = window.SOCIAL_AUTH_CONFIG || {};\n    var callbackUrl = config.vkCallbackUrl || '/accounts/vk/sdk-callback/';\n    var csrfToken = config.csrfToken || getCookie('csrftoken');\n\n    var form = document.createElement('form');\n    form.method = 'POST';\n    form.action = callbackUrl;\n\n    var csrfInput = document.createElement('input');\n    csrfInput.type = 'hidden';\n    csrfInput.name = 'csrfmiddlewaretoken';\n    csrfInput.value = csrfToken;\n\n    var tokenInput = document.createElement('input');\n    tokenInput.type = 'hidden';\n    tokenInput.name = 'access_token';\n    tokenInput.value = accessToken;\n\n    form.appendChild(csrfInput);\n    form.appendChild(tokenInput);\n\n    // Connect mode: attach social account to current user (not login)\n    if (config.connectMode) {\n        var processInput = document.createElement('input');\n        processInput.type = 'hidden';\n        processInput.name = 'process';\n        processInput.value = 'connect';\n        form.appendChild(processInput);\n    }\n\n    document.body.appendChild(form);\n    form.submit();\n}\n\n/**\n * Exchange VK auth code for access token via SDK (handles PKCE),\n * then submit the token to backend.\n */\nfunction handleVkAuthCode(code, deviceId) {\n    var VKID = VKIDSDK;\n    VKID.Auth.exchangeCode(code, deviceId)\n        .then(function (tokenData) {\n            if (tokenData && tokenData.access_token) {\n                submitVkAccessToken(tokenData.access_token);\n            } else {\n                console.warn('[Social Auth] VK exchangeCode returned no access_token');\n                window.location.href = '/accounts/login/?error=vk_token_exchange_failed';\n            }\n        })\n        .catch(function (err) {\n            console.warn('[Social Auth] VK exchangeCode failed:', err);\n            window.location.href = '/accounts/login/?error=vk_token_exchange_failed';\n        });\n}\n\n/**\n * VK ID SDK \u2014 OneTap widget with Mail.ru + OK.ru alternative login.\n * Renders a one-click VK login button with social provider list below.\n */\nfunction initVkIdSdk() {\n    const config = window.SOCIAL_AUTH_CONFIG || {};\n    const appId = config.vkAppId;\n    const container = document.getElementById('vk-id-container');\n\n    if (!appId || !container || typeof VKIDSDK === 'undefined') {\n        return;\n    }\n\n    try {\n        const VKID = VKIDSDK;\n\n        VKID.Config.init({\n            app: parseInt(appId, 10),\n            redirectUrl: window.location.origin + '/accounts/vk/login/callback/',\n            responseMode: VKID.ConfigResponseMode.Callback,\n            source: VKID.ConfigSource.LOWCODE,\n            scope: 'vkid.personal_info email phone',\n        });\n\n        var oneTap = new VKID.OneTap();\n\n        oneTap.render({\n            container: container,\n            showAlternativeLogin: true,\n            oauthList: ['mail_ru', 'ok_ru'],\n            scheme: config.isDarkMode ? VKID.Scheme.DARK : VKID.Scheme.LIGHT,\n            lang: VKID.Languages.RUS,\n        }).on(VKID.WidgetEvents.ERROR, function () {\n            console.warn('[Social Auth] VK ID SDK widget error');\n        }).on(VKID.OneTapInternalEvents.LOGIN_SUCCESS, function (payload) {\n            handleVkAuthCode(payload.code, payload.device_id);\n        });\n    } catch (e) {\n        console.warn('[Social Auth] VK ID SDK init failed:', e);\n    }\n}\n\n/**\n * Initialize Yandex Suggest Widget.\n * Shows one-click popup if user has active Yandex session.\n */\nfunction getCookie(name) {\n    const value = `; ${document.cookie}`;\n    const parts = value.split(`; ${name}=`);\n    if (parts.length === 2) {\n        return parts.pop().split(';').shift();\n    }\n    return '';\n}\n\n/**\n * Submit Yandex access token to backend in current tab (recommended flow).\n * Avoids placing token in URL and keeps UX in the original tab.\n */\nfunction submitYandexAccessToken(accessToken) {\n    const config = window.SOCIAL_AUTH_CONFIG || {};\n    const callbackPath = config.yandexSuggestCallbackUrl || '/accounts/yandex/suggest-callback/';\n    const csrfToken = config.csrfToken || getCookie('csrftoken');\n\n    // Best effort fallback if CSRF token is unavailable.\n    if (!csrfToken) {\n        const params = { access_token: accessToken };\n        if (config.connectMode) {\n            params.process = 'connect';\n        }\n        const query = new URLSearchParams(params).toString();\n        window.location.href = callbackPath + '?' + query;\n        return;\n    }\n\n    const form = document.createElement('form');\n    form.method = 'POST';\n    form.action = callbackPath;\n\n    const csrfInput = document.createElement('input');\n    csrfInput.type = 'hidden';\n    csrfInput.name = 'csrfmiddlewaretoken';\n    csrfInput.value = csrfToken;\n\n    const tokenInput = document.createElement('input');\n    tokenInput.type = 'hidden';\n    tokenInput.name = 'access_token';\n    tokenInput.value = accessToken;\n\n    form.appendChild(csrfInput);\n    form.appendChild(tokenInput);\n\n    // Connect mode: attach social account to current user (not login)\n    if (config.connectMode) {\n        const processInput = document.createElement('input');\n        processInput.type = 'hidden';\n        processInput.name = 'process';\n        processInput.value = 'connect';\n        form.appendChild(processInput);\n    }\n\n    document.body.appendChild(form);\n    form.submit();\n}\n\nfunction initYandexSuggest() {\n    const config = window.SOCIAL_AUTH_CONFIG || {};\n    const clientId = config.yandexClientId;\n    const tokenPagePath = config.yandexSuggestTokenUrl || '/accounts/yandex/suggest-token/';\n    const container = document.getElementById('yandex-suggest-container');\n\n    if (!clientId || !container) {\n        return;\n    }\n\n    // Load Yandex Suggest script dynamically\n    const script = document.createElement('script');\n    script.src = 'https://yastatic.net/s3/passport-sdk/autofill/v1/sdk-suggest-with-polyfills-latest.js';\n    script.onload = function () {\n        try {\n            if (typeof YaAuthSuggest === 'undefined') {\n                return;\n            }\n            YaAuthSuggest.init(\n                {\n                    client_id: clientId,\n                    // Yandex recommended flow for Suggest: token + auxiliary token page.\n                    response_type: 'token',\n                    redirect_uri: window.location.origin + tokenPagePath,\n                },\n                window.location.origin,\n                {\n                    view: 'button',\n                    parentId: 'yandex-suggest-container',\n                    buttonSize: 'l',\n                    buttonView: 'main',\n                    buttonTheme: config.isDarkMode ? 'dark' : 'light',\n                    buttonBorderRadius: 8,\n                    buttonIcon: 'ya',\n                }\n            )\n                .then(function (result) {\n                    return result.handler();\n                })\n                .then(function (data) {\n                    if (!data || !data.access_token) {\n                        throw new Error('Yandex Suggest returned no access token');\n                    }\n                    submitYandexAccessToken(data.access_token);\n                })\n                .catch(function () {\n                    // Suggest failed (user not logged into Yandex) \u2014 widget stays hidden\n                });\n        } catch (e) {\n            console.warn('[Social Auth] Yandex Suggest init failed:', e);\n        }\n    };\n    script.onerror = function () {\n        console.warn('[Social Auth] Yandex Suggest script failed to load');\n    };\n    document.head.appendChild(script);\n}\n\n/**\n * Alpine.js component for MAX Messenger auth flow.\n * States: idle \u2192 loading \u2192 ready \u2192 polling \u2192 success / error\n */\nfunction maxAuthComponent() {\n    return {\n        open: false,\n        state: 'idle',\n        nonce: '',\n        deeplink: '',\n        errorMessage: '',\n        pollInterval: null,\n        pollCount: 0,\n        maxPolls: 60, // 60 * 2s = 2 min max\n        showHint: false,\n        hintThreshold: 10, // 10 * 2s = 20 seconds\n\n        isConnectMode() {\n            var config = window.SOCIAL_AUTH_CONFIG || {};\n            return !!config.connectMode;\n        },\n\n        startAuth() {\n            this.open = true;\n            this.state = 'loading';\n            this.errorMessage = '';\n            this.showHint = false;\n            this.stopPolling();\n\n            const config = window.SOCIAL_AUTH_CONFIG || {};\n\n            fetch(config.maxInitUrl, {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application/json',\n                    'X-CSRFToken': config.csrfToken,\n                },\n            })\n                .then(function (r) { return r.json(); })\n                .then(function (data) {\n                    this.nonce = data.nonce;\n                    this.deeplink = data.deeplink;\n                    this.state = 'ready';\n                }.bind(this))\n                .catch(function () {\n                    this.state = 'error';\n                    this.errorMessage = '\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043D\u0430\u0447\u0430\u0442\u044C \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u044E. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u043E\u0437\u0436\u0435.';\n                }.bind(this));\n        },\n\n        startPolling() {\n            this.state = 'polling';\n            this.pollCount = 0;\n            this.showHint = false;\n\n            var self = this;\n            var config = window.SOCIAL_AUTH_CONFIG || {};\n\n            this.pollInterval = setInterval(function () {\n                self.pollCount++;\n\n                if (self.pollCount >= self.hintThreshold && !self.showHint) {\n                    self.showHint = true;\n                }\n\n                if (self.pollCount >= self.maxPolls) {\n                    self.stopPolling();\n                    self.state = 'error';\n                    self.errorMessage = '\u0412\u0440\u0435\u043C\u044F \u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F \u0438\u0441\u0442\u0435\u043A\u043B\u043E. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430 \u2014 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u00AB\u041D\u0430\u0447\u0430\u0442\u044C\u00BB \u0432 \u0447\u0430\u0442\u0435 \u0441 \u0431\u043E\u0442\u043E\u043C.';\n                    return;\n                }\n\n                var pollUrl = config.maxPollUrlTemplate.replace('__NONCE__', self.nonce);\n\n                fetch(pollUrl)\n                    .then(function (r) { return r.json(); })\n                    .then(function (data) {\n                        if (data.status === 'completed') {\n                            self.stopPolling();\n                            self.state = 'success';\n                            var redirectUrl = data.redirect_url || (\n                                self.isConnectMode() ? '/users/settings/' : '/'\n                            );\n                            setTimeout(function () {\n                                window.location.href = redirectUrl;\n                            }, 1000);\n                        } else if (data.status === 'conflict') {\n                            self.stopPolling();\n                            self.state = 'error';\n                            self.errorMessage = data.error || '\u042D\u0442\u043E\u0442 \u0430\u043A\u043A\u0430\u0443\u043D\u0442 MAX \u0443\u0436\u0435 \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D \u043A \u0434\u0440\u0443\u0433\u043E\u043C\u0443 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.';\n                        } else if (data.status === 'expired' || data.status === 'not_found') {\n                            self.stopPolling();\n                            self.state = 'error';\n                            self.errorMessage = '\u0421\u0435\u0441\u0441\u0438\u044F \u0438\u0441\u0442\u0435\u043A\u043B\u0430. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430.';\n                        }\n                        // 'pending' \u2014 continue polling\n                    })\n                    .catch(function () {\n                        // Network error \u2014 keep polling\n                    });\n            }, 2000);\n        },\n\n        stopPolling() {\n            if (this.pollInterval) {\n                clearInterval(this.pollInterval);\n                this.pollInterval = null;\n            }\n        },\n\n        init() {\n            var params = new URLSearchParams(window.location.search);\n            if (params.get('connect_max') === '1') {\n                this.startAuth();\n            }\n        },\n\n        close() {\n            this.open = false;\n            this.stopPolling();\n            this.state = 'idle';\n        },\n    };\n}\n\n// Register Alpine.js component globally\nwindow.maxAuthComponent = maxAuthComponent;\n\n// Auto-init on DOMContentLoaded\ndocument.addEventListener('DOMContentLoaded', function () {\n    initVkIdSdk();\n    initYandexSuggest();\n});\n"],
  "mappings": "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",
  "names": ["submitVkAccessToken", "accessToken", "config", "callbackUrl", "csrfToken", "getCookie", "form", "csrfInput", "tokenInput", "processInput", "handleVkAuthCode", "code", "deviceId", "VKID", "tokenData", "err", "initVkIdSdk", "appId", "container", "oneTap", "payload", "e", "name", "parts", "submitYandexAccessToken", "callbackPath", "params", "query", "initYandexSuggest", "clientId", "tokenPagePath", "script", "result", "data", "maxAuthComponent", "r", "self", "pollUrl", "redirectUrl"]
}
