// ==============================================
// AuthPlugin.jslib - WebGL JavaScript Bridge
// ==============================================
// Place in Assets/Plugins/WebGL/

mergeInto(LibraryManager.library, {

    // Get token from URL parameter (?token=xxx)
    GetTokenFromURL: function() {
        var urlParams = new URLSearchParams(window.location.search);
        var token = urlParams.get('token');
        if (token) {
            var bufferSize = lengthBytesUTF8(token) + 1;
            var buffer = _malloc(bufferSize);
            stringToUTF8(token, buffer, bufferSize);
            return buffer;
        }
        return null;
    },

    // Get token from parent frame (for iframe embedding)
    GetTokenFromParent: function() {
        if (window.breakpilotToken) {
            var token = window.breakpilotToken;
            var bufferSize = lengthBytesUTF8(token) + 1;
            var buffer = _malloc(bufferSize);
            stringToUTF8(token, buffer, bufferSize);
            return buffer;
        }
        return null;
    },

    // Request token from parent frame via postMessage
    RequestTokenFromParent: function() {
        // Listen for token from parent
        window.addEventListener('message', function(event) {
            // Verify origin in production!
            if (event.data && event.data.type === 'breakpilot_token') {
                window.breakpilotToken = event.data.token;

                // Send to Unity
                if (window.unityInstance) {
                    window.unityInstance.SendMessage('AuthManager', 'ReceiveTokenFromJS', event.data.token);
                }
            }
        }, false);

        // Request token from parent
        if (window.parent !== window) {
            window.parent.postMessage({ type: 'breakpilot_request_token' }, '*');
        }
    }

});
