From 3478dccf2aac9cb7ccdc44c102d86ec4a95a3996 Mon Sep 17 00:00:00 2001 From: Sapayth Hossain Date: Thu, 18 May 2023 10:14:36 +0600 Subject: [PATCH 001/167] publish branch --- admin/class-admin-settings.php | 6 +- admin/form-template.php | 8 +- class/subscription.php | 2 +- composer.json | 8 + includes/Admin.php | 9 + includes/Admin/Menu.php | 32 +++ includes/Assets.php | 227 ++++++++++++++++++ wpuf.php | 419 +++++++++++---------------------- 8 files changed, 431 insertions(+), 280 deletions(-) create mode 100644 includes/Admin.php create mode 100644 includes/Admin/Menu.php create mode 100644 includes/Assets.php diff --git a/admin/class-admin-settings.php b/admin/class-admin-settings.php index db955c849..ca5841672 100644 --- a/admin/class-admin-settings.php +++ b/admin/class-admin-settings.php @@ -49,7 +49,7 @@ public function __construct() { add_filter( 'submenu_file', [ $this, 'fix_submenu_file' ] ); add_action( 'admin_init', [ $this, 'handle_tools_action' ] ); - add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_styles' ] ); + // add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_styles' ] ); add_filter( 'wp_handle_upload_prefilter', [ $this, 'enable_json_upload' ], 1 ); add_action( 'wp_ajax_wpuf_import_forms', [ $this, 'import_forms' ] ); @@ -485,8 +485,8 @@ public function enqueue_styles() { return; } - wp_enqueue_style( 'wpuf-admin', WPUF_ASSET_URI . '/css/admin.css', false, WPUF_VERSION ); - wp_enqueue_script( 'wpuf-admin-script', WPUF_ASSET_URI . '/js/wpuf-admin.js', [ 'jquery' ], WPUF_VERSION, false ); + // wp_enqueue_style( 'wpuf-admin', WPUF_ASSET_URI . '/css/admin.css', false, WPUF_VERSION ); + // wp_enqueue_script( 'wpuf-admin-script', WPUF_ASSET_URI . '/js/wpuf-admin.js', [ 'jquery' ], WPUF_VERSION, false ); wp_localize_script( 'wpuf-admin-script', 'wpuf_admin_script', [ diff --git a/admin/form-template.php b/admin/form-template.php index b83630549..6c85c2ec0 100644 --- a/admin/form-template.php +++ b/admin/form-template.php @@ -71,7 +71,13 @@ public function enqueue_scripts() { return; } - wp_enqueue_style( 'wpuf-formbuilder', WPUF_ASSET_URI . '/css/wpuf-form-builder.css' ); + $form_builder_css_deps = wpuf()->assets->form_builder_css_deps; + + foreach ( $form_builder_css_deps as $deps ) { + wp_enqueue_style( $deps ); + } + + wp_enqueue_style( 'wpuf-form-builder' ); } /** diff --git a/class/subscription.php b/class/subscription.php index 9b9685251..bf7b4ca2e 100644 --- a/class/subscription.php +++ b/class/subscription.php @@ -237,7 +237,7 @@ public function after_registration( $user_id ) { * @since 2.2 */ public function subscription_script() { - wp_enqueue_script( 'wpuf-subscriptions', WPUF_ASSET_URI . '/js/subscriptions.js', [ 'jquery' ], WPUF_VERSION, true ); + // wp_enqueue_script( 'wpuf-subscriptions', WPUF_ASSET_URI . '/js/subscriptions.js', [ 'jquery' ], WPUF_VERSION, true ); wp_localize_script( 'wpuf-subscriptions', 'wpuf_subs_vars', array( 'wpuf_subscription_delete_nonce' => wp_create_nonce( 'wpuf-subscription-delete-nonce' ), diff --git a/composer.json b/composer.json index 6cb5c16a7..ea61e0043 100644 --- a/composer.json +++ b/composer.json @@ -22,6 +22,14 @@ "phpcompatibility/phpcompatibility-wp": "dev-master", "phpunit/phpunit": "7.5.9" }, + "autoload": { + "psr-4": { + "Wp\\User\\Frontend\\": "includes/" + }, + "files": [ + "wpuf-functions.php" + ] + }, "scripts": { "phpcs": [ "phpcs -p -s" diff --git a/includes/Admin.php b/includes/Admin.php new file mode 100644 index 000000000..f84cf3ece --- /dev/null +++ b/includes/Admin.php @@ -0,0 +1,9 @@ +add_to_container( 'menu', new Admin\Menu() ); + } +} diff --git a/includes/Admin/Menu.php b/includes/Admin/Menu.php new file mode 100644 index 000000000..1515db14a --- /dev/null +++ b/includes/Admin/Menu.php @@ -0,0 +1,32 @@ +' ); + + add_menu_page( __( 'WP User Frontend', 'wp-user-frontend' ), __( 'User Frontend', 'wp-user-frontend' ), $capability, 'wp-user-frontend', [ $this, 'wpuf_post_forms_page' ], $wpuf_icon, '54.2' ); + } + + public function wpuf_post_forms_page() { + $action = isset( $_GET['action'] ) ? sanitize_text_field( wp_unslash( $_GET['action'] ) ) : null; + $add_new_page_url = admin_url( 'admin.php?page=wpuf-post-forms&action=add-new' ); + + switch ( $action ) { + case 'edit': + case 'add-new': + require_once WPUF_ROOT . '/views/post-form.php'; + break; + + default: + require_once WPUF_ROOT . '/admin/post-forms-list-table-view.php'; + break; + } + } +} diff --git a/includes/Assets.php b/includes/Assets.php new file mode 100644 index 000000000..204a61bf0 --- /dev/null +++ b/includes/Assets.php @@ -0,0 +1,227 @@ +suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; + // $this->scheme = is_ssl() ? 'https' : 'http'; + + $this->form_builder_css_deps = apply_filters( 'wpuf-form-builder-css-deps', [ + 'wpuf-frontend-forms', + 'wpuf-font-awesome', + 'wpuf-sweetalert2', + 'wpuf-selectize', + 'wpuf-toastr', + 'wpuf-tooltip', + ] ); + + add_action( 'init', [ $this, 'register_all_scripts' ] ); + } + + public function register_all_scripts() { + $styles = $this->get_styles(); + $scripts = $this->get_scripts(); + + do_action( 'wpuf_before_register_scripts', $scripts, $styles ); + + $this->register_styles( $styles ); + $this->register_scripts( $scripts ); + + do_action( 'wpuf_after_register_scripts', $scripts, $styles ); + } + + public function register_styles( $styles ) { + foreach ( $styles as $handle => $style ) { + $deps = ! empty( $style['deps'] ) ? $style['deps'] : []; + $version = ! empty( $style['version'] ) ? $style['version'] : WPUF_VERSION; + $media = ! empty( $style['media'] ) ? $style['media'] : 'all'; + + wp_register_style( 'wpuf-' . $handle, $style['src'], $deps, $version, $media ); + } + } + + public function register_scripts( $scripts ) { + foreach ( $scripts as $handle => $script ) { + $deps = isset( $script['deps'] ) ? $script['deps'] : []; + $in_footer = isset( $script['in_footer'] ) ? $script['in_footer'] : true; + $version = isset( $script['version'] ) ? $script['version'] : WPUF_VERSION; + + wp_register_script( 'wpuf-' . $handle, $script['src'], $deps, $version, $in_footer ); + } + } + + public function get_styles() { + $styles = [ + 'frontend-forms' => [ + 'src' => WPUF_ASSET_URI . '/css/frontend-forms.css', + ], + 'layout1' => [ + 'src' => WPUF_ASSET_URI . '/css/frontend-form/layout1.css', + ], + 'layout2' => [ + 'src' => WPUF_ASSET_URI . '/css/frontend-form/layout2.css', + ], + 'layout3' => [ + 'src' => WPUF_ASSET_URI . '/css/frontend-form/layout3.css', + ], + 'layout4' => [ + 'src' => WPUF_ASSET_URI . '/css/frontend-form/layout4.css', + ], + 'layout5' => [ + 'src' => WPUF_ASSET_URI . '/css/frontend-form/layout5.css', + ], + 'jquery-ui' => [ + 'src' => WPUF_ASSET_URI . '/css/jquery-ui-1.9.1.custom.css', + 'version' => '1.9.1', + ], + 'sweetalert2' => [ + 'src' => WPUF_ASSET_URI . '/vendor/sweetalert2/sweetalert2.css', + 'version' => '11.4.19', + ], + 'font-awesome' => [ + 'src' => WPUF_ASSET_URI . '/vendor/font-awesome/css/font-awesome.min.css', + 'version' => '4.7.0', + ], + 'selectize' => [ + 'src' => WPUF_ASSET_URI . '/vendor/selectize/css/selectize.default.css', + 'version' => '0.12.4', + ], + 'toastr' => [ + 'src' => WPUF_ASSET_URI . '/vendor/toastr/toastr.min.css', + 'version' => '2.1.3', + ], + 'tooltip' => [ + 'src' => WPUF_ASSET_URI . '/vendor/tooltip/tooltip.css', + 'version' => '3.3.7', + ], + 'form-builder' => [ + 'src' => WPUF_ASSET_URI . '/css/wpuf-form-builder.css', + 'deps' => $this->form_builder_css_deps, + ], + 'admin' => [ + 'src' => WPUF_ASSET_URI . '/css/admin.css', + ], + ]; + + return apply_filters( 'wpuf_styles_to_register', $styles ); + } + + public function get_scripts() { +// global $post; + $form_builder_js_deps = apply_filters( 'wpuf-form-builder-js-deps', [ + 'jquery', + 'jquery-ui-sortable', + 'jquery-ui-draggable', + 'jquery-ui-droppable', + 'underscore', + 'wpuf-vue', + 'wpuf-vuex', + 'wpuf-sweetalert2', + 'wpuf-jquery-scrollTo', + 'wpuf-selectize', + 'wpuf-toastr', + 'wpuf-clipboard', + 'wpuf-tooltip', + ] ); +// /* +// * Data required for building the form +// */ +// require_once WPUF_ROOT . '/admin/form-builder/class-wpuf-form-builder-field-settings.php'; +// require_once WPUF_ROOT . '/includes/free/prompt.php'; +// $wpuf_form_builder = apply_filters( 'wpuf-form-builder-localize-script', [ +// 'post' => $post, +// 'form_fields' => wpuf_get_form_fields( $post->ID ), +// 'field_settings' => wpuf()->fields->get_js_settings(), +// 'notifications' => wpuf_get_form_notifications( $post->ID ), +// 'pro_link' => WPUF_Pro_Prompt::get_pro_url(), +// 'site_url' => site_url( '/' ), +// 'recaptcha_site' => wpuf_get_option( 'recaptcha_public', 'wpuf_general' ), +// 'recaptcha_secret' => wpuf_get_option( 'recaptcha_private', 'wpuf_general' ), +// ] ); +// $wpuf_form_builder = wpuf_unset_conditional( $wpuf_form_builder ); +// wp_localize_script( 'wpuf-form-builder-mixins', 'wpuf_form_builder', $wpuf_form_builder ); +// // mixins +// $wpuf_mixins = [ +// 'root' => apply_filters( 'wpuf-form-builder-js-root-mixins', [] ), +// 'builder_stage' => apply_filters( 'wpuf-form-builder-js-builder-stage-mixins', [] ), +// 'form_fields' => apply_filters( 'wpuf-form-builder-js-form-fields-mixins', [] ), +// 'field_options' => apply_filters( 'wpuf-form-builder-js-field-options-mixins', [] ), +// ]; +// wp_localize_script( 'wpuf-form-builder-mixins', 'wpuf_mixins', $wpuf_mixins ); + $scripts = [ + 'vue' => [ + 'src' => WPUF_ASSET_URI . '/vendor/vue/vue' . $this->suffix . '.js', + 'in_footer' => true, + 'version' => '2.2.4', + ], + 'vuex' => [ + 'src' => WPUF_ASSET_URI . '/vendor/vue/vuex' . $this->suffix . '.js', + 'in_footer' => true, + 'version' => '2.2.1', + ], + 'sweetalert2' => [ + 'src' => WPUF_ASSET_URI . '/vendor/sweetalert2/sweetalert2.js' . $this->suffix . '.js', + 'in_footer' => true, + 'version' => '11.4.19', + ], + 'jquery-scrollTo' => [ + 'src' => WPUF_ASSET_URI . '/vendor/jquery.scrollTo/jquery.scrollTo' . $this->suffix . '.js', + 'in_footer' => true, + 'deps' => [ 'jquery' ], + 'version' => '11.4.19', + ], + 'selectize' => [ + 'src' => WPUF_ASSET_URI . '/vendor/selectize/js/standalone/selectize' . $this->suffix . '.js', + 'in_footer' => true, + 'deps' => [ 'jquery' ], + 'version' => '0.12.4', + ], + 'toastr' => [ + 'src' => WPUF_ASSET_URI . '/vendor/toastr/toastr' . $this->suffix . '.js', + 'in_footer' => true, + 'version' => '2.1.3', + ], + 'clipboard' => [ + 'src' => WPUF_ASSET_URI . '/vendor/clipboard/clipboard' . $this->suffix . '.js', + 'in_footer' => true, + 'version' => '1.6.0', + ], + 'tooltip' => [ + 'src' => WPUF_ASSET_URI . '/vendor/tooltip/tooltip' . $this->suffix . '.js', + 'in_footer' => true, + 'version' => '3.3.7', + ], + 'form-builder-mixins' => [ + 'src' => WPUF_ASSET_URI . 'js/wpuf-form-builder-mixins.js' . $this->suffix . '.js', + 'deps' => $form_builder_js_deps, + 'in_footer' => true, + ], + 'form-builder-components' => [ + 'src' => WPUF_ASSET_URI . 'js/wpuf-form-builder-components.js' . $this->suffix . '.js', + 'deps' => [ 'wpuf-form-builder-mixins' ], + 'in_footer' => true, + ], + 'form-builder' => [ + 'src' => WPUF_ASSET_URI . '/js/wpuf-form-builder.js' . $this->suffix . '.js', + 'deps' => [ 'wpuf-form-builder-components' ], + 'in_footer' => true, + ], + 'admin' => [ + 'src' => WPUF_ASSET_URI . '/js/wpuf-admin.js' . $this->suffix . '.js', + 'deps' => [ 'jquery' ], + ], + 'subscriptions' => [ + 'src' => WPUF_ASSET_URI . '/js/subscriptions.js' . $this->suffix . '.js', + 'deps' => [ 'jquery' ], + 'in_footer' => true, + ], + ]; + + return apply_filters( 'wpuf_scripts_to_register', $scripts ); + } +} diff --git a/wpuf.php b/wpuf.php index 72b3ca227..d89391aeb 100644 --- a/wpuf.php +++ b/wpuf.php @@ -12,6 +12,11 @@ Domain Path: /languages */ +// don't call the file directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + define( 'WPUF_VERSION', '3.6.4' ); define( 'WPUF_FILE', __FILE__ ); define( 'WPUF_ROOT', __DIR__ ); @@ -64,6 +69,8 @@ final class WP_User_Frontend { * Fire up the plugin */ public function __construct() { + require_once __DIR__ . '/vendor/autoload.php'; + if ( ! $this->is_supported_php() ) { add_action( 'admin_notices', [ $this, 'php_version_notice' ] ); @@ -122,8 +129,8 @@ public function php_version_notice() { public function init_hooks() { add_action( 'plugins_loaded', [ $this, 'wpuf_loader' ] ); add_action( 'plugins_loaded', [ $this, 'plugin_upgrades' ] ); + add_action( 'plugins_loaded', [ $this, 'instantiate' ], 11 ); - add_action( 'plugins_loaded', [ $this, 'instantiate' ] ); add_action( 'init', [ $this, 'load_textdomain' ] ); add_action( 'admin_init', [ $this, 'block_admin_access' ] ); @@ -133,7 +140,7 @@ public function init_hooks() { // enqueue plugin scripts, don't remove priority. // If remove or set priority under 1000 then registered styles will not load on WC Marketplace vendor dashboard. // we have integration with WC Marketplace plugin since version 3.0 where WC Marketplae vendors' can submit post - add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ], 9999 ); + // add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ], 9999 ); // do plugin upgrades add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), [ $this, 'plugin_action_links' ] ); @@ -146,7 +153,7 @@ public function init_hooks() { add_action( 'wp_ajax_wpuf_weforms_install', [ $this, 'install_weforms' ] ); // Insight class instentiate - $this->container['tracker'] = new WPUF_WeDevs_Insights( __FILE__ ); + // $this->container['tracker'] = new WPUF_WeDevs_Insights( __FILE__ ); } /** @@ -255,86 +262,87 @@ public static function init() { * @return void */ public function includes() { - require_once __DIR__ . '/class/encryption-helper.php'; - require_once __DIR__ . '/wpuf-functions.php'; - require_once __DIR__ . '/lib/gateway/paypal.php'; - require_once __DIR__ . '/lib/gateway/bank.php'; - require_once __DIR__ . '/lib/class-wedevs-insights.php'; - - require_once WPUF_ROOT . '/includes/class-frontend-render-form.php'; - require_once WPUF_ROOT . '/admin/form-builder/class-wpuf-form-builder-field-settings.php'; - - // global classes/functions - require_once WPUF_ROOT . '/class/upload.php'; - require_once WPUF_ROOT . '/admin/form-template.php'; - require_once WPUF_ROOT . '/class/post-form-template.php'; - require_once WPUF_ROOT . '/class/subscription.php'; - require_once WPUF_ROOT . '/class/render-form.php'; - require_once WPUF_ROOT . '/class/payment.php'; - require_once WPUF_ROOT . '/class/frontend-account.php'; - require_once WPUF_ROOT . '/includes/class-form.php'; - require_once WPUF_ROOT . '/includes/class-form-manager.php'; - require_once WPUF_ROOT . '/includes/class-login-widget.php'; - require_once WPUF_ROOT . '/includes/setup-wizard.php'; - require_once WPUF_ROOT . '/includes/countries-state.php'; - require_once WPUF_ROOT . '/includes/class-billing-address.php'; - include_once WPUF_ROOT . '/includes/class-gutenblock.php'; - include_once WPUF_ROOT . '/includes/class-form-preview.php'; - include_once WPUF_ROOT . '/includes/class-customizer.php'; - include_once WPUF_ROOT . '/includes/log/class-log.php'; - include_once WPUF_ROOT . '/includes/log/class-log-wpdb-query.php'; - // include_once WPUF_ROOT . '/includes/class-user-prorate.php'; - - if ( class_exists( 'WeDevs_Dokan' ) ) { - require_once WPUF_ROOT . '/includes/class-dokan-integration.php'; - } - - if ( class_exists( 'WCMp' ) ) { - require_once WPUF_ROOT . '/includes/class-wcmp-integration.php'; - } - - if ( class_exists( 'WC_Vendors' ) ) { - require_once WPUF_ROOT . '/includes/class-wc-vendors-integration.php'; - } - - require_once WPUF_ROOT . '/includes/class-user.php'; - require_once WPUF_ROOT . '/includes/class-user-subscription.php'; - - if ( is_admin() ) { - require_once WPUF_ROOT . '/admin/settings-options.php'; - require_once WPUF_ROOT . '/admin/class-admin-settings.php'; - require_once WPUF_ROOT . '/admin/form-handler.php'; - require_once WPUF_ROOT . '/admin/form.php'; - require_once WPUF_ROOT . '/admin/posting.php'; - require_once WPUF_ROOT . '/admin/class-admin-subscription.php'; - require_once WPUF_ROOT . '/admin/installer.php'; - require_once WPUF_ROOT . '/admin/class-admin-welcome.php'; - require_once WPUF_ROOT . '/admin/promotion.php'; - require_once WPUF_ROOT . '/admin/post-forms-list-table.php'; - require_once WPUF_ROOT . '/includes/free/admin/shortcode-button.php'; - require_once WPUF_ROOT . '/admin/form-builder/class-wpuf-admin-form-builder.php'; - require_once WPUF_ROOT . '/admin/form-builder/class-wpuf-admin-form-builder-ajax.php'; - // include_once WPUF_ROOT . '/lib/class-weforms-upsell.php'; - include_once WPUF_ROOT . '/includes/class-whats-new.php'; - include_once WPUF_ROOT . '/includes/class-acf.php'; - include_once WPUF_ROOT . '/includes/class-privacy.php'; - include_once WPUF_ROOT . '/admin/dashboard-metabox.php'; - } else { - require_once WPUF_ROOT . '/class/frontend-dashboard.php'; - require_once WPUF_ROOT . '/includes/free/class-registration.php'; - } - - // add reCaptcha library if not found - if ( ! function_exists( 'recaptcha_get_html' ) ) { - require_once __DIR__ . '/lib/recaptchalib.php'; - require_once __DIR__ . '/lib/invisible_recaptcha.php'; - } - - require_once WPUF_ROOT . '/includes/free/class-login.php'; - require_once WPUF_ROOT . '/includes/class-frontend-form-post.php'; - require_once WPUF_ROOT . '/includes/class-field-manager.php'; - require_once WPUF_ROOT . '/includes/class-pro-upgrades.php'; - require_once WPUF_ROOT . '/includes/fields/field-trait.php'; +// require_once __DIR__ . '/class/encryption-helper.php'; +// require_once __DIR__ . '/wpuf-functions.php'; +// require_once __DIR__ . '/lib/gateway/paypal.php'; +// require_once __DIR__ . '/lib/gateway/bank.php'; +// require_once __DIR__ . '/lib/class-wedevs-insights.php'; +// +// require_once WPUF_ROOT . '/includes/class-frontend-render-form.php'; +// require_once WPUF_ROOT . '/admin/form-builder/class-wpuf-form-builder-field-settings.php'; +// +// // global classes/functions +// require_once WPUF_ROOT . '/class/upload.php'; +// require_once WPUF_ROOT . '/admin/form-template.php'; +// require_once WPUF_ROOT . '/class/post-form-template.php'; +// require_once WPUF_ROOT . '/class/subscription.php'; +// require_once WPUF_ROOT . '/class/render-form.php'; +// require_once WPUF_ROOT . '/class/payment.php'; +// require_once WPUF_ROOT . '/class/frontend-account.php'; +// require_once WPUF_ROOT . '/includes/class-form.php'; +// require_once WPUF_ROOT . '/includes/class-form-manager.php'; +// require_once WPUF_ROOT . '/includes/class-login-widget.php'; +// require_once WPUF_ROOT . '/includes/setup-wizard.php'; +// require_once WPUF_ROOT . '/includes/countries-state.php'; +// require_once WPUF_ROOT . '/includes/class-billing-address.php'; +// include_once WPUF_ROOT . '/includes/class-gutenblock.php'; +// include_once WPUF_ROOT . '/includes/class-form-preview.php'; +// include_once WPUF_ROOT . '/includes/class-customizer.php'; +// include_once WPUF_ROOT . '/includes/log/class-log.php'; +// include_once WPUF_ROOT . '/includes/log/class-log-wpdb-query.php'; +// // include_once WPUF_ROOT . '/includes/class-user-prorate.php'; +// +// if ( class_exists( 'WeDevs_Dokan' ) ) { +// require_once WPUF_ROOT . '/includes/class-dokan-integration.php'; +// } +// +// if ( class_exists( 'WCMp' ) ) { +// require_once WPUF_ROOT . '/includes/class-wcmp-integration.php'; +// } +// +// if ( class_exists( 'WC_Vendors' ) ) { +// require_once WPUF_ROOT . '/includes/class-wc-vendors-integration.php'; +// } +// +// require_once WPUF_ROOT . '/includes/class-user.php'; +// require_once WPUF_ROOT . '/includes/class-user-subscription.php'; +// +// if ( is_admin() ) { +// require_once WPUF_ROOT . '/admin/settings-options.php'; +// require_once WPUF_ROOT . '/admin/class-admin-settings.php'; +// require_once WPUF_ROOT . '/admin/form-handler.php'; +// require_once WPUF_ROOT . '/admin/form.php'; +// require_once WPUF_ROOT . '/admin/posting.php'; +// require_once WPUF_ROOT . '/admin/class-admin-subscription.php'; +// require_once WPUF_ROOT . '/admin/installer.php'; +// require_once WPUF_ROOT . '/admin/class-admin-welcome.php'; +// require_once WPUF_ROOT . '/admin/promotion.php'; +// require_once WPUF_ROOT . '/admin/post-forms-list-table.php'; +// require_once WPUF_ROOT . '/includes/free/admin/shortcode-button.php'; +// require_once WPUF_ROOT . '/admin/form-builder/class-wpuf-admin-form-builder.php'; +// require_once WPUF_ROOT . '/admin/form-builder/class-wpuf-admin-form-builder-ajax.php'; +// // include_once WPUF_ROOT . '/lib/class-weforms-upsell.php'; +// include_once WPUF_ROOT . '/includes/class-whats-new.php'; +// include_once WPUF_ROOT . '/includes/class-acf.php'; +// include_once WPUF_ROOT . '/includes/class-privacy.php'; +// include_once WPUF_ROOT . '/admin/dashboard-metabox.php'; +// } else { +// require_once WPUF_ROOT . '/class/frontend-dashboard.php'; +// require_once WPUF_ROOT . '/includes/free/class-registration.php'; +// } +// +// // add reCaptcha library if not found +// if ( ! function_exists( 'recaptcha_get_html' ) ) { +// require_once __DIR__ . '/lib/recaptchalib.php'; +// require_once __DIR__ . '/lib/invisible_recaptcha.php'; +// } +// +// require_once WPUF_ROOT . '/includes/free/class-login.php'; +// require_once WPUF_ROOT . '/includes/class-frontend-form-post.php'; +// require_once WPUF_ROOT . '/includes/class-field-manager.php'; +// require_once WPUF_ROOT . '/includes/class-pro-upgrades.php'; +// require_once WPUF_ROOT . '/includes/fields/field-trait.php'; + require_once WPUF_ROOT . '/includes/Assets.php'; } /** @@ -343,54 +351,56 @@ public function includes() { * @return void */ public function instantiate() { - $this->container['upload'] = new WPUF_Upload(); - $this->container['paypal'] = new WPUF_Paypal(); - $this->container['form_template'] = new WPUF_Admin_Form_Template(); - - $this->container['subscription'] = WPUF_Subscription::init(); - $this->container['account'] = new WPUF_Frontend_Account(); - $this->container['billing_address'] = new WPUF_Ajax_Address_Form(); - $this->container['forms'] = new WPUF_Form_Manager(); - $this->container['preview'] = new WPUF_Form_Preview(); - $this->container['block'] = new WPUF_Form_Block(); - $this->container['customize'] = new WPUF_Customizer_Options(); - $this->container['log'] = new WPUF_Log(); - - if ( class_exists( 'WeDevs_Dokan' ) ) { - $this->container['dokan_integration'] = new WPUF_Dokan_Integration(); - } - - if ( class_exists( 'WCMp' ) ) { - $this->container['wcmp_integration'] = new WPUF_WCMp_Integration(); - } - - if ( class_exists( 'WC_Vendors' ) ) { - $this->container['WCV_Integration'] = new WPUF_WC_Vendors_Integration(); - } + $this->container['assets'] = new Wp\User\Frontend\Assets(); +// $this->container['upload'] = new WPUF_Upload(); +// $this->container['subscription'] = WPUF_Subscription::init(); +// $this->container['billing_address'] = new WPUF_Ajax_Address_Form(); +// $this->container['block'] = new WPUF_Form_Block(); +// $this->container['log'] = new WPUF_Log(); +// +// if ( class_exists( 'WeDevs_Dokan' ) ) { +// $this->container['dokan_integration'] = new WPUF_Dokan_Integration(); +// } +// +// if ( class_exists( 'WCMp' ) ) { +// $this->container['wcmp_integration'] = new WPUF_WCMp_Integration(); +// } +// +// if ( class_exists( 'WC_Vendors' ) ) { +// $this->container['WCV_Integration'] = new WPUF_WC_Vendors_Integration(); +// } if ( is_admin() ) { - $this->container['settings'] = WPUF_Admin_Settings::init(); - $this->container['form_handler'] = new WPUF_Admin_Form_Handler(); - $this->container['admin_form'] = new WPUF_Admin_Form(); - $this->container['admin_posting'] = WPUF_Admin_Posting::init(); - $this->container['admin_subscription'] = new WPUF_Admin_Subscription(); - $this->container['admin_installer'] = new WPUF_Admin_Installer(); - $this->container['admin_promotion'] = new WPUF_Admin_Promotion(); - $this->container['welcome'] = new WPUF_Admin_Welcome(); - $this->container['whats_new'] = new WPUF_Whats_New(); - $this->container['wpuf_acf'] = new WPUF_ACF_Compatibility(); - $this->container['privacy'] = new WPUF_Privacy(); - $this->container['dashboard_mb'] = new Dashboard_Metabox(); + $this->container['admin'] = new Wp\User\Frontend\Admin(); +// $this->container['settings'] = WPUF_Admin_Settings::init(); +// $this->container['form_template'] = new WPUF_Admin_Form_Template(); +// $this->container['form_handler'] = new WPUF_Admin_Form_Handler(); +// $this->container['admin_form'] = new WPUF_Admin_Form(); +// $this->container['admin_posting'] = WPUF_Admin_Posting::init(); +// $this->container['admin_subscription'] = new WPUF_Admin_Subscription(); +// $this->container['admin_installer'] = new WPUF_Admin_Installer(); +// $this->container['admin_promotion'] = new WPUF_Admin_Promotion(); +// $this->container['welcome'] = new WPUF_Admin_Welcome(); +// $this->container['whats_new'] = new WPUF_Whats_New(); +// $this->container['wpuf_acf'] = new WPUF_ACF_Compatibility(); +// $this->container['privacy'] = new WPUF_Privacy(); +// $this->container['dashboard_mb'] = new Dashboard_Metabox(); +// $this->container['forms'] = new WPUF_Form_Manager(); +// $this->container['preview'] = new WPUF_Form_Preview(); +// $this->container['customize'] = new WPUF_Customizer_Options(); +// $this->container['fields'] = new WPUF_Field_Manager(); } else { - $this->container['dashboard'] = new WPUF_Frontend_Dashboard(); - $this->container['payment'] = new WPUF_Payment(); - $this->container['registration'] = WPUF_Registration::init(); - } - - $this->container['login'] = WPUF_Simple_Login::init(); - $this->container['fields'] = new WPUF_Field_Manager(); - $this->container['frontend_form'] = WPUF_Frontend_Form::init(); - $this->container['pro_upgrades'] = new WPUF_Pro_Upgrades(); +// $this->container['dashboard'] = new WPUF_Frontend_Dashboard(); +// $this->container['payment'] = new WPUF_Payment(); +// $this->container['registration'] = WPUF_Registration::init(); +// $this->container['login'] = WPUF_Simple_Login::init(); +// $this->container['frontend_form'] = WPUF_Frontend_Form::init(); +// $this->container['paypal'] = new WPUF_Paypal(); +// $this->container['account'] = new WPUF_Frontend_Account(); + } +// if ( ! $this->is_pro ) { +// $this->container['pro_upgrades'] = new WPUF_Pro_Upgrades(); +// } } /** @@ -428,7 +438,7 @@ public function plugin_upgrades() { * @since 2.5.4 */ public function wpuf_loader() { - $has_pro = class_exists( 'WP_User_Frontend_Pro' ); + $has_pro = class_exists( 'WP_User_Frontend_Pro' ); if ( $has_pro ) { $this->is_pro = true; @@ -602,74 +612,6 @@ public static function uninstall() { wp_clear_scheduled_hook( 'wpuf_remove_expired_post_hook' ); } - /** - * Enqueues Styles and Scripts when the shortcodes are used only - * - * @uses has_shortcode() - * - * @since 0.2 - */ - public function enqueue_scripts() { - $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; - - global $post; - - $scheme = is_ssl() ? 'https' : 'http'; - $api_key = wpuf_get_option( 'gmap_api_key', 'wpuf_general' ); - - $load_gmap = apply_filters( 'wpuf_load_gmap_script', true ); - - $pay_page = intval( wpuf_get_option( 'payment_page', 'wpuf_payment' ) ); - - if ( ! empty( $api_key ) && $load_gmap ) { - wp_enqueue_script( 'google-maps', $scheme . '://maps.google.com/maps/api/js?libraries=places&key=' . $api_key, [], null ); - } - - if ( isset( $post->ID ) ) { - ?> - - plugin_scripts(); - } elseif ( wpuf_has_shortcode( 'wpuf-login' ) - || wpuf_has_shortcode( 'wpuf-registration' ) - || wpuf_has_shortcode( 'wpuf-meta' ) - || wpuf_has_shortcode( 'wpuf_form' ) - || wpuf_has_shortcode( 'wpuf_edit' ) - || wpuf_has_shortcode( 'wpuf_profile' ) - || wpuf_has_shortcode( 'wpuf_dashboard' ) - || wpuf_has_shortcode( 'weforms' ) - || wpuf_has_shortcode( 'wpuf_account' ) - || wpuf_has_shortcode( 'wpuf_sub_pack' ) - || ( isset( $post->ID ) && ( $pay_page == $post->ID ) ) - || isset( $_GET['wpuf_preview'] ) - || class_exists( '\Elementor\Plugin' ) - || ( class_exists( 'WeDevs_Dokan' ) && dokan_is_seller_dashboard() && ! empty( $wp->query_vars['posts'] ) ) ) { - $this->plugin_scripts(); - } - } - /** * add custom css to head */ @@ -703,83 +645,6 @@ public function add_custom_css() { } } - public function plugin_scripts() { - wp_enqueue_style( 'wpuf-css' ); - wp_enqueue_style( 'jquery-ui', WPUF_ASSET_URI . '/css/jquery-ui-1.9.1.custom.css' ); - wp_enqueue_style( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/sweetalert2.css', [], '11.4.19' ); - - wp_enqueue_script( 'jquery' ); - wp_enqueue_script( 'jquery-ui-datepicker' ); - wp_enqueue_script( 'jquery-ui-autocomplete' ); - wp_enqueue_script( 'suggest' ); - wp_enqueue_script( 'jquery-ui-slider' ); - wp_enqueue_script( 'plupload-handlers' ); - wp_enqueue_script( 'wpuf-upload', WPUF_ASSET_URI . '/js/upload.js', [ 'jquery', 'plupload-handlers', 'jquery-ui-sortable' ] ); - wp_enqueue_script( 'wpuf-form' ); - wp_enqueue_script( 'wpuf-subscriptions' ); - wp_enqueue_script( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/sweetalert2.js', [], '11.4.19' ); - - wp_localize_script( - 'wpuf-form', 'wpuf_frontend', apply_filters( - 'wpuf_frontend_js_data', [ - 'ajaxurl' => admin_url( 'admin-ajax.php' ), - 'error_message' => __( 'Please fix the errors to proceed', 'wp-user-frontend' ), - 'nonce' => wp_create_nonce( 'wpuf_nonce' ), - 'cancelSubMsg' => __( 'Are you sure you want to cancel your current subscription ?', 'wp-user-frontend' ), - 'delete_it' => __( 'Yes', 'wp-user-frontend' ), - 'cancel_it' => __( 'No', 'wp-user-frontend' ), - 'word_max_title' => __( 'Maximum word limit reached. Please shorten your texts.', 'wp-user-frontend' ), - 'word_max_details' => __( 'This field supports a maximum of %number% words, and the limit is reached. Remove a few words to reach the acceptable limit of the field.', - 'wp-user-frontend' ), - 'word_min_title' => __( 'Minimum word required.', 'wp-user-frontend' ), - 'word_min_details' => __( 'This field requires minimum %number% words. Please add some more text.', - 'wp-user-frontend' ), - 'char_max_title' => __( 'Maximum character limit reached. Please shorten your texts.', - 'wp-user-frontend' ), - 'char_max_details' => __( 'This field supports a maximum of %number% characters, and the limit is reached. Remove a few characters to reach the acceptable limit of the field.', - 'wp-user-frontend' ), - 'char_min_title' => __( 'Minimum character required.', 'wp-user-frontend' ), - 'char_min_details' => __( 'This field requires minimum %number% characters. Please add some more character.', - 'wp-user-frontend' ), - ] - ) - ); - - wp_localize_script( - 'wpuf-subscriptions', 'wpuf_subscription', apply_filters( - 'wpuf_subscription_js_data', [ - 'pack_notice' => __( 'Please Cancel Your Currently Active Pack first!', 'wp-user-frontend' ), - ] - ) - ); - - wp_localize_script( - 'wpuf-upload', 'wpuf_frontend_upload', [ - 'confirmMsg' => __( 'Are you sure?', 'wp-user-frontend' ), - 'delete_it' => __( 'Yes, delete it', 'wp-user-frontend' ), - 'cancel_it' => __( 'No, cancel it', 'wp-user-frontend' ), - 'nonce' => wp_create_nonce( 'wpuf_nonce' ), - 'ajaxurl' => admin_url( 'admin-ajax.php' ), - 'max_filesize' => wpuf_max_upload_size(), - 'plupload' => [ - 'url' => admin_url( 'admin-ajax.php' ) . '?nonce=' . wp_create_nonce( 'wpuf-upload-nonce' ), - 'flash_swf_url' => includes_url( 'js/plupload/plupload.flash.swf' ), - 'filters' => [ - [ - 'title' => __( 'Allowed Files', 'wp-user-frontend' ), - 'extensions' => '*', - ], - ], - 'multipart' => true, - 'urlstream_upload' => true, - 'warning' => __( 'Maximum number of files reached!', 'wp-user-frontend' ), - 'size_error' => __( 'The file you have uploaded exceeds the file size limit. Please try again.', 'wp-user-frontend' ), - 'type_error' => __( 'You have uploaded an incorrect file type. Please try again.', 'wp-user-frontend' ), - ], - ] - ); - } - /** * Block user access to admin panel for specific roles * @@ -808,7 +673,7 @@ public function block_admin_access() { * * @since 2.2.3 * - * @return void + * @return bool */ public function show_admin_bar( $val ) { if ( ! is_user_logged_in() ) { @@ -955,6 +820,10 @@ public function install_weforms() { wp_send_json_success(); } + + public function add_to_container( $name, $object ) { + $this->container[ $name ] = $object; + } } /** From b32452f71e9450b2e74eb232eb9903ffd552c199 Mon Sep 17 00:00:00 2001 From: Sapayth Hossain Date: Mon, 22 May 2023 22:33:23 +0600 Subject: [PATCH 002/167] refactor files for post forms --- admin/class-admin-subscription.php | 2 +- .../class-wpuf-admin-form-builder-ajax.php | 3 + admin/form.php | 572 - admin/html/whats-new.php | 2 +- admin/posting.php | 2 +- class/admin-asset-loader.php | 2 +- class/frontend-account.php | 8 +- class/payment.php | 6 +- class/transactions-list-table.php | 4 +- composer.lock | 846 +- includes/Admin.php | 10 + includes/Admin/Menu.php | 40 +- .../WPUF_Admin_Form_Template.php | 4 +- .../WPUF_Admin_Post_Forms_List_Table.php | 10 +- .../WPUF_Post_Form_Template.php | 2 + ...UF_Post_Form_Template_Events_Calendar.php} | 64 +- .../WPUF_Post_Form_Template_Post.php | 2 + .../WPUF_Post_Form_Template_WooCommerce.php} | 101 +- .../WPUF_Pro_Form_Preview_EDD.php} | 2 + includes/Admin/WPUF_Admin_Form.php | 568 + .../Admin/WPUF_Admin_Form_Builder.php | 239 +- .../WPUF_Admin_Form_Builder_Free.php} | 1 + .../WPUF_Field_Manager.php} | 142 +- .../Admin/WPUF_Subscription.php | 18 +- .../Admin/template-parts}/modal.php | 1 + {views => includes/Admin/views}/post-form.php | 0 .../views}/post-forms-list-table-view.php | 2 +- includes/Assets.php | 63 +- .../WPUF_Field_Contract.php} | 1 + .../WPUF_Form_Field_Address.php} | 3 + .../WPUF_Form_Field_Checkbox.php} | 2 + .../WPUF_Form_Field_Column.php} | 2 + .../WPUF_Form_Field_Dropdown.php} | 2 + .../WPUF_Form_Field_Email.php} | 2 + .../WPUF_Form_Field_Featured_Image.php} | 2 + .../WPUF_Form_Field_HTML.php} | 2 + .../WPUF_Form_Field_Hidden.php} | 2 + .../WPUF_Form_Field_Image.php} | 2 + .../WPUF_Form_Field_MultiDropdown.php} | 2 + .../WPUF_Form_Field_Numeric.php} | 2 + .../WPUF_Form_Field_Post_Content.php} | 2 + .../WPUF_Form_Field_Post_Excerpt.php} | 3 + .../WPUF_Form_Field_Post_Tags.php} | 3 + .../WPUF_Form_Field_Post_Taxonomy.php} | 5 + .../WPUF_Form_Field_Post_Title.php} | 1 + .../WPUF_Form_Field_Post_trait.php} | 3 + .../WPUF_Form_Field_Pro.php} | 2 + .../WPUF_Form_Field_Radio.php} | 2 + .../WPUF_Form_Field_SectionBreak.php} | 3 + .../WPUF_Form_Field_Text.php} | 3 + .../WPUF_Form_Field_Textarea.php} | 3 + .../WPUF_Form_Field_URL.php} | 3 + .../WPUF_Form_Field_reCaptcha.php} | 3 + .../WPUF_Admin_Form_Free.php} | 7 +- .../WPUF_Edit_Profile.php} | 2 + .../WPUF_Form_Element.php} | 28 +- .../loader.php => Free/WPUF_Free_Loader.php} | 43 +- .../prompt.php => Free/WPUF_Pro_Prompt.php} | 2 + .../WPUF_Subscription_Element.php} | 2 + ...-wpuf-form-builder-field-settings-free.php | 0 .../admin/shortcode-builder.php | 0 .../{free => Free}/admin/shortcode-button.php | 4 +- includes/{free => Free}/class-login.php | 8 +- .../{free => Free}/class-registration.php | 2 +- includes/{free => Free}/edit-user.php | 0 .../templates/page-registration-form.php | 0 ...d-form-post.php => WPUF_Frontend_Form.php} | 4 +- ...form.php => WPUF_Frontend_Render_Form.php} | 2 + includes/class-user-subscription.php | 6 +- languages/wp-user-frontend-ar.po | 10 +- languages/wp-user-frontend-es_ES.po | 4 +- languages/wp-user-frontend-fa_IR.po | 4 +- languages/wp-user-frontend-tr_TR.po | 4 +- languages/wp-user-frontend-zh_CN.po | 6 +- languages/wp-user-frontend.pot | 10 +- lib/gateway/paypal.php | 2 +- lib/recaptchalib.php | 576 +- lib/recaptchalib_noCaptcha.php | 2 +- package-lock.json | 9164 +---------------- wpuf-functions.php | 4 +- wpuf.php | 62 +- 81 files changed, 2004 insertions(+), 10730 deletions(-) delete mode 100644 admin/form.php rename admin/form-template.php => includes/Admin/PostFormTemplates/WPUF_Admin_Form_Template.php (98%) rename admin/post-forms-list-table.php => includes/Admin/PostFormTemplates/WPUF_Admin_Post_Forms_List_Table.php (98%) rename class/post-form-template.php => includes/Admin/PostFormTemplates/WPUF_Post_Form_Template.php (98%) rename includes/{free/post-form-templates/the_events_calendar.php => Admin/PostFormTemplates/WPUF_Post_Form_Template_Events_Calendar.php} (81%) rename class/post-form-templates/post.php => includes/Admin/PostFormTemplates/WPUF_Post_Form_Template_Post.php (99%) rename includes/{free/post-form-templates/woocommerce.php => Admin/PostFormTemplates/WPUF_Post_Form_Template_WooCommerce.php} (82%) rename includes/{free/post-form-templates/easy_digital_download.php => Admin/PostFormTemplates/WPUF_Pro_Form_Preview_EDD.php} (95%) create mode 100644 includes/Admin/WPUF_Admin_Form.php rename admin/form-builder/class-wpuf-admin-form-builder.php => includes/Admin/WPUF_Admin_Form_Builder.php (56%) rename includes/{free/admin/form-builder/class-wpuf-form-builder-free.php => Admin/WPUF_Admin_Form_Builder_Free.php} (86%) rename includes/{class-field-manager.php => Admin/WPUF_Field_Manager.php} (68%) rename class/subscription.php => includes/Admin/WPUF_Subscription.php (99%) rename {admin/html => includes/Admin/template-parts}/modal.php (99%) rename {views => includes/Admin/views}/post-form.php (100%) rename {admin => includes/Admin/views}/post-forms-list-table-view.php (93%) rename includes/{fields/class-abstract-fields.php => Fields/WPUF_Field_Contract.php} (99%) rename includes/{fields/class-pro-upgrade-fields.php => Fields/WPUF_Form_Field_Address.php} (99%) rename includes/{fields/class-field-checkbox.php => Fields/WPUF_Form_Field_Checkbox.php} (99%) rename includes/{fields/class-field-column.php => Fields/WPUF_Form_Field_Column.php} (99%) rename includes/{fields/class-field-dropdown.php => Fields/WPUF_Form_Field_Dropdown.php} (99%) rename includes/{fields/class-field-email.php => Fields/WPUF_Form_Field_Email.php} (99%) rename includes/{fields/class-field-featured-image.php => Fields/WPUF_Form_Field_Featured_Image.php} (99%) rename includes/{fields/class-field-html.php => Fields/WPUF_Form_Field_HTML.php} (98%) rename includes/{fields/class-field-hidden.php => Fields/WPUF_Form_Field_Hidden.php} (98%) rename includes/{fields/class-field-image.php => Fields/WPUF_Form_Field_Image.php} (99%) rename includes/{fields/class-field-multidropdown.php => Fields/WPUF_Form_Field_MultiDropdown.php} (99%) rename includes/{fields/class-field-numeric.php => Fields/WPUF_Form_Field_Numeric.php} (95%) rename includes/{fields/class-field-post-content.php => Fields/WPUF_Form_Field_Post_Content.php} (99%) rename includes/{fields/class-field-post-excerpt.php => Fields/WPUF_Form_Field_Post_Excerpt.php} (99%) rename includes/{fields/class-field-post-tags.php => Fields/WPUF_Form_Field_Post_Tags.php} (98%) rename includes/{fields/class-field-post-taxonomy.php => Fields/WPUF_Form_Field_Post_Taxonomy.php} (99%) rename includes/{fields/class-field-post-title.php => Fields/WPUF_Form_Field_Post_Title.php} (99%) rename includes/{fields/field-trait.php => Fields/WPUF_Form_Field_Post_trait.php} (95%) rename includes/{fields/class-field-pro.php => Fields/WPUF_Form_Field_Pro.php} (96%) rename includes/{fields/class-field-radio.php => Fields/WPUF_Form_Field_Radio.php} (99%) rename includes/{fields/class-field-sectionbreak.php => Fields/WPUF_Form_Field_SectionBreak.php} (98%) rename includes/{fields/class-field-text.php => Fields/WPUF_Form_Field_Text.php} (99%) rename includes/{fields/class-field-textarea.php => Fields/WPUF_Form_Field_Textarea.php} (99%) rename includes/{fields/class-field-url.php => Fields/WPUF_Form_Field_URL.php} (99%) rename includes/{fields/class-field-recaptcha.php => Fields/WPUF_Form_Field_reCaptcha.php} (99%) rename includes/{free/form.php => Free/WPUF_Admin_Form_Free.php} (72%) rename includes/{free/edit-profile.php => Free/WPUF_Edit_Profile.php} (99%) rename includes/{free/form-element.php => Free/WPUF_Form_Element.php} (97%) rename includes/{free/loader.php => Free/WPUF_Free_Loader.php} (98%) rename includes/{free/prompt.php => Free/WPUF_Pro_Prompt.php} (96%) rename includes/{free/subscription.php => Free/WPUF_Subscription_Element.php} (96%) rename includes/{free => Free}/admin/form-builder/class-wpuf-form-builder-field-settings-free.php (100%) rename includes/{free => Free}/admin/shortcode-builder.php (100%) rename includes/{free => Free}/admin/shortcode-button.php (95%) rename includes/{free => Free}/class-login.php (99%) rename includes/{free => Free}/class-registration.php (99%) rename includes/{free => Free}/edit-user.php (100%) rename includes/{free => Free}/templates/page-registration-form.php (100%) rename includes/{class-frontend-form-post.php => WPUF_Frontend_Form.php} (99%) rename includes/{class-frontend-render-form.php => WPUF_Frontend_Render_Form.php} (99%) diff --git a/admin/class-admin-subscription.php b/admin/class-admin-subscription.php index b32e586b4..fb2cc5df8 100644 --- a/admin/class-admin-subscription.php +++ b/admin/class-admin-subscription.php @@ -33,7 +33,7 @@ public function __construct() { // new subscription metabox hooks add_action( 'add_meta_boxes', [ $this, 'add_meta_boxes' ] ); add_action( 'admin_print_styles-post-new.php', [ $this, 'enqueue_scripts' ] ); - add_action( 'admin_print_styles-post.php', [ $this, 'enqueue_scripts' ] ); + add_action( 'admin_print_styles-WPUF_Post_Form_Template_Post.php', [ $this, 'enqueue_scripts' ] ); add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_profile_script' ] ); } diff --git a/admin/form-builder/class-wpuf-admin-form-builder-ajax.php b/admin/form-builder/class-wpuf-admin-form-builder-ajax.php index 82c15d74e..5c3a2f5b5 100644 --- a/admin/form-builder/class-wpuf-admin-form-builder-ajax.php +++ b/admin/form-builder/class-wpuf-admin-form-builder-ajax.php @@ -1,4 +1,7 @@ __( 'Forms', 'wp-user-frontend' ), - 'public' => false, - 'show_ui' => false, - 'show_in_menu' => false, //false, - 'capability_type' => 'post', - 'hierarchical' => false, - 'query_var' => false, - 'supports' => [ 'title' ], - 'capabilities' => [ - 'publish_posts' => $capability, - 'edit_posts' => $capability, - 'edit_others_posts' => $capability, - 'delete_posts' => $capability, - 'delete_others_posts' => $capability, - 'read_private_posts' => $capability, - 'edit_post' => $capability, - 'delete_post' => $capability, - 'read_post' => $capability, - ], - 'labels' => [ - 'name' => __( 'Forms', 'wp-user-frontend' ), - 'singular_name' => __( 'Form', 'wp-user-frontend' ), - 'menu_name' => __( 'Forms', 'wp-user-frontend' ), - 'add_new' => __( 'Add Form', 'wp-user-frontend' ), - 'add_new_item' => __( 'Add New Form', 'wp-user-frontend' ), - 'edit' => __( 'Edit', 'wp-user-frontend' ), - 'edit_item' => __( 'Edit Form', 'wp-user-frontend' ), - 'new_item' => __( 'New Form', 'wp-user-frontend' ), - 'view' => __( 'View Form', 'wp-user-frontend' ), - 'view_item' => __( 'View Form', 'wp-user-frontend' ), - 'search_items' => __( 'Search Form', 'wp-user-frontend' ), - 'not_found' => __( 'No Form Found', 'wp-user-frontend' ), - 'not_found_in_trash' => __( 'No Form Found in Trash', 'wp-user-frontend' ), - 'parent' => __( 'Parent Form', 'wp-user-frontend' ), - ], - ] - ); - - register_post_type( - 'wpuf_profile', [ - 'label' => __( 'Registraton Forms', 'wp-user-frontend' ), - 'public' => false, - 'show_ui' => false, - 'show_in_menu' => false, - 'capability_type' => 'post', - 'hierarchical' => false, - 'query_var' => false, - 'supports' => [ 'title' ], - 'capabilities' => [ - 'publish_posts' => $capability, - 'edit_posts' => $capability, - 'edit_others_posts' => $capability, - 'delete_posts' => $capability, - 'delete_others_posts' => $capability, - 'read_private_posts' => $capability, - 'edit_post' => $capability, - 'delete_post' => $capability, - 'read_post' => $capability, - ], - 'labels' => [ - 'name' => __( 'Forms', 'wp-user-frontend' ), - 'singular_name' => __( 'Form', 'wp-user-frontend' ), - 'menu_name' => __( 'Registration Forms', 'wp-user-frontend' ), - 'add_new' => __( 'Add Form', 'wp-user-frontend' ), - 'add_new_item' => __( 'Add New Form', 'wp-user-frontend' ), - 'edit' => __( 'Edit', 'wp-user-frontend' ), - 'edit_item' => __( 'Edit Form', 'wp-user-frontend' ), - 'new_item' => __( 'New Form', 'wp-user-frontend' ), - 'view' => __( 'View Form', 'wp-user-frontend' ), - 'view_item' => __( 'View Form', 'wp-user-frontend' ), - 'search_items' => __( 'Search Form', 'wp-user-frontend' ), - 'not_found' => __( 'No Form Found', 'wp-user-frontend' ), - 'not_found_in_trash' => __( 'No Form Found in Trash', 'wp-user-frontend' ), - 'parent' => __( 'Parent Form', 'wp-user-frontend' ), - ], - ] - ); - - register_post_type( - 'wpuf_input', [ - 'public' => false, - 'show_ui' => false, - 'show_in_menu' => false, - ] - ); - } - - /** - * Initiate form builder for wpuf_forms post type - * - * @since 2.5 - * - * @return void - */ - public function post_forms_builder_init() { - if ( ! isset( $_GET['action'] ) ) { - return; - } - - if ( 'add-new' === $_GET['action'] && empty( $_GET['id'] ) ) { - $form_id = wpuf_create_sample_form( 'Sample Form', 'wpuf_forms', true ); - $add_new_page_url = add_query_arg( [ 'id' => $form_id ], admin_url( 'admin.php?page=wpuf-post-forms&action=edit' ) ); - wp_redirect( $add_new_page_url ); - } - - if ( ( 'edit' === $_GET['action'] ) && ! empty( $_GET['id'] ) ) { - add_action( 'wpuf-form-builder-tabs-post', [ $this, 'add_primary_tabs' ] ); - add_action( 'wpuf-form-builder-tab-contents-post', [ $this, 'add_primary_tab_contents' ] ); - add_action( 'wpuf-form-builder-settings-tabs-post', [ $this, 'add_settings_tabs' ] ); - add_action( 'wpuf-form-builder-settings-tab-contents-post', [ $this, 'add_settings_tab_contents' ] ); - add_filter( 'wpuf-form-fields-section-before', [ $this, 'add_post_field_section' ] ); - add_action( 'admin_enqueue_scripts', [ $this, 'admin_enqueue_scripts' ] ); - add_action( 'wpuf-form-builder-js-deps', [ $this, 'js_dependencies' ] ); - add_filter( 'wpuf-form-builder-js-root-mixins', [ $this, 'js_root_mixins' ] ); - add_filter( 'wpuf-form-builder-js-builder-stage-mixins', [ $this, 'js_builder_stage_mixins' ] ); - add_filter( 'wpuf-form-builder-js-field-options-mixins', [ $this, 'js_field_options_mixins' ] ); - add_action( 'wpuf-form-builder-template-builder-stage-submit-area', [ $this, 'add_form_submit_area' ] ); - add_action( 'wpuf-form-builder-localize-script', [ $this, 'add_to_localize_script' ] ); - add_filter( 'wpuf-form-fields', [ $this, 'add_field_settings' ] ); - add_filter( 'wpuf-form-builder-i18n', [ $this, 'i18n' ] ); - - do_action( 'wpuf-form-builder-init-type-wpuf_forms' ); - - $this->set_wp_post_types(); - - $settings = [ - 'form_type' => 'post', - 'post_type' => 'wpuf_forms', - 'post_id' => isset( $_GET['id'] ) ? intval( wp_unslash( $_GET['id'] ) ) : '', - 'form_settings_key' => $this->form_settings_key, - 'shortcodes' => [ [ 'name' => 'wpuf_form' ] ], - ]; - - new WPUF_Admin_Form_Builder( $settings ); - } - } - - /** - * Additional primary tabs - * - * @since 2.5 - * - * @return void - */ - public function add_primary_tabs() { - ?> - - - - - - - -
- -
- - - - - - - - - - - - - ID ); - ?> - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- form_post_expiration(); ?> -
- - - - get_subscriptions(); - - if ( ! $subscriptions ) { - printf( '', esc_html( __( '- Select -', 'wp-user-frontend' ) ) ); - - return; - } - - printf( '', esc_html( __( '- Select -', 'wp-user-frontend' ) ) ); - - foreach ( $subscriptions as $key => $subscription ) { - ?> - - __( 'Post Fields', 'wp-user-frontend' ), - 'id' => 'post-fields', - 'fields' => $post_fields, - ], - - [ - 'title' => __( 'Taxonomies', 'wp-user-frontend' ), - 'id' => 'taxonomies', - 'fields' => [], - ], - ]; - } - - /** - * Admin script form wpuf_forms form builder - * - * @since 2.5 - * - * @return void - */ - public function admin_enqueue_scripts() { - wp_register_script( - 'wpuf-form-builder-wpuf-forms', - WPUF_ASSET_URI . '/js/wpuf-form-builder-wpuf-forms.js', - [ 'jquery', 'underscore', 'wpuf-vue', 'wpuf-vuex' ], - WPUF_VERSION, - true - ); - } - - /** - * Add dependencies to form builder script - * - * @since 2.5 - * - * @param array $deps - * - * @return array - */ - public function js_dependencies( $deps ) { - $deps[] = 'wpuf-form-builder-wpuf-forms'; - - return apply_filters( 'wpuf-form-builder-wpuf-forms-js-deps', $deps ); - } - - /** - * Add mixins to root instance - * - * @since 2.5 - * - * @param array $mixins - * - * @return array - */ - public function js_root_mixins( $mixins ) { - array_push( $mixins, 'wpuf_forms_mixin_root' ); - - return $mixins; - } - - /** - * Add mixins to form builder builder stage component - * - * @since 2.5 - * - * @param array $mixins - * - * @return array - */ - public function js_builder_stage_mixins( $mixins ) { - array_push( $mixins, 'wpuf_forms_mixin_builder_stage' ); - - return $mixins; - } - - /** - * Add mixins to form builder field options component - * - * @since 2.5 - * - * @param array $mixins - * - * @return array - */ - public function js_field_options_mixins( $mixins ) { - array_push( $mixins, 'wpuf_forms_mixin_field_options' ); - - return $mixins; - } - - /** - * Add buttons in form submit area - * - * @since 2.5 - * - * @return void - */ - public function add_form_submit_area() { - ?> - - - - - - true ]; - - $wpuf_post_types = wpuf_get_post_types( $args ); - - $ignore_taxonomies = apply_filters( - 'wpuf-ignore-taxonomies', [ - 'post_format', - ] - ); - - foreach ( $wpuf_post_types as $post_type ) { - $this->wp_post_types[ $post_type ] = []; - - $taxonomies = get_object_taxonomies( $post_type, 'object' ); - - foreach ( $taxonomies as $tax_name => $taxonomy ) { - if ( ! in_array( $tax_name, $ignore_taxonomies ) ) { - $this->wp_post_types[ $post_type ][ $tax_name ] = [ - 'title' => $taxonomy->label, - 'hierarchical' => $taxonomy->hierarchical, - ]; - - $this->wp_post_types[ $post_type ][ $tax_name ]['terms'] = get_terms( - [ - 'taxonomy' => $tax_name, - 'hide_empty' => false, - ] - ); - } - } - } - } - - /** - * Add data to localize_script - * - * @since 2.5 - * - * @param array $data - * - * @return array - */ - public function add_to_localize_script( $data ) { - return array_merge( - $data, [ - 'wp_post_types' => $this->wp_post_types, - ] - ); - } - - /** - * Add field settings - * - * @since 2.5 - * - * @param array $field_settings - * - * @return array - */ - public function add_field_settings( $field_settings ) { - if ( class_exists( 'WPUF_Field_Contract' ) ) { - require_once WPUF_ROOT . '/includes/fields/class-field-post-title.php'; - require_once WPUF_ROOT . '/includes/fields/class-field-post-content.php'; - require_once WPUF_ROOT . '/includes/fields/class-field-post-tags.php'; - require_once WPUF_ROOT . '/includes/fields/class-field-post-excerpt.php'; - require_once WPUF_ROOT . '/includes/fields/class-field-post-taxonomy.php'; - require_once WPUF_ROOT . '/includes/fields/class-field-featured-image.php'; - - $field_settings['post_title'] = new WPUF_Form_Field_Post_Title(); - $field_settings['post_content'] = new WPUF_Form_Field_Post_Content(); - $field_settings['post_excerpt'] = new WPUF_Form_Field_Post_Excerpt(); - $field_settings['featured_image'] = new WPUF_Form_Field_Featured_Image(); - - $taxonomy_templates = []; - - foreach ( $this->wp_post_types as $post_type => $taxonomies ) { - if ( ! empty( $taxonomies ) ) { - foreach ( $taxonomies as $tax_name => $taxonomy ) { - if ( 'post_tag' === $tax_name ) { - $taxonomy_templates['post_tag'] = new WPUF_Form_Field_Post_Tags(); - } else { - $taxonomy_templates[ $tax_name ] = new WPUF_Form_Field_Post_Taxonomy( $tax_name, $taxonomy ); - // $taxonomy_templates[ 'taxonomy' ] = new WPUF_Form_Field_Post_Taxonomy($tax_name, $taxonomy); - } - } - } - } - - $field_settings = array_merge( $field_settings, $taxonomy_templates ); - } - - return $field_settings; - } - - /** - * i18n strings specially for Post Forms - * - * @since 2.5 - * - * @param array $i18n - * - * @return array - */ - public function i18n( $i18n ) { - return array_merge( - $i18n, [ - 'any_of_three_needed' => __( 'Post Forms must have either Post Title, Post Body or Excerpt field', 'wp-user-frontend' ), - ] - ); - } -} diff --git a/admin/html/whats-new.php b/admin/html/whats-new.php index eb7dca855..ea3019d50 100644 --- a/admin/html/whats-new.php +++ b/admin/html/whats-new.php @@ -1216,7 +1216,7 @@ [ 'title' => __( 'Fatal error when use PHP lower version (5.4 or lower)', 'wp-user-frontend' ), 'type' => 'Fix', - 'description' => __( "It was unable to install WP User Frontend with PHP 5.4 or lower version. Here is the error details:

Fatal error: Can't use method return value in write context in /wp-user-frontend/class/frontend-form-post.php on line 194", 'wp-user-frontend' ), + 'description' => __( "It was unable to install WP User Frontend with PHP 5.4 or lower version. Here is the error details:

Fatal error: Can't use method return value in write context in /wp-user-frontend/class/frontend-form-WPUF_Post_Form_Template_Post.php on line 194", 'wp-user-frontend' ), ], [ 'title' => __( 'Product form was unable to show the single gallery image', 'wp-user-frontend' ), diff --git a/admin/posting.php b/admin/posting.php index 542648e21..478b0bfef 100644 --- a/admin/posting.php +++ b/admin/posting.php @@ -33,7 +33,7 @@ public static function init() { public function enqueue_script() { global $pagenow; - if ( !in_array( $pagenow, [ 'profile.php', 'post-new.php', 'post.php', 'user-edit.php' ] ) ) { + if ( !in_array( $pagenow, [ 'profile.php', 'post-new.php', 'WPUF_Post_Form_Template_Post.php', 'user-edit.php' ] ) ) { return; } diff --git a/class/admin-asset-loader.php b/class/admin-asset-loader.php index 9c2032fd7..6ea2e0d45 100644 --- a/class/admin-asset-loader.php +++ b/class/admin-asset-loader.php @@ -42,7 +42,7 @@ public function register_admin_scripts() { * Data required for building the form */ require_once WPUF_ROOT . '/admin/form-builder/class-wpuf-form-builder-field-settings.php'; - require_once WPUF_ROOT . '/includes/free/prompt.php'; + require_once WPUF_ROOT . '/includes/Free/WPUF_Pro_Prompt.php'; $wpuf_form_builder = apply_filters( 'wpuf-form-builder-localize-script', [ 'post' => $post, diff --git a/class/frontend-account.php b/class/frontend-account.php index 987b14194..18fe97bc6 100644 --- a/class/frontend-account.php +++ b/class/frontend-account.php @@ -133,7 +133,7 @@ public function submit_post_section( $sections, $current_section ) { } wpuf_load_template( - 'submit-post.php', + 'submit-WPUF_Post_Form_Template_Post.php', [ 'sections' => $sections, 'current_section' => $current_section, @@ -247,7 +247,7 @@ public function subscription_section( $sections, $current_section ) { $user_subscription = new WPUF_User_Subscription( $wpuf_user ); $user_sub = $user_subscription->current_pack(); - if ( ! is_wp_error( $user_sub ) && $user_sub['status'] !== 'completed' && $user_sub['status'] !== 'free' ) { + if ( ! is_wp_error( $user_sub ) && $user_sub['status'] !== 'completed' && $user_sub['status'] !== 'Free' ) { esc_html_e( '

You may have processed your payment, but the pack is not active yet.

', 'wp-user-frontend' ); return; @@ -273,7 +273,7 @@ public function subscription_section( $sections, $current_section ) { ob_start(); wpuf_load_template( - 'dashboard/subscription.php', + 'dashboard/WPUF_Subscription_Element.php', [ 'sections' => $sections, 'current_section' => $current_section, @@ -300,7 +300,7 @@ public function subscription_section( $sections, $current_section ) { */ public function edit_profile_section( $sections, $current_section ) { wpuf_load_template( - 'dashboard/edit-profile.php', + 'dashboard/WPUF_Edit_Profile.php', [ 'sections' => $sections, 'current_section' => $current_section, diff --git a/class/payment.php b/class/payment.php index 1a36ded00..8ee19759c 100644 --- a/class/payment.php +++ b/class/payment.php @@ -128,12 +128,12 @@ public function payment_page( $content ) { $wpuf_user = new WPUF_User( $current_user->ID ); if ( ! $wpuf_user->subscription()->used_free_pack( $pack_id ) ) { - wpuf_get_user( $current_user->ID )->subscription()->add_pack( $pack_id, null, false, 'free' ); + wpuf_get_user( $current_user->ID )->subscription()->add_pack( $pack_id, null, false, 'Free' ); $wpuf_user->subscription()->add_free_pack( $current_user->ID, $pack_id ); - $message = apply_filters( 'wpuf_fp_activated_msg', __( 'Your free package has been activated. Enjoy!', 'wp-user-frontend' ) ); + $message = apply_filters( 'wpuf_fp_activated_msg', __( 'Your Free package has been activated. Enjoy!', 'wp-user-frontend' ) ); } else { - $message = apply_filters( 'wpuf_fp_activated_error', __( 'You already have activated a free package previously.', 'wp-user-frontend' ) ); + $message = apply_filters( 'wpuf_fp_activated_error', __( 'You already have activated a Free package previously.', 'wp-user-frontend' ) ); } ?>
diff --git a/class/transactions-list-table.php b/class/transactions-list-table.php index 06bf84455..1a9d08e94 100644 --- a/class/transactions-list-table.php +++ b/class/transactions-list-table.php @@ -175,10 +175,10 @@ public function column_default( $item, $column_name ) { return wpuf_format_price( $item->tax ); case 'post_id': - return ! empty( $item->post_id ) ? sprintf( '%s', admin_url( 'post.php?post=' . $item->post_id . '&action=edit' ), $item->post_id ) : '-'; + return ! empty( $item->post_id ) ? sprintf( '%s', admin_url( 'WPUF_Post_Form_Template_Post.php?post=' . $item->post_id . '&action=edit' ), $item->post_id ) : '-'; case 'pack_id': - return ! empty( $item->pack_id ) ? sprintf( '%s', admin_url( 'post.php?post=' . $item->pack_id . '&action=edit' ), $item->pack_id ) : '-'; + return ! empty( $item->pack_id ) ? sprintf( '%s', admin_url( 'WPUF_Post_Form_Template_Post.php?post=' . $item->pack_id . '&action=edit' ), $item->pack_id ) : '-'; case 'payer': return ! empty( $item->payer_first_name ) ? $item->payer_first_name . ' ' . $item->payer_last_name : '-'; diff --git a/composer.lock b/composer.lock index 2e00bec1c..67e4dc0bc 100644 --- a/composer.lock +++ b/composer.lock @@ -12,17 +12,26 @@ "source": { "type": "git", "url": "https://github.com/Appsero/client.git", - "reference": "07608b10580c877fa0c05e20218cf4cbc8cb8187" + "reference": "985363ac0bd17d8cfaa45b0e6780ad68ccfe3ca8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Appsero/client/zipball/07608b10580c877fa0c05e20218cf4cbc8cb8187", - "reference": "07608b10580c877fa0c05e20218cf4cbc8cb8187", + "url": "https://api.github.com/repos/Appsero/client/zipball/985363ac0bd17d8cfaa45b0e6780ad68ccfe3ca8", + "reference": "985363ac0bd17d8cfaa45b0e6780ad68ccfe3ca8", "shasum": "" }, "require": { - "php": ">=5.3" + "php": ">=5.6" }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.2", + "phpcompatibility/phpcompatibility-wp": "dev-master", + "phpunit/phpunit": "^8.5.31", + "squizlabs/php_codesniffer": "^3.7", + "tareq1988/wp-php-cs-fixer": "dev-master", + "wp-coding-standards/wpcs": "dev-develop" + }, + "default-branch": true, "type": "library", "autoload": { "psr-4": { @@ -46,42 +55,46 @@ "theme", "wordpress" ], - "time": "2020-11-06T08:16:38+00:00" + "support": { + "issues": "https://github.com/Appsero/client/issues", + "source": "https://github.com/Appsero/client/tree/develop" + }, + "time": "2023-03-30T06:42:02+00:00" }, { "name": "composer/installers", - "version": "dev-master", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/composer/installers.git", - "reference": "f69761fc0d3f77629d89c1897b84d327188aa27f" + "reference": "2a9170263fcd9cc4fd0b50917293c21d6c1a5bfe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/installers/zipball/f69761fc0d3f77629d89c1897b84d327188aa27f", - "reference": "f69761fc0d3f77629d89c1897b84d327188aa27f", + "url": "https://api.github.com/repos/composer/installers/zipball/2a9170263fcd9cc4fd0b50917293c21d6c1a5bfe", + "reference": "2a9170263fcd9cc4fd0b50917293c21d6c1a5bfe", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0 || ^2.0" - }, - "replace": { - "roundcube/plugin-installer": "*", - "shama/baton": "*" + "composer-plugin-api": "^1.0 || ^2.0", + "php": "^7.2 || ^8.0" }, "require-dev": { - "composer/composer": "1.6.* || 2.0.*@dev", + "composer/composer": "1.6.* || ^2.0", "composer/semver": "^1 || ^3", - "phpunit/phpunit": "^4.8.36", - "sebastian/comparator": "^1.2.4", - "symfony/process": "^2.3" + "phpstan/phpstan": "^0.12.55", + "phpstan/phpstan-phpunit": "^0.12.16", + "symfony/phpunit-bridge": "^5.3", + "symfony/process": "^5" }, + "default-branch": true, "type": "composer-plugin", "extra": { "class": "Composer\\Installers\\Plugin", "branch-alias": { - "dev-master": "1.0-dev" - } + "dev-main": "2.x-dev" + }, + "plugin-modifies-install-path": true }, "autoload": { "psr-4": { @@ -102,7 +115,6 @@ "description": "A multi-framework Composer library installer", "homepage": "https://composer.github.io/installers/", "keywords": [ - "Craft", "Dolibarr", "Eliasis", "Hurad", @@ -118,11 +130,11 @@ "Porto", "RadPHP", "SMF", + "Starbug", "Thelia", "Whmcs", "WolfCMS", "agl", - "aimeos", "annotatecms", "attogram", "bitrix", @@ -141,7 +153,6 @@ "grav", "installer", "itop", - "joomla", "known", "kohana", "laravel", @@ -150,14 +161,18 @@ "magento", "majima", "mako", + "matomo", "mediawiki", + "miaoxing", "modulework", "modx", "moodle", "osclass", + "pantheon", "phpbb", "piwik", "ppi", + "processwire", "puppet", "pxcms", "reindex", @@ -166,13 +181,16 @@ "silverstripe", "sydes", "sylius", - "symfony", - "typo3", + "tastyigniter", "wordpress", "yawik", "zend", "zikula" ], + "support": { + "issues": "https://github.com/composer/installers/issues", + "source": "https://github.com/composer/installers/tree/main" + }, "funding": [ { "url": "https://packagist.com", @@ -187,7 +205,7 @@ "type": "tidelift" } ], - "time": "2020-10-16T10:26:25+00:00" + "time": "2022-10-12T12:07:30+00:00" } ], "packages-dev": [ @@ -255,40 +273,83 @@ "stylecheck", "tests" ], + "support": { + "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", + "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" + }, "time": "2020-06-25T14:57:39+00:00" }, + { + "name": "doctrine/deprecations", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", + "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", + "shasum": "" + }, + "require": { + "php": "^7.1|^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpunit/phpunit": "^7.5|^8.5|^9.5", + "psr/log": "^1|^2|^3" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/v1.0.0" + }, + "time": "2022-05-02T15:47:09+00:00" + }, { "name": "doctrine/instantiator", - "version": "dev-master", + "version": "1.5.x-dev", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "3e7a22aed197e9333cc929e7f6b4300bdae91fcc" + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/3e7a22aed197e9333cc929e7f6b4300bdae91fcc", - "reference": "3e7a22aed197e9333cc929e7f6b4300bdae91fcc", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", + "doctrine/coding-standard": "^9 || ^11", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.30 || ^5.4" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" @@ -302,7 +363,7 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "homepage": "https://ocramius.github.io/" } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", @@ -311,6 +372,10 @@ "constructor", "instantiate" ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.5.0" + }, "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", @@ -325,7 +390,7 @@ "type": "tidelift" } ], - "time": "2020-06-15T18:51:04+00:00" + "time": "2022-12-30T00:15:36+00:00" }, { "name": "myclabs/deep-copy", @@ -333,33 +398,36 @@ "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "00aba97fc36feabc8d94667eebd5d43959e60008" + "reference": "928a96f585b86224ebc78f8f09d0482cf15b04f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/00aba97fc36feabc8d94667eebd5d43959e60008", - "reference": "00aba97fc36feabc8d94667eebd5d43959e60008", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/928a96f585b86224ebc78f8f09d0482cf15b04f5", + "reference": "928a96f585b86224ebc78f8f09d0482cf15b04f5", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, - "replace": { - "myclabs/deep-copy": "self.version" + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, + "default-branch": true, "type": "library", "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, "files": [ "src/DeepCopy/deep_copy.php" - ] + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -373,13 +441,17 @@ "object", "object graph" ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.x" + }, "funding": [ { "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", "type": "tidelift" } ], - "time": "2020-10-01T09:35:15+00:00" + "time": "2023-03-08T17:24:01+00:00" }, { "name": "phar-io/manifest", @@ -434,6 +506,10 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/master" + }, "time": "2018-07-08T19:23:20+00:00" }, { @@ -481,6 +557,10 @@ } ], "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/master" + }, "time": "2018-07-08T19:19:57+00:00" }, { @@ -539,32 +619,36 @@ "phpcs", "standards" ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibility" + }, "time": "2019-12-27T09:44:58+00:00" }, { "name": "phpcompatibility/phpcompatibility-paragonie", - "version": "1.3.0", + "version": "1.3.2", "source": { "type": "git", "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git", - "reference": "b862bc32f7e860d0b164b199bd995e690b4b191c" + "reference": "bba5a9dfec7fcfbd679cfaf611d86b4d3759da26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/b862bc32f7e860d0b164b199bd995e690b4b191c", - "reference": "b862bc32f7e860d0b164b199bd995e690b4b191c", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/bba5a9dfec7fcfbd679cfaf611d86b4d3759da26", + "reference": "bba5a9dfec7fcfbd679cfaf611d86b4d3759da26", "shasum": "" }, "require": { "phpcompatibility/php-compatibility": "^9.0" }, "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.5", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7", "paragonie/random_compat": "dev-master", "paragonie/sodium_compat": "dev-master" }, "suggest": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." }, "type": "phpcodesniffer-standard", @@ -589,9 +673,14 @@ "paragonie", "phpcs", "polyfill", - "standards" + "standards", + "static analysis" ], - "time": "2019-11-04T15:17:54+00:00" + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie" + }, + "time": "2022-10-25T01:46:02+00:00" }, { "name": "phpcompatibility/phpcompatibility-wp", @@ -599,12 +688,12 @@ "source": { "type": "git", "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git", - "reference": "1ef9c71f294470ff44493cfd305b6c48a18079f6" + "reference": "262f9d81273932315d15d704f69b9d678b939cb3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/1ef9c71f294470ff44493cfd305b6c48a18079f6", - "reference": "1ef9c71f294470ff44493cfd305b6c48a18079f6", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/262f9d81273932315d15d704f69b9d678b939cb3", + "reference": "262f9d81273932315d15d704f69b9d678b939cb3", "shasum": "" }, "require": { @@ -612,12 +701,13 @@ "phpcompatibility/phpcompatibility-paragonie": "^1.0" }, "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6" + "dealerdirect/phpcodesniffer-composer-installer": "^1.0" }, "suggest": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", + "dealerdirect/phpcodesniffer-composer-installer": "^1.0 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." }, + "default-branch": true, "type": "phpcodesniffer-standard", "notification-url": "https://packagist.org/downloads/", "license": [ @@ -639,9 +729,14 @@ "compatibility", "phpcs", "standards", + "static analysis", "wordpress" ], - "time": "2020-07-11T18:28:40+00:00" + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibilityWP/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibilityWP" + }, + "time": "2023-01-05T13:34:27+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -649,12 +744,12 @@ "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "cf8df60735d98fd18070b7cab0019ba0831e219c" + "reference": "a0eeab580cbdf4414fef6978732510a36ed0a9d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/cf8df60735d98fd18070b7cab0019ba0831e219c", - "reference": "cf8df60735d98fd18070b7cab0019ba0831e219c", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/a0eeab580cbdf4414fef6978732510a36ed0a9d6", + "reference": "a0eeab580cbdf4414fef6978732510a36ed0a9d6", "shasum": "" }, "require": { @@ -690,7 +785,11 @@ "reflection", "static analysis" ], - "time": "2020-06-19T17:42:03+00:00" + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/master" + }, + "time": "2021-06-25T13:47:51+00:00" }, { "name": "phpdocumentor/reflection-docblock", @@ -698,24 +797,32 @@ "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" + "reference": "7b217217725dc991a0ae7b995041cee1d5019561" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/7b217217725dc991a0ae7b995041cee1d5019561", + "reference": "7b217217725dc991a0ae7b995041cee1d5019561", "shasum": "" }, "require": { "ext-filter": "*", "php": "^7.2 || ^8.0", "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", + "phpdocumentor/type-resolver": "1.x-dev@dev", + "phpstan/phpdoc-parser": "^1.7", "webmozart/assert": "^1.9.1" }, "require-dev": { - "mockery/mockery": "~1.3.2" - }, + "mockery/mockery": "~1.3.5", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-webmozart-assert": "^1.2", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^4.26" + }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -742,7 +849,11 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2020-09-03T19:13:55+00:00" + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" + }, + "time": "2023-03-12T10:50:44+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -750,21 +861,31 @@ "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" + "reference": "dfc078e8af9c99210337325ff5aa152872c98714" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/dfc078e8af9c99210337325ff5aa152872c98714", + "reference": "dfc078e8af9c99210337325ff5aa152872c98714", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" + "doctrine/deprecations": "^1.0", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.13" }, "require-dev": { - "ext-tokenizer": "*" - }, + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -787,7 +908,11 @@ } ], "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2020-09-17T18:55:26+00:00" + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.1" + }, + "time": "2023-03-27T19:02:04+00:00" }, { "name": "phpspec/prophecy", @@ -795,29 +920,31 @@ "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "8ce87516be71aae9b956f81906aaf0338e0d8a2d" + "reference": "84c981450d81f03ec8eb64380ab32cac98093bde" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/8ce87516be71aae9b956f81906aaf0338e0d8a2d", - "reference": "8ce87516be71aae9b956f81906aaf0338e0d8a2d", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/84c981450d81f03ec8eb64380ab32cac98093bde", + "reference": "84c981450d81f03ec8eb64380ab32cac98093bde", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.1", + "doctrine/instantiator": "^1.2 || ^2.0", + "php": "^7.2 || 8.0.* || 8.1.* || 8.2.*", "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" + "sebastian/comparator": "^3.0 || ^4.0 || ^5.0", + "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0" }, "require-dev": { - "phpspec/phpspec": "^6.0", - "phpunit/phpunit": "^8.0 || ^9.0 <9.3" + "phpspec/phpspec": "^6.0 || ^7.0", + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^8.0 || ^9.0 || ^10.0" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -850,7 +977,58 @@ "spy", "stub" ], - "time": "2020-09-29T09:10:42+00:00" + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/master" + }, + "time": "2023-04-12T15:43:51+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.21.x-dev", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "7f78fd1ff463a7884a331fdb84a25f724dbfd9ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/7f78fd1ff463a7884a331fdb84a25f724dbfd9ea", + "reference": "7f78fd1ff463a7884a331fdb84a25f724dbfd9ea", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "nikic/php-parser": "^4.15", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "default-branch": true, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.21.x" + }, + "time": "2023-05-17T16:44:57+00:00" }, { "name": "phpunit/php-code-coverage", @@ -913,27 +1091,31 @@ "testing", "xunit" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/master" + }, "time": "2018-10-31T16:06:48+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "2.0.2", + "version": "2.0.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "050bedf145a257b1ff02746c31894800e5122946" + "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", - "reference": "050bedf145a257b1ff02746c31894800e5122946", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", + "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -963,7 +1145,17 @@ "filesystem", "iterator" ], - "time": "2018-09-13T20:33:42+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:42:26+00:00" }, { "name": "phpunit/php-text-template", @@ -1004,27 +1196,31 @@ "keywords": [ "template" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + }, "time": "2015-06-21T13:50:34+00:00" }, { "name": "phpunit/php-timer", - "version": "2.1.2", + "version": "2.1.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1053,7 +1249,17 @@ "keywords": [ "timer" ], - "time": "2019-06-07T04:22:29+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:20:02+00:00" }, { "name": "phpunit/php-token-stream", @@ -1061,17 +1267,17 @@ "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" + "reference": "9c1da83261628cb24b6a6df371b6e312b3954768" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9c1da83261628cb24b6a6df371b6e312b3954768", + "reference": "9c1da83261628cb24b6a6df371b6e312b3954768", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^7.0" @@ -1102,8 +1308,18 @@ "keywords": [ "tokenizer" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/3.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "abandoned": true, - "time": "2019-09-17T06:23:10+00:00" + "time": "2021-07-26T12:15:06+00:00" }, { "name": "phpunit/phpunit", @@ -1187,27 +1403,31 @@ "testing", "xunit" ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/7.5.9" + }, "time": "2019-04-19T15:50:46+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "version": "1.0.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=5.6" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1232,29 +1452,39 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:15:22+00:00" }, { "name": "sebastian/comparator", - "version": "3.0.2", + "version": "3.0.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dc7ceb4a24aede938c7af2a9ed1de09609ca770", + "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770", "shasum": "" }, "require": { - "php": "^7.1", + "php": ">=7.1", "sebastian/diff": "^3.0", "sebastian/exporter": "^3.1" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1272,6 +1502,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -1283,10 +1517,6 @@ { "name": "Bernhard Schussek", "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" } ], "description": "Provides the functionality to compare PHP values for equality", @@ -1296,24 +1526,34 @@ "compare", "equality" ], - "time": "2018-07-12T15:12:46+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:31:48+00:00" }, { "name": "sebastian/diff", - "version": "3.0.2", + "version": "3.0.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" + "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/6296a0c086dd0117c1b78b059374d7fcbe7545ae", + "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^7.5 || ^8.0", @@ -1335,13 +1575,13 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], "description": "Diff implementation", @@ -1352,24 +1592,34 @@ "unidiff", "unified diff" ], - "time": "2019-02-04T06:01:07+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/3.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-05-07T05:30:20+00:00" }, { "name": "sebastian/environment", - "version": "4.2.3", + "version": "4.2.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" + "reference": "a8cb2aa3eca438e75a4b7895f04bc8f5f990bc49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", - "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a8cb2aa3eca438e75a4b7895f04bc8f5f990bc49", + "reference": "a8cb2aa3eca438e75a4b7895f04bc8f5f990bc49", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^7.5" @@ -1405,29 +1655,39 @@ "environment", "hhvm" ], - "time": "2019-11-20T08:46:58+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/4.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-08-17T14:54:22+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.2", + "version": "3.1.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" + "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/73a9676f2833b9a7c36968f9d882589cd75511e6", + "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6", "shasum": "" }, "require": { - "php": "^7.0", + "php": ">=7.0", "sebastian/recursion-context": "^3.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1472,7 +1732,17 @@ "export", "exporter" ], - "time": "2019-09-14T09:02:43+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/3.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:00:17+00:00" }, { "name": "sebastian/global-state", @@ -1523,24 +1793,28 @@ "keywords": [ "global state" ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/2.0.0" + }, "time": "2017-04-27T15:39:26+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.3", + "version": "3.0.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", "shasum": "" }, "require": { - "php": "^7.0", + "php": ">=7.0", "sebastian/object-reflector": "^1.1.1", "sebastian/recursion-context": "^3.0" }, @@ -1570,24 +1844,34 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:40:27+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.1", + "version": "1.1.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.0" }, "require-dev": { "phpunit/phpunit": "^6.0" @@ -1615,24 +1899,34 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:37:18+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.0", + "version": "3.0.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.0" }, "require-dev": { "phpunit/phpunit": "^6.0" @@ -1653,14 +1947,14 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, { "name": "Adam Harvey", "email": "aharvey@php.net" @@ -1668,24 +1962,34 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:34:24+00:00" }, { "name": "sebastian/resource-operations", - "version": "2.0.1", + "version": "2.0.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "type": "library", "extra": { @@ -1710,7 +2014,17 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2018-10-04T04:07:39+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:30:19+00:00" }, { "name": "sebastian/version", @@ -1753,6 +2067,10 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/master" + }, "time": "2016-10-03T07:35:21+00:00" }, { @@ -1761,12 +2079,12 @@ "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "7c01187e14b8e56f2bc358915a466c35b8f84eb8" + "reference": "a26c071d00b415bba26cedd8f835fca6288cf6b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/7c01187e14b8e56f2bc358915a466c35b8f84eb8", - "reference": "7c01187e14b8e56f2bc358915a466c35b8f84eb8", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/a26c071d00b415bba26cedd8f835fca6288cf6b9", + "reference": "a26c071d00b415bba26cedd8f835fca6288cf6b9", "shasum": "" }, "require": { @@ -1778,6 +2096,7 @@ "require-dev": { "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, + "default-branch": true, "bin": [ "bin/phpcs", "bin/phpcbf" @@ -1802,85 +2121,15 @@ "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", "keywords": [ "phpcs", - "standards" + "standards", + "static analysis" ], - "time": "2020-10-26T22:22:45+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "1c302646f6efc070cd46856e600e5e0684d6b454" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/1c302646f6efc070cd46856e600e5e0684d6b454", - "reference": "1c302646f6efc070cd46856e600e5e0684d6b454", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.18-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2023-05-07T04:45:11+00:00" }, { "name": "tareq1988/wp-php-cs-fixer", @@ -1888,14 +2137,15 @@ "source": { "type": "git", "url": "https://github.com/tareq1988/wp-php-cs-fixer.git", - "reference": "56b9c1dd2b979a4ff7a25afa2e1c6b290a5ae876" + "reference": "eeef65598ae7bac55a09073e666ec0eabf303a12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tareq1988/wp-php-cs-fixer/zipball/56b9c1dd2b979a4ff7a25afa2e1c6b290a5ae876", - "reference": "56b9c1dd2b979a4ff7a25afa2e1c6b290a5ae876", + "url": "https://api.github.com/repos/tareq1988/wp-php-cs-fixer/zipball/eeef65598ae7bac55a09073e666ec0eabf303a12", + "reference": "eeef65598ae7bac55a09073e666ec0eabf303a12", "shasum": "" }, + "default-branch": true, "type": "library", "autoload": { "psr-4": { @@ -1913,20 +2163,24 @@ } ], "description": "WordPress rules for php-cs-fixer", - "time": "2020-09-21T09:47:38+00:00" + "support": { + "issues": "https://github.com/tareq1988/wp-php-cs-fixer/issues", + "source": "https://github.com/tareq1988/wp-php-cs-fixer/tree/master" + }, + "time": "2022-08-26T09:36:52+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "75a63c33a8577608444246075ea0af0d052e452a" + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", - "reference": "75a63c33a8577608444246075ea0af0d052e452a", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", "shasum": "" }, "require": { @@ -1953,40 +2207,49 @@ } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, "funding": [ { "url": "https://github.com/theseer", "type": "github" } ], - "time": "2020-07-12T23:59:07+00:00" + "time": "2021-07-28T10:34:58+00:00" }, { "name": "webmozart/assert", - "version": "1.9.1", + "version": "1.11.0", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", - "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0 || ^8.0", - "symfony/polyfill-ctype": "^1.8" + "ext-ctype": "*", + "php": "^7.2 || ^8.0" }, "conflict": { "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<3.9.1" + "vimeo/psalm": "<4.6.1 || 4.6.2" }, "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^7.5.13" + "phpunit/phpunit": "^8.5.13" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, "autoload": { "psr-4": { "Webmozart\\Assert\\": "src/" @@ -2008,7 +2271,11 @@ "check", "validate" ], - "time": "2020-07-08T17:02:28+00:00" + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" }, { "name": "wp-coding-standards/wpcs", @@ -2054,6 +2321,11 @@ "standards", "wordpress" ], + "support": { + "issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues", + "source": "https://github.com/WordPress/WordPress-Coding-Standards", + "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki" + }, "time": "2020-05-13T23:57:56+00:00" } ], @@ -2071,5 +2343,5 @@ "php": ">=5.4.0" }, "platform-dev": [], - "plugin-api-version": "1.1.0" + "plugin-api-version": "2.3.0" } diff --git a/includes/Admin.php b/includes/Admin.php index f84cf3ece..46adf1a0d 100644 --- a/includes/Admin.php +++ b/includes/Admin.php @@ -5,5 +5,15 @@ class Admin { function __construct() { wpuf()->add_to_container( 'menu', new Admin\Menu() ); + + wpuf()->add_to_container( 'form_template', new Admin\PostFormTemplates\WPUF_Admin_Form_Template() ); + wpuf()->add_to_container( 'admin_form', new Admin\WPUF_Admin_Form() ); + + // bind the tasks that needs to be done after menu is created. for hook sequence purpose + // add_action( 'admin_init', [ $this, 'admin_init' ] ); + } + + public function admin_init() { + } } diff --git a/includes/Admin/Menu.php b/includes/Admin/Menu.php index 1515db14a..03bb11c30 100644 --- a/includes/Admin/Menu.php +++ b/includes/Admin/Menu.php @@ -3,6 +3,8 @@ namespace Wp\User\Frontend\Admin; class Menu { + private $all_submenu_hooks = []; + function __construct() { add_action( 'admin_menu', [ $this, 'admin_menu' ] ); } @@ -12,6 +14,28 @@ public function admin_menu() { $wpuf_icon = 'data:image/svg+xml;base64,' . base64_encode( '' ); add_menu_page( __( 'WP User Frontend', 'wp-user-frontend' ), __( 'User Frontend', 'wp-user-frontend' ), $capability, 'wp-user-frontend', [ $this, 'wpuf_post_forms_page' ], $wpuf_icon, '54.2' ); + + $post_forms_hook = add_submenu_page('wp-user-frontend', __('Post Forms', 'wp-user-frontend'), __('Post Forms', 'wp-user-frontend'), $capability, 'wpuf-post-forms', [ $this, 'wpuf_post_forms_page' ]); + $this->all_submenu_hooks['post_forms'] = $post_forms_hook; + + // remove the toplevel menu item + remove_submenu_page( 'wp-user-frontend', 'wp-user-frontend' ); + + /* + * @since 2.3 + */ + do_action( 'wpuf_admin_menu_top' ); + + foreach ( $this->all_submenu_hooks as $submenu_hook ) { + add_action( $submenu_hook, [ $this, 'enqueue_common_admin_scripts' ] ); + } + + add_action( 'load-' . $this->all_submenu_hooks['post_forms'], [ wpuf()->admin_form, 'post_forms_builder_init' ] ); + } + + public function enqueue_common_admin_scripts() { + wp_enqueue_style( 'wpuf-admin' ); + wp_enqueue_script( 'wpuf-admin' ); } public function wpuf_post_forms_page() { @@ -21,12 +45,24 @@ public function wpuf_post_forms_page() { switch ( $action ) { case 'edit': case 'add-new': - require_once WPUF_ROOT . '/views/post-form.php'; + require_once WPUF_INCLUDES . '/Admin/views/post-form.php'; break; default: - require_once WPUF_ROOT . '/admin/post-forms-list-table-view.php'; + require_once WPUF_INCLUDES . '/Admin/views/post-forms-list-table-view.php'; break; } } + + public function set_main_menu_hook( $hook ) { + $this->main_menu_hook = $hook; + } + + public function get_main_menu_hook() { + return $this->main_menu_hook; + } + + public function get_all_submenu_hooks() { + return $this->all_submenu_hooks; + } } diff --git a/admin/form-template.php b/includes/Admin/PostFormTemplates/WPUF_Admin_Form_Template.php similarity index 98% rename from admin/form-template.php rename to includes/Admin/PostFormTemplates/WPUF_Admin_Form_Template.php index 6c85c2ec0..94595a89c 100644 --- a/admin/form-template.php +++ b/includes/Admin/PostFormTemplates/WPUF_Admin_Form_Template.php @@ -1,5 +1,7 @@ 'post-form', 'plural' => 'post-forms', @@ -260,7 +262,7 @@ public function item_query( $args ) { $args['post_type'] = 'wpuf_forms'; - $query = new WP_Query( $args ); + $query = new \WP_Query( $args ); $forms = []; diff --git a/class/post-form-template.php b/includes/Admin/PostFormTemplates/WPUF_Post_Form_Template.php similarity index 98% rename from class/post-form-template.php rename to includes/Admin/PostFormTemplates/WPUF_Post_Form_Template.php index 72024d947..9cbef23c3 100644 --- a/class/post-form-template.php +++ b/includes/Admin/PostFormTemplates/WPUF_Post_Form_Template.php @@ -1,5 +1,7 @@ enabled = class_exists( 'Tribe__Events__Main' ); $this->title = __( 'The Events Calendar', 'wp-user-frontend' ); - $this->description = __( 'Form for creating events. The Events Calendar plugin is required.', 'wp-user-frontend' ); + $this->description = __( 'Form for creating events. The Events Calendar plugin is required.', + 'wp-user-frontend' ); $this->image = WPUF_ASSET_URI . '/images/templates/post.png'; $this->form_fields = [ [ @@ -86,7 +89,7 @@ public function __construct() { 'yes' => 'Yes', 'no' => 'No', ], - 'wpuf_cond' => $this->conditionals, + 'wpuf_cond' => $this->conditionals, ], [ 'input_type' => 'url', @@ -165,27 +168,28 @@ public function __construct() { 'wpuf_cond' => $this->conditionals, ], ]; - $this->form_settings = [ - 'post_type' => 'tribe_events', - 'post_status' => 'publish', - 'default_cat' => '-1', - 'guest_post' => 'false', - 'message_restrict' => __( 'This page is restricted. Please Log in / Register to view this page.', 'wp-user-frontend' ), - 'redirect_to' => 'post', - 'comment_status' => 'open', - 'submit_text' => __( 'Create Event', 'wp-user-frontend' ), - 'edit_post_status' => 'publish', - 'edit_redirect_to' => 'same', - 'update_message' => __( 'Event has been updated successfully. View event', 'wp-user-frontend' ), - 'edit_url' => '', - 'update_text' => __( 'Update Event', 'wp-user-frontend' ), - 'form_template' => __CLASS__, - 'notification' => [ - 'new' => 'on', - 'new_to' => get_option( 'admin_email' ), - 'new_subject' => 'New event has been created', - 'new_body' => 'Hi, + 'post_type' => 'tribe_events', + 'post_status' => 'publish', + 'default_cat' => '-1', + 'guest_post' => 'false', + 'message_restrict' => __( 'This page is restricted. Please Log in / Register to view this page.', + 'wp-user-frontend' ), + 'redirect_to' => 'post', + 'comment_status' => 'open', + 'submit_text' => __( 'Create Event', 'wp-user-frontend' ), + 'edit_post_status' => 'publish', + 'edit_redirect_to' => 'same', + 'update_message' => __( 'Event has been updated successfully. View event', + 'wp-user-frontend' ), + 'edit_url' => '', + 'update_text' => __( 'Update Event', 'wp-user-frontend' ), + 'form_template' => __CLASS__, + 'notification' => [ + 'new' => 'on', + 'new_to' => get_option( 'admin_email' ), + 'new_subject' => 'New event has been created', + 'new_body' => 'Hi, A new event has been created in your site %sitename% (%siteurl%). Here is the details: @@ -195,10 +199,10 @@ public function __construct() { Author: %author% Post URL: %permalink% Edit URL: %editlink%', - 'edit' => 'off', - 'edit_to' => get_option( 'admin_email' ), - 'edit_subject' => 'Post has been edited', - 'edit_body' => 'Hi, + 'edit' => 'off', + 'edit_to' => get_option( 'admin_email' ), + 'edit_subject' => 'Post has been edited', + 'edit_body' => 'Hi, The event "%post_title%" has been updated. Here is the details: @@ -208,7 +212,7 @@ public function __construct() { Author: %author% Post URL: %permalink% Edit URL: %editlink%', - ], - ]; + ], + ]; } } diff --git a/class/post-form-templates/post.php b/includes/Admin/PostFormTemplates/WPUF_Post_Form_Template_Post.php similarity index 99% rename from class/post-form-templates/post.php rename to includes/Admin/PostFormTemplates/WPUF_Post_Form_Template_Post.php index dfdbd8388..d41ee3a08 100644 --- a/class/post-form-templates/post.php +++ b/includes/Admin/PostFormTemplates/WPUF_Post_Form_Template_Post.php @@ -1,5 +1,7 @@ enabled = class_exists( 'WooCommerce' ); $this->title = __( 'WooCommerce Product', 'wp-user-frontend' ); $this->description = __( 'Create a simple product form for WooCommerce.', 'wp-user-frontend' ); @@ -136,10 +137,10 @@ public function __construct() { 'css' => '', 'first' => ' - select -', 'options' => [ - 'visible' => 'Catalog/search', - 'catalog' => 'Catalog', - 'search' => 'Search', - 'hidden' => 'Hidden', + 'visible' => 'Catalog/search', + 'catalog' => 'Catalog', + 'search' => 'Search', + 'hidden' => 'Hidden', ], 'wpuf_cond' => $this->conditionals, ], @@ -162,41 +163,40 @@ public function __construct() { 'text_editor_control' => [], ], [ - 'input_type' => 'checkbox', - 'template' => 'checkbox_field', - 'required' => 'no', - 'label' => 'Product Reviews', - 'name' => 'product_reviews', - 'is_meta' => 'yes', - 'help' => '', - 'css' => '', - 'options' => [ + 'input_type' => 'checkbox', + 'template' => 'checkbox_field', + 'required' => 'no', + 'label' => 'Product Reviews', + 'name' => 'product_reviews', + 'is_meta' => 'yes', + 'help' => '', + 'css' => '', + 'options' => [ '_enable_reviews' => 'Enable reviews', ], - 'wpuf_cond' => $this->conditionals, + 'wpuf_cond' => $this->conditionals, ], ]; - $this->form_settings = [ - 'post_type' => 'product', - 'post_status' => 'publish', - 'default_cat' => '-1', - 'guest_post' => 'false', - 'message_restrict' => 'This page is restricted. Please %login% / %register% to view this page.', - 'redirect_to' => 'post', - 'comment_status' => 'open', - 'submit_text' => 'Create Product', - 'edit_post_status' => 'publish', - 'edit_redirect_to' => 'same', - 'update_message' => 'Product has been updated successfully. View Product', - 'edit_url' => '', - 'update_text' => 'Update Product', - 'form_template' => __CLASS__, - 'notification' => [ - 'new' => 'on', - 'new_to' => get_option( 'admin_email' ), - 'new_subject' => 'New product has been created', - 'new_body' => 'Hi, + 'post_type' => 'product', + 'post_status' => 'publish', + 'default_cat' => '-1', + 'guest_post' => 'false', + 'message_restrict' => 'This page is restricted. Please %login% / %register% to view this page.', + 'redirect_to' => 'post', + 'comment_status' => 'open', + 'submit_text' => 'Create Product', + 'edit_post_status' => 'publish', + 'edit_redirect_to' => 'same', + 'update_message' => 'Product has been updated successfully. View Product', + 'edit_url' => '', + 'update_text' => 'Update Product', + 'form_template' => __CLASS__, + 'notification' => [ + 'new' => 'on', + 'new_to' => get_option( 'admin_email' ), + 'new_subject' => 'New product has been created', + 'new_body' => 'Hi, A new product has been created in your site %sitename% (%siteurl%). Here is the details: @@ -206,10 +206,10 @@ public function __construct() { Author: %author% Post URL: %permalink% Edit URL: %editlink%', - 'edit' => 'off', - 'edit_to' => get_option( 'admin_email' ), - 'edit_subject' => 'Product has been edited', - 'edit_body' => 'Hi, + 'edit' => 'off', + 'edit_to' => get_option( 'admin_email' ), + 'edit_subject' => 'Product has been edited', + 'edit_body' => 'Hi, The product "%post_title%" has been updated. Here is the details: @@ -219,8 +219,8 @@ public function __construct() { Author: %author% Post URL: %permalink% Edit URL: %editlink%', - ], - ]; + ], + ]; } /** @@ -274,12 +274,9 @@ public function handle_form_updates( $post_id, $form_id, $form_settings ) { */ public function update_reviews( $post_id ) { global $wpdb; - $reviews = get_post_meta( $post_id, 'product_reviews', true ); - $status = !empty( $reviews ) ? 'open' : 'closed'; - + $status = ! empty( $reviews ) ? 'open' : 'closed'; // wp_update_post( array( 'ID' => $post_id, 'comment_status' => $status ) ); - $comment_sql = "UPDATE {$wpdb->prefix}posts SET comment_status='{$status}' WHERE ID={$post_id} AND post_status='publish' AND post_type='product'"; $wpdb->get_results( $comment_sql ); } @@ -294,7 +291,6 @@ public function update_reviews( $post_id ) { public function update_price( $post_id ) { $regular_price = (float) get_post_meta( $post_id, '_regular_price', true ); $sale_price = (float) get_post_meta( $post_id, '_sale_price', true ); - if ( $sale_price && $regular_price > $sale_price ) { update_post_meta( $post_id, '_price', $sale_price ); } else { @@ -311,12 +307,10 @@ public function update_price( $post_id ) { */ public function update_gallery_images( $post_id ) { $images = get_post_meta( $post_id, '_product_image' ); - - if ( !empty( $images ) ) { + if ( ! empty( $images ) ) { if ( is_array( $images[0] ) ) { $images = $images[0]; } - if ( is_serialized( $images[0] ) ) { $images = maybe_unserialize( $images[0] ); } @@ -332,20 +326,15 @@ public function update_gallery_images( $post_id ) { * @return void */ public function update_meta( $post_id ) { - //keep backwards compatible if ( version_compare( WC_VERSION, '2.7', '<' ) ) { return; } - $visibility = get_post_meta( $post_id, '_visibility', true ); - $product = wc_get_product( $post_id ); - - if ( !empty( $visibility ) ) { + if ( ! empty( $visibility ) ) { $product->set_catalog_visibility( $visibility ); } - $product->save(); } } diff --git a/includes/free/post-form-templates/easy_digital_download.php b/includes/Admin/PostFormTemplates/WPUF_Pro_Form_Preview_EDD.php similarity index 95% rename from includes/free/post-form-templates/easy_digital_download.php rename to includes/Admin/PostFormTemplates/WPUF_Pro_Form_Preview_EDD.php index 596502f57..b91a34ad8 100644 --- a/includes/free/post-form-templates/easy_digital_download.php +++ b/includes/Admin/PostFormTemplates/WPUF_Pro_Form_Preview_EDD.php @@ -1,4 +1,6 @@ menu->get_all_submenu_hooks(); + + if ( ! empty( $submenu_hooks['post_forms'] ) ) { + add_action( 'load-' . $submenu_hooks['post_forms'], [ $this, 'post_forms_builder_init' ] ); + } + + wpuf()->add_to_container( 'fields', new WPUF_Field_Manager() ); + } + + /** + * Register form post types + * + * @return void + */ + public function register_post_type() { + $capability = wpuf_admin_role(); + register_post_type( 'wpuf_forms', [ + 'label' => __( 'Forms', 'wp-user-frontend' ), + 'public' => false, + 'show_ui' => false, + 'show_in_menu' => false, //false, + 'capability_type' => 'post', + 'hierarchical' => false, + 'query_var' => false, + 'supports' => [ 'title' ], + 'capabilities' => [ + 'publish_posts' => $capability, + 'edit_posts' => $capability, + 'edit_others_posts' => $capability, + 'delete_posts' => $capability, + 'delete_others_posts' => $capability, + 'read_private_posts' => $capability, + 'edit_post' => $capability, + 'delete_post' => $capability, + 'read_post' => $capability, + ], + 'labels' => [ + 'name' => __( 'Forms', 'wp-user-frontend' ), + 'singular_name' => __( 'Form', 'wp-user-frontend' ), + 'menu_name' => __( 'Forms', 'wp-user-frontend' ), + 'add_new' => __( 'Add Form', 'wp-user-frontend' ), + 'add_new_item' => __( 'Add New Form', 'wp-user-frontend' ), + 'edit' => __( 'Edit', 'wp-user-frontend' ), + 'edit_item' => __( 'Edit Form', 'wp-user-frontend' ), + 'new_item' => __( 'New Form', 'wp-user-frontend' ), + 'view' => __( 'View Form', 'wp-user-frontend' ), + 'view_item' => __( 'View Form', 'wp-user-frontend' ), + 'search_items' => __( 'Search Form', 'wp-user-frontend' ), + 'not_found' => __( 'No Form Found', 'wp-user-frontend' ), + 'not_found_in_trash' => __( 'No Form Found in Trash', + 'wp-user-frontend' ), + 'parent' => __( 'Parent Form', 'wp-user-frontend' ), + ], + ] ); + register_post_type( 'wpuf_profile', [ + 'label' => __( 'Registraton Forms', 'wp-user-frontend' ), + 'public' => false, + 'show_ui' => false, + 'show_in_menu' => false, + 'capability_type' => 'post', + 'hierarchical' => false, + 'query_var' => false, + 'supports' => [ 'title' ], + 'capabilities' => [ + 'publish_posts' => $capability, + 'edit_posts' => $capability, + 'edit_others_posts' => $capability, + 'delete_posts' => $capability, + 'delete_others_posts' => $capability, + 'read_private_posts' => $capability, + 'edit_post' => $capability, + 'delete_post' => $capability, + 'read_post' => $capability, + ], + 'labels' => [ + 'name' => __( 'Forms', 'wp-user-frontend' ), + 'singular_name' => __( 'Form', 'wp-user-frontend' ), + 'menu_name' => __( 'Registration Forms', + 'wp-user-frontend' ), + 'add_new' => __( 'Add Form', 'wp-user-frontend' ), + 'add_new_item' => __( 'Add New Form', 'wp-user-frontend' ), + 'edit' => __( 'Edit', 'wp-user-frontend' ), + 'edit_item' => __( 'Edit Form', 'wp-user-frontend' ), + 'new_item' => __( 'New Form', 'wp-user-frontend' ), + 'view' => __( 'View Form', 'wp-user-frontend' ), + 'view_item' => __( 'View Form', 'wp-user-frontend' ), + 'search_items' => __( 'Search Form', 'wp-user-frontend' ), + 'not_found' => __( 'No Form Found', 'wp-user-frontend' ), + 'not_found_in_trash' => __( 'No Form Found in Trash', + 'wp-user-frontend' ), + 'parent' => __( 'Parent Form', 'wp-user-frontend' ), + ], + ] ); + register_post_type( 'wpuf_input', [ + 'public' => false, + 'show_ui' => false, + 'show_in_menu' => false, + ] ); + } + + /** + * Initiate form builder for wpuf_forms post type + * + * @since 2.5 + * + * @return void + */ + public function post_forms_builder_init() { + if ( ! isset( $_GET['action'] ) ) { + return; + } + if ( 'add-new' === $_GET['action'] && empty( $_GET['id'] ) ) { + $form_id = wpuf_create_sample_form( 'Sample Form', 'wpuf_forms', true ); + $add_new_page_url = add_query_arg( [ 'id' => $form_id ], + admin_url( 'admin.php?page=wpuf-post-forms&action=edit' ) ); + wp_redirect( $add_new_page_url ); + } + if ( ( 'edit' === $_GET['action'] ) && ! empty( $_GET['id'] ) ) { + add_action( 'wpuf-form-builder-tabs-post', [ $this, 'add_primary_tabs' ] ); + add_action( 'wpuf-form-builder-tab-contents-post', [ $this, 'add_primary_tab_contents' ] ); + add_action( 'wpuf-form-builder-settings-tabs-post', [ $this, 'add_settings_tabs' ] ); + add_action( 'wpuf-form-builder-settings-tab-contents-post', [ $this, 'add_settings_tab_contents' ] ); + add_filter( 'wpuf-form-fields-section-before', [ $this, 'add_post_field_section' ] ); + add_action( 'admin_enqueue_scripts', [ $this, 'admin_enqueue_scripts' ] ); + add_action( 'wpuf-form-builder-js-deps', [ $this, 'js_dependencies' ] ); + add_filter( 'wpuf-form-builder-js-root-mixins', [ $this, 'js_root_mixins' ] ); + add_filter( 'wpuf-form-builder-js-builder-stage-mixins', [ $this, 'js_builder_stage_mixins' ] ); + add_filter( 'wpuf-form-builder-js-field-options-mixins', [ $this, 'js_field_options_mixins' ] ); + add_action( 'wpuf-form-builder-template-builder-stage-submit-area', [ $this, 'add_form_submit_area' ] ); + add_action( 'wpuf-form-builder-localize-script', [ $this, 'add_to_localize_script' ] ); + add_filter( 'wpuf-form-fields', [ $this, 'add_field_settings' ] ); + add_filter( 'wpuf-form-builder-i18n', [ $this, 'i18n' ] ); + do_action( 'wpuf-form-builder-init-type-wpuf_forms' ); + $this->set_wp_post_types(); + $settings = [ + 'form_type' => 'post', + 'post_type' => 'wpuf_forms', + 'post_id' => isset( $_GET['id'] ) ? intval( wp_unslash( $_GET['id'] ) ) : '', + 'form_settings_key' => $this->form_settings_key, + 'shortcodes' => [ [ 'name' => 'wpuf_form' ] ], + ]; + $form_builder = new WPUF_Admin_Form_Builder( $settings ); + + wpuf()->add_to_container( 'form_builder', $form_builder ); + } + } + + /** + * Additional primary tabs + * + * @since 2.5 + * + * @return void + */ + public function add_primary_tabs() { + ?> + + + + + + + +
+ +
+ + + + + + + + + + + + + ID ); + ?> + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ form_post_expiration(); ?> +
+ + + + get_subscriptions(); + if ( ! $subscriptions ) { + printf( '', esc_html( __( '- Select -', 'wp-user-frontend' ) ) ); + + return; + } + printf( '', esc_html( __( '- Select -', 'wp-user-frontend' ) ) ); + foreach ( $subscriptions as $key => $subscription ) { + ?> + + __( 'Post Fields', 'wp-user-frontend' ), + 'id' => 'post-fields', + 'fields' => $post_fields, + ], + [ + 'title' => __( 'Taxonomies', 'wp-user-frontend' ), + 'id' => 'taxonomies', + 'fields' => [], + ], + ]; + } + + /** + * Admin script form wpuf_forms form builder + * + * @since 2.5 + * + * @return void + */ + public function admin_enqueue_scripts() { +// wp_register_script( 'wpuf-form-builder-wpuf-forms', WPUF_ASSET_URI . '/js/wpuf-form-builder-wpuf-forms.js', +// [ 'jquery', 'underscore', 'wpuf-vue', 'wpuf-vuex' ], WPUF_VERSION, true ); + } + + /** + * Add dependencies to form builder script + * + * @since 2.5 + * + * @param array $deps + * + * @return array + */ + public function js_dependencies( $deps ) { + $deps[] = 'wpuf-form-builder-wpuf-forms'; + + return apply_filters( 'wpuf-form-builder-wpuf-forms-js-deps', $deps ); + } + + /** + * Add mixins to root instance + * + * @since 2.5 + * + * @param array $mixins + * + * @return array + */ + public function js_root_mixins( $mixins ) { + array_push( $mixins, 'wpuf_forms_mixin_root' ); + + return $mixins; + } + + /** + * Add mixins to form builder builder stage component + * + * @since 2.5 + * + * @param array $mixins + * + * @return array + */ + public function js_builder_stage_mixins( $mixins ) { + array_push( $mixins, 'wpuf_forms_mixin_builder_stage' ); + + return $mixins; + } + + /** + * Add mixins to form builder field options component + * + * @since 2.5 + * + * @param array $mixins + * + * @return array + */ + public function js_field_options_mixins( $mixins ) { + array_push( $mixins, 'wpuf_forms_mixin_field_options' ); + + return $mixins; + } + + /** + * Add buttons in form submit area + * + * @since 2.5 + * + * @return void + */ + public function add_form_submit_area() { + ?> + + + + + + true ]; + $wpuf_post_types = wpuf_get_post_types( $args ); + $ignore_taxonomies = apply_filters( 'wpuf-ignore-taxonomies', [ + 'post_format', + ] ); + foreach ( $wpuf_post_types as $post_type ) { + $this->wp_post_types[ $post_type ] = []; + $taxonomies = get_object_taxonomies( $post_type, 'object' ); + foreach ( $taxonomies as $tax_name => $taxonomy ) { + if ( ! in_array( $tax_name, $ignore_taxonomies ) ) { + $this->wp_post_types[ $post_type ][ $tax_name ] = [ + 'title' => $taxonomy->label, + 'hierarchical' => $taxonomy->hierarchical, + ]; + $this->wp_post_types[ $post_type ][ $tax_name ]['terms'] = get_terms( [ + 'taxonomy' => $tax_name, + 'hide_empty' => false, + ] ); + } + } + } + } + + /** + * Add data to localize_script + * + * @since 2.5 + * + * @param array $data + * + * @return array + */ + public function add_to_localize_script( $data ) { + return array_merge( $data, [ + 'wp_post_types' => $this->wp_post_types, + ] ); + } + + /** + * Add field settings + * + * @since 2.5 + * + * @param array $field_settings + * + * @return array + */ + public function add_field_settings( $field_settings ) { + if ( class_exists( 'WPUF_Field_Contract' ) ) { + require_once WPUF_ROOT . '/includes/fields/class-field-post-title.php'; + require_once WPUF_ROOT . '/includes/fields/class-field-post-content.php'; + require_once WPUF_ROOT . '/includes/fields/class-field-post-tags.php'; + require_once WPUF_ROOT . '/includes/fields/class-field-post-excerpt.php'; + require_once WPUF_ROOT . '/includes/fields/class-field-post-taxonomy.php'; + require_once WPUF_ROOT . '/includes/fields/class-field-featured-image.php'; + $field_settings['post_title'] = new WPUF_Form_Field_Post_Title(); + $field_settings['post_content'] = new WPUF_Form_Field_Post_Content(); + $field_settings['post_excerpt'] = new WPUF_Form_Field_Post_Excerpt(); + $field_settings['featured_image'] = new WPUF_Form_Field_Featured_Image(); + $taxonomy_templates = []; + foreach ( $this->wp_post_types as $post_type => $taxonomies ) { + if ( ! empty( $taxonomies ) ) { + foreach ( $taxonomies as $tax_name => $taxonomy ) { + if ( 'post_tag' === $tax_name ) { + $taxonomy_templates['post_tag'] = new WPUF_Form_Field_Post_Tags(); + } else { + $taxonomy_templates[ $tax_name ] = new WPUF_Form_Field_Post_Taxonomy( $tax_name, + $taxonomy ); + // $taxonomy_templates[ 'taxonomy' ] = new WPUF_Form_Field_Post_Taxonomy($tax_name, $taxonomy); + } + } + } + } + $field_settings = array_merge( $field_settings, $taxonomy_templates ); + } + + return $field_settings; + } + + /** + * i18n strings specially for Post Forms + * + * @since 2.5 + * + * @param array $i18n + * + * @return array + */ + public function i18n( $i18n ) { + return array_merge( $i18n, [ + 'any_of_three_needed' => __( 'Post Forms must have either Post Title, Post Body or Excerpt field', + 'wp-user-frontend' ), + ] ); + } +} diff --git a/admin/form-builder/class-wpuf-admin-form-builder.php b/includes/Admin/WPUF_Admin_Form_Builder.php similarity index 56% rename from admin/form-builder/class-wpuf-admin-form-builder.php rename to includes/Admin/WPUF_Admin_Form_Builder.php index 047df7e22..dd6e47a15 100644 --- a/admin/form-builder/class-wpuf-admin-form-builder.php +++ b/includes/Admin/WPUF_Admin_Form_Builder.php @@ -1,4 +1,9 @@ '', // e.g 'post', 'profile' etc - 'post_type' => '', // e.g 'wpuf_forms', 'wpuf_profile' etc, + 'form_type' => '', + // e.g 'post', 'profile' etc + 'post_type' => '', + // e.g 'wpuf_forms', 'wpuf_profile' etc, 'form_settings_key' => '', 'post_id' => 0, - 'shortcodes' => [], // [ [ 'name' => 'wpuf_form', 'type' => 'profile' ], [ 'name' => 'wpuf_form', 'type' => 'registration' ] ] + 'shortcodes' => [], + // [ [ 'name' => 'wpuf_form', 'type' => 'profile' ], [ 'name' => 'wpuf_form', 'type' => 'registration' ] ] ]; - $this->settings = wp_parse_args( $settings, $defaults ); - // set post data to global $post $post = get_post( $this->settings['post_id'] ); - // if we have an existing post, then let's start - if ( !empty( $post->ID ) ) { + if ( ! empty( $post->ID ) ) { add_action( 'in_admin_header', [ $this, 'remove_admin_notices' ] ); add_action( 'admin_enqueue_scripts', [ $this, 'admin_enqueue_scripts' ] ); add_action( 'admin_print_scripts', [ $this, 'admin_print_scripts' ] ); @@ -73,45 +77,59 @@ public function remove_admin_notices() { */ public function admin_enqueue_scripts() { global $post; - /* * CSS */ - wp_enqueue_style( 'wpuf-css', WPUF_ASSET_URI . '/css/frontend-forms.css' ); - wp_enqueue_style( 'wpuf-font-awesome', WPUF_ASSET_URI . '/vendor/font-awesome/css/font-awesome.min.css', [], WPUF_VERSION ); - wp_enqueue_style( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/sweetalert2.css', [], '11.4.19' ); - wp_enqueue_style( 'wpuf-selectize', WPUF_ASSET_URI . '/vendor/selectize/css/selectize.default.css', [], WPUF_VERSION ); - wp_enqueue_style( 'wpuf-toastr', WPUF_ASSET_URI . '/vendor/toastr/toastr.min.css', [], WPUF_VERSION ); - wp_enqueue_style( 'wpuf-tooltip', WPUF_ASSET_URI . '/vendor/tooltip/tooltip.css', [], WPUF_VERSION ); - + // wp_enqueue_style( 'wpuf-css', WPUF_ASSET_URI . '/css/frontend-forms.css' ); + wp_enqueue_style( 'wpuf-font-awesome' ); + wp_enqueue_style( 'wpuf-sweetalert2' ); + wp_enqueue_style( 'wpuf-selectize' ); + wp_enqueue_style( 'wpuf-toastr' ); + wp_enqueue_style( 'wpuf-tooltip' ); $form_builder_css_deps = apply_filters( 'wpuf-form-builder-css-deps', [ - 'wpuf-css', 'wpuf-font-awesome', 'wpuf-sweetalert2', 'wpuf-selectize', 'wpuf-toastr', 'wpuf-tooltip', + 'wpuf-css', + 'wpuf-font-awesome', + 'wpuf-sweetalert2', + 'wpuf-selectize', + 'wpuf-toastr', + 'wpuf-tooltip', ] ); - - wp_enqueue_style( 'jquery-ui', WPUF_ASSET_URI . '/css/jquery-ui-1.9.1.custom.css' ); - + wp_enqueue_style( 'wpuf-jquery-ui' ); + wp_enqueue_style( 'wp-color-picker' ); do_action( 'wpuf-form-builder-enqueue-style' ); - /** * JavaScript */ $prefix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; - wp_enqueue_script( 'wpuf-vue', WPUF_ASSET_URI . '/vendor/vue/vue' . $prefix . '.js', [], WPUF_VERSION, true ); - wp_enqueue_script( 'wpuf-vuex', WPUF_ASSET_URI . '/vendor/vuex/vuex' . $prefix . '.js', [ 'wpuf-vue' ], WPUF_VERSION, true ); - wp_enqueue_script( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/sweetalert2.js', [], '11.4.19', true ); - wp_enqueue_script( 'wpuf-jquery-scrollTo', WPUF_ASSET_URI . '/vendor/jquery.scrollTo/jquery.scrollTo' . $prefix . '.js', [ 'jquery' ], WPUF_VERSION, true ); - wp_enqueue_script( 'wpuf-selectize', WPUF_ASSET_URI . '/vendor/selectize/js/standalone/selectize' . $prefix . '.js', [ 'jquery' ], WPUF_VERSION, true ); - wp_enqueue_script( 'wpuf-toastr', WPUF_ASSET_URI . '/vendor/toastr/toastr' . $prefix . '.js', [], WPUF_VERSION, true ); - wp_enqueue_script( 'wpuf-clipboard', WPUF_ASSET_URI . '/vendor/clipboard/clipboard' . $prefix . '.js', [], WPUF_VERSION, true ); - wp_enqueue_script( 'wpuf-tooltip', WPUF_ASSET_URI . '/vendor/tooltip/tooltip' . $prefix . '.js', [], WPUF_VERSION, true ); - + wp_enqueue_script( 'wpuf-vue' ); + wp_enqueue_script( 'wpuf-vuex' ); + wp_enqueue_script( 'wpuf-form-builder-wpuf-forms' ); + wp_enqueue_script( 'wpuf-sweetalert2' ); + wp_enqueue_script( 'wpuf-jquery-scrollTo' ); + wp_enqueue_script( 'wpuf-selectize' ); + wp_enqueue_script( 'wpuf-toastr' ); + wp_enqueue_script( 'wpuf-clipboard' ); + wp_enqueue_script( 'wpuf-tooltip' ); + wp_enqueue_script( 'wpuf-timepicker' ); + wp_enqueue_script( 'wpuf-admin' ); + // wp_enqueue_script( 'wpuf-subscriptions' ); $form_builder_js_deps = apply_filters( 'wpuf-form-builder-js-deps', [ - 'jquery', 'jquery-ui-sortable', 'jquery-ui-draggable', 'jquery-ui-droppable', 'jquery-ui-resizable', 'underscore', - 'wpuf-vue', 'wpuf-vuex', 'wpuf-sweetalert2', 'wpuf-jquery-scrollTo', - 'wpuf-selectize', 'wpuf-toastr', 'wpuf-clipboard', 'wpuf-tooltip', + 'jquery', + 'jquery-ui-sortable', + 'jquery-ui-draggable', + 'jquery-ui-droppable', + 'jquery-ui-resizable', + 'underscore', + 'wpuf-vue', + 'wpuf-vuex', + 'wpuf-sweetalert2', + 'wpuf-jquery-scrollTo', + 'wpuf-selectize', + 'wpuf-toastr', + 'wpuf-clipboard', + 'wpuf-tooltip', ] ); - $single_objects = [ 'post_title', 'post_content', @@ -126,58 +144,56 @@ public function admin_enqueue_scripts() { 'user_bio', 'password', 'user_avatar', - 'taxonomy' + 'taxonomy', ]; $taxonomy_terms = array_keys( get_taxonomies() ); $single_objects = array_merge( $single_objects, $taxonomy_terms ); + wp_enqueue_script( 'wpuf-form-builder-mixins' ); - wp_enqueue_script( 'wpuf-form-builder-mixins', WPUF_ASSET_URI . '/js/wpuf-form-builder-mixins.js', $form_builder_js_deps, WPUF_VERSION, true ); wp_localize_script( 'wpuf-form-builder-mixins', 'wpuf_single_objects', $single_objects ); - do_action( 'wpuf-form-builder-enqueue-after-mixins' ); - wp_enqueue_script( 'wpuf-form-builder-components', WPUF_ASSET_URI . '/js/wpuf-form-builder-components.js', [ 'wpuf-form-builder-mixins' ], WPUF_VERSION, true ); - - do_action( 'wpuf-form-builder-enqueue-after-components' ); - - wp_enqueue_script( 'jquery-ui-timepicker', WPUF_ASSET_URI . '/js/jquery-ui-timepicker-addon.js', [ 'jquery-ui-datepicker' ] ); + do_action( 'wpuf-form-builder-enqueue-after-mixins' ); - wp_enqueue_script( 'wpuf-form-builder', WPUF_ASSET_URI . '/js/wpuf-form-builder.js', [ 'wpuf-form-builder-components' ], WPUF_VERSION, true ); + wp_enqueue_script( 'wpuf-form-builder-components' ); + wp_enqueue_script( 'wpuf-form-builder' ); + wp_enqueue_script( 'wp-color-picker' ); do_action( 'wpuf-form-builder-enqueue-after-main-instance' ); - /* * Data required for building the form */ require_once WPUF_ROOT . '/admin/form-builder/class-wpuf-form-builder-field-settings.php'; - require_once WPUF_ROOT . '/includes/free/prompt.php'; - + require_once WPUF_ROOT . '/includes/Free/WPUF_Pro_Prompt.php'; $wpuf_form_builder = apply_filters( 'wpuf-form-builder-localize-script', [ - 'i18n' => $this->i18n(), - 'post' => $post, - 'form_fields' => wpuf_get_form_fields( $post->ID ), - 'panel_sections' => wpuf()->fields->get_field_groups(), - 'field_settings' => wpuf()->fields->get_js_settings(), - 'form_settings' => wpuf_get_form_settings( $post->ID ), - 'notifications' => wpuf_get_form_notifications( $post->ID ), - 'pro_link' => WPUF_Pro_Prompt::get_pro_url(), - 'site_url' => site_url( '/' ), - 'recaptcha_site' => wpuf_get_option( 'recaptcha_public', 'wpuf_general' ), - 'recaptcha_secret' => wpuf_get_option( 'recaptcha_private', 'wpuf_general' ), - 'nonce' => wp_create_nonce( 'form-builder-setting-nonce' ) + 'i18n' => $this->i18n(), + 'post' => $post, + 'form_fields' => wpuf_get_form_fields( $post->ID ), + 'panel_sections' => wpuf()->fields->get_field_groups(), + 'field_settings' => wpuf()->fields->get_js_settings(), + 'form_settings' => wpuf_get_form_settings( $post->ID ), + 'notifications' => wpuf_get_form_notifications( $post->ID ), + 'pro_link' => WPUF_Pro_Prompt::get_pro_url(), + 'site_url' => site_url( '/' ), + 'recaptcha_site' => wpuf_get_option( 'recaptcha_public', 'wpuf_general' ), + 'recaptcha_secret' => wpuf_get_option( 'recaptcha_private', 'wpuf_general' ), + 'nonce' => wp_create_nonce( 'form-builder-setting-nonce' ), ] ); - $wpuf_form_builder = wpuf_unset_conditional( $wpuf_form_builder ); - wp_localize_script( 'wpuf-form-builder-mixins', 'wpuf_form_builder', $wpuf_form_builder ); - + wp_localize_script( + 'wpuf-admin', 'wpuf_admin_script', [ + 'ajaxurl' => admin_url( 'admin-ajax.php' ), + 'nonce' => wp_create_nonce( 'wpuf_nonce' ), + 'cleared_schedule_lock' => __( 'Post lock has been cleared', 'wp-user-frontend' ), + ] + ); // mixins $wpuf_mixins = [ - 'root' => apply_filters( 'wpuf-form-builder-js-root-mixins', [] ), - 'builder_stage' => apply_filters( 'wpuf-form-builder-js-builder-stage-mixins', [] ), - 'form_fields' => apply_filters( 'wpuf-form-builder-js-form-fields-mixins', [] ), - 'field_options' => apply_filters( 'wpuf-form-builder-js-field-options-mixins', [] ), + 'root' => apply_filters( 'wpuf-form-builder-js-root-mixins', [] ), + 'builder_stage' => apply_filters( 'wpuf-form-builder-js-builder-stage-mixins', [] ), + 'form_fields' => apply_filters( 'wpuf-form-builder-js-form-fields-mixins', [] ), + 'field_options' => apply_filters( 'wpuf-form-builder-js-field-options-mixins', [] ), ]; - wp_localize_script( 'wpuf-form-builder-mixins', 'wpuf_mixins', $wpuf_mixins ); } @@ -190,29 +206,29 @@ public function admin_enqueue_scripts() { */ public function admin_print_scripts() { ?> - + - + return mixins.map( function ( mixin ) { + return mixin_parent[mixin]; + } ); + }; + settings['post_id']; - $form_type = $this->settings['form_type']; - $post_type = $this->settings['post_type']; - $form_settings_key = $this->settings['form_settings_key']; - $shortcodes = $this->settings['shortcodes']; - + $form_id = $this->settings['post_id']; + $form_type = $this->settings['form_type']; + $post_type = $this->settings['post_type']; + $form_settings_key = $this->settings['form_settings_key']; + $shortcodes = $this->settings['shortcodes']; $forms = get_posts( [ 'post_type' => $post_type, 'post_status' => 'any' ] ); - include WPUF_ROOT . '/admin/form-builder/views/form-builder.php'; } @@ -288,7 +300,8 @@ private function i18n() { 'column' => __( 'Column', 'wp-user-frontend' ), 'last_column_warn_msg' => __( 'This field must contain at least one column', 'wp-user-frontend' ), 'is_a_pro_feature' => __( 'is available in Pro version', 'wp-user-frontend' ), - 'pro_feature_msg' => __( 'Please upgrade to the Pro version to unlock all these awesome features', 'wp-user-frontend' ), + 'pro_feature_msg' => __( 'Please upgrade to the Pro version to unlock all these awesome features', + 'wp-user-frontend' ), 'upgrade_to_pro' => __( 'Get the Pro version', 'wp-user-frontend' ), 'select' => __( 'Select', 'wp-user-frontend' ), 'saved_form_data' => __( 'Saved form data', 'wp-user-frontend' ), @@ -308,50 +321,38 @@ private function i18n() { */ public static function save_form( $data ) { $saved_wpuf_inputs = []; - wp_update_post( [ 'ID' => $data['form_id'], 'post_status' => 'publish', 'post_title' => $data['post_title'] ] ); - $existing_wpuf_input_ids = get_children( [ - 'post_parent' => $data['form_id'], - 'post_status' => 'publish', - 'post_type' => 'wpuf_input', - 'numberposts' => '-1', - 'orderby' => 'menu_order', - 'order' => 'ASC', - 'fields' => 'ids', - ] ); - + 'post_parent' => $data['form_id'], + 'post_status' => 'publish', + 'post_type' => 'wpuf_input', + 'numberposts' => '-1', + 'orderby' => 'menu_order', + 'order' => 'ASC', + 'fields' => 'ids', + ] ); $new_wpuf_input_ids = []; - - if ( !empty( $data['form_fields'] ) ) { + if ( ! empty( $data['form_fields'] ) ) { foreach ( $data['form_fields'] as $order => $field ) { - if ( !empty( $field['is_new'] ) ) { + if ( ! empty( $field['is_new'] ) ) { unset( $field['is_new'] ); unset( $field['id'] ); - $field_id = 0; } else { $field_id = $field['id']; } - $field_id = wpuf_insert_form_field( $data['form_id'], $field, $field_id, $order ); - $new_wpuf_input_ids[] = $field_id; - $field['id'] = $field_id; - $saved_wpuf_inputs[] = $field; } } - $inputs_to_delete = array_diff( $existing_wpuf_input_ids, $new_wpuf_input_ids ); - - if ( !empty( $inputs_to_delete ) ) { + if ( ! empty( $inputs_to_delete ) ) { foreach ( $inputs_to_delete as $delete_id ) { wp_delete_post( $delete_id, true ); } } - update_post_meta( $data['form_id'], $data['form_settings_key'], $data['form_settings'] ); update_post_meta( $data['form_id'], 'notifications', $data['notifications'] ); update_post_meta( $data['form_id'], 'integrations', $data['integrations'] ); diff --git a/includes/free/admin/form-builder/class-wpuf-form-builder-free.php b/includes/Admin/WPUF_Admin_Form_Builder_Free.php similarity index 86% rename from includes/free/admin/form-builder/class-wpuf-form-builder-free.php rename to includes/Admin/WPUF_Admin_Form_Builder_Free.php index 127740135..1d5868fad 100644 --- a/includes/free/admin/form-builder/class-wpuf-form-builder-free.php +++ b/includes/Admin/WPUF_Admin_Form_Builder_Free.php @@ -1,4 +1,5 @@ fields ) ) { + if ( ! empty( $this->fields ) ) { return $this->fields; } - $this->register_field_types(); return $this->fields; @@ -47,7 +70,6 @@ public function get_fields() { */ public function get_field( $field_type ) { $fields = $this->get_fields(); - if ( isset( $field_type, $fields ) ) { return $fields[ $field_type ]; } @@ -61,23 +83,20 @@ public function get_field( $field_type ) { * @return void */ public function add_field_settings( $field_settings ) { - if ( class_exists( 'WPUF_Field_Contract' ) ) { + if ( class_exists( 'Wp\User\Frontend\Fields\WPUF_Field_Contract' ) ) { require_once WPUF_ROOT . '/includes/fields/class-field-post-title.php'; require_once WPUF_ROOT . '/includes/fields/class-field-post-content.php'; require_once WPUF_ROOT . '/includes/fields/class-field-post-tags.php'; require_once WPUF_ROOT . '/includes/fields/class-field-post-excerpt.php'; require_once WPUF_ROOT . '/includes/fields/class-field-post-taxonomy.php'; require_once WPUF_ROOT . '/includes/fields/class-field-featured-image.php'; - $field_settings['post_title'] = new WPUF_Form_Field_Post_Title(); $field_settings['post_content'] = new WPUF_Form_Field_Post_Content(); $field_settings['post_excerpt'] = new WPUF_Form_Field_Post_Excerpt(); $field_settings['featured_image'] = new WPUF_Form_Field_Featured_Image(); - $taxonomy_templates = []; - foreach ( $this->wp_post_types as $post_type => $taxonomies ) { - if ( !empty( $taxonomies ) ) { + if ( ! empty( $taxonomies ) ) { foreach ( $taxonomies as $tax_name => $taxonomy ) { if ( 'post_tag' === $tax_name ) { // $taxonomy_templates['post_tag'] = self::post_tags(); @@ -85,12 +104,12 @@ public function add_field_settings( $field_settings ) { } else { // $taxonomy_templates[ $tax_name ] = self::taxonomy_template( $tax_name, $taxonomy ); // $taxonomy_templates[ 'taxonomy' ] = new WPUF_Form_Field_Post_Taxonomy($tax_name, $taxonomy); - $taxonomy_templates[ $tax_name ] = new WPUF_Form_Field_Post_Taxonomy( $tax_name, $taxonomy ); + $taxonomy_templates[ $tax_name ] = new WPUF_Form_Field_Post_Taxonomy( $tax_name, + $taxonomy ); } } } } - $field_settings = array_merge( $field_settings, $taxonomy_templates ); } @@ -103,27 +122,26 @@ public function add_field_settings( $field_settings ) { * @return void */ private function register_field_types() { - require_once __DIR__ . '/fields/class-abstract-fields.php'; - require_once __DIR__ . '/fields/class-field-post-title.php'; - require_once __DIR__ . '/fields/class-field-post-tags.php'; - require_once __DIR__ . '/fields/class-field-post-taxonomy.php'; - require_once __DIR__ . '/fields/class-field-post-content.php'; - require_once __DIR__ . '/fields/class-field-text.php'; - require_once __DIR__ . '/fields/class-field-email.php'; - require_once __DIR__ . '/fields/class-field-textarea.php'; - require_once __DIR__ . '/fields/class-field-checkbox.php'; - require_once __DIR__ . '/fields/class-field-radio.php'; - require_once __DIR__ . '/fields/class-field-dropdown.php'; - require_once __DIR__ . '/fields/class-field-multidropdown.php'; - require_once __DIR__ . '/fields/class-field-url.php'; - require_once __DIR__ . '/fields/class-field-column.php'; - require_once __DIR__ . '/fields/class-field-sectionbreak.php'; - require_once __DIR__ . '/fields/class-field-html.php'; - require_once __DIR__ . '/fields/class-field-hidden.php'; - require_once __DIR__ . '/fields/class-field-image.php'; - require_once __DIR__ . '/fields/class-field-recaptcha.php'; - require_once __DIR__ . '/fields/class-field-featured-image.php'; - + // require_once WPUF_INCLUDES . '/fields/class-abstract-fields.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-post-title.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-post-tags.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-post-taxonomy.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-post-content.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-text.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-email.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-textarea.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-checkbox.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-radio.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-dropdown.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-multidropdown.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-url.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-column.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-sectionbreak.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-html.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-hidden.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-image.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-recaptcha.php'; +// require_once WPUF_INCLUDES . '/fields/class-field-featured-image.php'; $fields = [ 'post_title' => new WPUF_Form_Field_Post_Title(), 'post_content' => new WPUF_Form_Field_Post_Content(), @@ -145,7 +163,6 @@ private function register_field_types() { 'recaptcha' => new WPUF_Form_Field_reCaptcha(), 'featured_image' => new WPUF_Form_Field_Featured_Image(), ]; - $this->fields = apply_filters( 'wpuf-form-fields', $fields ); } @@ -172,19 +189,25 @@ public function get_field_groups() { * @return array */ private function get_custom_fields() { - // $fields = apply_filters( 'wpuf-form-builder-fields-custom-fields', array( $fields = apply_filters( 'wpuf-form-fields-custom-fields', [ - 'text_field', 'textarea_field', 'dropdown_field', 'multiple_select', - 'radio_field', 'checkbox_field', 'website_url', 'email_address', - 'custom_hidden_field', 'image_upload', + 'text_field', + 'textarea_field', + 'dropdown_field', + 'multiple_select', + 'radio_field', + 'checkbox_field', + 'website_url', + 'email_address', + 'custom_hidden_field', + 'image_upload', ] ); return [ [ - 'title' => __( 'Custom Fields', 'wp-user-frontend' ), - 'id' => 'custom-fields', - 'fields' => $fields, + 'title' => __( 'Custom Fields', 'wp-user-frontend' ), + 'id' => 'custom-fields', + 'fields' => $fields, ], ]; } @@ -198,14 +221,17 @@ private function get_custom_fields() { */ private function get_others_fields() { $fields = apply_filters( 'wpuf-form-fields-others-fields', [ - 'column_field', 'section_break', 'custom_html', 'recaptcha', + 'column_field', + 'section_break', + 'custom_html', + 'recaptcha', ] ); return [ [ - 'title' => __( 'Others', 'wp-user-frontend' ), - 'id' => 'others', - 'fields' => $fields, + 'title' => __( 'Others', 'wp-user-frontend' ), + 'id' => 'others', + 'fields' => $fields, ], ]; } @@ -216,10 +242,8 @@ private function get_others_fields() { * @return array */ public function get_js_settings() { - $fields = $this->get_fields(); - + $fields = $this->get_fields(); $js_array = []; - if ( $fields ) { foreach ( $fields as $type => $object ) { if ( is_object( $object ) ) { @@ -242,22 +266,18 @@ public function get_js_settings() { * * @return void */ - public function render_fields( $fields, $form_id, $atts = [], $type = 'post', $post_id = null ) { - if ( !$fields ) { + public function render_fields( $fields, $form_id, $atts = [], $type = 'post', $post_id = NULL ) { + if ( ! $fields ) { return; } - $fields = apply_filters( 'wpuf_render_fields', $fields, $form_id ); - foreach ( $fields as $field ) { - if ( !$field_object = $this->field_exists( $field['template'] ) ) { + if ( ! $field_object = $this->field_exists( $field['template'] ) ) { if ( defined( 'WP_DEBUG' && WP_DEBUG ) ) { echo wp_kses_post( '

' . $field['template'] . ' field not found.

' ); } - continue; } - if ( $this->check_field_visibility( $field ) ) { if ( is_object( $field_object ) ) { $field_object->render( $field, $form_id, $type, $post_id ); @@ -276,22 +296,18 @@ public function render_fields( $fields, $form_id, $atts = [], $type = 'post', $p **/ public function check_field_visibility( &$form_field ) { $show_field = true; - // check field visibility options if ( array_key_exists( 'wpuf_visibility', $form_field ) ) { $visibility_selected = $form_field['wpuf_visibility']['selected']; $visibility_choices = $form_field['wpuf_visibility']['choices']; $show_field = false; - if ( $visibility_selected == 'everyone' ) { $show_field = true; } - if ( $visibility_selected == 'hidden' ) { $form_field['css'] .= 'wpuf_hidden_field'; - $show_field = true; + $show_field = true; } - if ( $visibility_selected == 'logged_in' && is_user_logged_in() ) { if ( empty( $visibility_choices ) ) { $show_field = true; @@ -305,13 +321,11 @@ public function check_field_visibility( &$form_field ) { } } } - if ( $visibility_selected == 'subscribed_users' && is_user_logged_in() ) { - $user_pack = WPUF_Subscription::init()->get_user_pack( get_current_user_id() ); - - if ( empty( $visibility_choices ) && !empty( $user_pack ) ) { + $user_pack = WPUF_Subscription::init()->get_user_pack( get_current_user_id() ); + if ( empty( $visibility_choices ) && ! empty( $user_pack ) ) { $show_field = true; - } elseif ( !empty( $user_pack ) && !empty( $visibility_choices ) ) { + } else if ( ! empty( $user_pack ) && ! empty( $visibility_choices ) ) { foreach ( $visibility_choices as $pack => $id ) { if ( $user_pack['pack_id'] == $id ) { $show_field = true; diff --git a/class/subscription.php b/includes/Admin/WPUF_Subscription.php similarity index 99% rename from class/subscription.php rename to includes/Admin/WPUF_Subscription.php index bf7b4ca2e..94930f619 100644 --- a/class/subscription.php +++ b/includes/Admin/WPUF_Subscription.php @@ -1,5 +1,7 @@ meta_value['billing_amount'] >= 0 && ! empty( $pack->meta_value['billing_amount'] ) ) ? $pack->meta_value['billing_amount'] : false; if ( $billing_amount === false ) { - wpuf_get_user( $user_id )->subscription()->add_pack( $pack_id, null, false, 'free' ); + wpuf_get_user( $user_id )->subscription()->add_pack( $pack_id, null, false, 'Free' ); wpuf_get_user( $user_id )->subscription()->add_free_pack( $user_id, $pack_id ); } else { $pay_page = intval( wpuf_get_option( 'payment_page', 'wpuf_payment' ) ); @@ -391,7 +393,7 @@ public function save_form_meta( $subscription_id, $post ) { if ( isset( $post_data['post_expiration_settings'] ) ) { if ( isset( $post_data['post_expiration_settings']['expiration_time_value'] ) && isset( $post_data['post_expiration_settings']['expiration_time_type'] ) ) { - $expiration_time = sanitize_text_field( wp_unslash( $post_data['post_expiration_settings']['expiration_time_value'] ) ) . ' ' . sanitize_text_field( wp_unslash( $post_data['post_expiration_settings']['expiration_time_type'] ) ); + $expiration_time = sanitize_text_field( wp_unslash( $post_data['post_expiration_settings']['expiration_time_value'] ) ) . ' subscription.php' . sanitize_text_field( wp_unslash( $post_data['post_expiration_settings']['expiration_time_type'] ) ); } if ( isset( $post_data['post_expiration_settings']['enable_post_expiration'] ) && isset( $post_data['post_expiration_settings']['enable_post_expiration'] ) ) { @@ -1187,7 +1189,7 @@ public static function has_user_error( $form_settings = null ) { } /** - * Determine if the user has used a free pack before + * Determine if the user has used a Free pack before * * @since 2.1.8 * @@ -1203,7 +1205,7 @@ public static function has_used_free_pack( $user_id, $pack_id ) { } /** - * Add a free used pack to the user account + * Add a Free used pack to the user account * * @since 2.1.8 * @@ -1277,9 +1279,9 @@ public function insert_free_pack_subscribers( $pack_id, $userdata ) { 'user_id' => $userdata->id, 'name' => $userdata->user->data->display_name, 'subscribtion_id' => $pack_id, - 'subscribtion_status' => 'free', - 'gateway' => 'free', - 'transaction_id' => 'free', + 'subscribtion_status' => 'Free', + 'gateway' => 'Free', + 'transaction_id' => 'Free', 'starts_from' => gmdate( 'd-m-Y' ), 'expire' => empty( $post_expiration_time ) ? 'recurring' : $post_expiration_time, ]; diff --git a/admin/html/modal.php b/includes/Admin/template-parts/modal.php similarity index 99% rename from admin/html/modal.php rename to includes/Admin/template-parts/modal.php index 38be538b5..8506dae43 100644 --- a/admin/html/modal.php +++ b/includes/Admin/template-parts/modal.php @@ -1,3 +1,4 @@ +
diff --git a/views/post-form.php b/includes/Admin/views/post-form.php similarity index 100% rename from views/post-form.php rename to includes/Admin/views/post-form.php diff --git a/admin/post-forms-list-table-view.php b/includes/Admin/views/post-forms-list-table-view.php similarity index 93% rename from admin/post-forms-list-table-view.php rename to includes/Admin/views/post-forms-list-table-view.php index fa452b225..e4cf273ed 100644 --- a/admin/post-forms-list-table-view.php +++ b/includes/Admin/views/post-forms-list-table-view.php @@ -18,7 +18,7 @@
prepare_items(); $wpuf_post_form->search_box( __( 'Search Forms', 'wp-user-frontend' ), 'wpuf-post-form-search' ); diff --git a/includes/Assets.php b/includes/Assets.php index 204a61bf0..d4115fcdc 100644 --- a/includes/Assets.php +++ b/includes/Assets.php @@ -76,35 +76,35 @@ public function get_styles() { 'src' => WPUF_ASSET_URI . '/css/frontend-form/layout5.css', ], 'jquery-ui' => [ - 'src' => WPUF_ASSET_URI . '/css/jquery-ui-1.9.1.custom.css', + 'src' => WPUF_ASSET_URI . '/css/jquery-ui-1.9.1.custom.css', 'version' => '1.9.1', ], 'sweetalert2' => [ - 'src' => WPUF_ASSET_URI . '/vendor/sweetalert2/sweetalert2.css', + 'src' => WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.css', 'version' => '11.4.19', ], 'font-awesome' => [ - 'src' => WPUF_ASSET_URI . '/vendor/font-awesome/css/font-awesome.min.css', + 'src' => WPUF_ASSET_URI . '/vendor/font-awesome/css/font-awesome.min.css', 'version' => '4.7.0', ], 'selectize' => [ - 'src' => WPUF_ASSET_URI . '/vendor/selectize/css/selectize.default.css', + 'src' => WPUF_ASSET_URI . '/vendor/selectize/css/selectize.default.css', 'version' => '0.12.4', ], 'toastr' => [ - 'src' => WPUF_ASSET_URI . '/vendor/toastr/toastr.min.css', + 'src' => WPUF_ASSET_URI . '/vendor/toastr/toastr.min.css', 'version' => '2.1.3', ], 'tooltip' => [ - 'src' => WPUF_ASSET_URI . '/vendor/tooltip/tooltip.css', + 'src' => WPUF_ASSET_URI . '/vendor/tooltip/tooltip.css', 'version' => '3.3.7', ], 'form-builder' => [ 'src' => WPUF_ASSET_URI . '/css/wpuf-form-builder.css', 'deps' => $this->form_builder_css_deps, ], - 'admin' => [ - 'src' => WPUF_ASSET_URI . '/css/admin.css', + 'admin' => [ + 'src' => WPUF_ASSET_URI . '/css/admin.css', ], ]; @@ -132,7 +132,7 @@ public function get_scripts() { // * Data required for building the form // */ // require_once WPUF_ROOT . '/admin/form-builder/class-wpuf-form-builder-field-settings.php'; -// require_once WPUF_ROOT . '/includes/free/prompt.php'; +// require_once WPUF_ROOT . '/includes/Free/WPUF_Pro_Prompt.php'; // $wpuf_form_builder = apply_filters( 'wpuf-form-builder-localize-script', [ // 'post' => $post, // 'form_fields' => wpuf_get_form_fields( $post->ID ), @@ -157,67 +157,78 @@ public function get_scripts() { 'vue' => [ 'src' => WPUF_ASSET_URI . '/vendor/vue/vue' . $this->suffix . '.js', 'in_footer' => true, - 'version' => '2.2.4', + 'version' => '2.2.4', ], 'vuex' => [ - 'src' => WPUF_ASSET_URI . '/vendor/vue/vuex' . $this->suffix . '.js', + 'src' => WPUF_ASSET_URI . '/vendor/vuex/vuex' . $this->suffix . '.js', 'in_footer' => true, - 'version' => '2.2.1', + 'version' => '2.2.1', ], 'sweetalert2' => [ - 'src' => WPUF_ASSET_URI . '/vendor/sweetalert2/sweetalert2.js' . $this->suffix . '.js', + 'src' => WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2' . $this->suffix . '.js', 'in_footer' => true, - 'version' => '11.4.19', + 'version' => '11.4.19', ], 'jquery-scrollTo' => [ 'src' => WPUF_ASSET_URI . '/vendor/jquery.scrollTo/jquery.scrollTo' . $this->suffix . '.js', 'in_footer' => true, 'deps' => [ 'jquery' ], - 'version' => '11.4.19', + 'version' => '11.4.19', ], 'selectize' => [ 'src' => WPUF_ASSET_URI . '/vendor/selectize/js/standalone/selectize' . $this->suffix . '.js', 'in_footer' => true, 'deps' => [ 'jquery' ], - 'version' => '0.12.4', + 'version' => '0.12.4', ], 'toastr' => [ 'src' => WPUF_ASSET_URI . '/vendor/toastr/toastr' . $this->suffix . '.js', 'in_footer' => true, - 'version' => '2.1.3', + 'version' => '2.1.3', ], 'clipboard' => [ 'src' => WPUF_ASSET_URI . '/vendor/clipboard/clipboard' . $this->suffix . '.js', 'in_footer' => true, - 'version' => '1.6.0', + 'version' => '1.6.0', ], 'tooltip' => [ 'src' => WPUF_ASSET_URI . '/vendor/tooltip/tooltip' . $this->suffix . '.js', 'in_footer' => true, - 'version' => '3.3.7', + 'version' => '3.3.7', ], 'form-builder-mixins' => [ - 'src' => WPUF_ASSET_URI . 'js/wpuf-form-builder-mixins.js' . $this->suffix . '.js', + 'src' => WPUF_ASSET_URI . '/js/wpuf-form-builder-mixins' . $this->suffix . '.js', 'deps' => $form_builder_js_deps, 'in_footer' => true, ], 'form-builder-components' => [ - 'src' => WPUF_ASSET_URI . 'js/wpuf-form-builder-components.js' . $this->suffix . '.js', + 'src' => WPUF_ASSET_URI . '/js/wpuf-form-builder-components' . $this->suffix . '.js', 'deps' => [ 'wpuf-form-builder-mixins' ], 'in_footer' => true, ], 'form-builder' => [ - 'src' => WPUF_ASSET_URI . '/js/wpuf-form-builder.js' . $this->suffix . '.js', + 'src' => WPUF_ASSET_URI . '/js/wpuf-form-builder' . $this->suffix . '.js', 'deps' => [ 'wpuf-form-builder-components' ], 'in_footer' => true, ], 'admin' => [ - 'src' => WPUF_ASSET_URI . '/js/wpuf-admin.js' . $this->suffix . '.js', + 'src' => WPUF_ASSET_URI . '/js/wpuf-admin' . $this->suffix . '.js', 'deps' => [ 'jquery' ], ], - 'subscriptions' => [ - 'src' => WPUF_ASSET_URI . '/js/subscriptions.js' . $this->suffix . '.js', - 'deps' => [ 'jquery' ], + 'subscriptions' => [ + 'src' => WPUF_ASSET_URI . '/js/subscriptions' . $this->suffix . '.js', + 'deps' => [ 'jquery' ], + 'in_footer' => true, + ], + 'timepicker' => [ + 'src' => WPUF_ASSET_URI . '/js/jquery-ui-timepicker-addon.js', + 'deps' => [ 'jquery-ui-datepicker' ], + 'version' => '1.2', + 'in_footer' => true, + ], + 'form-builder-wpuf-forms' => [ + 'src' => WPUF_ASSET_URI . '/js/wpuf-form-builder-wpuf-forms.js', + 'deps' => [ 'jquery', 'underscore', 'wpuf-vue', 'wpuf-vuex' ], 'in_footer' => true, ], ]; diff --git a/includes/fields/class-abstract-fields.php b/includes/Fields/WPUF_Field_Contract.php similarity index 99% rename from includes/fields/class-abstract-fields.php rename to includes/Fields/WPUF_Field_Contract.php index d45eef720..f899d9999 100755 --- a/includes/fields/class-abstract-fields.php +++ b/includes/Fields/WPUF_Field_Contract.php @@ -1,4 +1,5 @@

- %post_title%, %post_content%, %post_excerpt%, %tags%, %category%, + %post_title%, %post_content%, %post_excerpt%, %tags%, %category%, @@ -326,7 +328,7 @@ public static function render_registration_form() { // @codingStandardsIgnoreStart WPUF_Admin_Template_Profile::$input_field['template']( $count, $name, $input_field ); - + // @codingStandardsIgnoreEnd $count++; @@ -375,11 +377,11 @@ public static function render_registration_settings() { $label ) { - printf( - '', - esc_attr( $role ), - esc_attr( selected( $role_selected, $role, false ) ), - esc_attr( $label ) + printf( + '', + esc_attr( $role ), + esc_attr( selected( $role_selected, $role, false ) ), + esc_attr( $label ) ); } ?> @@ -434,11 +436,11 @@ public static function render_registration_settings() { ]); foreach ( $pages as $page ) { - printf( - '', - esc_attr( $page->ID ), - esc_attr( selected( $page_id, $page->ID, false ) ), - esc_attr( $page->post_title ) + printf( + '', + esc_attr( $page->ID ), + esc_attr( selected( $page_id, $page->ID, false ) ), + esc_attr( $page->post_title ) ); } ?> diff --git a/includes/free/loader.php b/includes/Free/WPUF_Free_Loader.php similarity index 98% rename from includes/free/loader.php rename to includes/Free/WPUF_Free_Loader.php index efd9c611f..7740d0811 100644 --- a/includes/free/loader.php +++ b/includes/Free/WPUF_Free_Loader.php @@ -1,13 +1,19 @@ includes(); + // $this->includes(); $this->instantiate(); add_action( 'add_meta_boxes_wpuf_forms', [$this, 'add_meta_box_post'], 99 ); @@ -39,8 +45,8 @@ public function __construct() { add_filter( 'wpuf_settings_sections', [ $this, 'pro_sections' ] ); add_filter( 'wpuf_settings_fields', [ $this, 'pro_settings' ] ); // post form templates - add_action( 'wpuf_get_post_form_templates', [$this, 'post_form_templates'] ); - add_filter( 'wpuf_get_pro_form_previews', [$this, 'pro_form_previews'] ); + add_action( 'wpuf_get_post_form_templates', [ $this, 'post_form_templates' ] ); + add_filter( 'wpuf_get_pro_form_previews', [ $this, 'pro_form_previews' ] ); // payment gateway added for previewing add_filter( 'wpuf_payment_gateways', [ $this, 'wpuf_payment_gateways' ] ); @@ -53,10 +59,10 @@ public function __construct() { public function includes() { //class files to include pro elements - require_once __DIR__ . '/form.php'; - require_once __DIR__ . '/form-element.php'; - require_once __DIR__ . '/subscription.php'; - require_once __DIR__ . '/edit-profile.php'; + require_once __DIR__ . '/WPUF_Admin_Form_Free.php'; + require_once __DIR__ . '/WPUF_Form_Element.php'; + require_once __DIR__ . '/WPUF_Subscription_Element.php'; + require_once __DIR__ . '/WPUF_Edit_Profile.php'; require_once __DIR__ . '/edit-user.php'; } @@ -66,7 +72,7 @@ public function instantiate() { if ( is_admin() ) { /** - * Conditionally load the free loader + * Conditionally load the Free loader * * @since 2.5.7 * @@ -159,7 +165,7 @@ public function settings_login_prompt( $fields ) { } /** - * The pro settings preview on the free version + * The pro settings preview on the Free version * * @since 3.6.0 * @@ -218,7 +224,7 @@ public function pro_sections( $sections ) { } /** - * The pro settings preview on the free version + * The pro settings preview on the Free version * * @since 3.6.0 * @@ -242,7 +248,7 @@ public function pro_settings( $settings_fields ) { 'name' => 'ipstack_key', 'label' => __( 'Ipstack API Key', 'wp-user-frontend' ) . ' ' . file_get_contents( $crown_icon_path ) . '', - 'desc' => __( 'Register here to get your free ipstack api key', + 'desc' => __( 'Register here to get your Free ipstack api key', 'wp-user-frontend' ), 'class' => 'pro-preview', 'is_pro_preview' => true, @@ -898,11 +904,10 @@ public function wpuf_check_save_permission_runner( $post, $update ) { * @return array */ public function post_form_templates( $integrations ) { - require_once __DIR__ . '/post-form-templates/woocommerce.php'; - require_once __DIR__ . '/post-form-templates/the_events_calendar.php'; - - $integrations['WPUF_Post_Form_Template_WooCommerce'] = new WPUF_Post_Form_Template_WooCommerce(); - $integrations['WPUF_Post_Form_Template_Events_Calendar'] = new WPUF_Post_Form_Template_Events_Calendar(); + // require_once WPUF_INCLUDES . '/Admin/PostFormTemplates/WPUF_Post_Form_Template_WooCommerce.php'; + // require_once __DIR__ . '/post-form-templates/the_events_calendar.php'; + $integrations['WPUF_Post_Form_Template_WooCommerce'] = new WPUF_Post_Form_Template_WooCommerce(); + $integrations['WPUF_Post_Form_Template_Events_Calendar'] = new WPUF_Post_Form_Template_Events_Calendar(); return $integrations; } @@ -917,7 +922,7 @@ public function post_form_templates( $integrations ) { * @return array */ public function pro_form_previews( $integrations ) { - include_once __DIR__ . '/post-form-templates/easy_digital_download.php'; + // include_once __DIR__ . '/post-form-templates/WPUF_Pro_Form_Preview_EDD.php'; $integrations['WPUF_Pro_Form_Preview_EDD'] = new WPUF_Pro_Form_Preview_EDD(); @@ -1244,7 +1249,7 @@ class="wpuf-button button-upgrade-to-pro"> } /** - * payment gateways for previewing in the free version + * payment gateways for previewing in the Free version * * @since 3.6.0 * diff --git a/includes/free/prompt.php b/includes/Free/WPUF_Pro_Prompt.php similarity index 96% rename from includes/free/prompt.php rename to includes/Free/WPUF_Pro_Prompt.php index 0a6ab1af4..f3bb0f68a 100644 --- a/includes/free/prompt.php +++ b/includes/Free/WPUF_Pro_Prompt.php @@ -1,5 +1,7 @@ messages[] = __( 'Please enter your username or email address. You will receive a link to create a new password via email.', 'wp-user-frontend' ); } - wpuf_load_template( 'lost-pass-form.php', $args ); + wpuf_load_template( 'lost-pass-WPUF_Admin_Form_Free.php', $args ); break; case 'rp': @@ -373,13 +373,13 @@ public function login_form() { if ( $reset === 'true' ) { $this->messages[] = __( 'Your password has been reset successfully', 'wp-user-frontend' ); - wpuf_load_template( 'login-form.php', $args ); + wpuf_load_template( 'login-WPUF_Admin_Form_Free.php', $args ); break; } else { $this->messages[] = __( 'Enter your new password below.', 'wp-user-frontend' ); - wpuf_load_template( 'reset-pass-form.php', $args ); + wpuf_load_template( 'reset-pass-WPUF_Admin_Form_Free.php', $args ); } break; @@ -393,7 +393,7 @@ public function login_form() { $args['redirect_to'] = $this->get_login_redirect_link( $args['redirect_to'] ); - wpuf_load_template( 'login-form.php', $args ); + wpuf_load_template( 'login-WPUF_Admin_Form_Free.php', $args ); break; } diff --git a/includes/free/class-registration.php b/includes/Free/class-registration.php similarity index 99% rename from includes/free/class-registration.php rename to includes/Free/class-registration.php index 1b413c505..4410b8821 100644 --- a/includes/free/class-registration.php +++ b/includes/Free/class-registration.php @@ -170,7 +170,7 @@ public function registration_form( $atts ) { 'user_nonce' => $user_nonce, ]; - wpuf_load_template( 'registration-form.php', $args ); + wpuf_load_template( 'registration-WPUF_Admin_Form_Free.php', $args ); } return ob_get_clean(); diff --git a/includes/free/edit-user.php b/includes/Free/edit-user.php similarity index 100% rename from includes/free/edit-user.php rename to includes/Free/edit-user.php diff --git a/includes/free/templates/page-registration-form.php b/includes/Free/templates/page-registration-form.php similarity index 100% rename from includes/free/templates/page-registration-form.php rename to includes/Free/templates/page-registration-form.php diff --git a/includes/class-frontend-form-post.php b/includes/WPUF_Frontend_Form.php similarity index 99% rename from includes/class-frontend-form-post.php rename to includes/WPUF_Frontend_Form.php index eb119782a..09e3a0547 100755 --- a/includes/class-frontend-form-post.php +++ b/includes/WPUF_Frontend_Form.php @@ -1,5 +1,7 @@ %s', home_url(), home_url() ); $post_url = sprintf( '%s', get_permalink( $post_id ), get_permalink( $post_id ) ); - $post_edit_link = sprintf( '%s', admin_url( 'post.php?action=edit&post=' . $post_id ), admin_url( 'post.php?action=edit&post=' . $post_id ) ); + $post_edit_link = sprintf( '%s', admin_url( 'WPUF_Post_Form_Template_Post.php?action=edit&post=' . $post_id ), admin_url( 'WPUF_Post_Form_Template_Post.php?action=edit&post=' . $post_id ) ); $post_field_replace = [ $post->post_title, diff --git a/includes/class-frontend-render-form.php b/includes/WPUF_Frontend_Render_Form.php similarity index 99% rename from includes/class-frontend-render-form.php rename to includes/WPUF_Frontend_Render_Form.php index 11fa1a58c..c3e716c9a 100644 --- a/includes/class-frontend-render-form.php +++ b/includes/WPUF_Frontend_Render_Form.php @@ -1,5 +1,7 @@
Fatal error: Can't use method return value in write context in /wp-user-frontend/class/frontend-form-post.php on line 194" -msgstr "تعذر تثبيت WP User Frontend مع PHP 5.4 أو إصدار أقل. هنا تفاصيل الخطأ:

Fatal error: Can't use method return value in write context in /wp-user-frontend/class/frontend-form-post.php on line 194" +msgid "It was unable to install WP User Frontend with PHP 5.4 or lower version. Here is the error details:

Fatal error: Can't use method return value in write context in /wp-user-frontend/class/frontend-form-WPUF_Post_Form_Template_Post.php on line 194" +msgstr "تعذر تثبيت WP User Frontend مع PHP 5.4 أو إصدار أقل. هنا تفاصيل الخطأ:

Fatal error: Can't use method return value in write context in /wp-user-frontend/class/frontend-form-WPUF_Post_Form_Template_Post.php on line 194" #: admin/html/whats-new.php:132 msgid "Fatal error when use PHP lower version (5.4 or lower)" @@ -4562,11 +4562,11 @@ msgid "Pricing & Plans" msgstr "الأسعار والخطط" #: class/payment.php:123 -msgid "You already have activated a free package previously." +msgid "You already have activated a Free package previously." msgstr "لقد قمت بالفعل بتنشيط حزمة مجانية مسبقًا." #: class/payment.php:121 -msgid "Your free package has been activated. Enjoy!" +msgid "Your Free package has been activated. Enjoy!" msgstr "حزمتك المجانية نشطة. التحق!" #: class/payment.php:71 @@ -6146,4 +6146,4 @@ msgstr "إستمارة" #: admin/form.php:49 admin/form.php:69 admin/form.php:71 admin/form.php:107 msgid "Forms" -msgstr "أشكال" \ No newline at end of file +msgstr "أشكال" diff --git a/languages/wp-user-frontend-es_ES.po b/languages/wp-user-frontend-es_ES.po index 9a3672680..c8c721afa 100644 --- a/languages/wp-user-frontend-es_ES.po +++ b/languages/wp-user-frontend-es_ES.po @@ -2246,11 +2246,11 @@ msgid "Please select your payment page from admin panel" msgstr "Por favor, seleccione su página de pago en el panel de administración" #: class/payment.php:118 -msgid "Your free package has been activated. Enjoy!" +msgid "Your Free package has been activated. Enjoy!" msgstr "¡Su paquete gratuito ha sido activado!" #: class/payment.php:120 -msgid "You already have activated a free package previously." +msgid "You already have activated a Free package previously." msgstr "Ya has activado un paquete gratuito anteriormente." #: class/payment.php:144 diff --git a/languages/wp-user-frontend-fa_IR.po b/languages/wp-user-frontend-fa_IR.po index 3c9951a8a..eb9ea3e33 100644 --- a/languages/wp-user-frontend-fa_IR.po +++ b/languages/wp-user-frontend-fa_IR.po @@ -1834,11 +1834,11 @@ msgid "Please select your payment page from admin panel" msgstr "لطفا برگه پرداخت خود را از ناحیه مدیریت انتخاب کنید" #: class/payment.php:117 -msgid "Your free package has been activated. Enjoy!" +msgid "Your Free package has been activated. Enjoy!" msgstr "بسته رایگان شما فعال شده است. لذت ببرید!" #: class/payment.php:119 -msgid "You already have activated a free package previously." +msgid "You already have activated a Free package previously." msgstr "شما در حال حاضر یک بسته رایگان از قبل فعال کرده اید." #: class/payment.php:143 diff --git a/languages/wp-user-frontend-tr_TR.po b/languages/wp-user-frontend-tr_TR.po index ca1d78ee7..8e3221e86 100644 --- a/languages/wp-user-frontend-tr_TR.po +++ b/languages/wp-user-frontend-tr_TR.po @@ -3231,11 +3231,11 @@ msgid "Please select your payment page from admin panel" msgstr "Lütfen ödeme sayfasını yönetici panelinden seçin" #: class/payment.php:118 -msgid "Your free package has been activated. Enjoy!" +msgid "Your Free package has been activated. Enjoy!" msgstr "Ücretsiz paketiniz etkinleştirildi. Tadını çıkarın!" #: class/payment.php:120 -msgid "You already have activated a free package previously." +msgid "You already have activated a Free package previously." msgstr "Daha önceden zaten bir ücretsiz paketi etkinleştirmişsiniz." #: class/payment.php:144 diff --git a/languages/wp-user-frontend-zh_CN.po b/languages/wp-user-frontend-zh_CN.po index 081cd2dd1..7465f2136 100644 --- a/languages/wp-user-frontend-zh_CN.po +++ b/languages/wp-user-frontend-zh_CN.po @@ -1768,11 +1768,11 @@ msgid "Please select your payment page from admin panel" msgstr "请从管理面板选择付款页面" #: ../class/payment.php:117 -msgid "Your free package has been activated. Enjoy!" +msgid "Your Free package has been activated. Enjoy!" msgstr "你的免费套餐已经激活。" #: ../class/payment.php:119 -msgid "You already have activated a free package previously." +msgid "You already have activated a Free package previously." msgstr "你之前已经激活一个免费套餐。" #: ../class/payment.php:143 @@ -3112,7 +3112,7 @@ msgstr "请修正错误以继续进行" #~ msgid "Post Left:" #~ msgstr "文章剩余:" -#~ msgid "You can only buy the free pack once. Proceed?" +#~ msgid "You can only buy the Free pack once. Proceed?" #~ msgstr "你可以购买一次免费包,继续?" #~ msgid "Click here to complete the payment on %s" diff --git a/languages/wp-user-frontend.pot b/languages/wp-user-frontend.pot index 1a972bab3..96d077537 100644 --- a/languages/wp-user-frontend.pot +++ b/languages/wp-user-frontend.pot @@ -2601,7 +2601,7 @@ msgid "" "It was unable to install WP User Frontend with PHP 5.4 or lower version. " "Here is the error details:

Fatal error: Can't use method " "return value in write context in " -"/wp-user-frontend/class/frontend-form-post.php on line 194" +"/wp-user-frontend/class/frontend-form-WPUF_Post_Form_Template_Post.php on line 194" msgstr "" #: admin/html/whats-new.php:1222 @@ -4632,11 +4632,11 @@ msgid "No subscription pack found." msgstr "" #: class/payment.php:134 -msgid "Your free package has been activated. Enjoy!" +msgid "Your Free package has been activated. Enjoy!" msgstr "" #: class/payment.php:136 -msgid "You already have activated a free package previously." +msgid "You already have activated a Free package previously." msgstr "" #: class/payment.php:154 includes/class-customizer.php:56 @@ -6859,7 +6859,7 @@ msgstr "" #: includes/free/loader.php:289 msgid "" "Register " -"here to get your free ipstack api key" +"here to get your Free ipstack api key" msgstr "" #: includes/free/loader.php:296 @@ -8185,4 +8185,4 @@ msgstr "" #: wpuf-functions.php:1539 msgctxt "tag delimiter" msgid "," -msgstr "" \ No newline at end of file +msgstr "" diff --git a/lib/gateway/paypal.php b/lib/gateway/paypal.php index 3b58f4d26..2382da3bc 100644 --- a/lib/gateway/paypal.php +++ b/lib/gateway/paypal.php @@ -185,7 +185,7 @@ public function prepare_to_send( $data ) { $data['tax'] = $billing_amount - $data['subtotal']; if ( $billing_amount == 0 ) { - wpuf_get_user( $user_id )->subscription()->add_pack( $data['item_number'], $profile_id = null, false, 'free' ); + wpuf_get_user( $user_id )->subscription()->add_pack( $data['item_number'], $profile_id = null, false, 'Free' ); wp_redirect( $return_url ); exit(); } diff --git a/lib/recaptchalib.php b/lib/recaptchalib.php index 18e6ba8d5..a6315d65f 100644 --- a/lib/recaptchalib.php +++ b/lib/recaptchalib.php @@ -1,288 +1,288 @@ - $value ) - $req .= $key . '=' . urlencode( stripslashes($value) ) . '&'; - - // Cut the last '&' - $req=substr($req,0,strlen($req)-1); - return $req; -} - - - -/** - * Submits an HTTP POST to a reCAPTCHA server - * @param string $host - * @param string $path - * @param array $data - * @param int port - * @return array response - */ -function _recaptcha_http_post($host, $path, $data, $port = 80) { - - $req = _recaptcha_qsencode ($data); - - $http_request = "POST $path HTTP/1.0\r\n"; - $http_request .= "Host: $host\r\n"; - $http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n"; - $http_request .= "Content-Length: " . strlen($req) . "\r\n"; - $http_request .= "User-Agent: reCAPTCHA/PHP\r\n"; - $http_request .= "\r\n"; - $http_request .= $req; - - $response = ''; - if( false == ( $fs = @fsockopen($host, $port, $errno, $errstr, 10) ) ) { - die ('Could not open socket'); - } - - fwrite($fs, $http_request); - - while ( !feof($fs) ) - $response .= fgets($fs, 1160); // One TCP-IP packet - fclose($fs); - $response = explode("\r\n\r\n", $response, 2); - - return $response; -} - - - -/** - * Gets the challenge HTML (javascript and non-javascript version). - * This is called from the browser, and the resulting reCAPTCHA HTML widget - * is embedded within the HTML form it was called from. - * @param string $pubkey A public key for reCAPTCHA - * @param string $error The error given by reCAPTCHA (optional, default is null) - * @param boolean $use_ssl Should the request be made over ssl? (optional, default is false) - - * @return string - The HTML to be embedded in the user's form. - */ -function recaptcha_get_html ($pubkey, $enable_no_captcha = false, $error = null, $use_ssl = false) -{ - if ($pubkey == null || $pubkey == '') { - die ("To use reCAPTCHA you must get an API key from https://www.google.com/recaptcha/admin/create"); - } - - if ($use_ssl) { - $server = RECAPTCHA_API_SECURE_SERVER; - } else { - $server = RECAPTCHA_API_SERVER; - } - - $errorpart = ""; - if ($error) { - $errorpart = "&error=" . $error; - } - - - if ( $enable_no_captcha == true ) { - $return_var = '

'; - } else { - $return_var = ''; - } - - return $return_var.' - - '; -} - - - - -/** - * A ReCaptchaResponse is returned from recaptcha_check_answer() - */ -if ( !class_exists( 'ReCaptchaResponse' ) ) { - class ReCaptchaResponse { - var $is_valid; - var $error; - } -} - - - -/** - * Calls an HTTP POST function to verify if the user's guess was correct - * @param string $privkey - * @param string $remoteip - * @param string $challenge - * @param string $response - * @param array $extra_params an array of extra variables to post to the server - * @return ReCaptchaResponse - */ -function recaptcha_check_answer ($privkey, $remoteip, $challenge, $response, $extra_params = array()) -{ - if ($privkey == null || $privkey == '') { - die ("To use reCAPTCHA you must get an API key from https://www.google.com/recaptcha/admin/create"); - } - - if ($remoteip == null || $remoteip == '') { - die ("For security reasons, you must pass the remote ip to reCAPTCHA"); - } - - - - //discard spam submissions - if ($challenge == null || strlen($challenge) == 0 || $response == null || strlen($response) == 0) { - $recaptcha_response = new ReCaptchaResponse(); - $recaptcha_response->is_valid = false; - $recaptcha_response->error = 'incorrect-captcha-sol'; - return $recaptcha_response; - } - - $response = _recaptcha_http_post (RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify", - array ( - 'privatekey' => $privkey, - 'remoteip' => $remoteip, - 'challenge' => $challenge, - 'response' => $response - ) + $extra_params - ); - - $answers = explode ("\n", $response [1]); - $recaptcha_response = new ReCaptchaResponse(); - - if (trim ($answers [0]) == 'true') { - $recaptcha_response->is_valid = true; - } - else { - $recaptcha_response->is_valid = false; - $recaptcha_response->error = $answers [1]; - } - return $recaptcha_response; - -} - -/** - * gets a URL where the user can sign up for reCAPTCHA. If your application - * has a configuration page where you enter a key, you should provide a link - * using this function. - * @param string $domain The domain where the page is hosted - * @param string $appname The name of your application - */ -function recaptcha_get_signup_url ($domain = null, $appname = null) { - return "https://www.google.com/recaptcha/admin/create?" . _recaptcha_qsencode (array ('domains' => $domain, 'app' => $appname)); -} - -function _recaptcha_aes_pad($val) { - $block_size = 16; - $numpad = $block_size - (strlen ($val) % $block_size); - return str_pad($val, strlen ($val) + $numpad, chr($numpad)); -} - -/* Mailhide related code */ - -function _recaptcha_aes_encrypt($val,$ky) { - if (! function_exists ("mcrypt_encrypt")) { - die ("To use reCAPTCHA Mailhide, you need to have the mcrypt php module installed."); - } - $mode=MCRYPT_MODE_CBC; - $enc=MCRYPT_RIJNDAEL_128; - $val=_recaptcha_aes_pad($val); - return mcrypt_encrypt($enc, $ky, $val, $mode, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); -} - - -function _recaptcha_mailhide_urlbase64 ($x) { - return strtr(base64_encode ($x), '+/', '-_'); -} - -/* gets the reCAPTCHA Mailhide url for a given email, public key and private key */ -function recaptcha_mailhide_url($pubkey, $privkey, $email) { - if ($pubkey == '' || $pubkey == null || $privkey == "" || $privkey == null) { - die ("To use reCAPTCHA Mailhide, you have to sign up for a public and private key, " . - "you can do so at http://www.google.com/recaptcha/mailhide/apikey"); - } - - - $ky = pack('H*', $privkey); - $cryptmail = _recaptcha_aes_encrypt ($email, $ky); - - return "http://www.google.com/recaptcha/mailhide/d?k=" . $pubkey . "&c=" . _recaptcha_mailhide_urlbase64 ($cryptmail); -} - -/** - * gets the parts of the email to expose to the user. - * eg, given johndoe@example,com return ["john", "example.com"]. - * the email is then displayed as john...@example.com - */ -function _recaptcha_mailhide_email_parts ($email) { - $arr = preg_split("/@/", $email ); - - if (strlen ($arr[0]) <= 4) { - $arr[0] = substr ($arr[0], 0, 1); - } else if (strlen ($arr[0]) <= 6) { - $arr[0] = substr ($arr[0], 0, 3); - } else { - $arr[0] = substr ($arr[0], 0, 4); - } - return $arr; -} - -/** - * Gets html to display an email address given a public an private key. - * to get a key, go to: - * - * http://www.google.com/recaptcha/mailhide/apikey - */ -function recaptcha_mailhide_html($pubkey, $privkey, $email) { - $emailparts = _recaptcha_mailhide_email_parts ($email); - $url = recaptcha_mailhide_url ($pubkey, $privkey, $email); - - return htmlentities($emailparts[0]) . "...@" . htmlentities ($emailparts [1]); - -} - - -?> + $value ) + $req .= $key . '=' . urlencode( stripslashes($value) ) . '&'; + + // Cut the last '&' + $req=substr($req,0,strlen($req)-1); + return $req; +} + + + +/** + * Submits an HTTP POST to a reCAPTCHA server + * @param string $host + * @param string $path + * @param array $data + * @param int port + * @return array response + */ +function _recaptcha_http_post($host, $path, $data, $port = 80) { + + $req = _recaptcha_qsencode ($data); + + $http_request = "POST $path HTTP/1.0\r\n"; + $http_request .= "Host: $host\r\n"; + $http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n"; + $http_request .= "Content-Length: " . strlen($req) . "\r\n"; + $http_request .= "User-Agent: reCAPTCHA/PHP\r\n"; + $http_request .= "\r\n"; + $http_request .= $req; + + $response = ''; + if( false == ( $fs = @fsockopen($host, $port, $errno, $errstr, 10) ) ) { + die ('Could not open socket'); + } + + fwrite($fs, $http_request); + + while ( !feof($fs) ) + $response .= fgets($fs, 1160); // One TCP-IP packet + fclose($fs); + $response = explode("\r\n\r\n", $response, 2); + + return $response; +} + + + +/** + * Gets the challenge HTML (javascript and non-javascript version). + * This is called from the browser, and the resulting reCAPTCHA HTML widget + * is embedded within the HTML form it was called from. + * @param string $pubkey A public key for reCAPTCHA + * @param string $error The error given by reCAPTCHA (optional, default is null) + * @param boolean $use_ssl Should the request be made over ssl? (optional, default is false) + + * @return string - The HTML to be embedded in the user's form. + */ +function recaptcha_get_html ($pubkey, $enable_no_captcha = false, $error = null, $use_ssl = false) +{ + if ($pubkey == null || $pubkey == '') { + die ("To use reCAPTCHA you must get an API key from https://www.google.com/recaptcha/admin/create"); + } + + if ($use_ssl) { + $server = RECAPTCHA_API_SECURE_SERVER; + } else { + $server = RECAPTCHA_API_SERVER; + } + + $errorpart = ""; + if ($error) { + $errorpart = "&error=" . $error; + } + + + if ( $enable_no_captcha == true ) { + $return_var = '
'; + } else { + $return_var = ''; + } + + return $return_var.' + + '; +} + + + + +/** + * A ReCaptchaResponse is returned from recaptcha_check_answer() + */ +if ( !class_exists( 'ReCaptchaResponse' ) ) { + class ReCaptchaResponse { + var $is_valid; + var $error; + } +} + + + +/** + * Calls an HTTP POST function to verify if the user's guess was correct + * @param string $privkey + * @param string $remoteip + * @param string $challenge + * @param string $response + * @param array $extra_params an array of extra variables to post to the server + * @return ReCaptchaResponse + */ +function recaptcha_check_answer ($privkey, $remoteip, $challenge, $response, $extra_params = array()) +{ + if ($privkey == null || $privkey == '') { + die ("To use reCAPTCHA you must get an API key from https://www.google.com/recaptcha/admin/create"); + } + + if ($remoteip == null || $remoteip == '') { + die ("For security reasons, you must pass the remote ip to reCAPTCHA"); + } + + + + //discard spam submissions + if ($challenge == null || strlen($challenge) == 0 || $response == null || strlen($response) == 0) { + $recaptcha_response = new ReCaptchaResponse(); + $recaptcha_response->is_valid = false; + $recaptcha_response->error = 'incorrect-captcha-sol'; + return $recaptcha_response; + } + + $response = _recaptcha_http_post (RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify", + array ( + 'privatekey' => $privkey, + 'remoteip' => $remoteip, + 'challenge' => $challenge, + 'response' => $response + ) + $extra_params + ); + + $answers = explode ("\n", $response [1]); + $recaptcha_response = new ReCaptchaResponse(); + + if (trim ($answers [0]) == 'true') { + $recaptcha_response->is_valid = true; + } + else { + $recaptcha_response->is_valid = false; + $recaptcha_response->error = $answers [1]; + } + return $recaptcha_response; + +} + +/** + * gets a URL where the user can sign up for reCAPTCHA. If your application + * has a configuration page where you enter a key, you should provide a link + * using this function. + * @param string $domain The domain where the page is hosted + * @param string $appname The name of your application + */ +function recaptcha_get_signup_url ($domain = null, $appname = null) { + return "https://www.google.com/recaptcha/admin/create?" . _recaptcha_qsencode (array ('domains' => $domain, 'app' => $appname)); +} + +function _recaptcha_aes_pad($val) { + $block_size = 16; + $numpad = $block_size - (strlen ($val) % $block_size); + return str_pad($val, strlen ($val) + $numpad, chr($numpad)); +} + +/* Mailhide related code */ + +function _recaptcha_aes_encrypt($val,$ky) { + if (! function_exists ("mcrypt_encrypt")) { + die ("To use reCAPTCHA Mailhide, you need to have the mcrypt php module installed."); + } + $mode=MCRYPT_MODE_CBC; + $enc=MCRYPT_RIJNDAEL_128; + $val=_recaptcha_aes_pad($val); + return mcrypt_encrypt($enc, $ky, $val, $mode, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); +} + + +function _recaptcha_mailhide_urlbase64 ($x) { + return strtr(base64_encode ($x), '+/', '-_'); +} + +/* gets the reCAPTCHA Mailhide url for a given email, public key and private key */ +function recaptcha_mailhide_url($pubkey, $privkey, $email) { + if ($pubkey == '' || $pubkey == null || $privkey == "" || $privkey == null) { + die ("To use reCAPTCHA Mailhide, you have to sign up for a public and private key, " . + "you can do so at http://www.google.com/recaptcha/mailhide/apikey"); + } + + + $ky = pack('H*', $privkey); + $cryptmail = _recaptcha_aes_encrypt ($email, $ky); + + return "http://www.google.com/recaptcha/mailhide/d?k=" . $pubkey . "&c=" . _recaptcha_mailhide_urlbase64 ($cryptmail); +} + +/** + * gets the parts of the email to expose to the user. + * eg, given johndoe@example,com return ["john", "example.com"]. + * the email is then displayed as john...@example.com + */ +function _recaptcha_mailhide_email_parts ($email) { + $arr = preg_split("/@/", $email ); + + if (strlen ($arr[0]) <= 4) { + $arr[0] = substr ($arr[0], 0, 1); + } else if (strlen ($arr[0]) <= 6) { + $arr[0] = substr ($arr[0], 0, 3); + } else { + $arr[0] = substr ($arr[0], 0, 4); + } + return $arr; +} + +/** + * Gets html to display an email address given a public an private key. + * to get a key, go to: + * + * http://www.google.com/recaptcha/mailhide/apikey + */ +function recaptcha_mailhide_html($pubkey, $privkey, $email) { + $emailparts = _recaptcha_mailhide_email_parts ($email); + $url = recaptcha_mailhide_url ($pubkey, $privkey, $email); + + return htmlentities($emailparts[0]) . "...@" . htmlentities ($emailparts [1]); + +} + + +?> diff --git a/lib/recaptchalib_noCaptcha.php b/lib/recaptchalib_noCaptcha.php index ed50830f1..07c67c77c 100644 --- a/lib/recaptchalib_noCaptcha.php +++ b/lib/recaptchalib_noCaptcha.php @@ -11,7 +11,7 @@ * @copyright Copyright (c) 2014, Google Inc. * @link http://www.google.com/recaptcha * - * Permission is hereby granted, free of charge, to any person obtaining a copy + * Permission is hereby granted, Free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell diff --git a/package-lock.json b/package-lock.json index 53d7bef29..9ff9cda6a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,9170 +1,8 @@ { "name": "wp-user-frontend", "version": "3.6.4", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "wp-user-frontend", - "version": "3.6.4", - "license": "GPL", - "dependencies": { - "cli": "^1.0.1" - }, - "devDependencies": { - "grunt": "^1.5.3", - "grunt-contrib-clean": "~1.0.0", - "grunt-contrib-compress": "~1.3.0", - "grunt-contrib-concat": "^1.0.1", - "grunt-contrib-copy": "~1.0.0", - "grunt-contrib-imagemin": "^1.0.1", - "grunt-contrib-jshint": "^1.1.0", - "grunt-contrib-less": "^1.4.0", - "grunt-contrib-uglify": "^2.0.0", - "grunt-contrib-watch": "^1.0.0", - "grunt-notify": "^0.4.5", - "grunt-phplint": "0.0.8", - "grunt-ssh": "^0.12.9", - "grunt-text-replace": "^0.4.0", - "grunt-wp-i18n": "^1.0.3", - "grunt-wp-readme-to-markdown": "^2.0.1", - "jshint-stylish": "^2.2.1" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dev": true, - "optional": true, - "dependencies": { - "ansi-wrap": "0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/argparse/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", - "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", - "dependencies": { - "exit": "0.1.2", - "glob": "^7.1.1" - }, - "engines": { - "node": ">=0.2.5" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "optional": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", - "dev": true - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/findup-sync": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", - "dev": true, - "dependencies": { - "glob": "~5.0.0" - }, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/findup-sync/node_modules/glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", - "dev": true, - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/getobject": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz", - "integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/gettext-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-3.1.1.tgz", - "integrity": "sha512-vNhWcqXEtZPs5Ft1ReA34g7ByWotpcOIeJvXVy2jF3/G2U9v6W0wG4Z4hXzcU8R//jArqkgHcVCGgGqa4vxVlQ==", - "dev": true, - "dependencies": { - "encoding": "^0.1.12", - "readable-stream": "^3.2.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/grunt": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.5.3.tgz", - "integrity": "sha512-mKwmo4X2d8/4c/BmcOETHek675uOqw0RuA/zy12jaspWqvTp4+ZeQF1W+OTpcbncnaBsfbQJ6l0l4j+Sn/GmaQ==", - "dev": true, - "dependencies": { - "dateformat": "~3.0.3", - "eventemitter2": "~0.4.13", - "exit": "~0.1.2", - "findup-sync": "~0.3.0", - "glob": "~7.1.6", - "grunt-cli": "~1.4.3", - "grunt-known-options": "~2.0.0", - "grunt-legacy-log": "~3.0.0", - "grunt-legacy-util": "~2.0.1", - "iconv-lite": "~0.4.13", - "js-yaml": "~3.14.0", - "minimatch": "~3.0.4", - "mkdirp": "~1.0.4", - "nopt": "~3.0.6", - "rimraf": "~3.0.2" - }, - "bin": { - "grunt": "bin/grunt" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/grunt-cli": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz", - "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==", - "dev": true, - "dependencies": { - "grunt-known-options": "~2.0.0", - "interpret": "~1.1.0", - "liftup": "~3.0.1", - "nopt": "~4.0.1", - "v8flags": "~3.2.0" - }, - "bin": { - "grunt": "bin/grunt" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/grunt-cli/node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dev": true, - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/grunt-contrib-clean": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.0.0.tgz", - "integrity": "sha1-ay7ZQRfix//jLuBFeMlv5GJam20=", - "dev": true, - "dependencies": { - "async": "^1.5.2", - "rimraf": "^2.5.1" - }, - "engines": { - "node": ">= 0.10.0" - }, - "peerDependencies": { - "grunt": ">= 0.4.5" - } - }, - "node_modules/grunt-contrib-clean/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "node_modules/grunt-contrib-clean/node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/grunt-contrib-clean/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/grunt-contrib-clean/node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/grunt-contrib-clean/node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/grunt-contrib-clean/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-clean/node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/grunt-contrib-clean/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/grunt-contrib-clean/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-clean/node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/grunt-contrib-clean/node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-clean/node_modules/rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "dependencies": { - "glob": "^7.0.5" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/grunt-contrib-clean/node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/grunt-contrib-compress": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.3.0.tgz", - "integrity": "sha1-XlwmogBJCCPH93KIr9LXNQ2Vxj0=", - "dev": true, - "dependencies": { - "archiver": "^1.0.0", - "chalk": "^1.1.1", - "lodash": "^4.7.0", - "pretty-bytes": "^3.0.1", - "stream-buffers": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/archiver": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz", - "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=", - "dev": true, - "dependencies": { - "archiver-utils": "^1.3.0", - "async": "^2.0.0", - "buffer-crc32": "^0.2.1", - "glob": "^7.0.0", - "lodash": "^4.8.0", - "readable-stream": "^2.0.0", - "tar-stream": "^1.5.0", - "walkdir": "^0.0.11", - "zip-stream": "^1.1.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/archiver-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", - "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "graceful-fs": "^4.1.0", - "lazystream": "^1.0.0", - "lodash": "^4.8.0", - "normalize-path": "^2.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "dev": true, - "dependencies": { - "lodash": "^4.14.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/grunt-contrib-compress/node_modules/bl": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", - "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - } - }, - "node_modules/grunt-contrib-compress/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/grunt-contrib-compress/node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-compress/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/compress-commons": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", - "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", - "dev": true, - "dependencies": { - "buffer-crc32": "^0.2.1", - "crc32-stream": "^2.0.0", - "normalize-path": "^2.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/grunt-contrib-compress/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/grunt-contrib-compress/node_modules/crc": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz", - "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=", - "dev": true - }, - "node_modules/grunt-contrib-compress/node_modules/crc32-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", - "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", - "dev": true, - "dependencies": { - "crc": "^3.4.4", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/grunt-contrib-compress/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-compress/node_modules/graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/grunt-contrib-compress/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/grunt-contrib-compress/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/grunt-contrib-compress/node_modules/lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/grunt-contrib-compress/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-compress/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/grunt-contrib-compress/node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/pretty-bytes": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", - "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "node_modules/grunt-contrib-compress/node_modules/readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/grunt-contrib-compress/node_modules/safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - }, - "node_modules/grunt-contrib-compress/node_modules/stream-buffers": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", - "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/tar-stream": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", - "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", - "dev": true, - "dependencies": { - "bl": "^1.0.0", - "end-of-stream": "^1.0.0", - "readable-stream": "^2.0.0", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/grunt-contrib-compress/node_modules/walkdir": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", - "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=", - "dev": true, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/grunt-contrib-compress/node_modules/xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/grunt-contrib-compress/node_modules/zip-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", - "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", - "dev": true, - "dependencies": { - "archiver-utils": "^1.3.0", - "compress-commons": "^1.2.0", - "lodash": "^4.8.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/grunt-contrib-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz", - "integrity": "sha1-YVCYYwhOhx1+ht5IwBUlntl3Rb0=", - "dev": true, - "dependencies": { - "chalk": "^1.0.0", - "source-map": "^0.5.3" - }, - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "grunt": ">=0.4.0" - } - }, - "node_modules/grunt-contrib-concat/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-concat/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-concat/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-concat/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-concat/node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-concat/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-concat/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-concat/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-copy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", - "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", - "dev": true, - "dependencies": { - "chalk": "^1.1.1", - "file-sync-cmp": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/file-sync-cmp": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", - "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=", - "dev": true - }, - "node_modules/grunt-contrib-copy/node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-imagemin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/grunt-contrib-imagemin/-/grunt-contrib-imagemin-1.0.1.tgz", - "integrity": "sha1-5Ho1YTN29MqpwfkERlA8rhyUTXk=", - "dev": true, - "dependencies": { - "async": "^1.5.2", - "chalk": "^1.0.0", - "gulp-rename": "^1.2.0", - "imagemin": "^4.0.0", - "pretty-bytes": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/archive-type": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz", - "integrity": "sha1-nNnABpV+vpX62tW9YJiUKoE3N/Y=", - "dev": true, - "optional": true, - "dependencies": { - "file-type": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "optional": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "dependencies": { - "arr-flatten": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/async-each-series": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-1.1.0.tgz", - "integrity": "sha1-9C/YFV048hpbjqB8KOBj7RcAsTg=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/bin-build": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz", - "integrity": "sha1-EfjdYfcP/Por3KpbRvXo/t1CIcw=", - "dev": true, - "optional": true, - "dependencies": { - "archive-type": "^3.0.1", - "decompress": "^3.0.0", - "download": "^4.1.2", - "exec-series": "^1.0.0", - "rimraf": "^2.2.6", - "tempfile": "^1.0.0", - "url-regex": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/bin-check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-2.0.0.tgz", - "integrity": "sha1-hvjm9CU4k99g3DFpV/WvAqywWTA=", - "dev": true, - "optional": true, - "dependencies": { - "executable": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/bin-version": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-1.0.4.tgz", - "integrity": "sha1-nrSY7m/Xb3q5p8FgQ2+JV5Q1144=", - "dev": true, - "optional": true, - "dependencies": { - "find-versions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/bin-version-check": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-2.1.0.tgz", - "integrity": "sha1-5OXfKQuQaffRETJAMe/BP90RpbA=", - "dev": true, - "optional": true, - "dependencies": { - "bin-version": "^1.0.0", - "minimist": "^1.1.0", - "semver": "^4.0.3", - "semver-truncate": "^1.0.0" - }, - "bin": { - "bin-version-check": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/bin-version-check/node_modules/semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", - "dev": true, - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/bin-wrapper": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz", - "integrity": "sha1-Z9MwYmLksaXy+I7iNGT2plVneus=", - "dev": true, - "optional": true, - "dependencies": { - "bin-check": "^2.0.0", - "bin-version-check": "^2.1.0", - "download": "^4.0.0", - "each-async": "^1.1.1", - "lazy-req": "^1.0.0", - "os-filter-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/bl": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", - "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", - "dev": true, - "optional": true, - "dependencies": { - "readable-stream": "^2.0.5" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "dependencies": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/buffer-to-vinyl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz", - "integrity": "sha1-APFfruOreh3aLN5tkSG//dB7ImI=", - "dev": true, - "dependencies": { - "file-type": "^3.1.0", - "readable-stream": "^2.0.2", - "uuid": "^2.0.1", - "vinyl": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "optional": true, - "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/capture-stack-trace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/caw": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz", - "integrity": "sha1-/7Im/n78VHKI3GLuPpcHPCEtEDQ=", - "dev": true, - "optional": true, - "dependencies": { - "get-proxy": "^1.0.1", - "is-obj": "^1.0.0", - "object-assign": "^3.0.0", - "tunnel-agent": "^0.4.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/caw/node_modules/object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/clap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", - "dev": true, - "optional": true, - "dependencies": { - "chalk": "^1.1.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/clone": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", - "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/co": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz", - "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/coa": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", - "dev": true, - "optional": true, - "dependencies": { - "q": "^1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/commander": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", - "dev": true, - "optional": true, - "dependencies": { - "graceful-readlink": ">= 1.0.0" - }, - "engines": { - "node": ">= 0.6.x" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/console-stream": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz", - "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "dev": true, - "optional": true, - "dependencies": { - "capture-stack-trace": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/csso": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.0.0.tgz", - "integrity": "sha1-F4tDpEYhIhwndWCG9THgL0KQDug=", - "dev": true, - "optional": true, - "dependencies": { - "clap": "^1.0.9", - "source-map": "^0.5.3" - }, - "bin": { - "csso": "bin/csso" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "optional": true, - "dependencies": { - "array-find-index": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/decompress": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz", - "integrity": "sha1-rx3VDQbjv8QyRh033hGzjA2ZG+0=", - "dev": true, - "optional": true, - "dependencies": { - "buffer-to-vinyl": "^1.0.0", - "concat-stream": "^1.4.6", - "decompress-tar": "^3.0.0", - "decompress-tarbz2": "^3.0.0", - "decompress-targz": "^3.0.0", - "decompress-unzip": "^3.0.0", - "stream-combiner2": "^1.1.1", - "vinyl-assign": "^1.0.1", - "vinyl-fs": "^2.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/decompress-tar": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz", - "integrity": "sha1-IXx4n5uURQ76rcXF5TeXj8MzxGY=", - "dev": true, - "optional": true, - "dependencies": { - "is-tar": "^1.0.0", - "object-assign": "^2.0.0", - "strip-dirs": "^1.0.0", - "tar-stream": "^1.1.1", - "through2": "^0.6.1", - "vinyl": "^0.4.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/decompress-tar/node_modules/clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/decompress-tar/node_modules/vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true, - "optional": true, - "dependencies": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" - }, - "engines": { - "node": ">= 0.9" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/decompress-tarbz2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz", - "integrity": "sha1-iyOTVoE1X58YnYclag+L3ZbZZm0=", - "dev": true, - "optional": true, - "dependencies": { - "is-bzip2": "^1.0.0", - "object-assign": "^2.0.0", - "seek-bzip": "^1.0.3", - "strip-dirs": "^1.0.0", - "tar-stream": "^1.1.1", - "through2": "^0.6.1", - "vinyl": "^0.4.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/decompress-tarbz2/node_modules/clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/decompress-tarbz2/node_modules/vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true, - "optional": true, - "dependencies": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" - }, - "engines": { - "node": ">= 0.9" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/decompress-targz": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-3.1.0.tgz", - "integrity": "sha1-ssE9+YFmJomRtxXWRH9kLpaW9aA=", - "dev": true, - "optional": true, - "dependencies": { - "is-gzip": "^1.0.0", - "object-assign": "^2.0.0", - "strip-dirs": "^1.0.0", - "tar-stream": "^1.1.1", - "through2": "^0.6.1", - "vinyl": "^0.4.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/decompress-targz/node_modules/clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/decompress-targz/node_modules/vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true, - "optional": true, - "dependencies": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" - }, - "engines": { - "node": ">= 0.9" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/decompress-unzip": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-3.4.0.tgz", - "integrity": "sha1-YUdbQVIGa74/7hL51inRX+ZHjus=", - "dev": true, - "optional": true, - "dependencies": { - "is-zip": "^1.0.0", - "read-all-stream": "^3.0.0", - "stat-mode": "^0.2.0", - "strip-dirs": "^1.0.0", - "through2": "^2.0.0", - "vinyl": "^1.0.0", - "yauzl": "^2.2.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/decompress-unzip/node_modules/through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "optional": true, - "dependencies": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", - "dev": true, - "optional": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.12.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/download": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/download/-/download-4.4.3.tgz", - "integrity": "sha1-qlX9rTktldS2jowr4D4MKqIbqaw=", - "dev": true, - "optional": true, - "dependencies": { - "caw": "^1.0.1", - "concat-stream": "^1.4.7", - "each-async": "^1.0.0", - "filenamify": "^1.0.1", - "got": "^5.0.0", - "gulp-decompress": "^1.2.0", - "gulp-rename": "^1.2.0", - "is-url": "^1.2.0", - "object-assign": "^4.0.1", - "read-all-stream": "^3.0.0", - "readable-stream": "^2.0.2", - "stream-combiner2": "^1.1.1", - "vinyl": "^1.0.0", - "vinyl-fs": "^2.2.0", - "ware": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/download/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/duplexify": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz", - "integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/each-async": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz", - "integrity": "sha1-3uUim98KtrogEqOV4bhpq/iBNHM=", - "dev": true, - "optional": true, - "dependencies": { - "onetime": "^1.0.0", - "set-immediate-shim": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true, - "optional": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true, - "optional": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/exec-buffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-2.0.1.tgz", - "integrity": "sha1-ACijG+CxRgth0HX5avRYO54zXqA=", - "dev": true, - "optional": true, - "dependencies": { - "rimraf": "^2.2.6", - "tempfile": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/exec-series": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/exec-series/-/exec-series-1.0.3.tgz", - "integrity": "sha1-bSV6m+rEgqhyx3g7yGFYOfx3FDo=", - "dev": true, - "optional": true, - "dependencies": { - "async-each-series": "^1.1.0", - "object-assign": "^4.1.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/exec-series/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/executable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/executable/-/executable-1.1.0.tgz", - "integrity": "sha1-h3mA6REvM5EGbaNyZd562ENKtNk=", - "dev": true, - "optional": true, - "dependencies": { - "meow": "^3.1.0" - }, - "bin": { - "executable": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "dependencies": { - "is-posix-bracket": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "dependencies": { - "fill-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/extglob/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/fancy-log": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", - "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", - "dev": true, - "optional": true, - "dependencies": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "time-stamp": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", - "dev": true, - "optional": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/figures/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/filename-reserved-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", - "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/filenamify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", - "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", - "dev": true, - "optional": true, - "dependencies": { - "filename-reserved-regex": "^1.0.0", - "strip-outer": "^1.0.0", - "trim-repeated": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "dev": true, - "dependencies": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^1.1.3", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "optional": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/find-versions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-1.2.1.tgz", - "integrity": "sha1-y96fEuOFdaCvG+G5osXV/Y8Ya2I=", - "dev": true, - "optional": true, - "dependencies": { - "array-uniq": "^1.0.0", - "get-stdin": "^4.0.1", - "meow": "^3.5.0", - "semver-regex": "^1.0.0" - }, - "bin": { - "find-versions": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/first-chunk-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/get-proxy": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz", - "integrity": "sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus=", - "dev": true, - "optional": true, - "dependencies": { - "rc": "^1.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/gifsicle": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/gifsicle/-/gifsicle-3.0.4.tgz", - "integrity": "sha1-9Fy17RAWW2ZdySng6TKLbIId+js=", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "bin-build": "^2.0.0", - "bin-wrapper": "^3.0.0", - "logalot": "^2.0.0" - }, - "bin": { - "gifsicle": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "dependencies": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/glob-base/node_modules/glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "dependencies": { - "is-glob": "^2.0.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/glob-base/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/glob-base/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/glob-stream": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz", - "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=", - "dev": true, - "dependencies": { - "extend": "^3.0.0", - "glob": "^5.0.3", - "glob-parent": "^3.0.0", - "micromatch": "^2.3.7", - "ordered-read-streams": "^0.3.0", - "through2": "^0.6.0", - "to-absolute-glob": "^0.1.1", - "unique-stream": "^2.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/glogg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", - "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", - "dev": true, - "optional": true, - "dependencies": { - "sparkles": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/got": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz", - "integrity": "sha1-X4FjWmHkplifGAVp6k44FoClHzU=", - "dev": true, - "optional": true, - "dependencies": { - "create-error-class": "^3.0.1", - "duplexer2": "^0.1.4", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "node-status-codes": "^1.0.0", - "object-assign": "^4.0.1", - "parse-json": "^2.1.0", - "pinkie-promise": "^2.0.0", - "read-all-stream": "^3.0.0", - "readable-stream": "^2.0.5", - "timed-out": "^3.0.0", - "unzip-response": "^1.0.2", - "url-parse-lax": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0 <7" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/got/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/gulp-decompress": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz", - "integrity": "sha1-jutlpeAV+O2FMsr+KEVJYGJvDcc=", - "dev": true, - "optional": true, - "dependencies": { - "archive-type": "^3.0.0", - "decompress": "^3.0.0", - "gulp-util": "^3.0.1", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/gulp-rename": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz", - "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=", - "dev": true, - "engines": { - "node": ">=0.10.0", - "npm": ">=1.2.10" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/gulp-sourcemaps": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz", - "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=", - "dev": true, - "dependencies": { - "convert-source-map": "^1.1.1", - "graceful-fs": "^4.1.2", - "strip-bom": "^2.0.0", - "through2": "^2.0.0", - "vinyl": "^1.0.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/gulp-sourcemaps/node_modules/through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "dependencies": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", - "deprecated": "gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5", - "dev": true, - "optional": true, - "dependencies": { - "array-differ": "^1.0.0", - "array-uniq": "^1.0.2", - "beeper": "^1.0.0", - "chalk": "^1.0.0", - "dateformat": "^2.0.0", - "fancy-log": "^1.1.0", - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "lodash._reescape": "^3.0.0", - "lodash._reevaluate": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.template": "^3.0.0", - "minimist": "^1.1.0", - "multipipe": "^0.1.2", - "object-assign": "^3.0.0", - "replace-ext": "0.0.1", - "through2": "^2.0.0", - "vinyl": "^0.5.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/gulp-util/node_modules/object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/gulp-util/node_modules/through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "optional": true, - "dependencies": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/gulp-util/node_modules/vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", - "dev": true, - "optional": true, - "dependencies": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - }, - "engines": { - "node": ">= 0.9" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "optional": true, - "dependencies": { - "glogg": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "dev": true, - "optional": true, - "dependencies": { - "sparkles": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/imagemin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-4.0.0.tgz", - "integrity": "sha1-6Q5/CTaDZZXxj6Ff6Qb0+iWeqEc=", - "dev": true, - "dependencies": { - "buffer-to-vinyl": "^1.0.0", - "concat-stream": "^1.4.6", - "optional": "^0.1.0", - "readable-stream": "^2.0.0", - "stream-combiner2": "^1.1.1", - "vinyl-fs": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">=2.1.5" - }, - "optionalDependencies": { - "imagemin-gifsicle": "^4.0.0", - "imagemin-jpegtran": "^4.0.0", - "imagemin-optipng": "^4.0.0", - "imagemin-svgo": "^4.0.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/imagemin-gifsicle": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-4.2.0.tgz", - "integrity": "sha1-D++butNHbmt2iFc2zFsLh6CHV8o=", - "dev": true, - "optional": true, - "dependencies": { - "gifsicle": "^3.0.0", - "is-gif": "^1.0.0", - "through2": "^0.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/imagemin-jpegtran": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-4.3.2.tgz", - "integrity": "sha1-G8bR4r0T/bZNJFUm1jWn5d/rEvw=", - "dev": true, - "optional": true, - "dependencies": { - "is-jpg": "^1.0.0", - "jpegtran-bin": "^3.0.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/imagemin-jpegtran/node_modules/through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "optional": true, - "dependencies": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/imagemin-optipng": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-4.3.0.tgz", - "integrity": "sha1-dgRmOrLuMVczJ0cm/Rw3TStErbY=", - "dev": true, - "optional": true, - "dependencies": { - "exec-buffer": "^2.0.0", - "is-png": "^1.0.0", - "optipng-bin": "^3.0.0", - "through2": "^0.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/imagemin-svgo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-4.2.1.tgz", - "integrity": "sha1-VPB9xW9HJgRi32phxUvvtEtXvlU=", - "dev": true, - "optional": true, - "dependencies": { - "is-svg": "^1.0.0", - "svgo": "^0.6.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/imagemin-svgo/node_modules/through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "optional": true, - "dependencies": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "optional": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/ip-regex": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz", - "integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-absolute": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz", - "integrity": "sha1-hHSREZ/MtftDYhfMc39/qtUPYD8=", - "dev": true, - "optional": true, - "dependencies": { - "is-relative": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "optional": true, - "dependencies": { - "builtin-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-bzip2": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz", - "integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "dependencies": { - "is-primitive": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-gif": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-gif/-/is-gif-1.0.0.tgz", - "integrity": "sha1-ptKumIkwB7/6l6HYwB1jIFgyCX4=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-gzip": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", - "integrity": "sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-jpg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-1.0.0.tgz", - "integrity": "sha1-KVnBfnNDDbOCZNp1uQ3VTy2G2hw=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-natural-number": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz", - "integrity": "sha1-fUxXKDd+84bD4ZSpkRv1fG3DNec=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-png": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz", - "integrity": "sha1-1XSxK/J1wDUEVVcLDltXqwYgd84=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-relative": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz", - "integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-svg": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-1.1.1.tgz", - "integrity": "sha1-rA76r7ZTrFhHNwix+HNjbKEQ4xs=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-tar": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-tar/-/is-tar-1.0.0.tgz", - "integrity": "sha1-L2suF5LB9bs2UZrKqdZcDSb+hT0=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-url": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", - "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-valid-glob": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz", - "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/is-zip": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz", - "integrity": "sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/jpegtran-bin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-3.2.0.tgz", - "integrity": "sha1-9g7PSumZwL2tLp+83ytvCYHnops=", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "bin-build": "^2.0.0", - "bin-wrapper": "^3.0.0", - "logalot": "^2.0.0" - }, - "bin": { - "jpegtran": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/js-yaml": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", - "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", - "dev": true, - "optional": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^2.6.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "dependencies": { - "jsonify": "~0.0.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/lazy-req": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz", - "integrity": "sha1-va6+rTD42CQDnODOFJ1Nqge6H6w=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "dev": true, - "optional": true, - "dependencies": { - "lodash._root": "^3.0.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "optional": true, - "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true, - "optional": true, - "dependencies": { - "lodash._basecopy": "^3.0.0", - "lodash._basetostring": "^3.0.0", - "lodash._basevalues": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0", - "lodash.keys": "^3.0.0", - "lodash.restparam": "^3.0.0", - "lodash.templatesettings": "^3.0.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "dev": true, - "optional": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/logalot": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", - "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=", - "dev": true, - "optional": true, - "dependencies": { - "figures": "^1.3.5", - "squeak": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "optional": true, - "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/lpad-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz", - "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=", - "dev": true, - "optional": true, - "dependencies": { - "get-stdin": "^4.0.1", - "indent-string": "^2.1.0", - "longest": "^1.0.0", - "meow": "^3.3.0" - }, - "bin": { - "lpad-align": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "optional": true, - "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/meow/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "dependencies": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/micromatch/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/micromatch/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true, - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/mkdirp/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", - "dev": true, - "optional": true, - "dependencies": { - "duplexer2": "0.0.2" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/multipipe/node_modules/duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "dev": true, - "optional": true, - "dependencies": { - "readable-stream": "~1.1.9" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/multipipe/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/multipipe/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/multipipe/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/node-status-codes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz", - "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "optional": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/object-assign": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", - "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "dependencies": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/optional": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz", - "integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw==", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/optipng-bin": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-3.1.4.tgz", - "integrity": "sha1-ldNPLEiHBPb9cGBr/qDGWfHZXYQ=", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "bin-build": "^2.0.0", - "bin-wrapper": "^3.0.0", - "logalot": "^2.0.0" - }, - "bin": { - "optipng": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/ordered-read-streams": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz", - "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=", - "dev": true, - "dependencies": { - "is-stream": "^1.0.1", - "readable-stream": "^2.0.1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/os-filter-obj": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-1.0.3.tgz", - "integrity": "sha1-WRUzDZDs7VV9LZOKMcbdIU2cY60=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "dependencies": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/parse-glob/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/parse-glob/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "optional": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "optional": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "optional": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/pretty-bytes": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", - "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/randomatic/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/randomatic/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/randomatic/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/rc": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.5.tgz", - "integrity": "sha1-J1zWh/bjs2zHVrqibf7oCnkDAf0=", - "dev": true, - "optional": true, - "dependencies": { - "deep-extend": "~0.4.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/read-all-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", - "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=", - "dev": true, - "optional": true, - "dependencies": { - "pinkie-promise": "^2.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "optional": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "optional": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "optional": true, - "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "dependencies": { - "is-equal-shallow": "^0.1.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "optional": true, - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "optional": true, - "dependencies": { - "glob": "^7.0.5" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/rimraf/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "optional": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/seek-bzip": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", - "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", - "dev": true, - "optional": true, - "dependencies": { - "commander": "~2.8.1" - }, - "bin": { - "seek-bunzip": "bin/seek-bunzip", - "seek-table": "bin/seek-bzip-table" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true, - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/semver-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz", - "integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/semver-truncate": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", - "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=", - "dev": true, - "optional": true, - "dependencies": { - "semver": "^5.3.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/sparkles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", - "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/spdx-correct": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-2.0.4.tgz", - "integrity": "sha512-c+4gPpt9YDhz7cHlz5UrsHzxxRi4ksclxnEEKsuGT9JdwSC+ZNmsGbYRzzgxyZaBYpcWnlu+4lPcdLKx4DOCmA==", - "dev": true, - "optional": true, - "dependencies": { - "spdx-expression-parse": "^2.0.1", - "spdx-license-ids": "^2.0.1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/spdx-correct/node_modules/spdx-expression-parse": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-2.0.2.tgz", - "integrity": "sha512-oFxOkWCfFS0ltNp0H66gXlU4NF6bxg7RkoTYR0413t+yTY9zyj+AIWsjtN8dcVp6703ijDYBWBIARlJ7DkyP9Q==", - "dev": true, - "optional": true, - "dependencies": { - "spdx-exceptions": "^2.0.0", - "spdx-license-ids": "^2.0.1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "optional": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/spdx-expression-parse/node_modules/spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/spdx-license-ids": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-2.0.1.tgz", - "integrity": "sha1-AgF7zDU07k/+9tWNIOfT6aHDyOw=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/squeak": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", - "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=", - "dev": true, - "optional": true, - "dependencies": { - "chalk": "^1.0.0", - "console-stream": "^0.1.1", - "lpad-align": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/stat-mode": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", - "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "dev": true, - "dependencies": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/strip-bom-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz", - "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=", - "dev": true, - "dependencies": { - "first-chunk-stream": "^1.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/strip-dirs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz", - "integrity": "sha1-lgu9EoeETzl1pFWKoQOoJV4kVqA=", - "dev": true, - "optional": true, - "dependencies": { - "chalk": "^1.0.0", - "get-stdin": "^4.0.1", - "is-absolute": "^0.1.5", - "is-natural-number": "^2.0.0", - "minimist": "^1.1.0", - "sum-up": "^1.0.1" - }, - "bin": { - "strip-dirs": "cli.js" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "optional": true, - "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/strip-outer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.0.tgz", - "integrity": "sha1-qsC6YNLpDF1PJ1/Yhp/ZotMQ/7g=", - "dev": true, - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/sum-up": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz", - "integrity": "sha1-HGYfZnBX9jvLeHWqFDi8FiUlFW4=", - "dev": true, - "optional": true, - "dependencies": { - "chalk": "^1.0.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/svgo": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.6.6.tgz", - "integrity": "sha1-s0CIkDbyD5tEdUMHfQ9Vc+0ETAg=", - "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", - "dev": true, - "optional": true, - "dependencies": { - "coa": "~1.0.1", - "colors": "~1.1.2", - "csso": "~2.0.0", - "js-yaml": "~3.6.0", - "mkdirp": "~0.5.1", - "sax": "~1.2.1", - "whet.extend": "~0.9.9" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/tar-stream": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", - "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", - "dev": true, - "optional": true, - "dependencies": { - "bl": "^1.0.0", - "end-of-stream": "^1.0.0", - "readable-stream": "^2.0.0", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/tempfile": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", - "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=", - "dev": true, - "optional": true, - "dependencies": { - "os-tmpdir": "^1.0.0", - "uuid": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "dependencies": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/through2-filter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", - "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", - "dev": true, - "dependencies": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/through2-filter/node_modules/through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "dependencies": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/through2/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/through2/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/through2/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/timed-out": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz", - "integrity": "sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/to-absolute-glob": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz", - "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", - "dev": true, - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/unique-stream": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", - "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", - "dev": true, - "dependencies": { - "json-stable-stringify": "^1.0.0", - "through2-filter": "^2.0.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/unzip-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", - "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "optional": true, - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/url-regex": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz", - "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=", - "dev": true, - "optional": true, - "dependencies": { - "ip-regex": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/uuid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/vali-date": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", - "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/validate-npm-package-license": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.2.tgz", - "integrity": "sha512-8zlGw3EZDpC7iUDKy4yHCSqFwkBTeAK4h1QqDC3ST6rT7dzvu2ZuclExZN7zuXNEhQ3+2UBQgdca5eNNL06sBg==", - "dev": true, - "optional": true, - "dependencies": { - "spdx-correct": "^2.0.4", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "dev": true, - "dependencies": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - }, - "engines": { - "node": ">= 0.9" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/vinyl-assign": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/vinyl-assign/-/vinyl-assign-1.2.1.tgz", - "integrity": "sha1-TRmIkbVRWRHXcajNnFSApGoHSkU=", - "dev": true, - "optional": true, - "dependencies": { - "object-assign": "^4.0.1", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/vinyl-assign/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/vinyl-fs": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz", - "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=", - "dev": true, - "dependencies": { - "duplexify": "^3.2.0", - "glob-stream": "^5.3.2", - "graceful-fs": "^4.0.0", - "gulp-sourcemaps": "1.6.0", - "is-valid-glob": "^0.3.0", - "lazystream": "^1.0.0", - "lodash.isequal": "^4.0.0", - "merge-stream": "^1.0.0", - "mkdirp": "^0.5.0", - "object-assign": "^4.0.0", - "readable-stream": "^2.0.4", - "strip-bom": "^2.0.0", - "strip-bom-stream": "^1.0.0", - "through2": "^2.0.0", - "through2-filter": "^2.0.0", - "vali-date": "^1.0.0", - "vinyl": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/vinyl-fs/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/vinyl-fs/node_modules/through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "dependencies": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/ware": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz", - "integrity": "sha1-0bFPOdLiy0q4xAmPdW/ksWTkc9Q=", - "dev": true, - "optional": true, - "dependencies": { - "wrap-fn": "^0.1.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/whet.extend": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/wrap-fn": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz", - "integrity": "sha1-8htuQQFv9KfjFyDbxjoJAWvfmEU=", - "dev": true, - "optional": true, - "dependencies": { - "co": "3.1.0" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/grunt-contrib-imagemin/node_modules/xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/grunt-contrib-imagemin/node_modules/yauzl": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz", - "integrity": "sha1-qBmB6nCleUYTOIPwKcWCGok1mn8=", - "dev": true, - "optional": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.0.1" - } - }, - "node_modules/grunt-contrib-jshint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz", - "integrity": "sha1-Np2QmyWTxA6L55lAshNAhQx5Oaw=", - "dev": true, - "dependencies": { - "chalk": "^1.1.1", - "hooker": "^0.2.3", - "jshint": "~2.9.4" - }, - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "grunt": ">=0.4.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/grunt-contrib-jshint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", - "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", - "dev": true, - "dependencies": { - "exit": "0.1.2", - "glob": "^7.1.1" - }, - "engines": { - "node": ">=0.2.5" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/grunt-contrib-jshint/node_modules/console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "dependencies": { - "date-now": "^0.1.4" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/grunt-contrib-jshint/node_modules/date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "node_modules/grunt-contrib-jshint/node_modules/dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "dev": true, - "dependencies": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/dom-serializer/node_modules/domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", - "dev": true - }, - "node_modules/grunt-contrib-jshint/node_modules/dom-serializer/node_modules/entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", - "dev": true - }, - "node_modules/grunt-contrib-jshint/node_modules/domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", - "deprecated": "update to domelementtype@1.3.1", - "dev": true - }, - "node_modules/grunt-contrib-jshint/node_modules/domhandler": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", - "dev": true, - "dependencies": { - "domelementtype": "1" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/entities": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", - "dev": true - }, - "node_modules/grunt-contrib-jshint/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/grunt-contrib-jshint/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/hooker": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", - "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/htmlparser2": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", - "dev": true, - "dependencies": { - "domelementtype": "1", - "domhandler": "2.3", - "domutils": "1.5", - "entities": "1.0", - "readable-stream": "1.1" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/grunt-contrib-jshint/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/grunt-contrib-jshint/node_modules/jshint": { - "version": "2.9.5", - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", - "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", - "dev": true, - "dependencies": { - "cli": "~1.0.0", - "console-browserify": "1.1.x", - "exit": "0.1.x", - "htmlparser2": "3.8.x", - "lodash": "3.7.x", - "minimatch": "~3.0.2", - "shelljs": "0.3.x", - "strip-json-comments": "1.0.x" - }, - "bin": { - "jshint": "bin/jshint" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/lodash": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", - "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=", - "dev": true - }, - "node_modules/grunt-contrib-jshint/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/shelljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", - "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", - "dev": true, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "node_modules/grunt-contrib-jshint/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/strip-json-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", - "dev": true, - "bin": { - "strip-json-comments": "cli.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/grunt-contrib-less": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-1.4.1.tgz", - "integrity": "sha1-O73sC3XRLOqlXWKUNiXAsIYc328=", - "dev": true, - "dependencies": { - "async": "^2.0.0", - "chalk": "^1.0.0", - "less": "~2.7.1", - "lodash": "^4.8.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "optional": true, - "dependencies": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - }, - "node_modules/grunt-contrib-less/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/grunt-contrib-less/node_modules/async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "dev": true, - "dependencies": { - "lodash": "^4.14.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-less/node_modules/aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "dev": true, - "optional": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/grunt-contrib-less/node_modules/boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", - "dev": true, - "optional": true, - "dependencies": { - "hoek": "2.x.x" - }, - "engines": { - "node": ">=0.10.40" - } - }, - "node_modules/grunt-contrib-less/node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "optional": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, - "optional": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/grunt-contrib-less/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", - "dev": true, - "optional": true, - "dependencies": { - "boom": "2.x.x" - }, - "engines": { - "node": ">=0.10.40" - } - }, - "node_modules/grunt-contrib-less/node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/grunt-contrib-less/node_modules/dashdash/node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/grunt-contrib-less/node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, - "optional": true, - "dependencies": { - "jsbn": "~0.1.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "optional": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/grunt-contrib-less/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-less/node_modules/form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "optional": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/grunt-contrib-less/node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/getpass/node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/grunt-contrib-less/node_modules/graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/grunt-contrib-less/node_modules/har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "deprecated": "this library is no longer supported", - "dev": true, - "optional": true, - "dependencies": { - "ajv": "^4.9.1", - "har-schema": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/grunt-contrib-less/node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "deprecated": "This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", - "dev": true, - "optional": true, - "dependencies": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - }, - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/grunt-contrib-less/node_modules/hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.40" - } - }, - "node_modules/grunt-contrib-less/node_modules/http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/grunt-contrib-less/node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "optional": true, - "dependencies": { - "jsonify": "~0.0.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-less/node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "optional": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/jsprim/node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/grunt-contrib-less/node_modules/less": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz", - "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", - "dev": true, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=0.12" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "mime": "^1.2.11", - "mkdirp": "^0.5.0", - "promise": "^7.1.1", - "request": "2.81.0", - "source-map": "^0.5.3" - } - }, - "node_modules/grunt-contrib-less/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "optional": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/grunt-contrib-less/node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/grunt-contrib-less/node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "dev": true, - "optional": true, - "dependencies": { - "mime-db": "~1.33.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/grunt-contrib-less/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true, - "optional": true, - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/grunt-contrib-less/node_modules/oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-less/node_modules/performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, - "optional": true, - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/grunt-contrib-less/node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/grunt-contrib-less/node_modules/request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "optional": true, - "dependencies": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/grunt-contrib-less/node_modules/sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "deprecated": "This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", - "dev": true, - "optional": true, - "dependencies": { - "hoek": "2.x.x" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", - "dev": true, - "optional": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "dashdash": "^1.12.0", - "getpass": "^0.1.1" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - }, - "optionalDependencies": { - "bcrypt-pbkdf": "^1.0.0", - "ecc-jsbn": "~0.1.1", - "jsbn": "~0.1.0", - "tweetnacl": "~0.14.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/sshpk/node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/grunt-contrib-less/node_modules/stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, - "optional": true, - "dependencies": { - "punycode": "^1.4.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/grunt-contrib-less/node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "optional": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-less/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-less/node_modules/uuid": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "optional": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/grunt-contrib-less/node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "optional": true, - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/grunt-contrib-less/node_modules/verror/node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/grunt-contrib-uglify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-2.3.0.tgz", - "integrity": "sha1-s9AmDr3WzvoS/y+Onh4ln33kIW8=", - "dev": true, - "dependencies": { - "chalk": "^1.0.0", - "maxmin": "^1.1.0", - "object.assign": "^4.0.4", - "uglify-js": "~2.8.21", - "uri-path": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", - "dev": true, - "dependencies": { - "pako": "~0.2.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "dependencies": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "dependencies": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "dependencies": { - "array-find-index": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", - "dev": true, - "dependencies": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/gzip-size": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz", - "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=", - "dev": true, - "dependencies": { - "browserify-zlib": "^0.1.4", - "concat-stream": "^1.4.1" - }, - "bin": { - "gzip-size": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "dependencies": { - "builtin-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/maxmin": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz", - "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=", - "dev": true, - "dependencies": { - "chalk": "^1.0.0", - "figures": "^1.0.1", - "gzip-size": "^1.0.0", - "pretty-bytes": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/pretty-bytes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", - "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", - "dev": true, - "dependencies": { - "get-stdin": "^4.0.1", - "meow": "^3.1.0" - }, - "bin": { - "pretty-bytes": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "dependencies": { - "align-text": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/spdx-correct": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-2.0.4.tgz", - "integrity": "sha512-c+4gPpt9YDhz7cHlz5UrsHzxxRi4ksclxnEEKsuGT9JdwSC+ZNmsGbYRzzgxyZaBYpcWnlu+4lPcdLKx4DOCmA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^2.0.1", - "spdx-license-ids": "^2.0.1" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/spdx-correct/node_modules/spdx-expression-parse": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-2.0.2.tgz", - "integrity": "sha512-oFxOkWCfFS0ltNp0H66gXlU4NF6bxg7RkoTYR0413t+yTY9zyj+AIWsjtN8dcVp6703ijDYBWBIARlJ7DkyP9Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.0.0", - "spdx-license-ids": "^2.0.1" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/spdx-expression-parse/node_modules/spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/spdx-license-ids": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-2.0.1.tgz", - "integrity": "sha1-AgF7zDU07k/+9tWNIOfT6aHDyOw=", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "dependencies": { - "source-map": "~0.5.1", - "yargs": "~3.10.0" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - }, - "optionalDependencies": { - "uglify-to-browserify": "~1.0.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "node_modules/grunt-contrib-uglify/node_modules/uri-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", - "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/grunt-contrib-uglify/node_modules/validate-npm-package-license": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.2.tgz", - "integrity": "sha512-8zlGw3EZDpC7iUDKy4yHCSqFwkBTeAK4h1QqDC3ST6rT7dzvu2ZuclExZN7zuXNEhQ3+2UBQgdca5eNNL06sBg==", - "dev": true, - "dependencies": { - "spdx-correct": "^2.0.4", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "dependencies": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - }, - "node_modules/grunt-contrib-uglify/node_modules/yargs/node_modules/camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-watch": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz", - "integrity": "sha1-hKGnodar0m7VaEE0lscxM+mQAY8=", - "dev": true, - "dependencies": { - "async": "^1.5.0", - "gaze": "^1.0.0", - "lodash": "^3.10.1", - "tiny-lr": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-watch/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "node_modules/grunt-contrib-watch/node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/grunt-contrib-watch/node_modules/body-parser": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", - "integrity": "sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk=", - "dev": true, - "dependencies": { - "bytes": "2.2.0", - "content-type": "~1.0.1", - "debug": "~2.2.0", - "depd": "~1.1.0", - "http-errors": "~1.3.1", - "iconv-lite": "0.4.13", - "on-finished": "~2.3.0", - "qs": "5.2.0", - "raw-body": "~2.1.5", - "type-is": "~1.6.10" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/grunt-contrib-watch/node_modules/body-parser/node_modules/qs": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz", - "integrity": "sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4=", - "dev": true, - "engines": ">=0.10.40" - }, - "node_modules/grunt-contrib-watch/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/grunt-contrib-watch/node_modules/bytes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz", - "integrity": "sha1-/TVGSkA/b5EXwt42Cez/nK4ABYg=", - "dev": true - }, - "node_modules/grunt-contrib-watch/node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/grunt-contrib-watch/node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/grunt-contrib-watch/node_modules/debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "dependencies": { - "ms": "0.7.1" - } - }, - "node_modules/grunt-contrib-watch/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/grunt-contrib-watch/node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/grunt-contrib-watch/node_modules/faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/grunt-contrib-watch/node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/grunt-contrib-watch/node_modules/gaze": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", - "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", - "dev": true, - "dependencies": { - "globule": "^1.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/grunt-contrib-watch/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-watch/node_modules/globule": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", - "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", - "dev": true, - "dependencies": { - "glob": "~7.1.1", - "lodash": "~4.17.4", - "minimatch": "~3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/grunt-contrib-watch/node_modules/globule/node_modules/lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", - "dev": true - }, - "node_modules/grunt-contrib-watch/node_modules/http-errors": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", - "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", - "dev": true, - "dependencies": { - "inherits": "~2.0.1", - "statuses": "1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/grunt-contrib-watch/node_modules/iconv-lite": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", - "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-watch/node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/grunt-contrib-watch/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/grunt-contrib-watch/node_modules/livereload-js": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.3.0.tgz", - "integrity": "sha512-j1R0/FeGa64Y+NmqfZhyoVRzcFlOZ8sNlKzHjh4VvLULFACZhn68XrX5DFg2FhMvSMJmROuFxRSa560ECWKBMg==", - "dev": true - }, - "node_modules/grunt-contrib-watch/node_modules/lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - }, - "node_modules/grunt-contrib-watch/node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/grunt-contrib-watch/node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/grunt-contrib-watch/node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "dev": true, - "dependencies": { - "mime-db": "~1.33.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/grunt-contrib-watch/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-watch/node_modules/ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "node_modules/grunt-contrib-watch/node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/grunt-contrib-watch/node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/grunt-contrib-watch/node_modules/parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/grunt-contrib-watch/node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-watch/node_modules/qs": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", - "integrity": "sha1-TZMuXH6kEcynajEtOaYGIA/VDNk=", - "dev": true, - "engines": ">=0.10.40" - }, - "node_modules/grunt-contrib-watch/node_modules/raw-body": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", - "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=", - "dev": true, - "dependencies": { - "bytes": "2.4.0", - "iconv-lite": "0.4.13", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/grunt-contrib-watch/node_modules/raw-body/node_modules/bytes": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", - "dev": true - }, - "node_modules/grunt-contrib-watch/node_modules/statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/grunt-contrib-watch/node_modules/tiny-lr": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz", - "integrity": "sha1-s/26gC5dVqM8L28QeUsy5Hescp0=", - "dev": true, - "dependencies": { - "body-parser": "~1.14.0", - "debug": "~2.2.0", - "faye-websocket": "~0.10.0", - "livereload-js": "^2.2.0", - "parseurl": "~1.3.0", - "qs": "~5.1.0" - } - }, - "node_modules/grunt-contrib-watch/node_modules/type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.18" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/grunt-contrib-watch/node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/grunt-contrib-watch/node_modules/websocket-driver": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.4.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-watch/node_modules/websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-watch/node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/grunt-known-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz", - "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-legacy-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz", - "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==", - "dev": true, - "dependencies": { - "colors": "~1.1.2", - "grunt-legacy-log-utils": "~2.1.0", - "hooker": "~0.2.3", - "lodash": "~4.17.19" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/grunt-legacy-log-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz", - "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==", - "dev": true, - "dependencies": { - "chalk": "~4.1.0", - "lodash": "~4.17.19" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/grunt-legacy-util": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz", - "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==", - "dev": true, - "dependencies": { - "async": "~3.2.0", - "exit": "~0.1.2", - "getobject": "~1.0.0", - "hooker": "~0.2.3", - "lodash": "~4.17.21", - "underscore.string": "~3.3.5", - "which": "~2.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/grunt-notify": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/grunt-notify/-/grunt-notify-0.4.5.tgz", - "integrity": "sha1-BSk5kGFhENtrwK0V5sBZL/4YrDE=", - "dev": true, - "dependencies": { - "semver": "^5.1.0", - "stack-parser": "^0.0.1", - "which": "^1.2.4" - } - }, - "node_modules/grunt-notify/node_modules/semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/grunt-notify/node_modules/stack-parser": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/stack-parser/-/stack-parser-0.0.1.tgz", - "integrity": "sha1-fTtjoXiH6eLCv1Xb0zGP40o50ec=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-notify/node_modules/which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/grunt-phplint": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/grunt-phplint/-/grunt-phplint-0.0.8.tgz", - "integrity": "sha1-wSeqKP930jnBSgHwUMx7cVnOkMA=", - "dev": true, - "dependencies": { - "cache-swap": "~0.0.2", - "grunt": "~0.4.1" - } - }, - "node_modules/grunt-phplint/node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/grunt-phplint/node_modules/argparse": { - "version": "0.1.16", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", - "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", - "dev": true, - "dependencies": { - "underscore": "~1.7.0", - "underscore.string": "~2.4.0" - } - }, - "node_modules/grunt-phplint/node_modules/argparse/node_modules/underscore.string": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", - "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-phplint/node_modules/async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "dev": true - }, - "node_modules/grunt-phplint/node_modules/cache-swap": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/cache-swap/-/cache-swap-0.0.6.tgz", - "integrity": "sha1-F834NebDAf0VgJCwPRzDb0Z7FpU=", - "dev": true, - "dependencies": { - "async": "~0.2.6", - "lodash": "~1.1.0", - "rimraf": "~2.1.4" - } - }, - "node_modules/grunt-phplint/node_modules/coffee-script": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz", - "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=", - "deprecated": "CoffeeScript on NPM has moved to \"coffeescript\" (no hyphen)", - "dev": true, - "bin": { - "cake": "bin/cake", - "coffee": "bin/coffee" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/grunt-phplint/node_modules/colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/grunt-phplint/node_modules/dateformat": { - "version": "1.0.2-1.2.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", - "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-phplint/node_modules/esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/grunt-phplint/node_modules/eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", - "dev": true - }, - "node_modules/grunt-phplint/node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-phplint/node_modules/findup-sync": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", - "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=", - "dev": true, - "dependencies": { - "glob": "~3.2.9", - "lodash": "~2.4.1" - }, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/grunt-phplint/node_modules/findup-sync/node_modules/glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", - "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", - "dev": true, - "dependencies": { - "inherits": "2", - "minimatch": "0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-phplint/node_modules/findup-sync/node_modules/lodash": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", - "dev": true, - "engines": [ - "node", - "rhino" - ] - }, - "node_modules/grunt-phplint/node_modules/findup-sync/node_modules/minimatch": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", - "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", - "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", - "dev": true, - "dependencies": { - "lru-cache": "2", - "sigmund": "~1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-phplint/node_modules/getobject": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", - "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-phplint/node_modules/glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "dev": true, - "dependencies": { - "graceful-fs": "~1.2.0", - "inherits": "1", - "minimatch": "~0.2.11" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-phplint/node_modules/glob/node_modules/inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", - "dev": true - }, - "node_modules/grunt-phplint/node_modules/graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", - "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/grunt-phplint/node_modules/grunt": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz", - "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=", - "dev": true, - "dependencies": { - "async": "~0.1.22", - "coffee-script": "~1.3.3", - "colors": "~0.6.2", - "dateformat": "1.0.2-1.2.3", - "eventemitter2": "~0.4.13", - "exit": "~0.1.1", - "findup-sync": "~0.1.2", - "getobject": "~0.1.0", - "glob": "~3.1.21", - "grunt-legacy-log": "~0.1.0", - "grunt-legacy-util": "~0.2.0", - "hooker": "~0.2.3", - "iconv-lite": "~0.2.11", - "js-yaml": "~2.0.5", - "lodash": "~0.9.2", - "minimatch": "~0.2.12", - "nopt": "~1.0.10", - "rimraf": "~2.2.8", - "underscore.string": "~2.2.1", - "which": "~1.0.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-phplint/node_modules/grunt-legacy-log": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz", - "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=", - "dev": true, - "dependencies": { - "colors": "~0.6.2", - "grunt-legacy-log-utils": "~0.1.1", - "hooker": "~0.2.3", - "lodash": "~2.4.1", - "underscore.string": "~2.3.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-phplint/node_modules/grunt-legacy-log-utils": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz", - "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=", - "dev": true, - "dependencies": { - "colors": "~0.6.2", - "lodash": "~2.4.1", - "underscore.string": "~2.3.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-phplint/node_modules/grunt-legacy-log-utils/node_modules/lodash": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", - "dev": true, - "engines": [ - "node", - "rhino" - ] - }, - "node_modules/grunt-phplint/node_modules/grunt-legacy-log-utils/node_modules/underscore.string": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", - "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-phplint/node_modules/grunt-legacy-log/node_modules/lodash": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", - "dev": true, - "engines": [ - "node", - "rhino" - ] - }, - "node_modules/grunt-phplint/node_modules/grunt-legacy-log/node_modules/underscore.string": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", - "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-phplint/node_modules/grunt-legacy-util": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz", - "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=", - "dev": true, - "dependencies": { - "async": "~0.1.22", - "exit": "~0.1.1", - "getobject": "~0.1.0", - "hooker": "~0.2.3", - "lodash": "~0.9.2", - "underscore.string": "~2.2.1", - "which": "~1.0.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-phplint/node_modules/grunt-legacy-util/node_modules/async": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", - "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-phplint/node_modules/grunt-legacy-util/node_modules/lodash": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", - "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=", - "dev": true, - "engines": [ - "node", - "rhino" - ] - }, - "node_modules/grunt-phplint/node_modules/grunt/node_modules/async": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", - "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-phplint/node_modules/grunt/node_modules/lodash": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", - "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=", - "dev": true, - "engines": [ - "node", - "rhino" - ] - }, - "node_modules/grunt-phplint/node_modules/grunt/node_modules/rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", - "dev": true, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/grunt-phplint/node_modules/hooker": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", - "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-phplint/node_modules/iconv-lite": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", - "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/grunt-phplint/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/grunt-phplint/node_modules/js-yaml": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", - "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=", - "dev": true, - "dependencies": { - "argparse": "~ 0.1.11", - "esprima": "~ 1.0.2" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - }, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/grunt-phplint/node_modules/lodash": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.1.1.tgz", - "integrity": "sha1-QaKy6aAOZNbRmZ8UP/awdV9ruyQ=", - "dev": true, - "engines": [ - "node", - "rhino" - ] - }, - "node_modules/grunt-phplint/node_modules/lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true - }, - "node_modules/grunt-phplint/node_modules/minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", - "dev": true, - "dependencies": { - "lru-cache": "2", - "sigmund": "~1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-phplint/node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-phplint/node_modules/rimraf": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.1.4.tgz", - "integrity": "sha1-Wm62Lu2gaPUe3lDymz5c0i89m7I=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "~1" - } - }, - "node_modules/grunt-phplint/node_modules/sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, - "node_modules/grunt-phplint/node_modules/underscore": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=", - "dev": true - }, - "node_modules/grunt-phplint/node_modules/underscore.string": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", - "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-phplint/node_modules/which": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", - "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", - "dev": true, - "bin": { - "which": "bin/which" - } - }, - "node_modules/grunt-ssh": { - "version": "0.12.9", - "resolved": "https://registry.npmjs.org/grunt-ssh/-/grunt-ssh-0.12.9.tgz", - "integrity": "sha1-IVUaNzmB8Ooo3HmdOKdp5UzU2QQ=", - "dev": true, - "dependencies": { - "async": ">=1.0.0", - "progress": "~1.1.3", - "ssh2": "~0.4.6" - }, - "engines": { - "node": ">= 0.8.7" - }, - "peerDependencies": { - "grunt": "~0.4.1" - } - }, - "node_modules/grunt-ssh/node_modules/asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true - }, - "node_modules/grunt-ssh/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/grunt-ssh/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/grunt-ssh/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/grunt-ssh/node_modules/progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/grunt-ssh/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/grunt-ssh/node_modules/ssh2": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-0.4.15.tgz", - "integrity": "sha1-B8b0EG2fe26m5N9jbGxT8fmBf/g=", - "dev": true, - "dependencies": { - "readable-stream": "~1.0.0", - "ssh2-streams": "~0.0.22" - }, - "engines": { - "node": ">=0.8.7" - } - }, - "node_modules/grunt-ssh/node_modules/ssh2-streams": { - "version": "0.0.23", - "resolved": "https://registry.npmjs.org/ssh2-streams/-/ssh2-streams-0.0.23.tgz", - "integrity": "sha1-ru8wgxu1/Er2qj9tCiYaQTUxYSs=", - "dev": true, - "dependencies": { - "asn1": "~0.2.0", - "readable-stream": "~1.0.0", - "streamsearch": "~0.1.2" - }, - "engines": { - "node": ">=0.8.7" - } - }, - "node_modules/grunt-ssh/node_modules/streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-ssh/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "node_modules/grunt-text-replace": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/grunt-text-replace/-/grunt-text-replace-0.4.0.tgz", - "integrity": "sha1-252c5Z4v5J2id+nbwZXD4Rz7FsI=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-wp-i18n": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/grunt-wp-i18n/-/grunt-wp-i18n-1.0.3.tgz", - "integrity": "sha512-CJNbEKeBeOSAPeaJ9B8iCgSwtaG63UR9/uT46a4OsIqnFhOJpeAi138JTlvjfIbnDVoBrzvdrKJe1svveLjUtA==", - "dev": true, - "dependencies": { - "grunt": "^1.0.3", - "node-wp-i18n": "^1.2.2" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/grunt-wp-readme-to-markdown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/grunt-wp-readme-to-markdown/-/grunt-wp-readme-to-markdown-2.0.1.tgz", - "integrity": "sha1-QGzV6YmIWA3B0W6AXE4uYJJWhVI=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - }, - "peerDependencies": { - "grunt": ">=0.4.0" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hooker": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", - "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/http-parser-js": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", - "dev": true - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha512-CLM8SNMDu7C5psFCn6Wg/tgpj/bKAg7hc2gWqcuR9OD5Ft9PhBpIu8PLicPeis+xDd6YX2ncI8MCA64I9tftIA==", - "dev": true - }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "dependencies": { - "is-unc-path": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "dependencies": { - "unc-path-regex": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jshint-stylish": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jshint-stylish/-/jshint-stylish-2.2.1.tgz", - "integrity": "sha1-JCCCosA1rgP9gQROBXDMQgjPbmE=", - "dev": true, - "dependencies": { - "beeper": "^1.1.0", - "chalk": "^1.0.0", - "log-symbols": "^1.0.0", - "plur": "^2.1.0", - "string-length": "^1.0.0", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jshint-stylish/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jshint-stylish/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jshint-stylish/node_modules/beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jshint-stylish/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jshint-stylish/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/jshint-stylish/node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jshint-stylish/node_modules/irregular-plurals": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.4.0.tgz", - "integrity": "sha1-LKmwM2UREYVUEvFr5dd8YqRYp2Y=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jshint-stylish/node_modules/log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "dev": true, - "dependencies": { - "chalk": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jshint-stylish/node_modules/plur": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", - "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", - "dev": true, - "dependencies": { - "irregular-plurals": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jshint-stylish/node_modules/string-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", - "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", - "dev": true, - "dependencies": { - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jshint-stylish/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jshint-stylish/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/jshint-stylish/node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/liftup": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz", - "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==", - "dev": true, - "dependencies": { - "extend": "^3.0.2", - "findup-sync": "^4.0.0", - "fined": "^1.2.0", - "flagged-respawn": "^1.0.1", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.1", - "rechoir": "^0.7.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/liftup/node_modules/findup-sync": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", - "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^4.0.2", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-wp-i18n": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/node-wp-i18n/-/node-wp-i18n-1.2.6.tgz", - "integrity": "sha512-aLutjDB1rMJ3FNlNcs/XjmaejED1/y30uLYQrmkXpeUj1NH/SA6pI94CUz3iI7fbQd63lTGg0YNvOQAT8cWdIw==", - "dev": true, - "dependencies": { - "bluebird": "^3.4.1", - "gettext-parser": "^3.1.0", - "glob": "^7.0.5", - "lodash": "^4.14.2", - "minimist": "^1.2.5", - "mkdirp": "^1.0.4", - "tmp": "^0.2.1" - }, - "bin": { - "wpi18n": "bin/wpi18n" - } - }, - "node_modules/nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", - "dev": true, - "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", - "dev": true, - "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", - "dev": true, - "dependencies": { - "path-root-regex": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "dependencies": { - "resolve": "^1.9.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/underscore.string": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz", - "integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==", - "dev": true, - "dependencies": { - "sprintf-js": "^1.1.1", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - } - }, "dependencies": { "abbrev": { "version": "1.1.1", diff --git a/wpuf-functions.php b/wpuf-functions.php index 34685e736..fb6f4eb06 100644 --- a/wpuf-functions.php +++ b/wpuf-functions.php @@ -2003,10 +2003,10 @@ function wpuf_is_license_expired() { * @return array */ function wpuf_get_post_form_templates() { - require_once WPUF_ROOT . '/class/post-form-templates/post.php'; + require_once WPUF_ROOT . '/includes/Admin/PostFormTemplates/WPUF_Post_Form_Template_Post.php'; $integrations = []; - $integrations['WPUF_Post_Form_Template_Post'] = new WPUF_Post_Form_Template_Post(); + $integrations['WPUF_Post_Form_Template_Post'] = new Wp\User\Frontend\Admin\PostFormTemplates\WPUF_Post_Form_Template_Post(); return apply_filters( 'wpuf_get_post_form_templates', $integrations ); } diff --git a/wpuf.php b/wpuf.php index d89391aeb..3dd15f498 100644 --- a/wpuf.php +++ b/wpuf.php @@ -22,6 +22,7 @@ define( 'WPUF_ROOT', __DIR__ ); define( 'WPUF_ROOT_URI', plugins_url( '', __FILE__ ) ); define( 'WPUF_ASSET_URI', WPUF_ROOT_URI . '/assets' ); +define( 'WPUF_INCLUDES', WPUF_ROOT . '/includes' ); /** * Main bootstrap class for WP User Frontend @@ -80,7 +81,7 @@ public function __construct() { register_activation_hook( __FILE__, [ $this, 'install' ] ); register_deactivation_hook( __FILE__, [ $this, 'uninstall' ] ); - $this->includes(); + // $this->includes(); $this->init_hooks(); do_action( 'wpuf_loaded' ); @@ -133,9 +134,9 @@ public function init_hooks() { add_action( 'init', [ $this, 'load_textdomain' ] ); - add_action( 'admin_init', [ $this, 'block_admin_access' ] ); + // add_action( 'admin_init', [ $this, 'block_admin_access' ] ); - add_filter( 'show_admin_bar', [ $this, 'show_admin_bar' ] ); + // add_filter( 'show_admin_bar', [ $this, 'show_admin_bar' ] ); // enqueue plugin scripts, don't remove priority. // If remove or set priority under 1000 then registered styles will not load on WC Marketplace vendor dashboard. @@ -146,11 +147,11 @@ public function init_hooks() { add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), [ $this, 'plugin_action_links' ] ); // add custom css - add_action( 'wp_head', [ $this, 'add_custom_css' ] ); + // add_action( 'wp_head', [ $this, 'add_custom_css' ] ); // set schedule event - add_action( 'wpuf_remove_expired_post_hook', [ $this, 'action_to_remove_exipred_post' ] ); - add_action( 'wp_ajax_wpuf_weforms_install', [ $this, 'install_weforms' ] ); +// add_action( 'wpuf_remove_expired_post_hook', [ $this, 'action_to_remove_exipred_post' ] ); +// add_action( 'wp_ajax_wpuf_weforms_install', [ $this, 'install_weforms' ] ); // Insight class instentiate // $this->container['tracker'] = new WPUF_WeDevs_Insights( __FILE__ ); @@ -268,18 +269,18 @@ public function includes() { // require_once __DIR__ . '/lib/gateway/bank.php'; // require_once __DIR__ . '/lib/class-wedevs-insights.php'; // -// require_once WPUF_ROOT . '/includes/class-frontend-render-form.php'; +// require_once WPUF_ROOT . '/includes/class-frontend-render-WPUF_Admin_Form_Free.php'; // require_once WPUF_ROOT . '/admin/form-builder/class-wpuf-form-builder-field-settings.php'; // // // global classes/functions // require_once WPUF_ROOT . '/class/upload.php'; -// require_once WPUF_ROOT . '/admin/form-template.php'; -// require_once WPUF_ROOT . '/class/post-form-template.php'; -// require_once WPUF_ROOT . '/class/subscription.php'; -// require_once WPUF_ROOT . '/class/render-form.php'; +// require_once WPUF_ROOT . '/admin/WPUF_Admin_Form_Template.php'; +// require_once WPUF_ROOT . '/class/post-WPUF_Admin_Form_Template.php'; +// require_once WPUF_ROOT . '/class/WPUF_Subscription_Element.php'; +// require_once WPUF_ROOT . '/class/render-WPUF_Admin_Form_Free.php'; // require_once WPUF_ROOT . '/class/payment.php'; // require_once WPUF_ROOT . '/class/frontend-account.php'; -// require_once WPUF_ROOT . '/includes/class-form.php'; +// require_once WPUF_ROOT . '/includes/class-WPUF_Admin_Form_Free.php'; // require_once WPUF_ROOT . '/includes/class-form-manager.php'; // require_once WPUF_ROOT . '/includes/class-login-widget.php'; // require_once WPUF_ROOT . '/includes/setup-wizard.php'; @@ -305,20 +306,20 @@ public function includes() { // } // // require_once WPUF_ROOT . '/includes/class-user.php'; -// require_once WPUF_ROOT . '/includes/class-user-subscription.php'; +// require_once WPUF_ROOT . '/includes/class-user-WPUF_Subscription_Element.php'; // // if ( is_admin() ) { // require_once WPUF_ROOT . '/admin/settings-options.php'; // require_once WPUF_ROOT . '/admin/class-admin-settings.php'; // require_once WPUF_ROOT . '/admin/form-handler.php'; -// require_once WPUF_ROOT . '/admin/form.php'; +// require_once WPUF_ROOT . '/admin/WPUF_Admin_Form_Free.php'; // require_once WPUF_ROOT . '/admin/posting.php'; -// require_once WPUF_ROOT . '/admin/class-admin-subscription.php'; +// require_once WPUF_ROOT . '/admin/class-admin-WPUF_Subscription_Element.php'; // require_once WPUF_ROOT . '/admin/installer.php'; // require_once WPUF_ROOT . '/admin/class-admin-welcome.php'; // require_once WPUF_ROOT . '/admin/promotion.php'; -// require_once WPUF_ROOT . '/admin/post-forms-list-table.php'; -// require_once WPUF_ROOT . '/includes/free/admin/shortcode-button.php'; +// require_once WPUF_ROOT . '/admin/WPUF_Admin_Post_Forms_List_Table.php'; +// require_once WPUF_ROOT . '/includes/Free/admin/shortcode-button.php'; // require_once WPUF_ROOT . '/admin/form-builder/class-wpuf-admin-form-builder.php'; // require_once WPUF_ROOT . '/admin/form-builder/class-wpuf-admin-form-builder-ajax.php'; // // include_once WPUF_ROOT . '/lib/class-weforms-upsell.php'; @@ -328,7 +329,7 @@ public function includes() { // include_once WPUF_ROOT . '/admin/dashboard-metabox.php'; // } else { // require_once WPUF_ROOT . '/class/frontend-dashboard.php'; -// require_once WPUF_ROOT . '/includes/free/class-registration.php'; +// require_once WPUF_ROOT . '/includes/Free/class-registration.php'; // } // // // add reCaptcha library if not found @@ -337,12 +338,16 @@ public function includes() { // require_once __DIR__ . '/lib/invisible_recaptcha.php'; // } // -// require_once WPUF_ROOT . '/includes/free/class-login.php'; -// require_once WPUF_ROOT . '/includes/class-frontend-form-post.php'; +// require_once WPUF_ROOT . '/includes/Free/class-login.php'; +// require_once WPUF_ROOT . '/includes/class-frontend-form-WPUF_Post_Form_Template_Post.php'; // require_once WPUF_ROOT . '/includes/class-field-manager.php'; // require_once WPUF_ROOT . '/includes/class-pro-upgrades.php'; // require_once WPUF_ROOT . '/includes/fields/field-trait.php'; - require_once WPUF_ROOT . '/includes/Assets.php'; +// require_once WPUF_ROOT . '/includes/Assets.php'; + +// if ( is_admin() ) { +// require_once WPUF_ROOT . '/admin/WPUF_Admin_Post_Forms_List_Table.php'; +// } } /** @@ -371,11 +376,10 @@ public function instantiate() { // } if ( is_admin() ) { - $this->container['admin'] = new Wp\User\Frontend\Admin(); -// $this->container['settings'] = WPUF_Admin_Settings::init(); -// $this->container['form_template'] = new WPUF_Admin_Form_Template(); + $this->container['admin'] = new Wp\User\Frontend\Admin(); + // $this->container['settings'] = WPUF_Admin_Settings::init(); // $this->container['form_handler'] = new WPUF_Admin_Form_Handler(); -// $this->container['admin_form'] = new WPUF_Admin_Form(); +// // $this->container['admin_posting'] = WPUF_Admin_Posting::init(); // $this->container['admin_subscription'] = new WPUF_Admin_Subscription(); // $this->container['admin_installer'] = new WPUF_Admin_Installer(); @@ -433,7 +437,7 @@ public function plugin_upgrades() { } /** - * Load wpuf free class if not pro + * Load wpuf Free class if not pro * * @since 2.5.4 */ @@ -444,9 +448,9 @@ public function wpuf_loader() { $this->is_pro = true; add_action( 'admin_notices', [ $this, 'wpuf_latest_pro_activation_notice' ] ); } else { - include __DIR__ . '/includes/free/loader.php'; + // include __DIR__ . '/includes/Free/WPUF_Free_Loader.php'; - $this->container['free_loader'] = new WPUF_Free_Loader(); + $this->container['free_loader'] = new Wp\User\Frontend\Free\WPUF_Free_Loader(); } } @@ -659,7 +663,7 @@ public function block_admin_access() { } $access_level = wpuf_get_option( 'admin_access', 'wpuf_general', 'read' ); - $valid_pages = [ 'admin-ajax.php', 'admin-post.php', 'async-upload.php', 'media-upload.php' ]; + $valid_pages = [ 'admin-ajax.php', 'admin-WPUF_Post_Form_Template_Post.php', 'async-upload.php', 'media-upload.php' ]; if ( ! current_user_can( $access_level ) && ! in_array( $pagenow, $valid_pages ) ) { // wp_die( __( 'Access Denied. Your site administrator has blocked your access to the WordPress back-office.', 'wpuf' ) ); From 5a6a7a257061eb184bf529ff5cca1bab0c55a552 Mon Sep 17 00:00:00 2001 From: Sapayth Hossain Date: Wed, 24 May 2023 11:36:00 +0600 Subject: [PATCH 003/167] load post form page and templates --- admin/class-admin-settings.php | 8 +-- assets/js/wpuf-form-builder-components.js | 2 +- includes/Admin.php | 16 +++-- includes/Admin/Menu.php | 29 +++----- .../WPUF_Admin_Form_Template.php | 31 ++++---- includes/Admin/WPUF_Admin_Form.php | 40 +++-------- includes/Admin/WPUF_Admin_Form_Builder.php | 2 + .../Admin/WPUF_Admin_Form_Handler.php | 9 ++- includes/Admin/WPUF_Field_Manager.php | 14 ++-- includes/Assets.php | 72 +++++++++++++++---- includes/Free/WPUF_Free_Loader.php | 14 ++-- includes/Free/admin/shortcode-button.php | 2 +- includes/class-billing-address.php | 2 +- includes/setup-wizard.php | 4 +- wpuf.php | 6 +- 15 files changed, 144 insertions(+), 107 deletions(-) rename admin/form-handler.php => includes/Admin/WPUF_Admin_Form_Handler.php (98%) diff --git a/admin/class-admin-settings.php b/admin/class-admin-settings.php index ca5841672..4157d9571 100644 --- a/admin/class-admin-settings.php +++ b/admin/class-admin-settings.php @@ -89,7 +89,7 @@ public function admin_menu() { $post_form_submenu = add_submenu_page('wp-user-frontend', __('Post Forms', 'wp-user-frontend'), __('Post Forms', 'wp-user-frontend'), $capability, 'wpuf-post-forms', [$this, 'wpuf_post_forms_page']); $this->menu_pages[] = $post_form_submenu; - add_action( "load-$post_form_submenu", [ $this, 'post_form_menu_action' ] ); + // add_action( "load-$post_form_submenu", [ $this, 'post_form_menu_action' ] ); remove_submenu_page( 'wp-user-frontend', 'wp-user-frontend' ); @@ -137,7 +137,7 @@ public function admin_menu() { * Fire when post form submenu registered */ public function post_form_menu_action() { - do_action('wpuf_load_post_forms'); + // do_action('wpuf_load_post_forms'); } /** @@ -509,11 +509,11 @@ public function enqueue_styles() { private function enqueue_tools_scripts() { $prefix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; - wp_enqueue_script( 'wpuf-vue', WPUF_ASSET_URI . '/vendor/vue/vue' . $prefix . '.js', [], WPUF_VERSION, true ); + // wp_enqueue_script( 'wpuf-vue', WPUF_ASSET_URI . '/vendor/vue/vue' . $prefix . '.js', [], WPUF_VERSION, true ); wp_enqueue_media(); - wp_enqueue_script( 'wpuf-admin-tools', WPUF_ASSET_URI . '/js/wpuf-admin-tools.js', [ 'jquery', 'wpuf-vue' ], WPUF_VERSION, true ); + // wp_enqueue_script( 'wpuf-admin-tools', WPUF_ASSET_URI . '/js/wpuf-admin-tools.js', [ 'jquery', 'wpuf-vue' ], WPUF_VERSION, true ); wp_localize_script( 'wpuf-admin-tools', 'wpuf_admin_tools', [ diff --git a/assets/js/wpuf-form-builder-components.js b/assets/js/wpuf-form-builder-components.js index efdae0715..69bd5a5a0 100644 --- a/assets/js/wpuf-form-builder-components.js +++ b/assets/js/wpuf-form-builder-components.js @@ -1270,7 +1270,7 @@ Vue.component('form-fields', { Swal.fire({ title: ' ' + title + '
' + this.i18n.is_a_pro_feature, text: this.i18n.pro_feature_msg, - icon: '', + icon: 'info', showCancelButton: true, cancelButtonText: this.i18n.close, confirmButtonColor: '#46b450', diff --git a/includes/Admin.php b/includes/Admin.php index 46adf1a0d..c745cf213 100644 --- a/includes/Admin.php +++ b/includes/Admin.php @@ -5,15 +5,23 @@ class Admin { function __construct() { wpuf()->add_to_container( 'menu', new Admin\Menu() ); - wpuf()->add_to_container( 'form_template', new Admin\PostFormTemplates\WPUF_Admin_Form_Template() ); wpuf()->add_to_container( 'admin_form', new Admin\WPUF_Admin_Form() ); + wpuf()->add_to_container( 'admin_form_handler', new Admin\WPUF_Admin_Form_Handler() ); + + // post form submenu operations + add_action( 'wpuf_load_post_forms', [ $this, 'enqueue_post_form_scripts' ] ); - // bind the tasks that needs to be done after menu is created. for hook sequence purpose - // add_action( 'admin_init', [ $this, 'admin_init' ] ); + // dynamic hook. format: "admin_action_{$action}". more details: wp-admin/admin.php + add_action( 'admin_action_wpuf_post_form_template', [ $this, 'create_post_form_from_template' ] ); } - public function admin_init() { + public function create_post_form_from_template() { + wpuf()->form_template->create_post_form_from_template(); + } + public function enqueue_post_form_scripts() { + wp_enqueue_style( 'wpuf-admin' ); + wp_enqueue_script( 'wpuf-admin' ); } } diff --git a/includes/Admin/Menu.php b/includes/Admin/Menu.php index 03bb11c30..56d4d788c 100644 --- a/includes/Admin/Menu.php +++ b/includes/Admin/Menu.php @@ -5,17 +5,19 @@ class Menu { private $all_submenu_hooks = []; + public $parent_slug = 'wp-user-frontend'; + function __construct() { add_action( 'admin_menu', [ $this, 'admin_menu' ] ); } public function admin_menu() { $capability = wpuf_admin_role(); - $wpuf_icon = 'data:image/svg+xml;base64,' . base64_encode( '' ); + $wpuf_icon = 'data:image/svg+xml;base64,' . base64_encode( '' ); - add_menu_page( __( 'WP User Frontend', 'wp-user-frontend' ), __( 'User Frontend', 'wp-user-frontend' ), $capability, 'wp-user-frontend', [ $this, 'wpuf_post_forms_page' ], $wpuf_icon, '54.2' ); + add_menu_page( __( 'WP User Frontend', 'wp-user-frontend' ), __( 'User Frontend', 'wp-user-frontend' ), $capability, $this->parent_slug, [ $this, 'wpuf_post_forms_page' ], $wpuf_icon, '54.2' ); - $post_forms_hook = add_submenu_page('wp-user-frontend', __('Post Forms', 'wp-user-frontend'), __('Post Forms', 'wp-user-frontend'), $capability, 'wpuf-post-forms', [ $this, 'wpuf_post_forms_page' ]); + $post_forms_hook = add_submenu_page( $this->parent_slug, __('Post Forms', 'wp-user-frontend'), __('Post Forms', 'wp-user-frontend'), $capability, 'wpuf-post-forms', [ $this, 'wpuf_post_forms_page' ]); $this->all_submenu_hooks['post_forms'] = $post_forms_hook; // remove the toplevel menu item @@ -26,20 +28,11 @@ public function admin_menu() { */ do_action( 'wpuf_admin_menu_top' ); - foreach ( $this->all_submenu_hooks as $submenu_hook ) { - add_action( $submenu_hook, [ $this, 'enqueue_common_admin_scripts' ] ); - } - - add_action( 'load-' . $this->all_submenu_hooks['post_forms'], [ wpuf()->admin_form, 'post_forms_builder_init' ] ); - } - - public function enqueue_common_admin_scripts() { - wp_enqueue_style( 'wpuf-admin' ); - wp_enqueue_script( 'wpuf-admin' ); + add_action( "load-$post_forms_hook", [ $this, 'post_form_menu_action' ] ); } public function wpuf_post_forms_page() { - $action = isset( $_GET['action'] ) ? sanitize_text_field( wp_unslash( $_GET['action'] ) ) : null; + $action = ! empty( $_GET['action'] ) ? sanitize_text_field( wp_unslash( $_GET['action'] ) ) : null; $add_new_page_url = admin_url( 'admin.php?page=wpuf-post-forms&action=add-new' ); switch ( $action ) { @@ -54,12 +47,8 @@ public function wpuf_post_forms_page() { } } - public function set_main_menu_hook( $hook ) { - $this->main_menu_hook = $hook; - } - - public function get_main_menu_hook() { - return $this->main_menu_hook; + public function post_form_menu_action() { + do_action('wpuf_load_post_forms'); } public function get_all_submenu_hooks() { diff --git a/includes/Admin/PostFormTemplates/WPUF_Admin_Form_Template.php b/includes/Admin/PostFormTemplates/WPUF_Admin_Form_Template.php index 94595a89c..f4bb12965 100644 --- a/includes/Admin/PostFormTemplates/WPUF_Admin_Form_Template.php +++ b/includes/Admin/PostFormTemplates/WPUF_Admin_Form_Template.php @@ -12,12 +12,11 @@ class WPUF_Admin_Form_Template { public function __construct() { - add_action( 'admin_enqueue_scripts', [$this, 'enqueue_scripts'] ); + add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] ); add_action( 'admin_enqueue_scripts', [ $this, 'deregister_scripts' ], 99 ); // post form templates add_action( 'admin_footer', [ $this, 'render_post_form_templates' ] ); - add_filter( 'admin_action_wpuf_post_form_template', [ $this, 'create_post_form_from_template' ] ); // form settings add_action( 'wpuf_form_setting', [ $this, 'post_form_settings' ], 8, 2 ); @@ -37,9 +36,7 @@ public function __construct() { public function deregister_scripts() { global $wp_styles; - $current_screen = get_current_screen(); - - if ( ! in_array( $current_screen->id, [ 'user-frontend_page_wpuf-post-forms' ] ) ) { + if ( ! $this->should_display() ) { return; } @@ -59,17 +56,23 @@ public function deregister_scripts() { * @return bool */ public function should_display() { - $current_screen = get_current_screen(); + $current_screen = get_current_screen(); + $all_submenu_hooks = wpuf()->menu->get_all_submenu_hooks(); + $wpuf_pages = [ + 'post_forms', + ]; - if ( in_array( $current_screen->id, [ 'user-frontend_page_wpuf-post-forms' ] ) ) { - return true; + foreach ( $wpuf_pages as $page ) { + if ( ! array_key_exists( $page, $all_submenu_hooks ) ) { + return false; + } } - return false; + return $current_screen->id === $all_submenu_hooks['post_forms']; } public function enqueue_scripts() { - if ( !$this->should_display() ) { + if ( ! $this->should_display() ) { return; } @@ -121,7 +124,7 @@ public function get_template_object( $template ) { $template_object = $registry[ $template ]; - if ( !is_a( $template_object, 'WPUF_Post_Form_Template' ) ) { + if ( ! is_a( $template_object, 'Wp\User\Frontend\Admin\PostFormTemplates\WPUF_Post_Form_Template' ) ) { return false; } @@ -136,7 +139,11 @@ public function get_template_object( $template ) { * @return void */ public function create_post_form_from_template() { - check_admin_referer( 'wpuf_create_from_template' ); + $result = check_admin_referer( 'wpuf_create_from_template' ); + + if ( ! $result ) { + return; + } $template_name = isset( $_GET['template'] ) ? sanitize_text_field( wp_unslash( $_GET['template'] ) ) : ''; diff --git a/includes/Admin/WPUF_Admin_Form.php b/includes/Admin/WPUF_Admin_Form.php index 388d32205..4aca00eca 100644 --- a/includes/Admin/WPUF_Admin_Form.php +++ b/includes/Admin/WPUF_Admin_Form.php @@ -40,25 +40,7 @@ class WPUF_Admin_Form { * @return void */ public function __construct() { - // wp_register_style( 'wpuf-css', WPUF_ASSET_URI . '/css/frontend-forms.css' ); -// wp_register_style( 'wpuf-font-awesome', WPUF_ASSET_URI . '/vendor/font-awesome/css/font-awesome.min.css', [], WPUF_VERSION ); -// wp_register_style( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/sweetalert2.css', [], '11.4.19' ); -// wp_register_style( 'wpuf-selectize', WPUF_ASSET_URI . '/vendor/selectize/css/selectize.default.css', [], WPUF_VERSION ); -// wp_register_style( 'wpuf-toastr', WPUF_ASSET_URI . '/vendor/toastr/toastr.min.css', [], WPUF_VERSION ); -// wp_register_style( 'wpuf-tooltip', WPUF_ASSET_URI . '/vendor/tooltip/tooltip.css', [], WPUF_VERSION ); -// -// $form_builder_css_deps = apply_filters( 'wpuf-form-builder-css-deps', [ -// 'wpuf-css', 'wpuf-font-awesome', 'wpuf-sweetalert2', 'wpuf-selectize', 'wpuf-toastr', 'wpuf-tooltip', -// ] ); -// -// wp_register_style( 'wpuf-form-builder', WPUF_ASSET_URI . '/css/wpuf-form-builder.css', $form_builder_css_deps, WPUF_VERSION ); -// add_action( 'init', [ $this, 'register_post_type' ] ); -// $label = strtolower( preg_replace( '/\s/', '-$1', __( 'User Frontend', 'wp-user-frontend' ) ) ); - $submenu_hooks = wpuf()->menu->get_all_submenu_hooks(); - - if ( ! empty( $submenu_hooks['post_forms'] ) ) { - add_action( 'load-' . $submenu_hooks['post_forms'], [ $this, 'post_forms_builder_init' ] ); - } + $this->post_forms_builder_init(); wpuf()->add_to_container( 'fields', new WPUF_Field_Manager() ); } @@ -177,7 +159,7 @@ public function post_forms_builder_init() { add_action( 'wpuf-form-builder-settings-tabs-post', [ $this, 'add_settings_tabs' ] ); add_action( 'wpuf-form-builder-settings-tab-contents-post', [ $this, 'add_settings_tab_contents' ] ); add_filter( 'wpuf-form-fields-section-before', [ $this, 'add_post_field_section' ] ); - add_action( 'admin_enqueue_scripts', [ $this, 'admin_enqueue_scripts' ] ); + add_action( 'wpuf-form-builder-js-deps', [ $this, 'js_dependencies' ] ); add_filter( 'wpuf-form-builder-js-root-mixins', [ $this, 'js_root_mixins' ] ); add_filter( 'wpuf-form-builder-js-builder-stage-mixins', [ $this, 'js_builder_stage_mixins' ] ); @@ -186,12 +168,14 @@ public function post_forms_builder_init() { add_action( 'wpuf-form-builder-localize-script', [ $this, 'add_to_localize_script' ] ); add_filter( 'wpuf-form-fields', [ $this, 'add_field_settings' ] ); add_filter( 'wpuf-form-builder-i18n', [ $this, 'i18n' ] ); + do_action( 'wpuf-form-builder-init-type-wpuf_forms' ); + $this->set_wp_post_types(); $settings = [ 'form_type' => 'post', 'post_type' => 'wpuf_forms', - 'post_id' => isset( $_GET['id'] ) ? intval( wp_unslash( $_GET['id'] ) ) : '', + 'post_id' => ! empty( $_GET['id'] ) ? intval( wp_unslash( $_GET['id'] ) ) : '', 'form_settings_key' => $this->form_settings_key, 'shortcodes' => [ [ 'name' => 'wpuf_form' ] ], ]; @@ -376,8 +360,8 @@ public function add_post_field_section() { * @return void */ public function admin_enqueue_scripts() { -// wp_register_script( 'wpuf-form-builder-wpuf-forms', WPUF_ASSET_URI . '/js/wpuf-form-builder-wpuf-forms.js', -// [ 'jquery', 'underscore', 'wpuf-vue', 'wpuf-vuex' ], WPUF_VERSION, true ); + /*wp_register_script( 'wpuf-form-builder-wpuf-forms', WPUF_ASSET_URI . '/js/wpuf-form-builder-wpuf-forms.js', + [ 'jquery', 'underscore', 'wpuf-vue', 'wpuf-vuex' ], WPUF_VERSION, true );*/ } /** @@ -519,18 +503,14 @@ public function add_to_localize_script( $data ) { * @return array */ public function add_field_settings( $field_settings ) { - if ( class_exists( 'WPUF_Field_Contract' ) ) { - require_once WPUF_ROOT . '/includes/fields/class-field-post-title.php'; - require_once WPUF_ROOT . '/includes/fields/class-field-post-content.php'; - require_once WPUF_ROOT . '/includes/fields/class-field-post-tags.php'; - require_once WPUF_ROOT . '/includes/fields/class-field-post-excerpt.php'; - require_once WPUF_ROOT . '/includes/fields/class-field-post-taxonomy.php'; - require_once WPUF_ROOT . '/includes/fields/class-field-featured-image.php'; + if ( class_exists( 'Wp\User\Frontend\Fields\WPUF_Field_Contract' ) ) { $field_settings['post_title'] = new WPUF_Form_Field_Post_Title(); $field_settings['post_content'] = new WPUF_Form_Field_Post_Content(); $field_settings['post_excerpt'] = new WPUF_Form_Field_Post_Excerpt(); $field_settings['featured_image'] = new WPUF_Form_Field_Featured_Image(); + $taxonomy_templates = []; + foreach ( $this->wp_post_types as $post_type => $taxonomies ) { if ( ! empty( $taxonomies ) ) { foreach ( $taxonomies as $tax_name => $taxonomy ) { diff --git a/includes/Admin/WPUF_Admin_Form_Builder.php b/includes/Admin/WPUF_Admin_Form_Builder.php index dd6e47a15..fdf0d0f45 100644 --- a/includes/Admin/WPUF_Admin_Form_Builder.php +++ b/includes/Admin/WPUF_Admin_Form_Builder.php @@ -113,6 +113,8 @@ public function admin_enqueue_scripts() { wp_enqueue_script( 'wpuf-tooltip' ); wp_enqueue_script( 'wpuf-timepicker' ); wp_enqueue_script( 'wpuf-admin' ); + wp_enqueue_script( 'zxcvbn' ); + wp_enqueue_script( 'password-strength-meter' ); // wp_enqueue_script( 'wpuf-subscriptions' ); $form_builder_js_deps = apply_filters( 'wpuf-form-builder-js-deps', [ 'jquery', diff --git a/admin/form-handler.php b/includes/Admin/WPUF_Admin_Form_Handler.php similarity index 98% rename from admin/form-handler.php rename to includes/Admin/WPUF_Admin_Form_Handler.php index 97bc02577..0f25cc2bc 100644 --- a/admin/form-handler.php +++ b/includes/Admin/WPUF_Admin_Form_Handler.php @@ -1,10 +1,13 @@ post_forms_actions(); // post forms list table - add_action( "wpuf_load_post_forms", [ $this, 'post_forms_actions' ] ); + // add_action( "wpuf_load_post_forms", [ $this, 'post_forms_actions' ] ); add_action( "wpuf_load_profile_forms", [ $this, 'profile_forms_actions' ] ); add_action( 'admin_notices', [ $this, 'admin_notices' ] ); add_action( 'removable_query_args', [ $this, 'removable_query_args' ] ); @@ -56,9 +59,11 @@ public function post_forms_actions() { wp_die( esc_html( __( 'You do not have sufficient permissions to do this action', 'wp-user-frontend' ) ) ); } - $post_forms = new WPUF_Admin_Post_Forms_List_Table(); + $post_forms = new PostFormTemplates\WPUF_Admin_Post_Forms_List_Table(); $action = $post_forms->current_action(); + wpuf()->add_to_container( 'post_forms', $post_forms ); + if ( $action ) { $remove_query_args = [ '_wp_http_referer', '_wpnonce', 'action', 'id', 'post', 'action2', diff --git a/includes/Admin/WPUF_Field_Manager.php b/includes/Admin/WPUF_Field_Manager.php index 6b1ad71ec..3cd433d46 100755 --- a/includes/Admin/WPUF_Field_Manager.php +++ b/includes/Admin/WPUF_Field_Manager.php @@ -84,14 +84,14 @@ public function get_field( $field_type ) { */ public function add_field_settings( $field_settings ) { if ( class_exists( 'Wp\User\Frontend\Fields\WPUF_Field_Contract' ) ) { - require_once WPUF_ROOT . '/includes/fields/class-field-post-title.php'; - require_once WPUF_ROOT . '/includes/fields/class-field-post-content.php'; - require_once WPUF_ROOT . '/includes/fields/class-field-post-tags.php'; - require_once WPUF_ROOT . '/includes/fields/class-field-post-excerpt.php'; - require_once WPUF_ROOT . '/includes/fields/class-field-post-taxonomy.php'; - require_once WPUF_ROOT . '/includes/fields/class-field-featured-image.php'; +// require_once WPUF_ROOT . '/includes/fields/class-field-post-title.php'; +// require_once WPUF_ROOT . '/includes/fields/class-field-post-content.php'; +// require_once WPUF_ROOT . '/includes/fields/class-field-post-tags.php'; +// require_once WPUF_ROOT . '/includes/fields/class-field-post-excerpt.php'; +// require_once WPUF_ROOT . '/includes/fields/class-field-post-taxonomy.php'; +// require_once WPUF_ROOT . '/includes/fields/class-field-featured-image.php'; $field_settings['post_title'] = new WPUF_Form_Field_Post_Title(); - $field_settings['post_content'] = new WPUF_Form_Field_Post_Content(); + $field_settings['post_contt'] = new WPUF_Form_Field_Post_Content(); $field_settings['post_excerpt'] = new WPUF_Form_Field_Post_Excerpt(); $field_settings['featured_image'] = new WPUF_Form_Field_Featured_Image(); $taxonomy_templates = []; diff --git a/includes/Assets.php b/includes/Assets.php index d4115fcdc..271b14aff 100644 --- a/includes/Assets.php +++ b/includes/Assets.php @@ -106,6 +106,18 @@ public function get_styles() { 'admin' => [ 'src' => WPUF_ASSET_URI . '/css/admin.css', ], + 'registration-forms' => [ + 'src' => WPUF_ASSET_URI . '/css/registration-forms.css', + ], + 'module' => [ + 'src' => WPUF_ASSET_URI . '/css/admin/wpuf-forms.css', + ], + 'swiffy-slider' => [ + 'src' => WPUF_ASSET_URI . '/vendor/swiffy-slider/swiffy-slider' . $this->suffix . '.css', + 'version' => '1.6.0', + ], + + // wp_enqueue_style( 'swiffy-slider', WPUF_ASSET_URI . '/vendor/swiffy-slider/swiffy-slider' . $suffix . '.css', false, '1.6.0' ); ]; return apply_filters( 'wpuf_styles_to_register', $styles ); @@ -154,83 +166,113 @@ public function get_scripts() { // ]; // wp_localize_script( 'wpuf-form-builder-mixins', 'wpuf_mixins', $wpuf_mixins ); $scripts = [ - 'vue' => [ + 'vue' => [ 'src' => WPUF_ASSET_URI . '/vendor/vue/vue' . $this->suffix . '.js', 'in_footer' => true, 'version' => '2.2.4', ], - 'vuex' => [ + 'vuex' => [ 'src' => WPUF_ASSET_URI . '/vendor/vuex/vuex' . $this->suffix . '.js', 'in_footer' => true, 'version' => '2.2.1', ], - 'sweetalert2' => [ + 'sweetalert2' => [ 'src' => WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2' . $this->suffix . '.js', 'in_footer' => true, 'version' => '11.4.19', ], - 'jquery-scrollTo' => [ + 'jquery-scrollTo' => [ 'src' => WPUF_ASSET_URI . '/vendor/jquery.scrollTo/jquery.scrollTo' . $this->suffix . '.js', 'in_footer' => true, 'deps' => [ 'jquery' ], 'version' => '11.4.19', ], - 'selectize' => [ + 'selectize' => [ 'src' => WPUF_ASSET_URI . '/vendor/selectize/js/standalone/selectize' . $this->suffix . '.js', 'in_footer' => true, 'deps' => [ 'jquery' ], 'version' => '0.12.4', ], - 'toastr' => [ + 'toastr' => [ 'src' => WPUF_ASSET_URI . '/vendor/toastr/toastr' . $this->suffix . '.js', 'in_footer' => true, 'version' => '2.1.3', ], - 'clipboard' => [ + 'clipboard' => [ 'src' => WPUF_ASSET_URI . '/vendor/clipboard/clipboard' . $this->suffix . '.js', 'in_footer' => true, 'version' => '1.6.0', ], - 'tooltip' => [ + 'tooltip' => [ 'src' => WPUF_ASSET_URI . '/vendor/tooltip/tooltip' . $this->suffix . '.js', 'in_footer' => true, 'version' => '3.3.7', ], - 'form-builder-mixins' => [ + 'form-builder-mixins' => [ 'src' => WPUF_ASSET_URI . '/js/wpuf-form-builder-mixins' . $this->suffix . '.js', 'deps' => $form_builder_js_deps, 'in_footer' => true, ], - 'form-builder-components' => [ + 'form-builder-components' => [ 'src' => WPUF_ASSET_URI . '/js/wpuf-form-builder-components' . $this->suffix . '.js', 'deps' => [ 'wpuf-form-builder-mixins' ], 'in_footer' => true, ], - 'form-builder' => [ + 'form-builder' => [ 'src' => WPUF_ASSET_URI . '/js/wpuf-form-builder' . $this->suffix . '.js', 'deps' => [ 'wpuf-form-builder-components' ], 'in_footer' => true, ], - 'admin' => [ + 'admin' => [ 'src' => WPUF_ASSET_URI . '/js/wpuf-admin' . $this->suffix . '.js', 'deps' => [ 'jquery' ], ], - 'subscriptions' => [ + 'subscriptions' => [ 'src' => WPUF_ASSET_URI . '/js/subscriptions' . $this->suffix . '.js', 'deps' => [ 'jquery' ], 'in_footer' => true, ], - 'timepicker' => [ + 'timepicker' => [ 'src' => WPUF_ASSET_URI . '/js/jquery-ui-timepicker-addon.js', 'deps' => [ 'jquery-ui-datepicker' ], 'version' => '1.2', 'in_footer' => true, ], - 'form-builder-wpuf-forms' => [ + 'form-builder-wpuf-forms' => [ 'src' => WPUF_ASSET_URI . '/js/wpuf-form-builder-wpuf-forms.js', 'deps' => [ 'jquery', 'underscore', 'wpuf-vue', 'wpuf-vuex' ], 'in_footer' => true, ], + 'registration-forms' => [ + 'src' => WPUF_ASSET_URI . '/js/registration-forms.js', + 'deps' => [ 'jquery' ], + 'in_footer' => true, + ], + 'pro-admin' => [ + 'src' => WPUF_ASSET_URI . '/js/admin/wpuf-module.js', + 'deps' => [ 'jquery' ], + 'in_footer' => true, + ], + 'swiffy-slider' => [ + 'src' => WPUF_ASSET_URI . '/vendor/swiffy-slider/swiffy-slider.js', + 'deps' => [ 'jquery' ], + 'version' => '1.6.0', + 'in_footer' => true, + ], + 'swiffy-slider-extentions' => [ + 'src' => WPUF_ASSET_URI . '/vendor/swiffy-slider/swiffy-slider-extentions' . $this->suffix . '.js', + 'deps' => [ 'jquery' ], + 'version' => '1.6.0', + 'in_footer' => true, + ], + 'shortcode' => [ + 'src' => WPUF_ASSET_URI . '/js/admin-shortcode.js', + 'deps' => [ 'jquery' ], + ], + 'billing-address' => [ + 'src' => WPUF_ASSET_URI . '/js/billing-address.js', + 'deps' => [ 'jquery' ], + ], ]; return apply_filters( 'wpuf_scripts_to_register', $scripts ); diff --git a/includes/Free/WPUF_Free_Loader.php b/includes/Free/WPUF_Free_Loader.php index 7740d0811..07f4f2677 100644 --- a/includes/Free/WPUF_Free_Loader.php +++ b/includes/Free/WPUF_Free_Loader.php @@ -106,8 +106,8 @@ public function admin_menu() { public function admin_reg_forms_page() { $file_location = __DIR__ . '/templates/page-registration-form.php'; - wp_enqueue_style( 'wpuf-registration-forms', WPUF_ASSET_URI . '/css/registration-forms.css', [], WPUF_VERSION ); - wp_enqueue_script( 'wpuf-registration-forms', WPUF_ASSET_URI . '/js/registration-forms.js', [ 'jquery' ], WPUF_VERSION ); + // wp_enqueue_style( 'wpuf-registration-forms', WPUF_ASSET_URI . '/css/registration-forms.css', [], WPUF_VERSION ); + // wp_enqueue_script( 'wpuf-registration-forms', WPUF_ASSET_URI . '/js/registration-forms.js', [ 'jquery' ], WPUF_VERSION ); if ( file_exists( $file_location ) ) { include $file_location; @@ -949,8 +949,8 @@ public function modules_preview_page() { * @return void */ public function load_modules_scripts() { - wp_enqueue_style( 'wpuf-pro-modules', WPUF_ASSET_URI . '/css/admin/wpuf-module.css', false, WPUF_VERSION ); - wp_enqueue_script( 'wpuf_pro_admin', WPUF_ASSET_URI . '/js/admin/wpuf-module.js', [ 'jquery' ], WPUF_VERSION, true ); + // wp_enqueue_style( 'wpuf-pro-modules', WPUF_ASSET_URI . '/css/admin/wpuf-module.css', false, WPUF_VERSION ); + // wp_enqueue_script( 'wpuf_pro_admin', WPUF_ASSET_URI . '/js/admin/wpuf-module.js', [ 'jquery' ], WPUF_VERSION, true ); } /** @@ -1101,9 +1101,9 @@ public function modules_page_contents( $modules ) { $close_icon = file_exists( WPUF_ROOT . '/assets/images/x.svg' ) ? file_get_contents( WPUF_ROOT . '/assets/images/x.svg' ) : ''; $suffix = '.min'; - wp_enqueue_style( 'swiffy-slider', WPUF_ASSET_URI . '/vendor/swiffy-slider/swiffy-slider' . $suffix . '.css', false, '1.6.0' ); - wp_enqueue_script( 'swiffy-slider', WPUF_ASSET_URI . '/vendor/swiffy-slider/swiffy-slider' . $suffix . '.js', [ 'jquery' ], '1.6.0', true ); - wp_enqueue_script( 'swiffy-slider-extention', WPUF_ASSET_URI . '/vendor/swiffy-slider/swiffy-slider-extensions' . $suffix . '.js', [ 'jquery' ], '1.6.0', true ); + // wp_enqueue_style( 'swiffy-slider', WPUF_ASSET_URI . '/vendor/swiffy-slider/swiffy-slider' . $suffix . '.css', false, '1.6.0' ); + // wp_enqueue_script( 'swiffy-slider', WPUF_ASSET_URI . '/vendor/swiffy-slider/swiffy-slider' . $suffix . '.js', [ 'jquery' ], '1.6.0', true ); + // wp_enqueue_script( 'swiffy-slider-extention', WPUF_ASSET_URI . '/vendor/swiffy-slider/swiffy-slider-extensions' . $suffix . '.js', [ 'jquery' ], '1.6.0', true ); ?>