<?php

defined('ABSPATH') || exit;
require_once __DIR__ . '/includes/overrides/includes.php';
if (!function_exists('gv_define')) {
    function gv_define($constant_name, $value)
    {
        if (!defined($constant_name)) {
            return define($constant_name, $value);
        }
    }
}
define('GV_UPDATER_VERSION', '4.1.1');
define('GV_UPDATER_NAME', 'gplvault-updater');
define('GV_UPDATER_FILE', __FILE__);
define('GV_UPDATER_PATH', plugin_dir_path(__FILE__));
define('GV_UPDATER_SLUG', basename(plugin_dir_path(__FILE__)));
define('GV_UPDATER_STATIC_PATH', plugin_dir_path(__FILE__) . 'static/');
define('GV_UPDATER_STATIC_URL', plugin_dir_url(__FILE__) . 'static/');
gv_define('GV_UPDATER_API_URL', 'https://www.gplvault.com/');
gv_define('GPLVAULT_RENAME_PLUGINS', true);
$up_dir = wp_upload_dir();
gv_define('GV_UPDATER_LOG_DIR', $up_dir['basedir'] . '/gplvault-logs/');
if (!function_exists('is_network_only_plugin')) {
    require_once untrailingslashit(ABSPATH) . '/wp-admin/includes/plugin.php';
}
define('GV_UPDATER_NETWORK_ENABLED', is_network_only_plugin(plugin_basename(__FILE__)));
register_activation_hook(__FILE__, 'gplvault_updater_activate');
register_deactivation_hook(__FILE__, 'gplvault_updater_deactivate');
function gplvault_updater_activate()
{
    require_once GPLVault()->includes_path('/class-gplvault-activation.php');
    GPLVault_Updater_Activator::activate();
}
function gplvault_updater_deactivate()
{
    require_once GPLVault()->includes_path('/class-gplvault-deactivation.php');
    GPLVault_Updater_Deactivator::deactivate();
}
require GV_UPDATER_PATH . 'includes/class-gplvault-client.php';
function gv_is_rest_reuquest()
{
    if (empty($_SERVER['REQUEST_URI'])) {
        return false;
    }
    $rest_prefix = trailingslashit(rest_get_url_prefix());
    return false !== strpos($_SERVER['REQUEST_URI'], $rest_prefix);
}
function gv_deprecated_function($function, $version, $replacement = '')
{
    if (is_ajax() || gv_is_rest_reuquest()) {
        do_action('deprecated_function_run', $function, $replacement, $version);
        $log_string = "The {$function} function is deprecated since version {$version}.";
        $log_string .= $replacement ? " Replace with {$replacement}." : '';
        error_log($log_string);
    } else {
        _deprecated_function($function, $version, $replacement);
    }
}
function gv_updater_main()
{
    gv_deprecated_function(__FUNCTION__, '4.0.0-beta', 'GPLVault');
    return GPLVault();
}
function GPLVault()
{
    return GPLVault_Client::instance();
}
function gplvault_updater_init()
{
    GPLVault()->run();
}
gplvault_updater_init();