will contains title, description, and form it self * 'has_errors' : true/false => true when it has error, such as invalid input * buttons [ * submit [ * action: forminator_load_mailchimp_settings * data: { * step: 2 * }, * markup: '' * ], * disconnect [ * action: forminator_disconnect_mailchimp, * data: [], * markup: '' * ] * } * 'redirect': '', * 'is_close' : true if wizard should be closed * ] * * @param array $submitted_data Submitted data. * @param int $form_id Form Id. * * @since 1.1 * @return array */ private function sample_setting_first_step($submitted_data, $form_id) { } /** * SAMPLE of is_completed wizard step * * @since 1.1 * @return bool */ private function sample_setting_first_step_is_completed() { } /** * Override this function if you wanna make an addon allow multiple instance on 1 form * * @since 1.1 * @return bool */ public function is_allow_multi_on_form() { } /** * Check if more connections can be added for a specific module type. * * When an addon already has active connections on a module and supports * multiple connections, this controls whether the "add more" option * appears in the Connected Apps section. Returns false by default * so existing addon behavior is unchanged. Override in subclasses * to opt in. * * @since 1.54.0 * * @param string $module_type Module type (form, poll, quiz). * @return bool */ public function can_add_more_on_module($module_type) { } /** * Return button markup * * @since 1.1 * * @param string $label Text label. * @param string $classes Class names. * @param string $tooltip Content for Tooltip. * * @return string */ public static function get_button_markup($label, $classes = '', $tooltip = '') { } /** * Return link markup * * @since 1.13 * * @param string $url URL. * @param string $label Text for label. * @param string $target Target attribute. * @param string $classes Class names. * @param string $tooltip Content for tooltip. * * @return string */ public static function get_link_markup($url, $label, $target = '_blank', $classes = '', $tooltip = '') { } /** * Get Template as string * * @since 1.2 * * @param string $template Template path. * @param array $params Template variables. * * @return string */ public static function get_template($template, $params) { } /** * Register section(s) on integrations page * * @see wp-admin/admin.php?page=forminator-integrations * * @since 1.2 * * @return array */ public function register_integration_sections() { } /** * Get Callback of section on integration page * * When section not provided, it will return all callbacks * * @since 1.2 * * @param string $section Section. * * @return array|null */ public function get_integration_section_callback($section = \null) { } /** * Generate multi_id * * @since 1.2 * * @param int $form_id Form id. * * @return array */ private function generate_form_settings_multi_id($form_id) { } /** * Executor of before get form settings values, to be correctly mapped with poll_setting instance for poll_id * * @since 1.6.1 * * @param array $values Settings. * @param int $poll_id Poll Id. * * @return mixed */ final public function before_get_poll_settings_values($values, $poll_id) { } /** * Executor of before save form settings values, to be correctly mapped with poll_setting instance for poll_id * * @since 1.6.1 * * @param array $values Settings. * @param int $poll_id Poll Id. * * @return mixed */ final public function before_save_poll_settings_values($values, $poll_id) { } /** * Get Poll Setting Wizard * This function will process @see Forminator_Integration::settings_wizards() * Please keep in mind this function will only be called when @see Forminator_Integration::is_settings_available() return `true` * Which is doing check on @see Forminator_Integration::settings_wizards() requirements is passed * * @since 1.6.1 * * @param array $submitted_data Submitted data. * @param int $poll_id Poll Id. * @param int $current_step Current step. * @param int $step Step. * * @return array|mixed */ final public function get_poll_settings_wizard($submitted_data, $poll_id, $current_step = 0, $step = 0) { } /** * Get poll settings wizard steps * * @since 1.6.1 * * @param int $poll_id Poll Id. * * @return array */ private function get_poll_settings_steps($poll_id) { } /** * Get poll settings multi id * * @since 1.6.1 * * @param int $poll_id Poll Id. * * @return array */ private function get_poll_settings_multi_ids($poll_id) { } /** * Override this function if you wanna make an addon allow multiple instance on 1 poll * * @since 1.6.1 * @return bool */ public function is_allow_multi_on_poll() { } /** * Transform addon instance into array with form relation * * @since 1.1 * @since 1.2 generate new multi_id to allow reference on wizard * * @param int $poll_id Poll Id. * * @return array */ final public function to_array_with_poll($poll_id) { } /** * Override this function if you need to apply some conditional logic on it * By Default this function will check * * @param int $poll_id Poll Id. * * @return bool * @since 1.6.1 * * @see Forminator_Integration::settings_wizards() * @see Forminator_Integration_Poll_Settings::module_settings_wizards() * as valid multi array */ public function is_poll_settings_available($poll_id) { } /** * Generate multi_id * * @since 1.6.1 * * @param int $poll_id Poll Id. * * @return array */ private function generate_poll_settings_multi_id($poll_id) { } /** * Executor of before get form settings values, to be correctly mapped with quiz_setting instance for quiz_id * * @since 1.6.2 * * @param array $values Settings. * @param int $quiz_id Quiz Id. * * @return mixed */ final public function before_get_quiz_settings_values($values, $quiz_id) { } /** * Executor of before save form settings values, to be correctly mapped with quiz_setting instance for quiz_id * * @since 1.6.2 * * @param array $values Settings. * @param int $quiz_id Quiz Id. * * @return mixed */ final public function before_save_quiz_settings_values($values, $quiz_id) { } /** * Get Quiz Setting Wizard * This function will process @see Forminator_Integration::settings_wizards() * Please keep in mind this function will only be called when @see Forminator_Integration::is_settings_available() return `true` * Which is doing check on @see Forminator_Integration::settings_wizards() requirements is passed * * @since 1.6.2 * * @param array $submitted_data Submitted data. * @param int $quiz_id Quiz Id. * @param int $current_step Current step. * @param int $step Step. * * @return array|mixed */ final public function get_quiz_settings_wizard($submitted_data, $quiz_id, $current_step = 0, $step = 0) { } /** * Get quiz settings wizard steps * * @since 1.6.2 * * @param int $quiz_id Quiz Id. * * @return array */ private function get_quiz_settings_steps($quiz_id) { } /** * Get quiz settings multi id * * @since 1.6.2 * * @param int $quiz_id Quiz Id. * * @return array */ private function get_quiz_settings_multi_ids($quiz_id) { } /** * Override this function if you wanna make an addon allow multiple instance on 1 quiz * * @since 1.6.2 * @return bool */ public function is_allow_multi_on_quiz() { } /** * Transform addon instance into array with form relation * * @since 1.6.2 * * @param int $quiz_id Quiz Id. * * @return array */ final public function to_array_with_quiz($quiz_id) { } /** * Override this function if you need to apply some conditional logic on it * By Default this function will check * * @param int $quiz_id Quiz Id. * * @return bool * @since 1.6.2 * * @see Forminator_Integration::settings_wizards() * @see Forminator_Integration_Quiz_Settings::module_settings_wizards() * as valid multi array */ public function is_quiz_settings_available($quiz_id) { } /** * Generate multi_id * * @since 1.6.2 * * @param int $quiz_id Quiz Id. * * @return array */ private function generate_quiz_settings_multi_id($quiz_id) { } /** * Connection failed * * @return string */ final public function connection_failed() { } /** * Get success authorize content * * @return string */ protected function success_authorize() { } } /** * The Addon Default Holder. * * @package Forminator */ /** * Class Forminator_Integration_Default_Holder * Placeholder for nonexistent PRO Integration * * @since 1.1 */ class Forminator_Integration_Default_Holder extends \Forminator_Integration { /** * Forminator_Integration_Default_Holder instance * * @var Forminator_Integration_Default_Holder */ protected static $instance = \null; /** * Slug * * @var string */ protected $_slug = ''; /** * Version * * @var string */ protected $_version = '1.0'; /** * Min Forminator Version * * @var integer */ protected $_min_forminator_version = \PHP_INT_MAX; // make it un-activable. /** * Short title * * @var string */ protected $_short_title = ''; /** * Title * * @var string */ protected $_title = ''; /** * URL * * @var string */ protected $_url = ''; /** * Dynamically set fields form array * * @since 1.1 * * @param array $properties Properties. * * @return $this */ public function from_array($properties) { } /** * Mark non existent integration as not connected always * * @since 1.1 * @return bool */ public function is_connected() { } /** * Authorized Callback * * @return bool */ public function is_authorized() { } /** * Mark non existent integration as form not connected always * * @since 1.1 * @param int $module_id Form ID. * @param string $module_slug Module type. * @param bool $check_lead Check is lead connected or not. * @return bool */ public function is_module_connected($module_id, $module_slug = 'form', $check_lead = \false) { } /** * Make this not activable * * @since 1.1 * @return bool */ public function check_is_activable() { } } /** * The Forminator_Integration_Hooks class. * * @package Forminator */ /** * Class Forminator_Integration_Hooks */ abstract class Forminator_Integration_Hooks { /** * Integration Instance * * @since 1.1 * @var Forminator_Integration */ protected $addon; /** * Customizable submit form error message * * @since 1.1 * @var string */ protected $submit_error_message = ''; /** * Form settings instance * * @since 1.1 * @var Forminator_Integration_Settings|null */ protected $settings_instance; /** * Prefix for calculation element * * @since 1.7 */ const CALCULATION_ELEMENT_PREFIX = 'calculation-'; /** * Prefix for stripe element * * @since 1.7 */ const STRIPE_ELEMENT_PREFIX = 'stripe-'; /** * Current Module ID * * @since 1.1 * @var int */ protected $module_id; /** * Custom Module Model * * @since 1.2 * @var Forminator_Form_Model|Forminator_Poll_Model|Forminator_Quiz_Model */ protected $module; /** * Forminator_Integration_Hooks constructor. * * @param Forminator_Integration $addon Integration. * @param int $module_id Module ID. * * @since 1.1 * @throws Forminator_Integration_Exception When module ID is invalid. */ public function __construct(\Forminator_Integration $addon, int $module_id) { } /** * Override this function to add another entry field to storage * * Return an multi array with format (at least, or it will be skipped) * [ * 'name' => NAME, * 'value' => VALUE', => can be array/object/scalar, it will serialized on storage * ], * [ * 'name' => NAME, * 'value' => VALUE' * ] * * @since 1.1 * @since 1.2 Add `$current_entry_fields` as optional param on inherit * * @param array $submitted_data Submitted data. * @param array $current_entry_fields default entry fields that will be saved, * its here for reference, this function doesnt need to return it * only return new entry fields. * @param array $entry Entry. * * @return array */ public function add_entry_fields($submitted_data, $current_entry_fields, $entry) { } /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array * @throws Forminator_Integration_Exception When there is an Integration error. */ protected function custom_entry_fields(array $submitted_data, array $current_entry_fields): array { } /** * Return special addon args * * @param array $submitted_data Submitted data. * @param array $addon_setting_values Integration settings. * @return array */ protected function get_special_addon_args($submitted_data, $addon_setting_values) { } /** * Add new Column on header of export file * for instance, `ActiveCampaign Info` * * @return array */ public function on_export_render_title_row(): array { } /** * Loop through addon meta data on multiple connections * * @since 1.0 * * @param array $addon_meta_datas Addon meta. * * @return array */ protected function on_render_entry_multi_connection($addon_meta_datas) { } /** * Integration will add a column that give user information whether sending data to the Integration successfully or not * It will only add one column even its multiple connection, every connection will be separated by comma * * @since 1.0 * * @param Forminator_Form_Entry_Model $entry_model Form entry model. * @param array $addon_meta_data Addon meta data. * * @return array */ public function on_export_render_entry(\Forminator_Form_Entry_Model $entry_model, $addon_meta_data) { } /** * Format additional entry item as label and value arrays * * - Integration Name : its defined by user when they are adding integration on their module * - Sent To {Integration name} : will be Yes/No value, that indicates whether sending data to the addon was successful * - Info : Text that are generated by addon when building and sending data to it * - Below subentries will be added if full log enabled, @see Forminator_Integration::is_show_full_log() * - API URL : URL that wes requested when sending data to the addon * - Data sent to {Integration name} : json encoded body request that was sent * - Data received from {Integration name} : json encoded body response that was received * * @param array $addon_meta_data Integration metadata. * * @return array */ protected function get_additional_entry_item($addon_meta_data) { } /** * It wil add new row on entry table of submission page, with couple of sub-entries * sub-entries included are defined in @see Forminator_Integration_Hooks::get_additional_entry_item() * * @since 1.0 * * @param Forminator_Form_Entry_Model $entry_model Form entry model. * @param array $addon_meta_data Addon meta. * * @return array */ public function on_render_entry(\Forminator_Form_Entry_Model $entry_model, $addon_meta_data) { } /** * Get Integration meta data, will be recursive if meta data is multiple because of multiple connection added * * @since 1.6.2 * * @param array $addon_meta_data All meta data. * @param string $key Meta key. * @param mixed $default_value Default returning value. * * @return string */ protected function get_from_addon_meta_data($addon_meta_data, $key, $default_value = '') { } /** * Override this function to execute action before submission deleted * * If function generate output, it will output-ed * race condition between addon probably happen * its void function, so return value will be ignored, and forminator process will always continue * unless it generates unrecoverable error, so please be careful on extending this function * * @since 1.1 * * @param Forminator_Form_Entry_Model $entry_model Forminator Entry Model. * @param array $addon_meta_data Integration meta data. */ public function on_before_delete_entry(\Forminator_Form_Entry_Model $entry_model, $addon_meta_data) { } /** * Override this function to execute action on submit module * * Return true will continue forminator process, * return false will stop forminator process, * and display error message to user @see Forminator_Integration_Hooks::get_submit_error_message() * * @since 1.1 * * @param array $submitted_data Submitted data. * * @return bool */ public function on_module_submit($submitted_data) { } /** * Return submitted data. * * @param array $submitted_data Submitted data. * @param int $module_id Module ID. * @param array $current_entry_fields Current entry fields. * @return array */ protected function prepare_submitted_data(array $submitted_data, int $module_id, array $current_entry_fields): array { } /** * Return submitted data. * * @param array $submitted_data Submitted data. * @param int $module_id Module ID. * @param array $current_entry_fields Current entry fields. * @return array */ protected function reformat_submitted_data(array $submitted_data, int $module_id, array $current_entry_fields): array { } /** * Prepare field value according its type * * @param object $field Field properties. * @param string $value Origin value. * @return bool|float|int|string */ protected function prepare_addon_field_format($field, $value) { } /** * Maybe add group fields which were cloned by repeater. * * @since 1.53.0 * * @param array $form_fields Form fields. * @return array */ protected static function maybe_add_group_cloned_fields($form_fields) { } } /** * The Forminator_Integration_Form_Hooks class. * * @package Forminator */ /** * Class Forminator_Integration * Any change(s) to this file is subject to: * - Properly Written DocBlock! (what is this, why is that, how to be like those, etc, as long as you want!) * - Properly Written Changelog! * * If you override any of these method, please add necessary hooks in it, * Which you can see below, as a reference and keep the arguments signature. * If needed you can call these method, as parent::method_name(), * and add your specific hooks. * * @since 1.1 */ abstract class Forminator_Integration_Form_Hooks extends \Forminator_Integration_Hooks { /** * Module slug * * @var string */ protected static string $slug = 'form'; /** * Override this function to execute action before fields rendered * * If function generate output, it will output-ed, * race condition between addon probably happen. * Its void function, so return value will be ignored, and forminator process will always continue, * unless it generates unrecoverable error, so please be careful on extending this function. * If you want to `wp_enqueue_script` this might be the best place. * * @since 1.1 */ public function on_before_render_form_fields() { } /** * Override this function to execute action after all form fields rendered * * If function generate output, it will output-ed * race condition between addon probably happen * its void function, so return value will be ignored, and forminator process will always continue * unless it generates unrecoverable error, so please be careful on extending this function * * @since 1.1 */ public function on_after_render_form_fields() { } /** * Override this function to execute action after html markup form rendered completely * * If function generate output, it will output-ed * race condition between addon probably happen * its void function, so return value will be ignored, and forminator process will always continue * unless it generates unrecoverable error, so please be careful on extending this function * * @since 1.1 */ public function on_after_render_form() { } /** * Override this function to execute action after entry saved * * Its void function, so return value will be ignored, and forminator process will always continue * unless it generates unrecoverable error, so please be careful on extending this function * * @since 1.1 * * @param Forminator_Form_Entry_Model $entry_model Form entry model. */ public function after_entry_saved(\Forminator_Form_Entry_Model $entry_model) { } /** * Get Submit form error message * * @since 1.1 * @return string */ public function get_submit_error_message() { } /** * Find Meta value from entry fields * * @since 1.7 * * @param string $element_id Element Id. * @param array $form_entry_fields Form entry fields. * * @return array */ public static function find_meta_value_from_entry_fields($element_id, $form_entry_fields) { } /** * Check if element_id is calculation type * * @since 1.7 * * @param string $element_id Element Id. * * @return bool */ public static function element_is_calculation($element_id) { } /** * Find calculations fields from entry fields * * @since 1.7 * * @param array $form_entry_fields Form entry fields. * * @return array */ public static function find_calculation_fields_meta_from_entry_fields($form_entry_fields) { } /** * Check if element_id is stripe type * * @since 1.7 * * @param string $element_id Element Id. * * @return bool */ public static function element_is_stripe($element_id) { } /** * Check if element_id is Datepicker * * @since 1.15.12 * * @param string $element_id Element Id. * * @return bool */ public static function element_is_datepicker($element_id) { } /** * Check if element_id is Multi option * * @since 1.49 * * @param string $element_id Element Id. * @param int $form_id Form Id. * * @return bool */ public static function element_is_multi_option($element_id, $form_id) { } /** * Check if element_id is Signature * * @param string $element_id Field slug. * * @return bool */ public static function element_is_signature($element_id) { } /** * Find stripe fields from entry fields * * @since 1.7 * * @param array $form_entry_fields Form entry fields. * * @return array */ public static function find_stripe_fields_meta_from_entry_fields($form_entry_fields) { } /** * Check if element_id is upload * * @since 1.15.7 * * @param string $element_id Element Id. * * @return bool */ public static function element_is_upload($element_id) { } /** * Return field data value as string * * @since 1.15.7 * * @param string $element_id Element Id. * @param array $element Element. * * @return bool */ public static function get_field_value($element_id, $element) { } /** * Return date value as Unix timestamp in milliseconds * * @since 1.15.12 * * @param string $element_id Element Id. * @param mixed $value Field value. * @param int $form_id Form Id. * * @return bool */ public static function get_date_in_ms($element_id, $value, $form_id) { } /** * Prepare field value for passing to addon * * @param string $element_id Field slug. * @param mixed $form_entry_fields Form entry fields. * @param array $submitted_data Submitted data. * @return string */ public static function prepare_field_value_for_addon($element_id, $form_entry_fields, $submitted_data) { } /** * Prepare Stripe subscription id for passing to addon * * @param array $submitted_data Submitted data. * @param array $form_entry_fields Form entry fields. * @return array */ public static function prepare_stripe_subscription_id_for_addon($submitted_data, $form_entry_fields) { } } /** * The Activecampaign Form Hooks. * * @package Forminator */ /** * Class Forminator_Activecampaign_Form_Hooks * * @since 1.0 Activecampaign Integration */ class Forminator_Activecampaign_Form_Hooks extends \Forminator_Integration_Form_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on contact sync to ActiveCampaign * * @since 1.0 Activecampaign Integration * @since 1.7 Add $form_entry_fields * * @param string $connection_id ID of current connection. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $form_entry_fields Form entry fields. * * @return array `is_sent` true means its success send data to ActiveCampaign, false otherwise. * * @throws Forminator_Integration_Exception Throws Integration exception. */ private function get_status_on_contact_sync($connection_id, $submitted_data, $connection_settings, $form_entry_fields) { } /** * It will delete contact on ActiveCampaign list * * @since 1.0 ActiveCampaign Integration * * @param Forminator_Form_Entry_Model $entry_model Entry model. * @param array $addon_meta_data Addon meta data. * * @return bool */ public function on_before_delete_entry(\Forminator_Form_Entry_Model $entry_model, $addon_meta_data) { } } /** * The Forminator_Integration_Settings class. * * @package Forminator */ /** * Class Forminator_Integration_Settings * Any change(s) to this file is subject to: * - Properly Written DocBlock! (what is this, why is that, how to be like those, etc, as long as you want!) * - Properly Written Changelog! * * @since 1.1 */ abstract class Forminator_Integration_Settings { /** * Current Module ID * * @since 1.1 * @var int */ protected $module_id; /** * Integration instance * * @since 1.1 * @var Forminator_Integration */ protected $addon; /** * Module settings for addon * * @since 1.1 * @var array */ protected $addon_settings = array(); /** * Get HTML select-options * * @param object $options Options. * @param string $selected_value Saved value. * @return string */ public static function get_select_html($options, $selected_value = '') { } /** * Get HTML checkbox-options * * @param object $options Options. * @param string $name Name attribute. * @param array $selected_values Saved values. * @return string */ public static function get_checkboxes_html($options, $name, $selected_values = array()) { } /** * Get HTML radio-options * * @param object $options Options. * @param string $name Name attribute. * @param array $selected_value Saved values. * @return string */ public static function get_radios_html($options, $name, $selected_value = '') { } /** * Get HTML for refresh button * * @return string */ public static function refresh_button() { } /** * Meta key that will be used to save addon setting on WP post_meta * * @return string */ final public function get_settings_meta_key() { } /** * Replace '-' to '_' in keys because some integrations don't support dashes like tray.io and workato. * * @param array $array_value Original array. * @param string $endpoint Endpoint URL. */ public static function replace_dashes_in_keys($array_value, $endpoint) { } /** * Get HTML for GDPR fields * * @param array $current_data Saved data. * @return string */ protected static function gdpr_fields_html($current_data) { } /** * Step mapping fields on wizard * * @param array $submitted_data Submitted data. * @return array */ public function get_map_fields($submitted_data) { } /** * Validate submitted data by user as expected by merge field on addon mail list * * @param array $addon_fields_list List of Mailjet fields. * @param array $post_data POST data. * * @return array current addon form settings * @throws Forminator_Integration_Exception When there is an integration error. */ public function step_map_fields_validate($addon_fields_list, $post_data) { } /** * Save module settings * * @param type $addon_settings Integration settings. */ final public function save_module_settings_values($addon_settings = \null) { } /** * Get fields for specific field type. * * @param string $type Field type. * @return array */ protected function get_fields_for_type($type = '') { } /** * Get HTML for header on Choose List step. * * @param string $error_message Error message. * @return array */ protected static function get_choose_list_header($error_message) { } /** * Get HTML for Choose list field * * @param array $current_data Saved data. * @param array $lists Lists. * @param string $list_error Error messages. * @return string */ protected static function get_choose_list_field($current_data, $lists, $list_error) { } /** * Get HTML for Double Opt-in field * * @param array $current_data Saved data. * @return string */ protected static function get_double_optin_field($current_data) { } /** * Override this function to generate multiple id on module settings * Default is the uniqid * * @since 1.2 * @return string */ public function generate_multi_id() { } /** * Check if connection to module completed * * @since 1.0 * @param string $multi_id Multi ID. * * @return bool */ public function is_multi_id_completed(string $multi_id): bool { } /** * Get Module settings value * its already hooked with * * @see before_get_settings_values * * @since 1.1 * * @return array */ final public function get_settings_values() { } /** * Force Close Wizard with message * * @since 1.2 * * @return array */ public function get_force_closed_wizard() { } /** * Disconnect Module with this addon * Override when needed * * @since 1.1 * * @param array $submitted_data Submitted data. */ public function disconnect_module($submitted_data) { } /** * Override this function to retrieve your multiple ids on module settings * Default is the array keys as id and label of settings_values * * @return array */ public function get_multi_ids(): array { } /** * Get multi Setting value of multi_id * Override when needed * * @since 1.2 * * @param int $multi_id Multi Id. * @param string $key key. * @param mixed $default_value Default value. * * @return mixed|string */ public function get_multi_id_settings($multi_id, $key, $default_value = '') { } /** * Properties exist * * @param mixed $submitted_data Submitted data. * @param mixed $properties Properties. * @return bool */ protected function if_properties_exist($submitted_data, $properties) { } /** * Check if pick name step completed * * @since 1.0 * @param array $submitted_data Submitted data. * @return bool */ public function setup_name_is_completed($submitted_data) { } /** * Check if setup list completed * * @since 1.0 * @param array $submitted_data Submitted data. * @return bool */ public function select_list_is_completed($submitted_data) { } /** * Append multi settings or replace multi settings * * @since 1.2 * * @param int $multi_id Multi id. * @param array $settings Settings. * @param bool $replace Replace. */ public function save_multi_id_setting_values($multi_id, $settings, $replace = \false) { } /** * Find one active connection on current module * Override when needed * * @since 1.2 * @return bool|array false on no connection, or settings on available */ public function find_one_active_connection() { } /** * Has lead * * @return bool */ public function has_lead() { } /** * Get input of Map Fields * its table with html select options as input * * @param array $addon_fields Integration fields. * @param array $fields_map Fields map. * @return string HTML table */ protected function get_input_map_fields($addon_fields, $fields_map) { } /** * Get additional addon fields. * * @return array */ protected function get_additional_addon_fields() { } /** * Get custom addon fields. * * @return array */ protected function get_addon_custom_fields() { } /** * Get prepared array of Integration lists * * @return array */ protected function get_prepared_lists(): array { } } /** * The Forminator_Integration_Form_Settings class. * * @package Forminator */ /** * Class Forminator_Integration_Form_Settings * Any change(s) to this file is subject to: * - Properly Written DocBlock! (what is this, why is that, how to be like those, etc, as long as you want!) * - Properly Written Changelog! * * @since 1.1 */ abstract class Forminator_Integration_Form_Settings extends \Forminator_Integration_Settings { /** * Current Form Settings * * @since 1.1 * @var array */ protected $form_settings = array(); /** * Current Form Fields * * @var array */ protected $form_fields = array(); /** * Current Module instance * * @var Forminator_Base_Form_Model|null */ protected $module = \null; /** * An addon can be force disconnected from form, if its not met requirement, or data changed externally * example : * - Mail List deleted on mailchimp server app * - Fields removed * * @since 1.1 * @var bool */ protected $is_force_form_disconnected = \false; /** * Reason of Force disonnected * * @since 1.1 * @var string */ protected $force_form_disconnected_reason = ''; /** * Module slug * * @var string */ protected static $module_slug = 'form'; /** * Forminator_Integration_Form_Settings constructor. * * @since 1.1 * * @param Forminator_Integration $addon Class Forminator_Integration. * @param int $form_id Form Id. * * @throws Forminator_Integration_Exception When there is an addon error. */ public function __construct(\Forminator_Integration $addon, $form_id) { } /** * Override this function if addon need to do something with addon form setting values * * @example transform, load from other storage ? * called when rendering tab on form settings * * @since 1.1 * * @param array $values Settings. * * @return mixed */ public function before_get_form_settings_values($values) { } /** * Override this function if addon need to do something with addon form setting values * * @example transform, load from other storage ? * called when rendering tab on form settings * @since 1.1 * * @param array $values Settings. * * @return mixed */ public function before_save_form_settings_values($values) { } /** * Get status of force disconnected from WP post_meta * * @since 1.1 * @return bool */ final public function is_force_form_disconnected() { } /** * Get disconnected reason * * @since 1.1 * @return string */ final public function force_form_disconnected_reason() { } /** * Force form to be disconnected with addon * * @since 1.1 * * @param string $reason Reason for disconnect. */ final public function force_form_disconnect($reason) { } /** * Save disconnect reason to WP post_meta * * @since 1.1 */ final public function save_force_form_disconnect_reason() { } /** * Remove disconnect reason form WP post_meta * * @since 1.1 */ final public function remove_saved_force_form_disconnect_reason() { } /** * Get current form settings * * @since 1.1 * @return array */ final public function get_form_settings() { } /** * Get current form fields * * @since 1.1 * @return array */ final public function get_form_fields() { } /** * Override this function to set wizardable settings * Default its and empty array which is indicating that Integration doesnt have settings * * Its multi array, with numerical key, start with `0` * Every step on wizard, will consist at least * - `callback` : when application requesting wizard, Forminator will do `call_user_func` on this value, with these arguments * - `$submitted_data` : array of submitted data POST-ed by user * - `$form_id` : current form_id when called on `Form Settings` or 0 when called on Global Settings * - `is_completed` : when application requesting wizard, will check if `Previous Step` `is_completed` by doing `call_user_func` on its value * this function should return `true` or `false` * * @since 1.1 * @return array */ public function module_settings_wizards() { } /** * Get form settings data to export * * Default is from post_meta, override when needed * * @since 1.4 * * @return array */ public function to_exportable_data() { } /** * Executed when form settings imported * * Default is save imported data to post_meta, override when needed * * @since 1.4 * * @param mixed $import_data Import data. * @throws Forminator_Integration_Exception When there is an integration error. */ public function import_data($import_data) { } /** * Mailchimp Address type fields array * * @since 1.0 Mailchimp Integration * @return array */ public function mail_address_fields() { } /** * Get current Module instance * * @return Forminator_Base_Form_Model|null */ public function get_module() { } } /** * The Activecampaign Settings Trait. * * @package Forminator */ /** * Trait for common methods for Activecampaign settings classes * * @since 1.30 * @package Activecampaign Integration */ /** * Trait Forminator_Activecampaign_Settings_Trait */ trait Forminator_Activecampaign_Settings_Trait { /** * Custom Fields. * * @var Forminator_Activecampaign_CustomField * @since 1.7 Activecampaign Custom Fields */ protected $custom_fields; /** * Activecampaign Quiz Settings wizard * * @since 1.0 Activecampaign Integration * @return array */ public function module_settings_wizards() { } /** * Set up Connection Name * * @since 1.0 Activecampaign Integration * * @param array $submitted_data Submitted data. * * @return array * @throws Forminator_Integration_Exception Integration Exception. */ public function pick_name($submitted_data) { } /** * Set up Contact List * * @since 1.0 Activecampaign Integration * * @param array $submitted_data Submitted data. * * @return array * @throws Forminator_Integration_Exception Integration Exception. */ public function select_list($submitted_data) { } /** * Set up fields map * * @since 1.0 Activecampaign Integration * * @param array $submitted_data Submitted data. * * @return array * @throws Forminator_Integration_Exception Integration Exception. */ public function map_fields($submitted_data) { } /** * Check if fields mapped * * @since 1.0 Activecampaign Integration * * @param array $submitted_data Submitted data. * * @return bool */ public function map_fields_is_completed($submitted_data) { } /** * Set up options * * Contains : * - Double opt-in module, * - tags, * - instant-responder, * - send last broadcast * * @since 1.0 Activecampaign Integration * * @param array $submitted_data Submitted data. * * @return array * @throws Forminator_Integration_Exception Integration Exception. */ public function setup_options($submitted_data) { } /** * Check if set up options completed * * @since 1.0 Activecampaign Integration * * @param array $submitted_data Submitted data. * * @return bool */ public function setup_options_is_completed($submitted_data) { } } /** * The Activecampaign Form Settings. * * @package Forminator */ /** * Class Forminator_Activecampaign_Form_Settings * Handle how form settings displayed and saved * * @since 1.0 Activecampaign Integration */ class Forminator_Activecampaign_Form_Settings extends \Forminator_Integration_Form_Settings { use \Forminator_Activecampaign_Settings_Trait; } /** * The Forminator_Integration_Quiz_Hooks class. * * @package Forminator */ /** * Class Forminator_Integration_Quiz_Hooks * Any change(s) to this file is subject to: * - Properly Written DocBlock! (what is this, why is that, how to be like those, etc, as long as you want!) * - Properly Written Changelog! * * If you override any of these method, please add necessary hooks in it, * Which you can see below, as a reference and keep the arguments signature. * If needed you can call these method, as parent::method_name(), * and add your specific hooks. * * @since 1.6.2 */ abstract class Forminator_Integration_Quiz_Hooks extends \Forminator_Integration_Hooks { /** * Module slug * * @var string */ protected static string $slug = 'quiz'; /** * Lead settings instance * * @since 1.6.2 * @var Forminator_Integration_Quiz_Settings|null */ protected $lead_settings_instance; /** * Lead Model * * @since 1.6.2 * @var Forminator_Form_Model */ protected $lead_model; /** * Forminator_Integration_Quiz_Hooks constructor. * * @param Forminator_Integration $addon Integration. * @param int $module_id Module ID. * * @since 1.6.2 * @throws Forminator_Integration_Exception When module ID is invalid. */ public function __construct(\Forminator_Integration $addon, int $module_id) { } /** * Override this function to execute action after entry saved * * Its void function, so return value will be ignored, and forminator process will always continue * unless it generates unrecoverable error, so please be careful on extending this function * * @since 1.6.2 * * @param Forminator_Form_Entry_Model $entry_model Form entry Model. */ public function after_entry_saved(\Forminator_Form_Entry_Model $entry_model) { } /** * Get Submit quiz error message * * @since 1.6.2 * @return string */ public function get_submit_error_message() { } /** * Check if element_id is stripe type * * @since 1.7 * * @param string $element_id Element Id. * * @return bool */ public static function element_is_stripe($element_id) { } /** * Check if element_id is calculation type * * @since 1.7 * * @param string $element_id Element Id. * * @return bool */ public static function element_is_calculation($element_id) { } /** * Return submitted data. * * @param array $submitted_data Submitted data. * @param int $module_id Module ID. * @param array $current_entry_fields Current entry fields. * @return array */ protected function prepare_submitted_data(array $submitted_data, int $module_id, array $current_entry_fields): array { } /** * Get answer from quiz entry data * * @param mixed $quiz_entry_data Quiz entry data. * @return string */ public static function get_answer($quiz_entry_data) { } } /** * The Activecampaign Quiz Hooks. * * @package Forminator */ /** * Class Forminator_Activecampaign_Quiz_Hooks * * @since 1.0 Activecampaign Integration */ class Forminator_Activecampaign_Quiz_Hooks extends \Forminator_Integration_Quiz_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on contact sync to ActiveCampaign * * @since 1.0 Activecampaign Integration * @since 1.7 Add $form_entry_fields * * @param string $connection_id ID of current connection. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $form_entry_fields Form Entry fields. * * @return array `is_sent` true means its success send data to ActiveCampaign, false otherwise. * * @throws Forminator_Integration_Exception Exception. */ private function get_status_on_contact_sync($connection_id, $submitted_data, $connection_settings, $form_entry_fields) { } /** * It will delete contact on ActiveCampaign list * * @since 1.0 ActiveCampaign Integration * * @param Forminator_Form_Entry_Model $entry_model Form entry model. * @param array $addon_meta_data Addon meta data. * * @return bool */ public function on_before_delete_entry(\Forminator_Form_Entry_Model $entry_model, $addon_meta_data) { } } /** * The Forminator_Integration_Quiz_Settings class. * * @package Forminator */ /** * Class Forminator_Integration_Quiz_Settings * Any change(s) to this file is subject to: * - Properly Written DocBlock! (what is this, why is that, how to be like those, etc, as long as you want!) * - Properly Written Changelog! * * @since 1.6.2 */ abstract class Forminator_Integration_Quiz_Settings extends \Forminator_Integration_Settings { /** * Current Quiz Settings * * @since 1.6.2 * @var array */ protected $quiz_settings = array(); /** * An addon can be force disconnected from quiz, if its not met requirement, or data changed externally * example : * - Mail List deleted on mailchimp server app * - Fields removed * * @since 1.6.2 * @var bool */ protected $is_force_quiz_disconnected = \false; /** * Reason of Force disconnected * * @since 1.6.2 * @var string */ protected $force_quiz_disconnected_reason = ''; /** * Quiz Model * * @since 1.6.2 * @var Forminator_Quiz_Model|null */ protected $quiz = \null; /** * Current lead fields * * @since 1.14 * @var Forminator_Form_Model|null */ protected $form_fields; /** * Current lead settings * * @since 1.14 * @var Forminator_Form_Model|null */ protected $form_settings; /** * Module slug * * @var string */ protected static $module_slug = 'quiz'; /** * Forminator_Integration_Quiz_Settings constructor. * * @since 1.6.2 * * @param Forminator_Integration $addon Class Forminator_Integration. * @param int $quiz_id Quiz Id. * * @throws Forminator_Integration_Exception When there is an Integration error. */ public function __construct(\Forminator_Integration $addon, $quiz_id) { } /** * Override this function if addon need to do something with addon quiz setting values * * @example transform, load from other storage ? * called when rendering tab on quiz settings * * @since 1.6.2 * * @param mixed $values Settings. * * @return mixed */ public function before_get_quiz_settings_values($values) { } /** * Override this function if addon need to do something with addon quiz setting values * * @example transform, load from other storage ? * called when rendering tab on quiz settings * @since 1.6.2 * * @param mixed $values Settings. * * @return mixed */ public function before_save_quiz_settings_values($values) { } /** * Get status of force disconnected from WP post_meta * * @since 1.6.2 * @return bool */ final public function is_force_quiz_disconnected() { } /** * Get disconnected reason * * @since 1.6.2 * @return string */ final public function force_quiz_disconnected_reason() { } /** * Force quiz to be disconnected with addon * * @since 1.6.2 * * @param string $reason Reason for disconnect. */ final public function force_quiz_disconnect($reason) { } /** * Save disconnect reason to WP post_meta * * @since 1.6.2 */ final public function save_force_quiz_disconnect_reason() { } /** * Remove disconnect reason quiz WP post_meta * * @since 1.6.2 */ final public function remove_saved_force_quiz_disconnect_reason() { } /** * Get current quiz settings * * @since 1.6.2 * @return array */ final public function get_quiz_settings() { } /** * Has lead * * @return bool */ public function has_lead() { } /** * Get current form settings * * @since 1.1 * @return array */ final public function get_form_settings() { } /** * Get current lead form fields * * @since 1.1 * @return array */ final public function get_form_fields() { } /** * Get current lead form fields * * @since 1.1 * @return array */ final public function get_quiz_fields() { } /** * Override this function to set wizardable settings * Default its and empty array which is indicating that Integration doesnt have settings * * Its multi array, with numerical key, start with `0` * Every step on wizard, will consist at least * - `callback` : when application requesting wizard, Forminator will do `call_user_func` on this value, with these arguments * - `$submitted_data` : array of submitted data POST-ed by user * - `$quiz_id` : current quiz_id when called on `Quiz Settings` or 0 when called on Global Settings * - `is_completed` : when application requesting wizard, will check if `Previous Step` `is_completed` by doing `call_user_func` on its value * this function should return `true` or `false` * * @since 1.6.2 * @return array */ public function module_settings_wizards() { } /** * Get quiz settings data to export * * Default is from post_meta, override when needed * * @since 1.6.2 * * @return array */ public function to_exportable_data() { } /** * Executed when quiz settings imported * * Default is save imported data to post_meta, override when needed * * @since 1.6.2 * * @param mixed $import_data Import data. * @throws Forminator_Integration_Exception When there is an Integration error. */ public function import_data($import_data) { } /** * Mailchimp Address type fields array * * @since 1.0 Mailchimp Integration * @return array */ public function mail_address_fields() { } /** * Get fields for spesific addon field type * * @param string $type Field type. * @return array */ protected function get_fields_for_type($type = '') { } } /** * The Activecampaign Quiz Settings. * * @package Forminator */ /** * Class Forminator_Activecampaign_Quiz_Settings * Handle how quiz settings displayed and saved * * @since 1.0 Activecampaign Integration */ class Forminator_Activecampaign_Quiz_Settings extends \Forminator_Integration_Quiz_Settings { use \Forminator_Activecampaign_Settings_Trait; } /** * Class Forminator_Activecampaign * Activecampaign Integration Main Class * * @since 1.0 Activecampaign Integration */ final class Forminator_Activecampaign extends \Forminator_Integration { /** * Forminator Activecampaign * * @var Forminator_Activecampaign |null */ protected static $instance = \null; /** * Slug * * @var string */ protected $_slug = 'activecampaign'; /** * Version * * @var string */ protected $_version = \FORMINATOR_ADDON_ACTIVECAMPAIGN_VERSION; /** * Forminator version * * @var string */ protected $_min_forminator_version = '1.1'; /** * Short title * * @var string */ protected $_short_title = 'ActiveCampaign'; /** * Title * * @var string */ protected $_title = 'ActiveCampaign'; /** * Position * * @var integer */ protected $_position = 8; /** * API * * @var Forminator_Activecampaign_Wp_Api|null */ private static $api = \null; /** * Connected account * * @var mixed */ public $connected_account = \null; /** * Sensitive key names that require encryption. * * @var array */ protected $_sensitive_keys = array('api_key'); /** * Forminator_Activecampaign constructor. * * @since 1.0 Activecampaign Integration */ public function __construct() { } /** * Override settings available, * * @since 1.0 Activecampaign Integration * @return bool */ public function is_settings_available() { } /** * Flag enable delete contact before delete entries * * Its disabled by default * * @since 1.0 Activecampaign Integration * @return bool */ public static function is_enable_delete_contact() { } /** * Allow multiple connection on one form * * @since 1.0 Activecampaign Integration * @return bool */ public function is_allow_multi_on_form() { } /** * Setting wizard of Active Campaign * * @since 1.0 Activecampaign Integration * @return array */ public function settings_wizards() { } /** * Set up API Wizard * * @since 1.0 Active Campaign Integration * * @param array $submitted_data Submitted data. * * @param int $form_id Form Id. * * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function setup_api($submitted_data, $form_id = 0) { } /** * Authorized * * @return bool */ public function is_authorized() { } /** * Validate API URL * * @since 1.0 Active Campaign * * @param string $api_url API URL. * * @return string * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function validate_api_url($api_url) { } /** * Validate API Key * * @since 1.0 Active Campaign * * @param string $api_key API Key. * * @return string * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function validate_api_key($api_key) { } /** * Validate API * * @since 1.0 Active Campaign Integration * * @param string $api_url API URL. * @param string $api_key API key. * * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function validate_api($api_url, $api_key) { } /** * Get API Instance * * @since 1.0 Active Campaign Integration * * @param string $api_url API URL. * @param string $api_key API key. * * @return Forminator_Activecampaign_Wp_Api * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_api($api_url = \null, $api_key = \null) { } /** * Before saving the settings. * * @param mixed $values Settings values. * @return mixed */ public function before_save_settings_values($values) { } /** * Allow multiple connection on one quiz * * @since 1.6.1 * @return bool */ public function is_allow_multi_on_quiz() { } } /** * The Forminator Activecampaign Wp_Api. * * @package Forminator */ /** * Class Forminator_Activecampaign_Wp_Api */ class Forminator_Activecampaign_Wp_Api { /** * Activecampaign endpoint of api * * @var string */ private $_endpoint = ''; /** * Activecampaign API Key api * * @var string */ private $_api_key = ''; /** * Last data sent to activecampaign * * @since 1.0 Activecampaign Integration * @var array */ private $_last_data_sent = array(); /** * Last data received from activecampaign * * @since 1.0 Activecampaign Integration * @var array */ private $_last_data_received = array(); /** * Last URL requested * * @since 1.0 Activecampaign Integration * @var string */ private $_last_url_request = ''; /** * Forminator_Activecampaign_Wp_Api constructor. * * @since 1.0 Activecampaign Integration * * @param string $_endpoint End point. * * @param string $_api_key API Key. * * @throws Forminator_Integration_Exception Throw Integration Exception. */ public function __construct($_endpoint, $_api_key) { } /** * Add custom user agent on request * * @since 1.0 Activecampaign Integration * * @param string $user_agent User agent. * * @return string */ public function filter_user_agent($user_agent) { } /** * HTTP Request * * @since 1.0 Activecampaign Integration * * @param string $verb `GET` `POST` `PUT` `DELETE` `PATCH`. * @param string $path requested path resource. * @param array $args arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throw exception. */ private function request($verb, $path, $args = array()) { } /** * Send data to activecampaign API URL * * @since 1.0 Activecampaign Integration * * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throw Exception. */ public function post_($args) { } /** * Get Account Detail * * @since 1.0 Activecampaign Integration * * @return array|mixed|object * @throws Forminator_Integration_Exception Throw Exception. */ public function get_account() { } /** * Get Lists * * @since 1.0 Activecampaign Integration * * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throw Exception. */ public function get_lists($args = array()) { } /** * Get List Detail * * @param string $id Id. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throw Integration Exception. */ public function get_list($id, $args = array()) { } /** * Get created Forms * * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throw Integration Exception. */ public function get_forms($args = array()) { } /** * Sync Contact * * Add or edit a contact based on their email address. * Instead of calling contact_view to check if the contact exists, and then calling contact_add or * contact_edit, you can make just one call and include only the information you want added or updated. * * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throw Integration Exception. */ public function contact_sync($args = array()) { } /** * Delete Contact * * Allows you to delete an existing contact from the ActiveCampaign system. * * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throw Integration Exception. */ public function contact_delete($args = array()) { } /** * Get last data sent * * @since 1.0 Activecampaign Integration * * @return array */ public function get_last_data_sent() { } /** * Get last data received * * @since 1.0 Activecampaign Integration * * @return array */ public function get_last_data_received() { } /** * Get last data received * * @since 1.0 Activecampaign Integration * * @return string */ public function get_last_url_request() { } /** * Get data collection form request result * * @param array $request_data Request data. * * @return array */ public static function get_collection_from_request_result($request_data) { } } /** * The Forminator Aweber Form Hooks. * * @package Forminator */ /** * Class Forminator_Aweber_Form_Hooks * * @since 1.0 Aweber Integration */ class Forminator_Aweber_Form_Hooks extends \Forminator_Integration_Form_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on add subscriber to AWeber * * @since 1.0 AWeber Integration * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $form_entry_fields Form entry fields. * * @return array `is_sent` true means its success send data to AWeber, false otherwise. * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function get_status_on_add_subscriber($connection_id, $submitted_data, $connection_settings, $form_entry_fields) { } } /** * Trait for common methods for Aweber settings classes * * @since 1.30 * @package Aweber Integration */ /** * Trait Forminator_Aweber_Settings_Trait */ trait Forminator_Aweber_Settings_Trait { /** * Aweber Module Settings wizard * * @since 1.0 Aweber Integration * @return array */ public function module_settings_wizards() { } /** * Set up Connection Name * * @since 1.0 AWeber Integration * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function pick_name($submitted_data) { } /** * Set up List * * @since 1.0 AWeber Integration * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function setup_list($submitted_data) { } /** * Set up fields map * * @since 1.0 AWeber Integration * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function map_fields($submitted_data) { } /** * Set up options * * Contains : * - ad_tracking * - misc_notes * - tags * * @since 1.0 Campaign Monitor Integration * @param array $submitted_data Submitted data. * @return array */ public function setup_options($submitted_data) { } /** * Check if setup options completed * * @since 1.0 AWeber Integration * @param array $submitted_data Submitted data. * @return bool */ public function setup_options_is_completed($submitted_data) { } /** * Check if fields mapped * * @since 1.0 AWeber Integration * @param array $submitted_data Submitted data. * @return bool */ public function map_fields_is_completed($submitted_data) { } } /** * The Forminator Aweber Form Settings. * * @package Forminator */ /** * Class Forminator_Aweber_Form_Settings * Handle how form settings displayed and saved * * @since 1.0 Aweber Integration */ class Forminator_Aweber_Form_Settings extends \Forminator_Integration_Form_Settings { use \Forminator_Aweber_Settings_Trait; } /** * The Forminator Aweber Quiz Hooks. * * @package Forminator */ /** * Class Forminator_Aweber_Quiz_Hooks * * @since 1.0 Aweber Integration */ class Forminator_Aweber_Quiz_Hooks extends \Forminator_Integration_Quiz_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on add subscriber to AWeber * * @since 1.0 AWeber Integration * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $form_entry_fields Form entry fields. * * @return array `is_sent` true means its success send data to AWeber, false otherwise. * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function get_status_on_add_subscriber($connection_id, $submitted_data, $connection_settings, $form_entry_fields) { } } /** * The Forminator Aweber Quiz Settings. * * @package Forminator */ /** * Class Forminator_Aweber_Quiz_Settings * Handle how quiz settings displayed and saved * * @since 1.0 Aweber Integration */ class Forminator_Aweber_Quiz_Settings extends \Forminator_Integration_Quiz_Settings { use \Forminator_Aweber_Settings_Trait; } /** * Class Forminator_Aweber * Aweber Integration Main Class * * @since 1.0 Aweber Integration */ final class Forminator_Aweber extends \Forminator_Integration { /** * Forminator_Aweber Instance * * @var Forminator_Aweber|null */ protected static $instance = \null; /** * Slug * * @var string */ protected $_slug = 'aweber'; /** * Addon Version * * @var string */ protected $_version = \FORMINATOR_ADDON_AWEBER_VERSION; /** * Forminator Version * * @var string */ protected $_min_forminator_version = '1.1'; /** * Short title * * @var string */ protected $_short_title = 'AWeber'; /** * Title * * @var string */ protected $_title = 'AWeber'; /** * Position * * @var int */ protected $_position = 7; /** * App Id * * @var string */ private $_app_id = 'd806984a'; /** * Connected Account Info * * @var integer */ private $_account_id = 0; /** * Forminator_Aweber constructor. * * @since 1.0 Aweber Integration */ public function __construct() { } /** * Override settings available, * * @since 1.0 Aweber Integration * @return bool */ public function is_settings_available() { } /** * Allow multiple connection on one form * * @since 1.0 Aweber Integration * @return bool */ public function is_allow_multi_on_form() { } /** * Settings wizard * * @since 1.0 AWeber Integration * @return array */ public function settings_wizards() { } /** * Authorize Access wizard * * @since 1.0 AWeber Integration * @return array */ public function authorize_access() { } /** * Wait Authorize Access wizard * * @since 1.0 AWeber Integration * @return array */ public function wait_authorize_access() { } /** * Authorized Callback * * @since 1.0 AWeber Integration * @return bool */ public function is_authorized() { } /** * Pseudo step * * @since 1.0 AWeber Integration * @return bool */ public function authorize_access_is_completed() { } /** * Register a page for redirect url of AWeber auth * * @since 1.0 AWeber Integration * * @return array */ public function register_integration_sections() { } /** * AWeber Authorize Page * * @since 1.0 AWeber Integration * * @param array $query_args Query arguments. * * @return string * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function authorize_page_callback($query_args) { } /** * Get AWeber Auth URL * * @since 1.1 AWeber Integration * * @param string $return_url Return URL. * * @return string */ public function get_auth_url($return_url = '') { } /** * Get AWeber APP ID * * @see https://labs.aweber.com/docs/authentication * * @since 1.0 AWeber Integration * * @return string; */ public function get_app_id() { } /** * Get API Instance * * @since 1.0 * * @param array|null $api_credentials API credentials. * * @return Forminator_Aweber_Wp_Api * @throws Forminator_Integration_Exception Throws Integration Exceptions. */ public function get_api($api_credentials = \null) { } /** * Validate Access Token * * @param string $application_key Application Key. * @param string $application_secret Application Secret. * @param string $request_token Request Token. * @param string $token_secret Secret Token. * @param string $oauth_verifier Verifier. * * @throws Forminator_Integration_Exception Throws Integration Exceptions. */ public function validate_access_token($application_key, $application_secret, $request_token, $token_secret, $oauth_verifier) { } /** * Get validated account_id * * @param Forminator_Aweber_Wp_Api $api API. * @return integer * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_validated_account_id($api) { } /** * Set account_id on class if exist on settings * * @param array $values Setting values. * * @return mixed */ public function before_get_settings_values($values) { } /** * Set account_id on class if exist on settings * * @param array $values Setting values. * * @return mixed */ public function before_save_settings_values($values) { } /** * Get connected account id * * @return int */ public function get_account_id() { } /** * Allow multiple connection on one quiz * * @since 1.6.1 * @return bool */ public function is_allow_multi_on_quiz() { } } /** * The Forminator Aweber Oauth. * * @package Forminator */ /** * Class Forminator_Aweber_Oauth * Helpers for OAuth */ class Forminator_Aweber_Oauth { /** * Create Signature Base * * @since 1.0 * * @param mixed $method String name of HTTP method, such as "GET". * @param mixed $url URL where this request will go. * @param mixed $data Array of params for this request. This should. * include ALL oauth properties except for the signature. * * @return string */ public static function create_signature_base($method, $url, $data) { } /** * Collapse data for signature * * @since 1.0 * * Turns an array of request data into a string, as used by the oauth * signature * * @param mixed $data Request Data. * * @return string */ public static function collapse_data_for_signature($data) { } /** * Creates a signature on the signature base and the signature key * * @since 1.0 * * @param mixed $base Base string of data to sign. * @param mixed $key Key to sign the data with. * * @access public * @return string The signature */ public static function create_signature($base, $key) { } /** * Creates a key that will be used to sign our signature. Signatures * are signed with the consumerSecret for this consumer application and * the token secret of the user that the application is acting on behalf * of. * * @since 1.0 * * @param string $application_key Application key. * @param string $oauth_token_secret Token secret. * * @return string */ public static function create_signature_key($application_key, $oauth_token_secret) { } /** * Generate oauth_nonce * * @since 1.0 * * @param int $timestamp Timestamp. * * @return string */ public static function generate_oauth_nonce($timestamp = 0) { } } /** * Class Forminator_Aweber_Wp_Api */ class Forminator_Aweber_Wp_Api { /** * Instances of aweber api * * @var Forminator_Aweber_Wp_Api|array */ private static $_instances = array(); /** * Access token URL * * @var string */ private static $_access_token_url = 'https://auth.aweber.com/1.0/oauth/access_token'; /** * API base URL. * * @var string */ private static $_api_base_url = 'https://api.aweber.com/1.0/'; /** * OAUTH version * * @var string */ const OAUTH_VERSION = '1.0'; /** * Application Key * * @var string */ private $_application_key = ''; /** * Application secret * * @var string */ private $_application_secret = ''; /** * OAuth token * * @var string */ private $_oauth_token = ''; /** * OAuth token secret * * @var string */ private $_oauth_token_secret = ''; /** * Last data sent to aweber * * @since 1.0 Aweber Integration * @var array */ private $_last_data_sent = array(); /** * Last data received from aweber * * @since 1.0 Aweber Integration * @var array */ private $_last_data_received = array(); /** * Last URL requested * * @since 1.0 Aweber Integration * @var string */ private $_last_url_request = ''; /** * Forminator_Aweber_Wp_Api constructor. * * @since 1.0 Aweber Integration * * @param string $_application_key Application key. * @param string $_application_secret Application secret. * @param string $_oauth_token OAuth token. * @param string $_oauth_token_secret OAuth token secret. * * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function __construct($_application_key, $_application_secret, $_oauth_token, $_oauth_token_secret) { } /** * Get singleton * * @since 1.0 Aweber Integration * * @param string $_application_key Application key. * @param string $_application_secret Application secret. * @param string $_oauth_token OAuth token. * @param string $_oauth_token_secret OAuth token secret. * * @return Forminator_Aweber_Wp_Api|null * @throws Forminator_Integration_Exception Throws Integration Exception. */ public static function get_instance($_application_key, $_application_secret, $_oauth_token, $_oauth_token_secret) { } /** * Add custom user agent on request * * @since 1.0 Aweber Integration * * @param string $user_agent User Agent. * * @return string */ public function filter_user_agent($user_agent) { } /** * HTTP Request * * @since 1.0 Aweber Integration * * @param string $verb `GET` `POST` `PUT` `DELETE` `PATCH`. * @param string $url URL. * @param array $args Arguments. * @param array $headers Headers. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function request($verb, $url, $args = array(), $headers = array()) { } /** * Get Oauth Request data of AWeber that need to be send on API Request * * @since 1.0 Aweber Integration * @return array */ public function get_oauth_request_data() { } /** * Sign Aweber API request * * @since 1.0 Aweber Integration * * @param string $method HTTP methods. * @param string $url URL. * @param array $data Data. * * @return mixed */ public function get_signed_request($method, $url, $data) { } /** * Prepare Request * * @since 1.0 Aweber Integration * * @param mixed $method HTTP method. * @param mixed $url URL for the request. * @param mixed $data The data to generate oauth data and be signed. * * @return array */ public function get_prepared_request($method, $url, $data) { } /** * Get Access Token * * @since 1.0 Aweber Integration * * @param string $oauth_verifier Verifier. * @param array $args Arguments. * * @return object contains oauth_token and oauth_token_secret * * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_access_token($oauth_verifier, $args = array()) { } /** * Get related accounts * * @since 1.0 Aweber Integration * * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_accounts($args = array()) { } /** * Get lists on an account * * @since 1.0 Aweber Integration * * @param string $account_id Account Id. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_account_lists($account_id, $args = array()) { } /** * Get Custom Fields on the list * * @since 1.0 Aweber Integration * * @param string $account_id Account Id. * @param string $list_id List Id. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_account_list_custom_fields($account_id, $list_id, $args = array()) { } /** * Add subscriber to account list * * @since 1.0 Aweber Integration * * @param string $account_id Account Id. * @param string $list_id List Id. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function add_account_list_subscriber($account_id, $list_id, $args = array()) { } /** * Update subscriber to account list * * @since 1.0 Aweber Integration * * @param string $account_id Account Id. * @param string $list_id List Id. * @param string $subscriber_id Subscriber Id. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function update_account_list_subscriber($account_id, $list_id, $subscriber_id, $args = array()) { } /** * GET subscriber on account list * * @since 1.0 Aweber Integration * * @param string $account_id Account Id. * @param string $list_id List Id. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function find_account_list_subscriber($account_id, $list_id, $args = array()) { } /** * Get url for get access token * * @since 1.0 Aweber Integration * @return string */ public function get_access_token_url() { } /** * Get API URL * * @param string $path App Path. * * @return string */ public function get_api_url($path) { } /** * Get Oauth Token * * @since 1.0 Aweber Integration * @return string */ public function get_oauth_token() { } /** * Get Oauth Token Secret * * @since 1.0 Aweber Integration * @return string */ public function get_oauth_token_secret() { } /** * Get last data sent * * @since 1.0 Aweber Integration * * @return array */ public function get_last_data_sent() { } /** * Get last data received * * @since 1.0 Aweber Integration * * @return array */ public function get_last_data_received() { } /** * Get last data received * * @since 1.0 Aweber Integration * * @return string */ public function get_last_url_request() { } } /** * The Forminator Campaign Monitor Form Hooks. * * @package Forminator */ /** * Class Forminator_Campaignmonitor_Form_Hooks * * @since 1.0 Campaignmonitor Integration */ class Forminator_Campaignmonitor_Form_Hooks extends \Forminator_Integration_Form_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on add subscriber to Campaign Monitor * * @since 1.0 Campaign Monitor Integration * @since 1.7 Add $form_entry_fields args * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $form_entry_fields Form entry fields. * * @return array `is_sent` true means its success send data to ampaign Monitor, false otherwise. * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function get_status_on_add_subscriber($connection_id, $submitted_data, $connection_settings, $form_entry_fields) { } /** * It will delete subscriber on Campaign Monitor from list * * @since 1.0 Campaign Monitor Integration * * @param Forminator_Form_Entry_Model $entry_model Form Entry Model. * @param array $addon_meta_data Addon meta data. * * @return bool */ public function on_before_delete_entry(\Forminator_Form_Entry_Model $entry_model, $addon_meta_data) { } } /** * Trait for common methods for Campaignmonitor settings classes * * @since 1.30 * @package Campaignmonitor Integration */ /** * Trait Forminator_Campaignmonitor_Settings_Trait */ trait Forminator_Campaignmonitor_Settings_Trait { /** * Campaignmonitor Module Settings wizard * * @since 1.0 Campaignmonitor Integration * @return array */ public function module_settings_wizards() { } /** * Setup Connection Name * * @since 1.0 Campaign Monitor Integration * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function pick_name($submitted_data) { } /** * Setup List * * @since 1.0 Campaign Monitor Integration * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function setup_list($submitted_data) { } /** * Setup fields map * * @since 1.0 Campaignmonitor Integration * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function map_fields($submitted_data) { } /** * Check if fields mapped * * @since 1.0 Campaign Monitor Integration * @param array $submitted_data Submitted data. * @return bool */ public function map_fields_is_completed($submitted_data) { } /** * Setup options * * Contains : * - Resubscribe * - RestartSubscriptionBasedAutoresponders * - ConsentToTrack * * @since 1.0 Campaign Monitor Integration * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function setup_options($submitted_data) { } /** * Check if setup options completed * * @since 1.0 Campaign Monitor Integration * @param array $submitted_data Submitted data. * @return bool */ public function setup_options_is_completed($submitted_data) { } } /** * The Forminator Campaign Monitor Form Settings. * * @package Forminator */ /** * Class Forminator_Campaignmonitor_Form_Settings * Handle how form settings displayed and saved * * @since 1.0 Campaignmonitor Integration */ class Forminator_Campaignmonitor_Form_Settings extends \Forminator_Integration_Form_Settings { use \Forminator_Campaignmonitor_Settings_Trait; } /** * The Forminator Campaign Monitor Quiz Hooks. * * @package Forminator */ /** * Class Forminator_Campaignmonitor_Quiz_Hooks * * @since 1.0 Campaignmonitor Integration */ class Forminator_Campaignmonitor_Quiz_Hooks extends \Forminator_Integration_Quiz_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on add subscriber to Campaign Monitor * * @since 1.0 Campaign Monitor Integration * @since 1.7 Add $form_entry_fields args * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $current_entry_fields Form entry fields. * * @return array `is_sent` true means its success send data to ampaign Monitor, false otherwise. * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function get_status_on_add_subscriber($connection_id, $submitted_data, $connection_settings, $current_entry_fields) { } /** * It will delete subscriber on Campaign Monitor from list * * @since 1.0 Campaign Monitor Integration * * @param Forminator_Form_Entry_Model $entry_model Form entry model. * @param array $addon_meta_data Addon meta data. * * @return bool */ public function on_before_delete_entry(\Forminator_Form_Entry_Model $entry_model, $addon_meta_data) { } } /** * The Forminator Campaign Monitor Quiz Settings. * * @package Forminator */ /** * Class Forminator_Campaignmonitor_Quiz_Settings * Handle how quiz settings displayed and saved * * @since 1.0 Campaignmonitor Integration */ class Forminator_Campaignmonitor_Quiz_Settings extends \Forminator_Integration_Quiz_Settings { use \Forminator_Campaignmonitor_Settings_Trait; } /** * Class Forminator_Campaignmonitor * Campaignmonitor Integration Main Class * * @since 1.0 Campaignmonitor Integration */ final class Forminator_Campaignmonitor extends \Forminator_Integration { /** * Forminator_Campaignmonitor Instance * * @var self|null */ protected static $instance = \null; /** * Slug * * @var string */ protected $_slug = 'campaignmonitor'; /** * Campaign Monitor version * * @var string */ protected $_version = \FORMINATOR_ADDON_CAMPAIGNMONITOR_VERSION; /** * Version * * @var string */ protected $_min_forminator_version = '1.1'; /** * Short title * * @var string */ protected $_short_title = 'Campaign Monitor'; /** * Title * * @var string */ protected $_title = 'Campaign Monitor'; /** * Position * * @var integer */ protected $_position = 6; /** * Sensitive key names that require encryption. * * @var array */ protected $_sensitive_keys = array('api_key', 'client_id'); /** * Forminator_Campaignmonitor constructor. * * @since 1.0 Campaignmonitor Integration */ public function __construct() { } /** * Override settings available, * * @since 1.0 Campaignmonitor Integration * @return bool */ public function is_settings_available() { } /** * Flag delete subscriber on delete submission * * @since 1.0 Campaignmonitor Integration * @return bool */ public static function is_enable_delete_subscriber() { } /** * Allow multiple connection on one form * * @since 1.0 Campaignmonitor Integration * @return bool */ public function is_allow_multi_on_form() { } /** * Setting wizard of Campaign Monitor * * @since 1.0 Campaign Monitor Integration * @return array */ public function settings_wizards() { } /** * Setup API Wizard * * @since 1.0 Campaign Monitor Integration * * @param array $submitted_data Submitted data. * @param int $form_id Form Id. * * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function setup_api($submitted_data, $form_id = 0) { } /** * Check Api settings Completed * * @since 1.o Campaign Monitor * @return bool */ public function is_authorized() { } /** * Get API Instance * * @since 1.0 Campaign Monitor Integration * * @param string|null $api_key API Key. * * @return Forminator_Campaignmonitor_Wp_Api * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_api($api_key = \null) { } /** * Validate API Key * * @since 1.0 Campaign Monitor * * @param string $api_key API Key. * * @return string * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function validate_api_key($api_key) { } /** * Validate API * * @since 1.0 Campaign Monitor Integration * * @param string $api_key API Key. * * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function validate_api($api_key) { } /** * Validate Client * * @since 1.0 Campaign Monitor Integration * * @param string $api_key API Key. * @param string $client_id Client Id. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function validate_client($api_key, $client_id) { } /** * Get Client ID * * @since 1.0 Campaign Monitor Integration * @return string */ public function get_client_id() { } /** * Allow multiple connection on one quiz * * @since 1.6.1 * @return bool */ public function is_allow_multi_on_quiz() { } } /** * The Forminator Campaign Monitor API * * @package Forminator */ /** * Class Forminator_Campaignmonitor_Wp_Api */ class Forminator_Campaignmonitor_Wp_Api { /** * Instances of campaignmonitor api * * @var array */ private static $_instances = array(); /** * Campaignmonitor api key * * @var string */ private $_api_key = ''; /** * Last data sent to campaignmonitor * * @since 1.0 Campaignmonitor Integration * @var array */ private $_last_data_sent = array(); /** * Last data received from campaignmonitor * * @since 1.0 Campaignmonitor Integration * @var array */ private $_last_data_received = array(); /** * Last URL requested * * @since 1.0 Campaignmonitor Integration * @var string */ private $_last_url_request = ''; /** * Base API Endpoint * * @var string */ private $_endpoint = 'https://api.createsend.com/api/v3.2/'; /** * Forminator_Campaignmonitor_Wp_Api constructor. * * @since 1.0 Campaignmonitor Integration * * @param string $api_key API key. * * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function __construct($api_key) { } /** * Get singleton * * @since 1.0 Campaignmonitor Integration * * @param string $api_key API Key. * * @return Forminator_Campaignmonitor_Wp_Api|null * @throws Forminator_Integration_Exception Throws Integration Exception. */ public static function get_instance($api_key) { } /** * Add custom user agent on request * * @since 1.0 Campaignmonitor Integration * * @param string $user_agent User agent. * * @return string */ public function filter_user_agent($user_agent) { } /** * HTTP Request * * @since 1.0 Campaignmonitor Integration * * @param string $verb `GET` `POST` `PUT` `DELETE` `PATCH`. * @param string $path Path. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function request($verb, $path, $args = array()) { } /** * Send data to static webhook campaignmonitor URL * * @since 1.0 Campaignmonitor Integration * * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function post_($args) { } /** * Get Primary Contact * * @since 1.0 Campaignmonitor Integration * * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_primary_contact($args = array()) { } /** * Get Current Data on Campaign Monitor * * @since 1.0 Campaignmonitor Integration * * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_system_date($args = array()) { } /** * Get List Detail * * @since 1.0 Campaignmonitor Integration * * @param string $list_id List Id. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_list($list_id, $args = array()) { } /** * Get Lists on a Client * * @since 1.0 Campaignmonitor Integration * * @param string $client_id Client Id. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_client_lists($client_id, $args = array()) { } /** * Get Clients * * @since 1.0 Campaignmonitor Integration * * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_clients($args = array()) { } /** * Get Client Details * * @since 1.0 Campaignmonitor Integration * * @param string $client_id Client Id. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_client($client_id, $args = array()) { } /** * Get Custom Fields on Lists * * @since 1.0 Campaignmonitor Integration * * @param string $list_id List Id. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_list_custom_field($list_id, $args = array()) { } /** * Add Subscriber to the list * * @since 1.0 Campaignmonitor Integration * * @param string $list_id List Id. * @param string $email_address Email addresses. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function add_subscriber($list_id, $email_address, $args = array()) { } /** * Delete Subscriber from the list * * @since 1.0 Campaignmonitor Integration * * @param string $list_id List Id. * @param string $email_address Email addresses. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function delete_subscriber($list_id, $email_address, $args = array()) { } /** * Get last data sent * * @since 1.0 Campaignmonitor Integration * * @return array */ public function get_last_data_sent() { } /** * Get last data received * * @since 1.0 Campaignmonitor Integration * * @return array */ public function get_last_data_received() { } /** * Get last data received * * @since 1.0 Campaignmonitor Integration * * @return string */ public function get_last_url_request() { } } /** * Forminator Google sheet form hooks * * @package Forminator */ /** * Class Forminator_Googlesheet_Form_Hooks * * @since 1.0 Google Sheets Integration */ class Forminator_Googlesheet_Form_Hooks extends \Forminator_Integration_Form_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on create Google Sheets row * * @since 1.0 Google Sheets Integration * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $form_entry_fields Form entry fields. * * @return array `is_sent` true means its success send data to Google Sheets, false otherwise. * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_status_on_create_row($connection_id, $submitted_data, $connection_settings, $form_entry_fields) { } /** * Prepare headers of spreadsheet * * @param string $file_id File Id. * * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. * * @since 1.31 * @param string $worksheet_id Worksheet/tab Id. */ public function get_sheet_headers($file_id, $worksheet_id = 0) { } /** * Convert column number to letter format for spreadsheet * * Start from 1 * * @param int $column_number Column Number. * * @return string */ public static function column_number_to_letter($column_number) { } } /** * Trait for common methods for Googlesheet settings classes * * @since 1.30 * @package Googlesheet Integration */ /** * Trait Forminator_Googlesheet_Settings_Trait */ trait Forminator_Googlesheet_Settings_Trait { /** * Google Sheets Module Settings wizard * * @since 1.0 Google Sheets Integration * @return array */ public function module_settings_wizards() { } /** * Get Post data. * * @since 1.31 Google Sheets Addon * @return array */ private function get_post_data() { } /** * Setup Connection Name * * @since 1.0 Google Sheets Integration * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function pick_name($submitted_data) { } /** * Get buttons. * * @param string $multi_id Id. * * @since 1.31 Google Sheets Addon * @return array */ private function get_buttons($multi_id) { } /** * Setup the spread sheet. * * @since 1.31 Google Sheets Addon * @param array $submitted_data Submitted data. * @return array */ public function setup_spread_sheet($submitted_data) { } /** * Setup an existing Spread sheet tab * * @since 1.31 Google Sheets Addon * @param array $submitted_data Submitted data. * @return array * @throws ForminatorGoogleAddon\Google\Exception Google Exception. */ public function update_worksheet($submitted_data) { } /** * Setup an existing Spread sheet * * @since 1.31 Google Sheets Addon * @param array $submitted_data Submitted data. * @return array * @throws ForminatorGoogleAddon\Google\Exception Google Exception. */ public function setup_existing_sheet($submitted_data) { } /** * Setup Contact List * * @since 1.0 Google Sheets Integration * @param array $submitted_data Submitted data. * @return array * @throws ForminatorGoogleAddon\Google\Exception Throws Google Exception. */ public function setup_sheet($submitted_data) { } /** * Check if select contact list completed * * @since 1.0 Google Sheets Integration * @param array $submitted_data Submitted data. * @return bool */ public function setup_sheet_is_completed($submitted_data) { } } /** * Forminator Google sheet Form Settings * * @package Forminator */ /** * Class Forminator_Googlesheet_Form_Settings * Handle how form settings displayed and saved * * @since 1.0 Google Sheets Integration */ class Forminator_Googlesheet_Form_Settings extends \Forminator_Integration_Form_Settings { use \Forminator_Googlesheet_Settings_Trait; } /** * The Forminator_Integration_Poll_Hooks class. * * @package Forminator */ /** * Class Forminator_Integration_Poll_Hooks * Any change(s) to this file is subject to: * - Properly Written DocBlock! (what is this, why is that, how to be like those, etc, as long as you want!) * - Properly Written Changelog! * * If you override any of these method, please add necessary hooks in it, * Which you can see below, as a reference and keep the arguments signature. * If needed you can call these method, as parent::method_name(), * and add your specific hooks. * * @since 1.6.1 */ abstract class Forminator_Integration_Poll_Hooks extends \Forminator_Integration_Hooks { /** * Module slug * * @var string */ protected static string $slug = 'poll'; /** * Override this function to execute action after entry saved * * Its void function, so return value will be ignored, and forminator process will always continue * unless it generates unrecoverable error, so please be careful on extending this function * * @since 1.6.1 * * @param Forminator_Form_Entry_Model $entry_model Form entry model. */ public function after_entry_saved(\Forminator_Form_Entry_Model $entry_model) { } /** * Get Submit poll error message * * @since 1.6.1 * @return string */ public function get_submit_error_message() { } } /** * Forminator Google sheet Poll Hooks * * @package Forminator */ /** * Class Forminator_Googlesheet_Poll_Hooks * * @since 1.6.1 */ class Forminator_Googlesheet_Poll_Hooks extends \Forminator_Integration_Poll_Hooks { /** * Google sheet column titles */ const GSHEET_ANSWER_COLUMN_NAME = 'Answer'; const GSHEET_EXTRA_COLUMN_NAME = 'Extra'; /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on create Google Sheets row * * @since 1.6.1 * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $poll_entry_fields Poll entry fields. * * @return array `is_sent` true means its success send data to Google Sheets, false otherwise. * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_status_on_create_row($connection_id, $submitted_data, $connection_settings, $poll_entry_fields) { } /** * Prepare headers of spreadsheet * * @since 1.6.1 * * @param string $file_id File Id. * * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. * * @since 1.31 * @param string $worksheet_id Worksheet/tab Id. */ public function get_sheet_headers($file_id, $worksheet_id = 0) { } } /** * The Forminator_Integration_Poll_Settings class. * * @package Forminator */ /** * Class Forminator_Integration_Poll_Settings * Any change(s) to this file is subject to: * - Properly Written DocBlock! (what is this, why is that, how to be like those, etc, as long as you want!) * - Properly Written Changelog! * * @since 1.6.1 */ abstract class Forminator_Integration_Poll_Settings extends \Forminator_Integration_Settings { /** * Current Poll fields (answers) * * @since 1.6.1 * @var array */ protected $poll_fields = array(); /** * Current Poll Settings * * @since 1.6.1 * @var array */ protected $poll_settings = array(); /** * An addon can be force disconnected from poll, if its not met requirement, or data changed externally * example : * - Mail List deleted on mailchimp server app * - Fields removed * * @since 1.6.1 * @var bool */ protected $is_force_poll_disconnected = \false; /** * Reason of Force disconnected * * @since 1.6.1 * @var string */ protected $force_poll_disconnected_reason = ''; /** * Poll Model * * @since 1.6.1 * @var Forminator_Poll_Model|null */ protected $poll = \null; /** * Module slug * * @var string */ protected static $module_slug = 'poll'; /** * Forminator_Integration_Poll_Settings constructor. * * @since 1.6.1 * * @param Forminator_Integration $addon Class Forminator_Integration. * @param int $poll_id Poll Id. * * @throws Forminator_Integration_Exception When there is an Integration error. */ public function __construct(\Forminator_Integration $addon, $poll_id) { } /** * Override this function if addon need to do something with addon poll setting values * * @example transform, load from other storage ? * called when rendering tab on poll settings * * @since 1.6.1 * * @param array $values Settings. * * @return mixed */ public function before_get_poll_settings_values($values) { } /** * Override this function if addon need to do something with addon poll setting values * * @example transform, load from other storage ? * called when rendering tab on poll settings * @since 1.6.1 * * @param array $values Settings. * * @return mixed */ public function before_save_poll_settings_values($values) { } /** * Get status of force disconnected from WP post_meta * * @since 1.6.1 * @return bool */ final public function is_force_poll_disconnected() { } /** * Get disconnected reason * * @since 1.6.1 * @return string */ final public function force_poll_disconnected_reason() { } /** * Force poll to be disconnected with addon * * @since 1.6.1 * * @param string $reason Reason for disconnect. */ final public function force_poll_disconnect($reason) { } /** * Save disconnect reason to WP post_meta * * @since 1.6.1 */ final public function save_force_poll_disconnect_reason() { } /** * Remove disconnect reason poll WP post_meta * * @since 1.6.1 */ final public function remove_saved_force_poll_disconnect_reason() { } /** * Get current poll settings * * @since 1.6.1 * @return array */ final public function get_poll_settings() { } /** * Get current poll fields * * @since 1.6.1 * @return array */ final public function get_poll_fields() { } /** * Override this function to set wizardable settings * Default its and empty array which is indicating that Integration doesnt have settings * * Its multi array, with numerical key, start with `0` * Every step on wizard, will consist at least * - `callback` : when application requesting wizard, Forminator will do `call_user_func` on this value, with these arguments * - `$submitted_data` : array of submitted data POST-ed by user * - `$poll_id` : current poll_id when called on `Poll Settings` or 0 when called on Global Settings * - `is_completed` : when application requesting wizard, will check if `Previous Step` `is_completed` by doing `call_user_func` on its value * this function should return `true` or `false` * * @since 1.6.1 * @return array */ public function module_settings_wizards() { } /** * Get poll settings data to export * * Default is from post_meta, override when needed * * @since 1.6.1 * * @return array */ public function to_exportable_data() { } /** * Executed when poll settings imported * * Default is save imported data to post_meta, override when needed * * @since 1.6.1 * * @param mixed $import_data Import data. * @throws Forminator_Integration_Exception When there is an Integration error. */ public function import_data($import_data) { } } /** * Forminator Google sheet Poll Settings * * @package Forminator */ /** * Class Forminator_Googlesheet_Poll_Settings * Handle how poll settings displayed and saved * * @since 1.6.1 */ class Forminator_Googlesheet_Poll_Settings extends \Forminator_Integration_Poll_Settings { use \Forminator_Googlesheet_Settings_Trait; } /** * Forminator Google sheet Quiz Hooks * * @package Forminator */ /** * Class Forminator_Googlesheet_Quiz_Hooks * * @since 1.6.2 */ class Forminator_Googlesheet_Quiz_Hooks extends \Forminator_Integration_Quiz_Hooks { /** * Google sheet column titles */ const GSHEET_DATE_COLUMN_NAME = 'Date'; const GSHEET_QUESTION_COLUMN_NAME = 'Question'; const GSHEET_ANSWER_COLUMN_NAME = 'Answer'; const GSHEET_RESULT_COLUMN_NAME = 'Result'; /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on create Google Sheets row * * @since 1.6.2 * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $quiz_entry_fields Quiz entry fields. * * @return array `is_sent` true means its success send data to Google Sheets, false otherwise. * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_status_on_create_row($connection_id, $submitted_data, $connection_settings, $quiz_entry_fields) { } /** * Prepare headers of spreadsheet * * @since 1.6.2 * * @param string $file_id File Id. * @param array $quiz_settings Quiz settings. * * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. * * @since 1.31 * @param string $worksheet_id Worksheet/tab Id. */ public function get_sheet_headers($file_id, $quiz_settings = array(), $worksheet_id = 0) { } } /** * Forminator Google sheet Quiz Settings * * @package Forminator */ /** * Class Forminator_Googlesheet_Quiz_Settings * Handle how quiz settings displayed and saved * * @since 1.6.2 */ class Forminator_Googlesheet_Quiz_Settings extends \Forminator_Integration_Quiz_Settings { use \Forminator_Googlesheet_Settings_Trait; /** * Has lead * * @return bool */ public function has_lead() { } } /** * Forminator Google sheet * * @package Forminator */ /** * Class Forminator_Googlesheet * Google Sheets Integration Main Class * * @since 1.0 Google Sheets Integration */ final class Forminator_Googlesheet extends \Forminator_Integration { /** * Forminator_Googlesheet instance * * @var Forminator_Googlesheet|null */ protected static $instance = \null; /** * Slug * * @var string */ protected $_slug = 'googlesheet'; /** * Google sheet version * * @var string */ protected $_version = \FORMINATOR_ADDON_GOOGLESHEET_VERSION; /** * Min Forminator version * * @var string */ protected $_min_forminator_version = '1.1'; /** * Short title * * @var string */ protected $_short_title = 'Google Sheets'; /** * Title * * @var string */ protected $_title = 'Google Sheets'; const MIME_TYPE_GOOGLE_DRIVE_FOLDER = 'application/vnd.google-apps.folder'; const MIME_TYPE_GOOGLE_SPREADSHEET = 'application/vnd.google-apps.spreadsheet'; /** * Position * * @var int */ protected $_position = 3; /** * Sensitive key names that require encryption. * * @var array */ protected $_sensitive_keys = array('client_secret'); /** * Forminator_Googlesheet constructor. * * @since 1.0 Google Sheets Integration */ public function __construct() { } /** * Override on is_connected * * @since 1.0 Google Sheets Integration * * @return bool * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function is_connected() { } /** * Override settings available, * * @since 1.0 Google Sheets Integration * @return bool */ public function is_settings_available() { } /** * Allow multiple connection on one form * * @since 1.0 Google Sheets Integration * @return bool */ public function is_allow_multi_on_form() { } /** * Settings wizard * * @since 1.0 Google Sheets Integration * @return array */ public function settings_wizards() { } /** * Authorize Access wizard * * @since 1.0 Google Sheets Integration * * @param array $submitted_data Submitted data. * * @return array */ public function setup_client_id($submitted_data) { } /** * Setup client id is complete * * @param array $submitted_data Submitted data. * * @return bool */ public function setup_client_id_is_completed($submitted_data) { } /** * Authorize Access wizard * * @since 1.0 Google Sheets Integration * @return array */ public function authorize_access() { } /** * Authorize access is completed. * * @return bool */ public function authorize_access_is_completed() { } /** * Wait Authorize Access wizard * * @since 1.0 Google Sheets Integration * @return array */ public function wait_authorize_access() { } /** * Authorized Callback * * @since 1.0 Google Sheets Integration * @return bool */ public function is_authorized() { } /** * Get Auth Url * * @return string */ public function get_auth_url() { } /** * Get Client ID * * @since 1.0 Google Sheets Integration * @return string */ public function get_client_id() { } /** * Get Client secret * * @since 1.0 Google Sheets Integration * @return string */ public function get_client_secret() { } /** * Get Access Token * * @since 1.0 Google Sheets Integration * @return string */ public function get_client_access_token() { } /** * Update Access Token * * @since 1.0 Google Sheets Integration * * @param string $access_token Access token. */ public function update_client_access_token($access_token) { } /** * Register a page for redirect url of Goolge auth * * @since 1.0 Google Sheets Integration * * @return array */ public function register_integration_sections() { } /** * Google Sheets Authorize Page * * @since 1.0 Google Sheets Integration * * @param array $query_args Arguments. * * @return string * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function authorize_page_callback($query_args) { } /** * Refresh expired token * * @param ForminatorGoogleAddon\Google\Client $google_client Google client. * @return ForminatorGoogleAddon\Google\Client * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function refresh_token_if_expired($google_client) { } /** * Get Forminator_Google_Client Object * * @since 1.0 Google Sheets Integration * @return ForminatorGoogleAddon\Google\Client */ public function get_google_client() { } /** * Revoke token on Google before deactivate * * @since 1.0 Google Sheets Integration * @return bool * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function deactivate() { } /** * Allow multiple connection on one poll * * @since 1.6.1 * @return bool */ public function is_allow_multi_on_poll() { } /** * Allow multiple connection on one quiz * * @since 1.6.1 * @return bool */ public function is_allow_multi_on_quiz() { } } } namespace ForminatorGoogleAddon\Firebase\JWT { interface JWTExceptionWithPayloadInterface { /** * Get the payload that caused this exception. * * @return object */ public function getPayload(): object; /** * Get the payload that caused this exception. * * @param object $payload * @return void */ public function setPayload(object $payload): void; } class BeforeValidException extends \UnexpectedValueException implements \ForminatorGoogleAddon\Firebase\JWT\JWTExceptionWithPayloadInterface { private object $payload; public function setPayload(object $payload): void { } public function getPayload(): object { } } /** * @implements ArrayAccess */ class CachedKeySet implements \ArrayAccess { /** * @var string */ private $jwksUri; /** * @var ClientInterface */ private $httpClient; /** * @var RequestFactoryInterface */ private $httpFactory; /** * @var CacheItemPoolInterface */ private $cache; /** * @var ?int */ private $expiresAfter; /** * @var ?CacheItemInterface */ private $cacheItem; /** * @var array> */ private $keySet; /** * @var string */ private $cacheKey; /** * @var string */ private $cacheKeyPrefix = 'jwks'; /** * @var int */ private $maxKeyLength = 64; /** * @var bool */ private $rateLimit; /** * @var string */ private $rateLimitCacheKey; /** * @var int */ private $maxCallsPerMinute = 10; /** * @var string|null */ private $defaultAlg; public function __construct(string $jwksUri, \ForminatorGoogleAddon\Psr\Http\Client\ClientInterface $httpClient, \ForminatorGoogleAddon\Psr\Http\Message\RequestFactoryInterface $httpFactory, \ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface $cache, int $expiresAfter = null, bool $rateLimit = \false, string $defaultAlg = null) { } /** * @param string $keyId * @return Key */ public function offsetGet($keyId): \ForminatorGoogleAddon\Firebase\JWT\Key { } /** * @param string $keyId * @return bool */ public function offsetExists($keyId): bool { } /** * @param string $offset * @param Key $value */ public function offsetSet($offset, $value): void { } /** * @param string $offset */ public function offsetUnset($offset): void { } /** * @return array */ private function formatJwksForCache(string $jwks): array { } private function keyIdExists(string $keyId): bool { } private function rateLimitExceeded(): bool { } private function getCacheItem(): \ForminatorGoogleAddon\Psr\Cache\CacheItemInterface { } private function setCacheKeys(): void { } } class ExpiredException extends \UnexpectedValueException implements \ForminatorGoogleAddon\Firebase\JWT\JWTExceptionWithPayloadInterface { private object $payload; public function setPayload(object $payload): void { } public function getPayload(): object { } } /** * JSON Web Key implementation, based on this spec: * https://tools.ietf.org/html/draft-ietf-jose-json-web-key-41 * * PHP version 5 * * @category Authentication * @package Authentication_JWT * @author Bui Sy Nguyen * @license http://opensource.org/licenses/BSD-3-Clause 3-clause BSD * @link https://github.com/firebase/php-jwt */ class JWK { private const OID = '1.2.840.10045.2.1'; private const ASN1_OBJECT_IDENTIFIER = 0x6; private const ASN1_SEQUENCE = 0x10; // also defined in JWT private const ASN1_BIT_STRING = 0x3; private const EC_CURVES = [ 'P-256' => '1.2.840.10045.3.1.7', // Len: 64 'secp256k1' => '1.3.132.0.10', // Len: 64 'P-384' => '1.3.132.0.34', ]; // For keys with "kty" equal to "OKP" (Octet Key Pair), the "crv" parameter must contain the key subtype. // This library supports the following subtypes: private const OKP_SUBTYPES = ['Ed25519' => \true]; /** * Parse a set of JWK keys * * @param array $jwks The JSON Web Key Set as an associative array * @param string $defaultAlg The algorithm for the Key object if "alg" is not set in the * JSON Web Key Set * * @return array An associative array of key IDs (kid) to Key objects * * @throws InvalidArgumentException Provided JWK Set is empty * @throws UnexpectedValueException Provided JWK Set was invalid * @throws DomainException OpenSSL failure * * @uses parseKey */ public static function parseKeySet(array $jwks, string $defaultAlg = null): array { } /** * Parse a JWK key * * @param array $jwk An individual JWK * @param string $defaultAlg The algorithm for the Key object if "alg" is not set in the * JSON Web Key Set * * @return Key The key object for the JWK * * @throws InvalidArgumentException Provided JWK is empty * @throws UnexpectedValueException Provided JWK was invalid * @throws DomainException OpenSSL failure * * @uses createPemFromModulusAndExponent */ public static function parseKey(array $jwk, string $defaultAlg = null): ?\ForminatorGoogleAddon\Firebase\JWT\Key { } /** * Converts the EC JWK values to pem format. * * @param string $crv The EC curve (only P-256 & P-384 is supported) * @param string $x The EC x-coordinate * @param string $y The EC y-coordinate * * @return string */ private static function createPemFromCrvAndXYCoordinates(string $crv, string $x, string $y): string { } /** * Create a public key represented in PEM format from RSA modulus and exponent information * * @param string $n The RSA modulus encoded in Base64 * @param string $e The RSA exponent encoded in Base64 * * @return string The RSA public key represented in PEM format * * @uses encodeLength */ private static function createPemFromModulusAndExponent(string $n, string $e): string { } /** * DER-encode the length * * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information. * * @param int $length * @return string */ private static function encodeLength(int $length): string { } /** * Encodes a value into a DER object. * Also defined in Firebase\JWT\JWT * * @param int $type DER tag * @param string $value the value to encode * @return string the encoded object */ private static function encodeDER(int $type, string $value): string { } /** * Encodes a string into a DER-encoded OID. * * @param string $oid the OID string * @return string the binary DER-encoded OID */ private static function encodeOID(string $oid): string { } } /** * JSON Web Token implementation, based on this spec: * https://tools.ietf.org/html/rfc7519 * * PHP version 5 * * @category Authentication * @package Authentication_JWT * @author Neuman Vong * @author Anant Narayanan * @license http://opensource.org/licenses/BSD-3-Clause 3-clause BSD * @link https://github.com/firebase/php-jwt */ class JWT { private const ASN1_INTEGER = 0x2; private const ASN1_SEQUENCE = 0x10; private const ASN1_BIT_STRING = 0x3; /** * When checking nbf, iat or expiration times, * we want to provide some extra leeway time to * account for clock skew. * * @var int */ public static $leeway = 0; /** * Allow the current timestamp to be specified. * Useful for fixing a value within unit testing. * Will default to PHP time() value if null. * * @var ?int */ public static $timestamp = null; /** * @var array */ public static $supported_algs = ['ES384' => ['openssl', 'SHA384'], 'ES256' => ['openssl', 'SHA256'], 'ES256K' => ['openssl', 'SHA256'], 'HS256' => ['hash_hmac', 'SHA256'], 'HS384' => ['hash_hmac', 'SHA384'], 'HS512' => ['hash_hmac', 'SHA512'], 'RS256' => ['openssl', 'SHA256'], 'RS384' => ['openssl', 'SHA384'], 'RS512' => ['openssl', 'SHA512'], 'EdDSA' => ['sodium_crypto', 'EdDSA']]; /** * Decodes a JWT string into a PHP object. * * @param string $jwt The JWT * @param Key|ArrayAccess|array $keyOrKeyArray The Key or associative array of key IDs * (kid) to Key objects. * If the algorithm used is asymmetric, this is * the public key. * Each Key object contains an algorithm and * matching key. * Supported algorithms are 'ES384','ES256', * 'HS256', 'HS384', 'HS512', 'RS256', 'RS384' * and 'RS512'. * @param stdClass $headers Optional. Populates stdClass with headers. * * @return stdClass The JWT's payload as a PHP object * * @throws InvalidArgumentException Provided key/key-array was empty or malformed * @throws DomainException Provided JWT is malformed * @throws UnexpectedValueException Provided JWT was invalid * @throws SignatureInvalidException Provided JWT was invalid because the signature verification failed * @throws BeforeValidException Provided JWT is trying to be used before it's eligible as defined by 'nbf' * @throws BeforeValidException Provided JWT is trying to be used before it's been created as defined by 'iat' * @throws ExpiredException Provided JWT has since expired, as defined by the 'exp' claim * * @uses jsonDecode * @uses urlsafeB64Decode */ public static function decode(string $jwt, $keyOrKeyArray, \stdClass &$headers = null): \stdClass { } /** * Converts and signs a PHP array into a JWT string. * * @param array $payload PHP array * @param string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate $key The secret key. * @param string $alg Supported algorithms are 'ES384','ES256', 'ES256K', 'HS256', * 'HS384', 'HS512', 'RS256', 'RS384', and 'RS512' * @param string $keyId * @param array $head An array with header elements to attach * * @return string A signed JWT * * @uses jsonEncode * @uses urlsafeB64Encode */ public static function encode(array $payload, $key, string $alg, string $keyId = null, array $head = null): string { } /** * Sign a string with a given key and algorithm. * * @param string $msg The message to sign * @param string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate $key The secret key. * @param string $alg Supported algorithms are 'EdDSA', 'ES384', 'ES256', 'ES256K', 'HS256', * 'HS384', 'HS512', 'RS256', 'RS384', and 'RS512' * * @return string An encrypted message * * @throws DomainException Unsupported algorithm or bad key was specified */ public static function sign(string $msg, $key, string $alg): string { } /** * Verify a signature with the message, key and method. Not all methods * are symmetric, so we must have a separate verify and sign method. * * @param string $msg The original message (header and body) * @param string $signature The original signature * @param string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate $keyMaterial For Ed*, ES*, HS*, a string key works. for RS*, must be an instance of OpenSSLAsymmetricKey * @param string $alg The algorithm * * @return bool * * @throws DomainException Invalid Algorithm, bad key, or OpenSSL failure */ private static function verify(string $msg, string $signature, $keyMaterial, string $alg): bool { } /** * Decode a JSON string into a PHP object. * * @param string $input JSON string * * @return mixed The decoded JSON string * * @throws DomainException Provided string was invalid JSON */ public static function jsonDecode(string $input) { } /** * Encode a PHP array into a JSON string. * * @param array $input A PHP array * * @return string JSON representation of the PHP array * * @throws DomainException Provided object could not be encoded to valid JSON */ public static function jsonEncode(array $input): string { } /** * Decode a string with URL-safe Base64. * * @param string $input A Base64 encoded string * * @return string A decoded string * * @throws InvalidArgumentException invalid base64 characters */ public static function urlsafeB64Decode(string $input): string { } /** * Convert a string in the base64url (URL-safe Base64) encoding to standard base64. * * @param string $input A Base64 encoded string with URL-safe characters (-_ and no padding) * * @return string A Base64 encoded string with standard characters (+/) and padding (=), when * needed. * * @see https://www.rfc-editor.org/rfc/rfc4648 */ public static function convertBase64UrlToBase64(string $input): string { } /** * Encode a string with URL-safe Base64. * * @param string $input The string you want encoded * * @return string The base64 encode of what you passed in */ public static function urlsafeB64Encode(string $input): string { } /** * Determine if an algorithm has been provided for each Key * * @param Key|ArrayAccess|array $keyOrKeyArray * @param string|null $kid * * @throws UnexpectedValueException * * @return Key */ private static function getKey($keyOrKeyArray, ?string $kid): \ForminatorGoogleAddon\Firebase\JWT\Key { } /** * @param string $left The string of known length to compare against * @param string $right The user-supplied string * @return bool */ public static function constantTimeEquals(string $left, string $right): bool { } /** * Helper method to create a JSON error. * * @param int $errno An error number from json_last_error() * * @throws DomainException * * @return void */ private static function handleJsonError(int $errno): void { } /** * Get the number of bytes in cryptographic strings. * * @param string $str * * @return int */ private static function safeStrlen(string $str): int { } /** * Convert an ECDSA signature to an ASN.1 DER sequence * * @param string $sig The ECDSA signature to convert * @return string The encoded DER object */ private static function signatureToDER(string $sig): string { } /** * Encodes a value into a DER object. * * @param int $type DER tag * @param string $value the value to encode * * @return string the encoded object */ private static function encodeDER(int $type, string $value): string { } /** * Encodes signature from a DER object. * * @param string $der binary signature in DER format * @param int $keySize the number of bits in the key * * @return string the signature */ private static function signatureFromDER(string $der, int $keySize): string { } /** * Reads binary DER-encoded data and decodes into a single object * * @param string $der the binary data in DER format * @param int $offset the offset of the data stream containing the object * to decode * * @return array{int, string|null} the new offset and the decoded object */ private static function readDER(string $der, int $offset = 0): array { } } class Key { /** @var string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate */ private $keyMaterial; /** @var string */ private $algorithm; /** * @param string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate $keyMaterial * @param string $algorithm */ public function __construct($keyMaterial, string $algorithm) { } /** * Return the algorithm valid for this key * * @return string */ public function getAlgorithm(): string { } /** * @return string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate */ public function getKeyMaterial() { } } class SignatureInvalidException extends \UnexpectedValueException { } } namespace ForminatorGoogleAddon\Google { class Service { public $batchPath; /** * Only used in getBatch */ public $rootUrl; public $rootUrlTemplate; public $version; public $servicePath; public $serviceName; public $availableScopes; public $resource; private $client; public function __construct($clientOrConfig = []) { } /** * Return the associated Google\Client class. * @return \Google\Client */ public function getClient() { } /** * Create a new HTTP Batch handler for this service * * @return Batch */ public function createBatch() { } } } namespace ForminatorGoogleAddon\Google\Service { /** * Service definition for Drive (v3). * *

* The Google Drive API allows clients to access resources from Google Drive.

* *

* For more information about this service, see the API * Documentation *

* * @author Google, Inc. */ class Drive extends \ForminatorGoogleAddon\Google\Service { /** See, edit, create, and delete all of your Google Drive files. */ const DRIVE = "https://www.googleapis.com/auth/drive"; /** See, create, and delete its own configuration data in your Google Drive. */ const DRIVE_APPDATA = "https://www.googleapis.com/auth/drive.appdata"; /** View your Google Drive apps. */ const DRIVE_APPS_READONLY = "https://www.googleapis.com/auth/drive.apps.readonly"; /** See, edit, create, and delete only the specific Google Drive files you use with this app. */ const DRIVE_FILE = "https://www.googleapis.com/auth/drive.file"; /** View and manage metadata of files in your Google Drive. */ const DRIVE_METADATA = "https://www.googleapis.com/auth/drive.metadata"; /** See information about your Google Drive files. */ const DRIVE_METADATA_READONLY = "https://www.googleapis.com/auth/drive.metadata.readonly"; /** View the photos, videos and albums in your Google Photos. */ const DRIVE_PHOTOS_READONLY = "https://www.googleapis.com/auth/drive.photos.readonly"; /** See and download all your Google Drive files. */ const DRIVE_READONLY = "https://www.googleapis.com/auth/drive.readonly"; /** Modify your Google Apps Script scripts' behavior. */ const DRIVE_SCRIPTS = "https://www.googleapis.com/auth/drive.scripts"; public $about; public $apps; public $changes; public $channels; public $comments; public $drives; public $files; public $permissions; public $replies; public $revisions; public $teamdrives; public $rootUrlTemplate; /** * Constructs the internal representation of the Drive service. * * @param Client|array $clientOrConfig The client used to deliver requests, or a * config array to pass to a new Client instance. * @param string $rootUrl The root URL used for requests to the service. */ public function __construct($clientOrConfig = [], $rootUrl = null) { } } } namespace ForminatorGoogleAddon\Google { /** * This class defines attributes, valid values, and usage which is generated * from a given json schema. * http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5 * */ #[\AllowDynamicProperties] class Model implements \ArrayAccess { /** * If you need to specify a NULL JSON value, use Google\Model::NULL_VALUE * instead - it will be replaced when converting to JSON with a real null. */ const NULL_VALUE = "{}gapi-php-null"; protected $internal_gapi_mappings = []; protected $modelData = []; protected $processed = []; /** * Polymorphic - accepts a variable number of arguments dependent * on the type of the model subclass. */ final public function __construct() { } /** * Getter that handles passthrough access to the data array, and lazy object creation. * @param string $key Property name. * @return mixed The value if any, or null. */ public function __get($key) { } /** * Initialize this object's properties from an array. * * @param array $array Used to seed this object's properties. * @return void */ protected function mapTypes($array) { } /** * Blank initialiser to be used in subclasses to do post-construction initialisation - this * avoids the need for subclasses to have to implement the variadics handling in their * constructors. */ protected function gapiInit() { } /** * Create a simplified object suitable for straightforward * conversion to JSON. This is relatively expensive * due to the usage of reflection, but shouldn't be called * a whole lot, and is the most straightforward way to filter. */ public function toSimpleObject() { } /** * Handle different types of values, primarily * other objects and map and array data types. */ private function getSimpleValue($value) { } /** * Check whether the value is the null placeholder and return true null. */ private function nullPlaceholderCheck($value) { } /** * If there is an internal name mapping, use that. */ private function getMappedName($key) { } /** * Returns true only if the array is associative. * @param array $array * @return bool True if the array is associative. */ protected function isAssociativeArray($array) { } /** * Verify if $obj is an array. * @throws \Google\Exception Thrown if $obj isn't an array. * @param array $obj Items that should be validated. * @param string $method Method expecting an array as an argument. */ public function assertIsArray($obj, $method) { } /** @return bool */ #[\ReturnTypeWillChange] public function offsetExists($offset) { } /** @return mixed */ #[\ReturnTypeWillChange] public function offsetGet($offset) { } /** @return void */ #[\ReturnTypeWillChange] public function offsetSet($offset, $value) { } /** @return void */ #[\ReturnTypeWillChange] public function offsetUnset($offset) { } protected function keyType($key) { } protected function dataType($key) { } public function __isset($key) { } public function __unset($key) { } /** * Convert a string to camelCase * @param string $value * @return string */ private function camelCase($value) { } } /** * Extension to the regular Google\Model that automatically * exposes the items array for iteration, so you can just * iterate over the object rather than a reference inside. */ class Collection extends \ForminatorGoogleAddon\Google\Model implements \Iterator, \Countable { protected $collection_key = 'items'; /** @return void */ #[\ReturnTypeWillChange] public function rewind() { } /** @return mixed */ #[\ReturnTypeWillChange] public function current() { } /** @return mixed */ #[\ReturnTypeWillChange] public function key() { } /** @return mixed */ #[\ReturnTypeWillChange] public function next() { } /** @return bool */ #[\ReturnTypeWillChange] public function valid() { } /** @return int */ #[\ReturnTypeWillChange] public function count() { } /** @return bool */ #[\ReturnTypeWillChange] public function offsetExists($offset) { } /** @return mixed */ #[\ReturnTypeWillChange] public function offsetGet($offset) { } /** @return void */ #[\ReturnTypeWillChange] public function offsetSet($offset, $value) { } /** @return void */ #[\ReturnTypeWillChange] public function offsetUnset($offset) { } private function coerceType($offset) { } } } namespace ForminatorGoogleAddon\Google\Service\Drive { class About extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'teamDriveThemes'; /** * @var bool */ public $appInstalled; /** * @var bool */ public $canCreateDrives; /** * @var bool */ public $canCreateTeamDrives; protected $driveThemesType = \ForminatorGoogleAddon\Google\Service\Drive\AboutDriveThemes::class; protected $driveThemesDataType = 'array'; /** * @var string[] */ public $exportFormats; /** * @var string[] */ public $folderColorPalette; /** * @var string[] */ public $importFormats; /** * @var string */ public $kind; /** * @var string[] */ public $maxImportSizes; /** * @var string */ public $maxUploadSize; protected $storageQuotaType = \ForminatorGoogleAddon\Google\Service\Drive\AboutStorageQuota::class; protected $storageQuotaDataType = ''; protected $teamDriveThemesType = \ForminatorGoogleAddon\Google\Service\Drive\AboutTeamDriveThemes::class; protected $teamDriveThemesDataType = 'array'; protected $userType = \ForminatorGoogleAddon\Google\Service\Drive\User::class; protected $userDataType = ''; /** * @param bool */ public function setAppInstalled($appInstalled) { } /** * @return bool */ public function getAppInstalled() { } /** * @param bool */ public function setCanCreateDrives($canCreateDrives) { } /** * @return bool */ public function getCanCreateDrives() { } /** * @param bool */ public function setCanCreateTeamDrives($canCreateTeamDrives) { } /** * @return bool */ public function getCanCreateTeamDrives() { } /** * @param AboutDriveThemes[] */ public function setDriveThemes($driveThemes) { } /** * @return AboutDriveThemes[] */ public function getDriveThemes() { } /** * @param string[] */ public function setExportFormats($exportFormats) { } /** * @return string[] */ public function getExportFormats() { } /** * @param string[] */ public function setFolderColorPalette($folderColorPalette) { } /** * @return string[] */ public function getFolderColorPalette() { } /** * @param string[] */ public function setImportFormats($importFormats) { } /** * @return string[] */ public function getImportFormats() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string[] */ public function setMaxImportSizes($maxImportSizes) { } /** * @return string[] */ public function getMaxImportSizes() { } /** * @param string */ public function setMaxUploadSize($maxUploadSize) { } /** * @return string */ public function getMaxUploadSize() { } /** * @param AboutStorageQuota */ public function setStorageQuota(\ForminatorGoogleAddon\Google\Service\Drive\AboutStorageQuota $storageQuota) { } /** * @return AboutStorageQuota */ public function getStorageQuota() { } /** * @param AboutTeamDriveThemes[] */ public function setTeamDriveThemes($teamDriveThemes) { } /** * @return AboutTeamDriveThemes[] */ public function getTeamDriveThemes() { } /** * @param User */ public function setUser(\ForminatorGoogleAddon\Google\Service\Drive\User $user) { } /** * @return User */ public function getUser() { } } class AboutDriveThemes extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $backgroundImageLink; /** * @var string */ public $colorRgb; /** * @var string */ public $id; /** * @param string */ public function setBackgroundImageLink($backgroundImageLink) { } /** * @return string */ public function getBackgroundImageLink() { } /** * @param string */ public function setColorRgb($colorRgb) { } /** * @return string */ public function getColorRgb() { } /** * @param string */ public function setId($id) { } /** * @return string */ public function getId() { } } class AboutStorageQuota extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $limit; /** * @var string */ public $usage; /** * @var string */ public $usageInDrive; /** * @var string */ public $usageInDriveTrash; /** * @param string */ public function setLimit($limit) { } /** * @return string */ public function getLimit() { } /** * @param string */ public function setUsage($usage) { } /** * @return string */ public function getUsage() { } /** * @param string */ public function setUsageInDrive($usageInDrive) { } /** * @return string */ public function getUsageInDrive() { } /** * @param string */ public function setUsageInDriveTrash($usageInDriveTrash) { } /** * @return string */ public function getUsageInDriveTrash() { } } class AboutTeamDriveThemes extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $backgroundImageLink; /** * @var string */ public $colorRgb; /** * @var string */ public $id; /** * @param string */ public function setBackgroundImageLink($backgroundImageLink) { } /** * @return string */ public function getBackgroundImageLink() { } /** * @param string */ public function setColorRgb($colorRgb) { } /** * @return string */ public function getColorRgb() { } /** * @param string */ public function setId($id) { } /** * @return string */ public function getId() { } } class App extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'secondaryMimeTypes'; /** * @var bool */ public $authorized; /** * @var string */ public $createInFolderTemplate; /** * @var string */ public $createUrl; /** * @var bool */ public $hasDriveWideScope; protected $iconsType = \ForminatorGoogleAddon\Google\Service\Drive\AppIcons::class; protected $iconsDataType = 'array'; /** * @var string */ public $id; /** * @var bool */ public $installed; /** * @var string */ public $kind; /** * @var string */ public $longDescription; /** * @var string */ public $name; /** * @var string */ public $objectType; /** * @var string */ public $openUrlTemplate; /** * @var string[] */ public $primaryFileExtensions; /** * @var string[] */ public $primaryMimeTypes; /** * @var string */ public $productId; /** * @var string */ public $productUrl; /** * @var string[] */ public $secondaryFileExtensions; /** * @var string[] */ public $secondaryMimeTypes; /** * @var string */ public $shortDescription; /** * @var bool */ public $supportsCreate; /** * @var bool */ public $supportsImport; /** * @var bool */ public $supportsMultiOpen; /** * @var bool */ public $supportsOfflineCreate; /** * @var bool */ public $useByDefault; /** * @param bool */ public function setAuthorized($authorized) { } /** * @return bool */ public function getAuthorized() { } /** * @param string */ public function setCreateInFolderTemplate($createInFolderTemplate) { } /** * @return string */ public function getCreateInFolderTemplate() { } /** * @param string */ public function setCreateUrl($createUrl) { } /** * @return string */ public function getCreateUrl() { } /** * @param bool */ public function setHasDriveWideScope($hasDriveWideScope) { } /** * @return bool */ public function getHasDriveWideScope() { } /** * @param AppIcons[] */ public function setIcons($icons) { } /** * @return AppIcons[] */ public function getIcons() { } /** * @param string */ public function setId($id) { } /** * @return string */ public function getId() { } /** * @param bool */ public function setInstalled($installed) { } /** * @return bool */ public function getInstalled() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setLongDescription($longDescription) { } /** * @return string */ public function getLongDescription() { } /** * @param string */ public function setName($name) { } /** * @return string */ public function getName() { } /** * @param string */ public function setObjectType($objectType) { } /** * @return string */ public function getObjectType() { } /** * @param string */ public function setOpenUrlTemplate($openUrlTemplate) { } /** * @return string */ public function getOpenUrlTemplate() { } /** * @param string[] */ public function setPrimaryFileExtensions($primaryFileExtensions) { } /** * @return string[] */ public function getPrimaryFileExtensions() { } /** * @param string[] */ public function setPrimaryMimeTypes($primaryMimeTypes) { } /** * @return string[] */ public function getPrimaryMimeTypes() { } /** * @param string */ public function setProductId($productId) { } /** * @return string */ public function getProductId() { } /** * @param string */ public function setProductUrl($productUrl) { } /** * @return string */ public function getProductUrl() { } /** * @param string[] */ public function setSecondaryFileExtensions($secondaryFileExtensions) { } /** * @return string[] */ public function getSecondaryFileExtensions() { } /** * @param string[] */ public function setSecondaryMimeTypes($secondaryMimeTypes) { } /** * @return string[] */ public function getSecondaryMimeTypes() { } /** * @param string */ public function setShortDescription($shortDescription) { } /** * @return string */ public function getShortDescription() { } /** * @param bool */ public function setSupportsCreate($supportsCreate) { } /** * @return bool */ public function getSupportsCreate() { } /** * @param bool */ public function setSupportsImport($supportsImport) { } /** * @return bool */ public function getSupportsImport() { } /** * @param bool */ public function setSupportsMultiOpen($supportsMultiOpen) { } /** * @return bool */ public function getSupportsMultiOpen() { } /** * @param bool */ public function setSupportsOfflineCreate($supportsOfflineCreate) { } /** * @return bool */ public function getSupportsOfflineCreate() { } /** * @param bool */ public function setUseByDefault($useByDefault) { } /** * @return bool */ public function getUseByDefault() { } } class AppIcons extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $category; /** * @var string */ public $iconUrl; /** * @var int */ public $size; /** * @param string */ public function setCategory($category) { } /** * @return string */ public function getCategory() { } /** * @param string */ public function setIconUrl($iconUrl) { } /** * @return string */ public function getIconUrl() { } /** * @param int */ public function setSize($size) { } /** * @return int */ public function getSize() { } } class AppList extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'items'; /** * @var string[] */ public $defaultAppIds; protected $itemsType = \ForminatorGoogleAddon\Google\Service\Drive\App::class; protected $itemsDataType = 'array'; /** * @var string */ public $kind; /** * @var string */ public $selfLink; /** * @param string[] */ public function setDefaultAppIds($defaultAppIds) { } /** * @return string[] */ public function getDefaultAppIds() { } /** * @param App[] */ public function setItems($items) { } /** * @return App[] */ public function getItems() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setSelfLink($selfLink) { } /** * @return string */ public function getSelfLink() { } } class Change extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $changeType; protected $driveType = \ForminatorGoogleAddon\Google\Service\Drive\Drive::class; protected $driveDataType = ''; /** * @var string */ public $driveId; protected $fileType = \ForminatorGoogleAddon\Google\Service\Drive\DriveFile::class; protected $fileDataType = ''; /** * @var string */ public $fileId; /** * @var string */ public $kind; /** * @var bool */ public $removed; protected $teamDriveType = \ForminatorGoogleAddon\Google\Service\Drive\TeamDrive::class; protected $teamDriveDataType = ''; /** * @var string */ public $teamDriveId; /** * @var string */ public $time; /** * @var string */ public $type; /** * @param string */ public function setChangeType($changeType) { } /** * @return string */ public function getChangeType() { } /** * @param Drive */ public function setDrive(\ForminatorGoogleAddon\Google\Service\Drive\Drive $drive) { } /** * @return Drive */ public function getDrive() { } /** * @param string */ public function setDriveId($driveId) { } /** * @return string */ public function getDriveId() { } /** * @param DriveFile */ public function setFile(\ForminatorGoogleAddon\Google\Service\Drive\DriveFile $file) { } /** * @return DriveFile */ public function getFile() { } /** * @param string */ public function setFileId($fileId) { } /** * @return string */ public function getFileId() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param bool */ public function setRemoved($removed) { } /** * @return bool */ public function getRemoved() { } /** * @param TeamDrive */ public function setTeamDrive(\ForminatorGoogleAddon\Google\Service\Drive\TeamDrive $teamDrive) { } /** * @return TeamDrive */ public function getTeamDrive() { } /** * @param string */ public function setTeamDriveId($teamDriveId) { } /** * @return string */ public function getTeamDriveId() { } /** * @param string */ public function setTime($time) { } /** * @return string */ public function getTime() { } /** * @param string */ public function setType($type) { } /** * @return string */ public function getType() { } } class ChangeList extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'changes'; protected $changesType = \ForminatorGoogleAddon\Google\Service\Drive\Change::class; protected $changesDataType = 'array'; /** * @var string */ public $kind; /** * @var string */ public $newStartPageToken; /** * @var string */ public $nextPageToken; /** * @param Change[] */ public function setChanges($changes) { } /** * @return Change[] */ public function getChanges() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setNewStartPageToken($newStartPageToken) { } /** * @return string */ public function getNewStartPageToken() { } /** * @param string */ public function setNextPageToken($nextPageToken) { } /** * @return string */ public function getNextPageToken() { } } class Channel extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $address; /** * @var string */ public $expiration; /** * @var string */ public $id; /** * @var string */ public $kind; /** * @var string[] */ public $params; /** * @var bool */ public $payload; /** * @var string */ public $resourceId; /** * @var string */ public $resourceUri; /** * @var string */ public $token; /** * @var string */ public $type; /** * @param string */ public function setAddress($address) { } /** * @return string */ public function getAddress() { } /** * @param string */ public function setExpiration($expiration) { } /** * @return string */ public function getExpiration() { } /** * @param string */ public function setId($id) { } /** * @return string */ public function getId() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string[] */ public function setParams($params) { } /** * @return string[] */ public function getParams() { } /** * @param bool */ public function setPayload($payload) { } /** * @return bool */ public function getPayload() { } /** * @param string */ public function setResourceId($resourceId) { } /** * @return string */ public function getResourceId() { } /** * @param string */ public function setResourceUri($resourceUri) { } /** * @return string */ public function getResourceUri() { } /** * @param string */ public function setToken($token) { } /** * @return string */ public function getToken() { } /** * @param string */ public function setType($type) { } /** * @return string */ public function getType() { } } class Comment extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'replies'; /** * @var string */ public $anchor; protected $authorType = \ForminatorGoogleAddon\Google\Service\Drive\User::class; protected $authorDataType = ''; /** * @var string */ public $content; /** * @var string */ public $createdTime; /** * @var bool */ public $deleted; /** * @var string */ public $htmlContent; /** * @var string */ public $id; /** * @var string */ public $kind; /** * @var string */ public $modifiedTime; protected $quotedFileContentType = \ForminatorGoogleAddon\Google\Service\Drive\CommentQuotedFileContent::class; protected $quotedFileContentDataType = ''; protected $repliesType = \ForminatorGoogleAddon\Google\Service\Drive\Reply::class; protected $repliesDataType = 'array'; /** * @var bool */ public $resolved; /** * @param string */ public function setAnchor($anchor) { } /** * @return string */ public function getAnchor() { } /** * @param User */ public function setAuthor(\ForminatorGoogleAddon\Google\Service\Drive\User $author) { } /** * @return User */ public function getAuthor() { } /** * @param string */ public function setContent($content) { } /** * @return string */ public function getContent() { } /** * @param string */ public function setCreatedTime($createdTime) { } /** * @return string */ public function getCreatedTime() { } /** * @param bool */ public function setDeleted($deleted) { } /** * @return bool */ public function getDeleted() { } /** * @param string */ public function setHtmlContent($htmlContent) { } /** * @return string */ public function getHtmlContent() { } /** * @param string */ public function setId($id) { } /** * @return string */ public function getId() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setModifiedTime($modifiedTime) { } /** * @return string */ public function getModifiedTime() { } /** * @param CommentQuotedFileContent */ public function setQuotedFileContent(\ForminatorGoogleAddon\Google\Service\Drive\CommentQuotedFileContent $quotedFileContent) { } /** * @return CommentQuotedFileContent */ public function getQuotedFileContent() { } /** * @param Reply[] */ public function setReplies($replies) { } /** * @return Reply[] */ public function getReplies() { } /** * @param bool */ public function setResolved($resolved) { } /** * @return bool */ public function getResolved() { } } class CommentList extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'comments'; protected $commentsType = \ForminatorGoogleAddon\Google\Service\Drive\Comment::class; protected $commentsDataType = 'array'; /** * @var string */ public $kind; /** * @var string */ public $nextPageToken; /** * @param Comment[] */ public function setComments($comments) { } /** * @return Comment[] */ public function getComments() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setNextPageToken($nextPageToken) { } /** * @return string */ public function getNextPageToken() { } } class CommentQuotedFileContent extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $mimeType; /** * @var string */ public $value; /** * @param string */ public function setMimeType($mimeType) { } /** * @return string */ public function getMimeType() { } /** * @param string */ public function setValue($value) { } /** * @return string */ public function getValue() { } } class ContentRestriction extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $ownerRestricted; /** * @var bool */ public $readOnly; /** * @var string */ public $reason; protected $restrictingUserType = \ForminatorGoogleAddon\Google\Service\Drive\User::class; protected $restrictingUserDataType = ''; /** * @var string */ public $restrictionTime; /** * @var bool */ public $systemRestricted; /** * @var string */ public $type; /** * @param bool */ public function setOwnerRestricted($ownerRestricted) { } /** * @return bool */ public function getOwnerRestricted() { } /** * @param bool */ public function setReadOnly($readOnly) { } /** * @return bool */ public function getReadOnly() { } /** * @param string */ public function setReason($reason) { } /** * @return string */ public function getReason() { } /** * @param User */ public function setRestrictingUser(\ForminatorGoogleAddon\Google\Service\Drive\User $restrictingUser) { } /** * @return User */ public function getRestrictingUser() { } /** * @param string */ public function setRestrictionTime($restrictionTime) { } /** * @return string */ public function getRestrictionTime() { } /** * @param bool */ public function setSystemRestricted($systemRestricted) { } /** * @return bool */ public function getSystemRestricted() { } /** * @param string */ public function setType($type) { } /** * @return string */ public function getType() { } } class Drive extends \ForminatorGoogleAddon\Google\Model { protected $backgroundImageFileType = \ForminatorGoogleAddon\Google\Service\Drive\DriveBackgroundImageFile::class; protected $backgroundImageFileDataType = ''; /** * @var string */ public $backgroundImageLink; protected $capabilitiesType = \ForminatorGoogleAddon\Google\Service\Drive\DriveCapabilities::class; protected $capabilitiesDataType = ''; /** * @var string */ public $colorRgb; /** * @var string */ public $createdTime; /** * @var bool */ public $hidden; /** * @var string */ public $id; /** * @var string */ public $kind; /** * @var string */ public $name; /** * @var string */ public $orgUnitId; protected $restrictionsType = \ForminatorGoogleAddon\Google\Service\Drive\DriveRestrictions::class; protected $restrictionsDataType = ''; /** * @var string */ public $themeId; /** * @param DriveBackgroundImageFile */ public function setBackgroundImageFile(\ForminatorGoogleAddon\Google\Service\Drive\DriveBackgroundImageFile $backgroundImageFile) { } /** * @return DriveBackgroundImageFile */ public function getBackgroundImageFile() { } /** * @param string */ public function setBackgroundImageLink($backgroundImageLink) { } /** * @return string */ public function getBackgroundImageLink() { } /** * @param DriveCapabilities */ public function setCapabilities(\ForminatorGoogleAddon\Google\Service\Drive\DriveCapabilities $capabilities) { } /** * @return DriveCapabilities */ public function getCapabilities() { } /** * @param string */ public function setColorRgb($colorRgb) { } /** * @return string */ public function getColorRgb() { } /** * @param string */ public function setCreatedTime($createdTime) { } /** * @return string */ public function getCreatedTime() { } /** * @param bool */ public function setHidden($hidden) { } /** * @return bool */ public function getHidden() { } /** * @param string */ public function setId($id) { } /** * @return string */ public function getId() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setName($name) { } /** * @return string */ public function getName() { } /** * @param string */ public function setOrgUnitId($orgUnitId) { } /** * @return string */ public function getOrgUnitId() { } /** * @param DriveRestrictions */ public function setRestrictions(\ForminatorGoogleAddon\Google\Service\Drive\DriveRestrictions $restrictions) { } /** * @return DriveRestrictions */ public function getRestrictions() { } /** * @param string */ public function setThemeId($themeId) { } /** * @return string */ public function getThemeId() { } } class DriveBackgroundImageFile extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $id; /** * @var float */ public $width; /** * @var float */ public $xCoordinate; /** * @var float */ public $yCoordinate; /** * @param string */ public function setId($id) { } /** * @return string */ public function getId() { } /** * @param float */ public function setWidth($width) { } /** * @return float */ public function getWidth() { } /** * @param float */ public function setXCoordinate($xCoordinate) { } /** * @return float */ public function getXCoordinate() { } /** * @param float */ public function setYCoordinate($yCoordinate) { } /** * @return float */ public function getYCoordinate() { } } class DriveCapabilities extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $canAddChildren; /** * @var bool */ public $canChangeCopyRequiresWriterPermissionRestriction; /** * @var bool */ public $canChangeDomainUsersOnlyRestriction; /** * @var bool */ public $canChangeDriveBackground; /** * @var bool */ public $canChangeDriveMembersOnlyRestriction; /** * @var bool */ public $canChangeSharingFoldersRequiresOrganizerPermissionRestriction; /** * @var bool */ public $canComment; /** * @var bool */ public $canCopy; /** * @var bool */ public $canDeleteChildren; /** * @var bool */ public $canDeleteDrive; /** * @var bool */ public $canDownload; /** * @var bool */ public $canEdit; /** * @var bool */ public $canListChildren; /** * @var bool */ public $canManageMembers; /** * @var bool */ public $canReadRevisions; /** * @var bool */ public $canRename; /** * @var bool */ public $canRenameDrive; /** * @var bool */ public $canResetDriveRestrictions; /** * @var bool */ public $canShare; /** * @var bool */ public $canTrashChildren; /** * @param bool */ public function setCanAddChildren($canAddChildren) { } /** * @return bool */ public function getCanAddChildren() { } /** * @param bool */ public function setCanChangeCopyRequiresWriterPermissionRestriction($canChangeCopyRequiresWriterPermissionRestriction) { } /** * @return bool */ public function getCanChangeCopyRequiresWriterPermissionRestriction() { } /** * @param bool */ public function setCanChangeDomainUsersOnlyRestriction($canChangeDomainUsersOnlyRestriction) { } /** * @return bool */ public function getCanChangeDomainUsersOnlyRestriction() { } /** * @param bool */ public function setCanChangeDriveBackground($canChangeDriveBackground) { } /** * @return bool */ public function getCanChangeDriveBackground() { } /** * @param bool */ public function setCanChangeDriveMembersOnlyRestriction($canChangeDriveMembersOnlyRestriction) { } /** * @return bool */ public function getCanChangeDriveMembersOnlyRestriction() { } /** * @param bool */ public function setCanChangeSharingFoldersRequiresOrganizerPermissionRestriction($canChangeSharingFoldersRequiresOrganizerPermissionRestriction) { } /** * @return bool */ public function getCanChangeSharingFoldersRequiresOrganizerPermissionRestriction() { } /** * @param bool */ public function setCanComment($canComment) { } /** * @return bool */ public function getCanComment() { } /** * @param bool */ public function setCanCopy($canCopy) { } /** * @return bool */ public function getCanCopy() { } /** * @param bool */ public function setCanDeleteChildren($canDeleteChildren) { } /** * @return bool */ public function getCanDeleteChildren() { } /** * @param bool */ public function setCanDeleteDrive($canDeleteDrive) { } /** * @return bool */ public function getCanDeleteDrive() { } /** * @param bool */ public function setCanDownload($canDownload) { } /** * @return bool */ public function getCanDownload() { } /** * @param bool */ public function setCanEdit($canEdit) { } /** * @return bool */ public function getCanEdit() { } /** * @param bool */ public function setCanListChildren($canListChildren) { } /** * @return bool */ public function getCanListChildren() { } /** * @param bool */ public function setCanManageMembers($canManageMembers) { } /** * @return bool */ public function getCanManageMembers() { } /** * @param bool */ public function setCanReadRevisions($canReadRevisions) { } /** * @return bool */ public function getCanReadRevisions() { } /** * @param bool */ public function setCanRename($canRename) { } /** * @return bool */ public function getCanRename() { } /** * @param bool */ public function setCanRenameDrive($canRenameDrive) { } /** * @return bool */ public function getCanRenameDrive() { } /** * @param bool */ public function setCanResetDriveRestrictions($canResetDriveRestrictions) { } /** * @return bool */ public function getCanResetDriveRestrictions() { } /** * @param bool */ public function setCanShare($canShare) { } /** * @return bool */ public function getCanShare() { } /** * @param bool */ public function setCanTrashChildren($canTrashChildren) { } /** * @return bool */ public function getCanTrashChildren() { } } class DriveFile extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'spaces'; /** * @var string[] */ public $appProperties; protected $capabilitiesType = \ForminatorGoogleAddon\Google\Service\Drive\DriveFileCapabilities::class; protected $capabilitiesDataType = ''; protected $contentHintsType = \ForminatorGoogleAddon\Google\Service\Drive\DriveFileContentHints::class; protected $contentHintsDataType = ''; protected $contentRestrictionsType = \ForminatorGoogleAddon\Google\Service\Drive\ContentRestriction::class; protected $contentRestrictionsDataType = 'array'; /** * @var bool */ public $copyRequiresWriterPermission; /** * @var string */ public $createdTime; /** * @var string */ public $description; /** * @var string */ public $driveId; /** * @var bool */ public $explicitlyTrashed; /** * @var string[] */ public $exportLinks; /** * @var string */ public $fileExtension; /** * @var string */ public $folderColorRgb; /** * @var string */ public $fullFileExtension; /** * @var bool */ public $hasAugmentedPermissions; /** * @var bool */ public $hasThumbnail; /** * @var string */ public $headRevisionId; /** * @var string */ public $iconLink; /** * @var string */ public $id; protected $imageMediaMetadataType = \ForminatorGoogleAddon\Google\Service\Drive\DriveFileImageMediaMetadata::class; protected $imageMediaMetadataDataType = ''; /** * @var bool */ public $isAppAuthorized; /** * @var string */ public $kind; protected $labelInfoType = \ForminatorGoogleAddon\Google\Service\Drive\DriveFileLabelInfo::class; protected $labelInfoDataType = ''; protected $lastModifyingUserType = \ForminatorGoogleAddon\Google\Service\Drive\User::class; protected $lastModifyingUserDataType = ''; protected $linkShareMetadataType = \ForminatorGoogleAddon\Google\Service\Drive\DriveFileLinkShareMetadata::class; protected $linkShareMetadataDataType = ''; /** * @var string */ public $md5Checksum; /** * @var string */ public $mimeType; /** * @var bool */ public $modifiedByMe; /** * @var string */ public $modifiedByMeTime; /** * @var string */ public $modifiedTime; /** * @var string */ public $name; /** * @var string */ public $originalFilename; /** * @var bool */ public $ownedByMe; protected $ownersType = \ForminatorGoogleAddon\Google\Service\Drive\User::class; protected $ownersDataType = 'array'; /** * @var string[] */ public $parents; /** * @var string[] */ public $permissionIds; protected $permissionsType = \ForminatorGoogleAddon\Google\Service\Drive\Permission::class; protected $permissionsDataType = 'array'; /** * @var string[] */ public $properties; /** * @var string */ public $quotaBytesUsed; /** * @var string */ public $resourceKey; /** * @var string */ public $sha1Checksum; /** * @var string */ public $sha256Checksum; /** * @var bool */ public $shared; /** * @var string */ public $sharedWithMeTime; protected $sharingUserType = \ForminatorGoogleAddon\Google\Service\Drive\User::class; protected $sharingUserDataType = ''; protected $shortcutDetailsType = \ForminatorGoogleAddon\Google\Service\Drive\DriveFileShortcutDetails::class; protected $shortcutDetailsDataType = ''; /** * @var string */ public $size; /** * @var string[] */ public $spaces; /** * @var bool */ public $starred; /** * @var string */ public $teamDriveId; /** * @var string */ public $thumbnailLink; /** * @var string */ public $thumbnailVersion; /** * @var bool */ public $trashed; /** * @var string */ public $trashedTime; protected $trashingUserType = \ForminatorGoogleAddon\Google\Service\Drive\User::class; protected $trashingUserDataType = ''; /** * @var string */ public $version; protected $videoMediaMetadataType = \ForminatorGoogleAddon\Google\Service\Drive\DriveFileVideoMediaMetadata::class; protected $videoMediaMetadataDataType = ''; /** * @var bool */ public $viewedByMe; /** * @var string */ public $viewedByMeTime; /** * @var bool */ public $viewersCanCopyContent; /** * @var string */ public $webContentLink; /** * @var string */ public $webViewLink; /** * @var bool */ public $writersCanShare; /** * @param string[] */ public function setAppProperties($appProperties) { } /** * @return string[] */ public function getAppProperties() { } /** * @param DriveFileCapabilities */ public function setCapabilities(\ForminatorGoogleAddon\Google\Service\Drive\DriveFileCapabilities $capabilities) { } /** * @return DriveFileCapabilities */ public function getCapabilities() { } /** * @param DriveFileContentHints */ public function setContentHints(\ForminatorGoogleAddon\Google\Service\Drive\DriveFileContentHints $contentHints) { } /** * @return DriveFileContentHints */ public function getContentHints() { } /** * @param ContentRestriction[] */ public function setContentRestrictions($contentRestrictions) { } /** * @return ContentRestriction[] */ public function getContentRestrictions() { } /** * @param bool */ public function setCopyRequiresWriterPermission($copyRequiresWriterPermission) { } /** * @return bool */ public function getCopyRequiresWriterPermission() { } /** * @param string */ public function setCreatedTime($createdTime) { } /** * @return string */ public function getCreatedTime() { } /** * @param string */ public function setDescription($description) { } /** * @return string */ public function getDescription() { } /** * @param string */ public function setDriveId($driveId) { } /** * @return string */ public function getDriveId() { } /** * @param bool */ public function setExplicitlyTrashed($explicitlyTrashed) { } /** * @return bool */ public function getExplicitlyTrashed() { } /** * @param string[] */ public function setExportLinks($exportLinks) { } /** * @return string[] */ public function getExportLinks() { } /** * @param string */ public function setFileExtension($fileExtension) { } /** * @return string */ public function getFileExtension() { } /** * @param string */ public function setFolderColorRgb($folderColorRgb) { } /** * @return string */ public function getFolderColorRgb() { } /** * @param string */ public function setFullFileExtension($fullFileExtension) { } /** * @return string */ public function getFullFileExtension() { } /** * @param bool */ public function setHasAugmentedPermissions($hasAugmentedPermissions) { } /** * @return bool */ public function getHasAugmentedPermissions() { } /** * @param bool */ public function setHasThumbnail($hasThumbnail) { } /** * @return bool */ public function getHasThumbnail() { } /** * @param string */ public function setHeadRevisionId($headRevisionId) { } /** * @return string */ public function getHeadRevisionId() { } /** * @param string */ public function setIconLink($iconLink) { } /** * @return string */ public function getIconLink() { } /** * @param string */ public function setId($id) { } /** * @return string */ public function getId() { } /** * @param DriveFileImageMediaMetadata */ public function setImageMediaMetadata(\ForminatorGoogleAddon\Google\Service\Drive\DriveFileImageMediaMetadata $imageMediaMetadata) { } /** * @return DriveFileImageMediaMetadata */ public function getImageMediaMetadata() { } /** * @param bool */ public function setIsAppAuthorized($isAppAuthorized) { } /** * @return bool */ public function getIsAppAuthorized() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param DriveFileLabelInfo */ public function setLabelInfo(\ForminatorGoogleAddon\Google\Service\Drive\DriveFileLabelInfo $labelInfo) { } /** * @return DriveFileLabelInfo */ public function getLabelInfo() { } /** * @param User */ public function setLastModifyingUser(\ForminatorGoogleAddon\Google\Service\Drive\User $lastModifyingUser) { } /** * @return User */ public function getLastModifyingUser() { } /** * @param DriveFileLinkShareMetadata */ public function setLinkShareMetadata(\ForminatorGoogleAddon\Google\Service\Drive\DriveFileLinkShareMetadata $linkShareMetadata) { } /** * @return DriveFileLinkShareMetadata */ public function getLinkShareMetadata() { } /** * @param string */ public function setMd5Checksum($md5Checksum) { } /** * @return string */ public function getMd5Checksum() { } /** * @param string */ public function setMimeType($mimeType) { } /** * @return string */ public function getMimeType() { } /** * @param bool */ public function setModifiedByMe($modifiedByMe) { } /** * @return bool */ public function getModifiedByMe() { } /** * @param string */ public function setModifiedByMeTime($modifiedByMeTime) { } /** * @return string */ public function getModifiedByMeTime() { } /** * @param string */ public function setModifiedTime($modifiedTime) { } /** * @return string */ public function getModifiedTime() { } /** * @param string */ public function setName($name) { } /** * @return string */ public function getName() { } /** * @param string */ public function setOriginalFilename($originalFilename) { } /** * @return string */ public function getOriginalFilename() { } /** * @param bool */ public function setOwnedByMe($ownedByMe) { } /** * @return bool */ public function getOwnedByMe() { } /** * @param User[] */ public function setOwners($owners) { } /** * @return User[] */ public function getOwners() { } /** * @param string[] */ public function setParents($parents) { } /** * @return string[] */ public function getParents() { } /** * @param string[] */ public function setPermissionIds($permissionIds) { } /** * @return string[] */ public function getPermissionIds() { } /** * @param Permission[] */ public function setPermissions($permissions) { } /** * @return Permission[] */ public function getPermissions() { } /** * @param string[] */ public function setProperties($properties) { } /** * @return string[] */ public function getProperties() { } /** * @param string */ public function setQuotaBytesUsed($quotaBytesUsed) { } /** * @return string */ public function getQuotaBytesUsed() { } /** * @param string */ public function setResourceKey($resourceKey) { } /** * @return string */ public function getResourceKey() { } /** * @param string */ public function setSha1Checksum($sha1Checksum) { } /** * @return string */ public function getSha1Checksum() { } /** * @param string */ public function setSha256Checksum($sha256Checksum) { } /** * @return string */ public function getSha256Checksum() { } /** * @param bool */ public function setShared($shared) { } /** * @return bool */ public function getShared() { } /** * @param string */ public function setSharedWithMeTime($sharedWithMeTime) { } /** * @return string */ public function getSharedWithMeTime() { } /** * @param User */ public function setSharingUser(\ForminatorGoogleAddon\Google\Service\Drive\User $sharingUser) { } /** * @return User */ public function getSharingUser() { } /** * @param DriveFileShortcutDetails */ public function setShortcutDetails(\ForminatorGoogleAddon\Google\Service\Drive\DriveFileShortcutDetails $shortcutDetails) { } /** * @return DriveFileShortcutDetails */ public function getShortcutDetails() { } /** * @param string */ public function setSize($size) { } /** * @return string */ public function getSize() { } /** * @param string[] */ public function setSpaces($spaces) { } /** * @return string[] */ public function getSpaces() { } /** * @param bool */ public function setStarred($starred) { } /** * @return bool */ public function getStarred() { } /** * @param string */ public function setTeamDriveId($teamDriveId) { } /** * @return string */ public function getTeamDriveId() { } /** * @param string */ public function setThumbnailLink($thumbnailLink) { } /** * @return string */ public function getThumbnailLink() { } /** * @param string */ public function setThumbnailVersion($thumbnailVersion) { } /** * @return string */ public function getThumbnailVersion() { } /** * @param bool */ public function setTrashed($trashed) { } /** * @return bool */ public function getTrashed() { } /** * @param string */ public function setTrashedTime($trashedTime) { } /** * @return string */ public function getTrashedTime() { } /** * @param User */ public function setTrashingUser(\ForminatorGoogleAddon\Google\Service\Drive\User $trashingUser) { } /** * @return User */ public function getTrashingUser() { } /** * @param string */ public function setVersion($version) { } /** * @return string */ public function getVersion() { } /** * @param DriveFileVideoMediaMetadata */ public function setVideoMediaMetadata(\ForminatorGoogleAddon\Google\Service\Drive\DriveFileVideoMediaMetadata $videoMediaMetadata) { } /** * @return DriveFileVideoMediaMetadata */ public function getVideoMediaMetadata() { } /** * @param bool */ public function setViewedByMe($viewedByMe) { } /** * @return bool */ public function getViewedByMe() { } /** * @param string */ public function setViewedByMeTime($viewedByMeTime) { } /** * @return string */ public function getViewedByMeTime() { } /** * @param bool */ public function setViewersCanCopyContent($viewersCanCopyContent) { } /** * @return bool */ public function getViewersCanCopyContent() { } /** * @param string */ public function setWebContentLink($webContentLink) { } /** * @return string */ public function getWebContentLink() { } /** * @param string */ public function setWebViewLink($webViewLink) { } /** * @return string */ public function getWebViewLink() { } /** * @param bool */ public function setWritersCanShare($writersCanShare) { } /** * @return bool */ public function getWritersCanShare() { } } class DriveFileCapabilities extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $canAcceptOwnership; /** * @var bool */ public $canAddChildren; /** * @var bool */ public $canAddFolderFromAnotherDrive; /** * @var bool */ public $canAddMyDriveParent; /** * @var bool */ public $canChangeCopyRequiresWriterPermission; /** * @var bool */ public $canChangeSecurityUpdateEnabled; /** * @var bool */ public $canChangeViewersCanCopyContent; /** * @var bool */ public $canComment; /** * @var bool */ public $canCopy; /** * @var bool */ public $canDelete; /** * @var bool */ public $canDeleteChildren; /** * @var bool */ public $canDownload; /** * @var bool */ public $canEdit; /** * @var bool */ public $canListChildren; /** * @var bool */ public $canModifyContent; /** * @var bool */ public $canModifyContentRestriction; /** * @var bool */ public $canModifyEditorContentRestriction; /** * @var bool */ public $canModifyLabels; /** * @var bool */ public $canModifyOwnerContentRestriction; /** * @var bool */ public $canMoveChildrenOutOfDrive; /** * @var bool */ public $canMoveChildrenOutOfTeamDrive; /** * @var bool */ public $canMoveChildrenWithinDrive; /** * @var bool */ public $canMoveChildrenWithinTeamDrive; /** * @var bool */ public $canMoveItemIntoTeamDrive; /** * @var bool */ public $canMoveItemOutOfDrive; /** * @var bool */ public $canMoveItemOutOfTeamDrive; /** * @var bool */ public $canMoveItemWithinDrive; /** * @var bool */ public $canMoveItemWithinTeamDrive; /** * @var bool */ public $canMoveTeamDriveItem; /** * @var bool */ public $canReadDrive; /** * @var bool */ public $canReadLabels; /** * @var bool */ public $canReadRevisions; /** * @var bool */ public $canReadTeamDrive; /** * @var bool */ public $canRemoveChildren; /** * @var bool */ public $canRemoveContentRestriction; /** * @var bool */ public $canRemoveMyDriveParent; /** * @var bool */ public $canRename; /** * @var bool */ public $canShare; /** * @var bool */ public $canTrash; /** * @var bool */ public $canTrashChildren; /** * @var bool */ public $canUntrash; /** * @param bool */ public function setCanAcceptOwnership($canAcceptOwnership) { } /** * @return bool */ public function getCanAcceptOwnership() { } /** * @param bool */ public function setCanAddChildren($canAddChildren) { } /** * @return bool */ public function getCanAddChildren() { } /** * @param bool */ public function setCanAddFolderFromAnotherDrive($canAddFolderFromAnotherDrive) { } /** * @return bool */ public function getCanAddFolderFromAnotherDrive() { } /** * @param bool */ public function setCanAddMyDriveParent($canAddMyDriveParent) { } /** * @return bool */ public function getCanAddMyDriveParent() { } /** * @param bool */ public function setCanChangeCopyRequiresWriterPermission($canChangeCopyRequiresWriterPermission) { } /** * @return bool */ public function getCanChangeCopyRequiresWriterPermission() { } /** * @param bool */ public function setCanChangeSecurityUpdateEnabled($canChangeSecurityUpdateEnabled) { } /** * @return bool */ public function getCanChangeSecurityUpdateEnabled() { } /** * @param bool */ public function setCanChangeViewersCanCopyContent($canChangeViewersCanCopyContent) { } /** * @return bool */ public function getCanChangeViewersCanCopyContent() { } /** * @param bool */ public function setCanComment($canComment) { } /** * @return bool */ public function getCanComment() { } /** * @param bool */ public function setCanCopy($canCopy) { } /** * @return bool */ public function getCanCopy() { } /** * @param bool */ public function setCanDelete($canDelete) { } /** * @return bool */ public function getCanDelete() { } /** * @param bool */ public function setCanDeleteChildren($canDeleteChildren) { } /** * @return bool */ public function getCanDeleteChildren() { } /** * @param bool */ public function setCanDownload($canDownload) { } /** * @return bool */ public function getCanDownload() { } /** * @param bool */ public function setCanEdit($canEdit) { } /** * @return bool */ public function getCanEdit() { } /** * @param bool */ public function setCanListChildren($canListChildren) { } /** * @return bool */ public function getCanListChildren() { } /** * @param bool */ public function setCanModifyContent($canModifyContent) { } /** * @return bool */ public function getCanModifyContent() { } /** * @param bool */ public function setCanModifyContentRestriction($canModifyContentRestriction) { } /** * @return bool */ public function getCanModifyContentRestriction() { } /** * @param bool */ public function setCanModifyEditorContentRestriction($canModifyEditorContentRestriction) { } /** * @return bool */ public function getCanModifyEditorContentRestriction() { } /** * @param bool */ public function setCanModifyLabels($canModifyLabels) { } /** * @return bool */ public function getCanModifyLabels() { } /** * @param bool */ public function setCanModifyOwnerContentRestriction($canModifyOwnerContentRestriction) { } /** * @return bool */ public function getCanModifyOwnerContentRestriction() { } /** * @param bool */ public function setCanMoveChildrenOutOfDrive($canMoveChildrenOutOfDrive) { } /** * @return bool */ public function getCanMoveChildrenOutOfDrive() { } /** * @param bool */ public function setCanMoveChildrenOutOfTeamDrive($canMoveChildrenOutOfTeamDrive) { } /** * @return bool */ public function getCanMoveChildrenOutOfTeamDrive() { } /** * @param bool */ public function setCanMoveChildrenWithinDrive($canMoveChildrenWithinDrive) { } /** * @return bool */ public function getCanMoveChildrenWithinDrive() { } /** * @param bool */ public function setCanMoveChildrenWithinTeamDrive($canMoveChildrenWithinTeamDrive) { } /** * @return bool */ public function getCanMoveChildrenWithinTeamDrive() { } /** * @param bool */ public function setCanMoveItemIntoTeamDrive($canMoveItemIntoTeamDrive) { } /** * @return bool */ public function getCanMoveItemIntoTeamDrive() { } /** * @param bool */ public function setCanMoveItemOutOfDrive($canMoveItemOutOfDrive) { } /** * @return bool */ public function getCanMoveItemOutOfDrive() { } /** * @param bool */ public function setCanMoveItemOutOfTeamDrive($canMoveItemOutOfTeamDrive) { } /** * @return bool */ public function getCanMoveItemOutOfTeamDrive() { } /** * @param bool */ public function setCanMoveItemWithinDrive($canMoveItemWithinDrive) { } /** * @return bool */ public function getCanMoveItemWithinDrive() { } /** * @param bool */ public function setCanMoveItemWithinTeamDrive($canMoveItemWithinTeamDrive) { } /** * @return bool */ public function getCanMoveItemWithinTeamDrive() { } /** * @param bool */ public function setCanMoveTeamDriveItem($canMoveTeamDriveItem) { } /** * @return bool */ public function getCanMoveTeamDriveItem() { } /** * @param bool */ public function setCanReadDrive($canReadDrive) { } /** * @return bool */ public function getCanReadDrive() { } /** * @param bool */ public function setCanReadLabels($canReadLabels) { } /** * @return bool */ public function getCanReadLabels() { } /** * @param bool */ public function setCanReadRevisions($canReadRevisions) { } /** * @return bool */ public function getCanReadRevisions() { } /** * @param bool */ public function setCanReadTeamDrive($canReadTeamDrive) { } /** * @return bool */ public function getCanReadTeamDrive() { } /** * @param bool */ public function setCanRemoveChildren($canRemoveChildren) { } /** * @return bool */ public function getCanRemoveChildren() { } /** * @param bool */ public function setCanRemoveContentRestriction($canRemoveContentRestriction) { } /** * @return bool */ public function getCanRemoveContentRestriction() { } /** * @param bool */ public function setCanRemoveMyDriveParent($canRemoveMyDriveParent) { } /** * @return bool */ public function getCanRemoveMyDriveParent() { } /** * @param bool */ public function setCanRename($canRename) { } /** * @return bool */ public function getCanRename() { } /** * @param bool */ public function setCanShare($canShare) { } /** * @return bool */ public function getCanShare() { } /** * @param bool */ public function setCanTrash($canTrash) { } /** * @return bool */ public function getCanTrash() { } /** * @param bool */ public function setCanTrashChildren($canTrashChildren) { } /** * @return bool */ public function getCanTrashChildren() { } /** * @param bool */ public function setCanUntrash($canUntrash) { } /** * @return bool */ public function getCanUntrash() { } } class DriveFileContentHints extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $indexableText; protected $thumbnailType = \ForminatorGoogleAddon\Google\Service\Drive\DriveFileContentHintsThumbnail::class; protected $thumbnailDataType = ''; /** * @param string */ public function setIndexableText($indexableText) { } /** * @return string */ public function getIndexableText() { } /** * @param DriveFileContentHintsThumbnail */ public function setThumbnail(\ForminatorGoogleAddon\Google\Service\Drive\DriveFileContentHintsThumbnail $thumbnail) { } /** * @return DriveFileContentHintsThumbnail */ public function getThumbnail() { } } class DriveFileContentHintsThumbnail extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $image; /** * @var string */ public $mimeType; /** * @param string */ public function setImage($image) { } /** * @return string */ public function getImage() { } /** * @param string */ public function setMimeType($mimeType) { } /** * @return string */ public function getMimeType() { } } class DriveFileImageMediaMetadata extends \ForminatorGoogleAddon\Google\Model { /** * @var float */ public $aperture; /** * @var string */ public $cameraMake; /** * @var string */ public $cameraModel; /** * @var string */ public $colorSpace; /** * @var float */ public $exposureBias; /** * @var string */ public $exposureMode; /** * @var float */ public $exposureTime; /** * @var bool */ public $flashUsed; /** * @var float */ public $focalLength; /** * @var int */ public $height; /** * @var int */ public $isoSpeed; /** * @var string */ public $lens; protected $locationType = \ForminatorGoogleAddon\Google\Service\Drive\DriveFileImageMediaMetadataLocation::class; protected $locationDataType = ''; /** * @var float */ public $maxApertureValue; /** * @var string */ public $meteringMode; /** * @var int */ public $rotation; /** * @var string */ public $sensor; /** * @var int */ public $subjectDistance; /** * @var string */ public $time; /** * @var string */ public $whiteBalance; /** * @var int */ public $width; /** * @param float */ public function setAperture($aperture) { } /** * @return float */ public function getAperture() { } /** * @param string */ public function setCameraMake($cameraMake) { } /** * @return string */ public function getCameraMake() { } /** * @param string */ public function setCameraModel($cameraModel) { } /** * @return string */ public function getCameraModel() { } /** * @param string */ public function setColorSpace($colorSpace) { } /** * @return string */ public function getColorSpace() { } /** * @param float */ public function setExposureBias($exposureBias) { } /** * @return float */ public function getExposureBias() { } /** * @param string */ public function setExposureMode($exposureMode) { } /** * @return string */ public function getExposureMode() { } /** * @param float */ public function setExposureTime($exposureTime) { } /** * @return float */ public function getExposureTime() { } /** * @param bool */ public function setFlashUsed($flashUsed) { } /** * @return bool */ public function getFlashUsed() { } /** * @param float */ public function setFocalLength($focalLength) { } /** * @return float */ public function getFocalLength() { } /** * @param int */ public function setHeight($height) { } /** * @return int */ public function getHeight() { } /** * @param int */ public function setIsoSpeed($isoSpeed) { } /** * @return int */ public function getIsoSpeed() { } /** * @param string */ public function setLens($lens) { } /** * @return string */ public function getLens() { } /** * @param DriveFileImageMediaMetadataLocation */ public function setLocation(\ForminatorGoogleAddon\Google\Service\Drive\DriveFileImageMediaMetadataLocation $location) { } /** * @return DriveFileImageMediaMetadataLocation */ public function getLocation() { } /** * @param float */ public function setMaxApertureValue($maxApertureValue) { } /** * @return float */ public function getMaxApertureValue() { } /** * @param string */ public function setMeteringMode($meteringMode) { } /** * @return string */ public function getMeteringMode() { } /** * @param int */ public function setRotation($rotation) { } /** * @return int */ public function getRotation() { } /** * @param string */ public function setSensor($sensor) { } /** * @return string */ public function getSensor() { } /** * @param int */ public function setSubjectDistance($subjectDistance) { } /** * @return int */ public function getSubjectDistance() { } /** * @param string */ public function setTime($time) { } /** * @return string */ public function getTime() { } /** * @param string */ public function setWhiteBalance($whiteBalance) { } /** * @return string */ public function getWhiteBalance() { } /** * @param int */ public function setWidth($width) { } /** * @return int */ public function getWidth() { } } class DriveFileImageMediaMetadataLocation extends \ForminatorGoogleAddon\Google\Model { public $altitude; public $latitude; public $longitude; public function setAltitude($altitude) { } public function getAltitude() { } public function setLatitude($latitude) { } public function getLatitude() { } public function setLongitude($longitude) { } public function getLongitude() { } } class DriveFileLabelInfo extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'labels'; protected $labelsType = \ForminatorGoogleAddon\Google\Service\Drive\Label::class; protected $labelsDataType = 'array'; /** * @param Label[] */ public function setLabels($labels) { } /** * @return Label[] */ public function getLabels() { } } class DriveFileLinkShareMetadata extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $securityUpdateEligible; /** * @var bool */ public $securityUpdateEnabled; /** * @param bool */ public function setSecurityUpdateEligible($securityUpdateEligible) { } /** * @return bool */ public function getSecurityUpdateEligible() { } /** * @param bool */ public function setSecurityUpdateEnabled($securityUpdateEnabled) { } /** * @return bool */ public function getSecurityUpdateEnabled() { } } class DriveFileShortcutDetails extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $targetId; /** * @var string */ public $targetMimeType; /** * @var string */ public $targetResourceKey; /** * @param string */ public function setTargetId($targetId) { } /** * @return string */ public function getTargetId() { } /** * @param string */ public function setTargetMimeType($targetMimeType) { } /** * @return string */ public function getTargetMimeType() { } /** * @param string */ public function setTargetResourceKey($targetResourceKey) { } /** * @return string */ public function getTargetResourceKey() { } } class DriveFileVideoMediaMetadata extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $durationMillis; /** * @var int */ public $height; /** * @var int */ public $width; /** * @param string */ public function setDurationMillis($durationMillis) { } /** * @return string */ public function getDurationMillis() { } /** * @param int */ public function setHeight($height) { } /** * @return int */ public function getHeight() { } /** * @param int */ public function setWidth($width) { } /** * @return int */ public function getWidth() { } } class DriveList extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'drives'; protected $drivesType = \ForminatorGoogleAddon\Google\Service\Drive\Drive::class; protected $drivesDataType = 'array'; /** * @var string */ public $kind; /** * @var string */ public $nextPageToken; /** * @param Drive[] */ public function setDrives($drives) { } /** * @return Drive[] */ public function getDrives() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setNextPageToken($nextPageToken) { } /** * @return string */ public function getNextPageToken() { } } class DriveRestrictions extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $adminManagedRestrictions; /** * @var bool */ public $copyRequiresWriterPermission; /** * @var bool */ public $domainUsersOnly; /** * @var bool */ public $driveMembersOnly; /** * @var bool */ public $sharingFoldersRequiresOrganizerPermission; /** * @param bool */ public function setAdminManagedRestrictions($adminManagedRestrictions) { } /** * @return bool */ public function getAdminManagedRestrictions() { } /** * @param bool */ public function setCopyRequiresWriterPermission($copyRequiresWriterPermission) { } /** * @return bool */ public function getCopyRequiresWriterPermission() { } /** * @param bool */ public function setDomainUsersOnly($domainUsersOnly) { } /** * @return bool */ public function getDomainUsersOnly() { } /** * @param bool */ public function setDriveMembersOnly($driveMembersOnly) { } /** * @return bool */ public function getDriveMembersOnly() { } /** * @param bool */ public function setSharingFoldersRequiresOrganizerPermission($sharingFoldersRequiresOrganizerPermission) { } /** * @return bool */ public function getSharingFoldersRequiresOrganizerPermission() { } } class FileList extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'files'; protected $filesType = \ForminatorGoogleAddon\Google\Service\Drive\DriveFile::class; protected $filesDataType = 'array'; /** * @var bool */ public $incompleteSearch; /** * @var string */ public $kind; /** * @var string */ public $nextPageToken; /** * @param DriveFile[] */ public function setFiles($files) { } /** * @return DriveFile[] */ public function getFiles() { } /** * @param bool */ public function setIncompleteSearch($incompleteSearch) { } /** * @return bool */ public function getIncompleteSearch() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setNextPageToken($nextPageToken) { } /** * @return string */ public function getNextPageToken() { } } class GeneratedIds extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'ids'; /** * @var string[] */ public $ids; /** * @var string */ public $kind; /** * @var string */ public $space; /** * @param string[] */ public function setIds($ids) { } /** * @return string[] */ public function getIds() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setSpace($space) { } /** * @return string */ public function getSpace() { } } class Label extends \ForminatorGoogleAddon\Google\Model { protected $fieldsType = \ForminatorGoogleAddon\Google\Service\Drive\LabelField::class; protected $fieldsDataType = 'map'; /** * @var string */ public $id; /** * @var string */ public $kind; /** * @var string */ public $revisionId; /** * @param LabelField[] */ public function setFields($fields) { } /** * @return LabelField[] */ public function getFields() { } /** * @param string */ public function setId($id) { } /** * @return string */ public function getId() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setRevisionId($revisionId) { } /** * @return string */ public function getRevisionId() { } } class LabelField extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'user'; /** * @var string[] */ public $dateString; /** * @var string */ public $id; /** * @var string[] */ public $integer; /** * @var string */ public $kind; /** * @var string[] */ public $selection; /** * @var string[] */ public $text; protected $userType = \ForminatorGoogleAddon\Google\Service\Drive\User::class; protected $userDataType = 'array'; /** * @var string */ public $valueType; /** * @param string[] */ public function setDateString($dateString) { } /** * @return string[] */ public function getDateString() { } /** * @param string */ public function setId($id) { } /** * @return string */ public function getId() { } /** * @param string[] */ public function setInteger($integer) { } /** * @return string[] */ public function getInteger() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string[] */ public function setSelection($selection) { } /** * @return string[] */ public function getSelection() { } /** * @param string[] */ public function setText($text) { } /** * @return string[] */ public function getText() { } /** * @param User[] */ public function setUser($user) { } /** * @return User[] */ public function getUser() { } /** * @param string */ public function setValueType($valueType) { } /** * @return string */ public function getValueType() { } } class LabelFieldModification extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'setUserValues'; /** * @var string */ public $fieldId; /** * @var string */ public $kind; /** * @var string[] */ public $setDateValues; /** * @var string[] */ public $setIntegerValues; /** * @var string[] */ public $setSelectionValues; /** * @var string[] */ public $setTextValues; /** * @var string[] */ public $setUserValues; /** * @var bool */ public $unsetValues; /** * @param string */ public function setFieldId($fieldId) { } /** * @return string */ public function getFieldId() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string[] */ public function setSetDateValues($setDateValues) { } /** * @return string[] */ public function getSetDateValues() { } /** * @param string[] */ public function setSetIntegerValues($setIntegerValues) { } /** * @return string[] */ public function getSetIntegerValues() { } /** * @param string[] */ public function setSetSelectionValues($setSelectionValues) { } /** * @return string[] */ public function getSetSelectionValues() { } /** * @param string[] */ public function setSetTextValues($setTextValues) { } /** * @return string[] */ public function getSetTextValues() { } /** * @param string[] */ public function setSetUserValues($setUserValues) { } /** * @return string[] */ public function getSetUserValues() { } /** * @param bool */ public function setUnsetValues($unsetValues) { } /** * @return bool */ public function getUnsetValues() { } } class LabelList extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'labels'; /** * @var string */ public $kind; protected $labelsType = \ForminatorGoogleAddon\Google\Service\Drive\Label::class; protected $labelsDataType = 'array'; /** * @var string */ public $nextPageToken; /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param Label[] */ public function setLabels($labels) { } /** * @return Label[] */ public function getLabels() { } /** * @param string */ public function setNextPageToken($nextPageToken) { } /** * @return string */ public function getNextPageToken() { } } class LabelModification extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'fieldModifications'; protected $fieldModificationsType = \ForminatorGoogleAddon\Google\Service\Drive\LabelFieldModification::class; protected $fieldModificationsDataType = 'array'; /** * @var string */ public $kind; /** * @var string */ public $labelId; /** * @var bool */ public $removeLabel; /** * @param LabelFieldModification[] */ public function setFieldModifications($fieldModifications) { } /** * @return LabelFieldModification[] */ public function getFieldModifications() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setLabelId($labelId) { } /** * @return string */ public function getLabelId() { } /** * @param bool */ public function setRemoveLabel($removeLabel) { } /** * @return bool */ public function getRemoveLabel() { } } class ModifyLabelsRequest extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'labelModifications'; /** * @var string */ public $kind; protected $labelModificationsType = \ForminatorGoogleAddon\Google\Service\Drive\LabelModification::class; protected $labelModificationsDataType = 'array'; /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param LabelModification[] */ public function setLabelModifications($labelModifications) { } /** * @return LabelModification[] */ public function getLabelModifications() { } } class ModifyLabelsResponse extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'modifiedLabels'; /** * @var string */ public $kind; protected $modifiedLabelsType = \ForminatorGoogleAddon\Google\Service\Drive\Label::class; protected $modifiedLabelsDataType = 'array'; /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param Label[] */ public function setModifiedLabels($modifiedLabels) { } /** * @return Label[] */ public function getModifiedLabels() { } } class Permission extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'teamDrivePermissionDetails'; /** * @var bool */ public $allowFileDiscovery; /** * @var bool */ public $deleted; /** * @var string */ public $displayName; /** * @var string */ public $domain; /** * @var string */ public $emailAddress; /** * @var string */ public $expirationTime; /** * @var string */ public $id; /** * @var string */ public $kind; /** * @var bool */ public $pendingOwner; protected $permissionDetailsType = \ForminatorGoogleAddon\Google\Service\Drive\PermissionPermissionDetails::class; protected $permissionDetailsDataType = 'array'; /** * @var string */ public $photoLink; /** * @var string */ public $role; protected $teamDrivePermissionDetailsType = \ForminatorGoogleAddon\Google\Service\Drive\PermissionTeamDrivePermissionDetails::class; protected $teamDrivePermissionDetailsDataType = 'array'; /** * @var string */ public $type; /** * @var string */ public $view; /** * @param bool */ public function setAllowFileDiscovery($allowFileDiscovery) { } /** * @return bool */ public function getAllowFileDiscovery() { } /** * @param bool */ public function setDeleted($deleted) { } /** * @return bool */ public function getDeleted() { } /** * @param string */ public function setDisplayName($displayName) { } /** * @return string */ public function getDisplayName() { } /** * @param string */ public function setDomain($domain) { } /** * @return string */ public function getDomain() { } /** * @param string */ public function setEmailAddress($emailAddress) { } /** * @return string */ public function getEmailAddress() { } /** * @param string */ public function setExpirationTime($expirationTime) { } /** * @return string */ public function getExpirationTime() { } /** * @param string */ public function setId($id) { } /** * @return string */ public function getId() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param bool */ public function setPendingOwner($pendingOwner) { } /** * @return bool */ public function getPendingOwner() { } /** * @param PermissionPermissionDetails[] */ public function setPermissionDetails($permissionDetails) { } /** * @return PermissionPermissionDetails[] */ public function getPermissionDetails() { } /** * @param string */ public function setPhotoLink($photoLink) { } /** * @return string */ public function getPhotoLink() { } /** * @param string */ public function setRole($role) { } /** * @return string */ public function getRole() { } /** * @param PermissionTeamDrivePermissionDetails[] */ public function setTeamDrivePermissionDetails($teamDrivePermissionDetails) { } /** * @return PermissionTeamDrivePermissionDetails[] */ public function getTeamDrivePermissionDetails() { } /** * @param string */ public function setType($type) { } /** * @return string */ public function getType() { } /** * @param string */ public function setView($view) { } /** * @return string */ public function getView() { } } class PermissionList extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'permissions'; /** * @var string */ public $kind; /** * @var string */ public $nextPageToken; protected $permissionsType = \ForminatorGoogleAddon\Google\Service\Drive\Permission::class; protected $permissionsDataType = 'array'; /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setNextPageToken($nextPageToken) { } /** * @return string */ public function getNextPageToken() { } /** * @param Permission[] */ public function setPermissions($permissions) { } /** * @return Permission[] */ public function getPermissions() { } } class PermissionPermissionDetails extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $inherited; /** * @var string */ public $inheritedFrom; /** * @var string */ public $permissionType; /** * @var string */ public $role; /** * @param bool */ public function setInherited($inherited) { } /** * @return bool */ public function getInherited() { } /** * @param string */ public function setInheritedFrom($inheritedFrom) { } /** * @return string */ public function getInheritedFrom() { } /** * @param string */ public function setPermissionType($permissionType) { } /** * @return string */ public function getPermissionType() { } /** * @param string */ public function setRole($role) { } /** * @return string */ public function getRole() { } } class PermissionTeamDrivePermissionDetails extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $inherited; /** * @var string */ public $inheritedFrom; /** * @var string */ public $role; /** * @var string */ public $teamDrivePermissionType; /** * @param bool */ public function setInherited($inherited) { } /** * @return bool */ public function getInherited() { } /** * @param string */ public function setInheritedFrom($inheritedFrom) { } /** * @return string */ public function getInheritedFrom() { } /** * @param string */ public function setRole($role) { } /** * @return string */ public function getRole() { } /** * @param string */ public function setTeamDrivePermissionType($teamDrivePermissionType) { } /** * @return string */ public function getTeamDrivePermissionType() { } } class Reply extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $action; protected $authorType = \ForminatorGoogleAddon\Google\Service\Drive\User::class; protected $authorDataType = ''; /** * @var string */ public $content; /** * @var string */ public $createdTime; /** * @var bool */ public $deleted; /** * @var string */ public $htmlContent; /** * @var string */ public $id; /** * @var string */ public $kind; /** * @var string */ public $modifiedTime; /** * @param string */ public function setAction($action) { } /** * @return string */ public function getAction() { } /** * @param User */ public function setAuthor(\ForminatorGoogleAddon\Google\Service\Drive\User $author) { } /** * @return User */ public function getAuthor() { } /** * @param string */ public function setContent($content) { } /** * @return string */ public function getContent() { } /** * @param string */ public function setCreatedTime($createdTime) { } /** * @return string */ public function getCreatedTime() { } /** * @param bool */ public function setDeleted($deleted) { } /** * @return bool */ public function getDeleted() { } /** * @param string */ public function setHtmlContent($htmlContent) { } /** * @return string */ public function getHtmlContent() { } /** * @param string */ public function setId($id) { } /** * @return string */ public function getId() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setModifiedTime($modifiedTime) { } /** * @return string */ public function getModifiedTime() { } } class ReplyList extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'replies'; /** * @var string */ public $kind; /** * @var string */ public $nextPageToken; protected $repliesType = \ForminatorGoogleAddon\Google\Service\Drive\Reply::class; protected $repliesDataType = 'array'; /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setNextPageToken($nextPageToken) { } /** * @return string */ public function getNextPageToken() { } /** * @param Reply[] */ public function setReplies($replies) { } /** * @return Reply[] */ public function getReplies() { } } } namespace ForminatorGoogleAddon\Google\Service { /** * Implements the actual methods/resources of the discovered Google API using magic function * calling overloading (__call()), which on call will see if the method name (plus.activities.list) * is available in this service, and if so construct an apiHttpRequest representing it. * */ class Resource { // Valid query parameters that work, but don't appear in discovery. private $stackParameters = ['alt' => ['type' => 'string', 'location' => 'query'], 'fields' => ['type' => 'string', 'location' => 'query'], 'trace' => ['type' => 'string', 'location' => 'query'], 'userIp' => ['type' => 'string', 'location' => 'query'], 'quotaUser' => ['type' => 'string', 'location' => 'query'], 'data' => ['type' => 'string', 'location' => 'body'], 'mimeType' => ['type' => 'string', 'location' => 'header'], 'uploadType' => ['type' => 'string', 'location' => 'query'], 'mediaUpload' => ['type' => 'complex', 'location' => 'query'], 'prettyPrint' => ['type' => 'string', 'location' => 'query']]; /** @var string $rootUrlTemplate */ private $rootUrlTemplate; /** @var \Google\Client $client */ private $client; /** @var string $serviceName */ private $serviceName; /** @var string $servicePath */ private $servicePath; /** @var string $resourceName */ private $resourceName; /** @var array $methods */ private $methods; public function __construct($service, $serviceName, $resourceName, $resource) { } /** * TODO: This function needs simplifying. * * @template T * @param string $name * @param array $arguments * @param class-string $expectedClass - optional, the expected class name * @return mixed|T|ResponseInterface|RequestInterface * @throws \Google\Exception */ public function call($name, $arguments, $expectedClass = null) { } protected function convertToArrayAndStripNulls($o) { } /** * Parse/expand request parameters and create a fully qualified * request uri. * @static * @param string $restPath * @param array $params * @return string $requestUrl */ public function createRequestUri($restPath, $params) { } } } namespace ForminatorGoogleAddon\Google\Service\Drive\Resource { /** * The "about" collection of methods. * Typical usage is: * * $driveService = new Google\Service\Drive(...); * $about = $driveService->about; * */ class About extends \ForminatorGoogleAddon\Google\Service\Resource { /** * Gets information about the user, the user's Drive, and system capabilities. * (about.get) * * @param array $optParams Optional parameters. * @return AboutModel * @throws \Google\Service\Exception */ public function get($optParams = []) { } } /** * The "apps" collection of methods. * Typical usage is: * * $driveService = new Google\Service\Drive(...); * $apps = $driveService->apps; * */ class Apps extends \ForminatorGoogleAddon\Google\Service\Resource { /** * Gets a specific app. (apps.get) * * @param string $appId The ID of the app. * @param array $optParams Optional parameters. * @return App * @throws \Google\Service\Exception */ public function get($appId, $optParams = []) { } /** * Lists a user's installed apps. (apps.listApps) * * @param array $optParams Optional parameters. * * @opt_param string appFilterExtensions A comma-separated list of file * extensions to limit returned results. All results within the given app query * scope which can open any of the given file extensions are included in the * response. If `appFilterMimeTypes` are provided as well, the result is a union * of the two resulting app lists. * @opt_param string appFilterMimeTypes A comma-separated list of file * extensions to limit returned results. All results within the given app query * scope which can open any of the given MIME types will be included in the * response. If `appFilterExtensions` are provided as well, the result is a * union of the two resulting app lists. * @opt_param string languageCode A language or locale code, as defined by BCP * 47, with some extensions from Unicode's LDML format * (http://www.unicode.org/reports/tr35/). * @return AppList * @throws \Google\Service\Exception */ public function listApps($optParams = []) { } } /** * The "changes" collection of methods. * Typical usage is: * * $driveService = new Google\Service\Drive(...); * $changes = $driveService->changes; * */ class Changes extends \ForminatorGoogleAddon\Google\Service\Resource { /** * Gets the starting pageToken for listing future changes. * (changes.getStartPageToken) * * @param array $optParams Optional parameters. * * @opt_param string driveId The ID of the shared drive for which the starting * pageToken for listing future changes from that shared drive will be returned. * @opt_param bool supportsAllDrives Whether the requesting application supports * both My Drives and shared drives. * @opt_param bool supportsTeamDrives Deprecated: Use `supportsAllDrives` * instead. * @opt_param string teamDriveId Deprecated: Use `driveId` instead. * @return StartPageToken * @throws \Google\Service\Exception */ public function getStartPageToken($optParams = []) { } /** * Lists the changes for a user or shared drive. (changes.listChanges) * * @param string $pageToken The token for continuing a previous list request on * the next page. This should be set to the value of 'nextPageToken' from the * previous response or to the response from the getStartPageToken method. * @param array $optParams Optional parameters. * * @opt_param string driveId The shared drive from which changes will be * returned. If specified the change IDs will be reflective of the shared drive; * use the combined drive ID and change ID as an identifier. * @opt_param bool includeCorpusRemovals Whether changes should include the file * resource if the file is still accessible by the user at the time of the * request, even when a file was removed from the list of changes and there will * be no further change entries for this file. * @opt_param bool includeItemsFromAllDrives Whether both My Drive and shared * drive items should be included in results. * @opt_param string includeLabels A comma-separated list of IDs of labels to * include in the `labelInfo` part of the response. * @opt_param string includePermissionsForView Specifies which additional view's * permissions to include in the response. Only 'published' is supported. * @opt_param bool includeRemoved Whether to include changes indicating that * items have been removed from the list of changes, for example by deletion or * loss of access. * @opt_param bool includeTeamDriveItems Deprecated: Use * `includeItemsFromAllDrives` instead. * @opt_param int pageSize The maximum number of changes to return per page. * @opt_param bool restrictToMyDrive Whether to restrict the results to changes * inside the My Drive hierarchy. This omits changes to files such as those in * the Application Data folder or shared files which have not been added to My * Drive. * @opt_param string spaces A comma-separated list of spaces to query within the * corpora. Supported values are 'drive' and 'appDataFolder'. * @opt_param bool supportsAllDrives Whether the requesting application supports * both My Drives and shared drives. * @opt_param bool supportsTeamDrives Deprecated: Use `supportsAllDrives` * instead. * @opt_param string teamDriveId Deprecated: Use `driveId` instead. * @return ChangeList * @throws \Google\Service\Exception */ public function listChanges($pageToken, $optParams = []) { } /** * Subscribes to changes for a user. (changes.watch) * * @param string $pageToken The token for continuing a previous list request on * the next page. This should be set to the value of 'nextPageToken' from the * previous response or to the response from the getStartPageToken method. * @param Channel $postBody * @param array $optParams Optional parameters. * * @opt_param string driveId The shared drive from which changes will be * returned. If specified the change IDs will be reflective of the shared drive; * use the combined drive ID and change ID as an identifier. * @opt_param bool includeCorpusRemovals Whether changes should include the file * resource if the file is still accessible by the user at the time of the * request, even when a file was removed from the list of changes and there will * be no further change entries for this file. * @opt_param bool includeItemsFromAllDrives Whether both My Drive and shared * drive items should be included in results. * @opt_param string includeLabels A comma-separated list of IDs of labels to * include in the `labelInfo` part of the response. * @opt_param string includePermissionsForView Specifies which additional view's * permissions to include in the response. Only 'published' is supported. * @opt_param bool includeRemoved Whether to include changes indicating that * items have been removed from the list of changes, for example by deletion or * loss of access. * @opt_param bool includeTeamDriveItems Deprecated: Use * `includeItemsFromAllDrives` instead. * @opt_param int pageSize The maximum number of changes to return per page. * @opt_param bool restrictToMyDrive Whether to restrict the results to changes * inside the My Drive hierarchy. This omits changes to files such as those in * the Application Data folder or shared files which have not been added to My * Drive. * @opt_param string spaces A comma-separated list of spaces to query within the * corpora. Supported values are 'drive' and 'appDataFolder'. * @opt_param bool supportsAllDrives Whether the requesting application supports * both My Drives and shared drives. * @opt_param bool supportsTeamDrives Deprecated: Use `supportsAllDrives` * instead. * @opt_param string teamDriveId Deprecated: Use `driveId` instead. * @return Channel * @throws \Google\Service\Exception */ public function watch($pageToken, \ForminatorGoogleAddon\Google\Service\Drive\Channel $postBody, $optParams = []) { } } /** * The "channels" collection of methods. * Typical usage is: * * $driveService = new Google\Service\Drive(...); * $channels = $driveService->channels; * */ class Channels extends \ForminatorGoogleAddon\Google\Service\Resource { /** * Stops watching resources through this channel. (channels.stop) * * @param Channel $postBody * @param array $optParams Optional parameters. * @throws \Google\Service\Exception */ public function stop(\ForminatorGoogleAddon\Google\Service\Drive\Channel $postBody, $optParams = []) { } } /** * The "comments" collection of methods. * Typical usage is: * * $driveService = new Google\Service\Drive(...); * $comments = $driveService->comments; * */ class Comments extends \ForminatorGoogleAddon\Google\Service\Resource { /** * Creates a comment on a file. (comments.create) * * @param string $fileId The ID of the file. * @param Comment $postBody * @param array $optParams Optional parameters. * @return Comment * @throws \Google\Service\Exception */ public function create($fileId, \ForminatorGoogleAddon\Google\Service\Drive\Comment $postBody, $optParams = []) { } /** * Deletes a comment. (comments.delete) * * @param string $fileId The ID of the file. * @param string $commentId The ID of the comment. * @param array $optParams Optional parameters. * @throws \Google\Service\Exception */ public function delete($fileId, $commentId, $optParams = []) { } /** * Gets a comment by ID. (comments.get) * * @param string $fileId The ID of the file. * @param string $commentId The ID of the comment. * @param array $optParams Optional parameters. * * @opt_param bool includeDeleted Whether to return deleted comments. Deleted * comments will not include their original content. * @return Comment * @throws \Google\Service\Exception */ public function get($fileId, $commentId, $optParams = []) { } /** * Lists a file's comments. (comments.listComments) * * @param string $fileId The ID of the file. * @param array $optParams Optional parameters. * * @opt_param bool includeDeleted Whether to include deleted comments. Deleted * comments will not include their original content. * @opt_param int pageSize The maximum number of comments to return per page. * @opt_param string pageToken The token for continuing a previous list request * on the next page. This should be set to the value of 'nextPageToken' from the * previous response. * @opt_param string startModifiedTime The minimum value of 'modifiedTime' for * the result comments (RFC 3339 date-time). * @return CommentList * @throws \Google\Service\Exception */ public function listComments($fileId, $optParams = []) { } /** * Updates a comment with patch semantics. (comments.update) * * @param string $fileId The ID of the file. * @param string $commentId The ID of the comment. * @param Comment $postBody * @param array $optParams Optional parameters. * @return Comment * @throws \Google\Service\Exception */ public function update($fileId, $commentId, \ForminatorGoogleAddon\Google\Service\Drive\Comment $postBody, $optParams = []) { } } /** * The "drives" collection of methods. * Typical usage is: * * $driveService = new Google\Service\Drive(...); * $drives = $driveService->drives; * */ class Drives extends \ForminatorGoogleAddon\Google\Service\Resource { /** * Creates a shared drive. (drives.create) * * @param string $requestId Required. An ID, such as a random UUID, which * uniquely identifies this user's request for idempotent creation of a shared * drive. A repeated request by the same user and with the same request ID will * avoid creating duplicates by attempting to create the same shared drive. If * the shared drive already exists a 409 error will be returned. * @param Drive $postBody * @param array $optParams Optional parameters. * @return Drive * @throws \Google\Service\Exception */ public function create($requestId, \ForminatorGoogleAddon\Google\Service\Drive\Drive $postBody, $optParams = []) { } /** * Permanently deletes a shared drive for which the user is an `organizer`. The * shared drive cannot contain any untrashed items. (drives.delete) * * @param string $driveId The ID of the shared drive. * @param array $optParams Optional parameters. * * @opt_param bool allowItemDeletion Whether any items inside the shared drive * should also be deleted. This option is only supported when * `useDomainAdminAccess` is also set to `true`. * @opt_param bool useDomainAdminAccess Issue the request as a domain * administrator; if set to true, then the requester will be granted access if * they are an administrator of the domain to which the shared drive belongs. * @throws \Google\Service\Exception */ public function delete($driveId, $optParams = []) { } /** * Gets a shared drive's metadata by ID. (drives.get) * * @param string $driveId The ID of the shared drive. * @param array $optParams Optional parameters. * * @opt_param bool useDomainAdminAccess Issue the request as a domain * administrator; if set to true, then the requester will be granted access if * they are an administrator of the domain to which the shared drive belongs. * @return Drive * @throws \Google\Service\Exception */ public function get($driveId, $optParams = []) { } /** * Hides a shared drive from the default view. (drives.hide) * * @param string $driveId The ID of the shared drive. * @param array $optParams Optional parameters. * @return Drive * @throws \Google\Service\Exception */ public function hide($driveId, $optParams = []) { } /** * Lists the user's shared drives. This method accepts the `q` parameter, which * is a search query combining one or more search terms. For more information, * see the [Search for shared drives](/drive/api/guides/search-shareddrives) * guide. (drives.listDrives) * * @param array $optParams Optional parameters. * * @opt_param int pageSize Maximum number of shared drives to return per page. * @opt_param string pageToken Page token for shared drives. * @opt_param string q Query string for searching shared drives. * @opt_param bool useDomainAdminAccess Issue the request as a domain * administrator; if set to true, then all shared drives of the domain in which * the requester is an administrator are returned. * @return DriveList * @throws \Google\Service\Exception */ public function listDrives($optParams = []) { } /** * Restores a shared drive to the default view. (drives.unhide) * * @param string $driveId The ID of the shared drive. * @param array $optParams Optional parameters. * @return Drive * @throws \Google\Service\Exception */ public function unhide($driveId, $optParams = []) { } /** * Updates the metadata for a shared drive. (drives.update) * * @param string $driveId The ID of the shared drive. * @param Drive $postBody * @param array $optParams Optional parameters. * * @opt_param bool useDomainAdminAccess Issue the request as a domain * administrator; if set to true, then the requester will be granted access if * they are an administrator of the domain to which the shared drive belongs. * @return Drive * @throws \Google\Service\Exception */ public function update($driveId, \ForminatorGoogleAddon\Google\Service\Drive\Drive $postBody, $optParams = []) { } } /** * The "files" collection of methods. * Typical usage is: * * $driveService = new Google\Service\Drive(...); * $files = $driveService->files; * */ class Files extends \ForminatorGoogleAddon\Google\Service\Resource { /** * Creates a copy of a file and applies any requested updates with patch * semantics. (files.copy) * * @param string $fileId The ID of the file. * @param DriveFile $postBody * @param array $optParams Optional parameters. * * @opt_param bool enforceSingleParent Deprecated. Copying files into multiple * folders is no longer supported. Use shortcuts instead. * @opt_param bool ignoreDefaultVisibility Whether to ignore the domain's * default visibility settings for the created file. Domain administrators can * choose to make all uploaded files visible to the domain by default; this * parameter bypasses that behavior for the request. Permissions are still * inherited from parent folders. * @opt_param string includeLabels A comma-separated list of IDs of labels to * include in the `labelInfo` part of the response. * @opt_param string includePermissionsForView Specifies which additional view's * permissions to include in the response. Only 'published' is supported. * @opt_param bool keepRevisionForever Whether to set the 'keepForever' field in * the new head revision. This is only applicable to files with binary content * in Google Drive. Only 200 revisions for the file can be kept forever. If the * limit is reached, try deleting pinned revisions. * @opt_param string ocrLanguage A language hint for OCR processing during image * import (ISO 639-1 code). * @opt_param bool supportsAllDrives Whether the requesting application supports * both My Drives and shared drives. * @opt_param bool supportsTeamDrives Deprecated: Use `supportsAllDrives` * instead. * @return DriveFile * @throws \Google\Service\Exception */ public function copy($fileId, \ForminatorGoogleAddon\Google\Service\Drive\DriveFile $postBody, $optParams = []) { } /** * Creates a new file. This method supports an upload* URI and accepts uploaded * media with the following characteristics: - *Maximum file size:* 5,120 GB - * *Accepted Media MIME types:*`*` Note: Specify a valid MIME type, rather than * the literal `*` value. The literal `*` is only used to indicate that any * valid MIME type can be uploaded. For more information on uploading files, see * [Upload file data](/drive/api/guides/manage-uploads). Apps creating shortcuts * with `files.create` must specify the MIME type `application/vnd.google- * apps.shortcut`. Apps should specify a file extension in the `name` property * when inserting files with the API. For example, an operation to insert a JPEG * file should specify something like `"name": "cat.jpg"` in the metadata. * Subsequent `GET` requests include the read-only `fileExtension` property * populated with the extension originally specified in the `title` property. * When a Google Drive user requests to download a file, or when the file is * downloaded through the sync client, Drive builds a full filename (with * extension) based on the title. In cases where the extension is missing, Drive * attempts to determine the extension based on the file's MIME type. * (files.create) * * @param DriveFile $postBody * @param array $optParams Optional parameters. * * @opt_param bool enforceSingleParent Deprecated. Creating files in multiple * folders is no longer supported. * @opt_param bool ignoreDefaultVisibility Whether to ignore the domain's * default visibility settings for the created file. Domain administrators can * choose to make all uploaded files visible to the domain by default; this * parameter bypasses that behavior for the request. Permissions are still * inherited from parent folders. * @opt_param string includeLabels A comma-separated list of IDs of labels to * include in the `labelInfo` part of the response. * @opt_param string includePermissionsForView Specifies which additional view's * permissions to include in the response. Only 'published' is supported. * @opt_param bool keepRevisionForever Whether to set the 'keepForever' field in * the new head revision. This is only applicable to files with binary content * in Google Drive. Only 200 revisions for the file can be kept forever. If the * limit is reached, try deleting pinned revisions. * @opt_param string ocrLanguage A language hint for OCR processing during image * import (ISO 639-1 code). * @opt_param bool supportsAllDrives Whether the requesting application supports * both My Drives and shared drives. * @opt_param bool supportsTeamDrives Deprecated: Use `supportsAllDrives` * instead. * @opt_param bool useContentAsIndexableText Whether to use the uploaded content * as indexable text. * @return DriveFile * @throws \Google\Service\Exception */ public function create(\ForminatorGoogleAddon\Google\Service\Drive\DriveFile $postBody, $optParams = []) { } /** * Permanently deletes a file owned by the user without moving it to the trash. * If the file belongs to a shared drive, the user must be an `organizer` on the * parent folder. If the target is a folder, all descendants owned by the user * are also deleted. (files.delete) * * @param string $fileId The ID of the file. * @param array $optParams Optional parameters. * * @opt_param bool enforceSingleParent Deprecated: If an item is not in a shared * drive and its last parent is deleted but the item itself is not, the item * will be placed under its owner's root. * @opt_param bool supportsAllDrives Whether the requesting application supports * both My Drives and shared drives. * @opt_param bool supportsTeamDrives Deprecated: Use `supportsAllDrives` * instead. * @throws \Google\Service\Exception */ public function delete($fileId, $optParams = []) { } /** * Permanently deletes all of the user's trashed files. (files.emptyTrash) * * @param array $optParams Optional parameters. * * @opt_param string driveId If set, empties the trash of the provided shared * drive. * @opt_param bool enforceSingleParent Deprecated: If an item is not in a shared * drive and its last parent is deleted but the item itself is not, the item * will be placed under its owner's root. * @throws \Google\Service\Exception */ public function emptyTrash($optParams = []) { } /** * Exports a Google Workspace document to the requested MIME type and returns * exported byte content. Note that the exported content is limited to 10MB. * (files.export) * * @param string $fileId The ID of the file. * @param string $mimeType Required. The MIME type of the format requested for * this export. * @param array $optParams Optional parameters. * @throws \Google\Service\Exception */ public function export($fileId, $mimeType, $optParams = []) { } /** * Generates a set of file IDs which can be provided in create or copy requests. * (files.generateIds) * * @param array $optParams Optional parameters. * * @opt_param int count The number of IDs to return. * @opt_param string space The space in which the IDs can be used to create new * files. Supported values are 'drive' and 'appDataFolder'. (Default: 'drive') * @opt_param string type The type of items which the IDs can be used for. * Supported values are 'files' and 'shortcuts'. Note that 'shortcuts' are only * supported in the `drive` 'space'. (Default: 'files') * @return GeneratedIds * @throws \Google\Service\Exception */ public function generateIds($optParams = []) { } /** * Gets a file's metadata or content by ID. If you provide the URL parameter * `alt=media`, then the response includes the file contents in the response * body. Downloading content with `alt=media` only works if the file is stored * in Drive. To download Google Docs, Sheets, and Slides use * [`files.export`](/drive/api/reference/rest/v3/files/export) instead. For more * information, see [Download & export files](/drive/api/guides/manage- * downloads). (files.get) * * @param string $fileId The ID of the file. * @param array $optParams Optional parameters. * * @opt_param bool acknowledgeAbuse Whether the user is acknowledging the risk * of downloading known malware or other abusive files. This is only applicable * when alt=media. * @opt_param string includeLabels A comma-separated list of IDs of labels to * include in the `labelInfo` part of the response. * @opt_param string includePermissionsForView Specifies which additional view's * permissions to include in the response. Only 'published' is supported. * @opt_param bool supportsAllDrives Whether the requesting application supports * both My Drives and shared drives. * @opt_param bool supportsTeamDrives Deprecated: Use `supportsAllDrives` * instead. * @return DriveFile * @throws \Google\Service\Exception */ public function get($fileId, $optParams = []) { } /** * Lists the user's files. This method accepts the `q` parameter, which is a * search query combining one or more search terms. For more information, see * the [Search for files & folders](/drive/api/guides/search-files) guide. * *Note:* This method returns *all* files by default, including trashed files. * If you don't want trashed files to appear in the list, use the * `trashed=false` query parameter to remove trashed files from the results. * (files.listFiles) * * @param array $optParams Optional parameters. * * @opt_param string corpora Bodies of items (files/documents) to which the * query applies. Supported bodies are 'user', 'domain', 'drive', and * 'allDrives'. Prefer 'user' or 'drive' to 'allDrives' for efficiency. By * default, corpora is set to 'user'. However, this can change depending on the * filter set through the 'q' parameter. * @opt_param string corpus Deprecated: The source of files to list. Use * 'corpora' instead. * @opt_param string driveId ID of the shared drive to search. * @opt_param bool includeItemsFromAllDrives Whether both My Drive and shared * drive items should be included in results. * @opt_param string includeLabels A comma-separated list of IDs of labels to * include in the `labelInfo` part of the response. * @opt_param string includePermissionsForView Specifies which additional view's * permissions to include in the response. Only 'published' is supported. * @opt_param bool includeTeamDriveItems Deprecated: Use * `includeItemsFromAllDrives` instead. * @opt_param string orderBy A comma-separated list of sort keys. Valid keys are * 'createdTime', 'folder', 'modifiedByMeTime', 'modifiedTime', 'name', * 'name_natural', 'quotaBytesUsed', 'recency', 'sharedWithMeTime', 'starred', * and 'viewedByMeTime'. Each key sorts ascending by default, but can be * reversed with the 'desc' modifier. Example usage: * ?orderBy=folder,modifiedTime desc,name. * @opt_param int pageSize The maximum number of files to return per page. * Partial or empty result pages are possible even before the end of the files * list has been reached. * @opt_param string pageToken The token for continuing a previous list request * on the next page. This should be set to the value of 'nextPageToken' from the * previous response. * @opt_param string q A query for filtering the file results. See the "Search * for files & folders" guide for supported syntax. * @opt_param string spaces A comma-separated list of spaces to query within the * corpora. Supported values are 'drive' and 'appDataFolder'. * @opt_param bool supportsAllDrives Whether the requesting application supports * both My Drives and shared drives. * @opt_param bool supportsTeamDrives Deprecated: Use `supportsAllDrives` * instead. * @opt_param string teamDriveId Deprecated: Use `driveId` instead. * @return FileList * @throws \Google\Service\Exception */ public function listFiles($optParams = []) { } /** * Lists the labels on a file. (files.listLabels) * * @param string $fileId The ID for the file. * @param array $optParams Optional parameters. * * @opt_param int maxResults The maximum number of labels to return per page. * When not set, defaults to 100. * @opt_param string pageToken The token for continuing a previous list request * on the next page. This should be set to the value of 'nextPageToken' from the * previous response. * @return LabelList * @throws \Google\Service\Exception */ public function listLabels($fileId, $optParams = []) { } /** * Modifies the set of labels applied to a file. Returns a list of the labels * that were added or modified. (files.modifyLabels) * * @param string $fileId The ID of the file to which the labels belong. * @param ModifyLabelsRequest $postBody * @param array $optParams Optional parameters. * @return ModifyLabelsResponse * @throws \Google\Service\Exception */ public function modifyLabels($fileId, \ForminatorGoogleAddon\Google\Service\Drive\ModifyLabelsRequest $postBody, $optParams = []) { } /** * Updates a file's metadata and/or content. When calling this method, only * populate fields in the request that you want to modify. When updating fields, * some fields might be changed automatically, such as `modifiedDate`. This * method supports patch semantics. This method supports an upload* URI and * accepts uploaded media with the following characteristics: - *Maximum file * size:* 5,120 GB - *Accepted Media MIME types:*`*` Note: Specify a valid MIME * type, rather than the literal `*` value. The literal `*` is only used to * indicate that any valid MIME type can be uploaded. For more information on * uploading files, see [Upload file data](/drive/api/guides/manage-uploads). * (files.update) * * @param string $fileId The ID of the file. * @param DriveFile $postBody * @param array $optParams Optional parameters. * * @opt_param string addParents A comma-separated list of parent IDs to add. * @opt_param bool enforceSingleParent Deprecated: Adding files to multiple * folders is no longer supported. Use shortcuts instead. * @opt_param string includeLabels A comma-separated list of IDs of labels to * include in the `labelInfo` part of the response. * @opt_param string includePermissionsForView Specifies which additional view's * permissions to include in the response. Only 'published' is supported. * @opt_param bool keepRevisionForever Whether to set the 'keepForever' field in * the new head revision. This is only applicable to files with binary content * in Google Drive. Only 200 revisions for the file can be kept forever. If the * limit is reached, try deleting pinned revisions. * @opt_param string ocrLanguage A language hint for OCR processing during image * import (ISO 639-1 code). * @opt_param string removeParents A comma-separated list of parent IDs to * remove. * @opt_param bool supportsAllDrives Whether the requesting application supports * both My Drives and shared drives. * @opt_param bool supportsTeamDrives Deprecated: Use `supportsAllDrives` * instead. * @opt_param bool useContentAsIndexableText Whether to use the uploaded content * as indexable text. * @return DriveFile * @throws \Google\Service\Exception */ public function update($fileId, \ForminatorGoogleAddon\Google\Service\Drive\DriveFile $postBody, $optParams = []) { } /** * Subscribes to changes to a file. (files.watch) * * @param string $fileId The ID of the file. * @param Channel $postBody * @param array $optParams Optional parameters. * * @opt_param bool acknowledgeAbuse Whether the user is acknowledging the risk * of downloading known malware or other abusive files. This is only applicable * when alt=media. * @opt_param string includeLabels A comma-separated list of IDs of labels to * include in the `labelInfo` part of the response. * @opt_param string includePermissionsForView Specifies which additional view's * permissions to include in the response. Only 'published' is supported. * @opt_param bool supportsAllDrives Whether the requesting application supports * both My Drives and shared drives. * @opt_param bool supportsTeamDrives Deprecated: Use `supportsAllDrives` * instead. * @return Channel * @throws \Google\Service\Exception */ public function watch($fileId, \ForminatorGoogleAddon\Google\Service\Drive\Channel $postBody, $optParams = []) { } } /** * The "permissions" collection of methods. * Typical usage is: * * $driveService = new Google\Service\Drive(...); * $permissions = $driveService->permissions; * */ class Permissions extends \ForminatorGoogleAddon\Google\Service\Resource { /** * Creates a permission for a file or shared drive. **Warning:** Concurrent * permissions operations on the same file are not supported; only the last * update is applied. (permissions.create) * * @param string $fileId The ID of the file or shared drive. * @param Permission $postBody * @param array $optParams Optional parameters. * * @opt_param string emailMessage A plain text custom message to include in the * notification email. * @opt_param bool enforceSingleParent Deprecated: See `moveToNewOwnersRoot` for * details. * @opt_param bool moveToNewOwnersRoot This parameter will only take effect if * the item is not in a shared drive and the request is attempting to transfer * the ownership of the item. If set to `true`, the item will be moved to the * new owner's My Drive root folder and all prior parents removed. If set to * `false`, parents are not changed. * @opt_param bool sendNotificationEmail Whether to send a notification email * when sharing to users or groups. This defaults to true for users and groups, * and is not allowed for other requests. It must not be disabled for ownership * transfers. * @opt_param bool supportsAllDrives Whether the requesting application supports * both My Drives and shared drives. * @opt_param bool supportsTeamDrives Deprecated: Use `supportsAllDrives` * instead. * @opt_param bool transferOwnership Whether to transfer ownership to the * specified user and downgrade the current owner to a writer. This parameter is * required as an acknowledgement of the side effect. * @opt_param bool useDomainAdminAccess Issue the request as a domain * administrator; if set to true, then the requester will be granted access if * the file ID parameter refers to a shared drive and the requester is an * administrator of the domain to which the shared drive belongs. * @return Permission * @throws \Google\Service\Exception */ public function create($fileId, \ForminatorGoogleAddon\Google\Service\Drive\Permission $postBody, $optParams = []) { } /** * Deletes a permission. **Warning:** Concurrent permissions operations on the * same file are not supported; only the last update is applied. * (permissions.delete) * * @param string $fileId The ID of the file or shared drive. * @param string $permissionId The ID of the permission. * @param array $optParams Optional parameters. * * @opt_param bool supportsAllDrives Whether the requesting application supports * both My Drives and shared drives. * @opt_param bool supportsTeamDrives Deprecated: Use `supportsAllDrives` * instead. * @opt_param bool useDomainAdminAccess Issue the request as a domain * administrator; if set to true, then the requester will be granted access if * the file ID parameter refers to a shared drive and the requester is an * administrator of the domain to which the shared drive belongs. * @throws \Google\Service\Exception */ public function delete($fileId, $permissionId, $optParams = []) { } /** * Gets a permission by ID. (permissions.get) * * @param string $fileId The ID of the file. * @param string $permissionId The ID of the permission. * @param array $optParams Optional parameters. * * @opt_param bool supportsAllDrives Whether the requesting application supports * both My Drives and shared drives. * @opt_param bool supportsTeamDrives Deprecated: Use `supportsAllDrives` * instead. * @opt_param bool useDomainAdminAccess Issue the request as a domain * administrator; if set to true, then the requester will be granted access if * the file ID parameter refers to a shared drive and the requester is an * administrator of the domain to which the shared drive belongs. * @return Permission * @throws \Google\Service\Exception */ public function get($fileId, $permissionId, $optParams = []) { } /** * Lists a file's or shared drive's permissions. (permissions.listPermissions) * * @param string $fileId The ID of the file or shared drive. * @param array $optParams Optional parameters. * * @opt_param string includePermissionsForView Specifies which additional view's * permissions to include in the response. Only 'published' is supported. * @opt_param int pageSize The maximum number of permissions to return per page. * When not set for files in a shared drive, at most 100 results will be * returned. When not set for files that are not in a shared drive, the entire * list will be returned. * @opt_param string pageToken The token for continuing a previous list request * on the next page. This should be set to the value of 'nextPageToken' from the * previous response. * @opt_param bool supportsAllDrives Whether the requesting application supports * both My Drives and shared drives. * @opt_param bool supportsTeamDrives Deprecated: Use `supportsAllDrives` * instead. * @opt_param bool useDomainAdminAccess Issue the request as a domain * administrator; if set to true, then the requester will be granted access if * the file ID parameter refers to a shared drive and the requester is an * administrator of the domain to which the shared drive belongs. * @return PermissionList * @throws \Google\Service\Exception */ public function listPermissions($fileId, $optParams = []) { } /** * Updates a permission with patch semantics. **Warning:** Concurrent * permissions operations on the same file are not supported; only the last * update is applied. (permissions.update) * * @param string $fileId The ID of the file or shared drive. * @param string $permissionId The ID of the permission. * @param Permission $postBody * @param array $optParams Optional parameters. * * @opt_param bool removeExpiration Whether to remove the expiration date. * @opt_param bool supportsAllDrives Whether the requesting application supports * both My Drives and shared drives. * @opt_param bool supportsTeamDrives Deprecated: Use `supportsAllDrives` * instead. * @opt_param bool transferOwnership Whether to transfer ownership to the * specified user and downgrade the current owner to a writer. This parameter is * required as an acknowledgement of the side effect. * @opt_param bool useDomainAdminAccess Issue the request as a domain * administrator; if set to true, then the requester will be granted access if * the file ID parameter refers to a shared drive and the requester is an * administrator of the domain to which the shared drive belongs. * @return Permission * @throws \Google\Service\Exception */ public function update($fileId, $permissionId, \ForminatorGoogleAddon\Google\Service\Drive\Permission $postBody, $optParams = []) { } } /** * The "replies" collection of methods. * Typical usage is: * * $driveService = new Google\Service\Drive(...); * $replies = $driveService->replies; * */ class Replies extends \ForminatorGoogleAddon\Google\Service\Resource { /** * Creates a reply to a comment. (replies.create) * * @param string $fileId The ID of the file. * @param string $commentId The ID of the comment. * @param Reply $postBody * @param array $optParams Optional parameters. * @return Reply * @throws \Google\Service\Exception */ public function create($fileId, $commentId, \ForminatorGoogleAddon\Google\Service\Drive\Reply $postBody, $optParams = []) { } /** * Deletes a reply. (replies.delete) * * @param string $fileId The ID of the file. * @param string $commentId The ID of the comment. * @param string $replyId The ID of the reply. * @param array $optParams Optional parameters. * @throws \Google\Service\Exception */ public function delete($fileId, $commentId, $replyId, $optParams = []) { } /** * Gets a reply by ID. (replies.get) * * @param string $fileId The ID of the file. * @param string $commentId The ID of the comment. * @param string $replyId The ID of the reply. * @param array $optParams Optional parameters. * * @opt_param bool includeDeleted Whether to return deleted replies. Deleted * replies will not include their original content. * @return Reply * @throws \Google\Service\Exception */ public function get($fileId, $commentId, $replyId, $optParams = []) { } /** * Lists a comment's replies. (replies.listReplies) * * @param string $fileId The ID of the file. * @param string $commentId The ID of the comment. * @param array $optParams Optional parameters. * * @opt_param bool includeDeleted Whether to include deleted replies. Deleted * replies will not include their original content. * @opt_param int pageSize The maximum number of replies to return per page. * @opt_param string pageToken The token for continuing a previous list request * on the next page. This should be set to the value of 'nextPageToken' from the * previous response. * @return ReplyList * @throws \Google\Service\Exception */ public function listReplies($fileId, $commentId, $optParams = []) { } /** * Updates a reply with patch semantics. (replies.update) * * @param string $fileId The ID of the file. * @param string $commentId The ID of the comment. * @param string $replyId The ID of the reply. * @param Reply $postBody * @param array $optParams Optional parameters. * @return Reply * @throws \Google\Service\Exception */ public function update($fileId, $commentId, $replyId, \ForminatorGoogleAddon\Google\Service\Drive\Reply $postBody, $optParams = []) { } } /** * The "revisions" collection of methods. * Typical usage is: * * $driveService = new Google\Service\Drive(...); * $revisions = $driveService->revisions; * */ class Revisions extends \ForminatorGoogleAddon\Google\Service\Resource { /** * Permanently deletes a file version. You can only delete revisions for files * with binary content in Google Drive, like images or videos. Revisions for * other files, like Google Docs or Sheets, and the last remaining file version * can't be deleted. (revisions.delete) * * @param string $fileId The ID of the file. * @param string $revisionId The ID of the revision. * @param array $optParams Optional parameters. * @throws \Google\Service\Exception */ public function delete($fileId, $revisionId, $optParams = []) { } /** * Gets a revision's metadata or content by ID. (revisions.get) * * @param string $fileId The ID of the file. * @param string $revisionId The ID of the revision. * @param array $optParams Optional parameters. * * @opt_param bool acknowledgeAbuse Whether the user is acknowledging the risk * of downloading known malware or other abusive files. This is only applicable * when alt=media. * @return Revision * @throws \Google\Service\Exception */ public function get($fileId, $revisionId, $optParams = []) { } /** * Lists a file's revisions. (revisions.listRevisions) * * @param string $fileId The ID of the file. * @param array $optParams Optional parameters. * * @opt_param int pageSize The maximum number of revisions to return per page. * @opt_param string pageToken The token for continuing a previous list request * on the next page. This should be set to the value of 'nextPageToken' from the * previous response. * @return RevisionList * @throws \Google\Service\Exception */ public function listRevisions($fileId, $optParams = []) { } /** * Updates a revision with patch semantics. (revisions.update) * * @param string $fileId The ID of the file. * @param string $revisionId The ID of the revision. * @param Revision $postBody * @param array $optParams Optional parameters. * @return Revision * @throws \Google\Service\Exception */ public function update($fileId, $revisionId, \ForminatorGoogleAddon\Google\Service\Drive\Revision $postBody, $optParams = []) { } } /** * The "teamdrives" collection of methods. * Typical usage is: * * $driveService = new Google\Service\Drive(...); * $teamdrives = $driveService->teamdrives; * */ class Teamdrives extends \ForminatorGoogleAddon\Google\Service\Resource { /** * Deprecated: Use `drives.create` instead. (teamdrives.create) * * @param string $requestId Required. An ID, such as a random UUID, which * uniquely identifies this user's request for idempotent creation of a Team * Drive. A repeated request by the same user and with the same request ID will * avoid creating duplicates by attempting to create the same Team Drive. If the * Team Drive already exists a 409 error will be returned. * @param TeamDrive $postBody * @param array $optParams Optional parameters. * @return TeamDrive * @throws \Google\Service\Exception */ public function create($requestId, \ForminatorGoogleAddon\Google\Service\Drive\TeamDrive $postBody, $optParams = []) { } /** * Deprecated: Use `drives.delete` instead. (teamdrives.delete) * * @param string $teamDriveId The ID of the Team Drive * @param array $optParams Optional parameters. * @throws \Google\Service\Exception */ public function delete($teamDriveId, $optParams = []) { } /** * Deprecated: Use `drives.get` instead. (teamdrives.get) * * @param string $teamDriveId The ID of the Team Drive * @param array $optParams Optional parameters. * * @opt_param bool useDomainAdminAccess Issue the request as a domain * administrator; if set to true, then the requester will be granted access if * they are an administrator of the domain to which the Team Drive belongs. * @return TeamDrive * @throws \Google\Service\Exception */ public function get($teamDriveId, $optParams = []) { } /** * Deprecated: Use `drives.list` instead. (teamdrives.listTeamdrives) * * @param array $optParams Optional parameters. * * @opt_param int pageSize Maximum number of Team Drives to return. * @opt_param string pageToken Page token for Team Drives. * @opt_param string q Query string for searching Team Drives. * @opt_param bool useDomainAdminAccess Issue the request as a domain * administrator; if set to true, then all Team Drives of the domain in which * the requester is an administrator are returned. * @return TeamDriveList * @throws \Google\Service\Exception */ public function listTeamdrives($optParams = []) { } /** * Deprecated: Use `drives.update` instead. (teamdrives.update) * * @param string $teamDriveId The ID of the Team Drive * @param TeamDrive $postBody * @param array $optParams Optional parameters. * * @opt_param bool useDomainAdminAccess Issue the request as a domain * administrator; if set to true, then the requester will be granted access if * they are an administrator of the domain to which the Team Drive belongs. * @return TeamDrive * @throws \Google\Service\Exception */ public function update($teamDriveId, \ForminatorGoogleAddon\Google\Service\Drive\TeamDrive $postBody, $optParams = []) { } } } namespace ForminatorGoogleAddon\Google\Service\Drive { class Revision extends \ForminatorGoogleAddon\Google\Model { /** * @var string[] */ public $exportLinks; /** * @var string */ public $id; /** * @var bool */ public $keepForever; /** * @var string */ public $kind; protected $lastModifyingUserType = \ForminatorGoogleAddon\Google\Service\Drive\User::class; protected $lastModifyingUserDataType = ''; /** * @var string */ public $md5Checksum; /** * @var string */ public $mimeType; /** * @var string */ public $modifiedTime; /** * @var string */ public $originalFilename; /** * @var bool */ public $publishAuto; /** * @var bool */ public $published; /** * @var string */ public $publishedLink; /** * @var bool */ public $publishedOutsideDomain; /** * @var string */ public $size; /** * @param string[] */ public function setExportLinks($exportLinks) { } /** * @return string[] */ public function getExportLinks() { } /** * @param string */ public function setId($id) { } /** * @return string */ public function getId() { } /** * @param bool */ public function setKeepForever($keepForever) { } /** * @return bool */ public function getKeepForever() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param User */ public function setLastModifyingUser(\ForminatorGoogleAddon\Google\Service\Drive\User $lastModifyingUser) { } /** * @return User */ public function getLastModifyingUser() { } /** * @param string */ public function setMd5Checksum($md5Checksum) { } /** * @return string */ public function getMd5Checksum() { } /** * @param string */ public function setMimeType($mimeType) { } /** * @return string */ public function getMimeType() { } /** * @param string */ public function setModifiedTime($modifiedTime) { } /** * @return string */ public function getModifiedTime() { } /** * @param string */ public function setOriginalFilename($originalFilename) { } /** * @return string */ public function getOriginalFilename() { } /** * @param bool */ public function setPublishAuto($publishAuto) { } /** * @return bool */ public function getPublishAuto() { } /** * @param bool */ public function setPublished($published) { } /** * @return bool */ public function getPublished() { } /** * @param string */ public function setPublishedLink($publishedLink) { } /** * @return string */ public function getPublishedLink() { } /** * @param bool */ public function setPublishedOutsideDomain($publishedOutsideDomain) { } /** * @return bool */ public function getPublishedOutsideDomain() { } /** * @param string */ public function setSize($size) { } /** * @return string */ public function getSize() { } } class RevisionList extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'revisions'; /** * @var string */ public $kind; /** * @var string */ public $nextPageToken; protected $revisionsType = \ForminatorGoogleAddon\Google\Service\Drive\Revision::class; protected $revisionsDataType = 'array'; /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setNextPageToken($nextPageToken) { } /** * @return string */ public function getNextPageToken() { } /** * @param Revision[] */ public function setRevisions($revisions) { } /** * @return Revision[] */ public function getRevisions() { } } class StartPageToken extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $kind; /** * @var string */ public $startPageToken; /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setStartPageToken($startPageToken) { } /** * @return string */ public function getStartPageToken() { } } class TeamDrive extends \ForminatorGoogleAddon\Google\Model { protected $backgroundImageFileType = \ForminatorGoogleAddon\Google\Service\Drive\TeamDriveBackgroundImageFile::class; protected $backgroundImageFileDataType = ''; /** * @var string */ public $backgroundImageLink; protected $capabilitiesType = \ForminatorGoogleAddon\Google\Service\Drive\TeamDriveCapabilities::class; protected $capabilitiesDataType = ''; /** * @var string */ public $colorRgb; /** * @var string */ public $createdTime; /** * @var string */ public $id; /** * @var string */ public $kind; /** * @var string */ public $name; /** * @var string */ public $orgUnitId; protected $restrictionsType = \ForminatorGoogleAddon\Google\Service\Drive\TeamDriveRestrictions::class; protected $restrictionsDataType = ''; /** * @var string */ public $themeId; /** * @param TeamDriveBackgroundImageFile */ public function setBackgroundImageFile(\ForminatorGoogleAddon\Google\Service\Drive\TeamDriveBackgroundImageFile $backgroundImageFile) { } /** * @return TeamDriveBackgroundImageFile */ public function getBackgroundImageFile() { } /** * @param string */ public function setBackgroundImageLink($backgroundImageLink) { } /** * @return string */ public function getBackgroundImageLink() { } /** * @param TeamDriveCapabilities */ public function setCapabilities(\ForminatorGoogleAddon\Google\Service\Drive\TeamDriveCapabilities $capabilities) { } /** * @return TeamDriveCapabilities */ public function getCapabilities() { } /** * @param string */ public function setColorRgb($colorRgb) { } /** * @return string */ public function getColorRgb() { } /** * @param string */ public function setCreatedTime($createdTime) { } /** * @return string */ public function getCreatedTime() { } /** * @param string */ public function setId($id) { } /** * @return string */ public function getId() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setName($name) { } /** * @return string */ public function getName() { } /** * @param string */ public function setOrgUnitId($orgUnitId) { } /** * @return string */ public function getOrgUnitId() { } /** * @param TeamDriveRestrictions */ public function setRestrictions(\ForminatorGoogleAddon\Google\Service\Drive\TeamDriveRestrictions $restrictions) { } /** * @return TeamDriveRestrictions */ public function getRestrictions() { } /** * @param string */ public function setThemeId($themeId) { } /** * @return string */ public function getThemeId() { } } class TeamDriveBackgroundImageFile extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $id; /** * @var float */ public $width; /** * @var float */ public $xCoordinate; /** * @var float */ public $yCoordinate; /** * @param string */ public function setId($id) { } /** * @return string */ public function getId() { } /** * @param float */ public function setWidth($width) { } /** * @return float */ public function getWidth() { } /** * @param float */ public function setXCoordinate($xCoordinate) { } /** * @return float */ public function getXCoordinate() { } /** * @param float */ public function setYCoordinate($yCoordinate) { } /** * @return float */ public function getYCoordinate() { } } class TeamDriveCapabilities extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $canAddChildren; /** * @var bool */ public $canChangeCopyRequiresWriterPermissionRestriction; /** * @var bool */ public $canChangeDomainUsersOnlyRestriction; /** * @var bool */ public $canChangeSharingFoldersRequiresOrganizerPermissionRestriction; /** * @var bool */ public $canChangeTeamDriveBackground; /** * @var bool */ public $canChangeTeamMembersOnlyRestriction; /** * @var bool */ public $canComment; /** * @var bool */ public $canCopy; /** * @var bool */ public $canDeleteChildren; /** * @var bool */ public $canDeleteTeamDrive; /** * @var bool */ public $canDownload; /** * @var bool */ public $canEdit; /** * @var bool */ public $canListChildren; /** * @var bool */ public $canManageMembers; /** * @var bool */ public $canReadRevisions; /** * @var bool */ public $canRemoveChildren; /** * @var bool */ public $canRename; /** * @var bool */ public $canRenameTeamDrive; /** * @var bool */ public $canResetTeamDriveRestrictions; /** * @var bool */ public $canShare; /** * @var bool */ public $canTrashChildren; /** * @param bool */ public function setCanAddChildren($canAddChildren) { } /** * @return bool */ public function getCanAddChildren() { } /** * @param bool */ public function setCanChangeCopyRequiresWriterPermissionRestriction($canChangeCopyRequiresWriterPermissionRestriction) { } /** * @return bool */ public function getCanChangeCopyRequiresWriterPermissionRestriction() { } /** * @param bool */ public function setCanChangeDomainUsersOnlyRestriction($canChangeDomainUsersOnlyRestriction) { } /** * @return bool */ public function getCanChangeDomainUsersOnlyRestriction() { } /** * @param bool */ public function setCanChangeSharingFoldersRequiresOrganizerPermissionRestriction($canChangeSharingFoldersRequiresOrganizerPermissionRestriction) { } /** * @return bool */ public function getCanChangeSharingFoldersRequiresOrganizerPermissionRestriction() { } /** * @param bool */ public function setCanChangeTeamDriveBackground($canChangeTeamDriveBackground) { } /** * @return bool */ public function getCanChangeTeamDriveBackground() { } /** * @param bool */ public function setCanChangeTeamMembersOnlyRestriction($canChangeTeamMembersOnlyRestriction) { } /** * @return bool */ public function getCanChangeTeamMembersOnlyRestriction() { } /** * @param bool */ public function setCanComment($canComment) { } /** * @return bool */ public function getCanComment() { } /** * @param bool */ public function setCanCopy($canCopy) { } /** * @return bool */ public function getCanCopy() { } /** * @param bool */ public function setCanDeleteChildren($canDeleteChildren) { } /** * @return bool */ public function getCanDeleteChildren() { } /** * @param bool */ public function setCanDeleteTeamDrive($canDeleteTeamDrive) { } /** * @return bool */ public function getCanDeleteTeamDrive() { } /** * @param bool */ public function setCanDownload($canDownload) { } /** * @return bool */ public function getCanDownload() { } /** * @param bool */ public function setCanEdit($canEdit) { } /** * @return bool */ public function getCanEdit() { } /** * @param bool */ public function setCanListChildren($canListChildren) { } /** * @return bool */ public function getCanListChildren() { } /** * @param bool */ public function setCanManageMembers($canManageMembers) { } /** * @return bool */ public function getCanManageMembers() { } /** * @param bool */ public function setCanReadRevisions($canReadRevisions) { } /** * @return bool */ public function getCanReadRevisions() { } /** * @param bool */ public function setCanRemoveChildren($canRemoveChildren) { } /** * @return bool */ public function getCanRemoveChildren() { } /** * @param bool */ public function setCanRename($canRename) { } /** * @return bool */ public function getCanRename() { } /** * @param bool */ public function setCanRenameTeamDrive($canRenameTeamDrive) { } /** * @return bool */ public function getCanRenameTeamDrive() { } /** * @param bool */ public function setCanResetTeamDriveRestrictions($canResetTeamDriveRestrictions) { } /** * @return bool */ public function getCanResetTeamDriveRestrictions() { } /** * @param bool */ public function setCanShare($canShare) { } /** * @return bool */ public function getCanShare() { } /** * @param bool */ public function setCanTrashChildren($canTrashChildren) { } /** * @return bool */ public function getCanTrashChildren() { } } class TeamDriveList extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'teamDrives'; /** * @var string */ public $kind; /** * @var string */ public $nextPageToken; protected $teamDrivesType = \ForminatorGoogleAddon\Google\Service\Drive\TeamDrive::class; protected $teamDrivesDataType = 'array'; /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param string */ public function setNextPageToken($nextPageToken) { } /** * @return string */ public function getNextPageToken() { } /** * @param TeamDrive[] */ public function setTeamDrives($teamDrives) { } /** * @return TeamDrive[] */ public function getTeamDrives() { } } class TeamDriveRestrictions extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $adminManagedRestrictions; /** * @var bool */ public $copyRequiresWriterPermission; /** * @var bool */ public $domainUsersOnly; /** * @var bool */ public $sharingFoldersRequiresOrganizerPermission; /** * @var bool */ public $teamMembersOnly; /** * @param bool */ public function setAdminManagedRestrictions($adminManagedRestrictions) { } /** * @return bool */ public function getAdminManagedRestrictions() { } /** * @param bool */ public function setCopyRequiresWriterPermission($copyRequiresWriterPermission) { } /** * @return bool */ public function getCopyRequiresWriterPermission() { } /** * @param bool */ public function setDomainUsersOnly($domainUsersOnly) { } /** * @return bool */ public function getDomainUsersOnly() { } /** * @param bool */ public function setSharingFoldersRequiresOrganizerPermission($sharingFoldersRequiresOrganizerPermission) { } /** * @return bool */ public function getSharingFoldersRequiresOrganizerPermission() { } /** * @param bool */ public function setTeamMembersOnly($teamMembersOnly) { } /** * @return bool */ public function getTeamMembersOnly() { } } class User extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $displayName; /** * @var string */ public $emailAddress; /** * @var string */ public $kind; /** * @var bool */ public $me; /** * @var string */ public $permissionId; /** * @var string */ public $photoLink; /** * @param string */ public function setDisplayName($displayName) { } /** * @return string */ public function getDisplayName() { } /** * @param string */ public function setEmailAddress($emailAddress) { } /** * @return string */ public function getEmailAddress() { } /** * @param string */ public function setKind($kind) { } /** * @return string */ public function getKind() { } /** * @param bool */ public function setMe($me) { } /** * @return bool */ public function getMe() { } /** * @param string */ public function setPermissionId($permissionId) { } /** * @return string */ public function getPermissionId() { } /** * @param string */ public function setPhotoLink($photoLink) { } /** * @return string */ public function getPhotoLink() { } } } namespace ForminatorGoogleAddon\Google\Service { /** * Service definition for Sheets (v4). * *

* Reads and writes Google Sheets.

* *

* For more information about this service, see the API * Documentation *

* * @author Google, Inc. */ class Sheets extends \ForminatorGoogleAddon\Google\Service { /** See, edit, create, and delete all of your Google Drive files. */ const DRIVE = "https://www.googleapis.com/auth/drive"; /** See, edit, create, and delete only the specific Google Drive files you use with this app. */ const DRIVE_FILE = "https://www.googleapis.com/auth/drive.file"; /** See and download all your Google Drive files. */ const DRIVE_READONLY = "https://www.googleapis.com/auth/drive.readonly"; /** See, edit, create, and delete all your Google Sheets spreadsheets. */ const SPREADSHEETS = "https://www.googleapis.com/auth/spreadsheets"; /** See all your Google Sheets spreadsheets. */ const SPREADSHEETS_READONLY = "https://www.googleapis.com/auth/spreadsheets.readonly"; public $spreadsheets; public $spreadsheets_developerMetadata; public $spreadsheets_sheets; public $spreadsheets_values; public $rootUrlTemplate; /** * Constructs the internal representation of the Sheets service. * * @param Client|array $clientOrConfig The client used to deliver requests, or a * config array to pass to a new Client instance. * @param string $rootUrl The root URL used for requests to the service. */ public function __construct($clientOrConfig = [], $rootUrl = null) { } } } namespace ForminatorGoogleAddon\Google\Service\Sheets { class AddBandingRequest extends \ForminatorGoogleAddon\Google\Model { protected $bandedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\BandedRange::class; protected $bandedRangeDataType = ''; /** * @param BandedRange */ public function setBandedRange(\ForminatorGoogleAddon\Google\Service\Sheets\BandedRange $bandedRange) { } /** * @return BandedRange */ public function getBandedRange() { } } class AddBandingResponse extends \ForminatorGoogleAddon\Google\Model { protected $bandedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\BandedRange::class; protected $bandedRangeDataType = ''; /** * @param BandedRange */ public function setBandedRange(\ForminatorGoogleAddon\Google\Service\Sheets\BandedRange $bandedRange) { } /** * @return BandedRange */ public function getBandedRange() { } } class AddChartRequest extends \ForminatorGoogleAddon\Google\Model { protected $chartType = \ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedChart::class; protected $chartDataType = ''; /** * @param EmbeddedChart */ public function setChart(\ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedChart $chart) { } /** * @return EmbeddedChart */ public function getChart() { } } class AddChartResponse extends \ForminatorGoogleAddon\Google\Model { protected $chartType = \ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedChart::class; protected $chartDataType = ''; /** * @param EmbeddedChart */ public function setChart(\ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedChart $chart) { } /** * @return EmbeddedChart */ public function getChart() { } } class AddConditionalFormatRuleRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $index; protected $ruleType = \ForminatorGoogleAddon\Google\Service\Sheets\ConditionalFormatRule::class; protected $ruleDataType = ''; /** * @param int */ public function setIndex($index) { } /** * @return int */ public function getIndex() { } /** * @param ConditionalFormatRule */ public function setRule(\ForminatorGoogleAddon\Google\Service\Sheets\ConditionalFormatRule $rule) { } /** * @return ConditionalFormatRule */ public function getRule() { } } class AddDataSourceRequest extends \ForminatorGoogleAddon\Google\Model { protected $dataSourceType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSource::class; protected $dataSourceDataType = ''; /** * @param DataSource */ public function setDataSource(\ForminatorGoogleAddon\Google\Service\Sheets\DataSource $dataSource) { } /** * @return DataSource */ public function getDataSource() { } } class AddDataSourceResponse extends \ForminatorGoogleAddon\Google\Model { protected $dataExecutionStatusType = \ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus::class; protected $dataExecutionStatusDataType = ''; protected $dataSourceType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSource::class; protected $dataSourceDataType = ''; /** * @param DataExecutionStatus */ public function setDataExecutionStatus(\ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus $dataExecutionStatus) { } /** * @return DataExecutionStatus */ public function getDataExecutionStatus() { } /** * @param DataSource */ public function setDataSource(\ForminatorGoogleAddon\Google\Service\Sheets\DataSource $dataSource) { } /** * @return DataSource */ public function getDataSource() { } } class AddDimensionGroupRequest extends \ForminatorGoogleAddon\Google\Model { protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange::class; protected $rangeDataType = ''; /** * @param DimensionRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange $range) { } /** * @return DimensionRange */ public function getRange() { } } class AddDimensionGroupResponse extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'dimensionGroups'; protected $dimensionGroupsType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionGroup::class; protected $dimensionGroupsDataType = 'array'; /** * @param DimensionGroup[] */ public function setDimensionGroups($dimensionGroups) { } /** * @return DimensionGroup[] */ public function getDimensionGroups() { } } class AddFilterViewRequest extends \ForminatorGoogleAddon\Google\Model { protected $filterType = \ForminatorGoogleAddon\Google\Service\Sheets\FilterView::class; protected $filterDataType = ''; /** * @param FilterView */ public function setFilter(\ForminatorGoogleAddon\Google\Service\Sheets\FilterView $filter) { } /** * @return FilterView */ public function getFilter() { } } class AddFilterViewResponse extends \ForminatorGoogleAddon\Google\Model { protected $filterType = \ForminatorGoogleAddon\Google\Service\Sheets\FilterView::class; protected $filterDataType = ''; /** * @param FilterView */ public function setFilter(\ForminatorGoogleAddon\Google\Service\Sheets\FilterView $filter) { } /** * @return FilterView */ public function getFilter() { } } class AddNamedRangeRequest extends \ForminatorGoogleAddon\Google\Model { protected $namedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\NamedRange::class; protected $namedRangeDataType = ''; /** * @param NamedRange */ public function setNamedRange(\ForminatorGoogleAddon\Google\Service\Sheets\NamedRange $namedRange) { } /** * @return NamedRange */ public function getNamedRange() { } } class AddNamedRangeResponse extends \ForminatorGoogleAddon\Google\Model { protected $namedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\NamedRange::class; protected $namedRangeDataType = ''; /** * @param NamedRange */ public function setNamedRange(\ForminatorGoogleAddon\Google\Service\Sheets\NamedRange $namedRange) { } /** * @return NamedRange */ public function getNamedRange() { } } class AddProtectedRangeRequest extends \ForminatorGoogleAddon\Google\Model { protected $protectedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\ProtectedRange::class; protected $protectedRangeDataType = ''; /** * @param ProtectedRange */ public function setProtectedRange(\ForminatorGoogleAddon\Google\Service\Sheets\ProtectedRange $protectedRange) { } /** * @return ProtectedRange */ public function getProtectedRange() { } } class AddProtectedRangeResponse extends \ForminatorGoogleAddon\Google\Model { protected $protectedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\ProtectedRange::class; protected $protectedRangeDataType = ''; /** * @param ProtectedRange */ public function setProtectedRange(\ForminatorGoogleAddon\Google\Service\Sheets\ProtectedRange $protectedRange) { } /** * @return ProtectedRange */ public function getProtectedRange() { } } class AddSheetRequest extends \ForminatorGoogleAddon\Google\Model { protected $propertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\SheetProperties::class; protected $propertiesDataType = ''; /** * @param SheetProperties */ public function setProperties(\ForminatorGoogleAddon\Google\Service\Sheets\SheetProperties $properties) { } /** * @return SheetProperties */ public function getProperties() { } } class AddSheetResponse extends \ForminatorGoogleAddon\Google\Model { protected $propertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\SheetProperties::class; protected $propertiesDataType = ''; /** * @param SheetProperties */ public function setProperties(\ForminatorGoogleAddon\Google\Service\Sheets\SheetProperties $properties) { } /** * @return SheetProperties */ public function getProperties() { } } class AddSlicerRequest extends \ForminatorGoogleAddon\Google\Model { protected $slicerType = \ForminatorGoogleAddon\Google\Service\Sheets\Slicer::class; protected $slicerDataType = ''; /** * @param Slicer */ public function setSlicer(\ForminatorGoogleAddon\Google\Service\Sheets\Slicer $slicer) { } /** * @return Slicer */ public function getSlicer() { } } class AddSlicerResponse extends \ForminatorGoogleAddon\Google\Model { protected $slicerType = \ForminatorGoogleAddon\Google\Service\Sheets\Slicer::class; protected $slicerDataType = ''; /** * @param Slicer */ public function setSlicer(\ForminatorGoogleAddon\Google\Service\Sheets\Slicer $slicer) { } /** * @return Slicer */ public function getSlicer() { } } class AppendCellsRequest extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'rows'; /** * @var string */ public $fields; protected $rowsType = \ForminatorGoogleAddon\Google\Service\Sheets\RowData::class; protected $rowsDataType = 'array'; /** * @var int */ public $sheetId; /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } /** * @param RowData[] */ public function setRows($rows) { } /** * @return RowData[] */ public function getRows() { } /** * @param int */ public function setSheetId($sheetId) { } /** * @return int */ public function getSheetId() { } } class AppendDimensionRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $dimension; /** * @var int */ public $length; /** * @var int */ public $sheetId; /** * @param string */ public function setDimension($dimension) { } /** * @return string */ public function getDimension() { } /** * @param int */ public function setLength($length) { } /** * @return int */ public function getLength() { } /** * @param int */ public function setSheetId($sheetId) { } /** * @return int */ public function getSheetId() { } } class AppendValuesResponse extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $spreadsheetId; /** * @var string */ public $tableRange; protected $updatesType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateValuesResponse::class; protected $updatesDataType = ''; /** * @param string */ public function setSpreadsheetId($spreadsheetId) { } /** * @return string */ public function getSpreadsheetId() { } /** * @param string */ public function setTableRange($tableRange) { } /** * @return string */ public function getTableRange() { } /** * @param UpdateValuesResponse */ public function setUpdates(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateValuesResponse $updates) { } /** * @return UpdateValuesResponse */ public function getUpdates() { } } class AutoFillRequest extends \ForminatorGoogleAddon\Google\Model { protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; protected $sourceAndDestinationType = \ForminatorGoogleAddon\Google\Service\Sheets\SourceAndDestination::class; protected $sourceAndDestinationDataType = ''; /** * @var bool */ public $useAlternateSeries; /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } /** * @param SourceAndDestination */ public function setSourceAndDestination(\ForminatorGoogleAddon\Google\Service\Sheets\SourceAndDestination $sourceAndDestination) { } /** * @return SourceAndDestination */ public function getSourceAndDestination() { } /** * @param bool */ public function setUseAlternateSeries($useAlternateSeries) { } /** * @return bool */ public function getUseAlternateSeries() { } } class AutoResizeDimensionsRequest extends \ForminatorGoogleAddon\Google\Model { protected $dataSourceSheetDimensionsType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceSheetDimensionRange::class; protected $dataSourceSheetDimensionsDataType = ''; protected $dimensionsType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange::class; protected $dimensionsDataType = ''; /** * @param DataSourceSheetDimensionRange */ public function setDataSourceSheetDimensions(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceSheetDimensionRange $dataSourceSheetDimensions) { } /** * @return DataSourceSheetDimensionRange */ public function getDataSourceSheetDimensions() { } /** * @param DimensionRange */ public function setDimensions(\ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange $dimensions) { } /** * @return DimensionRange */ public function getDimensions() { } } class BandedRange extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $bandedRangeId; protected $columnPropertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\BandingProperties::class; protected $columnPropertiesDataType = ''; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; protected $rowPropertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\BandingProperties::class; protected $rowPropertiesDataType = ''; /** * @param int */ public function setBandedRangeId($bandedRangeId) { } /** * @return int */ public function getBandedRangeId() { } /** * @param BandingProperties */ public function setColumnProperties(\ForminatorGoogleAddon\Google\Service\Sheets\BandingProperties $columnProperties) { } /** * @return BandingProperties */ public function getColumnProperties() { } /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } /** * @param BandingProperties */ public function setRowProperties(\ForminatorGoogleAddon\Google\Service\Sheets\BandingProperties $rowProperties) { } /** * @return BandingProperties */ public function getRowProperties() { } } class BandingProperties extends \ForminatorGoogleAddon\Google\Model { protected $firstBandColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $firstBandColorDataType = ''; protected $firstBandColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $firstBandColorStyleDataType = ''; protected $footerColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $footerColorDataType = ''; protected $footerColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $footerColorStyleDataType = ''; protected $headerColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $headerColorDataType = ''; protected $headerColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $headerColorStyleDataType = ''; protected $secondBandColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $secondBandColorDataType = ''; protected $secondBandColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $secondBandColorStyleDataType = ''; /** * @param Color */ public function setFirstBandColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $firstBandColor) { } /** * @return Color */ public function getFirstBandColor() { } /** * @param ColorStyle */ public function setFirstBandColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $firstBandColorStyle) { } /** * @return ColorStyle */ public function getFirstBandColorStyle() { } /** * @param Color */ public function setFooterColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $footerColor) { } /** * @return Color */ public function getFooterColor() { } /** * @param ColorStyle */ public function setFooterColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $footerColorStyle) { } /** * @return ColorStyle */ public function getFooterColorStyle() { } /** * @param Color */ public function setHeaderColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $headerColor) { } /** * @return Color */ public function getHeaderColor() { } /** * @param ColorStyle */ public function setHeaderColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $headerColorStyle) { } /** * @return ColorStyle */ public function getHeaderColorStyle() { } /** * @param Color */ public function setSecondBandColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $secondBandColor) { } /** * @return Color */ public function getSecondBandColor() { } /** * @param ColorStyle */ public function setSecondBandColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $secondBandColorStyle) { } /** * @return ColorStyle */ public function getSecondBandColorStyle() { } } class BaselineValueFormat extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $comparisonType; /** * @var string */ public $description; protected $negativeColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $negativeColorDataType = ''; protected $negativeColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $negativeColorStyleDataType = ''; protected $positionType = \ForminatorGoogleAddon\Google\Service\Sheets\TextPosition::class; protected $positionDataType = ''; protected $positiveColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $positiveColorDataType = ''; protected $positiveColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $positiveColorStyleDataType = ''; protected $textFormatType = \ForminatorGoogleAddon\Google\Service\Sheets\TextFormat::class; protected $textFormatDataType = ''; /** * @param string */ public function setComparisonType($comparisonType) { } /** * @return string */ public function getComparisonType() { } /** * @param string */ public function setDescription($description) { } /** * @return string */ public function getDescription() { } /** * @param Color */ public function setNegativeColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $negativeColor) { } /** * @return Color */ public function getNegativeColor() { } /** * @param ColorStyle */ public function setNegativeColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $negativeColorStyle) { } /** * @return ColorStyle */ public function getNegativeColorStyle() { } /** * @param TextPosition */ public function setPosition(\ForminatorGoogleAddon\Google\Service\Sheets\TextPosition $position) { } /** * @return TextPosition */ public function getPosition() { } /** * @param Color */ public function setPositiveColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $positiveColor) { } /** * @return Color */ public function getPositiveColor() { } /** * @param ColorStyle */ public function setPositiveColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $positiveColorStyle) { } /** * @return ColorStyle */ public function getPositiveColorStyle() { } /** * @param TextFormat */ public function setTextFormat(\ForminatorGoogleAddon\Google\Service\Sheets\TextFormat $textFormat) { } /** * @return TextFormat */ public function getTextFormat() { } } class BasicChartAxis extends \ForminatorGoogleAddon\Google\Model { protected $formatType = \ForminatorGoogleAddon\Google\Service\Sheets\TextFormat::class; protected $formatDataType = ''; /** * @var string */ public $position; /** * @var string */ public $title; protected $titleTextPositionType = \ForminatorGoogleAddon\Google\Service\Sheets\TextPosition::class; protected $titleTextPositionDataType = ''; protected $viewWindowOptionsType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartAxisViewWindowOptions::class; protected $viewWindowOptionsDataType = ''; /** * @param TextFormat */ public function setFormat(\ForminatorGoogleAddon\Google\Service\Sheets\TextFormat $format) { } /** * @return TextFormat */ public function getFormat() { } /** * @param string */ public function setPosition($position) { } /** * @return string */ public function getPosition() { } /** * @param string */ public function setTitle($title) { } /** * @return string */ public function getTitle() { } /** * @param TextPosition */ public function setTitleTextPosition(\ForminatorGoogleAddon\Google\Service\Sheets\TextPosition $titleTextPosition) { } /** * @return TextPosition */ public function getTitleTextPosition() { } /** * @param ChartAxisViewWindowOptions */ public function setViewWindowOptions(\ForminatorGoogleAddon\Google\Service\Sheets\ChartAxisViewWindowOptions $viewWindowOptions) { } /** * @return ChartAxisViewWindowOptions */ public function getViewWindowOptions() { } } class BasicChartDomain extends \ForminatorGoogleAddon\Google\Model { protected $domainType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $domainDataType = ''; /** * @var bool */ public $reversed; /** * @param ChartData */ public function setDomain(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $domain) { } /** * @return ChartData */ public function getDomain() { } /** * @param bool */ public function setReversed($reversed) { } /** * @return bool */ public function getReversed() { } } class BasicChartSeries extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'styleOverrides'; protected $colorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $colorDataType = ''; protected $colorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $colorStyleDataType = ''; protected $dataLabelType = \ForminatorGoogleAddon\Google\Service\Sheets\DataLabel::class; protected $dataLabelDataType = ''; protected $lineStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\LineStyle::class; protected $lineStyleDataType = ''; protected $pointStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\PointStyle::class; protected $pointStyleDataType = ''; protected $seriesType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $seriesDataType = ''; protected $styleOverridesType = \ForminatorGoogleAddon\Google\Service\Sheets\BasicSeriesDataPointStyleOverride::class; protected $styleOverridesDataType = 'array'; /** * @var string */ public $targetAxis; /** * @var string */ public $type; /** * @param Color */ public function setColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $color) { } /** * @return Color */ public function getColor() { } /** * @param ColorStyle */ public function setColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $colorStyle) { } /** * @return ColorStyle */ public function getColorStyle() { } /** * @param DataLabel */ public function setDataLabel(\ForminatorGoogleAddon\Google\Service\Sheets\DataLabel $dataLabel) { } /** * @return DataLabel */ public function getDataLabel() { } /** * @param LineStyle */ public function setLineStyle(\ForminatorGoogleAddon\Google\Service\Sheets\LineStyle $lineStyle) { } /** * @return LineStyle */ public function getLineStyle() { } /** * @param PointStyle */ public function setPointStyle(\ForminatorGoogleAddon\Google\Service\Sheets\PointStyle $pointStyle) { } /** * @return PointStyle */ public function getPointStyle() { } /** * @param ChartData */ public function setSeries(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $series) { } /** * @return ChartData */ public function getSeries() { } /** * @param BasicSeriesDataPointStyleOverride[] */ public function setStyleOverrides($styleOverrides) { } /** * @return BasicSeriesDataPointStyleOverride[] */ public function getStyleOverrides() { } /** * @param string */ public function setTargetAxis($targetAxis) { } /** * @return string */ public function getTargetAxis() { } /** * @param string */ public function setType($type) { } /** * @return string */ public function getType() { } } class BasicChartSpec extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'series'; protected $axisType = \ForminatorGoogleAddon\Google\Service\Sheets\BasicChartAxis::class; protected $axisDataType = 'array'; /** * @var string */ public $chartType; /** * @var string */ public $compareMode; protected $domainsType = \ForminatorGoogleAddon\Google\Service\Sheets\BasicChartDomain::class; protected $domainsDataType = 'array'; /** * @var int */ public $headerCount; /** * @var bool */ public $interpolateNulls; /** * @var string */ public $legendPosition; /** * @var bool */ public $lineSmoothing; protected $seriesType = \ForminatorGoogleAddon\Google\Service\Sheets\BasicChartSeries::class; protected $seriesDataType = 'array'; /** * @var string */ public $stackedType; /** * @var bool */ public $threeDimensional; protected $totalDataLabelType = \ForminatorGoogleAddon\Google\Service\Sheets\DataLabel::class; protected $totalDataLabelDataType = ''; /** * @param BasicChartAxis[] */ public function setAxis($axis) { } /** * @return BasicChartAxis[] */ public function getAxis() { } /** * @param string */ public function setChartType($chartType) { } /** * @return string */ public function getChartType() { } /** * @param string */ public function setCompareMode($compareMode) { } /** * @return string */ public function getCompareMode() { } /** * @param BasicChartDomain[] */ public function setDomains($domains) { } /** * @return BasicChartDomain[] */ public function getDomains() { } /** * @param int */ public function setHeaderCount($headerCount) { } /** * @return int */ public function getHeaderCount() { } /** * @param bool */ public function setInterpolateNulls($interpolateNulls) { } /** * @return bool */ public function getInterpolateNulls() { } /** * @param string */ public function setLegendPosition($legendPosition) { } /** * @return string */ public function getLegendPosition() { } /** * @param bool */ public function setLineSmoothing($lineSmoothing) { } /** * @return bool */ public function getLineSmoothing() { } /** * @param BasicChartSeries[] */ public function setSeries($series) { } /** * @return BasicChartSeries[] */ public function getSeries() { } /** * @param string */ public function setStackedType($stackedType) { } /** * @return string */ public function getStackedType() { } /** * @param bool */ public function setThreeDimensional($threeDimensional) { } /** * @return bool */ public function getThreeDimensional() { } /** * @param DataLabel */ public function setTotalDataLabel(\ForminatorGoogleAddon\Google\Service\Sheets\DataLabel $totalDataLabel) { } /** * @return DataLabel */ public function getTotalDataLabel() { } } class BasicFilter extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'sortSpecs'; protected $criteriaType = \ForminatorGoogleAddon\Google\Service\Sheets\FilterCriteria::class; protected $criteriaDataType = 'map'; protected $filterSpecsType = \ForminatorGoogleAddon\Google\Service\Sheets\FilterSpec::class; protected $filterSpecsDataType = 'array'; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; protected $sortSpecsType = \ForminatorGoogleAddon\Google\Service\Sheets\SortSpec::class; protected $sortSpecsDataType = 'array'; /** * @param FilterCriteria[] */ public function setCriteria($criteria) { } /** * @return FilterCriteria[] */ public function getCriteria() { } /** * @param FilterSpec[] */ public function setFilterSpecs($filterSpecs) { } /** * @return FilterSpec[] */ public function getFilterSpecs() { } /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } /** * @param SortSpec[] */ public function setSortSpecs($sortSpecs) { } /** * @return SortSpec[] */ public function getSortSpecs() { } } class BasicSeriesDataPointStyleOverride extends \ForminatorGoogleAddon\Google\Model { protected $colorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $colorDataType = ''; protected $colorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $colorStyleDataType = ''; /** * @var int */ public $index; protected $pointStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\PointStyle::class; protected $pointStyleDataType = ''; /** * @param Color */ public function setColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $color) { } /** * @return Color */ public function getColor() { } /** * @param ColorStyle */ public function setColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $colorStyle) { } /** * @return ColorStyle */ public function getColorStyle() { } /** * @param int */ public function setIndex($index) { } /** * @return int */ public function getIndex() { } /** * @param PointStyle */ public function setPointStyle(\ForminatorGoogleAddon\Google\Service\Sheets\PointStyle $pointStyle) { } /** * @return PointStyle */ public function getPointStyle() { } } class BatchClearValuesByDataFilterRequest extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'dataFilters'; protected $dataFiltersType = \ForminatorGoogleAddon\Google\Service\Sheets\DataFilter::class; protected $dataFiltersDataType = 'array'; /** * @param DataFilter[] */ public function setDataFilters($dataFilters) { } /** * @return DataFilter[] */ public function getDataFilters() { } } class BatchClearValuesByDataFilterResponse extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'clearedRanges'; /** * @var string[] */ public $clearedRanges; /** * @var string */ public $spreadsheetId; /** * @param string[] */ public function setClearedRanges($clearedRanges) { } /** * @return string[] */ public function getClearedRanges() { } /** * @param string */ public function setSpreadsheetId($spreadsheetId) { } /** * @return string */ public function getSpreadsheetId() { } } class BatchClearValuesRequest extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'ranges'; /** * @var string[] */ public $ranges; /** * @param string[] */ public function setRanges($ranges) { } /** * @return string[] */ public function getRanges() { } } class BatchClearValuesResponse extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'clearedRanges'; /** * @var string[] */ public $clearedRanges; /** * @var string */ public $spreadsheetId; /** * @param string[] */ public function setClearedRanges($clearedRanges) { } /** * @return string[] */ public function getClearedRanges() { } /** * @param string */ public function setSpreadsheetId($spreadsheetId) { } /** * @return string */ public function getSpreadsheetId() { } } class BatchGetValuesByDataFilterRequest extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'dataFilters'; protected $dataFiltersType = \ForminatorGoogleAddon\Google\Service\Sheets\DataFilter::class; protected $dataFiltersDataType = 'array'; /** * @var string */ public $dateTimeRenderOption; /** * @var string */ public $majorDimension; /** * @var string */ public $valueRenderOption; /** * @param DataFilter[] */ public function setDataFilters($dataFilters) { } /** * @return DataFilter[] */ public function getDataFilters() { } /** * @param string */ public function setDateTimeRenderOption($dateTimeRenderOption) { } /** * @return string */ public function getDateTimeRenderOption() { } /** * @param string */ public function setMajorDimension($majorDimension) { } /** * @return string */ public function getMajorDimension() { } /** * @param string */ public function setValueRenderOption($valueRenderOption) { } /** * @return string */ public function getValueRenderOption() { } } class BatchGetValuesByDataFilterResponse extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'valueRanges'; /** * @var string */ public $spreadsheetId; protected $valueRangesType = \ForminatorGoogleAddon\Google\Service\Sheets\MatchedValueRange::class; protected $valueRangesDataType = 'array'; /** * @param string */ public function setSpreadsheetId($spreadsheetId) { } /** * @return string */ public function getSpreadsheetId() { } /** * @param MatchedValueRange[] */ public function setValueRanges($valueRanges) { } /** * @return MatchedValueRange[] */ public function getValueRanges() { } } class BatchGetValuesResponse extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'valueRanges'; /** * @var string */ public $spreadsheetId; protected $valueRangesType = \ForminatorGoogleAddon\Google\Service\Sheets\ValueRange::class; protected $valueRangesDataType = 'array'; /** * @param string */ public function setSpreadsheetId($spreadsheetId) { } /** * @return string */ public function getSpreadsheetId() { } /** * @param ValueRange[] */ public function setValueRanges($valueRanges) { } /** * @return ValueRange[] */ public function getValueRanges() { } } class BatchUpdateSpreadsheetRequest extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'responseRanges'; /** * @var bool */ public $includeSpreadsheetInResponse; protected $requestsType = \ForminatorGoogleAddon\Google\Service\Sheets\Request::class; protected $requestsDataType = 'array'; /** * @var bool */ public $responseIncludeGridData; /** * @var string[] */ public $responseRanges; /** * @param bool */ public function setIncludeSpreadsheetInResponse($includeSpreadsheetInResponse) { } /** * @return bool */ public function getIncludeSpreadsheetInResponse() { } /** * @param Request[] */ public function setRequests($requests) { } /** * @return Request[] */ public function getRequests() { } /** * @param bool */ public function setResponseIncludeGridData($responseIncludeGridData) { } /** * @return bool */ public function getResponseIncludeGridData() { } /** * @param string[] */ public function setResponseRanges($responseRanges) { } /** * @return string[] */ public function getResponseRanges() { } } class BatchUpdateSpreadsheetResponse extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'replies'; protected $repliesType = \ForminatorGoogleAddon\Google\Service\Sheets\Response::class; protected $repliesDataType = 'array'; /** * @var string */ public $spreadsheetId; protected $updatedSpreadsheetType = \ForminatorGoogleAddon\Google\Service\Sheets\Spreadsheet::class; protected $updatedSpreadsheetDataType = ''; /** * @param Response[] */ public function setReplies($replies) { } /** * @return Response[] */ public function getReplies() { } /** * @param string */ public function setSpreadsheetId($spreadsheetId) { } /** * @return string */ public function getSpreadsheetId() { } /** * @param Spreadsheet */ public function setUpdatedSpreadsheet(\ForminatorGoogleAddon\Google\Service\Sheets\Spreadsheet $updatedSpreadsheet) { } /** * @return Spreadsheet */ public function getUpdatedSpreadsheet() { } } class BatchUpdateValuesByDataFilterRequest extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'data'; protected $dataType = \ForminatorGoogleAddon\Google\Service\Sheets\DataFilterValueRange::class; protected $dataDataType = 'array'; /** * @var bool */ public $includeValuesInResponse; /** * @var string */ public $responseDateTimeRenderOption; /** * @var string */ public $responseValueRenderOption; /** * @var string */ public $valueInputOption; /** * @param DataFilterValueRange[] */ public function setData($data) { } /** * @return DataFilterValueRange[] */ public function getData() { } /** * @param bool */ public function setIncludeValuesInResponse($includeValuesInResponse) { } /** * @return bool */ public function getIncludeValuesInResponse() { } /** * @param string */ public function setResponseDateTimeRenderOption($responseDateTimeRenderOption) { } /** * @return string */ public function getResponseDateTimeRenderOption() { } /** * @param string */ public function setResponseValueRenderOption($responseValueRenderOption) { } /** * @return string */ public function getResponseValueRenderOption() { } /** * @param string */ public function setValueInputOption($valueInputOption) { } /** * @return string */ public function getValueInputOption() { } } class BatchUpdateValuesByDataFilterResponse extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'responses'; protected $responsesType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateValuesByDataFilterResponse::class; protected $responsesDataType = 'array'; /** * @var string */ public $spreadsheetId; /** * @var int */ public $totalUpdatedCells; /** * @var int */ public $totalUpdatedColumns; /** * @var int */ public $totalUpdatedRows; /** * @var int */ public $totalUpdatedSheets; /** * @param UpdateValuesByDataFilterResponse[] */ public function setResponses($responses) { } /** * @return UpdateValuesByDataFilterResponse[] */ public function getResponses() { } /** * @param string */ public function setSpreadsheetId($spreadsheetId) { } /** * @return string */ public function getSpreadsheetId() { } /** * @param int */ public function setTotalUpdatedCells($totalUpdatedCells) { } /** * @return int */ public function getTotalUpdatedCells() { } /** * @param int */ public function setTotalUpdatedColumns($totalUpdatedColumns) { } /** * @return int */ public function getTotalUpdatedColumns() { } /** * @param int */ public function setTotalUpdatedRows($totalUpdatedRows) { } /** * @return int */ public function getTotalUpdatedRows() { } /** * @param int */ public function setTotalUpdatedSheets($totalUpdatedSheets) { } /** * @return int */ public function getTotalUpdatedSheets() { } } class BatchUpdateValuesRequest extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'data'; protected $dataType = \ForminatorGoogleAddon\Google\Service\Sheets\ValueRange::class; protected $dataDataType = 'array'; /** * @var bool */ public $includeValuesInResponse; /** * @var string */ public $responseDateTimeRenderOption; /** * @var string */ public $responseValueRenderOption; /** * @var string */ public $valueInputOption; /** * @param ValueRange[] */ public function setData($data) { } /** * @return ValueRange[] */ public function getData() { } /** * @param bool */ public function setIncludeValuesInResponse($includeValuesInResponse) { } /** * @return bool */ public function getIncludeValuesInResponse() { } /** * @param string */ public function setResponseDateTimeRenderOption($responseDateTimeRenderOption) { } /** * @return string */ public function getResponseDateTimeRenderOption() { } /** * @param string */ public function setResponseValueRenderOption($responseValueRenderOption) { } /** * @return string */ public function getResponseValueRenderOption() { } /** * @param string */ public function setValueInputOption($valueInputOption) { } /** * @return string */ public function getValueInputOption() { } } class BatchUpdateValuesResponse extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'responses'; protected $responsesType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateValuesResponse::class; protected $responsesDataType = 'array'; /** * @var string */ public $spreadsheetId; /** * @var int */ public $totalUpdatedCells; /** * @var int */ public $totalUpdatedColumns; /** * @var int */ public $totalUpdatedRows; /** * @var int */ public $totalUpdatedSheets; /** * @param UpdateValuesResponse[] */ public function setResponses($responses) { } /** * @return UpdateValuesResponse[] */ public function getResponses() { } /** * @param string */ public function setSpreadsheetId($spreadsheetId) { } /** * @return string */ public function getSpreadsheetId() { } /** * @param int */ public function setTotalUpdatedCells($totalUpdatedCells) { } /** * @return int */ public function getTotalUpdatedCells() { } /** * @param int */ public function setTotalUpdatedColumns($totalUpdatedColumns) { } /** * @return int */ public function getTotalUpdatedColumns() { } /** * @param int */ public function setTotalUpdatedRows($totalUpdatedRows) { } /** * @return int */ public function getTotalUpdatedRows() { } /** * @param int */ public function setTotalUpdatedSheets($totalUpdatedSheets) { } /** * @return int */ public function getTotalUpdatedSheets() { } } class BigQueryDataSourceSpec extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $projectId; protected $querySpecType = \ForminatorGoogleAddon\Google\Service\Sheets\BigQueryQuerySpec::class; protected $querySpecDataType = ''; protected $tableSpecType = \ForminatorGoogleAddon\Google\Service\Sheets\BigQueryTableSpec::class; protected $tableSpecDataType = ''; /** * @param string */ public function setProjectId($projectId) { } /** * @return string */ public function getProjectId() { } /** * @param BigQueryQuerySpec */ public function setQuerySpec(\ForminatorGoogleAddon\Google\Service\Sheets\BigQueryQuerySpec $querySpec) { } /** * @return BigQueryQuerySpec */ public function getQuerySpec() { } /** * @param BigQueryTableSpec */ public function setTableSpec(\ForminatorGoogleAddon\Google\Service\Sheets\BigQueryTableSpec $tableSpec) { } /** * @return BigQueryTableSpec */ public function getTableSpec() { } } class BigQueryQuerySpec extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $rawQuery; /** * @param string */ public function setRawQuery($rawQuery) { } /** * @return string */ public function getRawQuery() { } } class BigQueryTableSpec extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $datasetId; /** * @var string */ public $tableId; /** * @var string */ public $tableProjectId; /** * @param string */ public function setDatasetId($datasetId) { } /** * @return string */ public function getDatasetId() { } /** * @param string */ public function setTableId($tableId) { } /** * @return string */ public function getTableId() { } /** * @param string */ public function setTableProjectId($tableProjectId) { } /** * @return string */ public function getTableProjectId() { } } class BooleanCondition extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'values'; /** * @var string */ public $type; protected $valuesType = \ForminatorGoogleAddon\Google\Service\Sheets\ConditionValue::class; protected $valuesDataType = 'array'; /** * @param string */ public function setType($type) { } /** * @return string */ public function getType() { } /** * @param ConditionValue[] */ public function setValues($values) { } /** * @return ConditionValue[] */ public function getValues() { } } class BooleanRule extends \ForminatorGoogleAddon\Google\Model { protected $conditionType = \ForminatorGoogleAddon\Google\Service\Sheets\BooleanCondition::class; protected $conditionDataType = ''; protected $formatType = \ForminatorGoogleAddon\Google\Service\Sheets\CellFormat::class; protected $formatDataType = ''; /** * @param BooleanCondition */ public function setCondition(\ForminatorGoogleAddon\Google\Service\Sheets\BooleanCondition $condition) { } /** * @return BooleanCondition */ public function getCondition() { } /** * @param CellFormat */ public function setFormat(\ForminatorGoogleAddon\Google\Service\Sheets\CellFormat $format) { } /** * @return CellFormat */ public function getFormat() { } } class Border extends \ForminatorGoogleAddon\Google\Model { protected $colorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $colorDataType = ''; protected $colorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $colorStyleDataType = ''; /** * @var string */ public $style; /** * @var int */ public $width; /** * @param Color */ public function setColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $color) { } /** * @return Color */ public function getColor() { } /** * @param ColorStyle */ public function setColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $colorStyle) { } /** * @return ColorStyle */ public function getColorStyle() { } /** * @param string */ public function setStyle($style) { } /** * @return string */ public function getStyle() { } /** * @param int */ public function setWidth($width) { } /** * @return int */ public function getWidth() { } } class Borders extends \ForminatorGoogleAddon\Google\Model { protected $bottomType = \ForminatorGoogleAddon\Google\Service\Sheets\Border::class; protected $bottomDataType = ''; protected $leftType = \ForminatorGoogleAddon\Google\Service\Sheets\Border::class; protected $leftDataType = ''; protected $rightType = \ForminatorGoogleAddon\Google\Service\Sheets\Border::class; protected $rightDataType = ''; protected $topType = \ForminatorGoogleAddon\Google\Service\Sheets\Border::class; protected $topDataType = ''; /** * @param Border */ public function setBottom(\ForminatorGoogleAddon\Google\Service\Sheets\Border $bottom) { } /** * @return Border */ public function getBottom() { } /** * @param Border */ public function setLeft(\ForminatorGoogleAddon\Google\Service\Sheets\Border $left) { } /** * @return Border */ public function getLeft() { } /** * @param Border */ public function setRight(\ForminatorGoogleAddon\Google\Service\Sheets\Border $right) { } /** * @return Border */ public function getRight() { } /** * @param Border */ public function setTop(\ForminatorGoogleAddon\Google\Service\Sheets\Border $top) { } /** * @return Border */ public function getTop() { } } class BubbleChartSpec extends \ForminatorGoogleAddon\Google\Model { protected $bubbleBorderColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $bubbleBorderColorDataType = ''; protected $bubbleBorderColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $bubbleBorderColorStyleDataType = ''; protected $bubbleLabelsType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $bubbleLabelsDataType = ''; /** * @var int */ public $bubbleMaxRadiusSize; /** * @var int */ public $bubbleMinRadiusSize; /** * @var float */ public $bubbleOpacity; protected $bubbleSizesType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $bubbleSizesDataType = ''; protected $bubbleTextStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\TextFormat::class; protected $bubbleTextStyleDataType = ''; protected $domainType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $domainDataType = ''; protected $groupIdsType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $groupIdsDataType = ''; /** * @var string */ public $legendPosition; protected $seriesType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $seriesDataType = ''; /** * @param Color */ public function setBubbleBorderColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $bubbleBorderColor) { } /** * @return Color */ public function getBubbleBorderColor() { } /** * @param ColorStyle */ public function setBubbleBorderColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $bubbleBorderColorStyle) { } /** * @return ColorStyle */ public function getBubbleBorderColorStyle() { } /** * @param ChartData */ public function setBubbleLabels(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $bubbleLabels) { } /** * @return ChartData */ public function getBubbleLabels() { } /** * @param int */ public function setBubbleMaxRadiusSize($bubbleMaxRadiusSize) { } /** * @return int */ public function getBubbleMaxRadiusSize() { } /** * @param int */ public function setBubbleMinRadiusSize($bubbleMinRadiusSize) { } /** * @return int */ public function getBubbleMinRadiusSize() { } /** * @param float */ public function setBubbleOpacity($bubbleOpacity) { } /** * @return float */ public function getBubbleOpacity() { } /** * @param ChartData */ public function setBubbleSizes(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $bubbleSizes) { } /** * @return ChartData */ public function getBubbleSizes() { } /** * @param TextFormat */ public function setBubbleTextStyle(\ForminatorGoogleAddon\Google\Service\Sheets\TextFormat $bubbleTextStyle) { } /** * @return TextFormat */ public function getBubbleTextStyle() { } /** * @param ChartData */ public function setDomain(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $domain) { } /** * @return ChartData */ public function getDomain() { } /** * @param ChartData */ public function setGroupIds(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $groupIds) { } /** * @return ChartData */ public function getGroupIds() { } /** * @param string */ public function setLegendPosition($legendPosition) { } /** * @return string */ public function getLegendPosition() { } /** * @param ChartData */ public function setSeries(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $series) { } /** * @return ChartData */ public function getSeries() { } } class CancelDataSourceRefreshRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $dataSourceId; /** * @var bool */ public $isAll; protected $referencesType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceObjectReferences::class; protected $referencesDataType = ''; /** * @param string */ public function setDataSourceId($dataSourceId) { } /** * @return string */ public function getDataSourceId() { } /** * @param bool */ public function setIsAll($isAll) { } /** * @return bool */ public function getIsAll() { } /** * @param DataSourceObjectReferences */ public function setReferences(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceObjectReferences $references) { } /** * @return DataSourceObjectReferences */ public function getReferences() { } } class CancelDataSourceRefreshResponse extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'statuses'; protected $statusesType = \ForminatorGoogleAddon\Google\Service\Sheets\CancelDataSourceRefreshStatus::class; protected $statusesDataType = 'array'; /** * @param CancelDataSourceRefreshStatus[] */ public function setStatuses($statuses) { } /** * @return CancelDataSourceRefreshStatus[] */ public function getStatuses() { } } class CancelDataSourceRefreshStatus extends \ForminatorGoogleAddon\Google\Model { protected $referenceType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceObjectReference::class; protected $referenceDataType = ''; protected $refreshCancellationStatusType = \ForminatorGoogleAddon\Google\Service\Sheets\RefreshCancellationStatus::class; protected $refreshCancellationStatusDataType = ''; /** * @param DataSourceObjectReference */ public function setReference(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceObjectReference $reference) { } /** * @return DataSourceObjectReference */ public function getReference() { } /** * @param RefreshCancellationStatus */ public function setRefreshCancellationStatus(\ForminatorGoogleAddon\Google\Service\Sheets\RefreshCancellationStatus $refreshCancellationStatus) { } /** * @return RefreshCancellationStatus */ public function getRefreshCancellationStatus() { } } class CandlestickChartSpec extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'data'; protected $dataType = \ForminatorGoogleAddon\Google\Service\Sheets\CandlestickData::class; protected $dataDataType = 'array'; protected $domainType = \ForminatorGoogleAddon\Google\Service\Sheets\CandlestickDomain::class; protected $domainDataType = ''; /** * @param CandlestickData[] */ public function setData($data) { } /** * @return CandlestickData[] */ public function getData() { } /** * @param CandlestickDomain */ public function setDomain(\ForminatorGoogleAddon\Google\Service\Sheets\CandlestickDomain $domain) { } /** * @return CandlestickDomain */ public function getDomain() { } } class CandlestickData extends \ForminatorGoogleAddon\Google\Model { protected $closeSeriesType = \ForminatorGoogleAddon\Google\Service\Sheets\CandlestickSeries::class; protected $closeSeriesDataType = ''; protected $highSeriesType = \ForminatorGoogleAddon\Google\Service\Sheets\CandlestickSeries::class; protected $highSeriesDataType = ''; protected $lowSeriesType = \ForminatorGoogleAddon\Google\Service\Sheets\CandlestickSeries::class; protected $lowSeriesDataType = ''; protected $openSeriesType = \ForminatorGoogleAddon\Google\Service\Sheets\CandlestickSeries::class; protected $openSeriesDataType = ''; /** * @param CandlestickSeries */ public function setCloseSeries(\ForminatorGoogleAddon\Google\Service\Sheets\CandlestickSeries $closeSeries) { } /** * @return CandlestickSeries */ public function getCloseSeries() { } /** * @param CandlestickSeries */ public function setHighSeries(\ForminatorGoogleAddon\Google\Service\Sheets\CandlestickSeries $highSeries) { } /** * @return CandlestickSeries */ public function getHighSeries() { } /** * @param CandlestickSeries */ public function setLowSeries(\ForminatorGoogleAddon\Google\Service\Sheets\CandlestickSeries $lowSeries) { } /** * @return CandlestickSeries */ public function getLowSeries() { } /** * @param CandlestickSeries */ public function setOpenSeries(\ForminatorGoogleAddon\Google\Service\Sheets\CandlestickSeries $openSeries) { } /** * @return CandlestickSeries */ public function getOpenSeries() { } } class CandlestickDomain extends \ForminatorGoogleAddon\Google\Model { protected $dataType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $dataDataType = ''; /** * @var bool */ public $reversed; /** * @param ChartData */ public function setData(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $data) { } /** * @return ChartData */ public function getData() { } /** * @param bool */ public function setReversed($reversed) { } /** * @return bool */ public function getReversed() { } } class CandlestickSeries extends \ForminatorGoogleAddon\Google\Model { protected $dataType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $dataDataType = ''; /** * @param ChartData */ public function setData(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $data) { } /** * @return ChartData */ public function getData() { } } class CellData extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'textFormatRuns'; protected $dataSourceFormulaType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceFormula::class; protected $dataSourceFormulaDataType = ''; protected $dataSourceTableType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceTable::class; protected $dataSourceTableDataType = ''; protected $dataValidationType = \ForminatorGoogleAddon\Google\Service\Sheets\DataValidationRule::class; protected $dataValidationDataType = ''; protected $effectiveFormatType = \ForminatorGoogleAddon\Google\Service\Sheets\CellFormat::class; protected $effectiveFormatDataType = ''; protected $effectiveValueType = \ForminatorGoogleAddon\Google\Service\Sheets\ExtendedValue::class; protected $effectiveValueDataType = ''; /** * @var string */ public $formattedValue; /** * @var string */ public $hyperlink; /** * @var string */ public $note; protected $pivotTableType = \ForminatorGoogleAddon\Google\Service\Sheets\PivotTable::class; protected $pivotTableDataType = ''; protected $textFormatRunsType = \ForminatorGoogleAddon\Google\Service\Sheets\TextFormatRun::class; protected $textFormatRunsDataType = 'array'; protected $userEnteredFormatType = \ForminatorGoogleAddon\Google\Service\Sheets\CellFormat::class; protected $userEnteredFormatDataType = ''; protected $userEnteredValueType = \ForminatorGoogleAddon\Google\Service\Sheets\ExtendedValue::class; protected $userEnteredValueDataType = ''; /** * @param DataSourceFormula */ public function setDataSourceFormula(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceFormula $dataSourceFormula) { } /** * @return DataSourceFormula */ public function getDataSourceFormula() { } /** * @param DataSourceTable */ public function setDataSourceTable(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceTable $dataSourceTable) { } /** * @return DataSourceTable */ public function getDataSourceTable() { } /** * @param DataValidationRule */ public function setDataValidation(\ForminatorGoogleAddon\Google\Service\Sheets\DataValidationRule $dataValidation) { } /** * @return DataValidationRule */ public function getDataValidation() { } /** * @param CellFormat */ public function setEffectiveFormat(\ForminatorGoogleAddon\Google\Service\Sheets\CellFormat $effectiveFormat) { } /** * @return CellFormat */ public function getEffectiveFormat() { } /** * @param ExtendedValue */ public function setEffectiveValue(\ForminatorGoogleAddon\Google\Service\Sheets\ExtendedValue $effectiveValue) { } /** * @return ExtendedValue */ public function getEffectiveValue() { } /** * @param string */ public function setFormattedValue($formattedValue) { } /** * @return string */ public function getFormattedValue() { } /** * @param string */ public function setHyperlink($hyperlink) { } /** * @return string */ public function getHyperlink() { } /** * @param string */ public function setNote($note) { } /** * @return string */ public function getNote() { } /** * @param PivotTable */ public function setPivotTable(\ForminatorGoogleAddon\Google\Service\Sheets\PivotTable $pivotTable) { } /** * @return PivotTable */ public function getPivotTable() { } /** * @param TextFormatRun[] */ public function setTextFormatRuns($textFormatRuns) { } /** * @return TextFormatRun[] */ public function getTextFormatRuns() { } /** * @param CellFormat */ public function setUserEnteredFormat(\ForminatorGoogleAddon\Google\Service\Sheets\CellFormat $userEnteredFormat) { } /** * @return CellFormat */ public function getUserEnteredFormat() { } /** * @param ExtendedValue */ public function setUserEnteredValue(\ForminatorGoogleAddon\Google\Service\Sheets\ExtendedValue $userEnteredValue) { } /** * @return ExtendedValue */ public function getUserEnteredValue() { } } class CellFormat extends \ForminatorGoogleAddon\Google\Model { protected $backgroundColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $backgroundColorDataType = ''; protected $backgroundColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $backgroundColorStyleDataType = ''; protected $bordersType = \ForminatorGoogleAddon\Google\Service\Sheets\Borders::class; protected $bordersDataType = ''; /** * @var string */ public $horizontalAlignment; /** * @var string */ public $hyperlinkDisplayType; protected $numberFormatType = \ForminatorGoogleAddon\Google\Service\Sheets\NumberFormat::class; protected $numberFormatDataType = ''; protected $paddingType = \ForminatorGoogleAddon\Google\Service\Sheets\Padding::class; protected $paddingDataType = ''; /** * @var string */ public $textDirection; protected $textFormatType = \ForminatorGoogleAddon\Google\Service\Sheets\TextFormat::class; protected $textFormatDataType = ''; protected $textRotationType = \ForminatorGoogleAddon\Google\Service\Sheets\TextRotation::class; protected $textRotationDataType = ''; /** * @var string */ public $verticalAlignment; /** * @var string */ public $wrapStrategy; /** * @param Color */ public function setBackgroundColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $backgroundColor) { } /** * @return Color */ public function getBackgroundColor() { } /** * @param ColorStyle */ public function setBackgroundColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $backgroundColorStyle) { } /** * @return ColorStyle */ public function getBackgroundColorStyle() { } /** * @param Borders */ public function setBorders(\ForminatorGoogleAddon\Google\Service\Sheets\Borders $borders) { } /** * @return Borders */ public function getBorders() { } /** * @param string */ public function setHorizontalAlignment($horizontalAlignment) { } /** * @return string */ public function getHorizontalAlignment() { } /** * @param string */ public function setHyperlinkDisplayType($hyperlinkDisplayType) { } /** * @return string */ public function getHyperlinkDisplayType() { } /** * @param NumberFormat */ public function setNumberFormat(\ForminatorGoogleAddon\Google\Service\Sheets\NumberFormat $numberFormat) { } /** * @return NumberFormat */ public function getNumberFormat() { } /** * @param Padding */ public function setPadding(\ForminatorGoogleAddon\Google\Service\Sheets\Padding $padding) { } /** * @return Padding */ public function getPadding() { } /** * @param string */ public function setTextDirection($textDirection) { } /** * @return string */ public function getTextDirection() { } /** * @param TextFormat */ public function setTextFormat(\ForminatorGoogleAddon\Google\Service\Sheets\TextFormat $textFormat) { } /** * @return TextFormat */ public function getTextFormat() { } /** * @param TextRotation */ public function setTextRotation(\ForminatorGoogleAddon\Google\Service\Sheets\TextRotation $textRotation) { } /** * @return TextRotation */ public function getTextRotation() { } /** * @param string */ public function setVerticalAlignment($verticalAlignment) { } /** * @return string */ public function getVerticalAlignment() { } /** * @param string */ public function setWrapStrategy($wrapStrategy) { } /** * @return string */ public function getWrapStrategy() { } } class ChartAxisViewWindowOptions extends \ForminatorGoogleAddon\Google\Model { public $viewWindowMax; public $viewWindowMin; /** * @var string */ public $viewWindowMode; public function setViewWindowMax($viewWindowMax) { } public function getViewWindowMax() { } public function setViewWindowMin($viewWindowMin) { } public function getViewWindowMin() { } /** * @param string */ public function setViewWindowMode($viewWindowMode) { } /** * @return string */ public function getViewWindowMode() { } } class ChartCustomNumberFormatOptions extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $prefix; /** * @var string */ public $suffix; /** * @param string */ public function setPrefix($prefix) { } /** * @return string */ public function getPrefix() { } /** * @param string */ public function setSuffix($suffix) { } /** * @return string */ public function getSuffix() { } } class ChartData extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $aggregateType; protected $columnReferenceType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference::class; protected $columnReferenceDataType = ''; protected $groupRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartGroupRule::class; protected $groupRuleDataType = ''; protected $sourceRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartSourceRange::class; protected $sourceRangeDataType = ''; /** * @param string */ public function setAggregateType($aggregateType) { } /** * @return string */ public function getAggregateType() { } /** * @param DataSourceColumnReference */ public function setColumnReference(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference $columnReference) { } /** * @return DataSourceColumnReference */ public function getColumnReference() { } /** * @param ChartGroupRule */ public function setGroupRule(\ForminatorGoogleAddon\Google\Service\Sheets\ChartGroupRule $groupRule) { } /** * @return ChartGroupRule */ public function getGroupRule() { } /** * @param ChartSourceRange */ public function setSourceRange(\ForminatorGoogleAddon\Google\Service\Sheets\ChartSourceRange $sourceRange) { } /** * @return ChartSourceRange */ public function getSourceRange() { } } class ChartDateTimeRule extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $type; /** * @param string */ public function setType($type) { } /** * @return string */ public function getType() { } } class ChartGroupRule extends \ForminatorGoogleAddon\Google\Model { protected $dateTimeRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartDateTimeRule::class; protected $dateTimeRuleDataType = ''; protected $histogramRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartHistogramRule::class; protected $histogramRuleDataType = ''; /** * @param ChartDateTimeRule */ public function setDateTimeRule(\ForminatorGoogleAddon\Google\Service\Sheets\ChartDateTimeRule $dateTimeRule) { } /** * @return ChartDateTimeRule */ public function getDateTimeRule() { } /** * @param ChartHistogramRule */ public function setHistogramRule(\ForminatorGoogleAddon\Google\Service\Sheets\ChartHistogramRule $histogramRule) { } /** * @return ChartHistogramRule */ public function getHistogramRule() { } } class ChartHistogramRule extends \ForminatorGoogleAddon\Google\Model { public $intervalSize; public $maxValue; public $minValue; public function setIntervalSize($intervalSize) { } public function getIntervalSize() { } public function setMaxValue($maxValue) { } public function getMaxValue() { } public function setMinValue($minValue) { } public function getMinValue() { } } class ChartSourceRange extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'sources'; protected $sourcesType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $sourcesDataType = 'array'; /** * @param GridRange[] */ public function setSources($sources) { } /** * @return GridRange[] */ public function getSources() { } } class ChartSpec extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'sortSpecs'; /** * @var string */ public $altText; protected $backgroundColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $backgroundColorDataType = ''; protected $backgroundColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $backgroundColorStyleDataType = ''; protected $basicChartType = \ForminatorGoogleAddon\Google\Service\Sheets\BasicChartSpec::class; protected $basicChartDataType = ''; protected $bubbleChartType = \ForminatorGoogleAddon\Google\Service\Sheets\BubbleChartSpec::class; protected $bubbleChartDataType = ''; protected $candlestickChartType = \ForminatorGoogleAddon\Google\Service\Sheets\CandlestickChartSpec::class; protected $candlestickChartDataType = ''; protected $dataSourceChartPropertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceChartProperties::class; protected $dataSourceChartPropertiesDataType = ''; protected $filterSpecsType = \ForminatorGoogleAddon\Google\Service\Sheets\FilterSpec::class; protected $filterSpecsDataType = 'array'; /** * @var string */ public $fontName; /** * @var string */ public $hiddenDimensionStrategy; protected $histogramChartType = \ForminatorGoogleAddon\Google\Service\Sheets\HistogramChartSpec::class; protected $histogramChartDataType = ''; /** * @var bool */ public $maximized; protected $orgChartType = \ForminatorGoogleAddon\Google\Service\Sheets\OrgChartSpec::class; protected $orgChartDataType = ''; protected $pieChartType = \ForminatorGoogleAddon\Google\Service\Sheets\PieChartSpec::class; protected $pieChartDataType = ''; protected $scorecardChartType = \ForminatorGoogleAddon\Google\Service\Sheets\ScorecardChartSpec::class; protected $scorecardChartDataType = ''; protected $sortSpecsType = \ForminatorGoogleAddon\Google\Service\Sheets\SortSpec::class; protected $sortSpecsDataType = 'array'; /** * @var string */ public $subtitle; protected $subtitleTextFormatType = \ForminatorGoogleAddon\Google\Service\Sheets\TextFormat::class; protected $subtitleTextFormatDataType = ''; protected $subtitleTextPositionType = \ForminatorGoogleAddon\Google\Service\Sheets\TextPosition::class; protected $subtitleTextPositionDataType = ''; /** * @var string */ public $title; protected $titleTextFormatType = \ForminatorGoogleAddon\Google\Service\Sheets\TextFormat::class; protected $titleTextFormatDataType = ''; protected $titleTextPositionType = \ForminatorGoogleAddon\Google\Service\Sheets\TextPosition::class; protected $titleTextPositionDataType = ''; protected $treemapChartType = \ForminatorGoogleAddon\Google\Service\Sheets\TreemapChartSpec::class; protected $treemapChartDataType = ''; protected $waterfallChartType = \ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartSpec::class; protected $waterfallChartDataType = ''; /** * @param string */ public function setAltText($altText) { } /** * @return string */ public function getAltText() { } /** * @param Color */ public function setBackgroundColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $backgroundColor) { } /** * @return Color */ public function getBackgroundColor() { } /** * @param ColorStyle */ public function setBackgroundColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $backgroundColorStyle) { } /** * @return ColorStyle */ public function getBackgroundColorStyle() { } /** * @param BasicChartSpec */ public function setBasicChart(\ForminatorGoogleAddon\Google\Service\Sheets\BasicChartSpec $basicChart) { } /** * @return BasicChartSpec */ public function getBasicChart() { } /** * @param BubbleChartSpec */ public function setBubbleChart(\ForminatorGoogleAddon\Google\Service\Sheets\BubbleChartSpec $bubbleChart) { } /** * @return BubbleChartSpec */ public function getBubbleChart() { } /** * @param CandlestickChartSpec */ public function setCandlestickChart(\ForminatorGoogleAddon\Google\Service\Sheets\CandlestickChartSpec $candlestickChart) { } /** * @return CandlestickChartSpec */ public function getCandlestickChart() { } /** * @param DataSourceChartProperties */ public function setDataSourceChartProperties(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceChartProperties $dataSourceChartProperties) { } /** * @return DataSourceChartProperties */ public function getDataSourceChartProperties() { } /** * @param FilterSpec[] */ public function setFilterSpecs($filterSpecs) { } /** * @return FilterSpec[] */ public function getFilterSpecs() { } /** * @param string */ public function setFontName($fontName) { } /** * @return string */ public function getFontName() { } /** * @param string */ public function setHiddenDimensionStrategy($hiddenDimensionStrategy) { } /** * @return string */ public function getHiddenDimensionStrategy() { } /** * @param HistogramChartSpec */ public function setHistogramChart(\ForminatorGoogleAddon\Google\Service\Sheets\HistogramChartSpec $histogramChart) { } /** * @return HistogramChartSpec */ public function getHistogramChart() { } /** * @param bool */ public function setMaximized($maximized) { } /** * @return bool */ public function getMaximized() { } /** * @param OrgChartSpec */ public function setOrgChart(\ForminatorGoogleAddon\Google\Service\Sheets\OrgChartSpec $orgChart) { } /** * @return OrgChartSpec */ public function getOrgChart() { } /** * @param PieChartSpec */ public function setPieChart(\ForminatorGoogleAddon\Google\Service\Sheets\PieChartSpec $pieChart) { } /** * @return PieChartSpec */ public function getPieChart() { } /** * @param ScorecardChartSpec */ public function setScorecardChart(\ForminatorGoogleAddon\Google\Service\Sheets\ScorecardChartSpec $scorecardChart) { } /** * @return ScorecardChartSpec */ public function getScorecardChart() { } /** * @param SortSpec[] */ public function setSortSpecs($sortSpecs) { } /** * @return SortSpec[] */ public function getSortSpecs() { } /** * @param string */ public function setSubtitle($subtitle) { } /** * @return string */ public function getSubtitle() { } /** * @param TextFormat */ public function setSubtitleTextFormat(\ForminatorGoogleAddon\Google\Service\Sheets\TextFormat $subtitleTextFormat) { } /** * @return TextFormat */ public function getSubtitleTextFormat() { } /** * @param TextPosition */ public function setSubtitleTextPosition(\ForminatorGoogleAddon\Google\Service\Sheets\TextPosition $subtitleTextPosition) { } /** * @return TextPosition */ public function getSubtitleTextPosition() { } /** * @param string */ public function setTitle($title) { } /** * @return string */ public function getTitle() { } /** * @param TextFormat */ public function setTitleTextFormat(\ForminatorGoogleAddon\Google\Service\Sheets\TextFormat $titleTextFormat) { } /** * @return TextFormat */ public function getTitleTextFormat() { } /** * @param TextPosition */ public function setTitleTextPosition(\ForminatorGoogleAddon\Google\Service\Sheets\TextPosition $titleTextPosition) { } /** * @return TextPosition */ public function getTitleTextPosition() { } /** * @param TreemapChartSpec */ public function setTreemapChart(\ForminatorGoogleAddon\Google\Service\Sheets\TreemapChartSpec $treemapChart) { } /** * @return TreemapChartSpec */ public function getTreemapChart() { } /** * @param WaterfallChartSpec */ public function setWaterfallChart(\ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartSpec $waterfallChart) { } /** * @return WaterfallChartSpec */ public function getWaterfallChart() { } } class ClearBasicFilterRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $sheetId; /** * @param int */ public function setSheetId($sheetId) { } /** * @return int */ public function getSheetId() { } } class ClearValuesRequest extends \ForminatorGoogleAddon\Google\Model { } class ClearValuesResponse extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $clearedRange; /** * @var string */ public $spreadsheetId; /** * @param string */ public function setClearedRange($clearedRange) { } /** * @return string */ public function getClearedRange() { } /** * @param string */ public function setSpreadsheetId($spreadsheetId) { } /** * @return string */ public function getSpreadsheetId() { } } class Color extends \ForminatorGoogleAddon\Google\Model { /** * @var float */ public $alpha; /** * @var float */ public $blue; /** * @var float */ public $green; /** * @var float */ public $red; /** * @param float */ public function setAlpha($alpha) { } /** * @return float */ public function getAlpha() { } /** * @param float */ public function setBlue($blue) { } /** * @return float */ public function getBlue() { } /** * @param float */ public function setGreen($green) { } /** * @return float */ public function getGreen() { } /** * @param float */ public function setRed($red) { } /** * @return float */ public function getRed() { } } class ColorStyle extends \ForminatorGoogleAddon\Google\Model { protected $rgbColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $rgbColorDataType = ''; /** * @var string */ public $themeColor; /** * @param Color */ public function setRgbColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $rgbColor) { } /** * @return Color */ public function getRgbColor() { } /** * @param string */ public function setThemeColor($themeColor) { } /** * @return string */ public function getThemeColor() { } } class ConditionValue extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $relativeDate; /** * @var string */ public $userEnteredValue; /** * @param string */ public function setRelativeDate($relativeDate) { } /** * @return string */ public function getRelativeDate() { } /** * @param string */ public function setUserEnteredValue($userEnteredValue) { } /** * @return string */ public function getUserEnteredValue() { } } class ConditionalFormatRule extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'ranges'; protected $booleanRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\BooleanRule::class; protected $booleanRuleDataType = ''; protected $gradientRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\GradientRule::class; protected $gradientRuleDataType = ''; protected $rangesType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangesDataType = 'array'; /** * @param BooleanRule */ public function setBooleanRule(\ForminatorGoogleAddon\Google\Service\Sheets\BooleanRule $booleanRule) { } /** * @return BooleanRule */ public function getBooleanRule() { } /** * @param GradientRule */ public function setGradientRule(\ForminatorGoogleAddon\Google\Service\Sheets\GradientRule $gradientRule) { } /** * @return GradientRule */ public function getGradientRule() { } /** * @param GridRange[] */ public function setRanges($ranges) { } /** * @return GridRange[] */ public function getRanges() { } } class CopyPasteRequest extends \ForminatorGoogleAddon\Google\Model { protected $destinationType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $destinationDataType = ''; /** * @var string */ public $pasteOrientation; /** * @var string */ public $pasteType; protected $sourceType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $sourceDataType = ''; /** * @param GridRange */ public function setDestination(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $destination) { } /** * @return GridRange */ public function getDestination() { } /** * @param string */ public function setPasteOrientation($pasteOrientation) { } /** * @return string */ public function getPasteOrientation() { } /** * @param string */ public function setPasteType($pasteType) { } /** * @return string */ public function getPasteType() { } /** * @param GridRange */ public function setSource(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $source) { } /** * @return GridRange */ public function getSource() { } } class CopySheetToAnotherSpreadsheetRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $destinationSpreadsheetId; /** * @param string */ public function setDestinationSpreadsheetId($destinationSpreadsheetId) { } /** * @return string */ public function getDestinationSpreadsheetId() { } } class CreateDeveloperMetadataRequest extends \ForminatorGoogleAddon\Google\Model { protected $developerMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadata::class; protected $developerMetadataDataType = ''; /** * @param DeveloperMetadata */ public function setDeveloperMetadata(\ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadata $developerMetadata) { } /** * @return DeveloperMetadata */ public function getDeveloperMetadata() { } } class CreateDeveloperMetadataResponse extends \ForminatorGoogleAddon\Google\Model { protected $developerMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadata::class; protected $developerMetadataDataType = ''; /** * @param DeveloperMetadata */ public function setDeveloperMetadata(\ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadata $developerMetadata) { } /** * @return DeveloperMetadata */ public function getDeveloperMetadata() { } } class CutPasteRequest extends \ForminatorGoogleAddon\Google\Model { protected $destinationType = \ForminatorGoogleAddon\Google\Service\Sheets\GridCoordinate::class; protected $destinationDataType = ''; /** * @var string */ public $pasteType; protected $sourceType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $sourceDataType = ''; /** * @param GridCoordinate */ public function setDestination(\ForminatorGoogleAddon\Google\Service\Sheets\GridCoordinate $destination) { } /** * @return GridCoordinate */ public function getDestination() { } /** * @param string */ public function setPasteType($pasteType) { } /** * @return string */ public function getPasteType() { } /** * @param GridRange */ public function setSource(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $source) { } /** * @return GridRange */ public function getSource() { } } class DataExecutionStatus extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $errorCode; /** * @var string */ public $errorMessage; /** * @var string */ public $lastRefreshTime; /** * @var string */ public $state; /** * @param string */ public function setErrorCode($errorCode) { } /** * @return string */ public function getErrorCode() { } /** * @param string */ public function setErrorMessage($errorMessage) { } /** * @return string */ public function getErrorMessage() { } /** * @param string */ public function setLastRefreshTime($lastRefreshTime) { } /** * @return string */ public function getLastRefreshTime() { } /** * @param string */ public function setState($state) { } /** * @return string */ public function getState() { } } class DataFilter extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $a1Range; protected $developerMetadataLookupType = \ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadataLookup::class; protected $developerMetadataLookupDataType = ''; protected $gridRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $gridRangeDataType = ''; /** * @param string */ public function setA1Range($a1Range) { } /** * @return string */ public function getA1Range() { } /** * @param DeveloperMetadataLookup */ public function setDeveloperMetadataLookup(\ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadataLookup $developerMetadataLookup) { } /** * @return DeveloperMetadataLookup */ public function getDeveloperMetadataLookup() { } /** * @param GridRange */ public function setGridRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $gridRange) { } /** * @return GridRange */ public function getGridRange() { } } class DataFilterValueRange extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'values'; protected $dataFilterType = \ForminatorGoogleAddon\Google\Service\Sheets\DataFilter::class; protected $dataFilterDataType = ''; /** * @var string */ public $majorDimension; /** * @var array[] */ public $values; /** * @param DataFilter */ public function setDataFilter(\ForminatorGoogleAddon\Google\Service\Sheets\DataFilter $dataFilter) { } /** * @return DataFilter */ public function getDataFilter() { } /** * @param string */ public function setMajorDimension($majorDimension) { } /** * @return string */ public function getMajorDimension() { } /** * @param array[] */ public function setValues($values) { } /** * @return array[] */ public function getValues() { } } class DataLabel extends \ForminatorGoogleAddon\Google\Model { protected $customLabelDataType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $customLabelDataDataType = ''; /** * @var string */ public $placement; protected $textFormatType = \ForminatorGoogleAddon\Google\Service\Sheets\TextFormat::class; protected $textFormatDataType = ''; /** * @var string */ public $type; /** * @param ChartData */ public function setCustomLabelData(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $customLabelData) { } /** * @return ChartData */ public function getCustomLabelData() { } /** * @param string */ public function setPlacement($placement) { } /** * @return string */ public function getPlacement() { } /** * @param TextFormat */ public function setTextFormat(\ForminatorGoogleAddon\Google\Service\Sheets\TextFormat $textFormat) { } /** * @return TextFormat */ public function getTextFormat() { } /** * @param string */ public function setType($type) { } /** * @return string */ public function getType() { } } class DataSource extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'calculatedColumns'; protected $calculatedColumnsType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumn::class; protected $calculatedColumnsDataType = 'array'; /** * @var string */ public $dataSourceId; /** * @var int */ public $sheetId; protected $specType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceSpec::class; protected $specDataType = ''; /** * @param DataSourceColumn[] */ public function setCalculatedColumns($calculatedColumns) { } /** * @return DataSourceColumn[] */ public function getCalculatedColumns() { } /** * @param string */ public function setDataSourceId($dataSourceId) { } /** * @return string */ public function getDataSourceId() { } /** * @param int */ public function setSheetId($sheetId) { } /** * @return int */ public function getSheetId() { } /** * @param DataSourceSpec */ public function setSpec(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceSpec $spec) { } /** * @return DataSourceSpec */ public function getSpec() { } } class DataSourceChartProperties extends \ForminatorGoogleAddon\Google\Model { protected $dataExecutionStatusType = \ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus::class; protected $dataExecutionStatusDataType = ''; /** * @var string */ public $dataSourceId; /** * @param DataExecutionStatus */ public function setDataExecutionStatus(\ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus $dataExecutionStatus) { } /** * @return DataExecutionStatus */ public function getDataExecutionStatus() { } /** * @param string */ public function setDataSourceId($dataSourceId) { } /** * @return string */ public function getDataSourceId() { } } class DataSourceColumn extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $formula; protected $referenceType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference::class; protected $referenceDataType = ''; /** * @param string */ public function setFormula($formula) { } /** * @return string */ public function getFormula() { } /** * @param DataSourceColumnReference */ public function setReference(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference $reference) { } /** * @return DataSourceColumnReference */ public function getReference() { } } class DataSourceColumnReference extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $name; /** * @param string */ public function setName($name) { } /** * @return string */ public function getName() { } } class DataSourceFormula extends \ForminatorGoogleAddon\Google\Model { protected $dataExecutionStatusType = \ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus::class; protected $dataExecutionStatusDataType = ''; /** * @var string */ public $dataSourceId; /** * @param DataExecutionStatus */ public function setDataExecutionStatus(\ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus $dataExecutionStatus) { } /** * @return DataExecutionStatus */ public function getDataExecutionStatus() { } /** * @param string */ public function setDataSourceId($dataSourceId) { } /** * @return string */ public function getDataSourceId() { } } class DataSourceObjectReference extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $chartId; protected $dataSourceFormulaCellType = \ForminatorGoogleAddon\Google\Service\Sheets\GridCoordinate::class; protected $dataSourceFormulaCellDataType = ''; protected $dataSourcePivotTableAnchorCellType = \ForminatorGoogleAddon\Google\Service\Sheets\GridCoordinate::class; protected $dataSourcePivotTableAnchorCellDataType = ''; protected $dataSourceTableAnchorCellType = \ForminatorGoogleAddon\Google\Service\Sheets\GridCoordinate::class; protected $dataSourceTableAnchorCellDataType = ''; /** * @var string */ public $sheetId; /** * @param int */ public function setChartId($chartId) { } /** * @return int */ public function getChartId() { } /** * @param GridCoordinate */ public function setDataSourceFormulaCell(\ForminatorGoogleAddon\Google\Service\Sheets\GridCoordinate $dataSourceFormulaCell) { } /** * @return GridCoordinate */ public function getDataSourceFormulaCell() { } /** * @param GridCoordinate */ public function setDataSourcePivotTableAnchorCell(\ForminatorGoogleAddon\Google\Service\Sheets\GridCoordinate $dataSourcePivotTableAnchorCell) { } /** * @return GridCoordinate */ public function getDataSourcePivotTableAnchorCell() { } /** * @param GridCoordinate */ public function setDataSourceTableAnchorCell(\ForminatorGoogleAddon\Google\Service\Sheets\GridCoordinate $dataSourceTableAnchorCell) { } /** * @return GridCoordinate */ public function getDataSourceTableAnchorCell() { } /** * @param string */ public function setSheetId($sheetId) { } /** * @return string */ public function getSheetId() { } } class DataSourceObjectReferences extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'references'; protected $referencesType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceObjectReference::class; protected $referencesDataType = 'array'; /** * @param DataSourceObjectReference[] */ public function setReferences($references) { } /** * @return DataSourceObjectReference[] */ public function getReferences() { } } class DataSourceParameter extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $name; /** * @var string */ public $namedRangeId; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; /** * @param string */ public function setName($name) { } /** * @return string */ public function getName() { } /** * @param string */ public function setNamedRangeId($namedRangeId) { } /** * @return string */ public function getNamedRangeId() { } /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } } class DataSourceRefreshDailySchedule extends \ForminatorGoogleAddon\Google\Model { protected $startTimeType = \ForminatorGoogleAddon\Google\Service\Sheets\TimeOfDay::class; protected $startTimeDataType = ''; /** * @param TimeOfDay */ public function setStartTime(\ForminatorGoogleAddon\Google\Service\Sheets\TimeOfDay $startTime) { } /** * @return TimeOfDay */ public function getStartTime() { } } class DataSourceRefreshMonthlySchedule extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'daysOfMonth'; /** * @var int[] */ public $daysOfMonth; protected $startTimeType = \ForminatorGoogleAddon\Google\Service\Sheets\TimeOfDay::class; protected $startTimeDataType = ''; /** * @param int[] */ public function setDaysOfMonth($daysOfMonth) { } /** * @return int[] */ public function getDaysOfMonth() { } /** * @param TimeOfDay */ public function setStartTime(\ForminatorGoogleAddon\Google\Service\Sheets\TimeOfDay $startTime) { } /** * @return TimeOfDay */ public function getStartTime() { } } class DataSourceRefreshSchedule extends \ForminatorGoogleAddon\Google\Model { protected $dailyScheduleType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceRefreshDailySchedule::class; protected $dailyScheduleDataType = ''; /** * @var bool */ public $enabled; protected $monthlyScheduleType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceRefreshMonthlySchedule::class; protected $monthlyScheduleDataType = ''; protected $nextRunType = \ForminatorGoogleAddon\Google\Service\Sheets\Interval::class; protected $nextRunDataType = ''; /** * @var string */ public $refreshScope; protected $weeklyScheduleType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceRefreshWeeklySchedule::class; protected $weeklyScheduleDataType = ''; /** * @param DataSourceRefreshDailySchedule */ public function setDailySchedule(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceRefreshDailySchedule $dailySchedule) { } /** * @return DataSourceRefreshDailySchedule */ public function getDailySchedule() { } /** * @param bool */ public function setEnabled($enabled) { } /** * @return bool */ public function getEnabled() { } /** * @param DataSourceRefreshMonthlySchedule */ public function setMonthlySchedule(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceRefreshMonthlySchedule $monthlySchedule) { } /** * @return DataSourceRefreshMonthlySchedule */ public function getMonthlySchedule() { } /** * @param Interval */ public function setNextRun(\ForminatorGoogleAddon\Google\Service\Sheets\Interval $nextRun) { } /** * @return Interval */ public function getNextRun() { } /** * @param string */ public function setRefreshScope($refreshScope) { } /** * @return string */ public function getRefreshScope() { } /** * @param DataSourceRefreshWeeklySchedule */ public function setWeeklySchedule(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceRefreshWeeklySchedule $weeklySchedule) { } /** * @return DataSourceRefreshWeeklySchedule */ public function getWeeklySchedule() { } } class DataSourceRefreshWeeklySchedule extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'daysOfWeek'; /** * @var string[] */ public $daysOfWeek; protected $startTimeType = \ForminatorGoogleAddon\Google\Service\Sheets\TimeOfDay::class; protected $startTimeDataType = ''; /** * @param string[] */ public function setDaysOfWeek($daysOfWeek) { } /** * @return string[] */ public function getDaysOfWeek() { } /** * @param TimeOfDay */ public function setStartTime(\ForminatorGoogleAddon\Google\Service\Sheets\TimeOfDay $startTime) { } /** * @return TimeOfDay */ public function getStartTime() { } } class DataSourceSheetDimensionRange extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'columnReferences'; protected $columnReferencesType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference::class; protected $columnReferencesDataType = 'array'; /** * @var int */ public $sheetId; /** * @param DataSourceColumnReference[] */ public function setColumnReferences($columnReferences) { } /** * @return DataSourceColumnReference[] */ public function getColumnReferences() { } /** * @param int */ public function setSheetId($sheetId) { } /** * @return int */ public function getSheetId() { } } class DataSourceSheetProperties extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'columns'; protected $columnsType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumn::class; protected $columnsDataType = 'array'; protected $dataExecutionStatusType = \ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus::class; protected $dataExecutionStatusDataType = ''; /** * @var string */ public $dataSourceId; /** * @param DataSourceColumn[] */ public function setColumns($columns) { } /** * @return DataSourceColumn[] */ public function getColumns() { } /** * @param DataExecutionStatus */ public function setDataExecutionStatus(\ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus $dataExecutionStatus) { } /** * @return DataExecutionStatus */ public function getDataExecutionStatus() { } /** * @param string */ public function setDataSourceId($dataSourceId) { } /** * @return string */ public function getDataSourceId() { } } class DataSourceSpec extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'parameters'; protected $bigQueryType = \ForminatorGoogleAddon\Google\Service\Sheets\BigQueryDataSourceSpec::class; protected $bigQueryDataType = ''; protected $parametersType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceParameter::class; protected $parametersDataType = 'array'; /** * @param BigQueryDataSourceSpec */ public function setBigQuery(\ForminatorGoogleAddon\Google\Service\Sheets\BigQueryDataSourceSpec $bigQuery) { } /** * @return BigQueryDataSourceSpec */ public function getBigQuery() { } /** * @param DataSourceParameter[] */ public function setParameters($parameters) { } /** * @return DataSourceParameter[] */ public function getParameters() { } } class DataSourceTable extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'sortSpecs'; /** * @var string */ public $columnSelectionType; protected $columnsType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference::class; protected $columnsDataType = 'array'; protected $dataExecutionStatusType = \ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus::class; protected $dataExecutionStatusDataType = ''; /** * @var string */ public $dataSourceId; protected $filterSpecsType = \ForminatorGoogleAddon\Google\Service\Sheets\FilterSpec::class; protected $filterSpecsDataType = 'array'; /** * @var int */ public $rowLimit; protected $sortSpecsType = \ForminatorGoogleAddon\Google\Service\Sheets\SortSpec::class; protected $sortSpecsDataType = 'array'; /** * @param string */ public function setColumnSelectionType($columnSelectionType) { } /** * @return string */ public function getColumnSelectionType() { } /** * @param DataSourceColumnReference[] */ public function setColumns($columns) { } /** * @return DataSourceColumnReference[] */ public function getColumns() { } /** * @param DataExecutionStatus */ public function setDataExecutionStatus(\ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus $dataExecutionStatus) { } /** * @return DataExecutionStatus */ public function getDataExecutionStatus() { } /** * @param string */ public function setDataSourceId($dataSourceId) { } /** * @return string */ public function getDataSourceId() { } /** * @param FilterSpec[] */ public function setFilterSpecs($filterSpecs) { } /** * @return FilterSpec[] */ public function getFilterSpecs() { } /** * @param int */ public function setRowLimit($rowLimit) { } /** * @return int */ public function getRowLimit() { } /** * @param SortSpec[] */ public function setSortSpecs($sortSpecs) { } /** * @return SortSpec[] */ public function getSortSpecs() { } } class DataValidationRule extends \ForminatorGoogleAddon\Google\Model { protected $conditionType = \ForminatorGoogleAddon\Google\Service\Sheets\BooleanCondition::class; protected $conditionDataType = ''; /** * @var string */ public $inputMessage; /** * @var bool */ public $showCustomUi; /** * @var bool */ public $strict; /** * @param BooleanCondition */ public function setCondition(\ForminatorGoogleAddon\Google\Service\Sheets\BooleanCondition $condition) { } /** * @return BooleanCondition */ public function getCondition() { } /** * @param string */ public function setInputMessage($inputMessage) { } /** * @return string */ public function getInputMessage() { } /** * @param bool */ public function setShowCustomUi($showCustomUi) { } /** * @return bool */ public function getShowCustomUi() { } /** * @param bool */ public function setStrict($strict) { } /** * @return bool */ public function getStrict() { } } class DateTimeRule extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $type; /** * @param string */ public function setType($type) { } /** * @return string */ public function getType() { } } class DeleteBandingRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $bandedRangeId; /** * @param int */ public function setBandedRangeId($bandedRangeId) { } /** * @return int */ public function getBandedRangeId() { } } class DeleteConditionalFormatRuleRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $index; /** * @var int */ public $sheetId; /** * @param int */ public function setIndex($index) { } /** * @return int */ public function getIndex() { } /** * @param int */ public function setSheetId($sheetId) { } /** * @return int */ public function getSheetId() { } } class DeleteConditionalFormatRuleResponse extends \ForminatorGoogleAddon\Google\Model { protected $ruleType = \ForminatorGoogleAddon\Google\Service\Sheets\ConditionalFormatRule::class; protected $ruleDataType = ''; /** * @param ConditionalFormatRule */ public function setRule(\ForminatorGoogleAddon\Google\Service\Sheets\ConditionalFormatRule $rule) { } /** * @return ConditionalFormatRule */ public function getRule() { } } class DeleteDataSourceRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $dataSourceId; /** * @param string */ public function setDataSourceId($dataSourceId) { } /** * @return string */ public function getDataSourceId() { } } class DeleteDeveloperMetadataRequest extends \ForminatorGoogleAddon\Google\Model { protected $dataFilterType = \ForminatorGoogleAddon\Google\Service\Sheets\DataFilter::class; protected $dataFilterDataType = ''; /** * @param DataFilter */ public function setDataFilter(\ForminatorGoogleAddon\Google\Service\Sheets\DataFilter $dataFilter) { } /** * @return DataFilter */ public function getDataFilter() { } } class DeleteDeveloperMetadataResponse extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'deletedDeveloperMetadata'; protected $deletedDeveloperMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadata::class; protected $deletedDeveloperMetadataDataType = 'array'; /** * @param DeveloperMetadata[] */ public function setDeletedDeveloperMetadata($deletedDeveloperMetadata) { } /** * @return DeveloperMetadata[] */ public function getDeletedDeveloperMetadata() { } } class DeleteDimensionGroupRequest extends \ForminatorGoogleAddon\Google\Model { protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange::class; protected $rangeDataType = ''; /** * @param DimensionRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange $range) { } /** * @return DimensionRange */ public function getRange() { } } class DeleteDimensionGroupResponse extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'dimensionGroups'; protected $dimensionGroupsType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionGroup::class; protected $dimensionGroupsDataType = 'array'; /** * @param DimensionGroup[] */ public function setDimensionGroups($dimensionGroups) { } /** * @return DimensionGroup[] */ public function getDimensionGroups() { } } class DeleteDimensionRequest extends \ForminatorGoogleAddon\Google\Model { protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange::class; protected $rangeDataType = ''; /** * @param DimensionRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange $range) { } /** * @return DimensionRange */ public function getRange() { } } class DeleteDuplicatesRequest extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'comparisonColumns'; protected $comparisonColumnsType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange::class; protected $comparisonColumnsDataType = 'array'; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; /** * @param DimensionRange[] */ public function setComparisonColumns($comparisonColumns) { } /** * @return DimensionRange[] */ public function getComparisonColumns() { } /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } } class DeleteDuplicatesResponse extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $duplicatesRemovedCount; /** * @param int */ public function setDuplicatesRemovedCount($duplicatesRemovedCount) { } /** * @return int */ public function getDuplicatesRemovedCount() { } } class DeleteEmbeddedObjectRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $objectId; /** * @param int */ public function setObjectId($objectId) { } /** * @return int */ public function getObjectId() { } } class DeleteFilterViewRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $filterId; /** * @param int */ public function setFilterId($filterId) { } /** * @return int */ public function getFilterId() { } } class DeleteNamedRangeRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $namedRangeId; /** * @param string */ public function setNamedRangeId($namedRangeId) { } /** * @return string */ public function getNamedRangeId() { } } class DeleteProtectedRangeRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $protectedRangeId; /** * @param int */ public function setProtectedRangeId($protectedRangeId) { } /** * @return int */ public function getProtectedRangeId() { } } class DeleteRangeRequest extends \ForminatorGoogleAddon\Google\Model { protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; /** * @var string */ public $shiftDimension; /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } /** * @param string */ public function setShiftDimension($shiftDimension) { } /** * @return string */ public function getShiftDimension() { } } class DeleteSheetRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $sheetId; /** * @param int */ public function setSheetId($sheetId) { } /** * @return int */ public function getSheetId() { } } class DeveloperMetadata extends \ForminatorGoogleAddon\Google\Model { protected $locationType = \ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadataLocation::class; protected $locationDataType = ''; /** * @var int */ public $metadataId; /** * @var string */ public $metadataKey; /** * @var string */ public $metadataValue; /** * @var string */ public $visibility; /** * @param DeveloperMetadataLocation */ public function setLocation(\ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadataLocation $location) { } /** * @return DeveloperMetadataLocation */ public function getLocation() { } /** * @param int */ public function setMetadataId($metadataId) { } /** * @return int */ public function getMetadataId() { } /** * @param string */ public function setMetadataKey($metadataKey) { } /** * @return string */ public function getMetadataKey() { } /** * @param string */ public function setMetadataValue($metadataValue) { } /** * @return string */ public function getMetadataValue() { } /** * @param string */ public function setVisibility($visibility) { } /** * @return string */ public function getVisibility() { } } class DeveloperMetadataLocation extends \ForminatorGoogleAddon\Google\Model { protected $dimensionRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange::class; protected $dimensionRangeDataType = ''; /** * @var string */ public $locationType; /** * @var int */ public $sheetId; /** * @var bool */ public $spreadsheet; /** * @param DimensionRange */ public function setDimensionRange(\ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange $dimensionRange) { } /** * @return DimensionRange */ public function getDimensionRange() { } /** * @param string */ public function setLocationType($locationType) { } /** * @return string */ public function getLocationType() { } /** * @param int */ public function setSheetId($sheetId) { } /** * @return int */ public function getSheetId() { } /** * @param bool */ public function setSpreadsheet($spreadsheet) { } /** * @return bool */ public function getSpreadsheet() { } } class DeveloperMetadataLookup extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $locationMatchingStrategy; /** * @var string */ public $locationType; /** * @var int */ public $metadataId; /** * @var string */ public $metadataKey; protected $metadataLocationType = \ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadataLocation::class; protected $metadataLocationDataType = ''; /** * @var string */ public $metadataValue; /** * @var string */ public $visibility; /** * @param string */ public function setLocationMatchingStrategy($locationMatchingStrategy) { } /** * @return string */ public function getLocationMatchingStrategy() { } /** * @param string */ public function setLocationType($locationType) { } /** * @return string */ public function getLocationType() { } /** * @param int */ public function setMetadataId($metadataId) { } /** * @return int */ public function getMetadataId() { } /** * @param string */ public function setMetadataKey($metadataKey) { } /** * @return string */ public function getMetadataKey() { } /** * @param DeveloperMetadataLocation */ public function setMetadataLocation(\ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadataLocation $metadataLocation) { } /** * @return DeveloperMetadataLocation */ public function getMetadataLocation() { } /** * @param string */ public function setMetadataValue($metadataValue) { } /** * @return string */ public function getMetadataValue() { } /** * @param string */ public function setVisibility($visibility) { } /** * @return string */ public function getVisibility() { } } class DimensionGroup extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $collapsed; /** * @var int */ public $depth; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange::class; protected $rangeDataType = ''; /** * @param bool */ public function setCollapsed($collapsed) { } /** * @return bool */ public function getCollapsed() { } /** * @param int */ public function setDepth($depth) { } /** * @return int */ public function getDepth() { } /** * @param DimensionRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange $range) { } /** * @return DimensionRange */ public function getRange() { } } class DimensionProperties extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'developerMetadata'; protected $dataSourceColumnReferenceType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference::class; protected $dataSourceColumnReferenceDataType = ''; protected $developerMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadata::class; protected $developerMetadataDataType = 'array'; /** * @var bool */ public $hiddenByFilter; /** * @var bool */ public $hiddenByUser; /** * @var int */ public $pixelSize; /** * @param DataSourceColumnReference */ public function setDataSourceColumnReference(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference $dataSourceColumnReference) { } /** * @return DataSourceColumnReference */ public function getDataSourceColumnReference() { } /** * @param DeveloperMetadata[] */ public function setDeveloperMetadata($developerMetadata) { } /** * @return DeveloperMetadata[] */ public function getDeveloperMetadata() { } /** * @param bool */ public function setHiddenByFilter($hiddenByFilter) { } /** * @return bool */ public function getHiddenByFilter() { } /** * @param bool */ public function setHiddenByUser($hiddenByUser) { } /** * @return bool */ public function getHiddenByUser() { } /** * @param int */ public function setPixelSize($pixelSize) { } /** * @return int */ public function getPixelSize() { } } class DimensionRange extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $dimension; /** * @var int */ public $endIndex; /** * @var int */ public $sheetId; /** * @var int */ public $startIndex; /** * @param string */ public function setDimension($dimension) { } /** * @return string */ public function getDimension() { } /** * @param int */ public function setEndIndex($endIndex) { } /** * @return int */ public function getEndIndex() { } /** * @param int */ public function setSheetId($sheetId) { } /** * @return int */ public function getSheetId() { } /** * @param int */ public function setStartIndex($startIndex) { } /** * @return int */ public function getStartIndex() { } } class DuplicateFilterViewRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $filterId; /** * @param int */ public function setFilterId($filterId) { } /** * @return int */ public function getFilterId() { } } class DuplicateFilterViewResponse extends \ForminatorGoogleAddon\Google\Model { protected $filterType = \ForminatorGoogleAddon\Google\Service\Sheets\FilterView::class; protected $filterDataType = ''; /** * @param FilterView */ public function setFilter(\ForminatorGoogleAddon\Google\Service\Sheets\FilterView $filter) { } /** * @return FilterView */ public function getFilter() { } } class DuplicateSheetRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $insertSheetIndex; /** * @var int */ public $newSheetId; /** * @var string */ public $newSheetName; /** * @var int */ public $sourceSheetId; /** * @param int */ public function setInsertSheetIndex($insertSheetIndex) { } /** * @return int */ public function getInsertSheetIndex() { } /** * @param int */ public function setNewSheetId($newSheetId) { } /** * @return int */ public function getNewSheetId() { } /** * @param string */ public function setNewSheetName($newSheetName) { } /** * @return string */ public function getNewSheetName() { } /** * @param int */ public function setSourceSheetId($sourceSheetId) { } /** * @return int */ public function getSourceSheetId() { } } class DuplicateSheetResponse extends \ForminatorGoogleAddon\Google\Model { protected $propertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\SheetProperties::class; protected $propertiesDataType = ''; /** * @param SheetProperties */ public function setProperties(\ForminatorGoogleAddon\Google\Service\Sheets\SheetProperties $properties) { } /** * @return SheetProperties */ public function getProperties() { } } class Editors extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'users'; /** * @var bool */ public $domainUsersCanEdit; /** * @var string[] */ public $groups; /** * @var string[] */ public $users; /** * @param bool */ public function setDomainUsersCanEdit($domainUsersCanEdit) { } /** * @return bool */ public function getDomainUsersCanEdit() { } /** * @param string[] */ public function setGroups($groups) { } /** * @return string[] */ public function getGroups() { } /** * @param string[] */ public function setUsers($users) { } /** * @return string[] */ public function getUsers() { } } class EmbeddedChart extends \ForminatorGoogleAddon\Google\Model { protected $borderType = \ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedObjectBorder::class; protected $borderDataType = ''; /** * @var int */ public $chartId; protected $positionType = \ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedObjectPosition::class; protected $positionDataType = ''; protected $specType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartSpec::class; protected $specDataType = ''; /** * @param EmbeddedObjectBorder */ public function setBorder(\ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedObjectBorder $border) { } /** * @return EmbeddedObjectBorder */ public function getBorder() { } /** * @param int */ public function setChartId($chartId) { } /** * @return int */ public function getChartId() { } /** * @param EmbeddedObjectPosition */ public function setPosition(\ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedObjectPosition $position) { } /** * @return EmbeddedObjectPosition */ public function getPosition() { } /** * @param ChartSpec */ public function setSpec(\ForminatorGoogleAddon\Google\Service\Sheets\ChartSpec $spec) { } /** * @return ChartSpec */ public function getSpec() { } } class EmbeddedObjectBorder extends \ForminatorGoogleAddon\Google\Model { protected $colorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $colorDataType = ''; protected $colorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $colorStyleDataType = ''; /** * @param Color */ public function setColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $color) { } /** * @return Color */ public function getColor() { } /** * @param ColorStyle */ public function setColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $colorStyle) { } /** * @return ColorStyle */ public function getColorStyle() { } } class EmbeddedObjectPosition extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $newSheet; protected $overlayPositionType = \ForminatorGoogleAddon\Google\Service\Sheets\OverlayPosition::class; protected $overlayPositionDataType = ''; /** * @var int */ public $sheetId; /** * @param bool */ public function setNewSheet($newSheet) { } /** * @return bool */ public function getNewSheet() { } /** * @param OverlayPosition */ public function setOverlayPosition(\ForminatorGoogleAddon\Google\Service\Sheets\OverlayPosition $overlayPosition) { } /** * @return OverlayPosition */ public function getOverlayPosition() { } /** * @param int */ public function setSheetId($sheetId) { } /** * @return int */ public function getSheetId() { } } class ErrorValue extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $message; /** * @var string */ public $type; /** * @param string */ public function setMessage($message) { } /** * @return string */ public function getMessage() { } /** * @param string */ public function setType($type) { } /** * @return string */ public function getType() { } } class ExtendedValue extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $boolValue; protected $errorValueType = \ForminatorGoogleAddon\Google\Service\Sheets\ErrorValue::class; protected $errorValueDataType = ''; /** * @var string */ public $formulaValue; public $numberValue; /** * @var string */ public $stringValue; /** * @param bool */ public function setBoolValue($boolValue) { } /** * @return bool */ public function getBoolValue() { } /** * @param ErrorValue */ public function setErrorValue(\ForminatorGoogleAddon\Google\Service\Sheets\ErrorValue $errorValue) { } /** * @return ErrorValue */ public function getErrorValue() { } /** * @param string */ public function setFormulaValue($formulaValue) { } /** * @return string */ public function getFormulaValue() { } public function setNumberValue($numberValue) { } public function getNumberValue() { } /** * @param string */ public function setStringValue($stringValue) { } /** * @return string */ public function getStringValue() { } } class FilterCriteria extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'hiddenValues'; protected $conditionType = \ForminatorGoogleAddon\Google\Service\Sheets\BooleanCondition::class; protected $conditionDataType = ''; /** * @var string[] */ public $hiddenValues; protected $visibleBackgroundColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $visibleBackgroundColorDataType = ''; protected $visibleBackgroundColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $visibleBackgroundColorStyleDataType = ''; protected $visibleForegroundColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $visibleForegroundColorDataType = ''; protected $visibleForegroundColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $visibleForegroundColorStyleDataType = ''; /** * @param BooleanCondition */ public function setCondition(\ForminatorGoogleAddon\Google\Service\Sheets\BooleanCondition $condition) { } /** * @return BooleanCondition */ public function getCondition() { } /** * @param string[] */ public function setHiddenValues($hiddenValues) { } /** * @return string[] */ public function getHiddenValues() { } /** * @param Color */ public function setVisibleBackgroundColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $visibleBackgroundColor) { } /** * @return Color */ public function getVisibleBackgroundColor() { } /** * @param ColorStyle */ public function setVisibleBackgroundColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $visibleBackgroundColorStyle) { } /** * @return ColorStyle */ public function getVisibleBackgroundColorStyle() { } /** * @param Color */ public function setVisibleForegroundColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $visibleForegroundColor) { } /** * @return Color */ public function getVisibleForegroundColor() { } /** * @param ColorStyle */ public function setVisibleForegroundColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $visibleForegroundColorStyle) { } /** * @return ColorStyle */ public function getVisibleForegroundColorStyle() { } } class FilterSpec extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $columnIndex; protected $dataSourceColumnReferenceType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference::class; protected $dataSourceColumnReferenceDataType = ''; protected $filterCriteriaType = \ForminatorGoogleAddon\Google\Service\Sheets\FilterCriteria::class; protected $filterCriteriaDataType = ''; /** * @param int */ public function setColumnIndex($columnIndex) { } /** * @return int */ public function getColumnIndex() { } /** * @param DataSourceColumnReference */ public function setDataSourceColumnReference(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference $dataSourceColumnReference) { } /** * @return DataSourceColumnReference */ public function getDataSourceColumnReference() { } /** * @param FilterCriteria */ public function setFilterCriteria(\ForminatorGoogleAddon\Google\Service\Sheets\FilterCriteria $filterCriteria) { } /** * @return FilterCriteria */ public function getFilterCriteria() { } } class FilterView extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'sortSpecs'; protected $criteriaType = \ForminatorGoogleAddon\Google\Service\Sheets\FilterCriteria::class; protected $criteriaDataType = 'map'; protected $filterSpecsType = \ForminatorGoogleAddon\Google\Service\Sheets\FilterSpec::class; protected $filterSpecsDataType = 'array'; /** * @var int */ public $filterViewId; /** * @var string */ public $namedRangeId; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; protected $sortSpecsType = \ForminatorGoogleAddon\Google\Service\Sheets\SortSpec::class; protected $sortSpecsDataType = 'array'; /** * @var string */ public $title; /** * @param FilterCriteria[] */ public function setCriteria($criteria) { } /** * @return FilterCriteria[] */ public function getCriteria() { } /** * @param FilterSpec[] */ public function setFilterSpecs($filterSpecs) { } /** * @return FilterSpec[] */ public function getFilterSpecs() { } /** * @param int */ public function setFilterViewId($filterViewId) { } /** * @return int */ public function getFilterViewId() { } /** * @param string */ public function setNamedRangeId($namedRangeId) { } /** * @return string */ public function getNamedRangeId() { } /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } /** * @param SortSpec[] */ public function setSortSpecs($sortSpecs) { } /** * @return SortSpec[] */ public function getSortSpecs() { } /** * @param string */ public function setTitle($title) { } /** * @return string */ public function getTitle() { } } class FindReplaceRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $allSheets; /** * @var string */ public $find; /** * @var bool */ public $includeFormulas; /** * @var bool */ public $matchCase; /** * @var bool */ public $matchEntireCell; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; /** * @var string */ public $replacement; /** * @var bool */ public $searchByRegex; /** * @var int */ public $sheetId; /** * @param bool */ public function setAllSheets($allSheets) { } /** * @return bool */ public function getAllSheets() { } /** * @param string */ public function setFind($find) { } /** * @return string */ public function getFind() { } /** * @param bool */ public function setIncludeFormulas($includeFormulas) { } /** * @return bool */ public function getIncludeFormulas() { } /** * @param bool */ public function setMatchCase($matchCase) { } /** * @return bool */ public function getMatchCase() { } /** * @param bool */ public function setMatchEntireCell($matchEntireCell) { } /** * @return bool */ public function getMatchEntireCell() { } /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } /** * @param string */ public function setReplacement($replacement) { } /** * @return string */ public function getReplacement() { } /** * @param bool */ public function setSearchByRegex($searchByRegex) { } /** * @return bool */ public function getSearchByRegex() { } /** * @param int */ public function setSheetId($sheetId) { } /** * @return int */ public function getSheetId() { } } class FindReplaceResponse extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $formulasChanged; /** * @var int */ public $occurrencesChanged; /** * @var int */ public $rowsChanged; /** * @var int */ public $sheetsChanged; /** * @var int */ public $valuesChanged; /** * @param int */ public function setFormulasChanged($formulasChanged) { } /** * @return int */ public function getFormulasChanged() { } /** * @param int */ public function setOccurrencesChanged($occurrencesChanged) { } /** * @return int */ public function getOccurrencesChanged() { } /** * @param int */ public function setRowsChanged($rowsChanged) { } /** * @return int */ public function getRowsChanged() { } /** * @param int */ public function setSheetsChanged($sheetsChanged) { } /** * @return int */ public function getSheetsChanged() { } /** * @param int */ public function setValuesChanged($valuesChanged) { } /** * @return int */ public function getValuesChanged() { } } class GetSpreadsheetByDataFilterRequest extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'dataFilters'; protected $dataFiltersType = \ForminatorGoogleAddon\Google\Service\Sheets\DataFilter::class; protected $dataFiltersDataType = 'array'; /** * @var bool */ public $includeGridData; /** * @param DataFilter[] */ public function setDataFilters($dataFilters) { } /** * @return DataFilter[] */ public function getDataFilters() { } /** * @param bool */ public function setIncludeGridData($includeGridData) { } /** * @return bool */ public function getIncludeGridData() { } } class GradientRule extends \ForminatorGoogleAddon\Google\Model { protected $maxpointType = \ForminatorGoogleAddon\Google\Service\Sheets\InterpolationPoint::class; protected $maxpointDataType = ''; protected $midpointType = \ForminatorGoogleAddon\Google\Service\Sheets\InterpolationPoint::class; protected $midpointDataType = ''; protected $minpointType = \ForminatorGoogleAddon\Google\Service\Sheets\InterpolationPoint::class; protected $minpointDataType = ''; /** * @param InterpolationPoint */ public function setMaxpoint(\ForminatorGoogleAddon\Google\Service\Sheets\InterpolationPoint $maxpoint) { } /** * @return InterpolationPoint */ public function getMaxpoint() { } /** * @param InterpolationPoint */ public function setMidpoint(\ForminatorGoogleAddon\Google\Service\Sheets\InterpolationPoint $midpoint) { } /** * @return InterpolationPoint */ public function getMidpoint() { } /** * @param InterpolationPoint */ public function setMinpoint(\ForminatorGoogleAddon\Google\Service\Sheets\InterpolationPoint $minpoint) { } /** * @return InterpolationPoint */ public function getMinpoint() { } } class GridCoordinate extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $columnIndex; /** * @var int */ public $rowIndex; /** * @var int */ public $sheetId; /** * @param int */ public function setColumnIndex($columnIndex) { } /** * @return int */ public function getColumnIndex() { } /** * @param int */ public function setRowIndex($rowIndex) { } /** * @return int */ public function getRowIndex() { } /** * @param int */ public function setSheetId($sheetId) { } /** * @return int */ public function getSheetId() { } } class GridData extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'rowMetadata'; protected $columnMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionProperties::class; protected $columnMetadataDataType = 'array'; protected $rowDataType = \ForminatorGoogleAddon\Google\Service\Sheets\RowData::class; protected $rowDataDataType = 'array'; protected $rowMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionProperties::class; protected $rowMetadataDataType = 'array'; /** * @var int */ public $startColumn; /** * @var int */ public $startRow; /** * @param DimensionProperties[] */ public function setColumnMetadata($columnMetadata) { } /** * @return DimensionProperties[] */ public function getColumnMetadata() { } /** * @param RowData[] */ public function setRowData($rowData) { } /** * @return RowData[] */ public function getRowData() { } /** * @param DimensionProperties[] */ public function setRowMetadata($rowMetadata) { } /** * @return DimensionProperties[] */ public function getRowMetadata() { } /** * @param int */ public function setStartColumn($startColumn) { } /** * @return int */ public function getStartColumn() { } /** * @param int */ public function setStartRow($startRow) { } /** * @return int */ public function getStartRow() { } } class GridProperties extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $columnCount; /** * @var bool */ public $columnGroupControlAfter; /** * @var int */ public $frozenColumnCount; /** * @var int */ public $frozenRowCount; /** * @var bool */ public $hideGridlines; /** * @var int */ public $rowCount; /** * @var bool */ public $rowGroupControlAfter; /** * @param int */ public function setColumnCount($columnCount) { } /** * @return int */ public function getColumnCount() { } /** * @param bool */ public function setColumnGroupControlAfter($columnGroupControlAfter) { } /** * @return bool */ public function getColumnGroupControlAfter() { } /** * @param int */ public function setFrozenColumnCount($frozenColumnCount) { } /** * @return int */ public function getFrozenColumnCount() { } /** * @param int */ public function setFrozenRowCount($frozenRowCount) { } /** * @return int */ public function getFrozenRowCount() { } /** * @param bool */ public function setHideGridlines($hideGridlines) { } /** * @return bool */ public function getHideGridlines() { } /** * @param int */ public function setRowCount($rowCount) { } /** * @return int */ public function getRowCount() { } /** * @param bool */ public function setRowGroupControlAfter($rowGroupControlAfter) { } /** * @return bool */ public function getRowGroupControlAfter() { } } class GridRange extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $endColumnIndex; /** * @var int */ public $endRowIndex; /** * @var int */ public $sheetId; /** * @var int */ public $startColumnIndex; /** * @var int */ public $startRowIndex; /** * @param int */ public function setEndColumnIndex($endColumnIndex) { } /** * @return int */ public function getEndColumnIndex() { } /** * @param int */ public function setEndRowIndex($endRowIndex) { } /** * @return int */ public function getEndRowIndex() { } /** * @param int */ public function setSheetId($sheetId) { } /** * @return int */ public function getSheetId() { } /** * @param int */ public function setStartColumnIndex($startColumnIndex) { } /** * @return int */ public function getStartColumnIndex() { } /** * @param int */ public function setStartRowIndex($startRowIndex) { } /** * @return int */ public function getStartRowIndex() { } } class HistogramChartSpec extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'series'; public $bucketSize; /** * @var string */ public $legendPosition; public $outlierPercentile; protected $seriesType = \ForminatorGoogleAddon\Google\Service\Sheets\HistogramSeries::class; protected $seriesDataType = 'array'; /** * @var bool */ public $showItemDividers; public function setBucketSize($bucketSize) { } public function getBucketSize() { } /** * @param string */ public function setLegendPosition($legendPosition) { } /** * @return string */ public function getLegendPosition() { } public function setOutlierPercentile($outlierPercentile) { } public function getOutlierPercentile() { } /** * @param HistogramSeries[] */ public function setSeries($series) { } /** * @return HistogramSeries[] */ public function getSeries() { } /** * @param bool */ public function setShowItemDividers($showItemDividers) { } /** * @return bool */ public function getShowItemDividers() { } } class HistogramRule extends \ForminatorGoogleAddon\Google\Model { public $end; public $interval; public $start; public function setEnd($end) { } public function getEnd() { } public function setInterval($interval) { } public function getInterval() { } public function setStart($start) { } public function getStart() { } } class HistogramSeries extends \ForminatorGoogleAddon\Google\Model { protected $barColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $barColorDataType = ''; protected $barColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $barColorStyleDataType = ''; protected $dataType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $dataDataType = ''; /** * @param Color */ public function setBarColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $barColor) { } /** * @return Color */ public function getBarColor() { } /** * @param ColorStyle */ public function setBarColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $barColorStyle) { } /** * @return ColorStyle */ public function getBarColorStyle() { } /** * @param ChartData */ public function setData(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $data) { } /** * @return ChartData */ public function getData() { } } class InsertDimensionRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $inheritFromBefore; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange::class; protected $rangeDataType = ''; /** * @param bool */ public function setInheritFromBefore($inheritFromBefore) { } /** * @return bool */ public function getInheritFromBefore() { } /** * @param DimensionRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange $range) { } /** * @return DimensionRange */ public function getRange() { } } class InsertRangeRequest extends \ForminatorGoogleAddon\Google\Model { protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; /** * @var string */ public $shiftDimension; /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } /** * @param string */ public function setShiftDimension($shiftDimension) { } /** * @return string */ public function getShiftDimension() { } } class InterpolationPoint extends \ForminatorGoogleAddon\Google\Model { protected $colorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $colorDataType = ''; protected $colorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $colorStyleDataType = ''; /** * @var string */ public $type; /** * @var string */ public $value; /** * @param Color */ public function setColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $color) { } /** * @return Color */ public function getColor() { } /** * @param ColorStyle */ public function setColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $colorStyle) { } /** * @return ColorStyle */ public function getColorStyle() { } /** * @param string */ public function setType($type) { } /** * @return string */ public function getType() { } /** * @param string */ public function setValue($value) { } /** * @return string */ public function getValue() { } } class Interval extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $endTime; /** * @var string */ public $startTime; /** * @param string */ public function setEndTime($endTime) { } /** * @return string */ public function getEndTime() { } /** * @param string */ public function setStartTime($startTime) { } /** * @return string */ public function getStartTime() { } } class IterativeCalculationSettings extends \ForminatorGoogleAddon\Google\Model { public $convergenceThreshold; /** * @var int */ public $maxIterations; public function setConvergenceThreshold($convergenceThreshold) { } public function getConvergenceThreshold() { } /** * @param int */ public function setMaxIterations($maxIterations) { } /** * @return int */ public function getMaxIterations() { } } class KeyValueFormat extends \ForminatorGoogleAddon\Google\Model { protected $positionType = \ForminatorGoogleAddon\Google\Service\Sheets\TextPosition::class; protected $positionDataType = ''; protected $textFormatType = \ForminatorGoogleAddon\Google\Service\Sheets\TextFormat::class; protected $textFormatDataType = ''; /** * @param TextPosition */ public function setPosition(\ForminatorGoogleAddon\Google\Service\Sheets\TextPosition $position) { } /** * @return TextPosition */ public function getPosition() { } /** * @param TextFormat */ public function setTextFormat(\ForminatorGoogleAddon\Google\Service\Sheets\TextFormat $textFormat) { } /** * @return TextFormat */ public function getTextFormat() { } } class LineStyle extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $type; /** * @var int */ public $width; /** * @param string */ public function setType($type) { } /** * @return string */ public function getType() { } /** * @param int */ public function setWidth($width) { } /** * @return int */ public function getWidth() { } } class Link extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $uri; /** * @param string */ public function setUri($uri) { } /** * @return string */ public function getUri() { } } class ManualRule extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'groups'; protected $groupsType = \ForminatorGoogleAddon\Google\Service\Sheets\ManualRuleGroup::class; protected $groupsDataType = 'array'; /** * @param ManualRuleGroup[] */ public function setGroups($groups) { } /** * @return ManualRuleGroup[] */ public function getGroups() { } } class ManualRuleGroup extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'items'; protected $groupNameType = \ForminatorGoogleAddon\Google\Service\Sheets\ExtendedValue::class; protected $groupNameDataType = ''; protected $itemsType = \ForminatorGoogleAddon\Google\Service\Sheets\ExtendedValue::class; protected $itemsDataType = 'array'; /** * @param ExtendedValue */ public function setGroupName(\ForminatorGoogleAddon\Google\Service\Sheets\ExtendedValue $groupName) { } /** * @return ExtendedValue */ public function getGroupName() { } /** * @param ExtendedValue[] */ public function setItems($items) { } /** * @return ExtendedValue[] */ public function getItems() { } } class MatchedDeveloperMetadata extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'dataFilters'; protected $dataFiltersType = \ForminatorGoogleAddon\Google\Service\Sheets\DataFilter::class; protected $dataFiltersDataType = 'array'; protected $developerMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadata::class; protected $developerMetadataDataType = ''; /** * @param DataFilter[] */ public function setDataFilters($dataFilters) { } /** * @return DataFilter[] */ public function getDataFilters() { } /** * @param DeveloperMetadata */ public function setDeveloperMetadata(\ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadata $developerMetadata) { } /** * @return DeveloperMetadata */ public function getDeveloperMetadata() { } } class MatchedValueRange extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'dataFilters'; protected $dataFiltersType = \ForminatorGoogleAddon\Google\Service\Sheets\DataFilter::class; protected $dataFiltersDataType = 'array'; protected $valueRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\ValueRange::class; protected $valueRangeDataType = ''; /** * @param DataFilter[] */ public function setDataFilters($dataFilters) { } /** * @return DataFilter[] */ public function getDataFilters() { } /** * @param ValueRange */ public function setValueRange(\ForminatorGoogleAddon\Google\Service\Sheets\ValueRange $valueRange) { } /** * @return ValueRange */ public function getValueRange() { } } class MergeCellsRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $mergeType; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; /** * @param string */ public function setMergeType($mergeType) { } /** * @return string */ public function getMergeType() { } /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } } class MoveDimensionRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $destinationIndex; protected $sourceType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange::class; protected $sourceDataType = ''; /** * @param int */ public function setDestinationIndex($destinationIndex) { } /** * @return int */ public function getDestinationIndex() { } /** * @param DimensionRange */ public function setSource(\ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange $source) { } /** * @return DimensionRange */ public function getSource() { } } class NamedRange extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $name; /** * @var string */ public $namedRangeId; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; /** * @param string */ public function setName($name) { } /** * @return string */ public function getName() { } /** * @param string */ public function setNamedRangeId($namedRangeId) { } /** * @return string */ public function getNamedRangeId() { } /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } } class NumberFormat extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $pattern; /** * @var string */ public $type; /** * @param string */ public function setPattern($pattern) { } /** * @return string */ public function getPattern() { } /** * @param string */ public function setType($type) { } /** * @return string */ public function getType() { } } class OrgChartSpec extends \ForminatorGoogleAddon\Google\Model { protected $labelsType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $labelsDataType = ''; protected $nodeColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $nodeColorDataType = ''; protected $nodeColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $nodeColorStyleDataType = ''; /** * @var string */ public $nodeSize; protected $parentLabelsType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $parentLabelsDataType = ''; protected $selectedNodeColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $selectedNodeColorDataType = ''; protected $selectedNodeColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $selectedNodeColorStyleDataType = ''; protected $tooltipsType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $tooltipsDataType = ''; /** * @param ChartData */ public function setLabels(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $labels) { } /** * @return ChartData */ public function getLabels() { } /** * @param Color */ public function setNodeColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $nodeColor) { } /** * @return Color */ public function getNodeColor() { } /** * @param ColorStyle */ public function setNodeColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $nodeColorStyle) { } /** * @return ColorStyle */ public function getNodeColorStyle() { } /** * @param string */ public function setNodeSize($nodeSize) { } /** * @return string */ public function getNodeSize() { } /** * @param ChartData */ public function setParentLabels(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $parentLabels) { } /** * @return ChartData */ public function getParentLabels() { } /** * @param Color */ public function setSelectedNodeColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $selectedNodeColor) { } /** * @return Color */ public function getSelectedNodeColor() { } /** * @param ColorStyle */ public function setSelectedNodeColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $selectedNodeColorStyle) { } /** * @return ColorStyle */ public function getSelectedNodeColorStyle() { } /** * @param ChartData */ public function setTooltips(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $tooltips) { } /** * @return ChartData */ public function getTooltips() { } } class OverlayPosition extends \ForminatorGoogleAddon\Google\Model { protected $anchorCellType = \ForminatorGoogleAddon\Google\Service\Sheets\GridCoordinate::class; protected $anchorCellDataType = ''; /** * @var int */ public $heightPixels; /** * @var int */ public $offsetXPixels; /** * @var int */ public $offsetYPixels; /** * @var int */ public $widthPixels; /** * @param GridCoordinate */ public function setAnchorCell(\ForminatorGoogleAddon\Google\Service\Sheets\GridCoordinate $anchorCell) { } /** * @return GridCoordinate */ public function getAnchorCell() { } /** * @param int */ public function setHeightPixels($heightPixels) { } /** * @return int */ public function getHeightPixels() { } /** * @param int */ public function setOffsetXPixels($offsetXPixels) { } /** * @return int */ public function getOffsetXPixels() { } /** * @param int */ public function setOffsetYPixels($offsetYPixels) { } /** * @return int */ public function getOffsetYPixels() { } /** * @param int */ public function setWidthPixels($widthPixels) { } /** * @return int */ public function getWidthPixels() { } } class Padding extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $bottom; /** * @var int */ public $left; /** * @var int */ public $right; /** * @var int */ public $top; /** * @param int */ public function setBottom($bottom) { } /** * @return int */ public function getBottom() { } /** * @param int */ public function setLeft($left) { } /** * @return int */ public function getLeft() { } /** * @param int */ public function setRight($right) { } /** * @return int */ public function getRight() { } /** * @param int */ public function setTop($top) { } /** * @return int */ public function getTop() { } } class PasteDataRequest extends \ForminatorGoogleAddon\Google\Model { protected $coordinateType = \ForminatorGoogleAddon\Google\Service\Sheets\GridCoordinate::class; protected $coordinateDataType = ''; /** * @var string */ public $data; /** * @var string */ public $delimiter; /** * @var bool */ public $html; /** * @var string */ public $type; /** * @param GridCoordinate */ public function setCoordinate(\ForminatorGoogleAddon\Google\Service\Sheets\GridCoordinate $coordinate) { } /** * @return GridCoordinate */ public function getCoordinate() { } /** * @param string */ public function setData($data) { } /** * @return string */ public function getData() { } /** * @param string */ public function setDelimiter($delimiter) { } /** * @return string */ public function getDelimiter() { } /** * @param bool */ public function setHtml($html) { } /** * @return bool */ public function getHtml() { } /** * @param string */ public function setType($type) { } /** * @return string */ public function getType() { } } class PieChartSpec extends \ForminatorGoogleAddon\Google\Model { protected $domainType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $domainDataType = ''; /** * @var string */ public $legendPosition; public $pieHole; protected $seriesType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $seriesDataType = ''; /** * @var bool */ public $threeDimensional; /** * @param ChartData */ public function setDomain(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $domain) { } /** * @return ChartData */ public function getDomain() { } /** * @param string */ public function setLegendPosition($legendPosition) { } /** * @return string */ public function getLegendPosition() { } public function setPieHole($pieHole) { } public function getPieHole() { } /** * @param ChartData */ public function setSeries(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $series) { } /** * @return ChartData */ public function getSeries() { } /** * @param bool */ public function setThreeDimensional($threeDimensional) { } /** * @return bool */ public function getThreeDimensional() { } } class PivotFilterCriteria extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'visibleValues'; protected $conditionType = \ForminatorGoogleAddon\Google\Service\Sheets\BooleanCondition::class; protected $conditionDataType = ''; /** * @var bool */ public $visibleByDefault; /** * @var string[] */ public $visibleValues; /** * @param BooleanCondition */ public function setCondition(\ForminatorGoogleAddon\Google\Service\Sheets\BooleanCondition $condition) { } /** * @return BooleanCondition */ public function getCondition() { } /** * @param bool */ public function setVisibleByDefault($visibleByDefault) { } /** * @return bool */ public function getVisibleByDefault() { } /** * @param string[] */ public function setVisibleValues($visibleValues) { } /** * @return string[] */ public function getVisibleValues() { } } class PivotFilterSpec extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $columnOffsetIndex; protected $dataSourceColumnReferenceType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference::class; protected $dataSourceColumnReferenceDataType = ''; protected $filterCriteriaType = \ForminatorGoogleAddon\Google\Service\Sheets\PivotFilterCriteria::class; protected $filterCriteriaDataType = ''; /** * @param int */ public function setColumnOffsetIndex($columnOffsetIndex) { } /** * @return int */ public function getColumnOffsetIndex() { } /** * @param DataSourceColumnReference */ public function setDataSourceColumnReference(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference $dataSourceColumnReference) { } /** * @return DataSourceColumnReference */ public function getDataSourceColumnReference() { } /** * @param PivotFilterCriteria */ public function setFilterCriteria(\ForminatorGoogleAddon\Google\Service\Sheets\PivotFilterCriteria $filterCriteria) { } /** * @return PivotFilterCriteria */ public function getFilterCriteria() { } } class PivotGroup extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'valueMetadata'; protected $dataSourceColumnReferenceType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference::class; protected $dataSourceColumnReferenceDataType = ''; protected $groupLimitType = \ForminatorGoogleAddon\Google\Service\Sheets\PivotGroupLimit::class; protected $groupLimitDataType = ''; protected $groupRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\PivotGroupRule::class; protected $groupRuleDataType = ''; /** * @var string */ public $label; /** * @var bool */ public $repeatHeadings; /** * @var bool */ public $showTotals; /** * @var string */ public $sortOrder; /** * @var int */ public $sourceColumnOffset; protected $valueBucketType = \ForminatorGoogleAddon\Google\Service\Sheets\PivotGroupSortValueBucket::class; protected $valueBucketDataType = ''; protected $valueMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\PivotGroupValueMetadata::class; protected $valueMetadataDataType = 'array'; /** * @param DataSourceColumnReference */ public function setDataSourceColumnReference(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference $dataSourceColumnReference) { } /** * @return DataSourceColumnReference */ public function getDataSourceColumnReference() { } /** * @param PivotGroupLimit */ public function setGroupLimit(\ForminatorGoogleAddon\Google\Service\Sheets\PivotGroupLimit $groupLimit) { } /** * @return PivotGroupLimit */ public function getGroupLimit() { } /** * @param PivotGroupRule */ public function setGroupRule(\ForminatorGoogleAddon\Google\Service\Sheets\PivotGroupRule $groupRule) { } /** * @return PivotGroupRule */ public function getGroupRule() { } /** * @param string */ public function setLabel($label) { } /** * @return string */ public function getLabel() { } /** * @param bool */ public function setRepeatHeadings($repeatHeadings) { } /** * @return bool */ public function getRepeatHeadings() { } /** * @param bool */ public function setShowTotals($showTotals) { } /** * @return bool */ public function getShowTotals() { } /** * @param string */ public function setSortOrder($sortOrder) { } /** * @return string */ public function getSortOrder() { } /** * @param int */ public function setSourceColumnOffset($sourceColumnOffset) { } /** * @return int */ public function getSourceColumnOffset() { } /** * @param PivotGroupSortValueBucket */ public function setValueBucket(\ForminatorGoogleAddon\Google\Service\Sheets\PivotGroupSortValueBucket $valueBucket) { } /** * @return PivotGroupSortValueBucket */ public function getValueBucket() { } /** * @param PivotGroupValueMetadata[] */ public function setValueMetadata($valueMetadata) { } /** * @return PivotGroupValueMetadata[] */ public function getValueMetadata() { } } class PivotGroupLimit extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $applyOrder; /** * @var int */ public $countLimit; /** * @param int */ public function setApplyOrder($applyOrder) { } /** * @return int */ public function getApplyOrder() { } /** * @param int */ public function setCountLimit($countLimit) { } /** * @return int */ public function getCountLimit() { } } class PivotGroupRule extends \ForminatorGoogleAddon\Google\Model { protected $dateTimeRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\DateTimeRule::class; protected $dateTimeRuleDataType = ''; protected $histogramRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\HistogramRule::class; protected $histogramRuleDataType = ''; protected $manualRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\ManualRule::class; protected $manualRuleDataType = ''; /** * @param DateTimeRule */ public function setDateTimeRule(\ForminatorGoogleAddon\Google\Service\Sheets\DateTimeRule $dateTimeRule) { } /** * @return DateTimeRule */ public function getDateTimeRule() { } /** * @param HistogramRule */ public function setHistogramRule(\ForminatorGoogleAddon\Google\Service\Sheets\HistogramRule $histogramRule) { } /** * @return HistogramRule */ public function getHistogramRule() { } /** * @param ManualRule */ public function setManualRule(\ForminatorGoogleAddon\Google\Service\Sheets\ManualRule $manualRule) { } /** * @return ManualRule */ public function getManualRule() { } } class PivotGroupSortValueBucket extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'buckets'; protected $bucketsType = \ForminatorGoogleAddon\Google\Service\Sheets\ExtendedValue::class; protected $bucketsDataType = 'array'; /** * @var int */ public $valuesIndex; /** * @param ExtendedValue[] */ public function setBuckets($buckets) { } /** * @return ExtendedValue[] */ public function getBuckets() { } /** * @param int */ public function setValuesIndex($valuesIndex) { } /** * @return int */ public function getValuesIndex() { } } class PivotGroupValueMetadata extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $collapsed; protected $valueType = \ForminatorGoogleAddon\Google\Service\Sheets\ExtendedValue::class; protected $valueDataType = ''; /** * @param bool */ public function setCollapsed($collapsed) { } /** * @return bool */ public function getCollapsed() { } /** * @param ExtendedValue */ public function setValue(\ForminatorGoogleAddon\Google\Service\Sheets\ExtendedValue $value) { } /** * @return ExtendedValue */ public function getValue() { } } class PivotTable extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'values'; protected $columnsType = \ForminatorGoogleAddon\Google\Service\Sheets\PivotGroup::class; protected $columnsDataType = 'array'; protected $criteriaType = \ForminatorGoogleAddon\Google\Service\Sheets\PivotFilterCriteria::class; protected $criteriaDataType = 'map'; protected $dataExecutionStatusType = \ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus::class; protected $dataExecutionStatusDataType = ''; /** * @var string */ public $dataSourceId; protected $filterSpecsType = \ForminatorGoogleAddon\Google\Service\Sheets\PivotFilterSpec::class; protected $filterSpecsDataType = 'array'; protected $rowsType = \ForminatorGoogleAddon\Google\Service\Sheets\PivotGroup::class; protected $rowsDataType = 'array'; protected $sourceType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $sourceDataType = ''; /** * @var string */ public $valueLayout; protected $valuesType = \ForminatorGoogleAddon\Google\Service\Sheets\PivotValue::class; protected $valuesDataType = 'array'; /** * @param PivotGroup[] */ public function setColumns($columns) { } /** * @return PivotGroup[] */ public function getColumns() { } /** * @param PivotFilterCriteria[] */ public function setCriteria($criteria) { } /** * @return PivotFilterCriteria[] */ public function getCriteria() { } /** * @param DataExecutionStatus */ public function setDataExecutionStatus(\ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus $dataExecutionStatus) { } /** * @return DataExecutionStatus */ public function getDataExecutionStatus() { } /** * @param string */ public function setDataSourceId($dataSourceId) { } /** * @return string */ public function getDataSourceId() { } /** * @param PivotFilterSpec[] */ public function setFilterSpecs($filterSpecs) { } /** * @return PivotFilterSpec[] */ public function getFilterSpecs() { } /** * @param PivotGroup[] */ public function setRows($rows) { } /** * @return PivotGroup[] */ public function getRows() { } /** * @param GridRange */ public function setSource(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $source) { } /** * @return GridRange */ public function getSource() { } /** * @param string */ public function setValueLayout($valueLayout) { } /** * @return string */ public function getValueLayout() { } /** * @param PivotValue[] */ public function setValues($values) { } /** * @return PivotValue[] */ public function getValues() { } } class PivotValue extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $calculatedDisplayType; protected $dataSourceColumnReferenceType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference::class; protected $dataSourceColumnReferenceDataType = ''; /** * @var string */ public $formula; /** * @var string */ public $name; /** * @var int */ public $sourceColumnOffset; /** * @var string */ public $summarizeFunction; /** * @param string */ public function setCalculatedDisplayType($calculatedDisplayType) { } /** * @return string */ public function getCalculatedDisplayType() { } /** * @param DataSourceColumnReference */ public function setDataSourceColumnReference(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference $dataSourceColumnReference) { } /** * @return DataSourceColumnReference */ public function getDataSourceColumnReference() { } /** * @param string */ public function setFormula($formula) { } /** * @return string */ public function getFormula() { } /** * @param string */ public function setName($name) { } /** * @return string */ public function getName() { } /** * @param int */ public function setSourceColumnOffset($sourceColumnOffset) { } /** * @return int */ public function getSourceColumnOffset() { } /** * @param string */ public function setSummarizeFunction($summarizeFunction) { } /** * @return string */ public function getSummarizeFunction() { } } class PointStyle extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $shape; public $size; /** * @param string */ public function setShape($shape) { } /** * @return string */ public function getShape() { } public function setSize($size) { } public function getSize() { } } class ProtectedRange extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'unprotectedRanges'; /** * @var string */ public $description; protected $editorsType = \ForminatorGoogleAddon\Google\Service\Sheets\Editors::class; protected $editorsDataType = ''; /** * @var string */ public $namedRangeId; /** * @var int */ public $protectedRangeId; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; /** * @var bool */ public $requestingUserCanEdit; protected $unprotectedRangesType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $unprotectedRangesDataType = 'array'; /** * @var bool */ public $warningOnly; /** * @param string */ public function setDescription($description) { } /** * @return string */ public function getDescription() { } /** * @param Editors */ public function setEditors(\ForminatorGoogleAddon\Google\Service\Sheets\Editors $editors) { } /** * @return Editors */ public function getEditors() { } /** * @param string */ public function setNamedRangeId($namedRangeId) { } /** * @return string */ public function getNamedRangeId() { } /** * @param int */ public function setProtectedRangeId($protectedRangeId) { } /** * @return int */ public function getProtectedRangeId() { } /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } /** * @param bool */ public function setRequestingUserCanEdit($requestingUserCanEdit) { } /** * @return bool */ public function getRequestingUserCanEdit() { } /** * @param GridRange[] */ public function setUnprotectedRanges($unprotectedRanges) { } /** * @return GridRange[] */ public function getUnprotectedRanges() { } /** * @param bool */ public function setWarningOnly($warningOnly) { } /** * @return bool */ public function getWarningOnly() { } } class RandomizeRangeRequest extends \ForminatorGoogleAddon\Google\Model { protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } } class RefreshCancellationStatus extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $errorCode; /** * @var string */ public $state; /** * @param string */ public function setErrorCode($errorCode) { } /** * @return string */ public function getErrorCode() { } /** * @param string */ public function setState($state) { } /** * @return string */ public function getState() { } } class RefreshDataSourceObjectExecutionStatus extends \ForminatorGoogleAddon\Google\Model { protected $dataExecutionStatusType = \ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus::class; protected $dataExecutionStatusDataType = ''; protected $referenceType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceObjectReference::class; protected $referenceDataType = ''; /** * @param DataExecutionStatus */ public function setDataExecutionStatus(\ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus $dataExecutionStatus) { } /** * @return DataExecutionStatus */ public function getDataExecutionStatus() { } /** * @param DataSourceObjectReference */ public function setReference(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceObjectReference $reference) { } /** * @return DataSourceObjectReference */ public function getReference() { } } class RefreshDataSourceRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $dataSourceId; /** * @var bool */ public $force; /** * @var bool */ public $isAll; protected $referencesType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceObjectReferences::class; protected $referencesDataType = ''; /** * @param string */ public function setDataSourceId($dataSourceId) { } /** * @return string */ public function getDataSourceId() { } /** * @param bool */ public function setForce($force) { } /** * @return bool */ public function getForce() { } /** * @param bool */ public function setIsAll($isAll) { } /** * @return bool */ public function getIsAll() { } /** * @param DataSourceObjectReferences */ public function setReferences(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceObjectReferences $references) { } /** * @return DataSourceObjectReferences */ public function getReferences() { } } class RefreshDataSourceResponse extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'statuses'; protected $statusesType = \ForminatorGoogleAddon\Google\Service\Sheets\RefreshDataSourceObjectExecutionStatus::class; protected $statusesDataType = 'array'; /** * @param RefreshDataSourceObjectExecutionStatus[] */ public function setStatuses($statuses) { } /** * @return RefreshDataSourceObjectExecutionStatus[] */ public function getStatuses() { } } class RepeatCellRequest extends \ForminatorGoogleAddon\Google\Model { protected $cellType = \ForminatorGoogleAddon\Google\Service\Sheets\CellData::class; protected $cellDataType = ''; /** * @var string */ public $fields; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; /** * @param CellData */ public function setCell(\ForminatorGoogleAddon\Google\Service\Sheets\CellData $cell) { } /** * @return CellData */ public function getCell() { } /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } } class Request extends \ForminatorGoogleAddon\Google\Model { protected $addBandingType = \ForminatorGoogleAddon\Google\Service\Sheets\AddBandingRequest::class; protected $addBandingDataType = ''; protected $addChartType = \ForminatorGoogleAddon\Google\Service\Sheets\AddChartRequest::class; protected $addChartDataType = ''; protected $addConditionalFormatRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\AddConditionalFormatRuleRequest::class; protected $addConditionalFormatRuleDataType = ''; protected $addDataSourceType = \ForminatorGoogleAddon\Google\Service\Sheets\AddDataSourceRequest::class; protected $addDataSourceDataType = ''; protected $addDimensionGroupType = \ForminatorGoogleAddon\Google\Service\Sheets\AddDimensionGroupRequest::class; protected $addDimensionGroupDataType = ''; protected $addFilterViewType = \ForminatorGoogleAddon\Google\Service\Sheets\AddFilterViewRequest::class; protected $addFilterViewDataType = ''; protected $addNamedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\AddNamedRangeRequest::class; protected $addNamedRangeDataType = ''; protected $addProtectedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\AddProtectedRangeRequest::class; protected $addProtectedRangeDataType = ''; protected $addSheetType = \ForminatorGoogleAddon\Google\Service\Sheets\AddSheetRequest::class; protected $addSheetDataType = ''; protected $addSlicerType = \ForminatorGoogleAddon\Google\Service\Sheets\AddSlicerRequest::class; protected $addSlicerDataType = ''; protected $appendCellsType = \ForminatorGoogleAddon\Google\Service\Sheets\AppendCellsRequest::class; protected $appendCellsDataType = ''; protected $appendDimensionType = \ForminatorGoogleAddon\Google\Service\Sheets\AppendDimensionRequest::class; protected $appendDimensionDataType = ''; protected $autoFillType = \ForminatorGoogleAddon\Google\Service\Sheets\AutoFillRequest::class; protected $autoFillDataType = ''; protected $autoResizeDimensionsType = \ForminatorGoogleAddon\Google\Service\Sheets\AutoResizeDimensionsRequest::class; protected $autoResizeDimensionsDataType = ''; protected $cancelDataSourceRefreshType = \ForminatorGoogleAddon\Google\Service\Sheets\CancelDataSourceRefreshRequest::class; protected $cancelDataSourceRefreshDataType = ''; protected $clearBasicFilterType = \ForminatorGoogleAddon\Google\Service\Sheets\ClearBasicFilterRequest::class; protected $clearBasicFilterDataType = ''; protected $copyPasteType = \ForminatorGoogleAddon\Google\Service\Sheets\CopyPasteRequest::class; protected $copyPasteDataType = ''; protected $createDeveloperMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\CreateDeveloperMetadataRequest::class; protected $createDeveloperMetadataDataType = ''; protected $cutPasteType = \ForminatorGoogleAddon\Google\Service\Sheets\CutPasteRequest::class; protected $cutPasteDataType = ''; protected $deleteBandingType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteBandingRequest::class; protected $deleteBandingDataType = ''; protected $deleteConditionalFormatRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteConditionalFormatRuleRequest::class; protected $deleteConditionalFormatRuleDataType = ''; protected $deleteDataSourceType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteDataSourceRequest::class; protected $deleteDataSourceDataType = ''; protected $deleteDeveloperMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteDeveloperMetadataRequest::class; protected $deleteDeveloperMetadataDataType = ''; protected $deleteDimensionType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteDimensionRequest::class; protected $deleteDimensionDataType = ''; protected $deleteDimensionGroupType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteDimensionGroupRequest::class; protected $deleteDimensionGroupDataType = ''; protected $deleteDuplicatesType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteDuplicatesRequest::class; protected $deleteDuplicatesDataType = ''; protected $deleteEmbeddedObjectType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteEmbeddedObjectRequest::class; protected $deleteEmbeddedObjectDataType = ''; protected $deleteFilterViewType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteFilterViewRequest::class; protected $deleteFilterViewDataType = ''; protected $deleteNamedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteNamedRangeRequest::class; protected $deleteNamedRangeDataType = ''; protected $deleteProtectedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteProtectedRangeRequest::class; protected $deleteProtectedRangeDataType = ''; protected $deleteRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteRangeRequest::class; protected $deleteRangeDataType = ''; protected $deleteSheetType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteSheetRequest::class; protected $deleteSheetDataType = ''; protected $duplicateFilterViewType = \ForminatorGoogleAddon\Google\Service\Sheets\DuplicateFilterViewRequest::class; protected $duplicateFilterViewDataType = ''; protected $duplicateSheetType = \ForminatorGoogleAddon\Google\Service\Sheets\DuplicateSheetRequest::class; protected $duplicateSheetDataType = ''; protected $findReplaceType = \ForminatorGoogleAddon\Google\Service\Sheets\FindReplaceRequest::class; protected $findReplaceDataType = ''; protected $insertDimensionType = \ForminatorGoogleAddon\Google\Service\Sheets\InsertDimensionRequest::class; protected $insertDimensionDataType = ''; protected $insertRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\InsertRangeRequest::class; protected $insertRangeDataType = ''; protected $mergeCellsType = \ForminatorGoogleAddon\Google\Service\Sheets\MergeCellsRequest::class; protected $mergeCellsDataType = ''; protected $moveDimensionType = \ForminatorGoogleAddon\Google\Service\Sheets\MoveDimensionRequest::class; protected $moveDimensionDataType = ''; protected $pasteDataType = \ForminatorGoogleAddon\Google\Service\Sheets\PasteDataRequest::class; protected $pasteDataDataType = ''; protected $randomizeRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\RandomizeRangeRequest::class; protected $randomizeRangeDataType = ''; protected $refreshDataSourceType = \ForminatorGoogleAddon\Google\Service\Sheets\RefreshDataSourceRequest::class; protected $refreshDataSourceDataType = ''; protected $repeatCellType = \ForminatorGoogleAddon\Google\Service\Sheets\RepeatCellRequest::class; protected $repeatCellDataType = ''; protected $setBasicFilterType = \ForminatorGoogleAddon\Google\Service\Sheets\SetBasicFilterRequest::class; protected $setBasicFilterDataType = ''; protected $setDataValidationType = \ForminatorGoogleAddon\Google\Service\Sheets\SetDataValidationRequest::class; protected $setDataValidationDataType = ''; protected $sortRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\SortRangeRequest::class; protected $sortRangeDataType = ''; protected $textToColumnsType = \ForminatorGoogleAddon\Google\Service\Sheets\TextToColumnsRequest::class; protected $textToColumnsDataType = ''; protected $trimWhitespaceType = \ForminatorGoogleAddon\Google\Service\Sheets\TrimWhitespaceRequest::class; protected $trimWhitespaceDataType = ''; protected $unmergeCellsType = \ForminatorGoogleAddon\Google\Service\Sheets\UnmergeCellsRequest::class; protected $unmergeCellsDataType = ''; protected $updateBandingType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateBandingRequest::class; protected $updateBandingDataType = ''; protected $updateBordersType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateBordersRequest::class; protected $updateBordersDataType = ''; protected $updateCellsType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateCellsRequest::class; protected $updateCellsDataType = ''; protected $updateChartSpecType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateChartSpecRequest::class; protected $updateChartSpecDataType = ''; protected $updateConditionalFormatRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateConditionalFormatRuleRequest::class; protected $updateConditionalFormatRuleDataType = ''; protected $updateDataSourceType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateDataSourceRequest::class; protected $updateDataSourceDataType = ''; protected $updateDeveloperMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateDeveloperMetadataRequest::class; protected $updateDeveloperMetadataDataType = ''; protected $updateDimensionGroupType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateDimensionGroupRequest::class; protected $updateDimensionGroupDataType = ''; protected $updateDimensionPropertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateDimensionPropertiesRequest::class; protected $updateDimensionPropertiesDataType = ''; protected $updateEmbeddedObjectBorderType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateEmbeddedObjectBorderRequest::class; protected $updateEmbeddedObjectBorderDataType = ''; protected $updateEmbeddedObjectPositionType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateEmbeddedObjectPositionRequest::class; protected $updateEmbeddedObjectPositionDataType = ''; protected $updateFilterViewType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateFilterViewRequest::class; protected $updateFilterViewDataType = ''; protected $updateNamedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateNamedRangeRequest::class; protected $updateNamedRangeDataType = ''; protected $updateProtectedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateProtectedRangeRequest::class; protected $updateProtectedRangeDataType = ''; protected $updateSheetPropertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateSheetPropertiesRequest::class; protected $updateSheetPropertiesDataType = ''; protected $updateSlicerSpecType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateSlicerSpecRequest::class; protected $updateSlicerSpecDataType = ''; protected $updateSpreadsheetPropertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateSpreadsheetPropertiesRequest::class; protected $updateSpreadsheetPropertiesDataType = ''; /** * @param AddBandingRequest */ public function setAddBanding(\ForminatorGoogleAddon\Google\Service\Sheets\AddBandingRequest $addBanding) { } /** * @return AddBandingRequest */ public function getAddBanding() { } /** * @param AddChartRequest */ public function setAddChart(\ForminatorGoogleAddon\Google\Service\Sheets\AddChartRequest $addChart) { } /** * @return AddChartRequest */ public function getAddChart() { } /** * @param AddConditionalFormatRuleRequest */ public function setAddConditionalFormatRule(\ForminatorGoogleAddon\Google\Service\Sheets\AddConditionalFormatRuleRequest $addConditionalFormatRule) { } /** * @return AddConditionalFormatRuleRequest */ public function getAddConditionalFormatRule() { } /** * @param AddDataSourceRequest */ public function setAddDataSource(\ForminatorGoogleAddon\Google\Service\Sheets\AddDataSourceRequest $addDataSource) { } /** * @return AddDataSourceRequest */ public function getAddDataSource() { } /** * @param AddDimensionGroupRequest */ public function setAddDimensionGroup(\ForminatorGoogleAddon\Google\Service\Sheets\AddDimensionGroupRequest $addDimensionGroup) { } /** * @return AddDimensionGroupRequest */ public function getAddDimensionGroup() { } /** * @param AddFilterViewRequest */ public function setAddFilterView(\ForminatorGoogleAddon\Google\Service\Sheets\AddFilterViewRequest $addFilterView) { } /** * @return AddFilterViewRequest */ public function getAddFilterView() { } /** * @param AddNamedRangeRequest */ public function setAddNamedRange(\ForminatorGoogleAddon\Google\Service\Sheets\AddNamedRangeRequest $addNamedRange) { } /** * @return AddNamedRangeRequest */ public function getAddNamedRange() { } /** * @param AddProtectedRangeRequest */ public function setAddProtectedRange(\ForminatorGoogleAddon\Google\Service\Sheets\AddProtectedRangeRequest $addProtectedRange) { } /** * @return AddProtectedRangeRequest */ public function getAddProtectedRange() { } /** * @param AddSheetRequest */ public function setAddSheet(\ForminatorGoogleAddon\Google\Service\Sheets\AddSheetRequest $addSheet) { } /** * @return AddSheetRequest */ public function getAddSheet() { } /** * @param AddSlicerRequest */ public function setAddSlicer(\ForminatorGoogleAddon\Google\Service\Sheets\AddSlicerRequest $addSlicer) { } /** * @return AddSlicerRequest */ public function getAddSlicer() { } /** * @param AppendCellsRequest */ public function setAppendCells(\ForminatorGoogleAddon\Google\Service\Sheets\AppendCellsRequest $appendCells) { } /** * @return AppendCellsRequest */ public function getAppendCells() { } /** * @param AppendDimensionRequest */ public function setAppendDimension(\ForminatorGoogleAddon\Google\Service\Sheets\AppendDimensionRequest $appendDimension) { } /** * @return AppendDimensionRequest */ public function getAppendDimension() { } /** * @param AutoFillRequest */ public function setAutoFill(\ForminatorGoogleAddon\Google\Service\Sheets\AutoFillRequest $autoFill) { } /** * @return AutoFillRequest */ public function getAutoFill() { } /** * @param AutoResizeDimensionsRequest */ public function setAutoResizeDimensions(\ForminatorGoogleAddon\Google\Service\Sheets\AutoResizeDimensionsRequest $autoResizeDimensions) { } /** * @return AutoResizeDimensionsRequest */ public function getAutoResizeDimensions() { } /** * @param CancelDataSourceRefreshRequest */ public function setCancelDataSourceRefresh(\ForminatorGoogleAddon\Google\Service\Sheets\CancelDataSourceRefreshRequest $cancelDataSourceRefresh) { } /** * @return CancelDataSourceRefreshRequest */ public function getCancelDataSourceRefresh() { } /** * @param ClearBasicFilterRequest */ public function setClearBasicFilter(\ForminatorGoogleAddon\Google\Service\Sheets\ClearBasicFilterRequest $clearBasicFilter) { } /** * @return ClearBasicFilterRequest */ public function getClearBasicFilter() { } /** * @param CopyPasteRequest */ public function setCopyPaste(\ForminatorGoogleAddon\Google\Service\Sheets\CopyPasteRequest $copyPaste) { } /** * @return CopyPasteRequest */ public function getCopyPaste() { } /** * @param CreateDeveloperMetadataRequest */ public function setCreateDeveloperMetadata(\ForminatorGoogleAddon\Google\Service\Sheets\CreateDeveloperMetadataRequest $createDeveloperMetadata) { } /** * @return CreateDeveloperMetadataRequest */ public function getCreateDeveloperMetadata() { } /** * @param CutPasteRequest */ public function setCutPaste(\ForminatorGoogleAddon\Google\Service\Sheets\CutPasteRequest $cutPaste) { } /** * @return CutPasteRequest */ public function getCutPaste() { } /** * @param DeleteBandingRequest */ public function setDeleteBanding(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteBandingRequest $deleteBanding) { } /** * @return DeleteBandingRequest */ public function getDeleteBanding() { } /** * @param DeleteConditionalFormatRuleRequest */ public function setDeleteConditionalFormatRule(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteConditionalFormatRuleRequest $deleteConditionalFormatRule) { } /** * @return DeleteConditionalFormatRuleRequest */ public function getDeleteConditionalFormatRule() { } /** * @param DeleteDataSourceRequest */ public function setDeleteDataSource(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteDataSourceRequest $deleteDataSource) { } /** * @return DeleteDataSourceRequest */ public function getDeleteDataSource() { } /** * @param DeleteDeveloperMetadataRequest */ public function setDeleteDeveloperMetadata(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteDeveloperMetadataRequest $deleteDeveloperMetadata) { } /** * @return DeleteDeveloperMetadataRequest */ public function getDeleteDeveloperMetadata() { } /** * @param DeleteDimensionRequest */ public function setDeleteDimension(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteDimensionRequest $deleteDimension) { } /** * @return DeleteDimensionRequest */ public function getDeleteDimension() { } /** * @param DeleteDimensionGroupRequest */ public function setDeleteDimensionGroup(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteDimensionGroupRequest $deleteDimensionGroup) { } /** * @return DeleteDimensionGroupRequest */ public function getDeleteDimensionGroup() { } /** * @param DeleteDuplicatesRequest */ public function setDeleteDuplicates(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteDuplicatesRequest $deleteDuplicates) { } /** * @return DeleteDuplicatesRequest */ public function getDeleteDuplicates() { } /** * @param DeleteEmbeddedObjectRequest */ public function setDeleteEmbeddedObject(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteEmbeddedObjectRequest $deleteEmbeddedObject) { } /** * @return DeleteEmbeddedObjectRequest */ public function getDeleteEmbeddedObject() { } /** * @param DeleteFilterViewRequest */ public function setDeleteFilterView(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteFilterViewRequest $deleteFilterView) { } /** * @return DeleteFilterViewRequest */ public function getDeleteFilterView() { } /** * @param DeleteNamedRangeRequest */ public function setDeleteNamedRange(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteNamedRangeRequest $deleteNamedRange) { } /** * @return DeleteNamedRangeRequest */ public function getDeleteNamedRange() { } /** * @param DeleteProtectedRangeRequest */ public function setDeleteProtectedRange(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteProtectedRangeRequest $deleteProtectedRange) { } /** * @return DeleteProtectedRangeRequest */ public function getDeleteProtectedRange() { } /** * @param DeleteRangeRequest */ public function setDeleteRange(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteRangeRequest $deleteRange) { } /** * @return DeleteRangeRequest */ public function getDeleteRange() { } /** * @param DeleteSheetRequest */ public function setDeleteSheet(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteSheetRequest $deleteSheet) { } /** * @return DeleteSheetRequest */ public function getDeleteSheet() { } /** * @param DuplicateFilterViewRequest */ public function setDuplicateFilterView(\ForminatorGoogleAddon\Google\Service\Sheets\DuplicateFilterViewRequest $duplicateFilterView) { } /** * @return DuplicateFilterViewRequest */ public function getDuplicateFilterView() { } /** * @param DuplicateSheetRequest */ public function setDuplicateSheet(\ForminatorGoogleAddon\Google\Service\Sheets\DuplicateSheetRequest $duplicateSheet) { } /** * @return DuplicateSheetRequest */ public function getDuplicateSheet() { } /** * @param FindReplaceRequest */ public function setFindReplace(\ForminatorGoogleAddon\Google\Service\Sheets\FindReplaceRequest $findReplace) { } /** * @return FindReplaceRequest */ public function getFindReplace() { } /** * @param InsertDimensionRequest */ public function setInsertDimension(\ForminatorGoogleAddon\Google\Service\Sheets\InsertDimensionRequest $insertDimension) { } /** * @return InsertDimensionRequest */ public function getInsertDimension() { } /** * @param InsertRangeRequest */ public function setInsertRange(\ForminatorGoogleAddon\Google\Service\Sheets\InsertRangeRequest $insertRange) { } /** * @return InsertRangeRequest */ public function getInsertRange() { } /** * @param MergeCellsRequest */ public function setMergeCells(\ForminatorGoogleAddon\Google\Service\Sheets\MergeCellsRequest $mergeCells) { } /** * @return MergeCellsRequest */ public function getMergeCells() { } /** * @param MoveDimensionRequest */ public function setMoveDimension(\ForminatorGoogleAddon\Google\Service\Sheets\MoveDimensionRequest $moveDimension) { } /** * @return MoveDimensionRequest */ public function getMoveDimension() { } /** * @param PasteDataRequest */ public function setPasteData(\ForminatorGoogleAddon\Google\Service\Sheets\PasteDataRequest $pasteData) { } /** * @return PasteDataRequest */ public function getPasteData() { } /** * @param RandomizeRangeRequest */ public function setRandomizeRange(\ForminatorGoogleAddon\Google\Service\Sheets\RandomizeRangeRequest $randomizeRange) { } /** * @return RandomizeRangeRequest */ public function getRandomizeRange() { } /** * @param RefreshDataSourceRequest */ public function setRefreshDataSource(\ForminatorGoogleAddon\Google\Service\Sheets\RefreshDataSourceRequest $refreshDataSource) { } /** * @return RefreshDataSourceRequest */ public function getRefreshDataSource() { } /** * @param RepeatCellRequest */ public function setRepeatCell(\ForminatorGoogleAddon\Google\Service\Sheets\RepeatCellRequest $repeatCell) { } /** * @return RepeatCellRequest */ public function getRepeatCell() { } /** * @param SetBasicFilterRequest */ public function setSetBasicFilter(\ForminatorGoogleAddon\Google\Service\Sheets\SetBasicFilterRequest $setBasicFilter) { } /** * @return SetBasicFilterRequest */ public function getSetBasicFilter() { } /** * @param SetDataValidationRequest */ public function setSetDataValidation(\ForminatorGoogleAddon\Google\Service\Sheets\SetDataValidationRequest $setDataValidation) { } /** * @return SetDataValidationRequest */ public function getSetDataValidation() { } /** * @param SortRangeRequest */ public function setSortRange(\ForminatorGoogleAddon\Google\Service\Sheets\SortRangeRequest $sortRange) { } /** * @return SortRangeRequest */ public function getSortRange() { } /** * @param TextToColumnsRequest */ public function setTextToColumns(\ForminatorGoogleAddon\Google\Service\Sheets\TextToColumnsRequest $textToColumns) { } /** * @return TextToColumnsRequest */ public function getTextToColumns() { } /** * @param TrimWhitespaceRequest */ public function setTrimWhitespace(\ForminatorGoogleAddon\Google\Service\Sheets\TrimWhitespaceRequest $trimWhitespace) { } /** * @return TrimWhitespaceRequest */ public function getTrimWhitespace() { } /** * @param UnmergeCellsRequest */ public function setUnmergeCells(\ForminatorGoogleAddon\Google\Service\Sheets\UnmergeCellsRequest $unmergeCells) { } /** * @return UnmergeCellsRequest */ public function getUnmergeCells() { } /** * @param UpdateBandingRequest */ public function setUpdateBanding(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateBandingRequest $updateBanding) { } /** * @return UpdateBandingRequest */ public function getUpdateBanding() { } /** * @param UpdateBordersRequest */ public function setUpdateBorders(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateBordersRequest $updateBorders) { } /** * @return UpdateBordersRequest */ public function getUpdateBorders() { } /** * @param UpdateCellsRequest */ public function setUpdateCells(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateCellsRequest $updateCells) { } /** * @return UpdateCellsRequest */ public function getUpdateCells() { } /** * @param UpdateChartSpecRequest */ public function setUpdateChartSpec(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateChartSpecRequest $updateChartSpec) { } /** * @return UpdateChartSpecRequest */ public function getUpdateChartSpec() { } /** * @param UpdateConditionalFormatRuleRequest */ public function setUpdateConditionalFormatRule(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateConditionalFormatRuleRequest $updateConditionalFormatRule) { } /** * @return UpdateConditionalFormatRuleRequest */ public function getUpdateConditionalFormatRule() { } /** * @param UpdateDataSourceRequest */ public function setUpdateDataSource(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateDataSourceRequest $updateDataSource) { } /** * @return UpdateDataSourceRequest */ public function getUpdateDataSource() { } /** * @param UpdateDeveloperMetadataRequest */ public function setUpdateDeveloperMetadata(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateDeveloperMetadataRequest $updateDeveloperMetadata) { } /** * @return UpdateDeveloperMetadataRequest */ public function getUpdateDeveloperMetadata() { } /** * @param UpdateDimensionGroupRequest */ public function setUpdateDimensionGroup(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateDimensionGroupRequest $updateDimensionGroup) { } /** * @return UpdateDimensionGroupRequest */ public function getUpdateDimensionGroup() { } /** * @param UpdateDimensionPropertiesRequest */ public function setUpdateDimensionProperties(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateDimensionPropertiesRequest $updateDimensionProperties) { } /** * @return UpdateDimensionPropertiesRequest */ public function getUpdateDimensionProperties() { } /** * @param UpdateEmbeddedObjectBorderRequest */ public function setUpdateEmbeddedObjectBorder(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateEmbeddedObjectBorderRequest $updateEmbeddedObjectBorder) { } /** * @return UpdateEmbeddedObjectBorderRequest */ public function getUpdateEmbeddedObjectBorder() { } /** * @param UpdateEmbeddedObjectPositionRequest */ public function setUpdateEmbeddedObjectPosition(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateEmbeddedObjectPositionRequest $updateEmbeddedObjectPosition) { } /** * @return UpdateEmbeddedObjectPositionRequest */ public function getUpdateEmbeddedObjectPosition() { } /** * @param UpdateFilterViewRequest */ public function setUpdateFilterView(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateFilterViewRequest $updateFilterView) { } /** * @return UpdateFilterViewRequest */ public function getUpdateFilterView() { } /** * @param UpdateNamedRangeRequest */ public function setUpdateNamedRange(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateNamedRangeRequest $updateNamedRange) { } /** * @return UpdateNamedRangeRequest */ public function getUpdateNamedRange() { } /** * @param UpdateProtectedRangeRequest */ public function setUpdateProtectedRange(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateProtectedRangeRequest $updateProtectedRange) { } /** * @return UpdateProtectedRangeRequest */ public function getUpdateProtectedRange() { } /** * @param UpdateSheetPropertiesRequest */ public function setUpdateSheetProperties(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateSheetPropertiesRequest $updateSheetProperties) { } /** * @return UpdateSheetPropertiesRequest */ public function getUpdateSheetProperties() { } /** * @param UpdateSlicerSpecRequest */ public function setUpdateSlicerSpec(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateSlicerSpecRequest $updateSlicerSpec) { } /** * @return UpdateSlicerSpecRequest */ public function getUpdateSlicerSpec() { } /** * @param UpdateSpreadsheetPropertiesRequest */ public function setUpdateSpreadsheetProperties(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateSpreadsheetPropertiesRequest $updateSpreadsheetProperties) { } /** * @return UpdateSpreadsheetPropertiesRequest */ public function getUpdateSpreadsheetProperties() { } } } namespace ForminatorGoogleAddon\Google\Service\Sheets\Resource { /** * The "spreadsheets" collection of methods. * Typical usage is: * * $sheetsService = new Google\Service\Sheets(...); * $spreadsheets = $sheetsService->spreadsheets; * */ class Spreadsheets extends \ForminatorGoogleAddon\Google\Service\Resource { /** * Applies one or more updates to the spreadsheet. Each request is validated * before being applied. If any request is not valid then the entire request * will fail and nothing will be applied. Some requests have replies to give you * some information about how they are applied. The replies will mirror the * requests. For example, if you applied 4 updates and the 3rd one had a reply, * then the response will have 2 empty replies, the actual reply, and another * empty reply, in that order. Due to the collaborative nature of spreadsheets, * it is not guaranteed that the spreadsheet will reflect exactly your changes * after this completes, however it is guaranteed that the updates in the * request will be applied together atomically. Your changes may be altered with * respect to collaborator changes. If there are no collaborators, the * spreadsheet should reflect your changes. (spreadsheets.batchUpdate) * * @param string $spreadsheetId The spreadsheet to apply the updates to. * @param BatchUpdateSpreadsheetRequest $postBody * @param array $optParams Optional parameters. * @return BatchUpdateSpreadsheetResponse * @throws \Google\Service\Exception */ public function batchUpdate($spreadsheetId, \ForminatorGoogleAddon\Google\Service\Sheets\BatchUpdateSpreadsheetRequest $postBody, $optParams = []) { } /** * Creates a spreadsheet, returning the newly created spreadsheet. * (spreadsheets.create) * * @param Spreadsheet $postBody * @param array $optParams Optional parameters. * @return Spreadsheet * @throws \Google\Service\Exception */ public function create(\ForminatorGoogleAddon\Google\Service\Sheets\Spreadsheet $postBody, $optParams = []) { } /** * Returns the spreadsheet at the given ID. The caller must specify the * spreadsheet ID. By default, data within grids is not returned. You can * include grid data in one of 2 ways: * Specify a [field * mask](https://developers.google.com/sheets/api/guides/field-masks) listing * your desired fields using the `fields` URL parameter in HTTP * Set the * includeGridData URL parameter to true. If a field mask is set, the * `includeGridData` parameter is ignored For large spreadsheets, as a best * practice, retrieve only the specific spreadsheet fields that you want. To * retrieve only subsets of spreadsheet data, use the ranges URL parameter. * Ranges are specified using [A1 notation](/sheets/api/guides/concepts#cell). * You can define a single cell (for example, `A1`) or multiple cells (for * example, `A1:D5`). You can also get cells from other sheets within the same * spreadsheet (for example, `Sheet2!A1:C4`) or retrieve multiple ranges at once * (for example, `?ranges=A1:D5&ranges=Sheet2!A1:C4`). Limiting the range * returns only the portions of the spreadsheet that intersect the requested * ranges. (spreadsheets.get) * * @param string $spreadsheetId The spreadsheet to request. * @param array $optParams Optional parameters. * * @opt_param bool includeGridData True if grid data should be returned. This * parameter is ignored if a field mask was set in the request. * @opt_param string ranges The ranges to retrieve from the spreadsheet. * @return Spreadsheet * @throws \Google\Service\Exception */ public function get($spreadsheetId, $optParams = []) { } /** * Returns the spreadsheet at the given ID. The caller must specify the * spreadsheet ID. This method differs from GetSpreadsheet in that it allows * selecting which subsets of spreadsheet data to return by specifying a * dataFilters parameter. Multiple DataFilters can be specified. Specifying one * or more data filters returns the portions of the spreadsheet that intersect * ranges matched by any of the filters. By default, data within grids is not * returned. You can include grid data one of 2 ways: * Specify a [field * mask](https://developers.google.com/sheets/api/guides/field-masks) listing * your desired fields using the `fields` URL parameter in HTTP * Set the * includeGridData parameter to true. If a field mask is set, the * `includeGridData` parameter is ignored For large spreadsheets, as a best * practice, retrieve only the specific spreadsheet fields that you want. * (spreadsheets.getByDataFilter) * * @param string $spreadsheetId The spreadsheet to request. * @param GetSpreadsheetByDataFilterRequest $postBody * @param array $optParams Optional parameters. * @return Spreadsheet * @throws \Google\Service\Exception */ public function getByDataFilter($spreadsheetId, \ForminatorGoogleAddon\Google\Service\Sheets\GetSpreadsheetByDataFilterRequest $postBody, $optParams = []) { } } /** * The "developerMetadata" collection of methods. * Typical usage is: * * $sheetsService = new Google\Service\Sheets(...); * $developerMetadata = $sheetsService->spreadsheets_developerMetadata; * */ class SpreadsheetsDeveloperMetadata extends \ForminatorGoogleAddon\Google\Service\Resource { /** * Returns the developer metadata with the specified ID. The caller must specify * the spreadsheet ID and the developer metadata's unique metadataId. * (developerMetadata.get) * * @param string $spreadsheetId The ID of the spreadsheet to retrieve metadata * from. * @param int $metadataId The ID of the developer metadata to retrieve. * @param array $optParams Optional parameters. * @return DeveloperMetadata * @throws \Google\Service\Exception */ public function get($spreadsheetId, $metadataId, $optParams = []) { } /** * Returns all developer metadata matching the specified DataFilter. If the * provided DataFilter represents a DeveloperMetadataLookup object, this will * return all DeveloperMetadata entries selected by it. If the DataFilter * represents a location in a spreadsheet, this will return all developer * metadata associated with locations intersecting that region. * (developerMetadata.search) * * @param string $spreadsheetId The ID of the spreadsheet to retrieve metadata * from. * @param SearchDeveloperMetadataRequest $postBody * @param array $optParams Optional parameters. * @return SearchDeveloperMetadataResponse * @throws \Google\Service\Exception */ public function search($spreadsheetId, \ForminatorGoogleAddon\Google\Service\Sheets\SearchDeveloperMetadataRequest $postBody, $optParams = []) { } } /** * The "sheets" collection of methods. * Typical usage is: * * $sheetsService = new Google\Service\Sheets(...); * $sheets = $sheetsService->spreadsheets_sheets; * */ class SpreadsheetsSheets extends \ForminatorGoogleAddon\Google\Service\Resource { /** * Copies a single sheet from a spreadsheet to another spreadsheet. Returns the * properties of the newly created sheet. (sheets.copyTo) * * @param string $spreadsheetId The ID of the spreadsheet containing the sheet * to copy. * @param int $sheetId The ID of the sheet to copy. * @param CopySheetToAnotherSpreadsheetRequest $postBody * @param array $optParams Optional parameters. * @return SheetProperties * @throws \Google\Service\Exception */ public function copyTo($spreadsheetId, $sheetId, \ForminatorGoogleAddon\Google\Service\Sheets\CopySheetToAnotherSpreadsheetRequest $postBody, $optParams = []) { } } /** * The "values" collection of methods. * Typical usage is: * * $sheetsService = new Google\Service\Sheets(...); * $values = $sheetsService->spreadsheets_values; * */ class SpreadsheetsValues extends \ForminatorGoogleAddon\Google\Service\Resource { /** * Appends values to a spreadsheet. The input range is used to search for * existing data and find a "table" within that range. Values will be appended * to the next row of the table, starting with the first column of the table. * See the [guide](/sheets/api/guides/values#appending_values) and [sample * code](/sheets/api/samples/writing#append_values) for specific details of how * tables are detected and data is appended. The caller must specify the * spreadsheet ID, range, and a valueInputOption. The `valueInputOption` only * controls how the input data will be added to the sheet (column-wise or row- * wise), it does not influence what cell the data starts being written to. * (values.append) * * @param string $spreadsheetId The ID of the spreadsheet to update. * @param string $range The [A1 notation](/sheets/api/guides/concepts#cell) of a * range to search for a logical table of data. Values are appended after the * last row of the table. * @param ValueRange $postBody * @param array $optParams Optional parameters. * * @opt_param bool includeValuesInResponse Determines if the update response * should include the values of the cells that were appended. By default, * responses do not include the updated values. * @opt_param string insertDataOption How the input data should be inserted. * @opt_param string responseDateTimeRenderOption Determines how dates, times, * and durations in the response should be rendered. This is ignored if * response_value_render_option is FORMATTED_VALUE. The default dateTime render * option is SERIAL_NUMBER. * @opt_param string responseValueRenderOption Determines how values in the * response should be rendered. The default render option is FORMATTED_VALUE. * @opt_param string valueInputOption How the input data should be interpreted. * @return AppendValuesResponse * @throws \Google\Service\Exception */ public function append($spreadsheetId, $range, \ForminatorGoogleAddon\Google\Service\Sheets\ValueRange $postBody, $optParams = []) { } /** * Clears one or more ranges of values from a spreadsheet. The caller must * specify the spreadsheet ID and one or more ranges. Only values are cleared -- * all other properties of the cell (such as formatting and data validation) are * kept. (values.batchClear) * * @param string $spreadsheetId The ID of the spreadsheet to update. * @param BatchClearValuesRequest $postBody * @param array $optParams Optional parameters. * @return BatchClearValuesResponse * @throws \Google\Service\Exception */ public function batchClear($spreadsheetId, \ForminatorGoogleAddon\Google\Service\Sheets\BatchClearValuesRequest $postBody, $optParams = []) { } /** * Clears one or more ranges of values from a spreadsheet. The caller must * specify the spreadsheet ID and one or more DataFilters. Ranges matching any * of the specified data filters will be cleared. Only values are cleared -- all * other properties of the cell (such as formatting, data validation, etc..) are * kept. (values.batchClearByDataFilter) * * @param string $spreadsheetId The ID of the spreadsheet to update. * @param BatchClearValuesByDataFilterRequest $postBody * @param array $optParams Optional parameters. * @return BatchClearValuesByDataFilterResponse * @throws \Google\Service\Exception */ public function batchClearByDataFilter($spreadsheetId, \ForminatorGoogleAddon\Google\Service\Sheets\BatchClearValuesByDataFilterRequest $postBody, $optParams = []) { } /** * Returns one or more ranges of values from a spreadsheet. The caller must * specify the spreadsheet ID and one or more ranges. (values.batchGet) * * @param string $spreadsheetId The ID of the spreadsheet to retrieve data from. * @param array $optParams Optional parameters. * * @opt_param string dateTimeRenderOption How dates, times, and durations should * be represented in the output. This is ignored if value_render_option is * FORMATTED_VALUE. The default dateTime render option is SERIAL_NUMBER. * @opt_param string majorDimension The major dimension that results should use. * For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then * requesting `ranges=["A1:B2"],majorDimension=ROWS` returns `[[1,2],[3,4]]`, * whereas requesting `ranges=["A1:B2"],majorDimension=COLUMNS` returns * `[[1,3],[2,4]]`. * @opt_param string ranges The [A1 notation or R1C1 * notation](/sheets/api/guides/concepts#cell) of the range to retrieve values * from. * @opt_param string valueRenderOption How values should be represented in the * output. The default render option is ValueRenderOption.FORMATTED_VALUE. * @return BatchGetValuesResponse * @throws \Google\Service\Exception */ public function batchGet($spreadsheetId, $optParams = []) { } /** * Returns one or more ranges of values that match the specified data filters. * The caller must specify the spreadsheet ID and one or more DataFilters. * Ranges that match any of the data filters in the request will be returned. * (values.batchGetByDataFilter) * * @param string $spreadsheetId The ID of the spreadsheet to retrieve data from. * @param BatchGetValuesByDataFilterRequest $postBody * @param array $optParams Optional parameters. * @return BatchGetValuesByDataFilterResponse * @throws \Google\Service\Exception */ public function batchGetByDataFilter($spreadsheetId, \ForminatorGoogleAddon\Google\Service\Sheets\BatchGetValuesByDataFilterRequest $postBody, $optParams = []) { } /** * Sets values in one or more ranges of a spreadsheet. The caller must specify * the spreadsheet ID, a valueInputOption, and one or more ValueRanges. * (values.batchUpdate) * * @param string $spreadsheetId The ID of the spreadsheet to update. * @param BatchUpdateValuesRequest $postBody * @param array $optParams Optional parameters. * @return BatchUpdateValuesResponse * @throws \Google\Service\Exception */ public function batchUpdate($spreadsheetId, \ForminatorGoogleAddon\Google\Service\Sheets\BatchUpdateValuesRequest $postBody, $optParams = []) { } /** * Sets values in one or more ranges of a spreadsheet. The caller must specify * the spreadsheet ID, a valueInputOption, and one or more * DataFilterValueRanges. (values.batchUpdateByDataFilter) * * @param string $spreadsheetId The ID of the spreadsheet to update. * @param BatchUpdateValuesByDataFilterRequest $postBody * @param array $optParams Optional parameters. * @return BatchUpdateValuesByDataFilterResponse * @throws \Google\Service\Exception */ public function batchUpdateByDataFilter($spreadsheetId, \ForminatorGoogleAddon\Google\Service\Sheets\BatchUpdateValuesByDataFilterRequest $postBody, $optParams = []) { } /** * Clears values from a spreadsheet. The caller must specify the spreadsheet ID * and range. Only values are cleared -- all other properties of the cell (such * as formatting, data validation, etc..) are kept. (values.clear) * * @param string $spreadsheetId The ID of the spreadsheet to update. * @param string $range The [A1 notation or R1C1 * notation](/sheets/api/guides/concepts#cell) of the values to clear. * @param ClearValuesRequest $postBody * @param array $optParams Optional parameters. * @return ClearValuesResponse * @throws \Google\Service\Exception */ public function clear($spreadsheetId, $range, \ForminatorGoogleAddon\Google\Service\Sheets\ClearValuesRequest $postBody, $optParams = []) { } /** * Returns a range of values from a spreadsheet. The caller must specify the * spreadsheet ID and a range. (values.get) * * @param string $spreadsheetId The ID of the spreadsheet to retrieve data from. * @param string $range The [A1 notation or R1C1 * notation](/sheets/api/guides/concepts#cell) of the range to retrieve values * from. * @param array $optParams Optional parameters. * * @opt_param string dateTimeRenderOption How dates, times, and durations should * be represented in the output. This is ignored if value_render_option is * FORMATTED_VALUE. The default dateTime render option is SERIAL_NUMBER. * @opt_param string majorDimension The major dimension that results should use. * For example, if the spreadsheet data in Sheet1 is: `A1=1,B1=2,A2=3,B2=4`, * then requesting `range=Sheet1!A1:B2?majorDimension=ROWS` returns * `[[1,2],[3,4]]`, whereas requesting * `range=Sheet1!A1:B2?majorDimension=COLUMNS` returns `[[1,3],[2,4]]`. * @opt_param string valueRenderOption How values should be represented in the * output. The default render option is FORMATTED_VALUE. * @return ValueRange * @throws \Google\Service\Exception */ public function get($spreadsheetId, $range, $optParams = []) { } /** * Sets values in a range of a spreadsheet. The caller must specify the * spreadsheet ID, range, and a valueInputOption. (values.update) * * @param string $spreadsheetId The ID of the spreadsheet to update. * @param string $range The [A1 notation](/sheets/api/guides/concepts#cell) of * the values to update. * @param ValueRange $postBody * @param array $optParams Optional parameters. * * @opt_param bool includeValuesInResponse Determines if the update response * should include the values of the cells that were updated. By default, * responses do not include the updated values. If the range to write was larger * than the range actually written, the response includes all values in the * requested range (excluding trailing empty rows and columns). * @opt_param string responseDateTimeRenderOption Determines how dates, times, * and durations in the response should be rendered. This is ignored if * response_value_render_option is FORMATTED_VALUE. The default dateTime render * option is SERIAL_NUMBER. * @opt_param string responseValueRenderOption Determines how values in the * response should be rendered. The default render option is FORMATTED_VALUE. * @opt_param string valueInputOption How the input data should be interpreted. * @return UpdateValuesResponse * @throws \Google\Service\Exception */ public function update($spreadsheetId, $range, \ForminatorGoogleAddon\Google\Service\Sheets\ValueRange $postBody, $optParams = []) { } } } namespace ForminatorGoogleAddon\Google\Service\Sheets { class Response extends \ForminatorGoogleAddon\Google\Model { protected $addBandingType = \ForminatorGoogleAddon\Google\Service\Sheets\AddBandingResponse::class; protected $addBandingDataType = ''; protected $addChartType = \ForminatorGoogleAddon\Google\Service\Sheets\AddChartResponse::class; protected $addChartDataType = ''; protected $addDataSourceType = \ForminatorGoogleAddon\Google\Service\Sheets\AddDataSourceResponse::class; protected $addDataSourceDataType = ''; protected $addDimensionGroupType = \ForminatorGoogleAddon\Google\Service\Sheets\AddDimensionGroupResponse::class; protected $addDimensionGroupDataType = ''; protected $addFilterViewType = \ForminatorGoogleAddon\Google\Service\Sheets\AddFilterViewResponse::class; protected $addFilterViewDataType = ''; protected $addNamedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\AddNamedRangeResponse::class; protected $addNamedRangeDataType = ''; protected $addProtectedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\AddProtectedRangeResponse::class; protected $addProtectedRangeDataType = ''; protected $addSheetType = \ForminatorGoogleAddon\Google\Service\Sheets\AddSheetResponse::class; protected $addSheetDataType = ''; protected $addSlicerType = \ForminatorGoogleAddon\Google\Service\Sheets\AddSlicerResponse::class; protected $addSlicerDataType = ''; protected $cancelDataSourceRefreshType = \ForminatorGoogleAddon\Google\Service\Sheets\CancelDataSourceRefreshResponse::class; protected $cancelDataSourceRefreshDataType = ''; protected $createDeveloperMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\CreateDeveloperMetadataResponse::class; protected $createDeveloperMetadataDataType = ''; protected $deleteConditionalFormatRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteConditionalFormatRuleResponse::class; protected $deleteConditionalFormatRuleDataType = ''; protected $deleteDeveloperMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteDeveloperMetadataResponse::class; protected $deleteDeveloperMetadataDataType = ''; protected $deleteDimensionGroupType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteDimensionGroupResponse::class; protected $deleteDimensionGroupDataType = ''; protected $deleteDuplicatesType = \ForminatorGoogleAddon\Google\Service\Sheets\DeleteDuplicatesResponse::class; protected $deleteDuplicatesDataType = ''; protected $duplicateFilterViewType = \ForminatorGoogleAddon\Google\Service\Sheets\DuplicateFilterViewResponse::class; protected $duplicateFilterViewDataType = ''; protected $duplicateSheetType = \ForminatorGoogleAddon\Google\Service\Sheets\DuplicateSheetResponse::class; protected $duplicateSheetDataType = ''; protected $findReplaceType = \ForminatorGoogleAddon\Google\Service\Sheets\FindReplaceResponse::class; protected $findReplaceDataType = ''; protected $refreshDataSourceType = \ForminatorGoogleAddon\Google\Service\Sheets\RefreshDataSourceResponse::class; protected $refreshDataSourceDataType = ''; protected $trimWhitespaceType = \ForminatorGoogleAddon\Google\Service\Sheets\TrimWhitespaceResponse::class; protected $trimWhitespaceDataType = ''; protected $updateConditionalFormatRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateConditionalFormatRuleResponse::class; protected $updateConditionalFormatRuleDataType = ''; protected $updateDataSourceType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateDataSourceResponse::class; protected $updateDataSourceDataType = ''; protected $updateDeveloperMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateDeveloperMetadataResponse::class; protected $updateDeveloperMetadataDataType = ''; protected $updateEmbeddedObjectPositionType = \ForminatorGoogleAddon\Google\Service\Sheets\UpdateEmbeddedObjectPositionResponse::class; protected $updateEmbeddedObjectPositionDataType = ''; /** * @param AddBandingResponse */ public function setAddBanding(\ForminatorGoogleAddon\Google\Service\Sheets\AddBandingResponse $addBanding) { } /** * @return AddBandingResponse */ public function getAddBanding() { } /** * @param AddChartResponse */ public function setAddChart(\ForminatorGoogleAddon\Google\Service\Sheets\AddChartResponse $addChart) { } /** * @return AddChartResponse */ public function getAddChart() { } /** * @param AddDataSourceResponse */ public function setAddDataSource(\ForminatorGoogleAddon\Google\Service\Sheets\AddDataSourceResponse $addDataSource) { } /** * @return AddDataSourceResponse */ public function getAddDataSource() { } /** * @param AddDimensionGroupResponse */ public function setAddDimensionGroup(\ForminatorGoogleAddon\Google\Service\Sheets\AddDimensionGroupResponse $addDimensionGroup) { } /** * @return AddDimensionGroupResponse */ public function getAddDimensionGroup() { } /** * @param AddFilterViewResponse */ public function setAddFilterView(\ForminatorGoogleAddon\Google\Service\Sheets\AddFilterViewResponse $addFilterView) { } /** * @return AddFilterViewResponse */ public function getAddFilterView() { } /** * @param AddNamedRangeResponse */ public function setAddNamedRange(\ForminatorGoogleAddon\Google\Service\Sheets\AddNamedRangeResponse $addNamedRange) { } /** * @return AddNamedRangeResponse */ public function getAddNamedRange() { } /** * @param AddProtectedRangeResponse */ public function setAddProtectedRange(\ForminatorGoogleAddon\Google\Service\Sheets\AddProtectedRangeResponse $addProtectedRange) { } /** * @return AddProtectedRangeResponse */ public function getAddProtectedRange() { } /** * @param AddSheetResponse */ public function setAddSheet(\ForminatorGoogleAddon\Google\Service\Sheets\AddSheetResponse $addSheet) { } /** * @return AddSheetResponse */ public function getAddSheet() { } /** * @param AddSlicerResponse */ public function setAddSlicer(\ForminatorGoogleAddon\Google\Service\Sheets\AddSlicerResponse $addSlicer) { } /** * @return AddSlicerResponse */ public function getAddSlicer() { } /** * @param CancelDataSourceRefreshResponse */ public function setCancelDataSourceRefresh(\ForminatorGoogleAddon\Google\Service\Sheets\CancelDataSourceRefreshResponse $cancelDataSourceRefresh) { } /** * @return CancelDataSourceRefreshResponse */ public function getCancelDataSourceRefresh() { } /** * @param CreateDeveloperMetadataResponse */ public function setCreateDeveloperMetadata(\ForminatorGoogleAddon\Google\Service\Sheets\CreateDeveloperMetadataResponse $createDeveloperMetadata) { } /** * @return CreateDeveloperMetadataResponse */ public function getCreateDeveloperMetadata() { } /** * @param DeleteConditionalFormatRuleResponse */ public function setDeleteConditionalFormatRule(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteConditionalFormatRuleResponse $deleteConditionalFormatRule) { } /** * @return DeleteConditionalFormatRuleResponse */ public function getDeleteConditionalFormatRule() { } /** * @param DeleteDeveloperMetadataResponse */ public function setDeleteDeveloperMetadata(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteDeveloperMetadataResponse $deleteDeveloperMetadata) { } /** * @return DeleteDeveloperMetadataResponse */ public function getDeleteDeveloperMetadata() { } /** * @param DeleteDimensionGroupResponse */ public function setDeleteDimensionGroup(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteDimensionGroupResponse $deleteDimensionGroup) { } /** * @return DeleteDimensionGroupResponse */ public function getDeleteDimensionGroup() { } /** * @param DeleteDuplicatesResponse */ public function setDeleteDuplicates(\ForminatorGoogleAddon\Google\Service\Sheets\DeleteDuplicatesResponse $deleteDuplicates) { } /** * @return DeleteDuplicatesResponse */ public function getDeleteDuplicates() { } /** * @param DuplicateFilterViewResponse */ public function setDuplicateFilterView(\ForminatorGoogleAddon\Google\Service\Sheets\DuplicateFilterViewResponse $duplicateFilterView) { } /** * @return DuplicateFilterViewResponse */ public function getDuplicateFilterView() { } /** * @param DuplicateSheetResponse */ public function setDuplicateSheet(\ForminatorGoogleAddon\Google\Service\Sheets\DuplicateSheetResponse $duplicateSheet) { } /** * @return DuplicateSheetResponse */ public function getDuplicateSheet() { } /** * @param FindReplaceResponse */ public function setFindReplace(\ForminatorGoogleAddon\Google\Service\Sheets\FindReplaceResponse $findReplace) { } /** * @return FindReplaceResponse */ public function getFindReplace() { } /** * @param RefreshDataSourceResponse */ public function setRefreshDataSource(\ForminatorGoogleAddon\Google\Service\Sheets\RefreshDataSourceResponse $refreshDataSource) { } /** * @return RefreshDataSourceResponse */ public function getRefreshDataSource() { } /** * @param TrimWhitespaceResponse */ public function setTrimWhitespace(\ForminatorGoogleAddon\Google\Service\Sheets\TrimWhitespaceResponse $trimWhitespace) { } /** * @return TrimWhitespaceResponse */ public function getTrimWhitespace() { } /** * @param UpdateConditionalFormatRuleResponse */ public function setUpdateConditionalFormatRule(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateConditionalFormatRuleResponse $updateConditionalFormatRule) { } /** * @return UpdateConditionalFormatRuleResponse */ public function getUpdateConditionalFormatRule() { } /** * @param UpdateDataSourceResponse */ public function setUpdateDataSource(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateDataSourceResponse $updateDataSource) { } /** * @return UpdateDataSourceResponse */ public function getUpdateDataSource() { } /** * @param UpdateDeveloperMetadataResponse */ public function setUpdateDeveloperMetadata(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateDeveloperMetadataResponse $updateDeveloperMetadata) { } /** * @return UpdateDeveloperMetadataResponse */ public function getUpdateDeveloperMetadata() { } /** * @param UpdateEmbeddedObjectPositionResponse */ public function setUpdateEmbeddedObjectPosition(\ForminatorGoogleAddon\Google\Service\Sheets\UpdateEmbeddedObjectPositionResponse $updateEmbeddedObjectPosition) { } /** * @return UpdateEmbeddedObjectPositionResponse */ public function getUpdateEmbeddedObjectPosition() { } } class RowData extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'values'; protected $valuesType = \ForminatorGoogleAddon\Google\Service\Sheets\CellData::class; protected $valuesDataType = 'array'; /** * @param CellData[] */ public function setValues($values) { } /** * @return CellData[] */ public function getValues() { } } class ScorecardChartSpec extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $aggregateType; protected $baselineValueDataType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $baselineValueDataDataType = ''; protected $baselineValueFormatType = \ForminatorGoogleAddon\Google\Service\Sheets\BaselineValueFormat::class; protected $baselineValueFormatDataType = ''; protected $customFormatOptionsType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartCustomNumberFormatOptions::class; protected $customFormatOptionsDataType = ''; protected $keyValueDataType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $keyValueDataDataType = ''; protected $keyValueFormatType = \ForminatorGoogleAddon\Google\Service\Sheets\KeyValueFormat::class; protected $keyValueFormatDataType = ''; /** * @var string */ public $numberFormatSource; public $scaleFactor; /** * @param string */ public function setAggregateType($aggregateType) { } /** * @return string */ public function getAggregateType() { } /** * @param ChartData */ public function setBaselineValueData(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $baselineValueData) { } /** * @return ChartData */ public function getBaselineValueData() { } /** * @param BaselineValueFormat */ public function setBaselineValueFormat(\ForminatorGoogleAddon\Google\Service\Sheets\BaselineValueFormat $baselineValueFormat) { } /** * @return BaselineValueFormat */ public function getBaselineValueFormat() { } /** * @param ChartCustomNumberFormatOptions */ public function setCustomFormatOptions(\ForminatorGoogleAddon\Google\Service\Sheets\ChartCustomNumberFormatOptions $customFormatOptions) { } /** * @return ChartCustomNumberFormatOptions */ public function getCustomFormatOptions() { } /** * @param ChartData */ public function setKeyValueData(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $keyValueData) { } /** * @return ChartData */ public function getKeyValueData() { } /** * @param KeyValueFormat */ public function setKeyValueFormat(\ForminatorGoogleAddon\Google\Service\Sheets\KeyValueFormat $keyValueFormat) { } /** * @return KeyValueFormat */ public function getKeyValueFormat() { } /** * @param string */ public function setNumberFormatSource($numberFormatSource) { } /** * @return string */ public function getNumberFormatSource() { } public function setScaleFactor($scaleFactor) { } public function getScaleFactor() { } } class SearchDeveloperMetadataRequest extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'dataFilters'; protected $dataFiltersType = \ForminatorGoogleAddon\Google\Service\Sheets\DataFilter::class; protected $dataFiltersDataType = 'array'; /** * @param DataFilter[] */ public function setDataFilters($dataFilters) { } /** * @return DataFilter[] */ public function getDataFilters() { } } class SearchDeveloperMetadataResponse extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'matchedDeveloperMetadata'; protected $matchedDeveloperMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\MatchedDeveloperMetadata::class; protected $matchedDeveloperMetadataDataType = 'array'; /** * @param MatchedDeveloperMetadata[] */ public function setMatchedDeveloperMetadata($matchedDeveloperMetadata) { } /** * @return MatchedDeveloperMetadata[] */ public function getMatchedDeveloperMetadata() { } } class SetBasicFilterRequest extends \ForminatorGoogleAddon\Google\Model { protected $filterType = \ForminatorGoogleAddon\Google\Service\Sheets\BasicFilter::class; protected $filterDataType = ''; /** * @param BasicFilter */ public function setFilter(\ForminatorGoogleAddon\Google\Service\Sheets\BasicFilter $filter) { } /** * @return BasicFilter */ public function getFilter() { } } class SetDataValidationRequest extends \ForminatorGoogleAddon\Google\Model { protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; protected $ruleType = \ForminatorGoogleAddon\Google\Service\Sheets\DataValidationRule::class; protected $ruleDataType = ''; /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } /** * @param DataValidationRule */ public function setRule(\ForminatorGoogleAddon\Google\Service\Sheets\DataValidationRule $rule) { } /** * @return DataValidationRule */ public function getRule() { } } class Sheet extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'slicers'; protected $bandedRangesType = \ForminatorGoogleAddon\Google\Service\Sheets\BandedRange::class; protected $bandedRangesDataType = 'array'; protected $basicFilterType = \ForminatorGoogleAddon\Google\Service\Sheets\BasicFilter::class; protected $basicFilterDataType = ''; protected $chartsType = \ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedChart::class; protected $chartsDataType = 'array'; protected $columnGroupsType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionGroup::class; protected $columnGroupsDataType = 'array'; protected $conditionalFormatsType = \ForminatorGoogleAddon\Google\Service\Sheets\ConditionalFormatRule::class; protected $conditionalFormatsDataType = 'array'; protected $dataType = \ForminatorGoogleAddon\Google\Service\Sheets\GridData::class; protected $dataDataType = 'array'; protected $developerMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadata::class; protected $developerMetadataDataType = 'array'; protected $filterViewsType = \ForminatorGoogleAddon\Google\Service\Sheets\FilterView::class; protected $filterViewsDataType = 'array'; protected $mergesType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $mergesDataType = 'array'; protected $propertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\SheetProperties::class; protected $propertiesDataType = ''; protected $protectedRangesType = \ForminatorGoogleAddon\Google\Service\Sheets\ProtectedRange::class; protected $protectedRangesDataType = 'array'; protected $rowGroupsType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionGroup::class; protected $rowGroupsDataType = 'array'; protected $slicersType = \ForminatorGoogleAddon\Google\Service\Sheets\Slicer::class; protected $slicersDataType = 'array'; /** * @param BandedRange[] */ public function setBandedRanges($bandedRanges) { } /** * @return BandedRange[] */ public function getBandedRanges() { } /** * @param BasicFilter */ public function setBasicFilter(\ForminatorGoogleAddon\Google\Service\Sheets\BasicFilter $basicFilter) { } /** * @return BasicFilter */ public function getBasicFilter() { } /** * @param EmbeddedChart[] */ public function setCharts($charts) { } /** * @return EmbeddedChart[] */ public function getCharts() { } /** * @param DimensionGroup[] */ public function setColumnGroups($columnGroups) { } /** * @return DimensionGroup[] */ public function getColumnGroups() { } /** * @param ConditionalFormatRule[] */ public function setConditionalFormats($conditionalFormats) { } /** * @return ConditionalFormatRule[] */ public function getConditionalFormats() { } /** * @param GridData[] */ public function setData($data) { } /** * @return GridData[] */ public function getData() { } /** * @param DeveloperMetadata[] */ public function setDeveloperMetadata($developerMetadata) { } /** * @return DeveloperMetadata[] */ public function getDeveloperMetadata() { } /** * @param FilterView[] */ public function setFilterViews($filterViews) { } /** * @return FilterView[] */ public function getFilterViews() { } /** * @param GridRange[] */ public function setMerges($merges) { } /** * @return GridRange[] */ public function getMerges() { } /** * @param SheetProperties */ public function setProperties(\ForminatorGoogleAddon\Google\Service\Sheets\SheetProperties $properties) { } /** * @return SheetProperties */ public function getProperties() { } /** * @param ProtectedRange[] */ public function setProtectedRanges($protectedRanges) { } /** * @return ProtectedRange[] */ public function getProtectedRanges() { } /** * @param DimensionGroup[] */ public function setRowGroups($rowGroups) { } /** * @return DimensionGroup[] */ public function getRowGroups() { } /** * @param Slicer[] */ public function setSlicers($slicers) { } /** * @return Slicer[] */ public function getSlicers() { } } class SheetProperties extends \ForminatorGoogleAddon\Google\Model { protected $dataSourceSheetPropertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceSheetProperties::class; protected $dataSourceSheetPropertiesDataType = ''; protected $gridPropertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\GridProperties::class; protected $gridPropertiesDataType = ''; /** * @var bool */ public $hidden; /** * @var int */ public $index; /** * @var bool */ public $rightToLeft; /** * @var int */ public $sheetId; /** * @var string */ public $sheetType; protected $tabColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $tabColorDataType = ''; protected $tabColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $tabColorStyleDataType = ''; /** * @var string */ public $title; /** * @param DataSourceSheetProperties */ public function setDataSourceSheetProperties(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceSheetProperties $dataSourceSheetProperties) { } /** * @return DataSourceSheetProperties */ public function getDataSourceSheetProperties() { } /** * @param GridProperties */ public function setGridProperties(\ForminatorGoogleAddon\Google\Service\Sheets\GridProperties $gridProperties) { } /** * @return GridProperties */ public function getGridProperties() { } /** * @param bool */ public function setHidden($hidden) { } /** * @return bool */ public function getHidden() { } /** * @param int */ public function setIndex($index) { } /** * @return int */ public function getIndex() { } /** * @param bool */ public function setRightToLeft($rightToLeft) { } /** * @return bool */ public function getRightToLeft() { } /** * @param int */ public function setSheetId($sheetId) { } /** * @return int */ public function getSheetId() { } /** * @param string */ public function setSheetType($sheetType) { } /** * @return string */ public function getSheetType() { } /** * @param Color */ public function setTabColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $tabColor) { } /** * @return Color */ public function getTabColor() { } /** * @param ColorStyle */ public function setTabColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $tabColorStyle) { } /** * @return ColorStyle */ public function getTabColorStyle() { } /** * @param string */ public function setTitle($title) { } /** * @return string */ public function getTitle() { } } class Slicer extends \ForminatorGoogleAddon\Google\Model { protected $positionType = \ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedObjectPosition::class; protected $positionDataType = ''; /** * @var int */ public $slicerId; protected $specType = \ForminatorGoogleAddon\Google\Service\Sheets\SlicerSpec::class; protected $specDataType = ''; /** * @param EmbeddedObjectPosition */ public function setPosition(\ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedObjectPosition $position) { } /** * @return EmbeddedObjectPosition */ public function getPosition() { } /** * @param int */ public function setSlicerId($slicerId) { } /** * @return int */ public function getSlicerId() { } /** * @param SlicerSpec */ public function setSpec(\ForminatorGoogleAddon\Google\Service\Sheets\SlicerSpec $spec) { } /** * @return SlicerSpec */ public function getSpec() { } } class SlicerSpec extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $applyToPivotTables; protected $backgroundColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $backgroundColorDataType = ''; protected $backgroundColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $backgroundColorStyleDataType = ''; /** * @var int */ public $columnIndex; protected $dataRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $dataRangeDataType = ''; protected $filterCriteriaType = \ForminatorGoogleAddon\Google\Service\Sheets\FilterCriteria::class; protected $filterCriteriaDataType = ''; /** * @var string */ public $horizontalAlignment; protected $textFormatType = \ForminatorGoogleAddon\Google\Service\Sheets\TextFormat::class; protected $textFormatDataType = ''; /** * @var string */ public $title; /** * @param bool */ public function setApplyToPivotTables($applyToPivotTables) { } /** * @return bool */ public function getApplyToPivotTables() { } /** * @param Color */ public function setBackgroundColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $backgroundColor) { } /** * @return Color */ public function getBackgroundColor() { } /** * @param ColorStyle */ public function setBackgroundColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $backgroundColorStyle) { } /** * @return ColorStyle */ public function getBackgroundColorStyle() { } /** * @param int */ public function setColumnIndex($columnIndex) { } /** * @return int */ public function getColumnIndex() { } /** * @param GridRange */ public function setDataRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $dataRange) { } /** * @return GridRange */ public function getDataRange() { } /** * @param FilterCriteria */ public function setFilterCriteria(\ForminatorGoogleAddon\Google\Service\Sheets\FilterCriteria $filterCriteria) { } /** * @return FilterCriteria */ public function getFilterCriteria() { } /** * @param string */ public function setHorizontalAlignment($horizontalAlignment) { } /** * @return string */ public function getHorizontalAlignment() { } /** * @param TextFormat */ public function setTextFormat(\ForminatorGoogleAddon\Google\Service\Sheets\TextFormat $textFormat) { } /** * @return TextFormat */ public function getTextFormat() { } /** * @param string */ public function setTitle($title) { } /** * @return string */ public function getTitle() { } } class SortRangeRequest extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'sortSpecs'; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; protected $sortSpecsType = \ForminatorGoogleAddon\Google\Service\Sheets\SortSpec::class; protected $sortSpecsDataType = 'array'; /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } /** * @param SortSpec[] */ public function setSortSpecs($sortSpecs) { } /** * @return SortSpec[] */ public function getSortSpecs() { } } class SortSpec extends \ForminatorGoogleAddon\Google\Model { protected $backgroundColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $backgroundColorDataType = ''; protected $backgroundColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $backgroundColorStyleDataType = ''; protected $dataSourceColumnReferenceType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference::class; protected $dataSourceColumnReferenceDataType = ''; /** * @var int */ public $dimensionIndex; protected $foregroundColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $foregroundColorDataType = ''; protected $foregroundColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $foregroundColorStyleDataType = ''; /** * @var string */ public $sortOrder; /** * @param Color */ public function setBackgroundColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $backgroundColor) { } /** * @return Color */ public function getBackgroundColor() { } /** * @param ColorStyle */ public function setBackgroundColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $backgroundColorStyle) { } /** * @return ColorStyle */ public function getBackgroundColorStyle() { } /** * @param DataSourceColumnReference */ public function setDataSourceColumnReference(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference $dataSourceColumnReference) { } /** * @return DataSourceColumnReference */ public function getDataSourceColumnReference() { } /** * @param int */ public function setDimensionIndex($dimensionIndex) { } /** * @return int */ public function getDimensionIndex() { } /** * @param Color */ public function setForegroundColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $foregroundColor) { } /** * @return Color */ public function getForegroundColor() { } /** * @param ColorStyle */ public function setForegroundColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $foregroundColorStyle) { } /** * @return ColorStyle */ public function getForegroundColorStyle() { } /** * @param string */ public function setSortOrder($sortOrder) { } /** * @return string */ public function getSortOrder() { } } class SourceAndDestination extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $dimension; /** * @var int */ public $fillLength; protected $sourceType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $sourceDataType = ''; /** * @param string */ public function setDimension($dimension) { } /** * @return string */ public function getDimension() { } /** * @param int */ public function setFillLength($fillLength) { } /** * @return int */ public function getFillLength() { } /** * @param GridRange */ public function setSource(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $source) { } /** * @return GridRange */ public function getSource() { } } class Spreadsheet extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'sheets'; protected $dataSourceSchedulesType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceRefreshSchedule::class; protected $dataSourceSchedulesDataType = 'array'; protected $dataSourcesType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSource::class; protected $dataSourcesDataType = 'array'; protected $developerMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadata::class; protected $developerMetadataDataType = 'array'; protected $namedRangesType = \ForminatorGoogleAddon\Google\Service\Sheets\NamedRange::class; protected $namedRangesDataType = 'array'; protected $propertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\SpreadsheetProperties::class; protected $propertiesDataType = ''; protected $sheetsType = \ForminatorGoogleAddon\Google\Service\Sheets\Sheet::class; protected $sheetsDataType = 'array'; /** * @var string */ public $spreadsheetId; /** * @var string */ public $spreadsheetUrl; /** * @param DataSourceRefreshSchedule[] */ public function setDataSourceSchedules($dataSourceSchedules) { } /** * @return DataSourceRefreshSchedule[] */ public function getDataSourceSchedules() { } /** * @param DataSource[] */ public function setDataSources($dataSources) { } /** * @return DataSource[] */ public function getDataSources() { } /** * @param DeveloperMetadata[] */ public function setDeveloperMetadata($developerMetadata) { } /** * @return DeveloperMetadata[] */ public function getDeveloperMetadata() { } /** * @param NamedRange[] */ public function setNamedRanges($namedRanges) { } /** * @return NamedRange[] */ public function getNamedRanges() { } /** * @param SpreadsheetProperties */ public function setProperties(\ForminatorGoogleAddon\Google\Service\Sheets\SpreadsheetProperties $properties) { } /** * @return SpreadsheetProperties */ public function getProperties() { } /** * @param Sheet[] */ public function setSheets($sheets) { } /** * @return Sheet[] */ public function getSheets() { } /** * @param string */ public function setSpreadsheetId($spreadsheetId) { } /** * @return string */ public function getSpreadsheetId() { } /** * @param string */ public function setSpreadsheetUrl($spreadsheetUrl) { } /** * @return string */ public function getSpreadsheetUrl() { } } class SpreadsheetProperties extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $autoRecalc; protected $defaultFormatType = \ForminatorGoogleAddon\Google\Service\Sheets\CellFormat::class; protected $defaultFormatDataType = ''; /** * @var bool */ public $importFunctionsExternalUrlAccessAllowed; protected $iterativeCalculationSettingsType = \ForminatorGoogleAddon\Google\Service\Sheets\IterativeCalculationSettings::class; protected $iterativeCalculationSettingsDataType = ''; /** * @var string */ public $locale; protected $spreadsheetThemeType = \ForminatorGoogleAddon\Google\Service\Sheets\SpreadsheetTheme::class; protected $spreadsheetThemeDataType = ''; /** * @var string */ public $timeZone; /** * @var string */ public $title; /** * @param string */ public function setAutoRecalc($autoRecalc) { } /** * @return string */ public function getAutoRecalc() { } /** * @param CellFormat */ public function setDefaultFormat(\ForminatorGoogleAddon\Google\Service\Sheets\CellFormat $defaultFormat) { } /** * @return CellFormat */ public function getDefaultFormat() { } /** * @param bool */ public function setImportFunctionsExternalUrlAccessAllowed($importFunctionsExternalUrlAccessAllowed) { } /** * @return bool */ public function getImportFunctionsExternalUrlAccessAllowed() { } /** * @param IterativeCalculationSettings */ public function setIterativeCalculationSettings(\ForminatorGoogleAddon\Google\Service\Sheets\IterativeCalculationSettings $iterativeCalculationSettings) { } /** * @return IterativeCalculationSettings */ public function getIterativeCalculationSettings() { } /** * @param string */ public function setLocale($locale) { } /** * @return string */ public function getLocale() { } /** * @param SpreadsheetTheme */ public function setSpreadsheetTheme(\ForminatorGoogleAddon\Google\Service\Sheets\SpreadsheetTheme $spreadsheetTheme) { } /** * @return SpreadsheetTheme */ public function getSpreadsheetTheme() { } /** * @param string */ public function setTimeZone($timeZone) { } /** * @return string */ public function getTimeZone() { } /** * @param string */ public function setTitle($title) { } /** * @return string */ public function getTitle() { } } class SpreadsheetTheme extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'themeColors'; /** * @var string */ public $primaryFontFamily; protected $themeColorsType = \ForminatorGoogleAddon\Google\Service\Sheets\ThemeColorPair::class; protected $themeColorsDataType = 'array'; /** * @param string */ public function setPrimaryFontFamily($primaryFontFamily) { } /** * @return string */ public function getPrimaryFontFamily() { } /** * @param ThemeColorPair[] */ public function setThemeColors($themeColors) { } /** * @return ThemeColorPair[] */ public function getThemeColors() { } } class TextFormat extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $bold; /** * @var string */ public $fontFamily; /** * @var int */ public $fontSize; protected $foregroundColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $foregroundColorDataType = ''; protected $foregroundColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $foregroundColorStyleDataType = ''; /** * @var bool */ public $italic; protected $linkType = \ForminatorGoogleAddon\Google\Service\Sheets\Link::class; protected $linkDataType = ''; /** * @var bool */ public $strikethrough; /** * @var bool */ public $underline; /** * @param bool */ public function setBold($bold) { } /** * @return bool */ public function getBold() { } /** * @param string */ public function setFontFamily($fontFamily) { } /** * @return string */ public function getFontFamily() { } /** * @param int */ public function setFontSize($fontSize) { } /** * @return int */ public function getFontSize() { } /** * @param Color */ public function setForegroundColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $foregroundColor) { } /** * @return Color */ public function getForegroundColor() { } /** * @param ColorStyle */ public function setForegroundColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $foregroundColorStyle) { } /** * @return ColorStyle */ public function getForegroundColorStyle() { } /** * @param bool */ public function setItalic($italic) { } /** * @return bool */ public function getItalic() { } /** * @param Link */ public function setLink(\ForminatorGoogleAddon\Google\Service\Sheets\Link $link) { } /** * @return Link */ public function getLink() { } /** * @param bool */ public function setStrikethrough($strikethrough) { } /** * @return bool */ public function getStrikethrough() { } /** * @param bool */ public function setUnderline($underline) { } /** * @return bool */ public function getUnderline() { } } class TextFormatRun extends \ForminatorGoogleAddon\Google\Model { protected $formatType = \ForminatorGoogleAddon\Google\Service\Sheets\TextFormat::class; protected $formatDataType = ''; /** * @var int */ public $startIndex; /** * @param TextFormat */ public function setFormat(\ForminatorGoogleAddon\Google\Service\Sheets\TextFormat $format) { } /** * @return TextFormat */ public function getFormat() { } /** * @param int */ public function setStartIndex($startIndex) { } /** * @return int */ public function getStartIndex() { } } class TextPosition extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $horizontalAlignment; /** * @param string */ public function setHorizontalAlignment($horizontalAlignment) { } /** * @return string */ public function getHorizontalAlignment() { } } class TextRotation extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $angle; /** * @var bool */ public $vertical; /** * @param int */ public function setAngle($angle) { } /** * @return int */ public function getAngle() { } /** * @param bool */ public function setVertical($vertical) { } /** * @return bool */ public function getVertical() { } } class TextToColumnsRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $delimiter; /** * @var string */ public $delimiterType; protected $sourceType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $sourceDataType = ''; /** * @param string */ public function setDelimiter($delimiter) { } /** * @return string */ public function getDelimiter() { } /** * @param string */ public function setDelimiterType($delimiterType) { } /** * @return string */ public function getDelimiterType() { } /** * @param GridRange */ public function setSource(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $source) { } /** * @return GridRange */ public function getSource() { } } class ThemeColorPair extends \ForminatorGoogleAddon\Google\Model { protected $colorDataType = ''; /** * @var string */ public $colorType; /** * @param ColorStyle */ public function setColor(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $color) { } /** * @return ColorStyle */ public function getColor() { } /** * @param string */ public function setColorType($colorType) { } /** * @return string */ public function getColorType() { } } class TimeOfDay extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $hours; /** * @var int */ public $minutes; /** * @var int */ public $nanos; /** * @var int */ public $seconds; /** * @param int */ public function setHours($hours) { } /** * @return int */ public function getHours() { } /** * @param int */ public function setMinutes($minutes) { } /** * @return int */ public function getMinutes() { } /** * @param int */ public function setNanos($nanos) { } /** * @return int */ public function getNanos() { } /** * @param int */ public function setSeconds($seconds) { } /** * @return int */ public function getSeconds() { } } class TreemapChartColorScale extends \ForminatorGoogleAddon\Google\Model { protected $maxValueColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $maxValueColorDataType = ''; protected $maxValueColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $maxValueColorStyleDataType = ''; protected $midValueColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $midValueColorDataType = ''; protected $midValueColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $midValueColorStyleDataType = ''; protected $minValueColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $minValueColorDataType = ''; protected $minValueColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $minValueColorStyleDataType = ''; protected $noDataColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $noDataColorDataType = ''; protected $noDataColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $noDataColorStyleDataType = ''; /** * @param Color */ public function setMaxValueColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $maxValueColor) { } /** * @return Color */ public function getMaxValueColor() { } /** * @param ColorStyle */ public function setMaxValueColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $maxValueColorStyle) { } /** * @return ColorStyle */ public function getMaxValueColorStyle() { } /** * @param Color */ public function setMidValueColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $midValueColor) { } /** * @return Color */ public function getMidValueColor() { } /** * @param ColorStyle */ public function setMidValueColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $midValueColorStyle) { } /** * @return ColorStyle */ public function getMidValueColorStyle() { } /** * @param Color */ public function setMinValueColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $minValueColor) { } /** * @return Color */ public function getMinValueColor() { } /** * @param ColorStyle */ public function setMinValueColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $minValueColorStyle) { } /** * @return ColorStyle */ public function getMinValueColorStyle() { } /** * @param Color */ public function setNoDataColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $noDataColor) { } /** * @return Color */ public function getNoDataColor() { } /** * @param ColorStyle */ public function setNoDataColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $noDataColorStyle) { } /** * @return ColorStyle */ public function getNoDataColorStyle() { } } class TreemapChartSpec extends \ForminatorGoogleAddon\Google\Model { protected $colorDataType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $colorDataDataType = ''; protected $colorScaleType = \ForminatorGoogleAddon\Google\Service\Sheets\TreemapChartColorScale::class; protected $colorScaleDataType = ''; protected $headerColorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $headerColorDataType = ''; protected $headerColorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $headerColorStyleDataType = ''; /** * @var bool */ public $hideTooltips; /** * @var int */ public $hintedLevels; protected $labelsType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $labelsDataType = ''; /** * @var int */ public $levels; public $maxValue; public $minValue; protected $parentLabelsType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $parentLabelsDataType = ''; protected $sizeDataType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $sizeDataDataType = ''; protected $textFormatType = \ForminatorGoogleAddon\Google\Service\Sheets\TextFormat::class; protected $textFormatDataType = ''; /** * @param ChartData */ public function setColorData(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $colorData) { } /** * @return ChartData */ public function getColorData() { } /** * @param TreemapChartColorScale */ public function setColorScale(\ForminatorGoogleAddon\Google\Service\Sheets\TreemapChartColorScale $colorScale) { } /** * @return TreemapChartColorScale */ public function getColorScale() { } /** * @param Color */ public function setHeaderColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $headerColor) { } /** * @return Color */ public function getHeaderColor() { } /** * @param ColorStyle */ public function setHeaderColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $headerColorStyle) { } /** * @return ColorStyle */ public function getHeaderColorStyle() { } /** * @param bool */ public function setHideTooltips($hideTooltips) { } /** * @return bool */ public function getHideTooltips() { } /** * @param int */ public function setHintedLevels($hintedLevels) { } /** * @return int */ public function getHintedLevels() { } /** * @param ChartData */ public function setLabels(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $labels) { } /** * @return ChartData */ public function getLabels() { } /** * @param int */ public function setLevels($levels) { } /** * @return int */ public function getLevels() { } public function setMaxValue($maxValue) { } public function getMaxValue() { } public function setMinValue($minValue) { } public function getMinValue() { } /** * @param ChartData */ public function setParentLabels(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $parentLabels) { } /** * @return ChartData */ public function getParentLabels() { } /** * @param ChartData */ public function setSizeData(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $sizeData) { } /** * @return ChartData */ public function getSizeData() { } /** * @param TextFormat */ public function setTextFormat(\ForminatorGoogleAddon\Google\Service\Sheets\TextFormat $textFormat) { } /** * @return TextFormat */ public function getTextFormat() { } } class TrimWhitespaceRequest extends \ForminatorGoogleAddon\Google\Model { protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } } class TrimWhitespaceResponse extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $cellsChangedCount; /** * @param int */ public function setCellsChangedCount($cellsChangedCount) { } /** * @return int */ public function getCellsChangedCount() { } } class UnmergeCellsRequest extends \ForminatorGoogleAddon\Google\Model { protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } } class UpdateBandingRequest extends \ForminatorGoogleAddon\Google\Model { protected $bandedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\BandedRange::class; protected $bandedRangeDataType = ''; /** * @var string */ public $fields; /** * @param BandedRange */ public function setBandedRange(\ForminatorGoogleAddon\Google\Service\Sheets\BandedRange $bandedRange) { } /** * @return BandedRange */ public function getBandedRange() { } /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } } class UpdateBordersRequest extends \ForminatorGoogleAddon\Google\Model { protected $bottomType = \ForminatorGoogleAddon\Google\Service\Sheets\Border::class; protected $bottomDataType = ''; protected $innerHorizontalType = \ForminatorGoogleAddon\Google\Service\Sheets\Border::class; protected $innerHorizontalDataType = ''; protected $innerVerticalType = \ForminatorGoogleAddon\Google\Service\Sheets\Border::class; protected $innerVerticalDataType = ''; protected $leftType = \ForminatorGoogleAddon\Google\Service\Sheets\Border::class; protected $leftDataType = ''; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; protected $rightType = \ForminatorGoogleAddon\Google\Service\Sheets\Border::class; protected $rightDataType = ''; protected $topType = \ForminatorGoogleAddon\Google\Service\Sheets\Border::class; protected $topDataType = ''; /** * @param Border */ public function setBottom(\ForminatorGoogleAddon\Google\Service\Sheets\Border $bottom) { } /** * @return Border */ public function getBottom() { } /** * @param Border */ public function setInnerHorizontal(\ForminatorGoogleAddon\Google\Service\Sheets\Border $innerHorizontal) { } /** * @return Border */ public function getInnerHorizontal() { } /** * @param Border */ public function setInnerVertical(\ForminatorGoogleAddon\Google\Service\Sheets\Border $innerVertical) { } /** * @return Border */ public function getInnerVertical() { } /** * @param Border */ public function setLeft(\ForminatorGoogleAddon\Google\Service\Sheets\Border $left) { } /** * @return Border */ public function getLeft() { } /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } /** * @param Border */ public function setRight(\ForminatorGoogleAddon\Google\Service\Sheets\Border $right) { } /** * @return Border */ public function getRight() { } /** * @param Border */ public function setTop(\ForminatorGoogleAddon\Google\Service\Sheets\Border $top) { } /** * @return Border */ public function getTop() { } } class UpdateCellsRequest extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'rows'; /** * @var string */ public $fields; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\GridRange::class; protected $rangeDataType = ''; protected $rowsType = \ForminatorGoogleAddon\Google\Service\Sheets\RowData::class; protected $rowsDataType = 'array'; protected $startType = \ForminatorGoogleAddon\Google\Service\Sheets\GridCoordinate::class; protected $startDataType = ''; /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } /** * @param GridRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\GridRange $range) { } /** * @return GridRange */ public function getRange() { } /** * @param RowData[] */ public function setRows($rows) { } /** * @return RowData[] */ public function getRows() { } /** * @param GridCoordinate */ public function setStart(\ForminatorGoogleAddon\Google\Service\Sheets\GridCoordinate $start) { } /** * @return GridCoordinate */ public function getStart() { } } class UpdateChartSpecRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $chartId; protected $specType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartSpec::class; protected $specDataType = ''; /** * @param int */ public function setChartId($chartId) { } /** * @return int */ public function getChartId() { } /** * @param ChartSpec */ public function setSpec(\ForminatorGoogleAddon\Google\Service\Sheets\ChartSpec $spec) { } /** * @return ChartSpec */ public function getSpec() { } } class UpdateConditionalFormatRuleRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $index; /** * @var int */ public $newIndex; protected $ruleType = \ForminatorGoogleAddon\Google\Service\Sheets\ConditionalFormatRule::class; protected $ruleDataType = ''; /** * @var int */ public $sheetId; /** * @param int */ public function setIndex($index) { } /** * @return int */ public function getIndex() { } /** * @param int */ public function setNewIndex($newIndex) { } /** * @return int */ public function getNewIndex() { } /** * @param ConditionalFormatRule */ public function setRule(\ForminatorGoogleAddon\Google\Service\Sheets\ConditionalFormatRule $rule) { } /** * @return ConditionalFormatRule */ public function getRule() { } /** * @param int */ public function setSheetId($sheetId) { } /** * @return int */ public function getSheetId() { } } class UpdateConditionalFormatRuleResponse extends \ForminatorGoogleAddon\Google\Model { /** * @var int */ public $newIndex; protected $newRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\ConditionalFormatRule::class; protected $newRuleDataType = ''; /** * @var int */ public $oldIndex; protected $oldRuleType = \ForminatorGoogleAddon\Google\Service\Sheets\ConditionalFormatRule::class; protected $oldRuleDataType = ''; /** * @param int */ public function setNewIndex($newIndex) { } /** * @return int */ public function getNewIndex() { } /** * @param ConditionalFormatRule */ public function setNewRule(\ForminatorGoogleAddon\Google\Service\Sheets\ConditionalFormatRule $newRule) { } /** * @return ConditionalFormatRule */ public function getNewRule() { } /** * @param int */ public function setOldIndex($oldIndex) { } /** * @return int */ public function getOldIndex() { } /** * @param ConditionalFormatRule */ public function setOldRule(\ForminatorGoogleAddon\Google\Service\Sheets\ConditionalFormatRule $oldRule) { } /** * @return ConditionalFormatRule */ public function getOldRule() { } } class UpdateDataSourceRequest extends \ForminatorGoogleAddon\Google\Model { protected $dataSourceType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSource::class; protected $dataSourceDataType = ''; /** * @var string */ public $fields; /** * @param DataSource */ public function setDataSource(\ForminatorGoogleAddon\Google\Service\Sheets\DataSource $dataSource) { } /** * @return DataSource */ public function getDataSource() { } /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } } class UpdateDataSourceResponse extends \ForminatorGoogleAddon\Google\Model { protected $dataExecutionStatusType = \ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus::class; protected $dataExecutionStatusDataType = ''; protected $dataSourceType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSource::class; protected $dataSourceDataType = ''; /** * @param DataExecutionStatus */ public function setDataExecutionStatus(\ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus $dataExecutionStatus) { } /** * @return DataExecutionStatus */ public function getDataExecutionStatus() { } /** * @param DataSource */ public function setDataSource(\ForminatorGoogleAddon\Google\Service\Sheets\DataSource $dataSource) { } /** * @return DataSource */ public function getDataSource() { } } class UpdateDeveloperMetadataRequest extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'dataFilters'; protected $dataFiltersType = \ForminatorGoogleAddon\Google\Service\Sheets\DataFilter::class; protected $dataFiltersDataType = 'array'; protected $developerMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadata::class; protected $developerMetadataDataType = ''; /** * @var string */ public $fields; /** * @param DataFilter[] */ public function setDataFilters($dataFilters) { } /** * @return DataFilter[] */ public function getDataFilters() { } /** * @param DeveloperMetadata */ public function setDeveloperMetadata(\ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadata $developerMetadata) { } /** * @return DeveloperMetadata */ public function getDeveloperMetadata() { } /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } } class UpdateDeveloperMetadataResponse extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'developerMetadata'; protected $developerMetadataType = \ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadata::class; protected $developerMetadataDataType = 'array'; /** * @param DeveloperMetadata[] */ public function setDeveloperMetadata($developerMetadata) { } /** * @return DeveloperMetadata[] */ public function getDeveloperMetadata() { } } class UpdateDimensionGroupRequest extends \ForminatorGoogleAddon\Google\Model { protected $dimensionGroupType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionGroup::class; protected $dimensionGroupDataType = ''; /** * @var string */ public $fields; /** * @param DimensionGroup */ public function setDimensionGroup(\ForminatorGoogleAddon\Google\Service\Sheets\DimensionGroup $dimensionGroup) { } /** * @return DimensionGroup */ public function getDimensionGroup() { } /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } } class UpdateDimensionPropertiesRequest extends \ForminatorGoogleAddon\Google\Model { protected $dataSourceSheetRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\DataSourceSheetDimensionRange::class; protected $dataSourceSheetRangeDataType = ''; /** * @var string */ public $fields; protected $propertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionProperties::class; protected $propertiesDataType = ''; protected $rangeType = \ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange::class; protected $rangeDataType = ''; /** * @param DataSourceSheetDimensionRange */ public function setDataSourceSheetRange(\ForminatorGoogleAddon\Google\Service\Sheets\DataSourceSheetDimensionRange $dataSourceSheetRange) { } /** * @return DataSourceSheetDimensionRange */ public function getDataSourceSheetRange() { } /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } /** * @param DimensionProperties */ public function setProperties(\ForminatorGoogleAddon\Google\Service\Sheets\DimensionProperties $properties) { } /** * @return DimensionProperties */ public function getProperties() { } /** * @param DimensionRange */ public function setRange(\ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange $range) { } /** * @return DimensionRange */ public function getRange() { } } class UpdateEmbeddedObjectBorderRequest extends \ForminatorGoogleAddon\Google\Model { protected $borderType = \ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedObjectBorder::class; protected $borderDataType = ''; /** * @var string */ public $fields; /** * @var int */ public $objectId; /** * @param EmbeddedObjectBorder */ public function setBorder(\ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedObjectBorder $border) { } /** * @return EmbeddedObjectBorder */ public function getBorder() { } /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } /** * @param int */ public function setObjectId($objectId) { } /** * @return int */ public function getObjectId() { } } class UpdateEmbeddedObjectPositionRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $fields; protected $newPositionType = \ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedObjectPosition::class; protected $newPositionDataType = ''; /** * @var int */ public $objectId; /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } /** * @param EmbeddedObjectPosition */ public function setNewPosition(\ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedObjectPosition $newPosition) { } /** * @return EmbeddedObjectPosition */ public function getNewPosition() { } /** * @param int */ public function setObjectId($objectId) { } /** * @return int */ public function getObjectId() { } } class UpdateEmbeddedObjectPositionResponse extends \ForminatorGoogleAddon\Google\Model { protected $positionType = \ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedObjectPosition::class; protected $positionDataType = ''; /** * @param EmbeddedObjectPosition */ public function setPosition(\ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedObjectPosition $position) { } /** * @return EmbeddedObjectPosition */ public function getPosition() { } } class UpdateFilterViewRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $fields; protected $filterType = \ForminatorGoogleAddon\Google\Service\Sheets\FilterView::class; protected $filterDataType = ''; /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } /** * @param FilterView */ public function setFilter(\ForminatorGoogleAddon\Google\Service\Sheets\FilterView $filter) { } /** * @return FilterView */ public function getFilter() { } } class UpdateNamedRangeRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $fields; protected $namedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\NamedRange::class; protected $namedRangeDataType = ''; /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } /** * @param NamedRange */ public function setNamedRange(\ForminatorGoogleAddon\Google\Service\Sheets\NamedRange $namedRange) { } /** * @return NamedRange */ public function getNamedRange() { } } class UpdateProtectedRangeRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $fields; protected $protectedRangeType = \ForminatorGoogleAddon\Google\Service\Sheets\ProtectedRange::class; protected $protectedRangeDataType = ''; /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } /** * @param ProtectedRange */ public function setProtectedRange(\ForminatorGoogleAddon\Google\Service\Sheets\ProtectedRange $protectedRange) { } /** * @return ProtectedRange */ public function getProtectedRange() { } } class UpdateSheetPropertiesRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $fields; protected $propertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\SheetProperties::class; protected $propertiesDataType = ''; /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } /** * @param SheetProperties */ public function setProperties(\ForminatorGoogleAddon\Google\Service\Sheets\SheetProperties $properties) { } /** * @return SheetProperties */ public function getProperties() { } } class UpdateSlicerSpecRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $fields; /** * @var int */ public $slicerId; protected $specType = \ForminatorGoogleAddon\Google\Service\Sheets\SlicerSpec::class; protected $specDataType = ''; /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } /** * @param int */ public function setSlicerId($slicerId) { } /** * @return int */ public function getSlicerId() { } /** * @param SlicerSpec */ public function setSpec(\ForminatorGoogleAddon\Google\Service\Sheets\SlicerSpec $spec) { } /** * @return SlicerSpec */ public function getSpec() { } } class UpdateSpreadsheetPropertiesRequest extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $fields; protected $propertiesType = \ForminatorGoogleAddon\Google\Service\Sheets\SpreadsheetProperties::class; protected $propertiesDataType = ''; /** * @param string */ public function setFields($fields) { } /** * @return string */ public function getFields() { } /** * @param SpreadsheetProperties */ public function setProperties(\ForminatorGoogleAddon\Google\Service\Sheets\SpreadsheetProperties $properties) { } /** * @return SpreadsheetProperties */ public function getProperties() { } } class UpdateValuesByDataFilterResponse extends \ForminatorGoogleAddon\Google\Model { protected $dataFilterType = \ForminatorGoogleAddon\Google\Service\Sheets\DataFilter::class; protected $dataFilterDataType = ''; /** * @var int */ public $updatedCells; /** * @var int */ public $updatedColumns; protected $updatedDataType = \ForminatorGoogleAddon\Google\Service\Sheets\ValueRange::class; protected $updatedDataDataType = ''; /** * @var string */ public $updatedRange; /** * @var int */ public $updatedRows; /** * @param DataFilter */ public function setDataFilter(\ForminatorGoogleAddon\Google\Service\Sheets\DataFilter $dataFilter) { } /** * @return DataFilter */ public function getDataFilter() { } /** * @param int */ public function setUpdatedCells($updatedCells) { } /** * @return int */ public function getUpdatedCells() { } /** * @param int */ public function setUpdatedColumns($updatedColumns) { } /** * @return int */ public function getUpdatedColumns() { } /** * @param ValueRange */ public function setUpdatedData(\ForminatorGoogleAddon\Google\Service\Sheets\ValueRange $updatedData) { } /** * @return ValueRange */ public function getUpdatedData() { } /** * @param string */ public function setUpdatedRange($updatedRange) { } /** * @return string */ public function getUpdatedRange() { } /** * @param int */ public function setUpdatedRows($updatedRows) { } /** * @return int */ public function getUpdatedRows() { } } class UpdateValuesResponse extends \ForminatorGoogleAddon\Google\Model { /** * @var string */ public $spreadsheetId; /** * @var int */ public $updatedCells; /** * @var int */ public $updatedColumns; protected $updatedDataType = \ForminatorGoogleAddon\Google\Service\Sheets\ValueRange::class; protected $updatedDataDataType = ''; /** * @var string */ public $updatedRange; /** * @var int */ public $updatedRows; /** * @param string */ public function setSpreadsheetId($spreadsheetId) { } /** * @return string */ public function getSpreadsheetId() { } /** * @param int */ public function setUpdatedCells($updatedCells) { } /** * @return int */ public function getUpdatedCells() { } /** * @param int */ public function setUpdatedColumns($updatedColumns) { } /** * @return int */ public function getUpdatedColumns() { } /** * @param ValueRange */ public function setUpdatedData(\ForminatorGoogleAddon\Google\Service\Sheets\ValueRange $updatedData) { } /** * @return ValueRange */ public function getUpdatedData() { } /** * @param string */ public function setUpdatedRange($updatedRange) { } /** * @return string */ public function getUpdatedRange() { } /** * @param int */ public function setUpdatedRows($updatedRows) { } /** * @return int */ public function getUpdatedRows() { } } class ValueRange extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'values'; /** * @var string */ public $majorDimension; /** * @var string */ public $range; /** * @var array[] */ public $values; /** * @param string */ public function setMajorDimension($majorDimension) { } /** * @return string */ public function getMajorDimension() { } /** * @param string */ public function setRange($range) { } /** * @return string */ public function getRange() { } /** * @param array[] */ public function setValues($values) { } /** * @return array[] */ public function getValues() { } } class WaterfallChartColumnStyle extends \ForminatorGoogleAddon\Google\Model { protected $colorType = \ForminatorGoogleAddon\Google\Service\Sheets\Color::class; protected $colorDataType = ''; protected $colorStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle::class; protected $colorStyleDataType = ''; /** * @var string */ public $label; /** * @param Color */ public function setColor(\ForminatorGoogleAddon\Google\Service\Sheets\Color $color) { } /** * @return Color */ public function getColor() { } /** * @param ColorStyle */ public function setColorStyle(\ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle $colorStyle) { } /** * @return ColorStyle */ public function getColorStyle() { } /** * @param string */ public function setLabel($label) { } /** * @return string */ public function getLabel() { } } class WaterfallChartCustomSubtotal extends \ForminatorGoogleAddon\Google\Model { /** * @var bool */ public $dataIsSubtotal; /** * @var string */ public $label; /** * @var int */ public $subtotalIndex; /** * @param bool */ public function setDataIsSubtotal($dataIsSubtotal) { } /** * @return bool */ public function getDataIsSubtotal() { } /** * @param string */ public function setLabel($label) { } /** * @return string */ public function getLabel() { } /** * @param int */ public function setSubtotalIndex($subtotalIndex) { } /** * @return int */ public function getSubtotalIndex() { } } class WaterfallChartDomain extends \ForminatorGoogleAddon\Google\Model { protected $dataType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $dataDataType = ''; /** * @var bool */ public $reversed; /** * @param ChartData */ public function setData(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $data) { } /** * @return ChartData */ public function getData() { } /** * @param bool */ public function setReversed($reversed) { } /** * @return bool */ public function getReversed() { } } class WaterfallChartSeries extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'customSubtotals'; protected $customSubtotalsType = \ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartCustomSubtotal::class; protected $customSubtotalsDataType = 'array'; protected $dataType = \ForminatorGoogleAddon\Google\Service\Sheets\ChartData::class; protected $dataDataType = ''; protected $dataLabelType = \ForminatorGoogleAddon\Google\Service\Sheets\DataLabel::class; protected $dataLabelDataType = ''; /** * @var bool */ public $hideTrailingSubtotal; protected $negativeColumnsStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartColumnStyle::class; protected $negativeColumnsStyleDataType = ''; protected $positiveColumnsStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartColumnStyle::class; protected $positiveColumnsStyleDataType = ''; protected $subtotalColumnsStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartColumnStyle::class; protected $subtotalColumnsStyleDataType = ''; /** * @param WaterfallChartCustomSubtotal[] */ public function setCustomSubtotals($customSubtotals) { } /** * @return WaterfallChartCustomSubtotal[] */ public function getCustomSubtotals() { } /** * @param ChartData */ public function setData(\ForminatorGoogleAddon\Google\Service\Sheets\ChartData $data) { } /** * @return ChartData */ public function getData() { } /** * @param DataLabel */ public function setDataLabel(\ForminatorGoogleAddon\Google\Service\Sheets\DataLabel $dataLabel) { } /** * @return DataLabel */ public function getDataLabel() { } /** * @param bool */ public function setHideTrailingSubtotal($hideTrailingSubtotal) { } /** * @return bool */ public function getHideTrailingSubtotal() { } /** * @param WaterfallChartColumnStyle */ public function setNegativeColumnsStyle(\ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartColumnStyle $negativeColumnsStyle) { } /** * @return WaterfallChartColumnStyle */ public function getNegativeColumnsStyle() { } /** * @param WaterfallChartColumnStyle */ public function setPositiveColumnsStyle(\ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartColumnStyle $positiveColumnsStyle) { } /** * @return WaterfallChartColumnStyle */ public function getPositiveColumnsStyle() { } /** * @param WaterfallChartColumnStyle */ public function setSubtotalColumnsStyle(\ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartColumnStyle $subtotalColumnsStyle) { } /** * @return WaterfallChartColumnStyle */ public function getSubtotalColumnsStyle() { } } class WaterfallChartSpec extends \ForminatorGoogleAddon\Google\Collection { protected $collection_key = 'series'; protected $connectorLineStyleType = \ForminatorGoogleAddon\Google\Service\Sheets\LineStyle::class; protected $connectorLineStyleDataType = ''; protected $domainType = \ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartDomain::class; protected $domainDataType = ''; /** * @var bool */ public $firstValueIsTotal; /** * @var bool */ public $hideConnectorLines; protected $seriesType = \ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartSeries::class; protected $seriesDataType = 'array'; /** * @var string */ public $stackedType; protected $totalDataLabelType = \ForminatorGoogleAddon\Google\Service\Sheets\DataLabel::class; protected $totalDataLabelDataType = ''; /** * @param LineStyle */ public function setConnectorLineStyle(\ForminatorGoogleAddon\Google\Service\Sheets\LineStyle $connectorLineStyle) { } /** * @return LineStyle */ public function getConnectorLineStyle() { } /** * @param WaterfallChartDomain */ public function setDomain(\ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartDomain $domain) { } /** * @return WaterfallChartDomain */ public function getDomain() { } /** * @param bool */ public function setFirstValueIsTotal($firstValueIsTotal) { } /** * @return bool */ public function getFirstValueIsTotal() { } /** * @param bool */ public function setHideConnectorLines($hideConnectorLines) { } /** * @return bool */ public function getHideConnectorLines() { } /** * @param WaterfallChartSeries[] */ public function setSeries($series) { } /** * @return WaterfallChartSeries[] */ public function getSeries() { } /** * @param string */ public function setStackedType($stackedType) { } /** * @return string */ public function getStackedType() { } /** * @param DataLabel */ public function setTotalDataLabel(\ForminatorGoogleAddon\Google\Service\Sheets\DataLabel $totalDataLabel) { } /** * @return DataLabel */ public function getTotalDataLabel() { } } } namespace ForminatorGoogleAddon\Google\AccessToken { /** * Wrapper around Google Access Tokens which provides convenience functions * */ class Revoke { /** * @var ClientInterface The http client */ private $http; /** * Instantiates the class, but does not initiate the login flow, leaving it * to the discretion of the caller. */ public function __construct(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $http = null) { } /** * Revoke an OAuth2 access token or refresh token. This method will revoke the current access * token, if a token isn't provided. * * @param string|array $token The token (access token or a refresh token) that should be revoked. * @return boolean Returns True if the revocation was successful, otherwise False. */ public function revokeToken($token) { } } /** * Wrapper around Google Access Tokens which provides convenience functions * */ class Verify { const FEDERATED_SIGNON_CERT_URL = 'https://www.googleapis.com/oauth2/v3/certs'; const OAUTH2_ISSUER = 'accounts.google.com'; const OAUTH2_ISSUER_HTTPS = 'https://accounts.google.com'; /** * @var ClientInterface The http client */ private $http; /** * @var CacheItemPoolInterface cache class */ private $cache; /** * @var \Firebase\JWT\JWT */ public $jwt; /** * Instantiates the class, but does not initiate the login flow, leaving it * to the discretion of the caller. */ public function __construct(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $http = null, \ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface $cache = null, $jwt = null) { } /** * Verifies an id token and returns the authenticated apiLoginTicket. * Throws an exception if the id token is not valid. * The audience parameter can be used to control which id tokens are * accepted. By default, the id token must have been issued to this OAuth2 client. * * @param string $idToken the ID token in JWT format * @param string $audience Optional. The audience to verify against JWt "aud" * @return array|false the token payload, if successful */ public function verifyIdToken($idToken, $audience = null) { } private function getCache() { } /** * Retrieve and cache a certificates file. * * @param string $url location * @throws \Google\Exception * @return array certificates */ private function retrieveCertsFromLocation($url) { } // Gets federated sign-on certificates to use for verifying identity tokens. // Returns certs as array structure, where keys are key ids, and values // are PEM encoded certificates. private function getFederatedSignOnCerts() { } private function getJwtService() { } private function getPublicKey($cert) { } /** * phpseclib calls "phpinfo" by default, which requires special * whitelisting in the AppEngine VM environment. This function * sets constants to bypass the need for phpseclib to check phpinfo * * @see phpseclib/Math/BigInteger * @see https://github.com/GoogleCloudPlatform/getting-started-php/issues/85 */ private function setPhpsecConstants() { } } } namespace ForminatorGoogleAddon\Google\AuthHandler { class AuthHandlerFactory { /** * Builds out a default http handler for the installed version of guzzle. * * @return Guzzle6AuthHandler|Guzzle7AuthHandler * @throws Exception */ public static function build($cache = null, array $cacheConfig = []) { } } /** * This supports Guzzle 6 */ class Guzzle6AuthHandler { protected $cache; protected $cacheConfig; public function __construct(\ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface $cache = null, array $cacheConfig = []) { } public function attachCredentials(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $http, \ForminatorGoogleAddon\Google\Auth\CredentialsLoader $credentials, callable $tokenCallback = null) { } public function attachCredentialsCache(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $http, \ForminatorGoogleAddon\Google\Auth\FetchAuthTokenCache $credentials, callable $tokenCallback = null) { } public function attachToken(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $http, array $token, array $scopes) { } public function attachKey(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $http, $key) { } private function createAuthHttp(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $http) { } } /** * This supports Guzzle 7 */ class Guzzle7AuthHandler extends \ForminatorGoogleAddon\Google\AuthHandler\Guzzle6AuthHandler { } } namespace ForminatorGoogleAddon\Google { /** * The Google API Client * https://github.com/google/google-api-php-client */ class Client { const LIBVER = "2.12.6"; const USER_AGENT_SUFFIX = "google-api-php-client/"; const OAUTH2_REVOKE_URI = 'https://oauth2.googleapis.com/revoke'; const OAUTH2_TOKEN_URI = 'https://oauth2.googleapis.com/token'; const OAUTH2_AUTH_URL = 'https://accounts.google.com/o/oauth2/v2/auth'; const API_BASE_PATH = 'https://www.googleapis.com'; /** * @var ?OAuth2 $auth */ private $auth; /** * @var ClientInterface $http */ private $http; /** * @var ?CacheItemPoolInterface $cache */ private $cache; /** * @var array access token */ private $token; /** * @var array $config */ private $config; /** * @var ?LoggerInterface $logger */ private $logger; /** * @var ?CredentialsLoader $credentials */ private $credentials; /** * @var boolean $deferExecution */ private $deferExecution = \false; /** @var array $scopes */ // Scopes requested by the client protected $requestedScopes = []; /** * Construct the Google Client. * * @param array $config { * An array of required and optional arguments. * * @type string $application_name * The name of your application * @type string $base_path * The base URL for the service. This is only accounted for when calling * {@see Client::authorize()} directly. * @type string $client_id * Your Google Cloud client ID found in https://developers.google.com/console * @type string $client_secret * Your Google Cloud client secret found in https://developers.google.com/console * @type string|array|CredentialsLoader $credentials * Can be a path to JSON credentials or an array representing those * credentials (@see Google\Client::setAuthConfig), or an instance of * {@see CredentialsLoader}. * @type string|array $scopes * {@see Google\Client::setScopes} * @type string $quota_project * Sets X-Goog-User-Project, which specifies a user project to bill * for access charges associated with the request. * @type string $redirect_uri * @type string $state * @type string $developer_key * Simple API access key, also from the API console. Ensure you get * a Server key, and not a Browser key. * **NOTE:** The universe domain is assumed to be "googleapis.com" unless * explicitly set. When setting an API ley directly via this option, there * is no way to verify the universe domain. Be sure to set the * "universe_domain" option if "googleapis.com" is not intended. * @type bool $use_application_default_credentials * For use with Google Cloud Platform * fetch the ApplicationDefaultCredentials, if applicable * {@see https://developers.google.com/identity/protocols/application-default-credentials} * @type string $signing_key * @type string $signing_algorithm * @type string $subject * @type string $hd * @type string $prompt * @type string $openid * @type bool $include_granted_scopes * @type string $login_hint * @type string $request_visible_actions * @type string $access_type * @type string $approval_prompt * @type array $retry * Task Runner retry configuration * {@see \Google\Task\Runner} * @type array $retry_map * @type CacheItemPoolInterface $cache * Cache class implementing {@see CacheItemPoolInterface}. Defaults * to {@see MemoryCacheItemPool}. * @type array $cache_config * Cache config for downstream auth caching. * @type callable $token_callback * Function to be called when an access token is fetched. Follows * the signature `function (string $cacheKey, string $accessToken)`. * @type \Firebase\JWT $jwt * Service class used in {@see Client::verifyIdToken()}. Explicitly * pass this in to avoid setting {@see \Firebase\JWT::$leeway} * @type bool $api_format_v2 * Setting api_format_v2 will return more detailed error messages * from certain APIs. * @type string $universe_domain * Setting the universe domain will change the default rootUrl of the service. * If not set explicitly, the universe domain will be the value provided in the *. "GOOGLE_CLOUD_UNIVERSE_DOMAIN" environment variable, or "googleapis.com". * } */ public function __construct(array $config = []) { } /** * Get a string containing the version of the library. * * @return string */ public function getLibraryVersion() { } /** * For backwards compatibility * alias for fetchAccessTokenWithAuthCode * * @param string $code string code from accounts.google.com * @return array access token * @deprecated */ public function authenticate($code) { } /** * Attempt to exchange a code for an valid authentication token. * Helper wrapped around the OAuth 2.0 implementation. * * @param string $code code from accounts.google.com * @param string $codeVerifier the code verifier used for PKCE (if applicable) * @return array access token */ public function fetchAccessTokenWithAuthCode($code, $codeVerifier = null) { } /** * For backwards compatibility * alias for fetchAccessTokenWithAssertion * * @return array access token * @deprecated */ public function refreshTokenWithAssertion() { } /** * Fetches a fresh access token with a given assertion token. * @param ClientInterface $authHttp optional. * @return array access token */ public function fetchAccessTokenWithAssertion(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $authHttp = null) { } /** * For backwards compatibility * alias for fetchAccessTokenWithRefreshToken * * @param string $refreshToken * @return array access token */ public function refreshToken($refreshToken) { } /** * Fetches a fresh OAuth 2.0 access token with the given refresh token. * @param string $refreshToken * @return array access token */ public function fetchAccessTokenWithRefreshToken($refreshToken = null) { } /** * Create a URL to obtain user authorization. * The authorization endpoint allows the user to first * authenticate, and then grant/deny the access request. * @param string|array $scope The scope is expressed as an array or list of space-delimited strings. * @param array $queryParams Querystring params to add to the authorization URL. * @return string */ public function createAuthUrl($scope = null, array $queryParams = []) { } /** * Adds auth listeners to the HTTP client based on the credentials * set in the Google API Client object * * @param ClientInterface $http the http client object. * @return ClientInterface the http client object */ public function authorize(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $http = null) { } /** * Set the configuration to use application default credentials for * authentication * * @see https://developers.google.com/identity/protocols/application-default-credentials * @param boolean $useAppCreds */ public function useApplicationDefaultCredentials($useAppCreds = \true) { } /** * To prevent useApplicationDefaultCredentials from inappropriately being * called in a conditional * * @see https://developers.google.com/identity/protocols/application-default-credentials */ public function isUsingApplicationDefaultCredentials() { } /** * Set the access token used for requests. * * Note that at the time requests are sent, tokens are cached. A token will be * cached for each combination of service and authentication scopes. If a * cache pool is not provided, creating a new instance of the client will * allow modification of access tokens. If a persistent cache pool is * provided, in order to change the access token, you must clear the cached * token by calling `$client->getCache()->clear()`. (Use caution in this case, * as calling `clear()` will remove all cache items, including any items not * related to Google API PHP Client.) * * **NOTE:** The universe domain is assumed to be "googleapis.com" unless * explicitly set. When setting an access token directly via this method, there * is no way to verify the universe domain. Be sure to set the "universe_domain" * option if "googleapis.com" is not intended. * * @param string|array $token * @throws InvalidArgumentException */ public function setAccessToken($token) { } public function getAccessToken() { } /** * @return string|null */ public function getRefreshToken() { } /** * Returns if the access_token is expired. * @return bool Returns True if the access_token is expired. */ public function isAccessTokenExpired() { } /** * @deprecated See UPGRADING.md for more information */ public function getAuth() { } /** * @deprecated See UPGRADING.md for more information */ public function setAuth($auth) { } /** * Set the OAuth 2.0 Client ID. * @param string $clientId */ public function setClientId($clientId) { } public function getClientId() { } /** * Set the OAuth 2.0 Client Secret. * @param string $clientSecret */ public function setClientSecret($clientSecret) { } public function getClientSecret() { } /** * Set the OAuth 2.0 Redirect URI. * @param string $redirectUri */ public function setRedirectUri($redirectUri) { } public function getRedirectUri() { } /** * Set OAuth 2.0 "state" parameter to achieve per-request customization. * @see http://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-3.1.2.2 * @param string $state */ public function setState($state) { } /** * @param string $accessType Possible values for access_type include: * {@code "offline"} to request offline access from the user. * {@code "online"} to request online access from the user. */ public function setAccessType($accessType) { } /** * @param string $approvalPrompt Possible values for approval_prompt include: * {@code "force"} to force the approval UI to appear. * {@code "auto"} to request auto-approval when possible. (This is the default value) */ public function setApprovalPrompt($approvalPrompt) { } /** * Set the login hint, email address or sub id. * @param string $loginHint */ public function setLoginHint($loginHint) { } /** * Set the application name, this is included in the User-Agent HTTP header. * @param string $applicationName */ public function setApplicationName($applicationName) { } /** * If 'plus.login' is included in the list of requested scopes, you can use * this method to define types of app activities that your app will write. * You can find a list of available types here: * @link https://developers.google.com/+/api/moment-types * * @param array $requestVisibleActions Array of app activity types */ public function setRequestVisibleActions($requestVisibleActions) { } /** * Set the developer key to use, these are obtained through the API Console. * @see http://code.google.com/apis/console-help/#generatingdevkeys * @param string $developerKey */ public function setDeveloperKey($developerKey) { } /** * Set the hd (hosted domain) parameter streamlines the login process for * Google Apps hosted accounts. By including the domain of the user, you * restrict sign-in to accounts at that domain. * @param string $hd the domain to use. */ public function setHostedDomain($hd) { } /** * Set the prompt hint. Valid values are none, consent and select_account. * If no value is specified and the user has not previously authorized * access, then the user is shown a consent screen. * @param string $prompt * {@code "none"} Do not display any authentication or consent screens. Must not be specified with other values. * {@code "consent"} Prompt the user for consent. * {@code "select_account"} Prompt the user to select an account. */ public function setPrompt($prompt) { } /** * openid.realm is a parameter from the OpenID 2.0 protocol, not from OAuth * 2.0. It is used in OpenID 2.0 requests to signify the URL-space for which * an authentication request is valid. * @param string $realm the URL-space to use. */ public function setOpenidRealm($realm) { } /** * If this is provided with the value true, and the authorization request is * granted, the authorization will include any previous authorizations * granted to this user/application combination for other scopes. * @param bool $include the URL-space to use. */ public function setIncludeGrantedScopes($include) { } /** * sets function to be called when an access token is fetched * @param callable $tokenCallback - function ($cacheKey, $accessToken) */ public function setTokenCallback(callable $tokenCallback) { } /** * Revoke an OAuth2 access token or refresh token. This method will revoke the current access * token, if a token isn't provided. * * @param string|array|null $token The token (access token or a refresh token) that should be revoked. * @return boolean Returns True if the revocation was successful, otherwise False. */ public function revokeToken($token = null) { } /** * Verify an id_token. This method will verify the current id_token, if one * isn't provided. * * @throws LogicException If no token was provided and no token was set using `setAccessToken`. * @throws UnexpectedValueException If the token is not a valid JWT. * @param string|null $idToken The token (id_token) that should be verified. * @return array|false Returns the token payload as an array if the verification was * successful, false otherwise. */ public function verifyIdToken($idToken = null) { } /** * Set the scopes to be requested. Must be called before createAuthUrl(). * Will remove any previously configured scopes. * @param string|array $scope_or_scopes, ie: * array( * 'https://www.googleapis.com/auth/plus.login', * 'https://www.googleapis.com/auth/moderator' * ); */ public function setScopes($scope_or_scopes) { } /** * This functions adds a scope to be requested as part of the OAuth2.0 flow. * Will append any scopes not previously requested to the scope parameter. * A single string will be treated as a scope to request. An array of strings * will each be appended. * @param string|string[] $scope_or_scopes e.g. "profile" */ public function addScope($scope_or_scopes) { } /** * Returns the list of scopes requested by the client * @return array the list of scopes * */ public function getScopes() { } /** * @return string|null * @visible For Testing */ public function prepareScopes() { } /** * Helper method to execute deferred HTTP requests. * * @template T * @param RequestInterface $request * @param class-string|false|null $expectedClass * @throws \Google\Exception * @return mixed|T|ResponseInterface */ public function execute(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, $expectedClass = null) { } /** * Declare whether batch calls should be used. This may increase throughput * by making multiple requests in one connection. * * @param boolean $useBatch True if the batch support should * be enabled. Defaults to False. */ public function setUseBatch($useBatch) { } /** * Are we running in Google AppEngine? * return bool */ public function isAppEngine() { } public function setConfig($name, $value) { } public function getConfig($name, $default = null) { } /** * For backwards compatibility * alias for setAuthConfig * * @param string $file the configuration file * @throws \Google\Exception * @deprecated */ public function setAuthConfigFile($file) { } /** * Set the auth config from new or deprecated JSON config. * This structure should match the file downloaded from * the "Download JSON" button on in the Google Developer * Console. * @param string|array $config the configuration json * @throws \Google\Exception */ public function setAuthConfig($config) { } /** * Use when the service account has been delegated domain wide access. * * @param string $subject an email address account to impersonate */ public function setSubject($subject) { } /** * Declare whether making API calls should make the call immediately, or * return a request which can be called with ->execute(); * * @param boolean $defer True if calls should not be executed right away. */ public function setDefer($defer) { } /** * Whether or not to return raw requests * @return boolean */ public function shouldDefer() { } /** * @return OAuth2 implementation */ public function getOAuth2Service() { } /** * create a default google auth object */ protected function createOAuth2Service() { } /** * Set the Cache object * @param CacheItemPoolInterface $cache */ public function setCache(\ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface $cache) { } /** * @return CacheItemPoolInterface */ public function getCache() { } /** * @param array $cacheConfig */ public function setCacheConfig(array $cacheConfig) { } /** * Set the Logger object * @param LoggerInterface $logger */ public function setLogger(\ForminatorGoogleAddon\Psr\Log\LoggerInterface $logger) { } /** * @return LoggerInterface */ public function getLogger() { } protected function createDefaultLogger() { } protected function createDefaultCache() { } /** * Set the Http Client object * @param ClientInterface $http */ public function setHttpClient(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $http) { } /** * @return ClientInterface */ public function getHttpClient() { } /** * Set the API format version. * * `true` will use V2, which may return more useful error messages. * * @param bool $value */ public function setApiFormatV2($value) { } protected function createDefaultHttpClient() { } /** * @return FetchAuthTokenCache */ private function createApplicationDefaultCredentials() { } protected function getAuthHandler() { } private function createUserRefreshCredentials($scope, $refreshToken) { } private function checkUniverseDomain($credentials) { } public function getUniverseDomain() { } } class Exception extends \Exception { } } namespace ForminatorGoogleAddon\Google\Http { /** * Class to handle batched requests to the Google API service. * * Note that calls to `Google\Http\Batch::execute()` do not clear the queued * requests. To start a new batch, be sure to create a new instance of this * class. */ class Batch { const BATCH_PATH = 'batch'; private static $CONNECTION_ESTABLISHED_HEADERS = ["HTTP/1.0 200 Connection established\r\n\r\n", "HTTP/1.1 200 Connection established\r\n\r\n"]; /** @var string Multipart Boundary. */ private $boundary; /** @var array service requests to be executed. */ private $requests = []; /** @var Client */ private $client; private $rootUrl; private $batchPath; public function __construct(\ForminatorGoogleAddon\Google\Client $client, $boundary = \false, $rootUrl = null, $batchPath = null) { } public function add(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, $key = \false) { } public function execute() { } public function parseResponse(\ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response, $classes = []) { } private function parseRawHeaders($rawHeaders) { } /** * Used by the IO lib and also the batch processing. * * @param string $respData * @param int $headerSize * @return array */ private function parseHttpResponse($respData, $headerSize) { } } /** * Manage large file uploads, which may be media but can be any type * of sizable data. */ class MediaFileUpload { const UPLOAD_MEDIA_TYPE = 'media'; const UPLOAD_MULTIPART_TYPE = 'multipart'; const UPLOAD_RESUMABLE_TYPE = 'resumable'; /** @var string $mimeType */ private $mimeType; /** @var string $data */ private $data; /** @var bool $resumable */ private $resumable; /** @var int $chunkSize */ private $chunkSize; /** @var int $size */ private $size; /** @var string $resumeUri */ private $resumeUri; /** @var int $progress */ private $progress; /** @var Client */ private $client; /** @var RequestInterface */ private $request; /** @var string */ private $boundary; // @phpstan-ignore-line /** * Result code from last HTTP call * @var int */ private $httpResultCode; /** * @param Client $client * @param RequestInterface $request * @param string $mimeType * @param string $data The bytes you want to upload. * @param bool $resumable * @param int $chunkSize File will be uploaded in chunks of this many bytes. * only used if resumable=True */ public function __construct(\ForminatorGoogleAddon\Google\Client $client, \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, $mimeType, $data, $resumable = \false, $chunkSize = 0) { } /** * Set the size of the file that is being uploaded. * @param int $size - int file size in bytes */ public function setFileSize($size) { } /** * Return the progress on the upload * @return int progress in bytes uploaded. */ public function getProgress() { } /** * Send the next part of the file to upload. * @param string|bool $chunk Optional. The next set of bytes to send. If false will * use $data passed at construct time. */ public function nextChunk($chunk = \false) { } /** * Return the HTTP result code from the last call made. * @return int code */ public function getHttpResultCode() { } /** * Sends a PUT-Request to google drive and parses the response, * setting the appropiate variables from the response() * * @param RequestInterface $request the Request which will be send * * @return false|mixed false when the upload is unfinished or the decoded http response * */ private function makePutRequest(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request) { } /** * Resume a previously unfinished upload * @param string $resumeUri the resume-URI of the unfinished, resumable upload. */ public function resume($resumeUri) { } /** * @return RequestInterface * @visible for testing */ private function process() { } /** * Valid upload types: * - resumable (UPLOAD_RESUMABLE_TYPE) * - media (UPLOAD_MEDIA_TYPE) * - multipart (UPLOAD_MULTIPART_TYPE) * @param string|false $meta * @return string * @visible for testing */ public function getUploadType($meta) { } public function getResumeUri() { } private function fetchResumeUri() { } private function transformToUploadUrl() { } public function setChunkSize($chunkSize) { } public function getRequest() { } } /** * This class implements the RESTful transport of apiServiceRequest()'s */ class REST { /** * Executes a Psr\Http\Message\RequestInterface and (if applicable) automatically retries * when errors occur. * * @template T * @param ClientInterface $client * @param RequestInterface $request * @param class-string|false|null $expectedClass * @param array $config * @param array $retryMap * @return mixed|T|null * @throws \Google\Service\Exception on server side error (ie: not authenticated, * invalid or malformed post body, invalid url) */ public static function execute(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $client, \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, $expectedClass = null, $config = [], $retryMap = null) { } /** * Executes a Psr\Http\Message\RequestInterface * * @template T * @param ClientInterface $client * @param RequestInterface $request * @param class-string|false|null $expectedClass * @return mixed|T|null * @throws \Google\Service\Exception on server side error (ie: not authenticated, * invalid or malformed post body, invalid url) */ public static function doExecute(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $client, \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, $expectedClass = null) { } /** * Decode an HTTP Response. * @static * * @template T * @param RequestInterface $response The http response to be decoded. * @param ResponseInterface $response * @param class-string|false|null $expectedClass * @return mixed|T|null * @throws \Google\Service\Exception */ public static function decodeHttpResponse(\ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response, \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request = null, $expectedClass = null) { } private static function decodeBody(\ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response, \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request = null) { } private static function determineExpectedClass($expectedClass, \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request = null) { } private static function getResponseErrors($body) { } private static function isAltMedia(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request = null) { } } } namespace ForminatorGoogleAddon\Google\Service { class Exception extends \ForminatorGoogleAddon\Google\Exception { /** * Optional list of errors returned in a JSON body of an HTTP error response. */ protected $errors = []; /** * Override default constructor to add the ability to set $errors and a retry * map. * * @param string $message * @param int $code * @param Exception|null $previous * @param array>|null $errors List of errors returned in an HTTP * response or null. Defaults to []. */ public function __construct($message, $code = 0, \ForminatorGoogleAddon\Google\Service\Exception $previous = null, $errors = []) { } /** * An example of the possible errors returned. * * [ * { * "domain": "global", * "reason": "authError", * "message": "Invalid Credentials", * "locationType": "header", * "location": "Authorization", * } * ] * * @return array>|null List of errors returned in an HTTP response or null. */ public function getErrors() { } } } namespace ForminatorGoogleAddon\Google\Task { class Composer { /** * @param Event $event Composer event passed in for any script method * @param Filesystem $filesystem Optional. Used for testing. */ public static function cleanup(\ForminatorGoogleAddon\Composer\Script\Event $event, \ForminatorGoogleAddon\Symfony\Component\Filesystem\Filesystem $filesystem = null) { } /** * @throws InvalidArgumentException when the service doesn't exist */ private static function verifyServicesToKeep($serviceDir, array $servicesToKeep) { } private static function getServicesToRemove($serviceDir, array $servicesToKeep) { } } class Exception extends \ForminatorGoogleAddon\Google\Exception { } /** * Interface for checking how many times a given task can be retried following * a failure. */ interface Retryable { } /** * A task runner with exponential backoff support. * * @see https://developers.google.com/drive/web/handle-errors#implementing_exponential_backoff */ class Runner { const TASK_RETRY_NEVER = 0; const TASK_RETRY_ONCE = 1; const TASK_RETRY_ALWAYS = -1; /** * @var integer $maxDelay The max time (in seconds) to wait before a retry. */ private $maxDelay = 60; /** * @var integer $delay The previous delay from which the next is calculated. */ private $delay = 1; /** * @var integer $factor The base number for the exponential back off. */ private $factor = 2; /** * @var float $jitter A random number between -$jitter and $jitter will be * added to $factor on each iteration to allow for a better distribution of * retries. */ private $jitter = 0.5; /** * @var integer $attempts The number of attempts that have been tried so far. */ private $attempts = 0; /** * @var integer $maxAttempts The max number of attempts allowed. */ private $maxAttempts = 1; /** * @var callable $action The task to run and possibly retry. */ private $action; /** * @var array $arguments The task arguments. */ private $arguments; /** * @var array $retryMap Map of errors with retry counts. */ protected $retryMap = [ '500' => self::TASK_RETRY_ALWAYS, '503' => self::TASK_RETRY_ALWAYS, 'rateLimitExceeded' => self::TASK_RETRY_ALWAYS, 'userRateLimitExceeded' => self::TASK_RETRY_ALWAYS, 6 => self::TASK_RETRY_ALWAYS, // CURLE_COULDNT_RESOLVE_HOST 7 => self::TASK_RETRY_ALWAYS, // CURLE_COULDNT_CONNECT 28 => self::TASK_RETRY_ALWAYS, // CURLE_OPERATION_TIMEOUTED 35 => self::TASK_RETRY_ALWAYS, // CURLE_SSL_CONNECT_ERROR 52 => self::TASK_RETRY_ALWAYS, // CURLE_GOT_NOTHING 'lighthouseError' => self::TASK_RETRY_NEVER, ]; /** * Creates a new task runner with exponential backoff support. * * @param array $config The task runner config * @param string $name The name of the current task (used for logging) * @param callable $action The task to run and possibly retry * @param array $arguments The task arguments * @throws \Google\Task\Exception when misconfigured */ // @phpstan-ignore-next-line public function __construct($config, $name, $action, array $arguments = []) { } /** * Checks if a retry can be attempted. * * @return boolean */ public function canAttempt() { } /** * Runs the task and (if applicable) automatically retries when errors occur. * * @return mixed * @throws \Google\Service\Exception on failure when no retries are available. */ public function run() { } /** * Runs a task once, if possible. This is useful for bypassing the `run()` * loop. * * NOTE: If this is not the first attempt, this function will sleep in * accordance to the backoff configurations before running the task. * * @return boolean */ public function attempt() { } /** * Sleeps in accordance to the backoff configurations. */ private function backOff() { } /** * Gets the delay (in seconds) for the current backoff period. * * @return int */ private function getDelay() { } /** * Gets the current jitter (random number between -$this->jitter and * $this->jitter). * * @return float */ private function getJitter() { } /** * Gets the number of times the associated task can be retried. * * NOTE: -1 is returned if the task can be retried indefinitely * * @return integer */ public function allowedRetries($code, $errors = []) { } public function setRetryMap($retryMap) { } } } namespace ForminatorGoogleAddon\Google\Utils { /** * Implementation of levels 1-3 of the URI Template spec. * @see http://tools.ietf.org/html/rfc6570 */ class UriTemplate { const TYPE_MAP = "1"; const TYPE_LIST = "2"; const TYPE_SCALAR = "4"; /** * @var array $operators * These are valid at the start of a template block to * modify the way in which the variables inside are * processed. */ private $operators = ["+" => "reserved", "/" => "segments", "." => "dotprefix", "#" => "fragment", ";" => "semicolon", "?" => "form", "&" => "continuation"]; /** * @var array * These are the characters which should not be URL encoded in reserved * strings. */ private $reserved = ["=", ",", "!", "@", "|", ":", "/", "?", "#", "[", "]", '$', "&", "'", "(", ")", "*", "+", ";"]; private $reservedEncoded = ["%3D", "%2C", "%21", "%40", "%7C", "%3A", "%2F", "%3F", "%23", "%5B", "%5D", "%24", "%26", "%27", "%28", "%29", "%2A", "%2B", "%3B"]; public function parse($string, array $parameters) { } /** * This function finds the first matching {...} block and * executes the replacement. It then calls itself to find * subsequent blocks, if any. */ private function resolveNextSection($string, $parameters) { } private function replace($string, $start, $end, $parameters) { } private function replaceVars($section, $parameters, $sep = ",", $combine = null, $reserved = \false, $tag_empty = \false, $combine_on_empty = \true) { } public function combine($key, $parameters, $sep, $combine, $reserved, $tag_empty, $combine_on_empty) { } /** * Return the type of a passed in value */ private function getDataType($data) { } /** * Utility function that merges multiple combine calls * for multi-key templates. */ private function combineList($vars, $sep, $parameters, $combine, $reserved, $tag_empty, $combine_on_empty) { } /** * Utility function to encode and trim values */ private function getValue($value, $length) { } } } namespace ForminatorGoogleAddon { /** * This class needs to be defined explicitly as scripts must be recognized by * the autoloader. */ class Google_Task_Composer extends \ForminatorGoogleAddon\Google\Task\Composer { } class Google_AccessToken_Revoke extends \ForminatorGoogleAddon\Google\AccessToken\Revoke { } class Google_AccessToken_Verify extends \ForminatorGoogleAddon\Google\AccessToken\Verify { } class Google_AuthHandler_AuthHandlerFactory extends \ForminatorGoogleAddon\Google\AuthHandler\AuthHandlerFactory { } class Google_AuthHandler_Guzzle6AuthHandler extends \ForminatorGoogleAddon\Google\AuthHandler\Guzzle6AuthHandler { } class Google_AuthHandler_Guzzle7AuthHandler extends \ForminatorGoogleAddon\Google\AuthHandler\Guzzle7AuthHandler { } class Google_Client extends \ForminatorGoogleAddon\Google\Client { } class Google_Collection extends \ForminatorGoogleAddon\Google\Collection { } class Google_Exception extends \ForminatorGoogleAddon\Google\Exception { } class Google_Http_Batch extends \ForminatorGoogleAddon\Google\Http\Batch { } class Google_Http_MediaFileUpload extends \ForminatorGoogleAddon\Google\Http\MediaFileUpload { } class Google_Http_REST extends \ForminatorGoogleAddon\Google\Http\REST { } class Google_Model extends \ForminatorGoogleAddon\Google\Model { } class Google_Service extends \ForminatorGoogleAddon\Google\Service { } class Google_Service_Exception extends \ForminatorGoogleAddon\Google\Service\Exception { } class Google_Service_Resource extends \ForminatorGoogleAddon\Google\Service\Resource { } class Google_Task_Exception extends \ForminatorGoogleAddon\Google\Task\Exception { } interface Google_Task_Retryable extends \ForminatorGoogleAddon\Google\Task\Retryable { } class Google_Task_Runner extends \ForminatorGoogleAddon\Google\Task\Runner { } class Google_Utils_UriTemplate extends \ForminatorGoogleAddon\Google\Utils\UriTemplate { } } namespace ForminatorGoogleAddon\Google\Auth { /** * Wrapper around Google Access Tokens which provides convenience functions. * * @experimental */ class AccessToken { const FEDERATED_SIGNON_CERT_URL = 'https://www.googleapis.com/oauth2/v3/certs'; const IAP_CERT_URL = 'https://www.gstatic.com/iap/verify/public_key-jwk'; const IAP_ISSUER = 'https://cloud.google.com/iap'; const OAUTH2_ISSUER = 'accounts.google.com'; const OAUTH2_ISSUER_HTTPS = 'https://accounts.google.com'; const OAUTH2_REVOKE_URI = 'https://oauth2.googleapis.com/revoke'; /** * @var callable */ private $httpHandler; /** * @var CacheItemPoolInterface */ private $cache; /** * @param callable $httpHandler [optional] An HTTP Handler to deliver PSR-7 requests. * @param CacheItemPoolInterface $cache [optional] A PSR-6 compatible cache implementation. */ public function __construct(callable $httpHandler = null, \ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface $cache = null) { } /** * Verifies an id token and returns the authenticated apiLoginTicket. * Throws an exception if the id token is not valid. * The audience parameter can be used to control which id tokens are * accepted. By default, the id token must have been issued to this OAuth2 client. * * @param string $token The JSON Web Token to be verified. * @param array $options [optional] { * Configuration options. * @type string $audience The indended recipient of the token. * @type string $issuer The intended issuer of the token. * @type string $cacheKey The cache key of the cached certs. Defaults to * the sha1 of $certsLocation if provided, otherwise is set to * "federated_signon_certs_v3". * @type string $certsLocation The location (remote or local) from which * to retrieve certificates, if not cached. This value should only be * provided in limited circumstances in which you are sure of the * behavior. * @type bool $throwException Whether the function should throw an * exception if the verification fails. This is useful for * determining the reason verification failed. * } * @return array|false the token payload, if successful, or false if not. * @throws InvalidArgumentException If certs could not be retrieved from a local file. * @throws InvalidArgumentException If received certs are in an invalid format. * @throws InvalidArgumentException If the cert alg is not supported. * @throws RuntimeException If certs could not be retrieved from a remote location. * @throws UnexpectedValueException If the token issuer does not match. * @throws UnexpectedValueException If the token audience does not match. */ public function verify($token, array $options = []) { } /** * Identifies the expected algorithm to verify by looking at the "alg" key * of the provided certs. * * @param array $certs Certificate array according to the JWK spec (see * https://tools.ietf.org/html/rfc7517). * @return string The expected algorithm, such as "ES256" or "RS256". */ private function determineAlg(array $certs) { } /** * Verifies an ES256-signed JWT. * * @param string $token The JSON Web Token to be verified. * @param array $certs Certificate array according to the JWK spec (see * https://tools.ietf.org/html/rfc7517). * @param string|null $audience If set, returns false if the provided * audience does not match the "aud" claim on the JWT. * @param string|null $issuer If set, returns false if the provided * issuer does not match the "iss" claim on the JWT. * @return array the token payload, if successful, or false if not. */ private function verifyEs256($token, array $certs, $audience = null, $issuer = null) { } /** * Verifies an RS256-signed JWT. * * @param string $token The JSON Web Token to be verified. * @param array $certs Certificate array according to the JWK spec (see * https://tools.ietf.org/html/rfc7517). * @param string|null $audience If set, returns false if the provided * audience does not match the "aud" claim on the JWT. * @param string|null $issuer If set, returns false if the provided * issuer does not match the "iss" claim on the JWT. * @return array the token payload, if successful, or false if not. */ private function verifyRs256($token, array $certs, $audience = null, $issuer = null) { } /** * Revoke an OAuth2 access token or refresh token. This method will revoke the current access * token, if a token isn't provided. * * @param string|array $token The token (access token or a refresh token) that should be revoked. * @param array $options [optional] Configuration options. * @return bool Returns True if the revocation was successful, otherwise False. */ public function revoke($token, array $options = []) { } /** * Gets federated sign-on certificates to use for verifying identity tokens. * Returns certs as array structure, where keys are key ids, and values * are PEM encoded certificates. * * @param string $location The location from which to retrieve certs. * @param string $cacheKey The key under which to cache the retrieved certs. * @param array $options [optional] Configuration options. * @return array * @throws InvalidArgumentException If received certs are in an invalid format. */ private function getCerts($location, $cacheKey, array $options = []) { } /** * Retrieve and cache a certificates file. * * @param string $url location * @param array $options [optional] Configuration options. * @return array{array, string} * @throws InvalidArgumentException If certs could not be retrieved from a local file. * @throws RuntimeException If certs could not be retrieved from a remote location. */ private function retrieveCertsFromLocation($url, array $options = []) { } /** * @return void */ private function checkAndInitializePhpsec() { } /** * @return string * @throws TypeError If the key cannot be initialized to a string. */ private function loadPhpsecPublicKey(string $modulus, string $exponent): string { } /** * @return void */ private function checkSimpleJwt() { } /** * Provide a hook to mock calls to the JWT static methods. * * @param string $method * @param array $args * @return mixed */ protected function callJwtStatic($method, array $args = []) { } /** * Provide a hook to mock calls to the JWT static methods. * * @param array $args * @return mixed */ protected function callSimpleJwtDecode(array $args = []) { } /** * Generate a cache key based on the cert location using sha1 with the * exception of using "federated_signon_certs_v3" to preserve BC. * * @param string $certsLocation * @return string */ private function getCacheKeyFromCertLocation($certsLocation) { } } /** * ApplicationDefaultCredentials obtains the default credentials for * authorizing a request to a Google service. * * Application Default Credentials are described here: * https://developers.google.com/accounts/docs/application-default-credentials * * This class implements the search for the application default credentials as * described in the link. * * It provides three factory methods: * - #get returns the computed credentials object * - #getSubscriber returns an AuthTokenSubscriber built from the credentials object * - #getMiddleware returns an AuthTokenMiddleware built from the credentials object * * This allows it to be used as follows with GuzzleHttp\Client: * * ``` * use Google\Auth\ApplicationDefaultCredentials; * use GuzzleHttp\Client; * use GuzzleHttp\HandlerStack; * * $middleware = ApplicationDefaultCredentials::getMiddleware( * 'https://www.googleapis.com/auth/taskqueue' * ); * $stack = HandlerStack::create(); * $stack->push($middleware); * * $client = new Client([ * 'handler' => $stack, * 'base_uri' => 'https://www.googleapis.com/taskqueue/v1beta2/projects/', * 'auth' => 'google_auth' // authorize all requests * ]); * * $res = $client->get('myproject/taskqueues/myqueue'); * ``` */ class ApplicationDefaultCredentials { /** * @deprecated * * Obtains an AuthTokenSubscriber that uses the default FetchAuthTokenInterface * implementation to use in this environment. * * If supplied, $scope is used to in creating the credentials instance if * this does not fallback to the compute engine defaults. * * @param string|string[] $scope the scope of the access request, expressed * either as an Array or as a space-delimited String. * @param callable $httpHandler callback which delivers psr7 request * @param array $cacheConfig configuration for the cache when it's present * @param CacheItemPoolInterface $cache A cache implementation, may be * provided if you have one already available for use. * @return AuthTokenSubscriber * @throws DomainException if no implementation can be obtained. */ public static function getSubscriber( // @phpstan-ignore-line $scope = null, callable $httpHandler = null, array $cacheConfig = null, \ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface $cache = null ) { } /** * Obtains an AuthTokenMiddleware that uses the default FetchAuthTokenInterface * implementation to use in this environment. * * If supplied, $scope is used to in creating the credentials instance if * this does not fallback to the compute engine defaults. * * @param string|string[] $scope the scope of the access request, expressed * either as an Array or as a space-delimited String. * @param callable $httpHandler callback which delivers psr7 request * @param array $cacheConfig configuration for the cache when it's present * @param CacheItemPoolInterface $cache A cache implementation, may be * provided if you have one already available for use. * @param string $quotaProject specifies a project to bill for access * charges associated with the request. * @return AuthTokenMiddleware * @throws DomainException if no implementation can be obtained. */ public static function getMiddleware($scope = null, callable $httpHandler = null, array $cacheConfig = null, \ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface $cache = null, $quotaProject = null) { } /** * Obtains the default FetchAuthTokenInterface implementation to use * in this environment. * * @param string|string[] $scope the scope of the access request, expressed * either as an Array or as a space-delimited String. * @param callable $httpHandler callback which delivers psr7 request * @param array $cacheConfig configuration for the cache when it's present * @param CacheItemPoolInterface $cache A cache implementation, may be * provided if you have one already available for use. * @param string $quotaProject specifies a project to bill for access * charges associated with the request. * @param string|string[] $defaultScope The default scope to use if no * user-defined scopes exist, expressed either as an Array or as a * space-delimited string. * @param string $universeDomain Specifies a universe domain to use for the * calling client library * * @return FetchAuthTokenInterface * @throws DomainException if no implementation can be obtained. */ public static function getCredentials($scope = null, callable $httpHandler = null, array $cacheConfig = null, \ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface $cache = null, $quotaProject = null, $defaultScope = null, string $universeDomain = null) { } /** * Obtains an AuthTokenMiddleware which will fetch an ID token to use in the * Authorization header. The middleware is configured with the default * FetchAuthTokenInterface implementation to use in this environment. * * If supplied, $targetAudience is used to set the "aud" on the resulting * ID token. * * @param string $targetAudience The audience for the ID token. * @param callable $httpHandler callback which delivers psr7 request * @param array $cacheConfig configuration for the cache when it's present * @param CacheItemPoolInterface $cache A cache implementation, may be * provided if you have one already available for use. * @return AuthTokenMiddleware * @throws DomainException if no implementation can be obtained. */ public static function getIdTokenMiddleware($targetAudience, callable $httpHandler = null, array $cacheConfig = null, \ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface $cache = null) { } /** * Obtains an ProxyAuthTokenMiddleware which will fetch an ID token to use in the * Authorization header. The middleware is configured with the default * FetchAuthTokenInterface implementation to use in this environment. * * If supplied, $targetAudience is used to set the "aud" on the resulting * ID token. * * @param string $targetAudience The audience for the ID token. * @param callable $httpHandler callback which delivers psr7 request * @param array $cacheConfig configuration for the cache when it's present * @param CacheItemPoolInterface $cache A cache implementation, may be * provided if you have one already available for use. * @return ProxyAuthTokenMiddleware * @throws DomainException if no implementation can be obtained. */ public static function getProxyIdTokenMiddleware($targetAudience, callable $httpHandler = null, array $cacheConfig = null, \ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface $cache = null) { } /** * Obtains the default FetchAuthTokenInterface implementation to use * in this environment, configured with a $targetAudience for fetching an ID * token. * * @param string $targetAudience The audience for the ID token. * @param callable $httpHandler callback which delivers psr7 request * @param array $cacheConfig configuration for the cache when it's present * @param CacheItemPoolInterface $cache A cache implementation, may be * provided if you have one already available for use. * @return FetchAuthTokenInterface * @throws DomainException if no implementation can be obtained. * @throws InvalidArgumentException if JSON "type" key is invalid */ public static function getIdTokenCredentials($targetAudience, callable $httpHandler = null, array $cacheConfig = null, \ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface $cache = null) { } /** * @return string */ private static function notFound() { } /** * @param callable $httpHandler * @param array $cacheConfig * @param CacheItemPoolInterface $cache * @return bool */ private static function onGce(callable $httpHandler = null, array $cacheConfig = null, \ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface $cache = null) { } } } namespace ForminatorGoogleAddon\Psr\Cache { /** * Exception interface for all exceptions thrown by an Implementing Library. */ interface CacheException { } /** * Exception interface for invalid cache arguments. * * Any time an invalid argument is passed into a method it must throw an * exception class which implements Psr\Cache\InvalidArgumentException. */ interface InvalidArgumentException extends \ForminatorGoogleAddon\Psr\Cache\CacheException { } } namespace ForminatorGoogleAddon\Google\Auth\Cache { class InvalidArgumentException extends \InvalidArgumentException implements \ForminatorGoogleAddon\Psr\Cache\InvalidArgumentException { } } namespace ForminatorGoogleAddon\Psr\Cache { /** * CacheItemInterface defines an interface for interacting with objects inside a cache. * * Each Item object MUST be associated with a specific key, which can be set * according to the implementing system and is typically passed by the * Cache\CacheItemPoolInterface object. * * The Cache\CacheItemInterface object encapsulates the storage and retrieval of * cache items. Each Cache\CacheItemInterface is generated by a * Cache\CacheItemPoolInterface object, which is responsible for any required * setup as well as associating the object with a unique Key. * Cache\CacheItemInterface objects MUST be able to store and retrieve any type * of PHP value defined in the Data section of the specification. * * Calling Libraries MUST NOT instantiate Item objects themselves. They may only * be requested from a Pool object via the getItem() method. Calling Libraries * SHOULD NOT assume that an Item created by one Implementing Library is * compatible with a Pool from another Implementing Library. */ interface CacheItemInterface { /** * Returns the key for the current cache item. * * The key is loaded by the Implementing Library, but should be available to * the higher level callers when needed. * * @return string * The key string for this cache item. */ public function getKey(); /** * Retrieves the value of the item from the cache associated with this object's key. * * The value returned must be identical to the value originally stored by set(). * * If isHit() returns false, this method MUST return null. Note that null * is a legitimate cached value, so the isHit() method SHOULD be used to * differentiate between "null value was found" and "no value was found." * * @return mixed * The value corresponding to this cache item's key, or null if not found. */ public function get(); /** * Confirms if the cache item lookup resulted in a cache hit. * * Note: This method MUST NOT have a race condition between calling isHit() * and calling get(). * * @return bool * True if the request resulted in a cache hit. False otherwise. */ public function isHit(); /** * Sets the value represented by this cache item. * * The $value argument may be any item that can be serialized by PHP, * although the method of serialization is left up to the Implementing * Library. * * @param mixed $value * The serializable value to be stored. * * @return static * The invoked object. */ public function set($value); /** * Sets the expiration time for this cache item. * * @param \DateTimeInterface|null $expiration * The point in time after which the item MUST be considered expired. * If null is passed explicitly, a default value MAY be used. If none is set, * the value should be stored permanently or for as long as the * implementation allows. * * @return static * The called object. */ public function expiresAt($expiration); /** * Sets the expiration time for this cache item. * * @param int|\DateInterval|null $time * The period of time from the present after which the item MUST be considered * expired. An integer parameter is understood to be the time in seconds until * expiration. If null is passed explicitly, a default value MAY be used. * If none is set, the value should be stored permanently or for as long as the * implementation allows. * * @return static * The called object. */ public function expiresAfter($time); } } namespace ForminatorGoogleAddon\Google\Auth\Cache { /** * A cache item. * * This class will be used by MemoryCacheItemPool and SysVCacheItemPool * on PHP 7.4 and below. It is compatible with psr/cache 1.0 and 2.0 (PSR-6). * @see TypedItem for compatiblity with psr/cache 3.0. */ final class Item implements \ForminatorGoogleAddon\Psr\Cache\CacheItemInterface { /** * @var string */ private $key; /** * @var mixed */ private $value; /** * @var DateTimeInterface|null */ private $expiration; /** * @var bool */ private $isHit = \false; /** * @param string $key */ public function __construct($key) { } /** * {@inheritdoc} */ public function getKey() { } /** * {@inheritdoc} */ public function get() { } /** * {@inheritdoc} */ public function isHit() { } /** * {@inheritdoc} */ public function set($value) { } /** * {@inheritdoc} */ public function expiresAt($expiration) { } /** * {@inheritdoc} */ public function expiresAfter($time) { } /** * Determines if an expiration is valid based on the rules defined by PSR6. * * @param mixed $expiration * @return bool */ private function isValidExpiration($expiration) { } /** * @return DateTime */ protected function currentTime() { } } } namespace ForminatorGoogleAddon\Psr\Cache { /** * CacheItemPoolInterface generates CacheItemInterface objects. * * The primary purpose of Cache\CacheItemPoolInterface is to accept a key from * the Calling Library and return the associated Cache\CacheItemInterface object. * It is also the primary point of interaction with the entire cache collection. * All configuration and initialization of the Pool is left up to an * Implementing Library. */ interface CacheItemPoolInterface { /** * Returns a Cache Item representing the specified key. * * This method must always return a CacheItemInterface object, even in case of * a cache miss. It MUST NOT return null. * * @param string $key * The key for which to return the corresponding Cache Item. * * @throws InvalidArgumentException * If the $key string is not a legal value a \Psr\Cache\InvalidArgumentException * MUST be thrown. * * @return CacheItemInterface * The corresponding Cache Item. */ public function getItem($key); /** * Returns a traversable set of cache items. * * @param string[] $keys * An indexed array of keys of items to retrieve. * * @throws InvalidArgumentException * If any of the keys in $keys are not a legal value a \Psr\Cache\InvalidArgumentException * MUST be thrown. * * @return array|\Traversable * A traversable collection of Cache Items keyed by the cache keys of * each item. A Cache item will be returned for each key, even if that * key is not found. However, if no keys are specified then an empty * traversable MUST be returned instead. */ public function getItems(array $keys = array()); /** * Confirms if the cache contains specified cache item. * * Note: This method MAY avoid retrieving the cached value for performance reasons. * This could result in a race condition with CacheItemInterface::get(). To avoid * such situation use CacheItemInterface::isHit() instead. * * @param string $key * The key for which to check existence. * * @throws InvalidArgumentException * If the $key string is not a legal value a \Psr\Cache\InvalidArgumentException * MUST be thrown. * * @return bool * True if item exists in the cache, false otherwise. */ public function hasItem($key); /** * Deletes all items in the pool. * * @return bool * True if the pool was successfully cleared. False if there was an error. */ public function clear(); /** * Removes the item from the pool. * * @param string $key * The key to delete. * * @throws InvalidArgumentException * If the $key string is not a legal value a \Psr\Cache\InvalidArgumentException * MUST be thrown. * * @return bool * True if the item was successfully removed. False if there was an error. */ public function deleteItem($key); /** * Removes multiple items from the pool. * * @param string[] $keys * An array of keys that should be removed from the pool. * @throws InvalidArgumentException * If any of the keys in $keys are not a legal value a \Psr\Cache\InvalidArgumentException * MUST be thrown. * * @return bool * True if the items were successfully removed. False if there was an error. */ public function deleteItems(array $keys); /** * Persists a cache item immediately. * * @param CacheItemInterface $item * The cache item to save. * * @return bool * True if the item was successfully persisted. False if there was an error. */ public function save(\ForminatorGoogleAddon\Psr\Cache\CacheItemInterface $item); /** * Sets a cache item to be persisted later. * * @param CacheItemInterface $item * The cache item to save. * * @return bool * False if the item could not be queued or if a commit was attempted and failed. True otherwise. */ public function saveDeferred(\ForminatorGoogleAddon\Psr\Cache\CacheItemInterface $item); /** * Persists any deferred cache items. * * @return bool * True if all not-yet-saved items were successfully saved or there were none. False otherwise. */ public function commit(); } } namespace ForminatorGoogleAddon\Google\Auth\Cache { /** * Simple in-memory cache implementation. */ final class MemoryCacheItemPool implements \ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface { /** * @var CacheItemInterface[] */ private $items; /** * @var CacheItemInterface[] */ private $deferredItems; /** * {@inheritdoc} * * @return CacheItemInterface The corresponding Cache Item. */ public function getItem($key): \ForminatorGoogleAddon\Psr\Cache\CacheItemInterface { } /** * {@inheritdoc} * * @return iterable * A traversable collection of Cache Items keyed by the cache keys of * each item. A Cache item will be returned for each key, even if that * key is not found. However, if no keys are specified then an empty * traversable MUST be returned instead. */ public function getItems(array $keys = []): iterable { } /** * {@inheritdoc} * * @return bool * True if item exists in the cache, false otherwise. */ public function hasItem($key): bool { } /** * {@inheritdoc} * * @return bool * True if the pool was successfully cleared. False if there was an error. */ public function clear(): bool { } /** * {@inheritdoc} * * @return bool * True if the item was successfully removed. False if there was an error. */ public function deleteItem($key): bool { } /** * {@inheritdoc} * * @return bool * True if the items were successfully removed. False if there was an error. */ public function deleteItems(array $keys): bool { } /** * {@inheritdoc} * * @return bool * True if the item was successfully persisted. False if there was an error. */ public function save(\ForminatorGoogleAddon\Psr\Cache\CacheItemInterface $item): bool { } /** * {@inheritdoc} * * @return bool * False if the item could not be queued or if a commit was attempted and failed. True otherwise. */ public function saveDeferred(\ForminatorGoogleAddon\Psr\Cache\CacheItemInterface $item): bool { } /** * {@inheritdoc} * * @return bool * True if all not-yet-saved items were successfully saved or there were none. False otherwise. */ public function commit(): bool { } /** * Determines if the provided key is valid. * * @param string $key * @return bool * @throws InvalidArgumentException */ private function isValidKey($key) { } } /** * SystemV shared memory based CacheItemPool implementation. * * This CacheItemPool implementation can be used among multiple processes, but * it doesn't provide any locking mechanism. If multiple processes write to * this ItemPool, you have to avoid race condition manually in your code. */ class SysVCacheItemPool implements \ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface { const VAR_KEY = 1; const DEFAULT_PROJ = 'A'; const DEFAULT_MEMSIZE = 10000; const DEFAULT_PERM = 0600; /** * @var int */ private $sysvKey; /** * @var CacheItemInterface[] */ private $items; /** * @var CacheItemInterface[] */ private $deferredItems; /** * @var array */ private $options; /** * @var bool */ private $hasLoadedItems = \false; /** * Create a SystemV shared memory based CacheItemPool. * * @param array $options { * [optional] Configuration options. * * @type int $variableKey The variable key for getting the data from the shared memory. **Defaults to** 1. * @type string $proj The project identifier for ftok. This needs to be a one character string. * **Defaults to** 'A'. * @type int $memsize The memory size in bytes for shm_attach. **Defaults to** 10000. * @type int $perm The permission for shm_attach. **Defaults to** 0600. * } */ public function __construct($options = []) { } /** * @param mixed $key * @return CacheItemInterface */ public function getItem($key): \ForminatorGoogleAddon\Psr\Cache\CacheItemInterface { } /** * @param array $keys * @return iterable */ public function getItems(array $keys = []): iterable { } /** * {@inheritdoc} */ public function hasItem($key): bool { } /** * {@inheritdoc} */ public function clear(): bool { } /** * {@inheritdoc} */ public function deleteItem($key): bool { } /** * {@inheritdoc} */ public function deleteItems(array $keys): bool { } /** * {@inheritdoc} */ public function save(\ForminatorGoogleAddon\Psr\Cache\CacheItemInterface $item): bool { } /** * {@inheritdoc} */ public function saveDeferred(\ForminatorGoogleAddon\Psr\Cache\CacheItemInterface $item): bool { } /** * {@inheritdoc} */ public function commit(): bool { } /** * Save the current items. * * @return bool true when success, false upon failure */ private function saveCurrentItems() { } /** * Load the items from the shared memory. * * @return bool true when success, false upon failure */ private function loadItems() { } } /** * A cache item. * * This class will be used by MemoryCacheItemPool and SysVCacheItemPool * on PHP 8.0 and above. It is compatible with psr/cache 3.0 (PSR-6). * @see Item for compatiblity with previous versions of PHP. */ final class TypedItem implements \ForminatorGoogleAddon\Psr\Cache\CacheItemInterface { /** * @var mixed */ private mixed $value; /** * @var \DateTimeInterface|null */ private ?\DateTimeInterface $expiration; /** * @var bool */ private bool $isHit = \false; /** * @param string $key */ public function __construct(private string $key) { } /** * {@inheritdoc} */ public function getKey(): string { } /** * {@inheritdoc} */ public function get(): mixed { } /** * {@inheritdoc} */ public function isHit(): bool { } /** * {@inheritdoc} */ public function set(mixed $value): static { } /** * {@inheritdoc} */ public function expiresAt($expiration): static { } /** * {@inheritdoc} */ public function expiresAfter($time): static { } /** * Determines if an expiration is valid based on the rules defined by PSR6. * * @param mixed $expiration * @return bool */ private function isValidExpiration($expiration) { } /** * @return \DateTime */ protected function currentTime() { } } } namespace ForminatorGoogleAddon\Google\Auth { trait CacheTrait { /** * @var int */ private $maxKeyLength = 64; /** * @var array */ private $cacheConfig; /** * @var ?CacheItemPoolInterface */ private $cache; /** * Gets the cached value if it is present in the cache when that is * available. * * @param mixed $k * * @return mixed */ private function getCachedValue($k) { } /** * Saves the value in the cache when that is available. * * @param mixed $k * @param mixed $v * @return mixed */ private function setCachedValue($k, $v) { } /** * @param null|string $key * @return null|string */ private function getFullCacheKey($key) { } } interface ExternalAccountCredentialSourceInterface { public function fetchSubjectToken(callable $httpHandler = null): string; } } namespace ForminatorGoogleAddon\Google\Auth\CredentialSource { /** * Authenticates requests using AWS credentials. */ class AwsNativeSource implements \ForminatorGoogleAddon\Google\Auth\ExternalAccountCredentialSourceInterface { private const CRED_VERIFICATION_QUERY = 'Action=GetCallerIdentity&Version=2011-06-15'; private string $audience; private string $regionalCredVerificationUrl; private ?string $regionUrl; private ?string $securityCredentialsUrl; private ?string $imdsv2SessionTokenUrl; /** * @param string $audience The audience for the credential. * @param string $regionalCredVerificationUrl The regional AWS GetCallerIdentity action URL used to determine the * AWS account ID and its roles. This is not called by this library, but * is sent in the subject token to be called by the STS token server. * @param string|null $regionUrl This URL should be used to determine the current AWS region needed for the signed * request construction. * @param string|null $securityCredentialsUrl The AWS metadata server URL used to retrieve the access key, secret * key and security token needed to sign the GetCallerIdentity request. * @param string|null $imdsv2SessionTokenUrl Presence of this URL enforces the auth libraries to fetch a Session * Token from AWS. This field is required for EC2 instances using IMDSv2. */ public function __construct(string $audience, string $regionalCredVerificationUrl, string $regionUrl = null, string $securityCredentialsUrl = null, string $imdsv2SessionTokenUrl = null) { } public function fetchSubjectToken(callable $httpHandler = null): string { } /** * @internal */ public static function getImdsV2SessionToken(string $imdsV2Url, callable $httpHandler): string { } /** * @see http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html * * @internal * * @return array */ public static function getSignedRequestHeaders(string $region, string $host, string $accessKeyId, string $secretAccessKey, ?string $securityToken): array { } /** * @internal */ public static function getRegionFromEnv(): ?string { } /** * @internal * * @param callable $httpHandler * @param string $regionUrl * @param array $headers Request headers to send in with the request. */ public static function getRegionFromUrl(callable $httpHandler, string $regionUrl, array $headers): string { } /** * @internal * * @param callable $httpHandler * @param string $securityCredentialsUrl * @param array $headers Request headers to send in with the request. */ public static function getRoleName(callable $httpHandler, string $securityCredentialsUrl, array $headers): string { } /** * @internal * * @param callable $httpHandler * @param string $securityCredentialsUrl * @param array $headers Request headers to send in with the request. * @return array{string, string, ?string} */ public static function getSigningVarsFromUrl(callable $httpHandler, string $securityCredentialsUrl, string $roleName, array $headers): array { } /** * @internal * * @return array{string, string, ?string} */ public static function getSigningVarsFromEnv(): ?array { } /** * Return HMAC hash in binary string */ private static function hmacSign(string $key, string $msg): string { } /** * @TODO add a fallback when mbstring is not available */ private static function utf8Encode(string $string): string { } private static function getSignatureKey(string $key, string $dateStamp, string $regionName, string $serviceName): string { } } /** * Retrieve a token from a file. */ class FileSource implements \ForminatorGoogleAddon\Google\Auth\ExternalAccountCredentialSourceInterface { private string $file; private ?string $format; private ?string $subjectTokenFieldName; /** * @param string $file The file to read the subject token from. * @param string $format The format of the token in the file. Can be null or "json". * @param string $subjectTokenFieldName The name of the field containing the token in the file. This is required * when format is "json". */ public function __construct(string $file, string $format = null, string $subjectTokenFieldName = null) { } public function fetchSubjectToken(callable $httpHandler = null): string { } } /** * Retrieve a token from a URL. */ class UrlSource implements \ForminatorGoogleAddon\Google\Auth\ExternalAccountCredentialSourceInterface { private string $url; private ?string $format; private ?string $subjectTokenFieldName; /** * @var array */ private ?array $headers; /** * @param string $url The URL to fetch the subject token from. * @param string $format The format of the token in the response. Can be null or "json". * @param string $subjectTokenFieldName The name of the field containing the token in the response. This is required * when format is "json". * @param array $headers Request headers to send in with the request to the URL. */ public function __construct(string $url, string $format = null, string $subjectTokenFieldName = null, array $headers = null) { } public function fetchSubjectToken(callable $httpHandler = null): string { } } } namespace ForminatorGoogleAddon\Google\Auth { /** * An interface implemented by objects that can fetch auth tokens. */ interface FetchAuthTokenInterface { /** * Fetches the auth tokens based on the current state. * * @param callable $httpHandler callback which delivers psr7 request * @return array a hash of auth tokens */ public function fetchAuthToken(callable $httpHandler = null); /** * Obtains a key that can used to cache the results of #fetchAuthToken. * * If the value is empty, the auth token is not cached. * * @return string a key that may be used to cache the auth token. */ public function getCacheKey(); /** * Returns an associative array with the token and * expiration time. * * @return null|array { * The last received access token. * * @type string $access_token The access token string. * @type int $expires_at The time the token expires as a UNIX timestamp. * } */ public function getLastReceivedToken(); } /** * Describes a class which supports signing arbitrary strings. */ interface SignBlobInterface extends \ForminatorGoogleAddon\Google\Auth\FetchAuthTokenInterface { /** * Sign a string using the method which is best for a given credentials type. * * @param string $stringToSign The string to sign. * @param bool $forceOpenssl Require use of OpenSSL for local signing. Does * not apply to signing done using external services. **Defaults to** * `false`. * @return string The resulting signature. Value should be base64-encoded. */ public function signBlob($stringToSign, $forceOpenssl = \false); /** * Returns the current Client Name. * * @param callable $httpHandler callback which delivers psr7 request, if * one is required to obtain a client name. * @return string */ public function getClientName(callable $httpHandler = null); } /** * Describes a Credentials object which supports fetching the project ID. */ interface ProjectIdProviderInterface { /** * Get the project ID. * * @param callable $httpHandler Callback which delivers psr7 request * @return string|null */ public function getProjectId(callable $httpHandler = null); } /** * An interface implemented by objects that can get universe domain for Google Cloud APIs. */ interface GetUniverseDomainInterface { const DEFAULT_UNIVERSE_DOMAIN = 'googleapis.com'; /** * Get the universe domain from the credential. This should always return * a string, and default to "googleapis.com" if no universe domain is * configured. * * @return string */ public function getUniverseDomain(): string; } /** * Describes a Credentials object which supports updating request metadata * (request headers). */ interface UpdateMetadataInterface { const AUTH_METADATA_KEY = 'authorization'; /** * Updates metadata with the authorization token. * * @param array $metadata metadata hashmap * @param string $authUri optional auth uri * @param callable $httpHandler callback which delivers psr7 request * @return array updated metadata hashmap */ public function updateMetadata($metadata, $authUri = null, callable $httpHandler = null); } /** * Provides shared methods for updating request metadata (request headers). * * Should implement {@see UpdateMetadataInterface} and {@see FetchAuthTokenInterface}. * * @internal */ trait UpdateMetadataTrait { /** * export a callback function which updates runtime metadata. * * @return callable updateMetadata function * @deprecated */ public function getUpdateMetadataFunc() { } /** * Updates metadata with the authorization token. * * @param array $metadata metadata hashmap * @param string $authUri optional auth uri * @param callable $httpHandler callback which delivers psr7 request * @return array updated metadata hashmap */ public function updateMetadata($metadata, $authUri = null, callable $httpHandler = null) { } } /** * CredentialsLoader contains the behaviour used to locate and find default * credentials files on the file system. */ abstract class CredentialsLoader implements \ForminatorGoogleAddon\Google\Auth\GetUniverseDomainInterface, \ForminatorGoogleAddon\Google\Auth\FetchAuthTokenInterface, \ForminatorGoogleAddon\Google\Auth\UpdateMetadataInterface { use \ForminatorGoogleAddon\Google\Auth\UpdateMetadataTrait; const TOKEN_CREDENTIAL_URI = 'https://oauth2.googleapis.com/token'; const ENV_VAR = 'GOOGLE_APPLICATION_CREDENTIALS'; const QUOTA_PROJECT_ENV_VAR = 'GOOGLE_CLOUD_QUOTA_PROJECT'; const WELL_KNOWN_PATH = 'gcloud/application_default_credentials.json'; const NON_WINDOWS_WELL_KNOWN_PATH_BASE = '.config'; const MTLS_WELL_KNOWN_PATH = '.secureConnect/context_aware_metadata.json'; const MTLS_CERT_ENV_VAR = 'GOOGLE_API_USE_CLIENT_CERTIFICATE'; /** * @param string $cause * @return string */ private static function unableToReadEnv($cause) { } /** * @return bool */ private static function isOnWindows() { } /** * Load a JSON key from the path specified in the environment. * * Load a JSON key from the path specified in the environment * variable GOOGLE_APPLICATION_CREDENTIALS. Return null if * GOOGLE_APPLICATION_CREDENTIALS is not specified. * * @return array|null JSON key | null */ public static function fromEnv() { } /** * Load a JSON key from a well known path. * * The well known path is OS dependent: * * * windows: %APPDATA%/gcloud/application_default_credentials.json * * others: $HOME/.config/gcloud/application_default_credentials.json * * If the file does not exist, this returns null. * * @return array|null JSON key | null */ public static function fromWellKnownFile() { } /** * Create a new Credentials instance. * * @param string|string[] $scope the scope of the access request, expressed * either as an Array or as a space-delimited String. * @param array $jsonKey the JSON credentials. * @param string|string[] $defaultScope The default scope to use if no * user-defined scopes exist, expressed either as an Array or as a * space-delimited string. * * @return ServiceAccountCredentials|UserRefreshCredentials|ImpersonatedServiceAccountCredentials|ExternalAccountCredentials */ public static function makeCredentials($scope, array $jsonKey, $defaultScope = null) { } /** * Create an authorized HTTP Client from an instance of FetchAuthTokenInterface. * * @param FetchAuthTokenInterface $fetcher is used to fetch the auth token * @param array $httpClientOptions (optional) Array of request options to apply. * @param callable $httpHandler (optional) http client to fetch the token. * @param callable $tokenCallback (optional) function to be called when a new token is fetched. * @return \GuzzleHttp\Client */ public static function makeHttpClient(\ForminatorGoogleAddon\Google\Auth\FetchAuthTokenInterface $fetcher, array $httpClientOptions = [], callable $httpHandler = null, callable $tokenCallback = null) { } /** * Create a new instance of InsecureCredentials. * * @return InsecureCredentials */ public static function makeInsecureCredentials() { } /** * Fetch a quota project from the environment variable * GOOGLE_CLOUD_QUOTA_PROJECT. Return null if * GOOGLE_CLOUD_QUOTA_PROJECT is not specified. * * @return string|null */ public static function quotaProjectFromEnv() { } /** * Gets a callable which returns the default device certification. * * @throws UnexpectedValueException * @return callable|null */ public static function getDefaultClientCertSource() { } /** * Determines whether or not the default device certificate should be loaded. * * @return bool */ public static function shouldLoadClientCertSource() { } /** * @return array{cert_provider_command:string[]}|null */ private static function loadDefaultClientCertSourceFile() { } /** * Get the universe domain from the credential. Defaults to "googleapis.com" * for all credential types which do not support universe domain. * * @return string */ public function getUniverseDomain(): string { } } } namespace ForminatorGoogleAddon\Google\Auth\Credentials { /** * @deprecated * * AppIdentityCredentials supports authorization on Google App Engine. * * It can be used to authorize requests using the AuthTokenMiddleware or * AuthTokenSubscriber, but will only succeed if being run on App Engine: * * Example: * ``` * use Google\Auth\Credentials\AppIdentityCredentials; * use Google\Auth\Middleware\AuthTokenMiddleware; * use GuzzleHttp\Client; * use GuzzleHttp\HandlerStack; * * $gae = new AppIdentityCredentials('https://www.googleapis.com/auth/books'); * $middleware = new AuthTokenMiddleware($gae); * $stack = HandlerStack::create(); * $stack->push($middleware); * * $client = new Client([ * 'handler' => $stack, * 'base_uri' => 'https://www.googleapis.com/books/v1', * 'auth' => 'google_auth' * ]); * * $res = $client->get('volumes?q=Henry+David+Thoreau&country=US'); * ``` */ class AppIdentityCredentials extends \ForminatorGoogleAddon\Google\Auth\CredentialsLoader implements \ForminatorGoogleAddon\Google\Auth\SignBlobInterface, \ForminatorGoogleAddon\Google\Auth\ProjectIdProviderInterface { /** * Result of fetchAuthToken. * * @var array */ protected $lastReceivedToken; /** * Array of OAuth2 scopes to be requested. * * @var string[] */ private $scope; /** * @var string */ private $clientName; /** * @param string|string[] $scope One or more scopes. */ public function __construct($scope = []) { } /** * Determines if this an App Engine instance, by accessing the * SERVER_SOFTWARE environment variable (prod) or the APPENGINE_RUNTIME * environment variable (dev). * * @return bool true if this an App Engine Instance, false otherwise */ public static function onAppEngine() { } /** * Implements FetchAuthTokenInterface#fetchAuthToken. * * Fetches the auth tokens using the AppIdentityService if available. * As the AppIdentityService uses protobufs to fetch the access token, * the GuzzleHttp\ClientInterface instance passed in will not be used. * * @param callable $httpHandler callback which delivers psr7 request * @return array { * A set of auth related metadata, containing the following * * @type string $access_token * @type string $expiration_time * } */ public function fetchAuthToken(callable $httpHandler = null) { } /** * Sign a string using AppIdentityService. * * @param string $stringToSign The string to sign. * @param bool $forceOpenSsl [optional] Does not apply to this credentials * type. * @return string The signature, base64-encoded. * @throws \Exception If AppEngine SDK or mock is not available. */ public function signBlob($stringToSign, $forceOpenSsl = \false) { } /** * Get the project ID from AppIdentityService. * * Returns null if AppIdentityService is unavailable. * * @param callable $httpHandler Not used by this type. * @return string|null */ public function getProjectId(callable $httpHandler = null) { } /** * Get the client name from AppIdentityService. * * Subsequent calls to this method will return a cached value. * * @param callable $httpHandler Not used in this implementation. * @return string * @throws \Exception If AppEngine SDK or mock is not available. */ public function getClientName(callable $httpHandler = null) { } /** * @return array{access_token:string,expires_at:int}|null */ public function getLastReceivedToken() { } /** * Caching is handled by the underlying AppIdentityService, return empty string * to prevent caching. * * @return string */ public function getCacheKey() { } /** * @return void */ private function checkAppEngineContext() { } } } namespace ForminatorGoogleAddon\Google\Auth { /** * An interface implemented by objects that can get quota projects. */ interface GetQuotaProjectInterface { const X_GOOG_USER_PROJECT_HEADER = 'X-Goog-User-Project'; /** * Get the quota project used for this API request * * @return string|null */ public function getQuotaProject(); } } namespace ForminatorGoogleAddon\Google\Auth\Credentials { class ExternalAccountCredentials implements \ForminatorGoogleAddon\Google\Auth\FetchAuthTokenInterface, \ForminatorGoogleAddon\Google\Auth\UpdateMetadataInterface, \ForminatorGoogleAddon\Google\Auth\GetQuotaProjectInterface, \ForminatorGoogleAddon\Google\Auth\GetUniverseDomainInterface, \ForminatorGoogleAddon\Google\Auth\ProjectIdProviderInterface { use \ForminatorGoogleAddon\Google\Auth\UpdateMetadataTrait; private const EXTERNAL_ACCOUNT_TYPE = 'external_account'; private const CLOUD_RESOURCE_MANAGER_URL = 'https://cloudresourcemanager.UNIVERSE_DOMAIN/v1/projects/%s'; private \ForminatorGoogleAddon\Google\Auth\OAuth2 $auth; private ?string $quotaProject; private ?string $serviceAccountImpersonationUrl; private ?string $workforcePoolUserProject; private ?string $projectId; private string $universeDomain; /** * @param string|string[] $scope The scope of the access request, expressed either as an array * or as a space-delimited string. * @param array $jsonKey JSON credentials as an associative array. */ public function __construct($scope, array $jsonKey) { } /** * @param array $jsonKey */ private static function buildCredentialSource(array $jsonKey): \ForminatorGoogleAddon\Google\Auth\ExternalAccountCredentialSourceInterface { } /** * @param string $stsToken * @param callable $httpHandler * * @return array { * A set of auth related metadata, containing the following * * @type string $access_token * @type int $expires_at * } */ private function getImpersonatedAccessToken(string $stsToken, callable $httpHandler = null): array { } /** * @param callable $httpHandler * * @return array { * A set of auth related metadata, containing the following * * @type string $access_token * @type int $expires_at (impersonated service accounts only) * @type int $expires_in (identity pool only) * @type string $issued_token_type (identity pool only) * @type string $token_type (identity pool only) * } */ public function fetchAuthToken(callable $httpHandler = null) { } public function getCacheKey() { } public function getLastReceivedToken() { } /** * Get the quota project used for this API request * * @return string|null */ public function getQuotaProject() { } /** * Get the universe domain used for this API request * * @return string */ public function getUniverseDomain(): string { } /** * Get the project ID. * * @param callable $httpHandler Callback which delivers psr7 request * @param string $accessToken The access token to use to sign the blob. If * provided, saves a call to the metadata server for a new access * token. **Defaults to** `null`. * @return string|null */ public function getProjectId(callable $httpHandler = null, string $accessToken = null) { } private function getProjectNumber(): ?string { } private function isWorkforcePool(): bool { } } } namespace ForminatorGoogleAddon\Google\Auth { trait IamSignerTrait { /** * @var Iam|null */ private $iam; /** * Sign a string using the default service account private key. * * This implementation uses IAM's signBlob API. * * @see https://cloud.google.com/iam/credentials/reference/rest/v1/projects.serviceAccounts/signBlob SignBlob * * @param string $stringToSign The string to sign. * @param bool $forceOpenSsl [optional] Does not apply to this credentials * type. * @param string $accessToken The access token to use to sign the blob. If * provided, saves a call to the metadata server for a new access * token. **Defaults to** `null`. * @return string * @throws Exception */ public function signBlob($stringToSign, $forceOpenSsl = \false, $accessToken = null) { } } } namespace ForminatorGoogleAddon\Google\Auth\Credentials { /** * GCECredentials supports authorization on Google Compute Engine. * * It can be used to authorize requests using the AuthTokenMiddleware, but will * only succeed if being run on GCE: * * use Google\Auth\Credentials\GCECredentials; * use Google\Auth\Middleware\AuthTokenMiddleware; * use GuzzleHttp\Client; * use GuzzleHttp\HandlerStack; * * $gce = new GCECredentials(); * $middleware = new AuthTokenMiddleware($gce); * $stack = HandlerStack::create(); * $stack->push($middleware); * * $client = new Client([ * 'handler' => $stack, * 'base_uri' => 'https://www.googleapis.com/taskqueue/v1beta2/projects/', * 'auth' => 'google_auth' * ]); * * $res = $client->get('myproject/taskqueues/myqueue'); */ class GCECredentials extends \ForminatorGoogleAddon\Google\Auth\CredentialsLoader implements \ForminatorGoogleAddon\Google\Auth\SignBlobInterface, \ForminatorGoogleAddon\Google\Auth\ProjectIdProviderInterface, \ForminatorGoogleAddon\Google\Auth\GetQuotaProjectInterface { use \ForminatorGoogleAddon\Google\Auth\IamSignerTrait; // phpcs:disable const cacheKey = 'GOOGLE_AUTH_PHP_GCE'; // phpcs:enable /** * The metadata IP address on appengine instances. * * The IP is used instead of the domain 'metadata' to avoid slow responses * when not on Compute Engine. */ const METADATA_IP = '169.254.169.254'; /** * The metadata path of the default token. */ const TOKEN_URI_PATH = 'v1/instance/service-accounts/default/token'; /** * The metadata path of the default id token. */ const ID_TOKEN_URI_PATH = 'v1/instance/service-accounts/default/identity'; /** * The metadata path of the client ID. */ const CLIENT_ID_URI_PATH = 'v1/instance/service-accounts/default/email'; /** * The metadata path of the project ID. */ const PROJECT_ID_URI_PATH = 'v1/project/project-id'; /** * The metadata path of the project ID. */ const UNIVERSE_DOMAIN_URI_PATH = 'v1/universe/universe_domain'; /** * The header whose presence indicates GCE presence. */ const FLAVOR_HEADER = 'Metadata-Flavor'; /** * The Linux file which contains the product name. */ private const GKE_PRODUCT_NAME_FILE = '/sys/class/dmi/id/product_name'; /** * Note: the explicit `timeout` and `tries` below is a workaround. The underlying * issue is that resolving an unknown host on some networks will take * 20-30 seconds; making this timeout short fixes the issue, but * could lead to false negatives in the event that we are on GCE, but * the metadata resolution was particularly slow. The latter case is * "unlikely" since the expected 4-nines time is about 0.5 seconds. * This allows us to limit the total ping maximum timeout to 1.5 seconds * for developer desktop scenarios. */ const MAX_COMPUTE_PING_TRIES = 3; const COMPUTE_PING_CONNECTION_TIMEOUT_S = 0.5; /** * Flag used to ensure that the onGCE test is only done once;. * * @var bool */ private $hasCheckedOnGce = \false; /** * Flag that stores the value of the onGCE check. * * @var bool */ private $isOnGce = \false; /** * Result of fetchAuthToken. * * @var array */ protected $lastReceivedToken; /** * @var string|null */ private $clientName; /** * @var string|null */ private $projectId; /** * @var string */ private $tokenUri; /** * @var string */ private $targetAudience; /** * @var string|null */ private $quotaProject; /** * @var string|null */ private $serviceAccountIdentity; /** * @var string */ private ?string $universeDomain; /** * @param Iam $iam [optional] An IAM instance. * @param string|string[] $scope [optional] the scope of the access request, * expressed either as an array or as a space-delimited string. * @param string $targetAudience [optional] The audience for the ID token. * @param string $quotaProject [optional] Specifies a project to bill for access * charges associated with the request. * @param string $serviceAccountIdentity [optional] Specify a service * account identity name to use instead of "default". * @param string $universeDomain [optional] Specify a universe domain to use * instead of fetching one from the metadata server. */ public function __construct(\ForminatorGoogleAddon\Google\Auth\Iam $iam = null, $scope = null, $targetAudience = null, $quotaProject = null, $serviceAccountIdentity = null, string $universeDomain = null) { } /** * The full uri for accessing the default token. * * @param string $serviceAccountIdentity [optional] Specify a service * account identity name to use instead of "default". * @return string */ public static function getTokenUri($serviceAccountIdentity = null) { } /** * The full uri for accessing the default service account. * * @param string $serviceAccountIdentity [optional] Specify a service * account identity name to use instead of "default". * @return string */ public static function getClientNameUri($serviceAccountIdentity = null) { } /** * The full uri for accesesing the default identity token. * * @param string $serviceAccountIdentity [optional] Specify a service * account identity name to use instead of "default". * @return string */ private static function getIdTokenUri($serviceAccountIdentity = null) { } /** * The full uri for accessing the default project ID. * * @return string */ private static function getProjectIdUri() { } /** * The full uri for accessing the default universe domain. * * @return string */ private static function getUniverseDomainUri() { } /** * Determines if this an App Engine Flexible instance, by accessing the * GAE_INSTANCE environment variable. * * @return bool true if this an App Engine Flexible Instance, false otherwise */ public static function onAppEngineFlexible() { } /** * Determines if this a GCE instance, by accessing the expected metadata * host. * If $httpHandler is not specified a the default HttpHandler is used. * * @param callable $httpHandler callback which delivers psr7 request * @return bool True if this a GCEInstance, false otherwise */ public static function onGce(callable $httpHandler = null) { } private static function detectResidencyLinux(string $productNameFile): bool { } /** * Implements FetchAuthTokenInterface#fetchAuthToken. * * Fetches the auth tokens from the GCE metadata host if it is available. * If $httpHandler is not specified a the default HttpHandler is used. * * @param callable $httpHandler callback which delivers psr7 request * * @return array { * A set of auth related metadata, based on the token type. * * @type string $access_token for access tokens * @type int $expires_in for access tokens * @type string $token_type for access tokens * @type string $id_token for ID tokens * } * @throws \Exception */ public function fetchAuthToken(callable $httpHandler = null) { } /** * @return string */ public function getCacheKey() { } /** * @return array|null */ public function getLastReceivedToken() { } /** * Get the client name from GCE metadata. * * Subsequent calls will return a cached value. * * @param callable $httpHandler callback which delivers psr7 request * @return string */ public function getClientName(callable $httpHandler = null) { } /** * Fetch the default Project ID from compute engine. * * Returns null if called outside GCE. * * @param callable $httpHandler Callback which delivers psr7 request * @return string|null */ public function getProjectId(callable $httpHandler = null) { } /** * Fetch the default universe domain from the metadata server. * * @param callable $httpHandler Callback which delivers psr7 request * @return string */ public function getUniverseDomain(callable $httpHandler = null): string { } /** * Fetch the value of a GCE metadata server URI. * * @param callable $httpHandler An HTTP Handler to deliver PSR7 requests. * @param string $uri The metadata URI. * @return string */ private function getFromMetadata(callable $httpHandler, $uri) { } /** * Get the quota project used for this API request * * @return string|null */ public function getQuotaProject() { } /** * Set whether or not we've already checked the GCE environment. * * @param bool $isOnGce * * @return void */ public function setIsOnGce($isOnGce) { } } /** * Authenticates requests using IAM credentials. */ class IAMCredentials { const SELECTOR_KEY = 'x-goog-iam-authority-selector'; const TOKEN_KEY = 'x-goog-iam-authorization-token'; /** * @var string */ private $selector; /** * @var string */ private $token; /** * @param string $selector the IAM selector * @param string $token the IAM token */ public function __construct($selector, $token) { } /** * export a callback function which updates runtime metadata. * * @return callable updateMetadata function */ public function getUpdateMetadataFunc() { } /** * Updates metadata with the appropriate header metadata. * * @param array $metadata metadata hashmap * @param string $unusedAuthUri optional auth uri * @param callable $httpHandler callback which delivers psr7 request * Note: this param is unused here, only included here for * consistency with other credentials class * * @return array updated metadata hashmap */ public function updateMetadata($metadata, $unusedAuthUri = null, callable $httpHandler = null) { } } class ImpersonatedServiceAccountCredentials extends \ForminatorGoogleAddon\Google\Auth\CredentialsLoader implements \ForminatorGoogleAddon\Google\Auth\SignBlobInterface { use \ForminatorGoogleAddon\Google\Auth\IamSignerTrait; /** * @var string */ protected $impersonatedServiceAccountName; /** * @var UserRefreshCredentials */ protected $sourceCredentials; /** * Instantiate an instance of ImpersonatedServiceAccountCredentials from a credentials file that * has be created with the --impersonated-service-account flag. * * @param string|string[] $scope The scope of the access request, expressed either as an * array or as a space-delimited string. * @param string|array $jsonKey JSON credential file path or JSON credentials * as an associative array. */ public function __construct($scope, $jsonKey) { } /** * Helper function for extracting the Server Account Name from the URL saved in the account * credentials file. * * @param $serviceAccountImpersonationUrl string URL from "service_account_impersonation_url" * @return string Service account email or ID. */ private function getImpersonatedServiceAccountNameFromUrl(string $serviceAccountImpersonationUrl): string { } /** * Get the client name from the keyfile * * In this implementation, it will return the issuers email from the oauth token. * * @param callable|null $unusedHttpHandler not used by this credentials type. * @return string Token issuer email */ public function getClientName(callable $unusedHttpHandler = null) { } /** * @param callable $httpHandler * * @return array { * A set of auth related metadata, containing the following * * @type string $access_token * @type int $expires_in * @type string $scope * @type string $token_type * @type string $id_token * } */ public function fetchAuthToken(callable $httpHandler = null) { } /** * @return string */ public function getCacheKey() { } /** * @return array */ public function getLastReceivedToken() { } } /** * Provides a set of credentials that will always return an empty access token. * This is useful for APIs which do not require authentication, for local * service emulators, and for testing. */ class InsecureCredentials implements \ForminatorGoogleAddon\Google\Auth\FetchAuthTokenInterface { /** * @var array{access_token:string} */ private $token = ['access_token' => '']; /** * Fetches the auth token. In this case it returns an empty string. * * @param callable $httpHandler * @return array{access_token:string} A set of auth related metadata */ public function fetchAuthToken(callable $httpHandler = null) { } /** * Returns the cache key. In this case it returns a null value, disabling * caching. * * @return string|null */ public function getCacheKey() { } /** * Fetches the last received token. In this case, it returns the same empty string * auth token. * * @return array{access_token:string} */ public function getLastReceivedToken() { } } } namespace ForminatorGoogleAddon\Google\Auth { /** * Sign a string using a Service Account private key. */ trait ServiceAccountSignerTrait { /** * Sign a string using the service account private key. * * @param string $stringToSign * @param bool $forceOpenssl Whether to use OpenSSL regardless of * whether phpseclib is installed. **Defaults to** `false`. * @return string */ public function signBlob($stringToSign, $forceOpenssl = \false) { } } } namespace ForminatorGoogleAddon\Google\Auth\Credentials { /** * ServiceAccountCredentials supports authorization using a Google service * account. * * (cf https://developers.google.com/accounts/docs/OAuth2ServiceAccount) * * It's initialized using the json key file that's downloadable from developer * console, which should contain a private_key and client_email fields that it * uses. * * Use it with AuthTokenMiddleware to authorize http requests: * * use Google\Auth\Credentials\ServiceAccountCredentials; * use Google\Auth\Middleware\AuthTokenMiddleware; * use GuzzleHttp\Client; * use GuzzleHttp\HandlerStack; * * $sa = new ServiceAccountCredentials( * 'https://www.googleapis.com/auth/taskqueue', * '/path/to/your/json/key_file.json' * ); * $middleware = new AuthTokenMiddleware($sa); * $stack = HandlerStack::create(); * $stack->push($middleware); * * $client = new Client([ * 'handler' => $stack, * 'base_uri' => 'https://www.googleapis.com/taskqueue/v1beta2/projects/', * 'auth' => 'google_auth' // authorize all requests * ]); * * $res = $client->get('myproject/taskqueues/myqueue'); */ class ServiceAccountCredentials extends \ForminatorGoogleAddon\Google\Auth\CredentialsLoader implements \ForminatorGoogleAddon\Google\Auth\GetQuotaProjectInterface, \ForminatorGoogleAddon\Google\Auth\SignBlobInterface, \ForminatorGoogleAddon\Google\Auth\ProjectIdProviderInterface { use \ForminatorGoogleAddon\Google\Auth\ServiceAccountSignerTrait; /** * The OAuth2 instance used to conduct authorization. * * @var OAuth2 */ protected $auth; /** * The quota project associated with the JSON credentials * * @var string */ protected $quotaProject; /** * @var string|null */ protected $projectId; /** * @var array|null */ private $lastReceivedJwtAccessToken; /** * @var bool */ private $useJwtAccessWithScope = \false; /** * @var ServiceAccountJwtAccessCredentials|null */ private $jwtAccessCredentials; /** * @var string */ private string $universeDomain; /** * Create a new ServiceAccountCredentials. * * @param string|string[]|null $scope the scope of the access request, expressed * either as an Array or as a space-delimited String. * @param string|array $jsonKey JSON credential file path or JSON credentials * as an associative array * @param string $sub an email address account to impersonate, in situations when * the service account has been delegated domain wide access. * @param string $targetAudience The audience for the ID token. */ public function __construct($scope, $jsonKey, $sub = null, $targetAudience = null) { } /** * When called, the ServiceAccountCredentials will use an instance of * ServiceAccountJwtAccessCredentials to fetch (self-sign) an access token * even when only scopes are supplied. Otherwise, * ServiceAccountJwtAccessCredentials is only called when no scopes and an * authUrl (audience) is suppled. * * @return void */ public function useJwtAccessWithScope() { } /** * @param callable $httpHandler * * @return array { * A set of auth related metadata, containing the following * * @type string $access_token * @type int $expires_in * @type string $token_type * } */ public function fetchAuthToken(callable $httpHandler = null) { } /** * @return string */ public function getCacheKey() { } /** * @return array */ public function getLastReceivedToken() { } /** * Get the project ID from the service account keyfile. * * Returns null if the project ID does not exist in the keyfile. * * @param callable $httpHandler Not used by this credentials type. * @return string|null */ public function getProjectId(callable $httpHandler = null) { } /** * Updates metadata with the authorization token. * * @param array $metadata metadata hashmap * @param string $authUri optional auth uri * @param callable $httpHandler callback which delivers psr7 request * @return array updated metadata hashmap */ public function updateMetadata($metadata, $authUri = null, callable $httpHandler = null) { } /** * @return ServiceAccountJwtAccessCredentials */ private function createJwtAccessCredentials() { } /** * @param string $sub an email address account to impersonate, in situations when * the service account has been delegated domain wide access. * @return void */ public function setSub($sub) { } /** * Get the client name from the keyfile. * * In this case, it returns the keyfile's client_email key. * * @param callable $httpHandler Not used by this credentials type. * @return string */ public function getClientName(callable $httpHandler = null) { } /** * Get the quota project used for this API request * * @return string|null */ public function getQuotaProject() { } /** * Get the universe domain configured in the JSON credential. * * @return string */ public function getUniverseDomain(): string { } /** * @return bool */ private function useSelfSignedJwt() { } } /** * Authenticates requests using Google's Service Account credentials via * JWT Access. * * This class allows authorizing requests for service accounts directly * from credentials from a json key file downloaded from the developer * console (via 'Generate new Json Key'). It is not part of any OAuth2 * flow, rather it creates a JWT and sends that as a credential. */ class ServiceAccountJwtAccessCredentials extends \ForminatorGoogleAddon\Google\Auth\CredentialsLoader implements \ForminatorGoogleAddon\Google\Auth\GetQuotaProjectInterface, \ForminatorGoogleAddon\Google\Auth\SignBlobInterface, \ForminatorGoogleAddon\Google\Auth\ProjectIdProviderInterface { use \ForminatorGoogleAddon\Google\Auth\ServiceAccountSignerTrait; /** * The OAuth2 instance used to conduct authorization. * * @var OAuth2 */ protected $auth; /** * The quota project associated with the JSON credentials * * @var string */ protected $quotaProject; /** * @var string */ public $projectId; /** * Create a new ServiceAccountJwtAccessCredentials. * * @param string|array $jsonKey JSON credential file path or JSON credentials * as an associative array * @param string|string[] $scope the scope of the access request, expressed * either as an Array or as a space-delimited String. */ public function __construct($jsonKey, $scope = null) { } /** * Updates metadata with the authorization token. * * @param array $metadata metadata hashmap * @param string $authUri optional auth uri * @param callable $httpHandler callback which delivers psr7 request * @return array updated metadata hashmap */ public function updateMetadata($metadata, $authUri = null, callable $httpHandler = null) { } /** * Implements FetchAuthTokenInterface#fetchAuthToken. * * @param callable $httpHandler * * @return null|array{access_token:string} A set of auth related metadata */ public function fetchAuthToken(callable $httpHandler = null) { } /** * @return string */ public function getCacheKey() { } /** * @return array */ public function getLastReceivedToken() { } /** * Get the project ID from the service account keyfile. * * Returns null if the project ID does not exist in the keyfile. * * @param callable $httpHandler Not used by this credentials type. * @return string|null */ public function getProjectId(callable $httpHandler = null) { } /** * Get the client name from the keyfile. * * In this case, it returns the keyfile's client_email key. * * @param callable $httpHandler Not used by this credentials type. * @return string */ public function getClientName(callable $httpHandler = null) { } /** * Get the quota project used for this API request * * @return string|null */ public function getQuotaProject() { } } /** * Authenticates requests using User Refresh credentials. * * This class allows authorizing requests from user refresh tokens. * * This the end of the result of a 3LO flow. E.g, the end result of * 'gcloud auth login' saves a file with these contents in well known * location * * @see [Application Default Credentials](http://goo.gl/mkAHpZ) */ class UserRefreshCredentials extends \ForminatorGoogleAddon\Google\Auth\CredentialsLoader implements \ForminatorGoogleAddon\Google\Auth\GetQuotaProjectInterface { /** * The OAuth2 instance used to conduct authorization. * * @var OAuth2 */ protected $auth; /** * The quota project associated with the JSON credentials * * @var string */ protected $quotaProject; /** * Create a new UserRefreshCredentials. * * @param string|string[] $scope the scope of the access request, expressed * either as an Array or as a space-delimited String. * @param string|array $jsonKey JSON credential file path or JSON credentials * as an associative array */ public function __construct($scope, $jsonKey) { } /** * @param callable $httpHandler * * @return array { * A set of auth related metadata, containing the following * * @type string $access_token * @type int $expires_in * @type string $scope * @type string $token_type * @type string $id_token * } */ public function fetchAuthToken(callable $httpHandler = null) { } /** * @return string */ public function getCacheKey() { } /** * @return array */ public function getLastReceivedToken() { } /** * Get the quota project used for this API request * * @return string|null */ public function getQuotaProject() { } /** * Get the granted scopes (if they exist) for the last fetched token. * * @return string|null */ public function getGrantedScope() { } } } namespace ForminatorGoogleAddon\Google\Auth { /** * A class to implement caching for any object implementing * FetchAuthTokenInterface */ class FetchAuthTokenCache implements \ForminatorGoogleAddon\Google\Auth\FetchAuthTokenInterface, \ForminatorGoogleAddon\Google\Auth\GetQuotaProjectInterface, \ForminatorGoogleAddon\Google\Auth\GetUniverseDomainInterface, \ForminatorGoogleAddon\Google\Auth\SignBlobInterface, \ForminatorGoogleAddon\Google\Auth\ProjectIdProviderInterface, \ForminatorGoogleAddon\Google\Auth\UpdateMetadataInterface { use \ForminatorGoogleAddon\Google\Auth\CacheTrait; /** * @var FetchAuthTokenInterface */ private $fetcher; /** * @var int */ private $eagerRefreshThresholdSeconds = 10; /** * @param FetchAuthTokenInterface $fetcher A credentials fetcher * @param array $cacheConfig Configuration for the cache * @param CacheItemPoolInterface $cache */ public function __construct(\ForminatorGoogleAddon\Google\Auth\FetchAuthTokenInterface $fetcher, array $cacheConfig = null, \ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface $cache) { } /** * @return FetchAuthTokenInterface */ public function getFetcher() { } /** * Implements FetchAuthTokenInterface#fetchAuthToken. * * Checks the cache for a valid auth token and fetches the auth tokens * from the supplied fetcher. * * @param callable $httpHandler callback which delivers psr7 request * @return array the response * @throws \Exception */ public function fetchAuthToken(callable $httpHandler = null) { } /** * @return string */ public function getCacheKey() { } /** * @return array|null */ public function getLastReceivedToken() { } /** * Get the client name from the fetcher. * * @param callable $httpHandler An HTTP handler to deliver PSR7 requests. * @return string */ public function getClientName(callable $httpHandler = null) { } /** * Sign a blob using the fetcher. * * @param string $stringToSign The string to sign. * @param bool $forceOpenSsl Require use of OpenSSL for local signing. Does * not apply to signing done using external services. **Defaults to** * `false`. * @return string The resulting signature. * @throws \RuntimeException If the fetcher does not implement * `Google\Auth\SignBlobInterface`. */ public function signBlob($stringToSign, $forceOpenSsl = \false) { } /** * Get the quota project used for this API request from the credentials * fetcher. * * @return string|null */ public function getQuotaProject() { } /* * Get the Project ID from the fetcher. * * @param callable $httpHandler Callback which delivers psr7 request * @return string|null * @throws \RuntimeException If the fetcher does not implement * `Google\Auth\ProvidesProjectIdInterface`. */ public function getProjectId(callable $httpHandler = null) { } /* * Get the Universe Domain from the fetcher. * * @return string */ public function getUniverseDomain(): string { } /** * Updates metadata with the authorization token. * * @param array $metadata metadata hashmap * @param string $authUri optional auth uri * @param callable $httpHandler callback which delivers psr7 request * @return array updated metadata hashmap * @throws \RuntimeException If the fetcher does not implement * `Google\Auth\UpdateMetadataInterface`. */ public function updateMetadata($metadata, $authUri = null, callable $httpHandler = null) { } /** * @param string|null $authUri * @return array|null */ private function fetchAuthTokenFromCache($authUri = null) { } /** * @param array $authToken * @param string|null $authUri * @return void */ private function saveAuthTokenInCache($authToken, $authUri = null) { } private function getCachedUniverseDomain(\ForminatorGoogleAddon\Google\Auth\GetUniverseDomainInterface $fetcher): string { } } /** * A class to implement caching for calls to GCECredentials::onGce. This class * is used automatically when you pass a `Psr\Cache\CacheItemPoolInterface` * cache object to `ApplicationDefaultCredentials::getCredentials`. * * ``` * $sysvCache = new Google\Auth\SysvCacheItemPool(); * $creds = Google\Auth\ApplicationDefaultCredentials::getCredentials( * $scope, * null, * null, * $sysvCache * ); * ``` */ class GCECache { const GCE_CACHE_KEY = 'google_auth_on_gce_cache'; use \ForminatorGoogleAddon\Google\Auth\CacheTrait; /** * @param array $cacheConfig Configuration for the cache * @param CacheItemPoolInterface $cache */ public function __construct(array $cacheConfig = null, \ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface $cache = null) { } /** * Caches the result of onGce so the metadata server is not called multiple * times. * * @param callable $httpHandler callback which delivers psr7 request * @return bool True if this a GCEInstance, false otherwise */ public function onGce(callable $httpHandler = null) { } } } namespace ForminatorGoogleAddon\Google\Auth\HttpHandler { class Guzzle6HttpHandler { /** * @var ClientInterface */ private $client; /** * @param ClientInterface $client */ public function __construct(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $client) { } /** * Accepts a PSR-7 request and an array of options and returns a PSR-7 response. * * @param RequestInterface $request * @param array $options * @return ResponseInterface */ public function __invoke(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options = []) { } /** * Accepts a PSR-7 request and an array of options and returns a PromiseInterface * * @param RequestInterface $request * @param array $options * * @return \GuzzleHttp\Promise\PromiseInterface */ public function async(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options = []) { } } class Guzzle7HttpHandler extends \ForminatorGoogleAddon\Google\Auth\HttpHandler\Guzzle6HttpHandler { } /** * Stores an HTTP Client in order to prevent multiple instantiations. */ class HttpClientCache { /** * @var ClientInterface|null */ private static $httpClient; /** * Cache an HTTP Client for later calls. * * Passing null will unset the cached client. * * @param ClientInterface|null $client * @return void */ public static function setHttpClient(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $client = null) { } /** * Get the stored HTTP Client, or null. * * @return ClientInterface|null */ public static function getHttpClient() { } } class HttpHandlerFactory { /** * Builds out a default http handler for the installed version of guzzle. * * @param ClientInterface $client * @return Guzzle6HttpHandler|Guzzle7HttpHandler * @throws \Exception */ public static function build(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $client = null) { } } } namespace ForminatorGoogleAddon\Google\Auth { /** * Tools for using the IAM API. * * @see https://cloud.google.com/iam/docs IAM Documentation */ class Iam { /** * @deprecated */ const IAM_API_ROOT = 'https://iamcredentials.googleapis.com/v1'; const SIGN_BLOB_PATH = '%s:signBlob?alt=json'; const SERVICE_ACCOUNT_NAME = 'projects/-/serviceAccounts/%s'; private const IAM_API_ROOT_TEMPLATE = 'https://iamcredentials.UNIVERSE_DOMAIN/v1'; /** * @var callable */ private $httpHandler; private string $universeDomain; /** * @param callable $httpHandler [optional] The HTTP Handler to send requests. */ public function __construct(callable $httpHandler = null, string $universeDomain = \ForminatorGoogleAddon\Google\Auth\GetUniverseDomainInterface::DEFAULT_UNIVERSE_DOMAIN) { } /** * Sign a string using the IAM signBlob API. * * Note that signing using IAM requires your service account to have the * `iam.serviceAccounts.signBlob` permission, part of the "Service Account * Token Creator" IAM role. * * @param string $email The service account email. * @param string $accessToken An access token from the service account. * @param string $stringToSign The string to be signed. * @param array $delegates [optional] A list of service account emails to * add to the delegate chain. If omitted, the value of `$email` will * be used. * @return string The signed string, base64-encoded. */ public function signBlob($email, $accessToken, $stringToSign, array $delegates = []) { } } } namespace ForminatorGoogleAddon\Google\Auth\Middleware { /** * AuthTokenMiddleware is a Guzzle Middleware that adds an Authorization header * provided by an object implementing FetchAuthTokenInterface. * * The FetchAuthTokenInterface#fetchAuthToken is used to obtain a hash; one of * the values value in that hash is added as the authorization header. * * Requests will be accessed with the authorization header: * * 'authorization' 'Bearer ' */ class AuthTokenMiddleware { /** * @var callable */ private $httpHandler; /** * It must be an implementation of FetchAuthTokenInterface. * It may also implement UpdateMetadataInterface allowing direct * retrieval of auth related headers * @var FetchAuthTokenInterface */ private $fetcher; /** * @var ?callable */ private $tokenCallback; /** * Creates a new AuthTokenMiddleware. * * @param FetchAuthTokenInterface $fetcher is used to fetch the auth token * @param callable $httpHandler (optional) callback which delivers psr7 request * @param callable $tokenCallback (optional) function to be called when a new token is fetched. */ public function __construct(\ForminatorGoogleAddon\Google\Auth\FetchAuthTokenInterface $fetcher, callable $httpHandler = null, callable $tokenCallback = null) { } /** * Updates the request with an Authorization header when auth is 'google_auth'. * * use Google\Auth\Middleware\AuthTokenMiddleware; * use Google\Auth\OAuth2; * use GuzzleHttp\Client; * use GuzzleHttp\HandlerStack; * * $config = [...]; * $oauth2 = new OAuth2($config) * $middleware = new AuthTokenMiddleware($oauth2); * $stack = HandlerStack::create(); * $stack->push($middleware); * * $client = new Client([ * 'handler' => $stack, * 'base_uri' => 'https://www.googleapis.com/taskqueue/v1beta2/projects/', * 'auth' => 'google_auth' // authorize all requests * ]); * * $res = $client->get('myproject/taskqueues/myqueue'); * * @param callable $handler * @return \Closure */ public function __invoke(callable $handler) { } /** * Adds auth related headers to the request. * * @param RequestInterface $request * @return RequestInterface */ private function addAuthHeaders(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request) { } /** * @return string|null */ private function getQuotaProject() { } } /** * ProxyAuthTokenMiddleware is a Guzzle Middleware that adds an Authorization header * provided by an object implementing FetchAuthTokenInterface. * * The FetchAuthTokenInterface#fetchAuthToken is used to obtain a hash; one of * the values value in that hash is added as the authorization header. * * Requests will be accessed with the authorization header: * * 'proxy-authorization' 'Bearer ' */ class ProxyAuthTokenMiddleware { /** * @var callable */ private $httpHandler; /** * @var FetchAuthTokenInterface */ private $fetcher; /** * @var ?callable */ private $tokenCallback; /** * Creates a new ProxyAuthTokenMiddleware. * * @param FetchAuthTokenInterface $fetcher is used to fetch the auth token * @param callable $httpHandler (optional) callback which delivers psr7 request * @param callable $tokenCallback (optional) function to be called when a new token is fetched. */ public function __construct(\ForminatorGoogleAddon\Google\Auth\FetchAuthTokenInterface $fetcher, callable $httpHandler = null, callable $tokenCallback = null) { } /** * Updates the request with an Authorization header when auth is 'google_auth'. * * use Google\Auth\Middleware\ProxyAuthTokenMiddleware; * use Google\Auth\OAuth2; * use GuzzleHttp\Client; * use GuzzleHttp\HandlerStack; * * $config = [...]; * $oauth2 = new OAuth2($config) * $middleware = new ProxyAuthTokenMiddleware($oauth2); * $stack = HandlerStack::create(); * $stack->push($middleware); * * $client = new Client([ * 'handler' => $stack, * 'base_uri' => 'https://www.googleapis.com/taskqueue/v1beta2/projects/', * 'proxy_auth' => 'google_auth' // authorize all requests * ]); * * $res = $client->get('myproject/taskqueues/myqueue'); * * @param callable $handler * @return \Closure */ public function __invoke(callable $handler) { } /** * Call fetcher to fetch the token. * * @return string|null */ private function fetchToken() { } /** * @return string|null; */ private function getQuotaProject() { } } /** * ScopedAccessTokenMiddleware is a Guzzle Middleware that adds an Authorization * header provided by a closure. * * The closure returns an access token, taking the scope, either a single * string or an array of strings, as its value. If provided, a cache will be * used to preserve the access token for a given lifetime. * * Requests will be accessed with the authorization header: * * 'authorization' 'Bearer ' */ class ScopedAccessTokenMiddleware { use \ForminatorGoogleAddon\Google\Auth\CacheTrait; const DEFAULT_CACHE_LIFETIME = 1500; /** * @var callable */ private $tokenFunc; /** * @var array|string */ private $scopes; /** * Creates a new ScopedAccessTokenMiddleware. * * @param callable $tokenFunc a token generator function * @param array|string $scopes the token authentication scopes * @param array $cacheConfig configuration for the cache when it's present * @param CacheItemPoolInterface $cache an implementation of CacheItemPoolInterface */ public function __construct(callable $tokenFunc, $scopes, array $cacheConfig = null, \ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface $cache = null) { } /** * Updates the request with an Authorization header when auth is 'scoped'. * * E.g this could be used to authenticate using the AppEngine * AppIdentityService. * * use google\appengine\api\app_identity\AppIdentityService; * use Google\Auth\Middleware\ScopedAccessTokenMiddleware; * use GuzzleHttp\Client; * use GuzzleHttp\HandlerStack; * * $scope = 'https://www.googleapis.com/auth/taskqueue' * $middleware = new ScopedAccessTokenMiddleware( * 'AppIdentityService::getAccessToken', * $scope, * [ 'prefix' => 'Google\Auth\ScopedAccessToken::' ], * $cache = new Memcache() * ); * $stack = HandlerStack::create(); * $stack->push($middleware); * * $client = new Client([ * 'handler' => $stack, * 'base_url' => 'https://www.googleapis.com/taskqueue/v1beta2/projects/', * 'auth' => 'scoped' // authorize all requests * ]); * * $res = $client->get('myproject/taskqueues/myqueue'); * * @param callable $handler * @return \Closure */ public function __invoke(callable $handler) { } /** * @return string */ private function getCacheKey() { } /** * Determine if token is available in the cache, if not call tokenFunc to * fetch it. * * @return string */ private function fetchToken() { } } /** * SimpleMiddleware is a Guzzle Middleware that implements Google's Simple API * access. * * Requests are accessed using the Simple API access developer key. */ class SimpleMiddleware { /** * @var array */ private $config; /** * Create a new Simple plugin. * * The configuration array expects one option * - key: required, otherwise InvalidArgumentException is thrown * * @param array $config Configuration array */ public function __construct(array $config) { } /** * Updates the request query with the developer key if auth is set to simple. * * use Google\Auth\Middleware\SimpleMiddleware; * use GuzzleHttp\Client; * use GuzzleHttp\HandlerStack; * * $my_key = 'is not the same as yours'; * $middleware = new SimpleMiddleware(['key' => $my_key]); * $stack = HandlerStack::create(); * $stack->push($middleware); * * $client = new Client([ * 'handler' => $stack, * 'base_uri' => 'https://www.googleapis.com/discovery/v1/', * 'auth' => 'simple' * ]); * * $res = $client->get('drive/v2/rest'); * * @param callable $handler * @return \Closure */ public function __invoke(callable $handler) { } } } namespace ForminatorGoogleAddon\Google\Auth { /** * OAuth2 supports authentication by OAuth2 2-legged flows. * * It primary supports * - service account authorization * - authorization where a user already has an access token */ class OAuth2 implements \ForminatorGoogleAddon\Google\Auth\FetchAuthTokenInterface { const DEFAULT_EXPIRY_SECONDS = 3600; // 1 hour const DEFAULT_SKEW_SECONDS = 60; // 1 minute const JWT_URN = 'urn:ietf:params:oauth:grant-type:jwt-bearer'; const STS_URN = 'urn:ietf:params:oauth:grant-type:token-exchange'; private const STS_REQUESTED_TOKEN_TYPE = 'urn:ietf:params:oauth:token-type:access_token'; /** * TODO: determine known methods from the keys of JWT::methods. * * @var array */ public static $knownSigningAlgorithms = ['HS256', 'HS512', 'HS384', 'RS256']; /** * The well known grant types. * * @var array */ public static $knownGrantTypes = ['authorization_code', 'refresh_token', 'password', 'client_credentials']; /** * - authorizationUri * The authorization server's HTTP endpoint capable of * authenticating the end-user and obtaining authorization. * * @var ?UriInterface */ private $authorizationUri; /** * - tokenCredentialUri * The authorization server's HTTP endpoint capable of issuing * tokens and refreshing expired tokens. * * @var UriInterface */ private $tokenCredentialUri; /** * The redirection URI used in the initial request. * * @var ?string */ private $redirectUri; /** * A unique identifier issued to the client to identify itself to the * authorization server. * * @var string */ private $clientId; /** * A shared symmetric secret issued by the authorization server, which is * used to authenticate the client. * * @var string */ private $clientSecret; /** * The resource owner's username. * * @var ?string */ private $username; /** * The resource owner's password. * * @var ?string */ private $password; /** * The scope of the access request, expressed either as an Array or as a * space-delimited string. * * @var ?array */ private $scope; /** * An arbitrary string designed to allow the client to maintain state. * * @var string */ private $state; /** * The authorization code issued to this client. * * Only used by the authorization code access grant type. * * @var ?string */ private $code; /** * The issuer ID when using assertion profile. * * @var ?string */ private $issuer; /** * The target audience for assertions. * * @var string */ private $audience; /** * The target sub when issuing assertions. * * @var string */ private $sub; /** * The number of seconds assertions are valid for. * * @var int */ private $expiry; /** * The signing key when using assertion profile. * * @var ?string */ private $signingKey; /** * The signing key id when using assertion profile. Param kid in jwt header * * @var string */ private $signingKeyId; /** * The signing algorithm when using an assertion profile. * * @var ?string */ private $signingAlgorithm; /** * The refresh token associated with the access token to be refreshed. * * @var ?string */ private $refreshToken; /** * The current access token. * * @var string */ private $accessToken; /** * The current ID token. * * @var string */ private $idToken; /** * The scopes granted to the current access token * * @var string */ private $grantedScope; /** * The lifetime in seconds of the current access token. * * @var ?int */ private $expiresIn; /** * The expiration time of the access token as a number of seconds since the * unix epoch. * * @var ?int */ private $expiresAt; /** * The issue time of the access token as a number of seconds since the unix * epoch. * * @var ?int */ private $issuedAt; /** * The current grant type. * * @var ?string */ private $grantType; /** * When using an extension grant type, this is the set of parameters used by * that extension. * * @var array */ private $extensionParams; /** * When using the toJwt function, these claims will be added to the JWT * payload. * * @var array */ private $additionalClaims; /** * The code verifier for PKCE for OAuth 2.0. When set, the authorization * URI will contain the Code Challenge and Code Challenge Method querystring * parameters, and the token URI will contain the Code Verifier parameter. * * @see https://datatracker.ietf.org/doc/html/rfc7636 * @var ?string */ private $codeVerifier; /** * For STS requests. * A URI that indicates the target service or resource where the client * intends to use the requested security token. */ private ?string $resource; /** * For STS requests. * A fetcher for the "subject_token", which is a security token that * represents the identity of the party on behalf of whom the request is * being made. */ private ?\ForminatorGoogleAddon\Google\Auth\ExternalAccountCredentialSourceInterface $subjectTokenFetcher; /** * For STS requests. * An identifier, that indicates the type of the security token in the * subjectToken parameter. */ private ?string $subjectTokenType; /** * For STS requests. * A security token that represents the identity of the acting party. */ private ?string $actorToken; /** * For STS requests. * An identifier that indicates the type of the security token in the * actorToken parameter. */ private ?string $actorTokenType; /** * From STS response. * An identifier for the representation of the issued security token. */ private ?string $issuedTokenType = null; /** * From STS response. * An identifier for the representation of the issued security token. * * @var array */ private array $additionalOptions; /** * Create a new OAuthCredentials. * * The configuration array accepts various options * * - authorizationUri * The authorization server's HTTP endpoint capable of * authenticating the end-user and obtaining authorization. * * - tokenCredentialUri * The authorization server's HTTP endpoint capable of issuing * tokens and refreshing expired tokens. * * - clientId * A unique identifier issued to the client to identify itself to the * authorization server. * * - clientSecret * A shared symmetric secret issued by the authorization server, * which is used to authenticate the client. * * - scope * The scope of the access request, expressed either as an Array * or as a space-delimited String. * * - state * An arbitrary string designed to allow the client to maintain state. * * - redirectUri * The redirection URI used in the initial request. * * - username * The resource owner's username. * * - password * The resource owner's password. * * - issuer * Issuer ID when using assertion profile * * - audience * Target audience for assertions * * - expiry * Number of seconds assertions are valid for * * - signingKey * Signing key when using assertion profile * * - signingKeyId * Signing key id when using assertion profile * * - refreshToken * The refresh token associated with the access token * to be refreshed. * * - accessToken * The current access token for this client. * * - idToken * The current ID token for this client. * * - extensionParams * When using an extension grant type, this is the set of parameters used * by that extension. * * - codeVerifier * The code verifier for PKCE for OAuth 2.0. * * - resource * The target service or resource where the client ntends to use the * requested security token. * * - subjectTokenFetcher * A fetcher for the "subject_token", which is a security token that * represents the identity of the party on behalf of whom the request is * being made. * * - subjectTokenType * An identifier that indicates the type of the security token in the * subjectToken parameter. * * - actorToken * A security token that represents the identity of the acting party. * * - actorTokenType * An identifier for the representation of the issued security token. * * @param array $config Configuration array */ public function __construct(array $config) { } /** * Verifies the idToken if present. * * - if none is present, return null * - if present, but invalid, raises DomainException. * - otherwise returns the payload in the idtoken as a PHP object. * * The behavior of this method varies depending on the version of * `firebase/php-jwt` you are using. In versions 6.0 and above, you cannot * provide multiple $allowed_algs, and instead must provide an array of Key * objects as the $publicKey. * * @param string|Key|Key[] $publicKey The public key to use to authenticate the token * @param string|array $allowed_algs algorithm or array of supported verification algorithms. * Providing more than one algorithm will throw an exception. * @throws \DomainException if the token is missing an audience. * @throws \DomainException if the audience does not match the one set in * the OAuth2 class instance. * @throws \UnexpectedValueException If the token is invalid * @throws \InvalidArgumentException If more than one value for allowed_algs is supplied * @throws \Firebase\JWT\SignatureInvalidException If the signature is invalid. * @throws \Firebase\JWT\BeforeValidException If the token is not yet valid. * @throws \Firebase\JWT\ExpiredException If the token has expired. * @return null|object */ public function verifyIdToken($publicKey = null, $allowed_algs = []) { } /** * Obtains the encoded jwt from the instance data. * * @param array $config array optional configuration parameters * @return string */ public function toJwt(array $config = []) { } /** * Generates a request for token credentials. * * @param callable $httpHandler callback which delivers psr7 request * @return RequestInterface the authorization Url. */ public function generateCredentialsRequest(callable $httpHandler = null) { } /** * Fetches the auth tokens based on the current state. * * @param callable $httpHandler callback which delivers psr7 request * @return array the response */ public function fetchAuthToken(callable $httpHandler = null) { } /** * Obtains a key that can used to cache the results of #fetchAuthToken. * * The key is derived from the scopes. * * @return ?string a key that may be used to cache the auth token. */ public function getCacheKey() { } /** * Parses the fetched tokens. * * @param ResponseInterface $resp the response. * @return array the tokens parsed from the response body. * @throws \Exception */ public function parseTokenResponse(\ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $resp) { } /** * Updates an OAuth 2.0 client. * * Example: * ``` * $oauth->updateToken([ * 'refresh_token' => 'n4E9O119d', * 'access_token' => 'FJQbwq9', * 'expires_in' => 3600 * ]); * ``` * * @param array $config * The configuration parameters related to the token. * * - refresh_token * The refresh token associated with the access token * to be refreshed. * * - access_token * The current access token for this client. * * - id_token * The current ID token for this client. * * - expires_in * The time in seconds until access token expiration. * * - expires_at * The time as an integer number of seconds since the Epoch * * - issued_at * The timestamp that the token was issued at. * @return void */ public function updateToken(array $config) { } /** * Builds the authorization Uri that the user should be redirected to. * * @param array $config configuration options that customize the return url. * @return UriInterface the authorization Url. * @throws InvalidArgumentException */ public function buildFullAuthorizationUri(array $config = []) { } /** * @return string|null */ public function getCodeVerifier(): ?string { } /** * A cryptographically random string that is used to correlate the * authorization request to the token request. * * The code verifier for PKCE for OAuth 2.0. When set, the authorization * URI will contain the Code Challenge and Code Challenge Method querystring * parameters, and the token URI will contain the Code Verifier parameter. * * @see https://datatracker.ietf.org/doc/html/rfc7636 * * @param string|null $codeVerifier */ public function setCodeVerifier(?string $codeVerifier): void { } /** * Generates a random 128-character string for the "code_verifier" parameter * in PKCE for OAuth 2.0. This is a cryptographically random string that is * determined using random_int, hashed using "hash" and sha256, and base64 * encoded. * * When this method is called, the code verifier is set on the object. * * @return string */ public function generateCodeVerifier(): string { } private function getCodeChallenge(string $randomString): string { } private function getCodeChallengeMethod(): string { } private function generateRandomString(int $length): string { } /** * Sets the authorization server's HTTP endpoint capable of authenticating * the end-user and obtaining authorization. * * @param string $uri * @return void */ public function setAuthorizationUri($uri) { } /** * Gets the authorization server's HTTP endpoint capable of authenticating * the end-user and obtaining authorization. * * @return ?UriInterface */ public function getAuthorizationUri() { } /** * Gets the authorization server's HTTP endpoint capable of issuing tokens * and refreshing expired tokens. * * @return ?UriInterface */ public function getTokenCredentialUri() { } /** * Sets the authorization server's HTTP endpoint capable of issuing tokens * and refreshing expired tokens. * * @param string $uri * @return void */ public function setTokenCredentialUri($uri) { } /** * Gets the redirection URI used in the initial request. * * @return ?string */ public function getRedirectUri() { } /** * Sets the redirection URI used in the initial request. * * @param ?string $uri * @return void */ public function setRedirectUri($uri) { } /** * Gets the scope of the access requests as a space-delimited String. * * @return ?string */ public function getScope() { } /** * Sets the scope of the access request, expressed either as an Array or as * a space-delimited String. * * @param string|array|null $scope * @return void * @throws InvalidArgumentException */ public function setScope($scope) { } /** * Gets the current grant type. * * @return ?string */ public function getGrantType() { } /** * Sets the current grant type. * * @param string $grantType * @return void * @throws InvalidArgumentException */ public function setGrantType($grantType) { } /** * Gets an arbitrary string designed to allow the client to maintain state. * * @return string */ public function getState() { } /** * Sets an arbitrary string designed to allow the client to maintain state. * * @param string $state * @return void */ public function setState($state) { } /** * Gets the authorization code issued to this client. * * @return string */ public function getCode() { } /** * Sets the authorization code issued to this client. * * @param string $code * @return void */ public function setCode($code) { } /** * Gets the resource owner's username. * * @return string */ public function getUsername() { } /** * Sets the resource owner's username. * * @param string $username * @return void */ public function setUsername($username) { } /** * Gets the resource owner's password. * * @return string */ public function getPassword() { } /** * Sets the resource owner's password. * * @param string $password * @return void */ public function setPassword($password) { } /** * Sets a unique identifier issued to the client to identify itself to the * authorization server. * * @return string */ public function getClientId() { } /** * Sets a unique identifier issued to the client to identify itself to the * authorization server. * * @param string $clientId * @return void */ public function setClientId($clientId) { } /** * Gets a shared symmetric secret issued by the authorization server, which * is used to authenticate the client. * * @return string */ public function getClientSecret() { } /** * Sets a shared symmetric secret issued by the authorization server, which * is used to authenticate the client. * * @param string $clientSecret * @return void */ public function setClientSecret($clientSecret) { } /** * Gets the Issuer ID when using assertion profile. * * @return ?string */ public function getIssuer() { } /** * Sets the Issuer ID when using assertion profile. * * @param string $issuer * @return void */ public function setIssuer($issuer) { } /** * Gets the target sub when issuing assertions. * * @return ?string */ public function getSub() { } /** * Sets the target sub when issuing assertions. * * @param string $sub * @return void */ public function setSub($sub) { } /** * Gets the target audience when issuing assertions. * * @return ?string */ public function getAudience() { } /** * Sets the target audience when issuing assertions. * * @param string $audience * @return void */ public function setAudience($audience) { } /** * Gets the signing key when using an assertion profile. * * @return ?string */ public function getSigningKey() { } /** * Sets the signing key when using an assertion profile. * * @param string $signingKey * @return void */ public function setSigningKey($signingKey) { } /** * Gets the signing key id when using an assertion profile. * * @return ?string */ public function getSigningKeyId() { } /** * Sets the signing key id when using an assertion profile. * * @param string $signingKeyId * @return void */ public function setSigningKeyId($signingKeyId) { } /** * Gets the signing algorithm when using an assertion profile. * * @return ?string */ public function getSigningAlgorithm() { } /** * Sets the signing algorithm when using an assertion profile. * * @param ?string $signingAlgorithm * @return void */ public function setSigningAlgorithm($signingAlgorithm) { } /** * Gets the set of parameters used by extension when using an extension * grant type. * * @return array */ public function getExtensionParams() { } /** * Sets the set of parameters used by extension when using an extension * grant type. * * @param array $extensionParams * @return void */ public function setExtensionParams($extensionParams) { } /** * Gets the number of seconds assertions are valid for. * * @return int */ public function getExpiry() { } /** * Sets the number of seconds assertions are valid for. * * @param int $expiry * @return void */ public function setExpiry($expiry) { } /** * Gets the lifetime of the access token in seconds. * * @return int */ public function getExpiresIn() { } /** * Sets the lifetime of the access token in seconds. * * @param ?int $expiresIn * @return void */ public function setExpiresIn($expiresIn) { } /** * Gets the time the current access token expires at. * * @return ?int */ public function getExpiresAt() { } /** * Returns true if the acccess token has expired. * * @return bool */ public function isExpired() { } /** * Sets the time the current access token expires at. * * @param int $expiresAt * @return void */ public function setExpiresAt($expiresAt) { } /** * Gets the time the current access token was issued at. * * @return ?int */ public function getIssuedAt() { } /** * Sets the time the current access token was issued at. * * @param int $issuedAt * @return void */ public function setIssuedAt($issuedAt) { } /** * Gets the current access token. * * @return ?string */ public function getAccessToken() { } /** * Sets the current access token. * * @param string $accessToken * @return void */ public function setAccessToken($accessToken) { } /** * Gets the current ID token. * * @return ?string */ public function getIdToken() { } /** * Sets the current ID token. * * @param string $idToken * @return void */ public function setIdToken($idToken) { } /** * Get the granted space-separated scopes (if they exist) for the last * fetched token. * * @return string|null */ public function getGrantedScope() { } /** * Sets the current ID token. * * @param string $grantedScope * @return void */ public function setGrantedScope($grantedScope) { } /** * Gets the refresh token associated with the current access token. * * @return ?string */ public function getRefreshToken() { } /** * Sets the refresh token associated with the current access token. * * @param string $refreshToken * @return void */ public function setRefreshToken($refreshToken) { } /** * Sets additional claims to be included in the JWT token * * @param array $additionalClaims * @return void */ public function setAdditionalClaims(array $additionalClaims) { } /** * Gets the additional claims to be included in the JWT token. * * @return array */ public function getAdditionalClaims() { } /** * Gets the additional claims to be included in the JWT token. * * @return ?string */ public function getIssuedTokenType() { } /** * The expiration of the last received token. * * @return array|null */ public function getLastReceivedToken() { } /** * Get the client ID. * * Alias of {@see Google\Auth\OAuth2::getClientId()}. * * @param callable $httpHandler * @return string * @access private */ public function getClientName(callable $httpHandler = null) { } /** * @todo handle uri as array * * @param ?string $uri * @return null|UriInterface */ private function coerceUri($uri) { } /** * @param string $idToken * @param Key|Key[]|string|string[] $publicKey * @param string|string[] $allowedAlgs * @return object */ private function jwtDecode($idToken, $publicKey, $allowedAlgs) { } /** * @param Key|Key[]|string|string[] $publicKey * @param string|string[] $allowedAlgs * @return Key[] */ private function getFirebaseJwtKeys($publicKey, $allowedAlgs) { } /** * Determines if the URI is absolute based on its scheme and host or path * (RFC 3986). * * @param string $uri * @return bool */ private function isAbsoluteUri($uri) { } /** * @param array $params * @return array */ private function addClientCredentials(&$params) { } } } namespace ForminatorGoogleAddon\GuzzleHttp { interface BodySummarizerInterface { /** * Returns a summarized message body. */ public function summarize(\ForminatorGoogleAddon\Psr\Http\Message\MessageInterface $message): ?string; } final class BodySummarizer implements \ForminatorGoogleAddon\GuzzleHttp\BodySummarizerInterface { /** * @var int|null */ private $truncateAt; public function __construct(?int $truncateAt = null) { } /** * Returns a summarized message body. */ public function summarize(\ForminatorGoogleAddon\Psr\Http\Message\MessageInterface $message): ?string { } } /** * Client interface for sending HTTP requests. */ interface ClientInterface { /** * The Guzzle major version. */ public const MAJOR_VERSION = 7; /** * Send an HTTP request. * * @param RequestInterface $request Request to send * @param array $options Request options to apply to the given * request and to the transfer. * * @throws GuzzleException */ public function send(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options = []): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface; /** * Asynchronously send an HTTP request. * * @param RequestInterface $request Request to send * @param array $options Request options to apply to the given * request and to the transfer. */ public function sendAsync(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options = []): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface; /** * Create and send an HTTP request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. * * @param string $method HTTP method. * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. * * @throws GuzzleException */ public function request(string $method, $uri, array $options = []): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface; /** * Create and send an asynchronous HTTP request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. Use an array to provide a URL * template and additional variables to use in the URL template expansion. * * @param string $method HTTP method * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. */ public function requestAsync(string $method, $uri, array $options = []): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface; /** * Get a client configuration option. * * These options include default request options of the client, a "handler" * (if utilized by the concrete client), and a "base_uri" if utilized by * the concrete client. * * @param string|null $option The config option to retrieve. * * @return mixed * * @deprecated ClientInterface::getConfig will be removed in guzzlehttp/guzzle:8.0. */ public function getConfig(?string $option = null); } } namespace ForminatorGoogleAddon\Psr\Http\Client { interface ClientInterface { /** * Sends a PSR-7 request and returns a PSR-7 response. * * @param RequestInterface $request * * @return ResponseInterface * * @throws \Psr\Http\Client\ClientExceptionInterface If an error happens while processing the request. */ public function sendRequest(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface; } } namespace ForminatorGoogleAddon\GuzzleHttp { /** * Client interface for sending HTTP requests. */ trait ClientTrait { /** * Create and send an HTTP request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. * * @param string $method HTTP method. * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. * * @throws GuzzleException */ abstract public function request(string $method, $uri, array $options = []): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface; /** * Create and send an HTTP GET request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. * * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. * * @throws GuzzleException */ public function get($uri, array $options = []): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { } /** * Create and send an HTTP HEAD request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. * * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. * * @throws GuzzleException */ public function head($uri, array $options = []): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { } /** * Create and send an HTTP PUT request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. * * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. * * @throws GuzzleException */ public function put($uri, array $options = []): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { } /** * Create and send an HTTP POST request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. * * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. * * @throws GuzzleException */ public function post($uri, array $options = []): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { } /** * Create and send an HTTP PATCH request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. * * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. * * @throws GuzzleException */ public function patch($uri, array $options = []): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { } /** * Create and send an HTTP DELETE request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. * * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. * * @throws GuzzleException */ public function delete($uri, array $options = []): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { } /** * Create and send an asynchronous HTTP request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. Use an array to provide a URL * template and additional variables to use in the URL template expansion. * * @param string $method HTTP method * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. */ abstract public function requestAsync(string $method, $uri, array $options = []): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface; /** * Create and send an asynchronous HTTP GET request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. Use an array to provide a URL * template and additional variables to use in the URL template expansion. * * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. */ public function getAsync($uri, array $options = []): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Create and send an asynchronous HTTP HEAD request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. Use an array to provide a URL * template and additional variables to use in the URL template expansion. * * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. */ public function headAsync($uri, array $options = []): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Create and send an asynchronous HTTP PUT request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. Use an array to provide a URL * template and additional variables to use in the URL template expansion. * * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. */ public function putAsync($uri, array $options = []): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Create and send an asynchronous HTTP POST request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. Use an array to provide a URL * template and additional variables to use in the URL template expansion. * * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. */ public function postAsync($uri, array $options = []): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Create and send an asynchronous HTTP PATCH request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. Use an array to provide a URL * template and additional variables to use in the URL template expansion. * * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. */ public function patchAsync($uri, array $options = []): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Create and send an asynchronous HTTP DELETE request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. Use an array to provide a URL * template and additional variables to use in the URL template expansion. * * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. */ public function deleteAsync($uri, array $options = []): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } } /** * @final */ class Client implements \ForminatorGoogleAddon\GuzzleHttp\ClientInterface, \ForminatorGoogleAddon\Psr\Http\Client\ClientInterface { use \ForminatorGoogleAddon\GuzzleHttp\ClientTrait; /** * @var array Default request options */ private $config; /** * Clients accept an array of constructor parameters. * * Here's an example of creating a client using a base_uri and an array of * default request options to apply to each request: * * $client = new Client([ * 'base_uri' => 'http://www.foo.com/1.0/', * 'timeout' => 0, * 'allow_redirects' => false, * 'proxy' => '192.168.16.1:10' * ]); * * Client configuration settings include the following options: * * - handler: (callable) Function that transfers HTTP requests over the * wire. The function is called with a Psr7\Http\Message\RequestInterface * and array of transfer options, and must return a * GuzzleHttp\Promise\PromiseInterface that is fulfilled with a * Psr7\Http\Message\ResponseInterface on success. * If no handler is provided, a default handler will be created * that enables all of the request options below by attaching all of the * default middleware to the handler. * - base_uri: (string|UriInterface) Base URI of the client that is merged * into relative URIs. Can be a string or instance of UriInterface. * - **: any request option * * @param array $config Client configuration settings. * * @see RequestOptions for a list of available request options. */ public function __construct(array $config = []) { } /** * @param string $method * @param array $args * * @return PromiseInterface|ResponseInterface * * @deprecated Client::__call will be removed in guzzlehttp/guzzle:8.0. */ public function __call($method, $args) { } /** * Asynchronously send an HTTP request. * * @param array $options Request options to apply to the given * request and to the transfer. See \GuzzleHttp\RequestOptions. */ public function sendAsync(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options = []): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Send an HTTP request. * * @param array $options Request options to apply to the given * request and to the transfer. See \GuzzleHttp\RequestOptions. * * @throws GuzzleException */ public function send(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options = []): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { } /** * The HttpClient PSR (PSR-18) specify this method. * * {@inheritDoc} */ public function sendRequest(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { } /** * Create and send an asynchronous HTTP request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. Use an array to provide a URL * template and additional variables to use in the URL template expansion. * * @param string $method HTTP method * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. See \GuzzleHttp\RequestOptions. */ public function requestAsync(string $method, $uri = '', array $options = []): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Create and send an HTTP request. * * Use an absolute path to override the base path of the client, or a * relative path to append to the base path of the client. The URL can * contain the query string as well. * * @param string $method HTTP method. * @param string|UriInterface $uri URI object or string. * @param array $options Request options to apply. See \GuzzleHttp\RequestOptions. * * @throws GuzzleException */ public function request(string $method, $uri = '', array $options = []): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { } /** * Get a client configuration option. * * These options include default request options of the client, a "handler" * (if utilized by the concrete client), and a "base_uri" if utilized by * the concrete client. * * @param string|null $option The config option to retrieve. * * @return mixed * * @deprecated Client::getConfig will be removed in guzzlehttp/guzzle:8.0. */ public function getConfig(?string $option = null) { } private function buildUri(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri, array $config): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } /** * Configures the default options for a client. */ private function configureDefaults(array $config): void { } /** * Merges default options into the array. * * @param array $options Options to modify by reference */ private function prepareDefaults(array $options): array { } /** * Transfers the given request and applies request options. * * The URI of the request is not modified and the request options are used * as-is without merging in default options. * * @param array $options See \GuzzleHttp\RequestOptions. */ private function transfer(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Applies the array of request options to a request. */ private function applyOptions(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array &$options): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface { } /** * Return an InvalidArgumentException with pre-set message. */ private function invalidBody(): \ForminatorGoogleAddon\GuzzleHttp\Exception\InvalidArgumentException { } } } namespace ForminatorGoogleAddon\GuzzleHttp\Cookie { /** * Stores HTTP cookies. * * It extracts cookies from HTTP requests, and returns them in HTTP responses. * CookieJarInterface instances automatically expire contained cookies when * necessary. Subclasses are also responsible for storing and retrieving * cookies from a file, database, etc. * * @see https://docs.python.org/2/library/cookielib.html Inspiration * * @extends \IteratorAggregate */ interface CookieJarInterface extends \Countable, \IteratorAggregate { /** * Create a request with added cookie headers. * * If no matching cookies are found in the cookie jar, then no Cookie * header is added to the request and the same request is returned. * * @param RequestInterface $request Request object to modify. * * @return RequestInterface returns the modified request. */ public function withCookieHeader(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface; /** * Extract cookies from an HTTP response and store them in the CookieJar. * * @param RequestInterface $request Request that was sent * @param ResponseInterface $response Response that was received */ public function extractCookies(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response): void; /** * Sets a cookie in the cookie jar. * * @param SetCookie $cookie Cookie to set. * * @return bool Returns true on success or false on failure */ public function setCookie(\ForminatorGoogleAddon\GuzzleHttp\Cookie\SetCookie $cookie): bool; /** * Remove cookies currently held in the cookie jar. * * Invoking this method without arguments will empty the whole cookie jar. * If given a $domain argument only cookies belonging to that domain will * be removed. If given a $domain and $path argument, cookies belonging to * the specified path within that domain are removed. If given all three * arguments, then the cookie with the specified name, path and domain is * removed. * * @param string|null $domain Clears cookies matching a domain * @param string|null $path Clears cookies matching a domain and path * @param string|null $name Clears cookies matching a domain, path, and name */ public function clear(?string $domain = null, ?string $path = null, ?string $name = null): void; /** * Discard all sessions cookies. * * Removes cookies that don't have an expire field or a have a discard * field set to true. To be called when the user agent shuts down according * to RFC 2965. */ public function clearSessionCookies(): void; /** * Converts the cookie jar to an array. */ public function toArray(): array; } /** * Cookie jar that stores cookies as an array */ class CookieJar implements \ForminatorGoogleAddon\GuzzleHttp\Cookie\CookieJarInterface { /** * @var SetCookie[] Loaded cookie data */ private $cookies = []; /** * @var bool */ private $strictMode; /** * @param bool $strictMode Set to true to throw exceptions when invalid * cookies are added to the cookie jar. * @param array $cookieArray Array of SetCookie objects or a hash of * arrays that can be used with the SetCookie * constructor */ public function __construct(bool $strictMode = \false, array $cookieArray = []) { } /** * Create a new Cookie jar from an associative array and domain. * * @param array $cookies Cookies to create the jar from * @param string $domain Domain to set the cookies to */ public static function fromArray(array $cookies, string $domain): self { } /** * Evaluate if this cookie should be persisted to storage * that survives between requests. * * @param SetCookie $cookie Being evaluated. * @param bool $allowSessionCookies If we should persist session cookies */ public static function shouldPersist(\ForminatorGoogleAddon\GuzzleHttp\Cookie\SetCookie $cookie, bool $allowSessionCookies = \false): bool { } /** * Finds and returns the cookie based on the name * * @param string $name cookie name to search for * * @return SetCookie|null cookie that was found or null if not found */ public function getCookieByName(string $name): ?\ForminatorGoogleAddon\GuzzleHttp\Cookie\SetCookie { } public function toArray(): array { } public function clear(?string $domain = null, ?string $path = null, ?string $name = null): void { } public function clearSessionCookies(): void { } public function setCookie(\ForminatorGoogleAddon\GuzzleHttp\Cookie\SetCookie $cookie): bool { } public function count(): int { } /** * @return \ArrayIterator */ public function getIterator(): \ArrayIterator { } public function extractCookies(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response): void { } /** * Computes cookie path following RFC 6265 section 5.1.4 * * @see https://datatracker.ietf.org/doc/html/rfc6265#section-5.1.4 */ private function getCookiePathFromRequest(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request): string { } public function withCookieHeader(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface { } /** * If a cookie already exists and the server asks to set it again with a * null value, the cookie must be deleted. */ private function removeCookieIfEmpty(\ForminatorGoogleAddon\GuzzleHttp\Cookie\SetCookie $cookie): void { } } /** * Persists non-session cookies using a JSON formatted file */ class FileCookieJar extends \ForminatorGoogleAddon\GuzzleHttp\Cookie\CookieJar { /** * @var string filename */ private $filename; /** * @var bool Control whether to persist session cookies or not. */ private $storeSessionCookies; /** * Create a new FileCookieJar object * * @param string $cookieFile File to store the cookie data * @param bool $storeSessionCookies Set to true to store session cookies * in the cookie jar. * * @throws \RuntimeException if the file cannot be found or created */ public function __construct(string $cookieFile, bool $storeSessionCookies = \false) { } /** * Saves the file when shutting down */ public function __destruct() { } /** * Saves the cookies to a file. * * @param string $filename File to save * * @throws \RuntimeException if the file cannot be found or created */ public function save(string $filename): void { } /** * Load cookies from a JSON formatted file. * * Old cookies are kept unless overwritten by newly loaded ones. * * @param string $filename Cookie file to load. * * @throws \RuntimeException if the file cannot be loaded. */ public function load(string $filename): void { } } /** * Persists cookies in the client session */ class SessionCookieJar extends \ForminatorGoogleAddon\GuzzleHttp\Cookie\CookieJar { /** * @var string session key */ private $sessionKey; /** * @var bool Control whether to persist session cookies or not. */ private $storeSessionCookies; /** * Create a new SessionCookieJar object * * @param string $sessionKey Session key name to store the cookie * data in session * @param bool $storeSessionCookies Set to true to store session cookies * in the cookie jar. */ public function __construct(string $sessionKey, bool $storeSessionCookies = \false) { } /** * Saves cookies to session when shutting down */ public function __destruct() { } /** * Save cookies to the client session */ public function save(): void { } /** * Load the contents of the client session into the data array */ protected function load(): void { } } /** * Set-Cookie object */ class SetCookie { /** * @var array */ private static $defaults = ['Name' => null, 'Value' => null, 'Domain' => null, 'Path' => '/', 'Max-Age' => null, 'Expires' => null, 'Secure' => \false, 'Discard' => \false, 'HttpOnly' => \false]; /** * @var array Cookie data */ private $data; /** * Create a new SetCookie object from a string. * * @param string $cookie Set-Cookie header string */ public static function fromString(string $cookie): self { } /** * @param array $data Array of cookie data provided by a Cookie parser */ public function __construct(array $data = []) { } public function __toString() { } public function toArray(): array { } /** * Get the cookie name. * * @return string */ public function getName() { } /** * Set the cookie name. * * @param string $name Cookie name */ public function setName($name): void { } /** * Get the cookie value. * * @return string|null */ public function getValue() { } /** * Set the cookie value. * * @param string $value Cookie value */ public function setValue($value): void { } /** * Get the domain. * * @return string|null */ public function getDomain() { } /** * Set the domain of the cookie. * * @param string|null $domain */ public function setDomain($domain): void { } /** * Get the path. * * @return string */ public function getPath() { } /** * Set the path of the cookie. * * @param string $path Path of the cookie */ public function setPath($path): void { } /** * Maximum lifetime of the cookie in seconds. * * @return int|null */ public function getMaxAge() { } /** * Set the max-age of the cookie. * * @param int|null $maxAge Max age of the cookie in seconds */ public function setMaxAge($maxAge): void { } /** * The UNIX timestamp when the cookie Expires. * * @return string|int|null */ public function getExpires() { } /** * Set the unix timestamp for which the cookie will expire. * * @param int|string|null $timestamp Unix timestamp or any English textual datetime description. */ public function setExpires($timestamp): void { } /** * Get whether or not this is a secure cookie. * * @return bool */ public function getSecure() { } /** * Set whether or not the cookie is secure. * * @param bool $secure Set to true or false if secure */ public function setSecure($secure): void { } /** * Get whether or not this is a session cookie. * * @return bool|null */ public function getDiscard() { } /** * Set whether or not this is a session cookie. * * @param bool $discard Set to true or false if this is a session cookie */ public function setDiscard($discard): void { } /** * Get whether or not this is an HTTP only cookie. * * @return bool */ public function getHttpOnly() { } /** * Set whether or not this is an HTTP only cookie. * * @param bool $httpOnly Set to true or false if this is HTTP only */ public function setHttpOnly($httpOnly): void { } /** * Check if the cookie matches a path value. * * A request-path path-matches a given cookie-path if at least one of * the following conditions holds: * * - The cookie-path and the request-path are identical. * - The cookie-path is a prefix of the request-path, and the last * character of the cookie-path is %x2F ("/"). * - The cookie-path is a prefix of the request-path, and the first * character of the request-path that is not included in the cookie- * path is a %x2F ("/") character. * * @param string $requestPath Path to check against */ public function matchesPath(string $requestPath): bool { } /** * Check if the cookie matches a domain value. * * @param string $domain Domain to check against */ public function matchesDomain(string $domain): bool { } /** * Check if the cookie is expired. */ public function isExpired(): bool { } /** * Check if the cookie is valid according to RFC 6265. * * @return bool|string Returns true if valid or an error message if invalid */ public function validate() { } } } namespace ForminatorGoogleAddon\Psr\Http\Client { /** * Every HTTP client related exception MUST implement this interface. */ interface ClientExceptionInterface extends \Throwable { } /** * Exception for when a request failed. * * Examples: * - Request is invalid (e.g. method is missing) * - Runtime request errors (e.g. the body stream is not seekable) */ interface RequestExceptionInterface extends \ForminatorGoogleAddon\Psr\Http\Client\ClientExceptionInterface { /** * Returns the request. * * The request object MAY be a different object from the one passed to ClientInterface::sendRequest() * * @return RequestInterface */ public function getRequest(): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface; } } namespace ForminatorGoogleAddon\GuzzleHttp\Exception { interface GuzzleException extends \ForminatorGoogleAddon\Psr\Http\Client\ClientExceptionInterface { } class TransferException extends \RuntimeException implements \ForminatorGoogleAddon\GuzzleHttp\Exception\GuzzleException { } /** * HTTP Request exception */ class RequestException extends \ForminatorGoogleAddon\GuzzleHttp\Exception\TransferException implements \ForminatorGoogleAddon\Psr\Http\Client\RequestExceptionInterface { /** * @var RequestInterface */ private $request; /** * @var ResponseInterface|null */ private $response; /** * @var array */ private $handlerContext; public function __construct(string $message, \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, ?\ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response = null, ?\Throwable $previous = null, array $handlerContext = []) { } /** * Wrap non-RequestExceptions with a RequestException */ public static function wrapException(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, \Throwable $e): \ForminatorGoogleAddon\GuzzleHttp\Exception\RequestException { } /** * Factory method to create a new exception with a normalized error message * * @param RequestInterface $request Request sent * @param ResponseInterface $response Response received * @param \Throwable|null $previous Previous exception * @param array $handlerContext Optional handler context * @param BodySummarizerInterface|null $bodySummarizer Optional body summarizer */ public static function create(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, ?\ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response = null, ?\Throwable $previous = null, array $handlerContext = [], ?\ForminatorGoogleAddon\GuzzleHttp\BodySummarizerInterface $bodySummarizer = null): self { } /** * Get the request that caused the exception */ public function getRequest(): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface { } /** * Get the associated response */ public function getResponse(): ?\ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { } /** * Check if a response was received */ public function hasResponse(): bool { } /** * Get contextual information about the error from the underlying handler. * * The contents of this array will vary depending on which handler you are * using. It may also be just an empty array. Relying on this data will * couple you to a specific handler, but can give more debug information * when needed. */ public function getHandlerContext(): array { } } /** * Exception when an HTTP error occurs (4xx or 5xx error) */ class BadResponseException extends \ForminatorGoogleAddon\GuzzleHttp\Exception\RequestException { public function __construct(string $message, \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response, ?\Throwable $previous = null, array $handlerContext = []) { } /** * Current exception and the ones that extend it will always have a response. */ public function hasResponse(): bool { } /** * This function narrows the return type from the parent class and does not allow it to be nullable. */ public function getResponse(): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { } } /** * Exception when a client error is encountered (4xx codes) */ class ClientException extends \ForminatorGoogleAddon\GuzzleHttp\Exception\BadResponseException { } } namespace ForminatorGoogleAddon\Psr\Http\Client { /** * Thrown when the request cannot be completed because of network issues. * * There is no response object as this exception is thrown when no response has been received. * * Example: the target host name can not be resolved or the connection failed. */ interface NetworkExceptionInterface extends \ForminatorGoogleAddon\Psr\Http\Client\ClientExceptionInterface { /** * Returns the request. * * The request object MAY be a different object from the one passed to ClientInterface::sendRequest() * * @return RequestInterface */ public function getRequest(): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface; } } namespace ForminatorGoogleAddon\GuzzleHttp\Exception { /** * Exception thrown when a connection cannot be established. * * Note that no response is present for a ConnectException */ class ConnectException extends \ForminatorGoogleAddon\GuzzleHttp\Exception\TransferException implements \ForminatorGoogleAddon\Psr\Http\Client\NetworkExceptionInterface { /** * @var RequestInterface */ private $request; /** * @var array */ private $handlerContext; public function __construct(string $message, \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, ?\Throwable $previous = null, array $handlerContext = []) { } /** * Get the request that caused the exception */ public function getRequest(): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface { } /** * Get contextual information about the error from the underlying handler. * * The contents of this array will vary depending on which handler you are * using. It may also be just an empty array. Relying on this data will * couple you to a specific handler, but can give more debug information * when needed. */ public function getHandlerContext(): array { } } final class InvalidArgumentException extends \InvalidArgumentException implements \ForminatorGoogleAddon\GuzzleHttp\Exception\GuzzleException { } /** * Exception when a server error is encountered (5xx codes) */ class ServerException extends \ForminatorGoogleAddon\GuzzleHttp\Exception\BadResponseException { } class TooManyRedirectsException extends \ForminatorGoogleAddon\GuzzleHttp\Exception\RequestException { } } namespace ForminatorGoogleAddon\GuzzleHttp\Handler { interface CurlFactoryInterface { /** * Creates a cURL handle resource. * * @param RequestInterface $request Request * @param array $options Transfer options * * @throws \RuntimeException when an option cannot be applied */ public function create(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options): \ForminatorGoogleAddon\GuzzleHttp\Handler\EasyHandle; /** * Release an easy handle, allowing it to be reused or closed. * * This function must call unset on the easy handle's "handle" property. */ public function release(\ForminatorGoogleAddon\GuzzleHttp\Handler\EasyHandle $easy): void; } /** * Creates curl resources from a request * * @final */ class CurlFactory implements \ForminatorGoogleAddon\GuzzleHttp\Handler\CurlFactoryInterface { public const CURL_VERSION_STR = 'curl_version'; /** * @deprecated */ public const LOW_CURL_VERSION_NUMBER = '7.21.2'; /** * @var resource[]|\CurlHandle[] */ private $handles = []; /** * @var int Total number of idle handles to keep in cache */ private $maxHandles; /** * @param int $maxHandles Maximum number of idle handles. */ public function __construct(int $maxHandles) { } public function create(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options): \ForminatorGoogleAddon\GuzzleHttp\Handler\EasyHandle { } private static function supportsHttp2(): bool { } private static function supportsTls12(): bool { } private static function supportsTls13(): bool { } public function release(\ForminatorGoogleAddon\GuzzleHttp\Handler\EasyHandle $easy): void { } /** * Completes a cURL transaction, either returning a response promise or a * rejected promise. * * @param callable(RequestInterface, array): PromiseInterface $handler * @param CurlFactoryInterface $factory Dictates how the handle is released */ public static function finish(callable $handler, \ForminatorGoogleAddon\GuzzleHttp\Handler\EasyHandle $easy, \ForminatorGoogleAddon\GuzzleHttp\Handler\CurlFactoryInterface $factory): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } private static function invokeStats(\ForminatorGoogleAddon\GuzzleHttp\Handler\EasyHandle $easy): void { } /** * @param callable(RequestInterface, array): PromiseInterface $handler */ private static function finishError(callable $handler, \ForminatorGoogleAddon\GuzzleHttp\Handler\EasyHandle $easy, \ForminatorGoogleAddon\GuzzleHttp\Handler\CurlFactoryInterface $factory): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } private static function getCurlVersion(): string { } private static function createRejection(\ForminatorGoogleAddon\GuzzleHttp\Handler\EasyHandle $easy, array $ctx): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } private static function sanitizeCurlError(string $error, \ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri): string { } /** * @return array */ private function getDefaultConf(\ForminatorGoogleAddon\GuzzleHttp\Handler\EasyHandle $easy): array { } private function applyMethod(\ForminatorGoogleAddon\GuzzleHttp\Handler\EasyHandle $easy, array &$conf): void { } private function applyBody(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options, array &$conf): void { } private function applyHeaders(\ForminatorGoogleAddon\GuzzleHttp\Handler\EasyHandle $easy, array &$conf): void { } /** * Remove a header from the options array. * * @param string $name Case-insensitive header to remove * @param array $options Array of options to modify */ private function removeHeader(string $name, array &$options): void { } private function applyHandlerOptions(\ForminatorGoogleAddon\GuzzleHttp\Handler\EasyHandle $easy, array &$conf): void { } /** * This function ensures that a response was set on a transaction. If one * was not set, then the request is retried if possible. This error * typically means you are sending a payload, curl encountered a * "Connection died, retrying a fresh connect" error, tried to rewind the * stream, and then encountered a "necessary data rewind wasn't possible" * error, causing the request to be sent through curl_multi_info_read() * without an error status. * * @param callable(RequestInterface, array): PromiseInterface $handler */ private static function retryFailedRewind(callable $handler, \ForminatorGoogleAddon\GuzzleHttp\Handler\EasyHandle $easy, array $ctx): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } private function createHeaderFn(\ForminatorGoogleAddon\GuzzleHttp\Handler\EasyHandle $easy): callable { } public function __destruct() { } } /** * HTTP handler that uses cURL easy handles as a transport layer. * * When using the CurlHandler, custom curl options can be specified as an * associative array of curl option constants mapping to values in the * **curl** key of the "client" key of the request. * * @final */ class CurlHandler { /** * @var CurlFactoryInterface */ private $factory; /** * Accepts an associative array of options: * * - handle_factory: Optional curl factory used to create cURL handles. * * @param array{handle_factory?: ?CurlFactoryInterface} $options Array of options to use with the handler */ public function __construct(array $options = []) { } public function __invoke(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } } /** * Returns an asynchronous response using curl_multi_* functions. * * When using the CurlMultiHandler, custom curl options can be specified as an * associative array of curl option constants mapping to values in the * **curl** key of the provided request options. * * @final */ class CurlMultiHandler { /** * @var CurlFactoryInterface */ private $factory; /** * @var int */ private $selectTimeout; /** * @var int Will be higher than 0 when `curl_multi_exec` is still running. */ private $active = 0; /** * @var array Request entry handles, indexed by handle id in `addRequest`. * * @see CurlMultiHandler::addRequest */ private $handles = []; /** * @var array An array of delay times, indexed by handle id in `addRequest`. * * @see CurlMultiHandler::addRequest */ private $delays = []; /** * @var array An associative array of CURLMOPT_* options and corresponding values for curl_multi_setopt() */ private $options = []; /** @var resource|\CurlMultiHandle */ private $_mh; /** * This handler accepts the following options: * * - handle_factory: An optional factory used to create curl handles * - select_timeout: Optional timeout (in seconds) to block before timing * out while selecting curl handles. Defaults to 1 second. * - options: An associative array of CURLMOPT_* options and * corresponding values for curl_multi_setopt() */ public function __construct(array $options = []) { } /** * @param string $name * * @return resource|\CurlMultiHandle * * @throws \BadMethodCallException when another field as `_mh` will be gotten * @throws \RuntimeException when curl can not initialize a multi handle */ public function __get($name) { } public function __destruct() { } public function __invoke(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Ticks the curl event loop. */ public function tick(): void { } /** * Runs \curl_multi_exec() inside the event loop, to prevent busy looping */ private function tickInQueue(): void { } /** * Runs until all outstanding connections have completed. */ public function execute(): void { } private function addRequest(array $entry): void { } /** * Cancels a handle from sending and removes references to it. * * @param int $id Handle ID to cancel and remove. * * @return bool True on success, false on failure. */ private function cancel($id): bool { } private function processMessages(): void { } private function timeToNext(): int { } } /** * Represents a cURL easy handle and the data it populates. * * @internal */ final class EasyHandle { /** * @var resource|\CurlHandle cURL resource */ public $handle; /** * @var StreamInterface Where data is being written */ public $sink; /** * @var array Received HTTP headers so far */ public $headers = []; /** * @var ResponseInterface|null Received response (if any) */ public $response; /** * @var RequestInterface Request being sent */ public $request; /** * @var array Request options */ public $options = []; /** * @var int cURL error number (if any) */ public $errno = 0; /** * @var \Throwable|null Exception during on_headers (if any) */ public $onHeadersException; /** * @var \Exception|null Exception during createResponse (if any) */ public $createResponseException; /** * Attach a response to the easy handle based on the received headers. * * @throws \RuntimeException if no headers have been received or the first * header line is invalid. */ public function createResponse(): void { } /** * @param string $name * * @return void * * @throws \BadMethodCallException */ public function __get($name) { } } /** * @internal */ final class HeaderProcessor { /** * Returns the HTTP version, status code, reason phrase, and headers. * * @param string[] $headers * * @return array{0:string, 1:int, 2:?string, 3:array} * * @throws \RuntimeException */ public static function parseHeaders(array $headers): array { } } /** * Handler that returns responses or throw exceptions from a queue. * * @final */ class MockHandler implements \Countable { /** * @var array */ private $queue = []; /** * @var RequestInterface|null */ private $lastRequest; /** * @var array */ private $lastOptions = []; /** * @var callable|null */ private $onFulfilled; /** * @var callable|null */ private $onRejected; /** * Creates a new MockHandler that uses the default handler stack list of * middlewares. * * @param array|null $queue Array of responses, callables, or exceptions. * @param callable|null $onFulfilled Callback to invoke when the return value is fulfilled. * @param callable|null $onRejected Callback to invoke when the return value is rejected. */ public static function createWithMiddleware(?array $queue = null, ?callable $onFulfilled = null, ?callable $onRejected = null): \ForminatorGoogleAddon\GuzzleHttp\HandlerStack { } /** * The passed in value must be an array of * {@see ResponseInterface} objects, Exceptions, * callables, or Promises. * * @param array|null $queue The parameters to be passed to the append function, as an indexed array. * @param callable|null $onFulfilled Callback to invoke when the return value is fulfilled. * @param callable|null $onRejected Callback to invoke when the return value is rejected. */ public function __construct(?array $queue = null, ?callable $onFulfilled = null, ?callable $onRejected = null) { } public function __invoke(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Adds one or more variadic requests, exceptions, callables, or promises * to the queue. * * @param mixed ...$values */ public function append(...$values): void { } /** * Get the last received request. */ public function getLastRequest(): ?\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface { } /** * Get the last received request options. */ public function getLastOptions(): array { } /** * Returns the number of remaining items in the queue. */ public function count(): int { } public function reset(): void { } /** * @param mixed $reason Promise or reason. */ private function invokeStats(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options, ?\ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response = null, $reason = null): void { } } /** * Provides basic proxies for handlers. * * @final */ class Proxy { /** * Sends synchronous requests to a specific handler while sending all other * requests to another handler. * * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $default Handler used for normal responses * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $sync Handler used for synchronous responses. * * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the composed handler. */ public static function wrapSync(callable $default, callable $sync): callable { } /** * Sends streaming requests to a streaming compatible handler while sending * all other requests to a default handler. * * This, for example, could be useful for taking advantage of the * performance benefits of curl while still supporting true streaming * through the StreamHandler. * * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $default Handler used for non-streaming responses * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $streaming Handler used for streaming responses * * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the composed handler. */ public static function wrapStreaming(callable $default, callable $streaming): callable { } } /** * HTTP handler that uses PHP's HTTP stream wrapper. * * @final */ class StreamHandler { /** * @var array */ private $lastHeaders = []; /** * Sends an HTTP request. * * @param RequestInterface $request Request to send. * @param array $options Request transfer options. */ public function __invoke(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } private function invokeStats(array $options, \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, ?float $startTime, ?\ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response = null, ?\Throwable $error = null): void { } /** * @param resource $stream */ private function createResponse(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options, $stream, ?float $startTime): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } private function createSink(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream, array $options): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { } /** * @param resource $stream */ private function checkDecode(array $options, array $headers, $stream): array { } /** * Drains the source stream into the "sink" client option. * * @param string $contentLength Header specifying the amount of * data to read. * * @throws \RuntimeException when the sink option is invalid. */ private function drain(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $source, \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $sink, string $contentLength): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { } /** * Create a resource and check to ensure it was created successfully * * @param callable $callback Callable that returns stream resource * * @return resource * * @throws \RuntimeException on error */ private function createResource(callable $callback) { } /** * @return resource */ private function createStream(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options) { } private function resolveHost(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } private function getDefaultContext(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request): array { } /** * @param mixed $value as passed via Request transfer options. */ private function add_proxy(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params): void { } /** * Parses the given proxy URL to make it compatible with the format PHP's stream context expects. */ private function parse_proxy(string $url): array { } /** * @param mixed $value as passed via Request transfer options. */ private function add_timeout(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params): void { } /** * @param mixed $value as passed via Request transfer options. */ private function add_crypto_method(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params): void { } /** * @param mixed $value as passed via Request transfer options. */ private function add_verify(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params): void { } /** * @param mixed $value as passed via Request transfer options. */ private function add_cert(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params): void { } /** * @param mixed $value as passed via Request transfer options. */ private function add_progress(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params): void { } /** * @param mixed $value as passed via Request transfer options. */ private function add_debug(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params): void { } private static function addNotification(array &$params, callable $notify): void { } private static function callArray(array $functions): callable { } } } namespace ForminatorGoogleAddon\GuzzleHttp { /** * Creates a composed Guzzle handler function by stacking middlewares on top of * an HTTP handler function. * * @final */ class HandlerStack { /** * @var (callable(RequestInterface, array): PromiseInterface)|null */ private $handler; /** * @var array{(callable(callable(RequestInterface, array): PromiseInterface): callable), (string|null)}[] */ private $stack = []; /** * @var (callable(RequestInterface, array): PromiseInterface)|null */ private $cached; /** * Creates a default handler stack that can be used by clients. * * The returned handler will wrap the provided handler or use the most * appropriate default handler for your system. The returned HandlerStack has * support for cookies, redirects, HTTP error exceptions, and preparing a body * before sending. * * The returned handler stack can be passed to a client in the "handler" * option. * * @param (callable(RequestInterface, array): PromiseInterface)|null $handler HTTP handler function to use with the stack. If no * handler is provided, the best handler for your * system will be utilized. */ public static function create(?callable $handler = null): self { } /** * @param (callable(RequestInterface, array): PromiseInterface)|null $handler Underlying HTTP handler. */ public function __construct(?callable $handler = null) { } /** * Invokes the handler stack as a composed handler * * @return ResponseInterface|PromiseInterface */ public function __invoke(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options) { } /** * Dumps a string representation of the stack. * * @return string */ public function __toString() { } /** * Set the HTTP handler that actually returns a promise. * * @param callable(RequestInterface, array): PromiseInterface $handler Accepts a request and array of options and * returns a Promise. */ public function setHandler(callable $handler): void { } /** * Returns true if the builder has a handler. */ public function hasHandler(): bool { } /** * Unshift a middleware to the bottom of the stack. * * @param callable(callable): callable $middleware Middleware function * @param string $name Name to register for this middleware. */ public function unshift(callable $middleware, ?string $name = null): void { } /** * Push a middleware to the top of the stack. * * @param callable(callable): callable $middleware Middleware function * @param string $name Name to register for this middleware. */ public function push(callable $middleware, string $name = ''): void { } /** * Add a middleware before another middleware by name. * * @param string $findName Middleware to find * @param callable(callable): callable $middleware Middleware function * @param string $withName Name to register for this middleware. */ public function before(string $findName, callable $middleware, string $withName = ''): void { } /** * Add a middleware after another middleware by name. * * @param string $findName Middleware to find * @param callable(callable): callable $middleware Middleware function * @param string $withName Name to register for this middleware. */ public function after(string $findName, callable $middleware, string $withName = ''): void { } /** * Remove a middleware by instance or name from the stack. * * @param callable|string $remove Middleware to remove by instance or name. */ public function remove($remove): void { } /** * Compose the middleware and handler into a single callable function. * * @return callable(RequestInterface, array): PromiseInterface */ public function resolve(): callable { } private function findByName(string $name): int { } /** * Splices a function into the middleware list at a specific position. */ private function splice(string $findName, string $withName, callable $middleware, bool $before): void { } /** * Provides a debug string for a given callable. * * @param callable|string $fn Function to write as a string. */ private function debugCallable($fn): string { } } interface MessageFormatterInterface { /** * Returns a formatted message string. * * @param RequestInterface $request Request that was sent * @param ResponseInterface|null $response Response that was received * @param \Throwable|null $error Exception that was received */ public function format(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, ?\ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response = null, ?\Throwable $error = null): string; } /** * Formats log messages using variable substitutions for requests, responses, * and other transactional data. * * The following variable substitutions are supported: * * - {request}: Full HTTP request message * - {response}: Full HTTP response message * - {ts}: ISO 8601 date in GMT * - {date_iso_8601} ISO 8601 date in GMT * - {date_common_log} Apache common log date using the configured timezone. * - {host}: Host of the request * - {method}: Method of the request * - {uri}: URI of the request * - {version}: Protocol version * - {target}: Request target of the request (path + query + fragment) * - {hostname}: Hostname of the machine that sent the request * - {code}: Status code of the response (if available) * - {phrase}: Reason phrase of the response (if available) * - {error}: Any error messages (if available) * - {req_header_*}: Replace `*` with the lowercased name of a request header to add to the message * - {res_header_*}: Replace `*` with the lowercased name of a response header to add to the message * - {req_headers}: Request headers * - {res_headers}: Response headers * - {req_body}: Request body * - {res_body}: Response body * * @final */ class MessageFormatter implements \ForminatorGoogleAddon\GuzzleHttp\MessageFormatterInterface { /** * Apache Common Log Format. * * @see https://httpd.apache.org/docs/2.4/logs.html#common * * @var string */ public const CLF = '{hostname} {req_header_User-Agent} - [{date_common_log}] "{method} {target} HTTP/{version}" {code} {res_header_Content-Length}'; public const DEBUG = ">>>>>>>>\n{request}\n<<<<<<<<\n{response}\n--------\n{error}"; public const SHORT = '[{ts}] "{method} {target} HTTP/{version}" {code}'; /** * @var string Template used to format log messages */ private $template; /** * @param string $template Log message template */ public function __construct(?string $template = self::CLF) { } /** * Returns a formatted message string. * * @param RequestInterface $request Request that was sent * @param ResponseInterface|null $response Response that was received * @param \Throwable|null $error Exception that was received */ public function format(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, ?\ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response = null, ?\Throwable $error = null): string { } /** * Get headers from message as string */ private function headers(\ForminatorGoogleAddon\Psr\Http\Message\MessageInterface $message): string { } } /** * Functions used to create and wrap handlers with handler middleware. */ final class Middleware { /** * Middleware that adds cookies to requests. * * The options array must be set to a CookieJarInterface in order to use * cookies. This is typically handled for you by a client. * * @return callable Returns a function that accepts the next handler. */ public static function cookies(): callable { } /** * Middleware that throws exceptions for 4xx or 5xx responses when the * "http_errors" request option is set to true. * * @param BodySummarizerInterface|null $bodySummarizer The body summarizer to use in exception messages. * * @return callable(callable): callable Returns a function that accepts the next handler. */ public static function httpErrors(?\ForminatorGoogleAddon\GuzzleHttp\BodySummarizerInterface $bodySummarizer = null): callable { } /** * Middleware that pushes history data to an ArrayAccess container. * * @param array|\ArrayAccess $container Container to hold the history (by reference). * * @return callable(callable): callable Returns a function that accepts the next handler. * * @throws \InvalidArgumentException if container is not an array or ArrayAccess. */ public static function history(&$container): callable { } /** * Middleware that invokes a callback before and after sending a request. * * The provided listener cannot modify or alter the response. It simply * "taps" into the chain to be notified before returning the promise. The * before listener accepts a request and options array, and the after * listener accepts a request, options array, and response promise. * * @param callable $before Function to invoke before forwarding the request. * @param callable $after Function invoked after forwarding. * * @return callable Returns a function that accepts the next handler. */ public static function tap(?callable $before = null, ?callable $after = null): callable { } /** * Middleware that handles request redirects. * * @return callable Returns a function that accepts the next handler. */ public static function redirect(): callable { } /** * Middleware that retries requests based on the boolean result of * invoking the provided "decider" function. * * If no delay function is provided, a simple implementation of exponential * backoff will be utilized. * * @param callable $decider Function that accepts the number of retries, * a request, [response], and [exception] and * returns true if the request is to be retried. * @param callable $delay Function that accepts the number of retries and * returns the number of milliseconds to delay. * * @return callable Returns a function that accepts the next handler. */ public static function retry(callable $decider, ?callable $delay = null): callable { } /** * Middleware that logs requests, responses, and errors using a message * formatter. * * @phpstan-param \Psr\Log\LogLevel::* $logLevel Level at which to log requests. * * @param LoggerInterface $logger Logs messages. * @param MessageFormatterInterface|MessageFormatter $formatter Formatter used to create message strings. * @param string $logLevel Level at which to log requests. * * @return callable Returns a function that accepts the next handler. */ public static function log(\ForminatorGoogleAddon\Psr\Log\LoggerInterface $logger, $formatter, string $logLevel = 'info'): callable { } /** * This middleware adds a default content-type if possible, a default * content-length or transfer-encoding header, and the expect header. */ public static function prepareBody(): callable { } /** * Middleware that applies a map function to the request before passing to * the next handler. * * @param callable $fn Function that accepts a RequestInterface and returns * a RequestInterface. */ public static function mapRequest(callable $fn): callable { } /** * Middleware that applies a map function to the resolved promise's * response. * * @param callable $fn Function that accepts a ResponseInterface and * returns a ResponseInterface. */ public static function mapResponse(callable $fn): callable { } } } namespace ForminatorGoogleAddon\GuzzleHttp\Promise { /** * Interface used with classes that return a promise. */ interface PromisorInterface { /** * Returns a promise. */ public function promise(): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface; } } namespace ForminatorGoogleAddon\GuzzleHttp { /** * Sends an iterator of requests concurrently using a capped pool size. * * The pool will read from an iterator until it is cancelled or until the * iterator is consumed. When a request is yielded, the request is sent after * applying the "request_options" request options (if provided in the ctor). * * When a function is yielded by the iterator, the function is provided the * "request_options" array that should be merged on top of any existing * options, and the function MUST then return a wait-able promise. * * @final */ class Pool implements \ForminatorGoogleAddon\GuzzleHttp\Promise\PromisorInterface { /** * @var EachPromise */ private $each; /** * @param ClientInterface $client Client used to send the requests. * @param array|\Iterator $requests Requests or functions that return * requests to send concurrently. * @param array $config Associative array of options * - concurrency: (int) Maximum number of requests to send concurrently * - options: Array of request options to apply to each request. * - fulfilled: (callable) Function to invoke when a request completes. * - rejected: (callable) Function to invoke when a request is rejected. */ public function __construct(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $client, $requests, array $config = []) { } /** * Get promise */ public function promise(): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Sends multiple requests concurrently and returns an array of responses * and exceptions that uses the same ordering as the provided requests. * * IMPORTANT: This method keeps every request and response in memory, and * as such, is NOT recommended when sending a large number or an * indeterminate number of requests concurrently. * * @param ClientInterface $client Client used to send the requests * @param array|\Iterator $requests Requests to send concurrently. * @param array $options Passes through the options available in * {@see \GuzzleHttp\Pool::__construct} * * @return array Returns an array containing the response or an exception * in the same order that the requests were sent. * * @throws \InvalidArgumentException if the event format is incorrect. */ public static function batch(\ForminatorGoogleAddon\GuzzleHttp\ClientInterface $client, $requests, array $options = []): array { } /** * Execute callback(s) */ private static function cmpCallback(array &$options, string $name, array &$results): void { } } /** * Prepares requests that contain a body, adding the Content-Length, * Content-Type, and Expect headers. * * @final */ class PrepareBodyMiddleware { /** * @var callable(RequestInterface, array): PromiseInterface */ private $nextHandler; /** * @param callable(RequestInterface, array): PromiseInterface $nextHandler Next handler to invoke. */ public function __construct(callable $nextHandler) { } public function __invoke(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Add expect header */ private function addExpectHeader(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options, array &$modify): void { } } /** * Request redirect middleware. * * Apply this middleware like other middleware using * {@see \GuzzleHttp\Middleware::redirect()}. * * @final */ class RedirectMiddleware { public const HISTORY_HEADER = 'X-Guzzle-Redirect-History'; public const STATUS_HISTORY_HEADER = 'X-Guzzle-Redirect-Status-History'; /** * @var array */ public static $defaultSettings = ['max' => 5, 'protocols' => ['http', 'https'], 'strict' => \false, 'referer' => \false, 'track_redirects' => \false]; /** * @var callable(RequestInterface, array): PromiseInterface */ private $nextHandler; /** * @param callable(RequestInterface, array): PromiseInterface $nextHandler Next handler to invoke. */ public function __construct(callable $nextHandler) { } public function __invoke(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * @return ResponseInterface|PromiseInterface */ public function checkRedirect(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options, \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response) { } /** * Enable tracking on promise. */ private function withTracking(\ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface $promise, string $uri, int $statusCode): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Check for too many redirects. * * @throws TooManyRedirectsException Too many redirects. */ private function guardMax(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response, array &$options): void { } public function modifyRequest(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options, \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface { } /** * Set the appropriate URL on the request based on the location header. */ private static function redirectUri(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response, array $protocols): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } } /** * This class contains a list of built-in Guzzle request options. * * @see https://docs.guzzlephp.org/en/latest/request-options.html */ final class RequestOptions { /** * allow_redirects: (bool|array) Controls redirect behavior. Pass false * to disable redirects, pass true to enable redirects, pass an * associative to provide custom redirect settings. Defaults to "false". * This option only works if your handler has the RedirectMiddleware. When * passing an associative array, you can provide the following key value * pairs: * * - max: (int, default=5) maximum number of allowed redirects. * - strict: (bool, default=false) Set to true to use strict redirects * meaning redirect POST requests with POST requests vs. doing what most * browsers do which is redirect POST requests with GET requests * - referer: (bool, default=false) Set to true to enable the Referer * header. * - protocols: (array, default=['http', 'https']) Allowed redirect * protocols. * - on_redirect: (callable) PHP callable that is invoked when a redirect * is encountered. The callable is invoked with the request, the redirect * response that was received, and the effective URI. Any return value * from the on_redirect function is ignored. */ public const ALLOW_REDIRECTS = 'allow_redirects'; /** * auth: (array) Pass an array of HTTP authentication parameters to use * with the request. The array must contain the username in index [0], * the password in index [1], and you can optionally provide a built-in * authentication type in index [2]. Pass null to disable authentication * for a request. */ public const AUTH = 'auth'; /** * body: (resource|string|null|int|float|StreamInterface|callable|\Iterator) * Body to send in the request. */ public const BODY = 'body'; /** * cert: (string|array) Set to a string to specify the path to a file * containing a PEM formatted SSL client side certificate. If a password * is required, then set cert to an array containing the path to the PEM * file in the first array element followed by the certificate password * in the second array element. */ public const CERT = 'cert'; /** * cookies: (bool|GuzzleHttp\Cookie\CookieJarInterface, default=false) * Specifies whether or not cookies are used in a request or what cookie * jar to use or what cookies to send. This option only works if your * handler has the `cookie` middleware. Valid values are `false` and * an instance of {@see Cookie\CookieJarInterface}. */ public const COOKIES = 'cookies'; /** * connect_timeout: (float, default=0) Float describing the number of * seconds to wait while trying to connect to a server. Use 0 to wait * 300 seconds (the default behavior). */ public const CONNECT_TIMEOUT = 'connect_timeout'; /** * crypto_method: (int) A value describing the minimum TLS protocol * version to use. * * This setting must be set to one of the * ``STREAM_CRYPTO_METHOD_TLS*_CLIENT`` constants. PHP 7.4 or higher is * required in order to use TLS 1.3, and cURL 7.34.0 or higher is required * in order to specify a crypto method, with cURL 7.52.0 or higher being * required to use TLS 1.3. */ public const CRYPTO_METHOD = 'crypto_method'; /** * debug: (bool|resource) Set to true or set to a PHP stream returned by * fopen() enable debug output with the HTTP handler used to send a * request. */ public const DEBUG = 'debug'; /** * decode_content: (bool, default=true) Specify whether or not * Content-Encoding responses (gzip, deflate, etc.) are automatically * decoded. */ public const DECODE_CONTENT = 'decode_content'; /** * delay: (int) The amount of time to delay before sending in milliseconds. */ public const DELAY = 'delay'; /** * expect: (bool|integer) Controls the behavior of the * "Expect: 100-Continue" header. * * Set to `true` to enable the "Expect: 100-Continue" header for all * requests that sends a body. Set to `false` to disable the * "Expect: 100-Continue" header for all requests. Set to a number so that * the size of the payload must be greater than the number in order to send * the Expect header. Setting to a number will send the Expect header for * all requests in which the size of the payload cannot be determined or * where the body is not rewindable. * * By default, Guzzle will add the "Expect: 100-Continue" header when the * size of the body of a request is greater than 1 MB and a request is * using HTTP/1.1. */ public const EXPECT = 'expect'; /** * form_params: (array) Associative array of form field names to values * where each value is a string or array of strings. Sets the Content-Type * header to application/x-www-form-urlencoded when no Content-Type header * is already present. */ public const FORM_PARAMS = 'form_params'; /** * headers: (array) Associative array of HTTP headers. Each value MUST be * a string or array of strings. */ public const HEADERS = 'headers'; /** * http_errors: (bool, default=true) Set to false to disable exceptions * when a non- successful HTTP response is received. By default, * exceptions will be thrown for 4xx and 5xx responses. This option only * works if your handler has the `httpErrors` middleware. */ public const HTTP_ERRORS = 'http_errors'; /** * idn: (bool|int, default=true) A combination of IDNA_* constants for * idn_to_ascii() PHP's function (see "options" parameter). Set to false to * disable IDN support completely, or to true to use the default * configuration (IDNA_DEFAULT constant). */ public const IDN_CONVERSION = 'idn_conversion'; /** * json: (mixed) Adds JSON data to a request. The provided value is JSON * encoded and a Content-Type header of application/json will be added to * the request if no Content-Type header is already present. */ public const JSON = 'json'; /** * multipart: (array) Array of associative arrays, each containing a * required "name" key mapping to the form field, name, a required * "contents" key mapping to a StreamInterface|resource|string, an * optional "headers" associative array of custom headers, and an * optional "filename" key mapping to a string to send as the filename in * the part. If no "filename" key is present, then no "filename" attribute * will be added to the part. */ public const MULTIPART = 'multipart'; /** * on_headers: (callable) A callable that is invoked when the HTTP headers * of the response have been received but the body has not yet begun to * download. */ public const ON_HEADERS = 'on_headers'; /** * on_stats: (callable) allows you to get access to transfer statistics of * a request and access the lower level transfer details of the handler * associated with your client. ``on_stats`` is a callable that is invoked * when a handler has finished sending a request. The callback is invoked * with transfer statistics about the request, the response received, or * the error encountered. Included in the data is the total amount of time * taken to send the request. */ public const ON_STATS = 'on_stats'; /** * progress: (callable) Defines a function to invoke when transfer * progress is made. The function accepts the following positional * arguments: the total number of bytes expected to be downloaded, the * number of bytes downloaded so far, the number of bytes expected to be * uploaded, the number of bytes uploaded so far. */ public const PROGRESS = 'progress'; /** * proxy: (string|array) Pass a string to specify an HTTP proxy, or an * array to specify different proxies for different protocols (where the * key is the protocol and the value is a proxy string). */ public const PROXY = 'proxy'; /** * query: (array|string) Associative array of query string values to add * to the request. This option uses PHP's http_build_query() to create * the string representation. Pass a string value if you need more * control than what this method provides */ public const QUERY = 'query'; /** * sink: (resource|string|StreamInterface) Where the data of the * response is written to. Defaults to a PHP temp stream. Providing a * string will write data to a file by the given name. */ public const SINK = 'sink'; /** * synchronous: (bool) Set to true to inform HTTP handlers that you intend * on waiting on the response. This can be useful for optimizations. Note * that a promise is still returned if you are using one of the async * client methods. */ public const SYNCHRONOUS = 'synchronous'; /** * ssl_key: (array|string) Specify the path to a file containing a private * SSL key in PEM format. If a password is required, then set to an array * containing the path to the SSL key in the first array element followed * by the password required for the certificate in the second element. */ public const SSL_KEY = 'ssl_key'; /** * stream: Set to true to attempt to stream a response rather than * download it all up-front. */ public const STREAM = 'stream'; /** * verify: (bool|string, default=true) Describes the SSL certificate * verification behavior of a request. Set to true to enable SSL * certificate verification using the system CA bundle when available * (the default). Set to false to disable certificate verification (this * is insecure!). Set to a string to provide the path to a CA bundle on * disk to enable verification using a custom certificate. */ public const VERIFY = 'verify'; /** * timeout: (float, default=0) Float describing the timeout of the * request in seconds. Use 0 to wait indefinitely (the default behavior). */ public const TIMEOUT = 'timeout'; /** * read_timeout: (float, default=default_socket_timeout ini setting) Float describing * the body read timeout, for stream requests. */ public const READ_TIMEOUT = 'read_timeout'; /** * version: (float) Specifies the HTTP protocol version to attempt to use. */ public const VERSION = 'version'; /** * force_ip_resolve: (bool) Force client to use only ipv4 or ipv6 protocol */ public const FORCE_IP_RESOLVE = 'force_ip_resolve'; } /** * Middleware that retries requests based on the boolean result of * invoking the provided "decider" function. * * @final */ class RetryMiddleware { /** * @var callable(RequestInterface, array): PromiseInterface */ private $nextHandler; /** * @var callable */ private $decider; /** * @var callable(int) */ private $delay; /** * @param callable $decider Function that accepts the number of retries, * a request, [response], and [exception] and * returns true if the request is to be * retried. * @param callable(RequestInterface, array): PromiseInterface $nextHandler Next handler to invoke. * @param (callable(int): int)|null $delay Function that accepts the number of retries * and returns the number of * milliseconds to delay. */ public function __construct(callable $decider, callable $nextHandler, ?callable $delay = null) { } /** * Default exponential backoff delay function. * * @return int milliseconds. */ public static function exponentialDelay(int $retries): int { } public function __invoke(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Execute fulfilled closure */ private function onFulfilled(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options): callable { } /** * Execute rejected closure */ private function onRejected(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $req, array $options): callable { } private function doRetry(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $options, ?\ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response = null): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } } /** * Represents data at the point after it was transferred either successfully * or after a network error. */ final class TransferStats { /** * @var RequestInterface */ private $request; /** * @var ResponseInterface|null */ private $response; /** * @var float|null */ private $transferTime; /** * @var array */ private $handlerStats; /** * @var mixed|null */ private $handlerErrorData; /** * @param RequestInterface $request Request that was sent. * @param ResponseInterface|null $response Response received (if any) * @param float|null $transferTime Total handler transfer time. * @param mixed $handlerErrorData Handler error data. * @param array $handlerStats Handler specific stats. */ public function __construct(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, ?\ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface $response = null, ?float $transferTime = null, $handlerErrorData = null, array $handlerStats = []) { } public function getRequest(): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface { } /** * Returns the response that was received (if any). */ public function getResponse(): ?\ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { } /** * Returns true if a response was received. */ public function hasResponse(): bool { } /** * Gets handler specific error data. * * This might be an exception, a integer representing an error code, or * anything else. Relying on this value assumes that you know what handler * you are using. * * @return mixed */ public function getHandlerErrorData() { } /** * Get the effective URI the request was sent to. */ public function getEffectiveUri(): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } /** * Get the estimated time the request was being transferred by the handler. * * @return float|null Time in seconds. */ public function getTransferTime(): ?float { } /** * Gets an array of all of the handler specific transfer data. */ public function getHandlerStats(): array { } /** * Get a specific handler statistic from the handler by name. * * @param string $stat Handler specific transfer stat to retrieve. * * @return mixed|null */ public function getHandlerStat(string $stat) { } } final class Utils { /** * Debug function used to describe the provided value type and class. * * @param mixed $input * * @return string Returns a string containing the type of the variable and * if a class is provided, the class name. */ public static function describeType($input): string { } /** * Parses an array of header lines into an associative array of headers. * * @param iterable $lines Header lines array of strings in the following * format: "Name: Value" */ public static function headersFromLines(iterable $lines): array { } /** * Returns a debug stream based on the provided variable. * * @param mixed $value Optional value * * @return resource */ public static function debugResource($value = null) { } /** * Chooses and creates a default handler to use based on the environment. * * The returned handler is not wrapped by any default middlewares. * * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the best handler for the given system. * * @throws \RuntimeException if no viable Handler is available. */ public static function chooseHandler(): callable { } /** * Get the default User-Agent string to use with Guzzle. */ public static function defaultUserAgent(): string { } /** * Returns the default cacert bundle for the current system. * * First, the openssl.cafile and curl.cainfo php.ini settings are checked. * If those settings are not configured, then the common locations for * bundles found on Red Hat, CentOS, Fedora, Ubuntu, Debian, FreeBSD, OS X * and Windows are checked. If any of these file locations are found on * disk, they will be utilized. * * Note: the result of this function is cached for subsequent calls. * * @throws \RuntimeException if no bundle can be found. * * @deprecated Utils::defaultCaBundle will be removed in guzzlehttp/guzzle:8.0. This method is not needed in PHP 5.6+. */ public static function defaultCaBundle(): string { } /** * Creates an associative array of lowercase header names to the actual * header casing. */ public static function normalizeHeaderKeys(array $headers): array { } /** * Returns true if the provided host matches any of the no proxy areas. * * This method will strip a port from the host if it is present. Each pattern * can be matched with an exact match (e.g., "foo.com" == "foo.com") or a * partial match: (e.g., "foo.com" == "baz.foo.com" and ".foo.com" == * "baz.foo.com", but ".foo.com" != "foo.com"). * * Areas are matched in the following cases: * 1. "*" (without quotes) always matches any hosts. * 2. An exact match. * 3. The area starts with "." and the area is the last part of the host. e.g. * '.mit.edu' will match any host that ends with '.mit.edu'. * * @param string $host Host to check against the patterns. * @param string[] $noProxyArray An array of host patterns. * * @throws InvalidArgumentException */ public static function isHostInNoProxy(string $host, array $noProxyArray): bool { } /** * Wrapper for json_decode that throws when an error occurs. * * @param string $json JSON data to parse * @param bool $assoc When true, returned objects will be converted * into associative arrays. * @param int $depth User specified recursion depth. * @param int $options Bitmask of JSON decode options. * * @return object|array|string|int|float|bool|null * * @throws InvalidArgumentException if the JSON cannot be decoded. * * @see https://www.php.net/manual/en/function.json-decode.php */ public static function jsonDecode(string $json, bool $assoc = \false, int $depth = 512, int $options = 0) { } /** * Wrapper for JSON encoding that throws when an error occurs. * * @param mixed $value The value being encoded * @param int $options JSON encode option bitmask * @param int $depth Set the maximum depth. Must be greater than zero. * * @throws InvalidArgumentException if the JSON cannot be encoded. * * @see https://www.php.net/manual/en/function.json-encode.php */ public static function jsonEncode($value, int $options = 0, int $depth = 512): string { } /** * Wrapper for the hrtime() or microtime() functions * (depending on the PHP version, one of the two is used) * * @return float UNIX timestamp * * @internal */ public static function currentTime(): float { } /** * @throws InvalidArgumentException * * @internal */ public static function idnUriConvert(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri, int $options = 0): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } /** * @internal */ public static function getenv(string $name): ?string { } /** * @return string|false */ private static function idnToAsci(string $domain, int $options, ?array &$info = []) { } } } namespace ForminatorGoogleAddon\GuzzleHttp\Promise { /** * A special exception that is thrown when waiting on a rejected promise. * * The reason value is available via the getReason() method. */ class RejectionException extends \RuntimeException { /** @var mixed Rejection reason. */ private $reason; /** * @param mixed $reason Rejection reason. * @param string|null $description Optional description. */ public function __construct($reason, ?string $description = null) { } /** * Returns the rejection reason. * * @return mixed */ public function getReason() { } } /** * Exception thrown when too many errors occur in the some() or any() methods. */ class AggregateException extends \ForminatorGoogleAddon\GuzzleHttp\Promise\RejectionException { public function __construct(string $msg, array $reasons) { } } /** * Exception that is set as the reason for a promise that has been cancelled. */ class CancellationException extends \ForminatorGoogleAddon\GuzzleHttp\Promise\RejectionException { } /** * A promise represents the eventual result of an asynchronous operation. * * The primary way of interacting with a promise is through its then method, * which registers callbacks to receive either a promise’s eventual value or * the reason why the promise cannot be fulfilled. * * @see https://promisesaplus.com/ */ interface PromiseInterface { public const PENDING = 'pending'; public const FULFILLED = 'fulfilled'; public const REJECTED = 'rejected'; /** * Appends fulfillment and rejection handlers to the promise, and returns * a new promise resolving to the return value of the called handler. * * @param callable $onFulfilled Invoked when the promise fulfills. * @param callable $onRejected Invoked when the promise is rejected. */ public function then(?callable $onFulfilled = null, ?callable $onRejected = null): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface; /** * Appends a rejection handler callback to the promise, and returns a new * promise resolving to the return value of the callback if it is called, * or to its original fulfillment value if the promise is instead * fulfilled. * * @param callable $onRejected Invoked when the promise is rejected. */ public function otherwise(callable $onRejected): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface; /** * Get the state of the promise ("pending", "rejected", or "fulfilled"). * * The three states can be checked against the constants defined on * PromiseInterface: PENDING, FULFILLED, and REJECTED. */ public function getState(): string; /** * Resolve the promise with the given value. * * @param mixed $value * * @throws \RuntimeException if the promise is already resolved. */ public function resolve($value): void; /** * Reject the promise with the given reason. * * @param mixed $reason * * @throws \RuntimeException if the promise is already resolved. */ public function reject($reason): void; /** * Cancels the promise if possible. * * @see https://github.com/promises-aplus/cancellation-spec/issues/7 */ public function cancel(): void; /** * Waits until the promise completes if possible. * * Pass $unwrap as true to unwrap the result of the promise, either * returning the resolved value or throwing the rejected exception. * * If the promise cannot be waited on, then the promise will be rejected. * * @return mixed * * @throws \LogicException if the promise has no wait function or if the * promise does not settle after waiting. */ public function wait(bool $unwrap = \true); } /** * Creates a promise that is resolved using a generator that yields values or * promises (somewhat similar to C#'s async keyword). * * When called, the Coroutine::of method will start an instance of the generator * and returns a promise that is fulfilled with its final yielded value. * * Control is returned back to the generator when the yielded promise settles. * This can lead to less verbose code when doing lots of sequential async calls * with minimal processing in between. * * use GuzzleHttp\Promise; * * function createPromise($value) { * return new Promise\FulfilledPromise($value); * } * * $promise = Promise\Coroutine::of(function () { * $value = (yield createPromise('a')); * try { * $value = (yield createPromise($value . 'b')); * } catch (\Throwable $e) { * // The promise was rejected. * } * yield $value . 'c'; * }); * * // Outputs "abc" * $promise->then(function ($v) { echo $v; }); * * @param callable $generatorFn Generator function to wrap into a promise. * * @return Promise * * @see https://github.com/petkaantonov/bluebird/blob/master/API.md#generators inspiration */ final class Coroutine implements \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { /** * @var PromiseInterface|null */ private $currentPromise; /** * @var Generator */ private $generator; /** * @var Promise */ private $result; public function __construct(callable $generatorFn) { } /** * Create a new coroutine. */ public static function of(callable $generatorFn): self { } public function then(?callable $onFulfilled = null, ?callable $onRejected = null): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } public function otherwise(callable $onRejected): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } public function wait(bool $unwrap = \true) { } public function getState(): string { } public function resolve($value): void { } public function reject($reason): void { } public function cancel(): void { } private function nextCoroutine($yielded): void { } /** * @internal */ public function _handleSuccess($value): void { } /** * @internal */ public function _handleFailure($reason): void { } } final class Create { /** * Creates a promise for a value if the value is not a promise. * * @param mixed $value Promise or value. */ public static function promiseFor($value): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Creates a rejected promise for a reason if the reason is not a promise. * If the provided reason is a promise, then it is returned as-is. * * @param mixed $reason Promise or reason. */ public static function rejectionFor($reason): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Create an exception for a rejected promise value. * * @param mixed $reason */ public static function exceptionFor($reason): \Throwable { } /** * Returns an iterator for the given value. * * @param mixed $value */ public static function iterFor($value): \Iterator { } } final class Each { /** * Given an iterator that yields promises or values, returns a promise that * is fulfilled with a null value when the iterator has been consumed or * the aggregate promise has been fulfilled or rejected. * * $onFulfilled is a function that accepts the fulfilled value, iterator * index, and the aggregate promise. The callback can invoke any necessary * side effects and choose to resolve or reject the aggregate if needed. * * $onRejected is a function that accepts the rejection reason, iterator * index, and the aggregate promise. The callback can invoke any necessary * side effects and choose to resolve or reject the aggregate if needed. * * @param mixed $iterable Iterator or array to iterate over. */ public static function of($iterable, ?callable $onFulfilled = null, ?callable $onRejected = null): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Like of, but only allows a certain number of outstanding promises at any * given time. * * $concurrency may be an integer or a function that accepts the number of * pending promises and returns a numeric concurrency limit value to allow * for dynamic a concurrency size. * * @param mixed $iterable * @param int|callable $concurrency */ public static function ofLimit($iterable, $concurrency, ?callable $onFulfilled = null, ?callable $onRejected = null): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Like limit, but ensures that no promise in the given $iterable argument * is rejected. If any promise is rejected, then the aggregate promise is * rejected with the encountered rejection. * * @param mixed $iterable * @param int|callable $concurrency */ public static function ofLimitAll($iterable, $concurrency, ?callable $onFulfilled = null): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } } /** * Represents a promise that iterates over many promises and invokes * side-effect functions in the process. * * @final */ class EachPromise implements \ForminatorGoogleAddon\GuzzleHttp\Promise\PromisorInterface { private $pending = []; private $nextPendingIndex = 0; /** @var \Iterator|null */ private $iterable; /** @var callable|int|null */ private $concurrency; /** @var callable|null */ private $onFulfilled; /** @var callable|null */ private $onRejected; /** @var Promise|null */ private $aggregate; /** @var bool|null */ private $mutex; /** * Configuration hash can include the following key value pairs: * * - fulfilled: (callable) Invoked when a promise fulfills. The function * is invoked with three arguments: the fulfillment value, the index * position from the iterable list of the promise, and the aggregate * promise that manages all of the promises. The aggregate promise may * be resolved from within the callback to short-circuit the promise. * - rejected: (callable) Invoked when a promise is rejected. The * function is invoked with three arguments: the rejection reason, the * index position from the iterable list of the promise, and the * aggregate promise that manages all of the promises. The aggregate * promise may be resolved from within the callback to short-circuit * the promise. * - concurrency: (integer) Pass this configuration option to limit the * allowed number of outstanding concurrently executing promises, * creating a capped pool of promises. There is no limit by default. * * @param mixed $iterable Promises or values to iterate. * @param array $config Configuration options */ public function __construct($iterable, array $config = []) { } /** @psalm-suppress InvalidNullableReturnType */ public function promise(): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } private function createPromise(): void { } private function refillPending(): void { } private function addPending(): bool { } private function advanceIterator(): bool { } private function step(int $idx): void { } private function checkIfFinished(): bool { } } /** * A promise that has been fulfilled. * * Thenning off of this promise will invoke the onFulfilled callback * immediately and ignore other callbacks. * * @final */ class FulfilledPromise implements \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { private $value; /** * @param mixed $value */ public function __construct($value) { } public function then(?callable $onFulfilled = null, ?callable $onRejected = null): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } public function otherwise(callable $onRejected): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } public function wait(bool $unwrap = \true) { } public function getState(): string { } public function resolve($value): void { } public function reject($reason): void { } public function cancel(): void { } } final class Is { /** * Returns true if a promise is pending. */ public static function pending(\ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface $promise): bool { } /** * Returns true if a promise is fulfilled or rejected. */ public static function settled(\ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface $promise): bool { } /** * Returns true if a promise is fulfilled. */ public static function fulfilled(\ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface $promise): bool { } /** * Returns true if a promise is rejected. */ public static function rejected(\ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface $promise): bool { } } /** * Promises/A+ implementation that avoids recursion when possible. * * @see https://promisesaplus.com/ * * @final */ class Promise implements \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { private $state = self::PENDING; private $result; private $cancelFn; private $waitFn; private $waitList; private $handlers = []; /** * @param callable $waitFn Fn that when invoked resolves the promise. * @param callable $cancelFn Fn that when invoked cancels the promise. */ public function __construct(?callable $waitFn = null, ?callable $cancelFn = null) { } public function then(?callable $onFulfilled = null, ?callable $onRejected = null): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } public function otherwise(callable $onRejected): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } public function wait(bool $unwrap = \true) { } public function getState(): string { } public function cancel(): void { } public function resolve($value): void { } public function reject($reason): void { } private function settle(string $state, $value): void { } /** * Call a stack of handlers using a specific callback index and value. * * @param int $index 1 (resolve) or 2 (reject). * @param mixed $value Value to pass to the callback. * @param array $handler Array of handler data (promise and callbacks). */ private static function callHandler(int $index, $value, array $handler): void { } private function waitIfPending(): void { } private function invokeWaitFn(): void { } private function invokeWaitList(): void { } } /** * A promise that has been rejected. * * Thenning off of this promise will invoke the onRejected callback * immediately and ignore other callbacks. * * @final */ class RejectedPromise implements \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { private $reason; /** * @param mixed $reason */ public function __construct($reason) { } public function then(?callable $onFulfilled = null, ?callable $onRejected = null): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } public function otherwise(callable $onRejected): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } public function wait(bool $unwrap = \true) { } public function getState(): string { } public function resolve($value): void { } public function reject($reason): void { } public function cancel(): void { } } interface TaskQueueInterface { /** * Returns true if the queue is empty. */ public function isEmpty(): bool; /** * Adds a task to the queue that will be executed the next time run is * called. */ public function add(callable $task): void; /** * Execute all of the pending task in the queue. */ public function run(): void; } /** * A task queue that executes tasks in a FIFO order. * * This task queue class is used to settle promises asynchronously and * maintains a constant stack size. You can use the task queue asynchronously * by calling the `run()` function of the global task queue in an event loop. * * GuzzleHttp\Promise\Utils::queue()->run(); * * @final */ class TaskQueue implements \ForminatorGoogleAddon\GuzzleHttp\Promise\TaskQueueInterface { private $enableShutdown = \true; private $queue = []; public function __construct(bool $withShutdown = \true) { } public function isEmpty(): bool { } public function add(callable $task): void { } public function run(): void { } /** * The task queue will be run and exhausted by default when the process * exits IFF the exit is not the result of a PHP E_ERROR error. * * You can disable running the automatic shutdown of the queue by calling * this function. If you disable the task queue shutdown process, then you * MUST either run the task queue (as a result of running your event loop * or manually using the run() method) or wait on each outstanding promise. * * Note: This shutdown will occur before any destructors are triggered. */ public function disableShutdown(): void { } } final class Utils { /** * Get the global task queue used for promise resolution. * * This task queue MUST be run in an event loop in order for promises to be * settled asynchronously. It will be automatically run when synchronously * waiting on a promise. * * * while ($eventLoop->isRunning()) { * GuzzleHttp\Promise\Utils::queue()->run(); * } * * * @param TaskQueueInterface|null $assign Optionally specify a new queue instance. */ public static function queue(?\ForminatorGoogleAddon\GuzzleHttp\Promise\TaskQueueInterface $assign = null): \ForminatorGoogleAddon\GuzzleHttp\Promise\TaskQueueInterface { } /** * Adds a function to run in the task queue when it is next `run()` and * returns a promise that is fulfilled or rejected with the result. * * @param callable $task Task function to run. */ public static function task(callable $task): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Synchronously waits on a promise to resolve and returns an inspection * state array. * * Returns a state associative array containing a "state" key mapping to a * valid promise state. If the state of the promise is "fulfilled", the * array will contain a "value" key mapping to the fulfilled value of the * promise. If the promise is rejected, the array will contain a "reason" * key mapping to the rejection reason of the promise. * * @param PromiseInterface $promise Promise or value. */ public static function inspect(\ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface $promise): array { } /** * Waits on all of the provided promises, but does not unwrap rejected * promises as thrown exception. * * Returns an array of inspection state arrays. * * @see inspect for the inspection state array format. * * @param PromiseInterface[] $promises Traversable of promises to wait upon. */ public static function inspectAll($promises): array { } /** * Waits on all of the provided promises and returns the fulfilled values. * * Returns an array that contains the value of each promise (in the same * order the promises were provided). An exception is thrown if any of the * promises are rejected. * * @param iterable $promises Iterable of PromiseInterface objects to wait on. * * @throws \Throwable on error */ public static function unwrap($promises): array { } /** * Given an array of promises, return a promise that is fulfilled when all * the items in the array are fulfilled. * * The promise's fulfillment value is an array with fulfillment values at * respective positions to the original array. If any promise in the array * rejects, the returned promise is rejected with the rejection reason. * * @param mixed $promises Promises or values. * @param bool $recursive If true, resolves new promises that might have been added to the stack during its own resolution. */ public static function all($promises, bool $recursive = \false): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Initiate a competitive race between multiple promises or values (values * will become immediately fulfilled promises). * * When count amount of promises have been fulfilled, the returned promise * is fulfilled with an array that contains the fulfillment values of the * winners in order of resolution. * * This promise is rejected with a {@see AggregateException} if the number * of fulfilled promises is less than the desired $count. * * @param int $count Total number of promises. * @param mixed $promises Promises or values. */ public static function some(int $count, $promises): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Like some(), with 1 as count. However, if the promise fulfills, the * fulfillment value is not an array of 1 but the value directly. * * @param mixed $promises Promises or values. */ public static function any($promises): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } /** * Returns a promise that is fulfilled when all of the provided promises have * been fulfilled or rejected. * * The returned promise is fulfilled with an array of inspection state arrays. * * @see inspect for the inspection state array format. * * @param mixed $promises Promises or values. */ public static function settle($promises): \ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface { } } } namespace ForminatorGoogleAddon\Psr\Http\Message { /** * Describes a data stream. * * Typically, an instance will wrap a PHP stream; this interface provides * a wrapper around the most common operations, including serialization of * the entire stream to a string. */ interface StreamInterface { /** * Reads all data from the stream into a string, from the beginning to end. * * This method MUST attempt to seek to the beginning of the stream before * reading data and read the stream until the end is reached. * * Warning: This could attempt to load a large amount of data into memory. * * This method MUST NOT raise an exception in order to conform with PHP's * string casting operations. * * @see http://php.net/manual/en/language.oop5.magic.php#object.tostring * @return string */ public function __toString(): string; /** * Closes the stream and any underlying resources. * * @return void */ public function close(): void; /** * Separates any underlying resources from the stream. * * After the stream has been detached, the stream is in an unusable state. * * @return resource|null Underlying PHP stream, if any */ public function detach(); /** * Get the size of the stream if known. * * @return int|null Returns the size in bytes if known, or null if unknown. */ public function getSize(): ?int; /** * Returns the current position of the file read/write pointer * * @return int Position of the file pointer * @throws \RuntimeException on error. */ public function tell(): int; /** * Returns true if the stream is at the end of the stream. * * @return bool */ public function eof(): bool; /** * Returns whether or not the stream is seekable. * * @return bool */ public function isSeekable(): bool; /** * Seek to a position in the stream. * * @link http://www.php.net/manual/en/function.fseek.php * @param int $offset Stream offset * @param int $whence Specifies how the cursor position will be calculated * based on the seek offset. Valid values are identical to the built-in * PHP $whence values for `fseek()`. SEEK_SET: Set position equal to * offset bytes SEEK_CUR: Set position to current location plus offset * SEEK_END: Set position to end-of-stream plus offset. * @throws \RuntimeException on failure. */ public function seek(int $offset, int $whence = \SEEK_SET): void; /** * Seek to the beginning of the stream. * * If the stream is not seekable, this method will raise an exception; * otherwise, it will perform a seek(0). * * @see seek() * @link http://www.php.net/manual/en/function.fseek.php * @throws \RuntimeException on failure. */ public function rewind(): void; /** * Returns whether or not the stream is writable. * * @return bool */ public function isWritable(): bool; /** * Write data to the stream. * * @param string $string The string that is to be written. * @return int Returns the number of bytes written to the stream. * @throws \RuntimeException on failure. */ public function write(string $string): int; /** * Returns whether or not the stream is readable. * * @return bool */ public function isReadable(): bool; /** * Read data from the stream. * * @param int $length Read up to $length bytes from the object and return * them. Fewer than $length bytes may be returned if underlying stream * call returns fewer bytes. * @return string Returns the data read from the stream, or an empty string * if no bytes are available. * @throws \RuntimeException if an error occurs. */ public function read(int $length): string; /** * Returns the remaining contents in a string * * @return string * @throws \RuntimeException if unable to read or an error occurs while * reading. */ public function getContents(): string; /** * Get stream metadata as an associative array or retrieve a specific key. * * The keys returned are identical to the keys returned from PHP's * stream_get_meta_data() function. * * @link http://php.net/manual/en/function.stream-get-meta-data.php * @param string|null $key Specific metadata to retrieve. * @return array|mixed|null Returns an associative array if no key is * provided. Returns a specific key value if a key is provided and the * value is found, or null if the key is not found. */ public function getMetadata(?string $key = null); } } namespace ForminatorGoogleAddon\GuzzleHttp\Psr7 { /** * Reads from multiple streams, one after the other. * * This is a read-only stream decorator. */ final class AppendStream implements \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { /** @var StreamInterface[] Streams being decorated */ private $streams = []; /** @var bool */ private $seekable = \true; /** @var int */ private $current = 0; /** @var int */ private $pos = 0; /** * @param StreamInterface[] $streams Streams to decorate. Each stream must * be readable. */ public function __construct(array $streams = []) { } public function __toString(): string { } /** * Add a stream to the AppendStream * * @param StreamInterface $stream Stream to append. Must be readable. * * @throws \InvalidArgumentException if the stream is not readable */ public function addStream(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream): void { } public function getContents(): string { } /** * Closes each attached stream. */ public function close(): void { } /** * Detaches each attached stream. * * Returns null as it's not clear which underlying stream resource to return. */ public function detach() { } public function tell(): int { } /** * Tries to calculate the size by adding the size of each stream. * * If any of the streams do not return a valid number, then the size of the * append stream cannot be determined and null is returned. */ public function getSize(): ?int { } public function eof(): bool { } public function rewind(): void { } /** * Attempts to seek to the given position. Only supports SEEK_SET. */ public function seek($offset, $whence = \SEEK_SET): void { } /** * Reads from all of the appended streams until the length is met or EOF. */ public function read($length): string { } public function isReadable(): bool { } public function isWritable(): bool { } public function isSeekable(): bool { } public function write($string): int { } /** * @return mixed */ public function getMetadata($key = null) { } } /** * Provides a buffer stream that can be written to to fill a buffer, and read * from to remove bytes from the buffer. * * This stream returns a "hwm" metadata value that tells upstream consumers * what the configured high water mark of the stream is, or the maximum * preferred size of the buffer. */ final class BufferStream implements \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { /** @var int */ private $hwm; /** @var string */ private $buffer = ''; /** * @param int $hwm High water mark, representing the preferred maximum * buffer size. If the size of the buffer exceeds the high * water mark, then calls to write will continue to succeed * but will return 0 to inform writers to slow down * until the buffer has been drained by reading from it. */ public function __construct(int $hwm = 16384) { } public function __toString(): string { } public function getContents(): string { } public function close(): void { } public function detach() { } public function getSize(): ?int { } public function isReadable(): bool { } public function isWritable(): bool { } public function isSeekable(): bool { } public function rewind(): void { } public function seek($offset, $whence = \SEEK_SET): void { } public function eof(): bool { } public function tell(): int { } /** * Reads data from the buffer. */ public function read($length): string { } /** * Writes data to the buffer. */ public function write($string): int { } /** * @return mixed */ public function getMetadata($key = null) { } } /** * Stream decorator trait * * @property StreamInterface $stream */ trait StreamDecoratorTrait { /** * @param StreamInterface $stream Stream to decorate */ public function __construct(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream) { } /** * Magic method used to create a new stream if streams are not added in * the constructor of a decorator (e.g., LazyOpenStream). * * @return StreamInterface */ public function __get(string $name) { } public function __toString(): string { } public function getContents(): string { } /** * Allow decorators to implement custom methods * * @return mixed */ public function __call(string $method, array $args) { } public function close(): void { } /** * @return mixed */ public function getMetadata($key = null) { } public function detach() { } public function getSize(): ?int { } public function eof(): bool { } public function tell(): int { } public function isReadable(): bool { } public function isWritable(): bool { } public function isSeekable(): bool { } public function rewind(): void { } public function seek($offset, $whence = \SEEK_SET): void { } public function read($length): string { } public function write($string): int { } /** * Implement in subclasses to dynamically create streams when requested. * * @throws \BadMethodCallException */ protected function createStream(): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { } } /** * Stream decorator that can cache previously read bytes from a sequentially * read stream. */ final class CachingStream implements \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { use \ForminatorGoogleAddon\GuzzleHttp\Psr7\StreamDecoratorTrait; /** @var StreamInterface Stream being wrapped */ private $remoteStream; /** @var int Number of bytes to skip reading due to a write on the buffer */ private $skipReadBytes = 0; /** * @var StreamInterface */ private $stream; /** * We will treat the buffer object as the body of the stream * * @param StreamInterface $stream Stream to cache. The cursor is assumed to be at the beginning of the stream. * @param StreamInterface $target Optionally specify where data is cached */ public function __construct(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream, ?\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $target = null) { } public function getSize(): ?int { } public function rewind(): void { } public function seek($offset, $whence = \SEEK_SET): void { } public function read($length): string { } public function write($string): int { } public function eof(): bool { } /** * Close both the remote stream and buffer stream */ public function close(): void { } private function cacheEntireStream(): int { } } /** * Stream decorator that begins dropping data once the size of the underlying * stream becomes too full. */ final class DroppingStream implements \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { use \ForminatorGoogleAddon\GuzzleHttp\Psr7\StreamDecoratorTrait; /** @var int */ private $maxLength; /** @var StreamInterface */ private $stream; /** * @param StreamInterface $stream Underlying stream to decorate. * @param int $maxLength Maximum size before dropping data. */ public function __construct(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream, int $maxLength) { } public function write($string): int { } } } namespace ForminatorGoogleAddon\GuzzleHttp\Psr7\Exception { /** * Exception thrown if a URI cannot be parsed because it's malformed. */ class MalformedUriException extends \InvalidArgumentException { } } namespace ForminatorGoogleAddon\GuzzleHttp\Psr7 { /** * Compose stream implementations based on a hash of functions. * * Allows for easy testing and extension of a provided stream without needing * to create a concrete class for a simple extension point. */ #[\AllowDynamicProperties] final class FnStream implements \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { private const SLOTS = ['__toString', 'close', 'detach', 'rewind', 'getSize', 'tell', 'eof', 'isSeekable', 'seek', 'isWritable', 'write', 'isReadable', 'read', 'getContents', 'getMetadata']; /** @var array */ private $methods; /** * @param array $methods Hash of method name to a callable. */ public function __construct(array $methods) { } /** * Lazily determine which methods are not implemented. * * @throws \BadMethodCallException */ public function __get(string $name): void { } /** * The close method is called on the underlying stream only if possible. */ public function __destruct() { } /** * An unserialize would allow the __destruct to run when the unserialized value goes out of scope. * * @throws \LogicException */ public function __wakeup(): void { } /** * Adds custom functionality to an underlying stream by intercepting * specific method calls. * * @param StreamInterface $stream Stream to decorate * @param array $methods Hash of method name to a closure * * @return FnStream */ public static function decorate(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream, array $methods) { } public function __toString(): string { } public function close(): void { } public function detach() { } public function getSize(): ?int { } public function tell(): int { } public function eof(): bool { } public function isSeekable(): bool { } public function rewind(): void { } public function seek($offset, $whence = \SEEK_SET): void { } public function isWritable(): bool { } public function write($string): int { } public function isReadable(): bool { } public function read($length): string { } public function getContents(): string { } /** * @return mixed */ public function getMetadata($key = null) { } } final class Header { /** * Parse an array of header values containing ";" separated data into an * array of associative arrays representing the header key value pair data * of the header. When a parameter does not contain a value, but just * contains a key, this function will inject a key with a '' string value. * * @param string|array $header Header to parse into components. */ public static function parse($header): array { } /** * Converts an array of header values that may contain comma separated * headers into an array of headers with no comma separated values. * * @param string|array $header Header to normalize. * * @deprecated Use self::splitList() instead. */ public static function normalize($header): array { } /** * Splits a HTTP header defined to contain a comma-separated list into * each individual value. Empty values will be removed. * * Example headers include 'accept', 'cache-control' and 'if-none-match'. * * This method must not be used to parse headers that are not defined as * a list, such as 'user-agent' or 'set-cookie'. * * @param string|string[] $values Header value as returned by MessageInterface::getHeader() * * @return string[] */ public static function splitList($values): array { } } } namespace ForminatorGoogleAddon\Psr\Http\Message { interface RequestFactoryInterface { /** * Create a new request. * * @param string $method The HTTP method associated with the request. * @param UriInterface|string $uri The URI associated with the request. If * the value is a string, the factory MUST create a UriInterface * instance based on it. * * @return RequestInterface */ public function createRequest(string $method, $uri): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface; } interface ResponseFactoryInterface { /** * Create a new response. * * @param int $code HTTP status code; defaults to 200 * @param string $reasonPhrase Reason phrase to associate with status code * in generated response; if none is provided implementations MAY use * the defaults as suggested in the HTTP specification. * * @return ResponseInterface */ public function createResponse(int $code = 200, string $reasonPhrase = ''): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface; } interface ServerRequestFactoryInterface { /** * Create a new server request. * * Note that server-params are taken precisely as given - no parsing/processing * of the given values is performed, and, in particular, no attempt is made to * determine the HTTP method or URI, which must be provided explicitly. * * @param string $method The HTTP method associated with the request. * @param UriInterface|string $uri The URI associated with the request. If * the value is a string, the factory MUST create a UriInterface * instance based on it. * @param array $serverParams Array of SAPI parameters with which to seed * the generated request instance. * * @return ServerRequestInterface */ public function createServerRequest(string $method, $uri, array $serverParams = []): \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface; } interface StreamFactoryInterface { /** * Create a new stream from a string. * * The stream SHOULD be created with a temporary resource. * * @param string $content String content with which to populate the stream. * * @return StreamInterface */ public function createStream(string $content = ''): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface; /** * Create a stream from an existing file. * * The file MUST be opened using the given mode, which may be any mode * supported by the `fopen` function. * * The `$filename` MAY be any string supported by `fopen()`. * * @param string $filename Filename or stream URI to use as basis of stream. * @param string $mode Mode with which to open the underlying filename/stream. * * @return StreamInterface * @throws \RuntimeException If the file cannot be opened. * @throws \InvalidArgumentException If the mode is invalid. */ public function createStreamFromFile(string $filename, string $mode = 'r'): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface; /** * Create a new stream from an existing resource. * * The stream MUST be readable and may be writable. * * @param resource $resource PHP resource to use as basis of stream. * * @return StreamInterface */ public function createStreamFromResource($resource): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface; } interface UploadedFileFactoryInterface { /** * Create a new uploaded file. * * If a size is not provided it will be determined by checking the size of * the file. * * @see http://php.net/manual/features.file-upload.post-method.php * @see http://php.net/manual/features.file-upload.errors.php * * @param StreamInterface $stream Underlying stream representing the * uploaded file content. * @param int|null $size in bytes * @param int $error PHP file upload error * @param string|null $clientFilename Filename as provided by the client, if any. * @param string|null $clientMediaType Media type as provided by the client, if any. * * @return UploadedFileInterface * * @throws \InvalidArgumentException If the file resource is not readable. */ public function createUploadedFile(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream, ?int $size = null, int $error = \UPLOAD_ERR_OK, ?string $clientFilename = null, ?string $clientMediaType = null): \ForminatorGoogleAddon\Psr\Http\Message\UploadedFileInterface; } interface UriFactoryInterface { /** * Create a new URI. * * @param string $uri * * @return UriInterface * * @throws \InvalidArgumentException If the given URI cannot be parsed. */ public function createUri(string $uri = ''): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface; } } namespace ForminatorGoogleAddon\GuzzleHttp\Psr7 { /** * Implements all of the PSR-17 interfaces. * * Note: in consuming code it is recommended to require the implemented interfaces * and inject the instance of this class multiple times. */ final class HttpFactory implements \ForminatorGoogleAddon\Psr\Http\Message\RequestFactoryInterface, \ForminatorGoogleAddon\Psr\Http\Message\ResponseFactoryInterface, \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestFactoryInterface, \ForminatorGoogleAddon\Psr\Http\Message\StreamFactoryInterface, \ForminatorGoogleAddon\Psr\Http\Message\UploadedFileFactoryInterface, \ForminatorGoogleAddon\Psr\Http\Message\UriFactoryInterface { public function createUploadedFile(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream, ?int $size = null, int $error = \UPLOAD_ERR_OK, ?string $clientFilename = null, ?string $clientMediaType = null): \ForminatorGoogleAddon\Psr\Http\Message\UploadedFileInterface { } public function createStream(string $content = ''): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { } public function createStreamFromFile(string $file, string $mode = 'r'): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { } public function createStreamFromResource($resource): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { } public function createServerRequest(string $method, $uri, array $serverParams = []): \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface { } public function createResponse(int $code = 200, string $reasonPhrase = ''): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { } public function createRequest(string $method, $uri): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface { } public function createUri(string $uri = ''): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } } /** * Uses PHP's zlib.inflate filter to inflate zlib (HTTP deflate, RFC1950) or gzipped (RFC1952) content. * * This stream decorator converts the provided stream to a PHP stream resource, * then appends the zlib.inflate filter. The stream is then converted back * to a Guzzle stream resource to be used as a Guzzle stream. * * @see https://datatracker.ietf.org/doc/html/rfc1950 * @see https://datatracker.ietf.org/doc/html/rfc1952 * @see https://www.php.net/manual/en/filters.compression.php */ final class InflateStream implements \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { use \ForminatorGoogleAddon\GuzzleHttp\Psr7\StreamDecoratorTrait; /** @var StreamInterface */ private $stream; public function __construct(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream) { } } /** * Lazily reads or writes to a file that is opened only after an IO operation * take place on the stream. */ final class LazyOpenStream implements \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { use \ForminatorGoogleAddon\GuzzleHttp\Psr7\StreamDecoratorTrait; /** @var string */ private $filename; /** @var string */ private $mode; /** * @var StreamInterface */ private $stream; /** * @param string $filename File to lazily open * @param string $mode fopen mode to use when opening the stream */ public function __construct(string $filename, string $mode) { } /** * Creates the underlying stream lazily when required. */ protected function createStream(): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { } } /** * Decorator used to return only a subset of a stream. */ final class LimitStream implements \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { use \ForminatorGoogleAddon\GuzzleHttp\Psr7\StreamDecoratorTrait; /** @var int Offset to start reading from */ private $offset; /** @var int Limit the number of bytes that can be read */ private $limit; /** @var StreamInterface */ private $stream; /** * @param StreamInterface $stream Stream to wrap * @param int $limit Total number of bytes to allow to be read * from the stream. Pass -1 for no limit. * @param int $offset Position to seek to before reading (only * works on seekable streams). */ public function __construct(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream, int $limit = -1, int $offset = 0) { } public function eof(): bool { } /** * Returns the size of the limited subset of data */ public function getSize(): ?int { } /** * Allow for a bounded seek on the read limited stream */ public function seek($offset, $whence = \SEEK_SET): void { } /** * Give a relative tell() */ public function tell(): int { } /** * Set the offset to start limiting from * * @param int $offset Offset to seek to and begin byte limiting from * * @throws \RuntimeException if the stream cannot be seeked. */ public function setOffset(int $offset): void { } /** * Set the limit of bytes that the decorator allows to be read from the * stream. * * @param int $limit Number of bytes to allow to be read from the stream. * Use -1 for no limit. */ public function setLimit(int $limit): void { } public function read($length): string { } } final class Message { /** * Returns the string representation of an HTTP message. * * @param MessageInterface $message Message to convert to a string. */ public static function toString(\ForminatorGoogleAddon\Psr\Http\Message\MessageInterface $message): string { } /** * Get a short summary of the message body. * * Will return `null` if the response is not printable. * * @param MessageInterface $message The message to get the body summary * @param int $truncateAt The maximum allowed size of the summary */ public static function bodySummary(\ForminatorGoogleAddon\Psr\Http\Message\MessageInterface $message, int $truncateAt = 120): ?string { } /** * Attempts to rewind a message body and throws an exception on failure. * * The body of the message will only be rewound if a call to `tell()` * returns a value other than `0`. * * @param MessageInterface $message Message to rewind * * @throws \RuntimeException */ public static function rewindBody(\ForminatorGoogleAddon\Psr\Http\Message\MessageInterface $message): void { } /** * Parses an HTTP message into an associative array. * * The array contains the "start-line" key containing the start line of * the message, "headers" key containing an associative array of header * array values, and a "body" key containing the body of the message. * * @param string $message HTTP request or response to parse. */ public static function parseMessage(string $message): array { } /** * Constructs a URI for an HTTP request message. * * @param string $path Path from the start-line * @param array $headers Array of headers (each value an array). */ public static function parseRequestUri(string $path, array $headers): string { } /** * Parses a request message string into a request object. * * @param string $message Request message string. */ public static function parseRequest(string $message): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface { } /** * Parses a response message string into a response object. * * @param string $message Response message string. */ public static function parseResponse(string $message): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { } } /** * Trait implementing functionality common to requests and responses. */ trait MessageTrait { /** @var string[][] Map of all registered headers, as original name => array of values */ private $headers = []; /** @var string[] Map of lowercase header name => original name at registration */ private $headerNames = []; /** @var string */ private $protocol = '1.1'; /** @var StreamInterface|null */ private $stream; public function getProtocolVersion(): string { } public function withProtocolVersion($version): \ForminatorGoogleAddon\Psr\Http\Message\MessageInterface { } public function getHeaders(): array { } public function hasHeader($header): bool { } public function getHeader($header): array { } public function getHeaderLine($header): string { } public function withHeader($header, $value): \ForminatorGoogleAddon\Psr\Http\Message\MessageInterface { } public function withAddedHeader($header, $value): \ForminatorGoogleAddon\Psr\Http\Message\MessageInterface { } public function withoutHeader($header): \ForminatorGoogleAddon\Psr\Http\Message\MessageInterface { } public function getBody(): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { } public function withBody(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $body): \ForminatorGoogleAddon\Psr\Http\Message\MessageInterface { } /** * @param (string|string[])[] $headers */ private function setHeaders(array $headers): void { } /** * @param mixed $value * * @return string[] */ private function normalizeHeaderValue($value): array { } /** * Trims whitespace from the header values. * * Spaces and tabs ought to be excluded by parsers when extracting the field value from a header field. * * header-field = field-name ":" OWS field-value OWS * OWS = *( SP / HTAB ) * * @param mixed[] $values Header values * * @return string[] Trimmed header values * * @see https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.4 */ private function trimAndValidateHeaderValues(array $values): array { } /** * @see https://datatracker.ietf.org/doc/html/rfc7230#section-3.2 * * @param mixed $header */ private function assertHeader($header): void { } /** * @see https://datatracker.ietf.org/doc/html/rfc7230#section-3.2 * * field-value = *( field-content / obs-fold ) * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] * field-vchar = VCHAR / obs-text * VCHAR = %x21-7E * obs-text = %x80-FF * obs-fold = CRLF 1*( SP / HTAB ) */ private function assertValue(string $value): void { } } final class MimeType { private const MIME_TYPES = ['1km' => 'application/vnd.1000minds.decision-model+xml', '3dml' => 'text/vnd.in3d.3dml', '3ds' => 'image/x-3ds', '3g2' => 'video/3gpp2', '3gp' => 'video/3gp', '3gpp' => 'video/3gpp', '3mf' => 'model/3mf', '7z' => 'application/x-7z-compressed', '7zip' => 'application/x-7z-compressed', '123' => 'application/vnd.lotus-1-2-3', 'aab' => 'application/x-authorware-bin', 'aac' => 'audio/aac', 'aam' => 'application/x-authorware-map', 'aas' => 'application/x-authorware-seg', 'abw' => 'application/x-abiword', 'ac' => 'application/vnd.nokia.n-gage.ac+xml', 'ac3' => 'audio/ac3', 'acc' => 'application/vnd.americandynamics.acc', 'ace' => 'application/x-ace-compressed', 'acu' => 'application/vnd.acucobol', 'acutc' => 'application/vnd.acucorp', 'adp' => 'audio/adpcm', 'adts' => 'audio/aac', 'aep' => 'application/vnd.audiograph', 'afm' => 'application/x-font-type1', 'afp' => 'application/vnd.ibm.modcap', 'age' => 'application/vnd.age', 'ahead' => 'application/vnd.ahead.space', 'ai' => 'application/pdf', 'aif' => 'audio/x-aiff', 'aifc' => 'audio/x-aiff', 'aiff' => 'audio/x-aiff', 'air' => 'application/vnd.adobe.air-application-installer-package+zip', 'ait' => 'application/vnd.dvb.ait', 'ami' => 'application/vnd.amiga.ami', 'aml' => 'application/automationml-aml+xml', 'amlx' => 'application/automationml-amlx+zip', 'amr' => 'audio/amr', 'apk' => 'application/vnd.android.package-archive', 'apng' => 'image/apng', 'appcache' => 'text/cache-manifest', 'appinstaller' => 'application/appinstaller', 'application' => 'application/x-ms-application', 'appx' => 'application/appx', 'appxbundle' => 'application/appxbundle', 'apr' => 'application/vnd.lotus-approach', 'arc' => 'application/x-freearc', 'arj' => 'application/x-arj', 'asc' => 'application/pgp-signature', 'asf' => 'video/x-ms-asf', 'asm' => 'text/x-asm', 'aso' => 'application/vnd.accpac.simply.aso', 'asx' => 'video/x-ms-asf', 'atc' => 'application/vnd.acucorp', 'atom' => 'application/atom+xml', 'atomcat' => 'application/atomcat+xml', 'atomdeleted' => 'application/atomdeleted+xml', 'atomsvc' => 'application/atomsvc+xml', 'atx' => 'application/vnd.antix.game-component', 'au' => 'audio/x-au', 'avci' => 'image/avci', 'avcs' => 'image/avcs', 'avi' => 'video/x-msvideo', 'avif' => 'image/avif', 'aw' => 'application/applixware', 'azf' => 'application/vnd.airzip.filesecure.azf', 'azs' => 'application/vnd.airzip.filesecure.azs', 'azv' => 'image/vnd.airzip.accelerator.azv', 'azw' => 'application/vnd.amazon.ebook', 'b16' => 'image/vnd.pco.b16', 'bat' => 'application/x-msdownload', 'bcpio' => 'application/x-bcpio', 'bdf' => 'application/x-font-bdf', 'bdm' => 'application/vnd.syncml.dm+wbxml', 'bdoc' => 'application/x-bdoc', 'bed' => 'application/vnd.realvnc.bed', 'bh2' => 'application/vnd.fujitsu.oasysprs', 'bin' => 'application/octet-stream', 'blb' => 'application/x-blorb', 'blorb' => 'application/x-blorb', 'bmi' => 'application/vnd.bmi', 'bmml' => 'application/vnd.balsamiq.bmml+xml', 'bmp' => 'image/bmp', 'book' => 'application/vnd.framemaker', 'box' => 'application/vnd.previewsystems.box', 'boz' => 'application/x-bzip2', 'bpk' => 'application/octet-stream', 'bpmn' => 'application/octet-stream', 'bsp' => 'model/vnd.valve.source.compiled-map', 'btf' => 'image/prs.btif', 'btif' => 'image/prs.btif', 'buffer' => 'application/octet-stream', 'bz' => 'application/x-bzip', 'bz2' => 'application/x-bzip2', 'c' => 'text/x-c', 'c4d' => 'application/vnd.clonk.c4group', 'c4f' => 'application/vnd.clonk.c4group', 'c4g' => 'application/vnd.clonk.c4group', 'c4p' => 'application/vnd.clonk.c4group', 'c4u' => 'application/vnd.clonk.c4group', 'c11amc' => 'application/vnd.cluetrust.cartomobile-config', 'c11amz' => 'application/vnd.cluetrust.cartomobile-config-pkg', 'cab' => 'application/vnd.ms-cab-compressed', 'caf' => 'audio/x-caf', 'cap' => 'application/vnd.tcpdump.pcap', 'car' => 'application/vnd.curl.car', 'cat' => 'application/vnd.ms-pki.seccat', 'cb7' => 'application/x-cbr', 'cba' => 'application/x-cbr', 'cbr' => 'application/x-cbr', 'cbt' => 'application/x-cbr', 'cbz' => 'application/x-cbr', 'cc' => 'text/x-c', 'cco' => 'application/x-cocoa', 'cct' => 'application/x-director', 'ccxml' => 'application/ccxml+xml', 'cdbcmsg' => 'application/vnd.contact.cmsg', 'cdf' => 'application/x-netcdf', 'cdfx' => 'application/cdfx+xml', 'cdkey' => 'application/vnd.mediastation.cdkey', 'cdmia' => 'application/cdmi-capability', 'cdmic' => 'application/cdmi-container', 'cdmid' => 'application/cdmi-domain', 'cdmio' => 'application/cdmi-object', 'cdmiq' => 'application/cdmi-queue', 'cdr' => 'application/cdr', 'cdx' => 'chemical/x-cdx', 'cdxml' => 'application/vnd.chemdraw+xml', 'cdy' => 'application/vnd.cinderella', 'cer' => 'application/pkix-cert', 'cfs' => 'application/x-cfs-compressed', 'cgm' => 'image/cgm', 'chat' => 'application/x-chat', 'chm' => 'application/vnd.ms-htmlhelp', 'chrt' => 'application/vnd.kde.kchart', 'cif' => 'chemical/x-cif', 'cii' => 'application/vnd.anser-web-certificate-issue-initiation', 'cil' => 'application/vnd.ms-artgalry', 'cjs' => 'application/node', 'cla' => 'application/vnd.claymore', 'class' => 'application/octet-stream', 'cld' => 'model/vnd.cld', 'clkk' => 'application/vnd.crick.clicker.keyboard', 'clkp' => 'application/vnd.crick.clicker.palette', 'clkt' => 'application/vnd.crick.clicker.template', 'clkw' => 'application/vnd.crick.clicker.wordbank', 'clkx' => 'application/vnd.crick.clicker', 'clp' => 'application/x-msclip', 'cmc' => 'application/vnd.cosmocaller', 'cmdf' => 'chemical/x-cmdf', 'cml' => 'chemical/x-cml', 'cmp' => 'application/vnd.yellowriver-custom-menu', 'cmx' => 'image/x-cmx', 'cod' => 'application/vnd.rim.cod', 'coffee' => 'text/coffeescript', 'com' => 'application/x-msdownload', 'conf' => 'text/plain', 'cpio' => 'application/x-cpio', 'cpl' => 'application/cpl+xml', 'cpp' => 'text/x-c', 'cpt' => 'application/mac-compactpro', 'crd' => 'application/x-mscardfile', 'crl' => 'application/pkix-crl', 'crt' => 'application/x-x509-ca-cert', 'crx' => 'application/x-chrome-extension', 'cryptonote' => 'application/vnd.rig.cryptonote', 'csh' => 'application/x-csh', 'csl' => 'application/vnd.citationstyles.style+xml', 'csml' => 'chemical/x-csml', 'csp' => 'application/vnd.commonspace', 'csr' => 'application/octet-stream', 'css' => 'text/css', 'cst' => 'application/x-director', 'csv' => 'text/csv', 'cu' => 'application/cu-seeme', 'curl' => 'text/vnd.curl', 'cwl' => 'application/cwl', 'cww' => 'application/prs.cww', 'cxt' => 'application/x-director', 'cxx' => 'text/x-c', 'dae' => 'model/vnd.collada+xml', 'daf' => 'application/vnd.mobius.daf', 'dart' => 'application/vnd.dart', 'dataless' => 'application/vnd.fdsn.seed', 'davmount' => 'application/davmount+xml', 'dbf' => 'application/vnd.dbf', 'dbk' => 'application/docbook+xml', 'dcr' => 'application/x-director', 'dcurl' => 'text/vnd.curl.dcurl', 'dd2' => 'application/vnd.oma.dd2+xml', 'ddd' => 'application/vnd.fujixerox.ddd', 'ddf' => 'application/vnd.syncml.dmddf+xml', 'dds' => 'image/vnd.ms-dds', 'deb' => 'application/x-debian-package', 'def' => 'text/plain', 'deploy' => 'application/octet-stream', 'der' => 'application/x-x509-ca-cert', 'dfac' => 'application/vnd.dreamfactory', 'dgc' => 'application/x-dgc-compressed', 'dib' => 'image/bmp', 'dic' => 'text/x-c', 'dir' => 'application/x-director', 'dis' => 'application/vnd.mobius.dis', 'disposition-notification' => 'message/disposition-notification', 'dist' => 'application/octet-stream', 'distz' => 'application/octet-stream', 'djv' => 'image/vnd.djvu', 'djvu' => 'image/vnd.djvu', 'dll' => 'application/octet-stream', 'dmg' => 'application/x-apple-diskimage', 'dmn' => 'application/octet-stream', 'dmp' => 'application/vnd.tcpdump.pcap', 'dms' => 'application/octet-stream', 'dna' => 'application/vnd.dna', 'doc' => 'application/msword', 'docm' => 'application/vnd.ms-word.template.macroEnabled.12', 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'dot' => 'application/msword', 'dotm' => 'application/vnd.ms-word.template.macroEnabled.12', 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', 'dp' => 'application/vnd.osgi.dp', 'dpg' => 'application/vnd.dpgraph', 'dpx' => 'image/dpx', 'dra' => 'audio/vnd.dra', 'drle' => 'image/dicom-rle', 'dsc' => 'text/prs.lines.tag', 'dssc' => 'application/dssc+der', 'dtb' => 'application/x-dtbook+xml', 'dtd' => 'application/xml-dtd', 'dts' => 'audio/vnd.dts', 'dtshd' => 'audio/vnd.dts.hd', 'dump' => 'application/octet-stream', 'dvb' => 'video/vnd.dvb.file', 'dvi' => 'application/x-dvi', 'dwd' => 'application/atsc-dwd+xml', 'dwf' => 'model/vnd.dwf', 'dwg' => 'image/vnd.dwg', 'dxf' => 'image/vnd.dxf', 'dxp' => 'application/vnd.spotfire.dxp', 'dxr' => 'application/x-director', 'ear' => 'application/java-archive', 'ecelp4800' => 'audio/vnd.nuera.ecelp4800', 'ecelp7470' => 'audio/vnd.nuera.ecelp7470', 'ecelp9600' => 'audio/vnd.nuera.ecelp9600', 'ecma' => 'application/ecmascript', 'edm' => 'application/vnd.novadigm.edm', 'edx' => 'application/vnd.novadigm.edx', 'efif' => 'application/vnd.picsel', 'ei6' => 'application/vnd.pg.osasli', 'elc' => 'application/octet-stream', 'emf' => 'image/emf', 'eml' => 'message/rfc822', 'emma' => 'application/emma+xml', 'emotionml' => 'application/emotionml+xml', 'emz' => 'application/x-msmetafile', 'eol' => 'audio/vnd.digital-winds', 'eot' => 'application/vnd.ms-fontobject', 'eps' => 'application/postscript', 'epub' => 'application/epub+zip', 'es3' => 'application/vnd.eszigno3+xml', 'esa' => 'application/vnd.osgi.subsystem', 'esf' => 'application/vnd.epson.esf', 'et3' => 'application/vnd.eszigno3+xml', 'etx' => 'text/x-setext', 'eva' => 'application/x-eva', 'evy' => 'application/x-envoy', 'exe' => 'application/octet-stream', 'exi' => 'application/exi', 'exp' => 'application/express', 'exr' => 'image/aces', 'ext' => 'application/vnd.novadigm.ext', 'ez' => 'application/andrew-inset', 'ez2' => 'application/vnd.ezpix-album', 'ez3' => 'application/vnd.ezpix-package', 'f' => 'text/x-fortran', 'f4v' => 'video/mp4', 'f77' => 'text/x-fortran', 'f90' => 'text/x-fortran', 'fbs' => 'image/vnd.fastbidsheet', 'fcdt' => 'application/vnd.adobe.formscentral.fcdt', 'fcs' => 'application/vnd.isac.fcs', 'fdf' => 'application/vnd.fdf', 'fdt' => 'application/fdt+xml', 'fe_launch' => 'application/vnd.denovo.fcselayout-link', 'fg5' => 'application/vnd.fujitsu.oasysgp', 'fgd' => 'application/x-director', 'fh' => 'image/x-freehand', 'fh4' => 'image/x-freehand', 'fh5' => 'image/x-freehand', 'fh7' => 'image/x-freehand', 'fhc' => 'image/x-freehand', 'fig' => 'application/x-xfig', 'fits' => 'image/fits', 'flac' => 'audio/x-flac', 'fli' => 'video/x-fli', 'flo' => 'application/vnd.micrografx.flo', 'flv' => 'video/x-flv', 'flw' => 'application/vnd.kde.kivio', 'flx' => 'text/vnd.fmi.flexstor', 'fly' => 'text/vnd.fly', 'fm' => 'application/vnd.framemaker', 'fnc' => 'application/vnd.frogans.fnc', 'fo' => 'application/vnd.software602.filler.form+xml', 'for' => 'text/x-fortran', 'fpx' => 'image/vnd.fpx', 'frame' => 'application/vnd.framemaker', 'fsc' => 'application/vnd.fsc.weblaunch', 'fst' => 'image/vnd.fst', 'ftc' => 'application/vnd.fluxtime.clip', 'fti' => 'application/vnd.anser-web-funds-transfer-initiation', 'fvt' => 'video/vnd.fvt', 'fxp' => 'application/vnd.adobe.fxp', 'fxpl' => 'application/vnd.adobe.fxp', 'fzs' => 'application/vnd.fuzzysheet', 'g2w' => 'application/vnd.geoplan', 'g3' => 'image/g3fax', 'g3w' => 'application/vnd.geospace', 'gac' => 'application/vnd.groove-account', 'gam' => 'application/x-tads', 'gbr' => 'application/rpki-ghostbusters', 'gca' => 'application/x-gca-compressed', 'gdl' => 'model/vnd.gdl', 'gdoc' => 'application/vnd.google-apps.document', 'ged' => 'text/vnd.familysearch.gedcom', 'geo' => 'application/vnd.dynageo', 'geojson' => 'application/geo+json', 'gex' => 'application/vnd.geometry-explorer', 'ggb' => 'application/vnd.geogebra.file', 'ggt' => 'application/vnd.geogebra.tool', 'ghf' => 'application/vnd.groove-help', 'gif' => 'image/gif', 'gim' => 'application/vnd.groove-identity-message', 'glb' => 'model/gltf-binary', 'gltf' => 'model/gltf+json', 'gml' => 'application/gml+xml', 'gmx' => 'application/vnd.gmx', 'gnumeric' => 'application/x-gnumeric', 'gpg' => 'application/gpg-keys', 'gph' => 'application/vnd.flographit', 'gpx' => 'application/gpx+xml', 'gqf' => 'application/vnd.grafeq', 'gqs' => 'application/vnd.grafeq', 'gram' => 'application/srgs', 'gramps' => 'application/x-gramps-xml', 'gre' => 'application/vnd.geometry-explorer', 'grv' => 'application/vnd.groove-injector', 'grxml' => 'application/srgs+xml', 'gsf' => 'application/x-font-ghostscript', 'gsheet' => 'application/vnd.google-apps.spreadsheet', 'gslides' => 'application/vnd.google-apps.presentation', 'gtar' => 'application/x-gtar', 'gtm' => 'application/vnd.groove-tool-message', 'gtw' => 'model/vnd.gtw', 'gv' => 'text/vnd.graphviz', 'gxf' => 'application/gxf', 'gxt' => 'application/vnd.geonext', 'gz' => 'application/gzip', 'gzip' => 'application/gzip', 'h' => 'text/x-c', 'h261' => 'video/h261', 'h263' => 'video/h263', 'h264' => 'video/h264', 'hal' => 'application/vnd.hal+xml', 'hbci' => 'application/vnd.hbci', 'hbs' => 'text/x-handlebars-template', 'hdd' => 'application/x-virtualbox-hdd', 'hdf' => 'application/x-hdf', 'heic' => 'image/heic', 'heics' => 'image/heic-sequence', 'heif' => 'image/heif', 'heifs' => 'image/heif-sequence', 'hej2' => 'image/hej2k', 'held' => 'application/atsc-held+xml', 'hh' => 'text/x-c', 'hjson' => 'application/hjson', 'hlp' => 'application/winhlp', 'hpgl' => 'application/vnd.hp-hpgl', 'hpid' => 'application/vnd.hp-hpid', 'hps' => 'application/vnd.hp-hps', 'hqx' => 'application/mac-binhex40', 'hsj2' => 'image/hsj2', 'htc' => 'text/x-component', 'htke' => 'application/vnd.kenameaapp', 'htm' => 'text/html', 'html' => 'text/html', 'hvd' => 'application/vnd.yamaha.hv-dic', 'hvp' => 'application/vnd.yamaha.hv-voice', 'hvs' => 'application/vnd.yamaha.hv-script', 'i2g' => 'application/vnd.intergeo', 'icc' => 'application/vnd.iccprofile', 'ice' => 'x-conference/x-cooltalk', 'icm' => 'application/vnd.iccprofile', 'ico' => 'image/x-icon', 'ics' => 'text/calendar', 'ief' => 'image/ief', 'ifb' => 'text/calendar', 'ifm' => 'application/vnd.shana.informed.formdata', 'iges' => 'model/iges', 'igl' => 'application/vnd.igloader', 'igm' => 'application/vnd.insors.igm', 'igs' => 'model/iges', 'igx' => 'application/vnd.micrografx.igx', 'iif' => 'application/vnd.shana.informed.interchange', 'img' => 'application/octet-stream', 'imp' => 'application/vnd.accpac.simply.imp', 'ims' => 'application/vnd.ms-ims', 'in' => 'text/plain', 'ini' => 'text/plain', 'ink' => 'application/inkml+xml', 'inkml' => 'application/inkml+xml', 'install' => 'application/x-install-instructions', 'iota' => 'application/vnd.astraea-software.iota', 'ipfix' => 'application/ipfix', 'ipk' => 'application/vnd.shana.informed.package', 'irm' => 'application/vnd.ibm.rights-management', 'irp' => 'application/vnd.irepository.package+xml', 'iso' => 'application/x-iso9660-image', 'itp' => 'application/vnd.shana.informed.formtemplate', 'its' => 'application/its+xml', 'ivp' => 'application/vnd.immervision-ivp', 'ivu' => 'application/vnd.immervision-ivu', 'jad' => 'text/vnd.sun.j2me.app-descriptor', 'jade' => 'text/jade', 'jam' => 'application/vnd.jam', 'jar' => 'application/java-archive', 'jardiff' => 'application/x-java-archive-diff', 'java' => 'text/x-java-source', 'jhc' => 'image/jphc', 'jisp' => 'application/vnd.jisp', 'jls' => 'image/jls', 'jlt' => 'application/vnd.hp-jlyt', 'jng' => 'image/x-jng', 'jnlp' => 'application/x-java-jnlp-file', 'joda' => 'application/vnd.joost.joda-archive', 'jp2' => 'image/jp2', 'jpe' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'jpf' => 'image/jpx', 'jpg' => 'image/jpeg', 'jpg2' => 'image/jp2', 'jpgm' => 'video/jpm', 'jpgv' => 'video/jpeg', 'jph' => 'image/jph', 'jpm' => 'video/jpm', 'jpx' => 'image/jpx', 'js' => 'application/javascript', 'json' => 'application/json', 'json5' => 'application/json5', 'jsonld' => 'application/ld+json', 'jsonml' => 'application/jsonml+json', 'jsx' => 'text/jsx', 'jt' => 'model/jt', 'jxr' => 'image/jxr', 'jxra' => 'image/jxra', 'jxrs' => 'image/jxrs', 'jxs' => 'image/jxs', 'jxsc' => 'image/jxsc', 'jxsi' => 'image/jxsi', 'jxss' => 'image/jxss', 'kar' => 'audio/midi', 'karbon' => 'application/vnd.kde.karbon', 'kdb' => 'application/octet-stream', 'kdbx' => 'application/x-keepass2', 'key' => 'application/x-iwork-keynote-sffkey', 'kfo' => 'application/vnd.kde.kformula', 'kia' => 'application/vnd.kidspiration', 'kml' => 'application/vnd.google-earth.kml+xml', 'kmz' => 'application/vnd.google-earth.kmz', 'kne' => 'application/vnd.kinar', 'knp' => 'application/vnd.kinar', 'kon' => 'application/vnd.kde.kontour', 'kpr' => 'application/vnd.kde.kpresenter', 'kpt' => 'application/vnd.kde.kpresenter', 'kpxx' => 'application/vnd.ds-keypoint', 'ksp' => 'application/vnd.kde.kspread', 'ktr' => 'application/vnd.kahootz', 'ktx' => 'image/ktx', 'ktx2' => 'image/ktx2', 'ktz' => 'application/vnd.kahootz', 'kwd' => 'application/vnd.kde.kword', 'kwt' => 'application/vnd.kde.kword', 'lasxml' => 'application/vnd.las.las+xml', 'latex' => 'application/x-latex', 'lbd' => 'application/vnd.llamagraphics.life-balance.desktop', 'lbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml', 'les' => 'application/vnd.hhe.lesson-player', 'less' => 'text/less', 'lgr' => 'application/lgr+xml', 'lha' => 'application/octet-stream', 'link66' => 'application/vnd.route66.link66+xml', 'list' => 'text/plain', 'list3820' => 'application/vnd.ibm.modcap', 'listafp' => 'application/vnd.ibm.modcap', 'litcoffee' => 'text/coffeescript', 'lnk' => 'application/x-ms-shortcut', 'log' => 'text/plain', 'lostxml' => 'application/lost+xml', 'lrf' => 'application/octet-stream', 'lrm' => 'application/vnd.ms-lrm', 'ltf' => 'application/vnd.frogans.ltf', 'lua' => 'text/x-lua', 'luac' => 'application/x-lua-bytecode', 'lvp' => 'audio/vnd.lucent.voice', 'lwp' => 'application/vnd.lotus-wordpro', 'lzh' => 'application/octet-stream', 'm1v' => 'video/mpeg', 'm2a' => 'audio/mpeg', 'm2v' => 'video/mpeg', 'm3a' => 'audio/mpeg', 'm3u' => 'text/plain', 'm3u8' => 'application/vnd.apple.mpegurl', 'm4a' => 'audio/x-m4a', 'm4p' => 'application/mp4', 'm4s' => 'video/iso.segment', 'm4u' => 'application/vnd.mpegurl', 'm4v' => 'video/x-m4v', 'm13' => 'application/x-msmediaview', 'm14' => 'application/x-msmediaview', 'm21' => 'application/mp21', 'ma' => 'application/mathematica', 'mads' => 'application/mads+xml', 'maei' => 'application/mmt-aei+xml', 'mag' => 'application/vnd.ecowin.chart', 'maker' => 'application/vnd.framemaker', 'man' => 'text/troff', 'manifest' => 'text/cache-manifest', 'map' => 'application/json', 'mar' => 'application/octet-stream', 'markdown' => 'text/markdown', 'mathml' => 'application/mathml+xml', 'mb' => 'application/mathematica', 'mbk' => 'application/vnd.mobius.mbk', 'mbox' => 'application/mbox', 'mc1' => 'application/vnd.medcalcdata', 'mcd' => 'application/vnd.mcd', 'mcurl' => 'text/vnd.curl.mcurl', 'md' => 'text/markdown', 'mdb' => 'application/x-msaccess', 'mdi' => 'image/vnd.ms-modi', 'mdx' => 'text/mdx', 'me' => 'text/troff', 'mesh' => 'model/mesh', 'meta4' => 'application/metalink4+xml', 'metalink' => 'application/metalink+xml', 'mets' => 'application/mets+xml', 'mfm' => 'application/vnd.mfmp', 'mft' => 'application/rpki-manifest', 'mgp' => 'application/vnd.osgeo.mapguide.package', 'mgz' => 'application/vnd.proteus.magazine', 'mid' => 'audio/midi', 'midi' => 'audio/midi', 'mie' => 'application/x-mie', 'mif' => 'application/vnd.mif', 'mime' => 'message/rfc822', 'mj2' => 'video/mj2', 'mjp2' => 'video/mj2', 'mjs' => 'text/javascript', 'mk3d' => 'video/x-matroska', 'mka' => 'audio/x-matroska', 'mkd' => 'text/x-markdown', 'mks' => 'video/x-matroska', 'mkv' => 'video/x-matroska', 'mlp' => 'application/vnd.dolby.mlp', 'mmd' => 'application/vnd.chipnuts.karaoke-mmd', 'mmf' => 'application/vnd.smaf', 'mml' => 'text/mathml', 'mmr' => 'image/vnd.fujixerox.edmics-mmr', 'mng' => 'video/x-mng', 'mny' => 'application/x-msmoney', 'mobi' => 'application/x-mobipocket-ebook', 'mods' => 'application/mods+xml', 'mov' => 'video/quicktime', 'movie' => 'video/x-sgi-movie', 'mp2' => 'audio/mpeg', 'mp2a' => 'audio/mpeg', 'mp3' => 'audio/mpeg', 'mp4' => 'video/mp4', 'mp4a' => 'audio/mp4', 'mp4s' => 'application/mp4', 'mp4v' => 'video/mp4', 'mp21' => 'application/mp21', 'mpc' => 'application/vnd.mophun.certificate', 'mpd' => 'application/dash+xml', 'mpe' => 'video/mpeg', 'mpeg' => 'video/mpeg', 'mpf' => 'application/media-policy-dataset+xml', 'mpg' => 'video/mpeg', 'mpg4' => 'video/mp4', 'mpga' => 'audio/mpeg', 'mpkg' => 'application/vnd.apple.installer+xml', 'mpm' => 'application/vnd.blueice.multipass', 'mpn' => 'application/vnd.mophun.application', 'mpp' => 'application/vnd.ms-project', 'mpt' => 'application/vnd.ms-project', 'mpy' => 'application/vnd.ibm.minipay', 'mqy' => 'application/vnd.mobius.mqy', 'mrc' => 'application/marc', 'mrcx' => 'application/marcxml+xml', 'ms' => 'text/troff', 'mscml' => 'application/mediaservercontrol+xml', 'mseed' => 'application/vnd.fdsn.mseed', 'mseq' => 'application/vnd.mseq', 'msf' => 'application/vnd.epson.msf', 'msg' => 'application/vnd.ms-outlook', 'msh' => 'model/mesh', 'msi' => 'application/x-msdownload', 'msix' => 'application/msix', 'msixbundle' => 'application/msixbundle', 'msl' => 'application/vnd.mobius.msl', 'msm' => 'application/octet-stream', 'msp' => 'application/octet-stream', 'msty' => 'application/vnd.muvee.style', 'mtl' => 'model/mtl', 'mts' => 'model/vnd.mts', 'mus' => 'application/vnd.musician', 'musd' => 'application/mmt-usd+xml', 'musicxml' => 'application/vnd.recordare.musicxml+xml', 'mvb' => 'application/x-msmediaview', 'mvt' => 'application/vnd.mapbox-vector-tile', 'mwf' => 'application/vnd.mfer', 'mxf' => 'application/mxf', 'mxl' => 'application/vnd.recordare.musicxml', 'mxmf' => 'audio/mobile-xmf', 'mxml' => 'application/xv+xml', 'mxs' => 'application/vnd.triscape.mxs', 'mxu' => 'video/vnd.mpegurl', 'n-gage' => 'application/vnd.nokia.n-gage.symbian.install', 'n3' => 'text/n3', 'nb' => 'application/mathematica', 'nbp' => 'application/vnd.wolfram.player', 'nc' => 'application/x-netcdf', 'ncx' => 'application/x-dtbncx+xml', 'nfo' => 'text/x-nfo', 'ngdat' => 'application/vnd.nokia.n-gage.data', 'nitf' => 'application/vnd.nitf', 'nlu' => 'application/vnd.neurolanguage.nlu', 'nml' => 'application/vnd.enliven', 'nnd' => 'application/vnd.noblenet-directory', 'nns' => 'application/vnd.noblenet-sealer', 'nnw' => 'application/vnd.noblenet-web', 'npx' => 'image/vnd.net-fpx', 'nq' => 'application/n-quads', 'nsc' => 'application/x-conference', 'nsf' => 'application/vnd.lotus-notes', 'nt' => 'application/n-triples', 'ntf' => 'application/vnd.nitf', 'numbers' => 'application/x-iwork-numbers-sffnumbers', 'nzb' => 'application/x-nzb', 'oa2' => 'application/vnd.fujitsu.oasys2', 'oa3' => 'application/vnd.fujitsu.oasys3', 'oas' => 'application/vnd.fujitsu.oasys', 'obd' => 'application/x-msbinder', 'obgx' => 'application/vnd.openblox.game+xml', 'obj' => 'model/obj', 'oda' => 'application/oda', 'odb' => 'application/vnd.oasis.opendocument.database', 'odc' => 'application/vnd.oasis.opendocument.chart', 'odf' => 'application/vnd.oasis.opendocument.formula', 'odft' => 'application/vnd.oasis.opendocument.formula-template', 'odg' => 'application/vnd.oasis.opendocument.graphics', 'odi' => 'application/vnd.oasis.opendocument.image', 'odm' => 'application/vnd.oasis.opendocument.text-master', 'odp' => 'application/vnd.oasis.opendocument.presentation', 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', 'odt' => 'application/vnd.oasis.opendocument.text', 'oga' => 'audio/ogg', 'ogex' => 'model/vnd.opengex', 'ogg' => 'audio/ogg', 'ogv' => 'video/ogg', 'ogx' => 'application/ogg', 'omdoc' => 'application/omdoc+xml', 'onepkg' => 'application/onenote', 'onetmp' => 'application/onenote', 'onetoc' => 'application/onenote', 'onetoc2' => 'application/onenote', 'opf' => 'application/oebps-package+xml', 'opml' => 'text/x-opml', 'oprc' => 'application/vnd.palm', 'opus' => 'audio/ogg', 'org' => 'text/x-org', 'osf' => 'application/vnd.yamaha.openscoreformat', 'osfpvg' => 'application/vnd.yamaha.openscoreformat.osfpvg+xml', 'osm' => 'application/vnd.openstreetmap.data+xml', 'otc' => 'application/vnd.oasis.opendocument.chart-template', 'otf' => 'font/otf', 'otg' => 'application/vnd.oasis.opendocument.graphics-template', 'oth' => 'application/vnd.oasis.opendocument.text-web', 'oti' => 'application/vnd.oasis.opendocument.image-template', 'otp' => 'application/vnd.oasis.opendocument.presentation-template', 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', 'ott' => 'application/vnd.oasis.opendocument.text-template', 'ova' => 'application/x-virtualbox-ova', 'ovf' => 'application/x-virtualbox-ovf', 'owl' => 'application/rdf+xml', 'oxps' => 'application/oxps', 'oxt' => 'application/vnd.openofficeorg.extension', 'p' => 'text/x-pascal', 'p7a' => 'application/x-pkcs7-signature', 'p7b' => 'application/x-pkcs7-certificates', 'p7c' => 'application/pkcs7-mime', 'p7m' => 'application/pkcs7-mime', 'p7r' => 'application/x-pkcs7-certreqresp', 'p7s' => 'application/pkcs7-signature', 'p8' => 'application/pkcs8', 'p10' => 'application/x-pkcs10', 'p12' => 'application/x-pkcs12', 'pac' => 'application/x-ns-proxy-autoconfig', 'pages' => 'application/x-iwork-pages-sffpages', 'pas' => 'text/x-pascal', 'paw' => 'application/vnd.pawaafile', 'pbd' => 'application/vnd.powerbuilder6', 'pbm' => 'image/x-portable-bitmap', 'pcap' => 'application/vnd.tcpdump.pcap', 'pcf' => 'application/x-font-pcf', 'pcl' => 'application/vnd.hp-pcl', 'pclxl' => 'application/vnd.hp-pclxl', 'pct' => 'image/x-pict', 'pcurl' => 'application/vnd.curl.pcurl', 'pcx' => 'image/x-pcx', 'pdb' => 'application/x-pilot', 'pde' => 'text/x-processing', 'pdf' => 'application/pdf', 'pem' => 'application/x-x509-user-cert', 'pfa' => 'application/x-font-type1', 'pfb' => 'application/x-font-type1', 'pfm' => 'application/x-font-type1', 'pfr' => 'application/font-tdpfr', 'pfx' => 'application/x-pkcs12', 'pgm' => 'image/x-portable-graymap', 'pgn' => 'application/x-chess-pgn', 'pgp' => 'application/pgp', 'phar' => 'application/octet-stream', 'php' => 'application/x-httpd-php', 'php3' => 'application/x-httpd-php', 'php4' => 'application/x-httpd-php', 'phps' => 'application/x-httpd-php-source', 'phtml' => 'application/x-httpd-php', 'pic' => 'image/x-pict', 'pkg' => 'application/octet-stream', 'pki' => 'application/pkixcmp', 'pkipath' => 'application/pkix-pkipath', 'pkpass' => 'application/vnd.apple.pkpass', 'pl' => 'application/x-perl', 'plb' => 'application/vnd.3gpp.pic-bw-large', 'plc' => 'application/vnd.mobius.plc', 'plf' => 'application/vnd.pocketlearn', 'pls' => 'application/pls+xml', 'pm' => 'application/x-perl', 'pml' => 'application/vnd.ctc-posml', 'png' => 'image/png', 'pnm' => 'image/x-portable-anymap', 'portpkg' => 'application/vnd.macports.portpkg', 'pot' => 'application/vnd.ms-powerpoint', 'potm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12', 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', 'ppa' => 'application/vnd.ms-powerpoint', 'ppam' => 'application/vnd.ms-powerpoint.addin.macroEnabled.12', 'ppd' => 'application/vnd.cups-ppd', 'ppm' => 'image/x-portable-pixmap', 'pps' => 'application/vnd.ms-powerpoint', 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12', 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', 'ppt' => 'application/powerpoint', 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12', 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'pqa' => 'application/vnd.palm', 'prc' => 'model/prc', 'pre' => 'application/vnd.lotus-freelance', 'prf' => 'application/pics-rules', 'provx' => 'application/provenance+xml', 'ps' => 'application/postscript', 'psb' => 'application/vnd.3gpp.pic-bw-small', 'psd' => 'application/x-photoshop', 'psf' => 'application/x-font-linux-psf', 'pskcxml' => 'application/pskc+xml', 'pti' => 'image/prs.pti', 'ptid' => 'application/vnd.pvi.ptid1', 'pub' => 'application/x-mspublisher', 'pvb' => 'application/vnd.3gpp.pic-bw-var', 'pwn' => 'application/vnd.3m.post-it-notes', 'pya' => 'audio/vnd.ms-playready.media.pya', 'pyo' => 'model/vnd.pytha.pyox', 'pyox' => 'model/vnd.pytha.pyox', 'pyv' => 'video/vnd.ms-playready.media.pyv', 'qam' => 'application/vnd.epson.quickanime', 'qbo' => 'application/vnd.intu.qbo', 'qfx' => 'application/vnd.intu.qfx', 'qps' => 'application/vnd.publishare-delta-tree', 'qt' => 'video/quicktime', 'qwd' => 'application/vnd.quark.quarkxpress', 'qwt' => 'application/vnd.quark.quarkxpress', 'qxb' => 'application/vnd.quark.quarkxpress', 'qxd' => 'application/vnd.quark.quarkxpress', 'qxl' => 'application/vnd.quark.quarkxpress', 'qxt' => 'application/vnd.quark.quarkxpress', 'ra' => 'audio/x-realaudio', 'ram' => 'audio/x-pn-realaudio', 'raml' => 'application/raml+yaml', 'rapd' => 'application/route-apd+xml', 'rar' => 'application/x-rar', 'ras' => 'image/x-cmu-raster', 'rcprofile' => 'application/vnd.ipunplugged.rcprofile', 'rdf' => 'application/rdf+xml', 'rdz' => 'application/vnd.data-vision.rdz', 'relo' => 'application/p2p-overlay+xml', 'rep' => 'application/vnd.businessobjects', 'res' => 'application/x-dtbresource+xml', 'rgb' => 'image/x-rgb', 'rif' => 'application/reginfo+xml', 'rip' => 'audio/vnd.rip', 'ris' => 'application/x-research-info-systems', 'rl' => 'application/resource-lists+xml', 'rlc' => 'image/vnd.fujixerox.edmics-rlc', 'rld' => 'application/resource-lists-diff+xml', 'rm' => 'audio/x-pn-realaudio', 'rmi' => 'audio/midi', 'rmp' => 'audio/x-pn-realaudio-plugin', 'rms' => 'application/vnd.jcp.javame.midlet-rms', 'rmvb' => 'application/vnd.rn-realmedia-vbr', 'rnc' => 'application/relax-ng-compact-syntax', 'rng' => 'application/xml', 'roa' => 'application/rpki-roa', 'roff' => 'text/troff', 'rp9' => 'application/vnd.cloanto.rp9', 'rpm' => 'audio/x-pn-realaudio-plugin', 'rpss' => 'application/vnd.nokia.radio-presets', 'rpst' => 'application/vnd.nokia.radio-preset', 'rq' => 'application/sparql-query', 'rs' => 'application/rls-services+xml', 'rsa' => 'application/x-pkcs7', 'rsat' => 'application/atsc-rsat+xml', 'rsd' => 'application/rsd+xml', 'rsheet' => 'application/urc-ressheet+xml', 'rss' => 'application/rss+xml', 'rtf' => 'text/rtf', 'rtx' => 'text/richtext', 'run' => 'application/x-makeself', 'rusd' => 'application/route-usd+xml', 'rv' => 'video/vnd.rn-realvideo', 's' => 'text/x-asm', 's3m' => 'audio/s3m', 'saf' => 'application/vnd.yamaha.smaf-audio', 'sass' => 'text/x-sass', 'sbml' => 'application/sbml+xml', 'sc' => 'application/vnd.ibm.secure-container', 'scd' => 'application/x-msschedule', 'scm' => 'application/vnd.lotus-screencam', 'scq' => 'application/scvp-cv-request', 'scs' => 'application/scvp-cv-response', 'scss' => 'text/x-scss', 'scurl' => 'text/vnd.curl.scurl', 'sda' => 'application/vnd.stardivision.draw', 'sdc' => 'application/vnd.stardivision.calc', 'sdd' => 'application/vnd.stardivision.impress', 'sdkd' => 'application/vnd.solent.sdkm+xml', 'sdkm' => 'application/vnd.solent.sdkm+xml', 'sdp' => 'application/sdp', 'sdw' => 'application/vnd.stardivision.writer', 'sea' => 'application/octet-stream', 'see' => 'application/vnd.seemail', 'seed' => 'application/vnd.fdsn.seed', 'sema' => 'application/vnd.sema', 'semd' => 'application/vnd.semd', 'semf' => 'application/vnd.semf', 'senmlx' => 'application/senml+xml', 'sensmlx' => 'application/sensml+xml', 'ser' => 'application/java-serialized-object', 'setpay' => 'application/set-payment-initiation', 'setreg' => 'application/set-registration-initiation', 'sfd-hdstx' => 'application/vnd.hydrostatix.sof-data', 'sfs' => 'application/vnd.spotfire.sfs', 'sfv' => 'text/x-sfv', 'sgi' => 'image/sgi', 'sgl' => 'application/vnd.stardivision.writer-global', 'sgm' => 'text/sgml', 'sgml' => 'text/sgml', 'sh' => 'application/x-sh', 'shar' => 'application/x-shar', 'shex' => 'text/shex', 'shf' => 'application/shf+xml', 'shtml' => 'text/html', 'sid' => 'image/x-mrsid-image', 'sieve' => 'application/sieve', 'sig' => 'application/pgp-signature', 'sil' => 'audio/silk', 'silo' => 'model/mesh', 'sis' => 'application/vnd.symbian.install', 'sisx' => 'application/vnd.symbian.install', 'sit' => 'application/x-stuffit', 'sitx' => 'application/x-stuffitx', 'siv' => 'application/sieve', 'skd' => 'application/vnd.koan', 'skm' => 'application/vnd.koan', 'skp' => 'application/vnd.koan', 'skt' => 'application/vnd.koan', 'sldm' => 'application/vnd.ms-powerpoint.slide.macroenabled.12', 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide', 'slim' => 'text/slim', 'slm' => 'text/slim', 'sls' => 'application/route-s-tsid+xml', 'slt' => 'application/vnd.epson.salt', 'sm' => 'application/vnd.stepmania.stepchart', 'smf' => 'application/vnd.stardivision.math', 'smi' => 'application/smil', 'smil' => 'application/smil', 'smv' => 'video/x-smv', 'smzip' => 'application/vnd.stepmania.package', 'snd' => 'audio/basic', 'snf' => 'application/x-font-snf', 'so' => 'application/octet-stream', 'spc' => 'application/x-pkcs7-certificates', 'spdx' => 'text/spdx', 'spf' => 'application/vnd.yamaha.smaf-phrase', 'spl' => 'application/x-futuresplash', 'spot' => 'text/vnd.in3d.spot', 'spp' => 'application/scvp-vp-response', 'spq' => 'application/scvp-vp-request', 'spx' => 'audio/ogg', 'sql' => 'application/x-sql', 'src' => 'application/x-wais-source', 'srt' => 'application/x-subrip', 'sru' => 'application/sru+xml', 'srx' => 'application/sparql-results+xml', 'ssdl' => 'application/ssdl+xml', 'sse' => 'application/vnd.kodak-descriptor', 'ssf' => 'application/vnd.epson.ssf', 'ssml' => 'application/ssml+xml', 'sst' => 'application/octet-stream', 'st' => 'application/vnd.sailingtracker.track', 'stc' => 'application/vnd.sun.xml.calc.template', 'std' => 'application/vnd.sun.xml.draw.template', 'step' => 'application/STEP', 'stf' => 'application/vnd.wt.stf', 'sti' => 'application/vnd.sun.xml.impress.template', 'stk' => 'application/hyperstudio', 'stl' => 'model/stl', 'stp' => 'application/STEP', 'stpx' => 'model/step+xml', 'stpxz' => 'model/step-xml+zip', 'stpz' => 'model/step+zip', 'str' => 'application/vnd.pg.format', 'stw' => 'application/vnd.sun.xml.writer.template', 'styl' => 'text/stylus', 'stylus' => 'text/stylus', 'sub' => 'text/vnd.dvb.subtitle', 'sus' => 'application/vnd.sus-calendar', 'susp' => 'application/vnd.sus-calendar', 'sv4cpio' => 'application/x-sv4cpio', 'sv4crc' => 'application/x-sv4crc', 'svc' => 'application/vnd.dvb.service', 'svd' => 'application/vnd.svd', 'svg' => 'image/svg+xml', 'svgz' => 'image/svg+xml', 'swa' => 'application/x-director', 'swf' => 'application/x-shockwave-flash', 'swi' => 'application/vnd.aristanetworks.swi', 'swidtag' => 'application/swid+xml', 'sxc' => 'application/vnd.sun.xml.calc', 'sxd' => 'application/vnd.sun.xml.draw', 'sxg' => 'application/vnd.sun.xml.writer.global', 'sxi' => 'application/vnd.sun.xml.impress', 'sxm' => 'application/vnd.sun.xml.math', 'sxw' => 'application/vnd.sun.xml.writer', 't' => 'text/troff', 't3' => 'application/x-t3vm-image', 't38' => 'image/t38', 'taglet' => 'application/vnd.mynfc', 'tao' => 'application/vnd.tao.intent-module-archive', 'tap' => 'image/vnd.tencent.tap', 'tar' => 'application/x-tar', 'tcap' => 'application/vnd.3gpp2.tcap', 'tcl' => 'application/x-tcl', 'td' => 'application/urc-targetdesc+xml', 'teacher' => 'application/vnd.smart.teacher', 'tei' => 'application/tei+xml', 'teicorpus' => 'application/tei+xml', 'tex' => 'application/x-tex', 'texi' => 'application/x-texinfo', 'texinfo' => 'application/x-texinfo', 'text' => 'text/plain', 'tfi' => 'application/thraud+xml', 'tfm' => 'application/x-tex-tfm', 'tfx' => 'image/tiff-fx', 'tga' => 'image/x-tga', 'tgz' => 'application/x-tar', 'thmx' => 'application/vnd.ms-officetheme', 'tif' => 'image/tiff', 'tiff' => 'image/tiff', 'tk' => 'application/x-tcl', 'tmo' => 'application/vnd.tmobile-livetv', 'toml' => 'application/toml', 'torrent' => 'application/x-bittorrent', 'tpl' => 'application/vnd.groove-tool-template', 'tpt' => 'application/vnd.trid.tpt', 'tr' => 'text/troff', 'tra' => 'application/vnd.trueapp', 'trig' => 'application/trig', 'trm' => 'application/x-msterminal', 'ts' => 'video/mp2t', 'tsd' => 'application/timestamped-data', 'tsv' => 'text/tab-separated-values', 'ttc' => 'font/collection', 'ttf' => 'font/ttf', 'ttl' => 'text/turtle', 'ttml' => 'application/ttml+xml', 'twd' => 'application/vnd.simtech-mindmapper', 'twds' => 'application/vnd.simtech-mindmapper', 'txd' => 'application/vnd.genomatix.tuxedo', 'txf' => 'application/vnd.mobius.txf', 'txt' => 'text/plain', 'u3d' => 'model/u3d', 'u8dsn' => 'message/global-delivery-status', 'u8hdr' => 'message/global-headers', 'u8mdn' => 'message/global-disposition-notification', 'u8msg' => 'message/global', 'u32' => 'application/x-authorware-bin', 'ubj' => 'application/ubjson', 'udeb' => 'application/x-debian-package', 'ufd' => 'application/vnd.ufdl', 'ufdl' => 'application/vnd.ufdl', 'ulx' => 'application/x-glulx', 'umj' => 'application/vnd.umajin', 'unityweb' => 'application/vnd.unity', 'uo' => 'application/vnd.uoml+xml', 'uoml' => 'application/vnd.uoml+xml', 'uri' => 'text/uri-list', 'uris' => 'text/uri-list', 'urls' => 'text/uri-list', 'usda' => 'model/vnd.usda', 'usdz' => 'model/vnd.usdz+zip', 'ustar' => 'application/x-ustar', 'utz' => 'application/vnd.uiq.theme', 'uu' => 'text/x-uuencode', 'uva' => 'audio/vnd.dece.audio', 'uvd' => 'application/vnd.dece.data', 'uvf' => 'application/vnd.dece.data', 'uvg' => 'image/vnd.dece.graphic', 'uvh' => 'video/vnd.dece.hd', 'uvi' => 'image/vnd.dece.graphic', 'uvm' => 'video/vnd.dece.mobile', 'uvp' => 'video/vnd.dece.pd', 'uvs' => 'video/vnd.dece.sd', 'uvt' => 'application/vnd.dece.ttml+xml', 'uvu' => 'video/vnd.uvvu.mp4', 'uvv' => 'video/vnd.dece.video', 'uvva' => 'audio/vnd.dece.audio', 'uvvd' => 'application/vnd.dece.data', 'uvvf' => 'application/vnd.dece.data', 'uvvg' => 'image/vnd.dece.graphic', 'uvvh' => 'video/vnd.dece.hd', 'uvvi' => 'image/vnd.dece.graphic', 'uvvm' => 'video/vnd.dece.mobile', 'uvvp' => 'video/vnd.dece.pd', 'uvvs' => 'video/vnd.dece.sd', 'uvvt' => 'application/vnd.dece.ttml+xml', 'uvvu' => 'video/vnd.uvvu.mp4', 'uvvv' => 'video/vnd.dece.video', 'uvvx' => 'application/vnd.dece.unspecified', 'uvvz' => 'application/vnd.dece.zip', 'uvx' => 'application/vnd.dece.unspecified', 'uvz' => 'application/vnd.dece.zip', 'vbox' => 'application/x-virtualbox-vbox', 'vbox-extpack' => 'application/x-virtualbox-vbox-extpack', 'vcard' => 'text/vcard', 'vcd' => 'application/x-cdlink', 'vcf' => 'text/x-vcard', 'vcg' => 'application/vnd.groove-vcard', 'vcs' => 'text/x-vcalendar', 'vcx' => 'application/vnd.vcx', 'vdi' => 'application/x-virtualbox-vdi', 'vds' => 'model/vnd.sap.vds', 'vhd' => 'application/x-virtualbox-vhd', 'vis' => 'application/vnd.visionary', 'viv' => 'video/vnd.vivo', 'vlc' => 'application/videolan', 'vmdk' => 'application/x-virtualbox-vmdk', 'vob' => 'video/x-ms-vob', 'vor' => 'application/vnd.stardivision.writer', 'vox' => 'application/x-authorware-bin', 'vrml' => 'model/vrml', 'vsd' => 'application/vnd.visio', 'vsf' => 'application/vnd.vsf', 'vss' => 'application/vnd.visio', 'vst' => 'application/vnd.visio', 'vsw' => 'application/vnd.visio', 'vtf' => 'image/vnd.valve.source.texture', 'vtt' => 'text/vtt', 'vtu' => 'model/vnd.vtu', 'vxml' => 'application/voicexml+xml', 'w3d' => 'application/x-director', 'wad' => 'application/x-doom', 'wadl' => 'application/vnd.sun.wadl+xml', 'war' => 'application/java-archive', 'wasm' => 'application/wasm', 'wav' => 'audio/x-wav', 'wax' => 'audio/x-ms-wax', 'wbmp' => 'image/vnd.wap.wbmp', 'wbs' => 'application/vnd.criticaltools.wbs+xml', 'wbxml' => 'application/wbxml', 'wcm' => 'application/vnd.ms-works', 'wdb' => 'application/vnd.ms-works', 'wdp' => 'image/vnd.ms-photo', 'weba' => 'audio/webm', 'webapp' => 'application/x-web-app-manifest+json', 'webm' => 'video/webm', 'webmanifest' => 'application/manifest+json', 'webp' => 'image/webp', 'wg' => 'application/vnd.pmi.widget', 'wgsl' => 'text/wgsl', 'wgt' => 'application/widget', 'wif' => 'application/watcherinfo+xml', 'wks' => 'application/vnd.ms-works', 'wm' => 'video/x-ms-wm', 'wma' => 'audio/x-ms-wma', 'wmd' => 'application/x-ms-wmd', 'wmf' => 'image/wmf', 'wml' => 'text/vnd.wap.wml', 'wmlc' => 'application/wmlc', 'wmls' => 'text/vnd.wap.wmlscript', 'wmlsc' => 'application/vnd.wap.wmlscriptc', 'wmv' => 'video/x-ms-wmv', 'wmx' => 'video/x-ms-wmx', 'wmz' => 'application/x-msmetafile', 'woff' => 'font/woff', 'woff2' => 'font/woff2', 'word' => 'application/msword', 'wpd' => 'application/vnd.wordperfect', 'wpl' => 'application/vnd.ms-wpl', 'wps' => 'application/vnd.ms-works', 'wqd' => 'application/vnd.wqd', 'wri' => 'application/x-mswrite', 'wrl' => 'model/vrml', 'wsc' => 'message/vnd.wfa.wsc', 'wsdl' => 'application/wsdl+xml', 'wspolicy' => 'application/wspolicy+xml', 'wtb' => 'application/vnd.webturbo', 'wvx' => 'video/x-ms-wvx', 'x3d' => 'model/x3d+xml', 'x3db' => 'model/x3d+fastinfoset', 'x3dbz' => 'model/x3d+binary', 'x3dv' => 'model/x3d-vrml', 'x3dvz' => 'model/x3d+vrml', 'x3dz' => 'model/x3d+xml', 'x32' => 'application/x-authorware-bin', 'x_b' => 'model/vnd.parasolid.transmit.binary', 'x_t' => 'model/vnd.parasolid.transmit.text', 'xaml' => 'application/xaml+xml', 'xap' => 'application/x-silverlight-app', 'xar' => 'application/vnd.xara', 'xav' => 'application/xcap-att+xml', 'xbap' => 'application/x-ms-xbap', 'xbd' => 'application/vnd.fujixerox.docuworks.binder', 'xbm' => 'image/x-xbitmap', 'xca' => 'application/xcap-caps+xml', 'xcs' => 'application/calendar+xml', 'xdf' => 'application/xcap-diff+xml', 'xdm' => 'application/vnd.syncml.dm+xml', 'xdp' => 'application/vnd.adobe.xdp+xml', 'xdssc' => 'application/dssc+xml', 'xdw' => 'application/vnd.fujixerox.docuworks', 'xel' => 'application/xcap-el+xml', 'xenc' => 'application/xenc+xml', 'xer' => 'application/patch-ops-error+xml', 'xfdf' => 'application/xfdf', 'xfdl' => 'application/vnd.xfdl', 'xht' => 'application/xhtml+xml', 'xhtm' => 'application/vnd.pwg-xhtml-print+xml', 'xhtml' => 'application/xhtml+xml', 'xhvml' => 'application/xv+xml', 'xif' => 'image/vnd.xiff', 'xl' => 'application/excel', 'xla' => 'application/vnd.ms-excel', 'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12', 'xlc' => 'application/vnd.ms-excel', 'xlf' => 'application/xliff+xml', 'xlm' => 'application/vnd.ms-excel', 'xls' => 'application/vnd.ms-excel', 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12', 'xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12', 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'xlt' => 'application/vnd.ms-excel', 'xltm' => 'application/vnd.ms-excel.template.macroEnabled.12', 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', 'xlw' => 'application/vnd.ms-excel', 'xm' => 'audio/xm', 'xml' => 'application/xml', 'xns' => 'application/xcap-ns+xml', 'xo' => 'application/vnd.olpc-sugar', 'xop' => 'application/xop+xml', 'xpi' => 'application/x-xpinstall', 'xpl' => 'application/xproc+xml', 'xpm' => 'image/x-xpixmap', 'xpr' => 'application/vnd.is-xpr', 'xps' => 'application/vnd.ms-xpsdocument', 'xpw' => 'application/vnd.intercon.formnet', 'xpx' => 'application/vnd.intercon.formnet', 'xsd' => 'application/xml', 'xsf' => 'application/prs.xsf+xml', 'xsl' => 'application/xml', 'xslt' => 'application/xslt+xml', 'xsm' => 'application/vnd.syncml+xml', 'xspf' => 'application/xspf+xml', 'xul' => 'application/vnd.mozilla.xul+xml', 'xvm' => 'application/xv+xml', 'xvml' => 'application/xv+xml', 'xwd' => 'image/x-xwindowdump', 'xyz' => 'chemical/x-xyz', 'xz' => 'application/x-xz', 'yaml' => 'text/yaml', 'yang' => 'application/yang', 'yin' => 'application/yin+xml', 'yml' => 'text/yaml', 'ymp' => 'text/x-suse-ymp', 'z' => 'application/x-compress', 'z1' => 'application/x-zmachine', 'z2' => 'application/x-zmachine', 'z3' => 'application/x-zmachine', 'z4' => 'application/x-zmachine', 'z5' => 'application/x-zmachine', 'z6' => 'application/x-zmachine', 'z7' => 'application/x-zmachine', 'z8' => 'application/x-zmachine', 'zaz' => 'application/vnd.zzazz.deck+xml', 'zip' => 'application/zip', 'zir' => 'application/vnd.zul', 'zirz' => 'application/vnd.zul', 'zmm' => 'application/vnd.handheld-entertainment+xml', 'zsh' => 'text/x-scriptzsh']; /** * Determines the mimetype of a file by looking at its extension. * * @see https://raw.githubusercontent.com/jshttp/mime-db/master/db.json */ public static function fromFilename(string $filename): ?string { } /** * Maps a file extensions to a mimetype. * * @see https://raw.githubusercontent.com/jshttp/mime-db/master/db.json */ public static function fromExtension(string $extension): ?string { } } /** * Stream that when read returns bytes for a streaming multipart or * multipart/form-data stream. */ final class MultipartStream implements \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { use \ForminatorGoogleAddon\GuzzleHttp\Psr7\StreamDecoratorTrait; /** @var string */ private $boundary; /** @var StreamInterface */ private $stream; /** * @param array $elements Array of associative arrays, each containing a * required "name" key mapping to the form field, * name, a required "contents" key mapping to a * StreamInterface/resource/string, an optional * "headers" associative array of custom headers, * and an optional "filename" key mapping to a * string to send as the filename in the part. * @param string $boundary You can optionally provide a specific boundary * * @throws \InvalidArgumentException */ public function __construct(array $elements = [], ?string $boundary = null) { } public function getBoundary(): string { } public function isWritable(): bool { } /** * Get the headers needed before transferring the content of a POST file * * @param string[] $headers */ private function getHeaders(array $headers): string { } /** * Create the aggregate stream that will be used to upload the POST data */ protected function createStream(array $elements = []): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { } private function addElement(\ForminatorGoogleAddon\GuzzleHttp\Psr7\AppendStream $stream, array $element): void { } /** * @param string[] $headers * * @return array{0: StreamInterface, 1: string[]} */ private function createElement(string $name, \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream, ?string $filename, array $headers): array { } /** * @param string[] $headers */ private static function getHeader(array $headers, string $key): ?string { } } /** * Stream decorator that prevents a stream from being seeked. */ final class NoSeekStream implements \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { use \ForminatorGoogleAddon\GuzzleHttp\Psr7\StreamDecoratorTrait; /** @var StreamInterface */ private $stream; public function seek($offset, $whence = \SEEK_SET): void { } public function isSeekable(): bool { } } /** * Provides a read only stream that pumps data from a PHP callable. * * When invoking the provided callable, the PumpStream will pass the amount of * data requested to read to the callable. The callable can choose to ignore * this value and return fewer or more bytes than requested. Any extra data * returned by the provided callable is buffered internally until drained using * the read() function of the PumpStream. The provided callable MUST return * false when there is no more data to read. */ final class PumpStream implements \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { /** @var callable(int): (string|false|null)|null */ private $source; /** @var int|null */ private $size; /** @var int */ private $tellPos = 0; /** @var array */ private $metadata; /** @var BufferStream */ private $buffer; /** * @param callable(int): (string|false|null) $source Source of the stream data. The callable MAY * accept an integer argument used to control the * amount of data to return. The callable MUST * return a string when called, or false|null on error * or EOF. * @param array{size?: int, metadata?: array} $options Stream options: * - metadata: Hash of metadata to use with stream. * - size: Size of the stream, if known. */ public function __construct(callable $source, array $options = []) { } public function __toString(): string { } public function close(): void { } public function detach() { } public function getSize(): ?int { } public function tell(): int { } public function eof(): bool { } public function isSeekable(): bool { } public function rewind(): void { } public function seek($offset, $whence = \SEEK_SET): void { } public function isWritable(): bool { } public function write($string): int { } public function isReadable(): bool { } public function read($length): string { } public function getContents(): string { } /** * @return mixed */ public function getMetadata($key = null) { } private function pump(int $length): void { } } final class Query { /** * Parse a query string into an associative array. * * If multiple values are found for the same key, the value of that key * value pair will become an array. This function does not parse nested * PHP style arrays into an associative array (e.g., `foo[a]=1&foo[b]=2` * will be parsed into `['foo[a]' => '1', 'foo[b]' => '2'])`. * * @param string $str Query string to parse * @param int|bool $urlEncoding How the query string is encoded */ public static function parse(string $str, $urlEncoding = \true): array { } /** * Build a query string from an array of key value pairs. * * This function can use the return value of `parse()` to build a query * string. This function does not modify the provided keys when an array is * encountered (like `http_build_query()` would). * * @param array $params Query string parameters. * @param int|false $encoding Set to false to not encode, * PHP_QUERY_RFC3986 to encode using * RFC3986, or PHP_QUERY_RFC1738 to * encode using RFC1738. * @param bool $treatBoolsAsInts Set to true to encode as 0/1, and * false as false/true. */ public static function build(array $params, $encoding = \PHP_QUERY_RFC3986, bool $treatBoolsAsInts = \true): string { } } } namespace ForminatorGoogleAddon\Psr\Http\Message { /** * HTTP messages consist of requests from a client to a server and responses * from a server to a client. This interface defines the methods common to * each. * * Messages are considered immutable; all methods that might change state MUST * be implemented such that they retain the internal state of the current * message and return an instance that contains the changed state. * * @link http://www.ietf.org/rfc/rfc7230.txt * @link http://www.ietf.org/rfc/rfc7231.txt */ interface MessageInterface { /** * Retrieves the HTTP protocol version as a string. * * The string MUST contain only the HTTP version number (e.g., "1.1", "1.0"). * * @return string HTTP protocol version. */ public function getProtocolVersion(): string; /** * Return an instance with the specified HTTP protocol version. * * The version string MUST contain only the HTTP version number (e.g., * "1.1", "1.0"). * * This method MUST be implemented in such a way as to retain the * immutability of the message, and MUST return an instance that has the * new protocol version. * * @param string $version HTTP protocol version * @return static */ public function withProtocolVersion(string $version): \ForminatorGoogleAddon\Psr\Http\Message\MessageInterface; /** * Retrieves all message header values. * * The keys represent the header name as it will be sent over the wire, and * each value is an array of strings associated with the header. * * // Represent the headers as a string * foreach ($message->getHeaders() as $name => $values) { * echo $name . ": " . implode(", ", $values); * } * * // Emit headers iteratively: * foreach ($message->getHeaders() as $name => $values) { * foreach ($values as $value) { * header(sprintf('%s: %s', $name, $value), false); * } * } * * While header names are not case-sensitive, getHeaders() will preserve the * exact case in which headers were originally specified. * * @return string[][] Returns an associative array of the message's headers. Each * key MUST be a header name, and each value MUST be an array of strings * for that header. */ public function getHeaders(): array; /** * Checks if a header exists by the given case-insensitive name. * * @param string $name Case-insensitive header field name. * @return bool Returns true if any header names match the given header * name using a case-insensitive string comparison. Returns false if * no matching header name is found in the message. */ public function hasHeader(string $name): bool; /** * Retrieves a message header value by the given case-insensitive name. * * This method returns an array of all the header values of the given * case-insensitive header name. * * If the header does not appear in the message, this method MUST return an * empty array. * * @param string $name Case-insensitive header field name. * @return string[] An array of string values as provided for the given * header. If the header does not appear in the message, this method MUST * return an empty array. */ public function getHeader(string $name): array; /** * Retrieves a comma-separated string of the values for a single header. * * This method returns all of the header values of the given * case-insensitive header name as a string concatenated together using * a comma. * * NOTE: Not all header values may be appropriately represented using * comma concatenation. For such headers, use getHeader() instead * and supply your own delimiter when concatenating. * * If the header does not appear in the message, this method MUST return * an empty string. * * @param string $name Case-insensitive header field name. * @return string A string of values as provided for the given header * concatenated together using a comma. If the header does not appear in * the message, this method MUST return an empty string. */ public function getHeaderLine(string $name): string; /** * Return an instance with the provided value replacing the specified header. * * While header names are case-insensitive, the casing of the header will * be preserved by this function, and returned from getHeaders(). * * This method MUST be implemented in such a way as to retain the * immutability of the message, and MUST return an instance that has the * new and/or updated header and value. * * @param string $name Case-insensitive header field name. * @param string|string[] $value Header value(s). * @return static * @throws \InvalidArgumentException for invalid header names or values. */ public function withHeader(string $name, $value): \ForminatorGoogleAddon\Psr\Http\Message\MessageInterface; /** * Return an instance with the specified header appended with the given value. * * Existing values for the specified header will be maintained. The new * value(s) will be appended to the existing list. If the header did not * exist previously, it will be added. * * This method MUST be implemented in such a way as to retain the * immutability of the message, and MUST return an instance that has the * new header and/or value. * * @param string $name Case-insensitive header field name to add. * @param string|string[] $value Header value(s). * @return static * @throws \InvalidArgumentException for invalid header names or values. */ public function withAddedHeader(string $name, $value): \ForminatorGoogleAddon\Psr\Http\Message\MessageInterface; /** * Return an instance without the specified header. * * Header resolution MUST be done without case-sensitivity. * * This method MUST be implemented in such a way as to retain the * immutability of the message, and MUST return an instance that removes * the named header. * * @param string $name Case-insensitive header field name to remove. * @return static */ public function withoutHeader(string $name): \ForminatorGoogleAddon\Psr\Http\Message\MessageInterface; /** * Gets the body of the message. * * @return StreamInterface Returns the body as a stream. */ public function getBody(): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface; /** * Return an instance with the specified message body. * * The body MUST be a StreamInterface object. * * This method MUST be implemented in such a way as to retain the * immutability of the message, and MUST return a new instance that has the * new body stream. * * @param StreamInterface $body Body. * @return static * @throws \InvalidArgumentException When the body is not valid. */ public function withBody(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $body): \ForminatorGoogleAddon\Psr\Http\Message\MessageInterface; } /** * Representation of an outgoing, client-side request. * * Per the HTTP specification, this interface includes properties for * each of the following: * * - Protocol version * - HTTP method * - URI * - Headers * - Message body * * During construction, implementations MUST attempt to set the Host header from * a provided URI if no Host header is provided. * * Requests are considered immutable; all methods that might change state MUST * be implemented such that they retain the internal state of the current * message and return an instance that contains the changed state. */ interface RequestInterface extends \ForminatorGoogleAddon\Psr\Http\Message\MessageInterface { /** * Retrieves the message's request target. * * Retrieves the message's request-target either as it will appear (for * clients), as it appeared at request (for servers), or as it was * specified for the instance (see withRequestTarget()). * * In most cases, this will be the origin-form of the composed URI, * unless a value was provided to the concrete implementation (see * withRequestTarget() below). * * If no URI is available, and no request-target has been specifically * provided, this method MUST return the string "/". * * @return string */ public function getRequestTarget(): string; /** * Return an instance with the specific request-target. * * If the request needs a non-origin-form request-target — e.g., for * specifying an absolute-form, authority-form, or asterisk-form — * this method may be used to create an instance with the specified * request-target, verbatim. * * This method MUST be implemented in such a way as to retain the * immutability of the message, and MUST return an instance that has the * changed request target. * * @link http://tools.ietf.org/html/rfc7230#section-5.3 (for the various * request-target forms allowed in request messages) * @param string $requestTarget * @return static */ public function withRequestTarget(string $requestTarget): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface; /** * Retrieves the HTTP method of the request. * * @return string Returns the request method. */ public function getMethod(): string; /** * Return an instance with the provided HTTP method. * * While HTTP method names are typically all uppercase characters, HTTP * method names are case-sensitive and thus implementations SHOULD NOT * modify the given string. * * This method MUST be implemented in such a way as to retain the * immutability of the message, and MUST return an instance that has the * changed request method. * * @param string $method Case-sensitive method. * @return static * @throws \InvalidArgumentException for invalid HTTP methods. */ public function withMethod(string $method): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface; /** * Retrieves the URI instance. * * This method MUST return a UriInterface instance. * * @link http://tools.ietf.org/html/rfc3986#section-4.3 * @return UriInterface Returns a UriInterface instance * representing the URI of the request. */ public function getUri(): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface; /** * Returns an instance with the provided URI. * * This method MUST update the Host header of the returned request by * default if the URI contains a host component. If the URI does not * contain a host component, any pre-existing Host header MUST be carried * over to the returned request. * * You can opt-in to preserving the original state of the Host header by * setting `$preserveHost` to `true`. When `$preserveHost` is set to * `true`, this method interacts with the Host header in the following ways: * * - If the Host header is missing or empty, and the new URI contains * a host component, this method MUST update the Host header in the returned * request. * - If the Host header is missing or empty, and the new URI does not contain a * host component, this method MUST NOT update the Host header in the returned * request. * - If a Host header is present and non-empty, this method MUST NOT update * the Host header in the returned request. * * This method MUST be implemented in such a way as to retain the * immutability of the message, and MUST return an instance that has the * new UriInterface instance. * * @link http://tools.ietf.org/html/rfc3986#section-4.3 * @param UriInterface $uri New request URI to use. * @param bool $preserveHost Preserve the original state of the Host header. * @return static */ public function withUri(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri, bool $preserveHost = \false): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface; } } namespace ForminatorGoogleAddon\GuzzleHttp\Psr7 { /** * PSR-7 request implementation. */ class Request implements \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface { use \ForminatorGoogleAddon\GuzzleHttp\Psr7\MessageTrait; /** @var string */ private $method; /** @var string|null */ private $requestTarget; /** @var UriInterface */ private $uri; /** * @param string $method HTTP method * @param string|UriInterface $uri URI * @param (string|string[])[] $headers Request headers * @param string|resource|StreamInterface|null $body Request body * @param string $version Protocol version */ public function __construct(string $method, $uri, array $headers = [], $body = null, string $version = '1.1') { } public function getRequestTarget(): string { } public function withRequestTarget($requestTarget): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface { } public function getMethod(): string { } public function withMethod($method): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface { } public function getUri(): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } public function withUri(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri, $preserveHost = \false): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface { } private function updateHostFromUri(): void { } /** * @param mixed $method */ private function assertMethod($method): void { } } } namespace ForminatorGoogleAddon\Psr\Http\Message { /** * Representation of an outgoing, server-side response. * * Per the HTTP specification, this interface includes properties for * each of the following: * * - Protocol version * - Status code and reason phrase * - Headers * - Message body * * Responses are considered immutable; all methods that might change state MUST * be implemented such that they retain the internal state of the current * message and return an instance that contains the changed state. */ interface ResponseInterface extends \ForminatorGoogleAddon\Psr\Http\Message\MessageInterface { /** * Gets the response status code. * * The status code is a 3-digit integer result code of the server's attempt * to understand and satisfy the request. * * @return int Status code. */ public function getStatusCode(): int; /** * Return an instance with the specified status code and, optionally, reason phrase. * * If no reason phrase is specified, implementations MAY choose to default * to the RFC 7231 or IANA recommended reason phrase for the response's * status code. * * This method MUST be implemented in such a way as to retain the * immutability of the message, and MUST return an instance that has the * updated status and reason phrase. * * @link http://tools.ietf.org/html/rfc7231#section-6 * @link http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml * @param int $code The 3-digit integer result code to set. * @param string $reasonPhrase The reason phrase to use with the * provided status code; if none is provided, implementations MAY * use the defaults as suggested in the HTTP specification. * @return static * @throws \InvalidArgumentException For invalid status code arguments. */ public function withStatus(int $code, string $reasonPhrase = ''): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface; /** * Gets the response reason phrase associated with the status code. * * Because a reason phrase is not a required element in a response * status line, the reason phrase value MAY be null. Implementations MAY * choose to return the default RFC 7231 recommended reason phrase (or those * listed in the IANA HTTP Status Code Registry) for the response's * status code. * * @link http://tools.ietf.org/html/rfc7231#section-6 * @link http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml * @return string Reason phrase; must return an empty string if none present. */ public function getReasonPhrase(): string; } } namespace ForminatorGoogleAddon\GuzzleHttp\Psr7 { /** * PSR-7 response implementation. */ class Response implements \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { use \ForminatorGoogleAddon\GuzzleHttp\Psr7\MessageTrait; /** Map of standard HTTP status code/reason phrases */ private const PHRASES = [100 => 'Continue', 101 => 'Switching Protocols', 102 => 'Processing', 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', 207 => 'Multi-status', 208 => 'Already Reported', 300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', 306 => 'Switch Proxy', 307 => 'Temporary Redirect', 308 => 'Permanent Redirect', 400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Time-out', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Request Entity Too Large', 414 => 'Request-URI Too Large', 415 => 'Unsupported Media Type', 416 => 'Requested range not satisfiable', 417 => 'Expectation Failed', 418 => 'I\'m a teapot', 422 => 'Unprocessable Entity', 423 => 'Locked', 424 => 'Failed Dependency', 425 => 'Unordered Collection', 426 => 'Upgrade Required', 428 => 'Precondition Required', 429 => 'Too Many Requests', 431 => 'Request Header Fields Too Large', 451 => 'Unavailable For Legal Reasons', 500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Time-out', 505 => 'HTTP Version not supported', 506 => 'Variant Also Negotiates', 507 => 'Insufficient Storage', 508 => 'Loop Detected', 510 => 'Not Extended', 511 => 'Network Authentication Required']; /** @var string */ private $reasonPhrase; /** @var int */ private $statusCode; /** * @param int $status Status code * @param (string|string[])[] $headers Response headers * @param string|resource|StreamInterface|null $body Response body * @param string $version Protocol version * @param string|null $reason Reason phrase (when empty a default will be used based on the status code) */ public function __construct(int $status = 200, array $headers = [], $body = null, string $version = '1.1', ?string $reason = null) { } public function getStatusCode(): int { } public function getReasonPhrase(): string { } public function withStatus($code, $reasonPhrase = ''): \ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface { } /** * @param mixed $statusCode */ private function assertStatusCodeIsInteger($statusCode): void { } private function assertStatusCodeRange(int $statusCode): void { } } /** * @internal */ final class Rfc7230 { /** * Header related regular expressions (based on amphp/http package) * * Note: header delimiter (\r\n) is modified to \r?\n to accept line feed only delimiters for BC reasons. * * @see https://github.com/amphp/http/blob/v1.0.1/src/Rfc7230.php#L12-L15 * * @license https://github.com/amphp/http/blob/v1.0.1/LICENSE */ public const HEADER_REGEX = "(^([^()<>@,;:\\\"/[\\]?={}\x01- ]++):[ \t]*+((?:[ \t]*+[!-~\x80-\xff]++)*+)[ \t]*+\r?\n)m"; public const HEADER_FOLD_REGEX = "(\r?\n[ \t]++)"; } } namespace ForminatorGoogleAddon\Psr\Http\Message { /** * Representation of an incoming, server-side HTTP request. * * Per the HTTP specification, this interface includes properties for * each of the following: * * - Protocol version * - HTTP method * - URI * - Headers * - Message body * * Additionally, it encapsulates all data as it has arrived to the * application from the CGI and/or PHP environment, including: * * - The values represented in $_SERVER. * - Any cookies provided (generally via $_COOKIE) * - Query string arguments (generally via $_GET, or as parsed via parse_str()) * - Upload files, if any (as represented by $_FILES) * - Deserialized body parameters (generally from $_POST) * * $_SERVER values MUST be treated as immutable, as they represent application * state at the time of request; as such, no methods are provided to allow * modification of those values. The other values provide such methods, as they * can be restored from $_SERVER or the request body, and may need treatment * during the application (e.g., body parameters may be deserialized based on * content type). * * Additionally, this interface recognizes the utility of introspecting a * request to derive and match additional parameters (e.g., via URI path * matching, decrypting cookie values, deserializing non-form-encoded body * content, matching authorization headers to users, etc). These parameters * are stored in an "attributes" property. * * Requests are considered immutable; all methods that might change state MUST * be implemented such that they retain the internal state of the current * message and return an instance that contains the changed state. */ interface ServerRequestInterface extends \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface { /** * Retrieve server parameters. * * Retrieves data related to the incoming request environment, * typically derived from PHP's $_SERVER superglobal. The data IS NOT * REQUIRED to originate from $_SERVER. * * @return array */ public function getServerParams(): array; /** * Retrieve cookies. * * Retrieves cookies sent by the client to the server. * * The data MUST be compatible with the structure of the $_COOKIE * superglobal. * * @return array */ public function getCookieParams(): array; /** * Return an instance with the specified cookies. * * The data IS NOT REQUIRED to come from the $_COOKIE superglobal, but MUST * be compatible with the structure of $_COOKIE. Typically, this data will * be injected at instantiation. * * This method MUST NOT update the related Cookie header of the request * instance, nor related values in the server params. * * This method MUST be implemented in such a way as to retain the * immutability of the message, and MUST return an instance that has the * updated cookie values. * * @param array $cookies Array of key/value pairs representing cookies. * @return static */ public function withCookieParams(array $cookies): \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface; /** * Retrieve query string arguments. * * Retrieves the deserialized query string arguments, if any. * * Note: the query params might not be in sync with the URI or server * params. If you need to ensure you are only getting the original * values, you may need to parse the query string from `getUri()->getQuery()` * or from the `QUERY_STRING` server param. * * @return array */ public function getQueryParams(): array; /** * Return an instance with the specified query string arguments. * * These values SHOULD remain immutable over the course of the incoming * request. They MAY be injected during instantiation, such as from PHP's * $_GET superglobal, or MAY be derived from some other value such as the * URI. In cases where the arguments are parsed from the URI, the data * MUST be compatible with what PHP's parse_str() would return for * purposes of how duplicate query parameters are handled, and how nested * sets are handled. * * Setting query string arguments MUST NOT change the URI stored by the * request, nor the values in the server params. * * This method MUST be implemented in such a way as to retain the * immutability of the message, and MUST return an instance that has the * updated query string arguments. * * @param array $query Array of query string arguments, typically from * $_GET. * @return static */ public function withQueryParams(array $query): \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface; /** * Retrieve normalized file upload data. * * This method returns upload metadata in a normalized tree, with each leaf * an instance of Psr\Http\Message\UploadedFileInterface. * * These values MAY be prepared from $_FILES or the message body during * instantiation, or MAY be injected via withUploadedFiles(). * * @return array An array tree of UploadedFileInterface instances; an empty * array MUST be returned if no data is present. */ public function getUploadedFiles(): array; /** * Create a new instance with the specified uploaded files. * * This method MUST be implemented in such a way as to retain the * immutability of the message, and MUST return an instance that has the * updated body parameters. * * @param array $uploadedFiles An array tree of UploadedFileInterface instances. * @return static * @throws \InvalidArgumentException if an invalid structure is provided. */ public function withUploadedFiles(array $uploadedFiles): \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface; /** * Retrieve any parameters provided in the request body. * * If the request Content-Type is either application/x-www-form-urlencoded * or multipart/form-data, and the request method is POST, this method MUST * return the contents of $_POST. * * Otherwise, this method may return any results of deserializing * the request body content; as parsing returns structured content, the * potential types MUST be arrays or objects only. A null value indicates * the absence of body content. * * @return null|array|object The deserialized body parameters, if any. * These will typically be an array or object. */ public function getParsedBody(); /** * Return an instance with the specified body parameters. * * These MAY be injected during instantiation. * * If the request Content-Type is either application/x-www-form-urlencoded * or multipart/form-data, and the request method is POST, use this method * ONLY to inject the contents of $_POST. * * The data IS NOT REQUIRED to come from $_POST, but MUST be the results of * deserializing the request body content. Deserialization/parsing returns * structured data, and, as such, this method ONLY accepts arrays or objects, * or a null value if nothing was available to parse. * * As an example, if content negotiation determines that the request data * is a JSON payload, this method could be used to create a request * instance with the deserialized parameters. * * This method MUST be implemented in such a way as to retain the * immutability of the message, and MUST return an instance that has the * updated body parameters. * * @param null|array|object $data The deserialized body data. This will * typically be in an array or object. * @return static * @throws \InvalidArgumentException if an unsupported argument type is * provided. */ public function withParsedBody($data): \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface; /** * Retrieve attributes derived from the request. * * The request "attributes" may be used to allow injection of any * parameters derived from the request: e.g., the results of path * match operations; the results of decrypting cookies; the results of * deserializing non-form-encoded message bodies; etc. Attributes * will be application and request specific, and CAN be mutable. * * @return array Attributes derived from the request. */ public function getAttributes(): array; /** * Retrieve a single derived request attribute. * * Retrieves a single derived request attribute as described in * getAttributes(). If the attribute has not been previously set, returns * the default value as provided. * * This method obviates the need for a hasAttribute() method, as it allows * specifying a default value to return if the attribute is not found. * * @see getAttributes() * @param string $name The attribute name. * @param mixed $default Default value to return if the attribute does not exist. * @return mixed */ public function getAttribute(string $name, $default = null); /** * Return an instance with the specified derived request attribute. * * This method allows setting a single derived request attribute as * described in getAttributes(). * * This method MUST be implemented in such a way as to retain the * immutability of the message, and MUST return an instance that has the * updated attribute. * * @see getAttributes() * @param string $name The attribute name. * @param mixed $value The value of the attribute. * @return static */ public function withAttribute(string $name, $value): \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface; /** * Return an instance that removes the specified derived request attribute. * * This method allows removing a single derived request attribute as * described in getAttributes(). * * This method MUST be implemented in such a way as to retain the * immutability of the message, and MUST return an instance that removes * the attribute. * * @see getAttributes() * @param string $name The attribute name. * @return static */ public function withoutAttribute(string $name): \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface; } } namespace ForminatorGoogleAddon\GuzzleHttp\Psr7 { /** * Server-side HTTP request * * Extends the Request definition to add methods for accessing incoming data, * specifically server parameters, cookies, matched path parameters, query * string arguments, body parameters, and upload file information. * * "Attributes" are discovered via decomposing the request (and usually * specifically the URI path), and typically will be injected by the application. * * Requests are considered immutable; all methods that might change state are * implemented such that they retain the internal state of the current * message and return a new instance that contains the changed state. */ class ServerRequest extends \ForminatorGoogleAddon\GuzzleHttp\Psr7\Request implements \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface { /** * @var array */ private $attributes = []; /** * @var array */ private $cookieParams = []; /** * @var array|object|null */ private $parsedBody; /** * @var array */ private $queryParams = []; /** * @var array */ private $serverParams; /** * @var array */ private $uploadedFiles = []; /** * @param string $method HTTP method * @param string|UriInterface $uri URI * @param (string|string[])[] $headers Request headers * @param string|resource|StreamInterface|null $body Request body * @param string $version Protocol version * @param array $serverParams Typically the $_SERVER superglobal */ public function __construct(string $method, $uri, array $headers = [], $body = null, string $version = '1.1', array $serverParams = []) { } /** * Return an UploadedFile instance array. * * @param array $files An array which respect $_FILES structure * * @throws InvalidArgumentException for unrecognized values */ public static function normalizeFiles(array $files): array { } /** * Create and return an UploadedFile instance from a $_FILES specification. * * If the specification represents an array of values, this method will * delegate to normalizeNestedFileSpec() and return that return value. * * @param array $value $_FILES struct * * @return UploadedFileInterface|UploadedFileInterface[] */ private static function createUploadedFileFromSpec(array $value) { } /** * Normalize an array of file specifications. * * Loops through all nested files and returns a normalized array of * UploadedFileInterface instances. * * @return UploadedFileInterface[] */ private static function normalizeNestedFileSpec(array $files = []): array { } /** * Return a ServerRequest populated with superglobals: * $_GET * $_POST * $_COOKIE * $_FILES * $_SERVER */ public static function fromGlobals(): \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface { } private static function extractHostAndPortFromAuthority(string $authority): array { } /** * Get a Uri populated with values from $_SERVER. */ public static function getUriFromGlobals(): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } public function getServerParams(): array { } public function getUploadedFiles(): array { } public function withUploadedFiles(array $uploadedFiles): \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface { } public function getCookieParams(): array { } public function withCookieParams(array $cookies): \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface { } public function getQueryParams(): array { } public function withQueryParams(array $query): \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface { } /** * @return array|object|null */ public function getParsedBody() { } public function withParsedBody($data): \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface { } public function getAttributes(): array { } /** * @return mixed */ public function getAttribute($attribute, $default = null) { } public function withAttribute($attribute, $value): \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface { } public function withoutAttribute($attribute): \ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface { } } /** * PHP stream implementation. */ class Stream implements \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { /** * @see https://www.php.net/manual/en/function.fopen.php * @see https://www.php.net/manual/en/function.gzopen.php */ private const READABLE_MODES = '/r|a\+|ab\+|w\+|wb\+|x\+|xb\+|c\+|cb\+/'; private const WRITABLE_MODES = '/a|w|r\+|rb\+|rw|x|c/'; /** @var resource */ private $stream; /** @var int|null */ private $size; /** @var bool */ private $seekable; /** @var bool */ private $readable; /** @var bool */ private $writable; /** @var string|null */ private $uri; /** @var mixed[] */ private $customMetadata; /** * This constructor accepts an associative array of options. * * - size: (int) If a read stream would otherwise have an indeterminate * size, but the size is known due to foreknowledge, then you can * provide that size, in bytes. * - metadata: (array) Any additional metadata to return when the metadata * of the stream is accessed. * * @param resource $stream Stream resource to wrap. * @param array{size?: int, metadata?: array} $options Associative array of options. * * @throws \InvalidArgumentException if the stream is not a stream resource */ public function __construct($stream, array $options = []) { } /** * Closes the stream when the destructed */ public function __destruct() { } public function __toString(): string { } public function getContents(): string { } public function close(): void { } public function detach() { } public function getSize(): ?int { } public function isReadable(): bool { } public function isWritable(): bool { } public function isSeekable(): bool { } public function eof(): bool { } public function tell(): int { } public function rewind(): void { } public function seek($offset, $whence = \SEEK_SET): void { } public function read($length): string { } public function write($string): int { } /** * @return mixed */ public function getMetadata($key = null) { } } /** * Converts Guzzle streams into PHP stream resources. * * @see https://www.php.net/streamwrapper */ final class StreamWrapper { /** @var resource */ public $context; /** @var StreamInterface */ private $stream; /** @var string r, r+, or w */ private $mode; /** * Returns a resource representing the stream. * * @param StreamInterface $stream The stream to get a resource for * * @return resource * * @throws \InvalidArgumentException if stream is not readable or writable */ public static function getResource(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream) { } /** * Creates a stream context that can be used to open a stream as a php stream resource. * * @return resource */ public static function createStreamContext(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream) { } /** * Registers the stream wrapper if needed */ public static function register(): void { } public function stream_open(string $path, string $mode, int $options, ?string &$opened_path = null): bool { } public function stream_read(int $count): string { } public function stream_write(string $data): int { } public function stream_tell(): int { } public function stream_eof(): bool { } public function stream_seek(int $offset, int $whence): bool { } /** * @return resource|false */ public function stream_cast(int $cast_as) { } /** * @return array{ * dev: int, * ino: int, * mode: int, * nlink: int, * uid: int, * gid: int, * rdev: int, * size: int, * atime: int, * mtime: int, * ctime: int, * blksize: int, * blocks: int * }|false */ public function stream_stat() { } /** * @return array{ * dev: int, * ino: int, * mode: int, * nlink: int, * uid: int, * gid: int, * rdev: int, * size: int, * atime: int, * mtime: int, * ctime: int, * blksize: int, * blocks: int * } */ public function url_stat(string $path, int $flags): array { } } } namespace ForminatorGoogleAddon\Psr\Http\Message { /** * Value object representing a file uploaded through an HTTP request. * * Instances of this interface are considered immutable; all methods that * might change state MUST be implemented such that they retain the internal * state of the current instance and return an instance that contains the * changed state. */ interface UploadedFileInterface { /** * Retrieve a stream representing the uploaded file. * * This method MUST return a StreamInterface instance, representing the * uploaded file. The purpose of this method is to allow utilizing native PHP * stream functionality to manipulate the file upload, such as * stream_copy_to_stream() (though the result will need to be decorated in a * native PHP stream wrapper to work with such functions). * * If the moveTo() method has been called previously, this method MUST raise * an exception. * * @return StreamInterface Stream representation of the uploaded file. * @throws \RuntimeException in cases when no stream is available or can be * created. */ public function getStream(): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface; /** * Move the uploaded file to a new location. * * Use this method as an alternative to move_uploaded_file(). This method is * guaranteed to work in both SAPI and non-SAPI environments. * Implementations must determine which environment they are in, and use the * appropriate method (move_uploaded_file(), rename(), or a stream * operation) to perform the operation. * * $targetPath may be an absolute path, or a relative path. If it is a * relative path, resolution should be the same as used by PHP's rename() * function. * * The original file or stream MUST be removed on completion. * * If this method is called more than once, any subsequent calls MUST raise * an exception. * * When used in an SAPI environment where $_FILES is populated, when writing * files via moveTo(), is_uploaded_file() and move_uploaded_file() SHOULD be * used to ensure permissions and upload status are verified correctly. * * If you wish to move to a stream, use getStream(), as SAPI operations * cannot guarantee writing to stream destinations. * * @see http://php.net/is_uploaded_file * @see http://php.net/move_uploaded_file * @param string $targetPath Path to which to move the uploaded file. * @throws \InvalidArgumentException if the $targetPath specified is invalid. * @throws \RuntimeException on any error during the move operation, or on * the second or subsequent call to the method. */ public function moveTo(string $targetPath): void; /** * Retrieve the file size. * * Implementations SHOULD return the value stored in the "size" key of * the file in the $_FILES array if available, as PHP calculates this based * on the actual size transmitted. * * @return int|null The file size in bytes or null if unknown. */ public function getSize(): ?int; /** * Retrieve the error associated with the uploaded file. * * The return value MUST be one of PHP's UPLOAD_ERR_XXX constants. * * If the file was uploaded successfully, this method MUST return * UPLOAD_ERR_OK. * * Implementations SHOULD return the value stored in the "error" key of * the file in the $_FILES array. * * @see http://php.net/manual/en/features.file-upload.errors.php * @return int One of PHP's UPLOAD_ERR_XXX constants. */ public function getError(): int; /** * Retrieve the filename sent by the client. * * Do not trust the value returned by this method. A client could send * a malicious filename with the intention to corrupt or hack your * application. * * Implementations SHOULD return the value stored in the "name" key of * the file in the $_FILES array. * * @return string|null The filename sent by the client or null if none * was provided. */ public function getClientFilename(): ?string; /** * Retrieve the media type sent by the client. * * Do not trust the value returned by this method. A client could send * a malicious media type with the intention to corrupt or hack your * application. * * Implementations SHOULD return the value stored in the "type" key of * the file in the $_FILES array. * * @return string|null The media type sent by the client or null if none * was provided. */ public function getClientMediaType(): ?string; } } namespace ForminatorGoogleAddon\GuzzleHttp\Psr7 { class UploadedFile implements \ForminatorGoogleAddon\Psr\Http\Message\UploadedFileInterface { private const ERRORS = [\UPLOAD_ERR_OK, \UPLOAD_ERR_INI_SIZE, \UPLOAD_ERR_FORM_SIZE, \UPLOAD_ERR_PARTIAL, \UPLOAD_ERR_NO_FILE, \UPLOAD_ERR_NO_TMP_DIR, \UPLOAD_ERR_CANT_WRITE, \UPLOAD_ERR_EXTENSION]; /** * @var string|null */ private $clientFilename; /** * @var string|null */ private $clientMediaType; /** * @var int */ private $error; /** * @var string|null */ private $file; /** * @var bool */ private $moved = \false; /** * @var int|null */ private $size; /** * @var StreamInterface|null */ private $stream; /** * @param StreamInterface|string|resource $streamOrFile */ public function __construct($streamOrFile, ?int $size, int $errorStatus, ?string $clientFilename = null, ?string $clientMediaType = null) { } /** * Depending on the value set file or stream variable * * @param StreamInterface|string|resource $streamOrFile * * @throws InvalidArgumentException */ private function setStreamOrFile($streamOrFile): void { } /** * @throws InvalidArgumentException */ private function setError(int $error): void { } private static function isStringNotEmpty($param): bool { } /** * Return true if there is no upload error */ private function isOk(): bool { } public function isMoved(): bool { } /** * @throws RuntimeException if is moved or not ok */ private function validateActive(): void { } public function getStream(): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { } public function moveTo($targetPath): void { } public function getSize(): ?int { } public function getError(): int { } public function getClientFilename(): ?string { } public function getClientMediaType(): ?string { } } } namespace ForminatorGoogleAddon\Psr\Http\Message { /** * Value object representing a URI. * * This interface is meant to represent URIs according to RFC 3986 and to * provide methods for most common operations. Additional functionality for * working with URIs can be provided on top of the interface or externally. * Its primary use is for HTTP requests, but may also be used in other * contexts. * * Instances of this interface are considered immutable; all methods that * might change state MUST be implemented such that they retain the internal * state of the current instance and return an instance that contains the * changed state. * * Typically the Host header will be also be present in the request message. * For server-side requests, the scheme will typically be discoverable in the * server parameters. * * @link http://tools.ietf.org/html/rfc3986 (the URI specification) */ interface UriInterface { /** * Retrieve the scheme component of the URI. * * If no scheme is present, this method MUST return an empty string. * * The value returned MUST be normalized to lowercase, per RFC 3986 * Section 3.1. * * The trailing ":" character is not part of the scheme and MUST NOT be * added. * * @see https://tools.ietf.org/html/rfc3986#section-3.1 * @return string The URI scheme. */ public function getScheme(): string; /** * Retrieve the authority component of the URI. * * If no authority information is present, this method MUST return an empty * string. * * The authority syntax of the URI is: * *
         * [user-info@]host[:port]
         * 
* * If the port component is not set or is the standard port for the current * scheme, it SHOULD NOT be included. * * @see https://tools.ietf.org/html/rfc3986#section-3.2 * @return string The URI authority, in "[user-info@]host[:port]" format. */ public function getAuthority(): string; /** * Retrieve the user information component of the URI. * * If no user information is present, this method MUST return an empty * string. * * If a user is present in the URI, this will return that value; * additionally, if the password is also present, it will be appended to the * user value, with a colon (":") separating the values. * * The trailing "@" character is not part of the user information and MUST * NOT be added. * * @return string The URI user information, in "username[:password]" format. */ public function getUserInfo(): string; /** * Retrieve the host component of the URI. * * If no host is present, this method MUST return an empty string. * * The value returned MUST be normalized to lowercase, per RFC 3986 * Section 3.2.2. * * @see http://tools.ietf.org/html/rfc3986#section-3.2.2 * @return string The URI host. */ public function getHost(): string; /** * Retrieve the port component of the URI. * * If a port is present, and it is non-standard for the current scheme, * this method MUST return it as an integer. If the port is the standard port * used with the current scheme, this method SHOULD return null. * * If no port is present, and no scheme is present, this method MUST return * a null value. * * If no port is present, but a scheme is present, this method MAY return * the standard port for that scheme, but SHOULD return null. * * @return null|int The URI port. */ public function getPort(): ?int; /** * Retrieve the path component of the URI. * * The path can either be empty or absolute (starting with a slash) or * rootless (not starting with a slash). Implementations MUST support all * three syntaxes. * * Normally, the empty path "" and absolute path "/" are considered equal as * defined in RFC 7230 Section 2.7.3. But this method MUST NOT automatically * do this normalization because in contexts with a trimmed base path, e.g. * the front controller, this difference becomes significant. It's the task * of the user to handle both "" and "/". * * The value returned MUST be percent-encoded, but MUST NOT double-encode * any characters. To determine what characters to encode, please refer to * RFC 3986, Sections 2 and 3.3. * * As an example, if the value should include a slash ("/") not intended as * delimiter between path segments, that value MUST be passed in encoded * form (e.g., "%2F") to the instance. * * @see https://tools.ietf.org/html/rfc3986#section-2 * @see https://tools.ietf.org/html/rfc3986#section-3.3 * @return string The URI path. */ public function getPath(): string; /** * Retrieve the query string of the URI. * * If no query string is present, this method MUST return an empty string. * * The leading "?" character is not part of the query and MUST NOT be * added. * * The value returned MUST be percent-encoded, but MUST NOT double-encode * any characters. To determine what characters to encode, please refer to * RFC 3986, Sections 2 and 3.4. * * As an example, if a value in a key/value pair of the query string should * include an ampersand ("&") not intended as a delimiter between values, * that value MUST be passed in encoded form (e.g., "%26") to the instance. * * @see https://tools.ietf.org/html/rfc3986#section-2 * @see https://tools.ietf.org/html/rfc3986#section-3.4 * @return string The URI query string. */ public function getQuery(): string; /** * Retrieve the fragment component of the URI. * * If no fragment is present, this method MUST return an empty string. * * The leading "#" character is not part of the fragment and MUST NOT be * added. * * The value returned MUST be percent-encoded, but MUST NOT double-encode * any characters. To determine what characters to encode, please refer to * RFC 3986, Sections 2 and 3.5. * * @see https://tools.ietf.org/html/rfc3986#section-2 * @see https://tools.ietf.org/html/rfc3986#section-3.5 * @return string The URI fragment. */ public function getFragment(): string; /** * Return an instance with the specified scheme. * * This method MUST retain the state of the current instance, and return * an instance that contains the specified scheme. * * Implementations MUST support the schemes "http" and "https" case * insensitively, and MAY accommodate other schemes if required. * * An empty scheme is equivalent to removing the scheme. * * @param string $scheme The scheme to use with the new instance. * @return static A new instance with the specified scheme. * @throws \InvalidArgumentException for invalid or unsupported schemes. */ public function withScheme(string $scheme): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface; /** * Return an instance with the specified user information. * * This method MUST retain the state of the current instance, and return * an instance that contains the specified user information. * * Password is optional, but the user information MUST include the * user; an empty string for the user is equivalent to removing user * information. * * @param string $user The user name to use for authority. * @param null|string $password The password associated with $user. * @return static A new instance with the specified user information. */ public function withUserInfo(string $user, ?string $password = null): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface; /** * Return an instance with the specified host. * * This method MUST retain the state of the current instance, and return * an instance that contains the specified host. * * An empty host value is equivalent to removing the host. * * @param string $host The hostname to use with the new instance. * @return static A new instance with the specified host. * @throws \InvalidArgumentException for invalid hostnames. */ public function withHost(string $host): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface; /** * Return an instance with the specified port. * * This method MUST retain the state of the current instance, and return * an instance that contains the specified port. * * Implementations MUST raise an exception for ports outside the * established TCP and UDP port ranges. * * A null value provided for the port is equivalent to removing the port * information. * * @param null|int $port The port to use with the new instance; a null value * removes the port information. * @return static A new instance with the specified port. * @throws \InvalidArgumentException for invalid ports. */ public function withPort(?int $port): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface; /** * Return an instance with the specified path. * * This method MUST retain the state of the current instance, and return * an instance that contains the specified path. * * The path can either be empty or absolute (starting with a slash) or * rootless (not starting with a slash). Implementations MUST support all * three syntaxes. * * If the path is intended to be domain-relative rather than path relative then * it must begin with a slash ("/"). Paths not starting with a slash ("/") * are assumed to be relative to some base path known to the application or * consumer. * * Users can provide both encoded and decoded path characters. * Implementations ensure the correct encoding as outlined in getPath(). * * @param string $path The path to use with the new instance. * @return static A new instance with the specified path. * @throws \InvalidArgumentException for invalid paths. */ public function withPath(string $path): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface; /** * Return an instance with the specified query string. * * This method MUST retain the state of the current instance, and return * an instance that contains the specified query string. * * Users can provide both encoded and decoded query characters. * Implementations ensure the correct encoding as outlined in getQuery(). * * An empty query string value is equivalent to removing the query string. * * @param string $query The query string to use with the new instance. * @return static A new instance with the specified query string. * @throws \InvalidArgumentException for invalid query strings. */ public function withQuery(string $query): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface; /** * Return an instance with the specified URI fragment. * * This method MUST retain the state of the current instance, and return * an instance that contains the specified URI fragment. * * Users can provide both encoded and decoded fragment characters. * Implementations ensure the correct encoding as outlined in getFragment(). * * An empty fragment value is equivalent to removing the fragment. * * @param string $fragment The fragment to use with the new instance. * @return static A new instance with the specified fragment. */ public function withFragment(string $fragment): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface; /** * Return the string representation as a URI reference. * * Depending on which components of the URI are present, the resulting * string is either a full URI or relative reference according to RFC 3986, * Section 4.1. The method concatenates the various components of the URI, * using the appropriate delimiters: * * - If a scheme is present, it MUST be suffixed by ":". * - If an authority is present, it MUST be prefixed by "//". * - The path can be concatenated without delimiters. But there are two * cases where the path has to be adjusted to make the URI reference * valid as PHP does not allow to throw an exception in __toString(): * - If the path is rootless and an authority is present, the path MUST * be prefixed by "/". * - If the path is starting with more than one "/" and no authority is * present, the starting slashes MUST be reduced to one. * - If a query is present, it MUST be prefixed by "?". * - If a fragment is present, it MUST be prefixed by "#". * * @see http://tools.ietf.org/html/rfc3986#section-4.1 * @return string */ public function __toString(): string; } } namespace ForminatorGoogleAddon\GuzzleHttp\Psr7 { /** * PSR-7 URI implementation. * * @author Michael Dowling * @author Tobias Schultze * @author Matthew Weier O'Phinney */ class Uri implements \ForminatorGoogleAddon\Psr\Http\Message\UriInterface, \JsonSerializable { /** * Absolute http and https URIs require a host per RFC 7230 Section 2.7 * but in generic URIs the host can be empty. So for http(s) URIs * we apply this default host when no host is given yet to form a * valid URI. */ private const HTTP_DEFAULT_HOST = 'localhost'; private const DEFAULT_PORTS = ['http' => 80, 'https' => 443, 'ftp' => 21, 'gopher' => 70, 'nntp' => 119, 'news' => 119, 'telnet' => 23, 'tn3270' => 23, 'imap' => 143, 'pop' => 110, 'ldap' => 389]; /** * Unreserved characters for use in a regex. * * @see https://datatracker.ietf.org/doc/html/rfc3986#section-2.3 */ private const CHAR_UNRESERVED = 'a-zA-Z0-9_\-\.~'; /** * Sub-delims for use in a regex. * * @see https://datatracker.ietf.org/doc/html/rfc3986#section-2.2 */ private const CHAR_SUB_DELIMS = '!\$&\'\(\)\*\+,;='; private const QUERY_SEPARATORS_REPLACEMENT = ['=' => '%3D', '&' => '%26']; /** @var string Uri scheme. */ private $scheme = ''; /** @var string Uri user info. */ private $userInfo = ''; /** @var string Uri host. */ private $host = ''; /** @var int|null Uri port. */ private $port; /** @var string Uri path. */ private $path = ''; /** @var string Uri query string. */ private $query = ''; /** @var string Uri fragment. */ private $fragment = ''; /** @var string|null String representation */ private $composedComponents; public function __construct(string $uri = '') { } /** * UTF-8 aware \parse_url() replacement. * * The internal function produces broken output for non ASCII domain names * (IDN) when used with locales other than "C". * * On the other hand, cURL understands IDN correctly only when UTF-8 locale * is configured ("C.UTF-8", "en_US.UTF-8", etc.). * * @see https://bugs.php.net/bug.php?id=52923 * @see https://www.php.net/manual/en/function.parse-url.php#114817 * @see https://curl.haxx.se/libcurl/c/CURLOPT_URL.html#ENCODING * * @return array|false */ private static function parse(string $url) { } public function __toString(): string { } /** * Composes a URI reference string from its various components. * * Usually this method does not need to be called manually but instead is used indirectly via * `Psr\Http\Message\UriInterface::__toString`. * * PSR-7 UriInterface treats an empty component the same as a missing component as * getQuery(), getFragment() etc. always return a string. This explains the slight * difference to RFC 3986 Section 5.3. * * Another adjustment is that the authority separator is added even when the authority is missing/empty * for the "file" scheme. This is because PHP stream functions like `file_get_contents` only work with * `file:///myfile` but not with `file:/myfile` although they are equivalent according to RFC 3986. But * `file:///` is the more common syntax for the file scheme anyway (Chrome for example redirects to * that format). * * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.3 */ public static function composeComponents(?string $scheme, ?string $authority, string $path, ?string $query, ?string $fragment): string { } /** * Whether the URI has the default port of the current scheme. * * `Psr\Http\Message\UriInterface::getPort` may return null or the standard port. This method can be used * independently of the implementation. */ public static function isDefaultPort(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri): bool { } /** * Whether the URI is absolute, i.e. it has a scheme. * * An instance of UriInterface can either be an absolute URI or a relative reference. This method returns true * if it is the former. An absolute URI has a scheme. A relative reference is used to express a URI relative * to another URI, the base URI. Relative references can be divided into several forms: * - network-path references, e.g. '//example.com/path' * - absolute-path references, e.g. '/path' * - relative-path references, e.g. 'subpath' * * @see Uri::isNetworkPathReference * @see Uri::isAbsolutePathReference * @see Uri::isRelativePathReference * @see https://datatracker.ietf.org/doc/html/rfc3986#section-4 */ public static function isAbsolute(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri): bool { } /** * Whether the URI is a network-path reference. * * A relative reference that begins with two slash characters is termed an network-path reference. * * @see https://datatracker.ietf.org/doc/html/rfc3986#section-4.2 */ public static function isNetworkPathReference(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri): bool { } /** * Whether the URI is a absolute-path reference. * * A relative reference that begins with a single slash character is termed an absolute-path reference. * * @see https://datatracker.ietf.org/doc/html/rfc3986#section-4.2 */ public static function isAbsolutePathReference(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri): bool { } /** * Whether the URI is a relative-path reference. * * A relative reference that does not begin with a slash character is termed a relative-path reference. * * @see https://datatracker.ietf.org/doc/html/rfc3986#section-4.2 */ public static function isRelativePathReference(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri): bool { } /** * Whether the URI is a same-document reference. * * A same-document reference refers to a URI that is, aside from its fragment * component, identical to the base URI. When no base URI is given, only an empty * URI reference (apart from its fragment) is considered a same-document reference. * * @param UriInterface $uri The URI to check * @param UriInterface|null $base An optional base URI to compare against * * @see https://datatracker.ietf.org/doc/html/rfc3986#section-4.4 */ public static function isSameDocumentReference(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri, ?\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $base = null): bool { } /** * Creates a new URI with a specific query string value removed. * * Any existing query string values that exactly match the provided key are * removed. * * @param UriInterface $uri URI to use as a base. * @param string $key Query string key to remove. */ public static function withoutQueryValue(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri, string $key): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } /** * Creates a new URI with a specific query string value. * * Any existing query string values that exactly match the provided key are * removed and replaced with the given key value pair. * * A value of null will set the query string key without a value, e.g. "key" * instead of "key=value". * * @param UriInterface $uri URI to use as a base. * @param string $key Key to set. * @param string|null $value Value to set */ public static function withQueryValue(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri, string $key, ?string $value): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } /** * Creates a new URI with multiple specific query string values. * * It has the same behavior as withQueryValue() but for an associative array of key => value. * * @param UriInterface $uri URI to use as a base. * @param (string|null)[] $keyValueArray Associative array of key and values */ public static function withQueryValues(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri, array $keyValueArray): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } /** * Creates a URI from a hash of `parse_url` components. * * @see https://www.php.net/manual/en/function.parse-url.php * * @throws MalformedUriException If the components do not form a valid URI. */ public static function fromParts(array $parts): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } public function getScheme(): string { } public function getAuthority(): string { } public function getUserInfo(): string { } public function getHost(): string { } public function getPort(): ?int { } public function getPath(): string { } public function getQuery(): string { } public function getFragment(): string { } public function withScheme($scheme): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } public function withUserInfo($user, $password = null): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } public function withHost($host): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } public function withPort($port): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } public function withPath($path): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } public function withQuery($query): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } public function withFragment($fragment): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } public function jsonSerialize(): string { } /** * Apply parse_url parts to a URI. * * @param array $parts Array of parse_url parts to apply. */ private function applyParts(array $parts): void { } /** * @param mixed $scheme * * @throws \InvalidArgumentException If the scheme is invalid. */ private function filterScheme($scheme): string { } /** * @param mixed $component * * @throws \InvalidArgumentException If the user info is invalid. */ private function filterUserInfoComponent($component): string { } /** * @param mixed $host * * @throws \InvalidArgumentException If the host is invalid. */ private function filterHost($host): string { } /** * @param mixed $port * * @throws \InvalidArgumentException If the port is invalid. */ private function filterPort($port): ?int { } /** * @param (string|int)[] $keys * * @return string[] */ private static function getFilteredQueryString(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri, array $keys): array { } private static function generateQueryString(string $key, ?string $value): string { } private function removeDefaultPort(): void { } /** * Filters the path of a URI * * @param mixed $path * * @throws \InvalidArgumentException If the path is invalid. */ private function filterPath($path): string { } /** * Filters the query string or fragment of a URI. * * @param mixed $str * * @throws \InvalidArgumentException If the query or fragment is invalid. */ private function filterQueryAndFragment($str): string { } private function rawurlencodeMatchZero(array $match): string { } private function validateState(): void { } } /** * Provides methods to determine if a modified URL should be considered cross-origin. * * @author Graham Campbell */ final class UriComparator { /** * Determines if a modified URL should be considered cross-origin with * respect to an original URL. */ public static function isCrossOrigin(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $original, \ForminatorGoogleAddon\Psr\Http\Message\UriInterface $modified): bool { } private static function computePort(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri): int { } private function __construct() { } } /** * Provides methods to normalize and compare URIs. * * @author Tobias Schultze * * @see https://datatracker.ietf.org/doc/html/rfc3986#section-6 */ final class UriNormalizer { /** * Default normalizations which only include the ones that preserve semantics. */ public const PRESERVING_NORMALIZATIONS = self::CAPITALIZE_PERCENT_ENCODING | self::DECODE_UNRESERVED_CHARACTERS | self::CONVERT_EMPTY_PATH | self::REMOVE_DEFAULT_HOST | self::REMOVE_DEFAULT_PORT | self::REMOVE_DOT_SEGMENTS; /** * All letters within a percent-encoding triplet (e.g., "%3A") are case-insensitive, and should be capitalized. * * Example: http://example.org/a%c2%b1b → http://example.org/a%C2%B1b */ public const CAPITALIZE_PERCENT_ENCODING = 1; /** * Decodes percent-encoded octets of unreserved characters. * * For consistency, percent-encoded octets in the ranges of ALPHA (%41–%5A and %61–%7A), DIGIT (%30–%39), * hyphen (%2D), period (%2E), underscore (%5F), or tilde (%7E) should not be created by URI producers and, * when found in a URI, should be decoded to their corresponding unreserved characters by URI normalizers. * * Example: http://example.org/%7Eusern%61me/ → http://example.org/~username/ */ public const DECODE_UNRESERVED_CHARACTERS = 2; /** * Converts the empty path to "/" for http and https URIs. * * Example: http://example.org → http://example.org/ */ public const CONVERT_EMPTY_PATH = 4; /** * Removes the default host of the given URI scheme from the URI. * * Only the "file" scheme defines the default host "localhost". * All of `file:/myfile`, `file:///myfile`, and `file://localhost/myfile` * are equivalent according to RFC 3986. The first format is not accepted * by PHPs stream functions and thus already normalized implicitly to the * second format in the Uri class. See `GuzzleHttp\Psr7\Uri::composeComponents`. * * Example: file://localhost/myfile → file:///myfile */ public const REMOVE_DEFAULT_HOST = 8; /** * Removes the default port of the given URI scheme from the URI. * * Example: http://example.org:80/ → http://example.org/ */ public const REMOVE_DEFAULT_PORT = 16; /** * Removes unnecessary dot-segments. * * Dot-segments in relative-path references are not removed as it would * change the semantics of the URI reference. * * Example: http://example.org/../a/b/../c/./d.html → http://example.org/a/c/d.html */ public const REMOVE_DOT_SEGMENTS = 32; /** * Paths which include two or more adjacent slashes are converted to one. * * Webservers usually ignore duplicate slashes and treat those URIs equivalent. * But in theory those URIs do not need to be equivalent. So this normalization * may change the semantics. Encoded slashes (%2F) are not removed. * * Example: http://example.org//foo///bar.html → http://example.org/foo/bar.html */ public const REMOVE_DUPLICATE_SLASHES = 64; /** * Sort query parameters with their values in alphabetical order. * * However, the order of parameters in a URI may be significant (this is not defined by the standard). * So this normalization is not safe and may change the semantics of the URI. * * Example: ?lang=en&article=fred → ?article=fred&lang=en * * Note: The sorting is neither locale nor Unicode aware (the URI query does not get decoded at all) as the * purpose is to be able to compare URIs in a reproducible way, not to have the params sorted perfectly. */ public const SORT_QUERY_PARAMETERS = 128; /** * Returns a normalized URI. * * The scheme and host component are already normalized to lowercase per PSR-7 UriInterface. * This methods adds additional normalizations that can be configured with the $flags parameter. * * PSR-7 UriInterface cannot distinguish between an empty component and a missing component as * getQuery(), getFragment() etc. always return a string. This means the URIs "/?#" and "/" are * treated equivalent which is not necessarily true according to RFC 3986. But that difference * is highly uncommon in reality. So this potential normalization is implied in PSR-7 as well. * * @param UriInterface $uri The URI to normalize * @param int $flags A bitmask of normalizations to apply, see constants * * @see https://datatracker.ietf.org/doc/html/rfc3986#section-6.2 */ public static function normalize(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri, int $flags = self::PRESERVING_NORMALIZATIONS): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } /** * Whether two URIs can be considered equivalent. * * Both URIs are normalized automatically before comparison with the given $normalizations bitmask. The method also * accepts relative URI references and returns true when they are equivalent. This of course assumes they will be * resolved against the same base URI. If this is not the case, determination of equivalence or difference of * relative references does not mean anything. * * @param UriInterface $uri1 An URI to compare * @param UriInterface $uri2 An URI to compare * @param int $normalizations A bitmask of normalizations to apply, see constants * * @see https://datatracker.ietf.org/doc/html/rfc3986#section-6.1 */ public static function isEquivalent(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri1, \ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri2, int $normalizations = self::PRESERVING_NORMALIZATIONS): bool { } private static function capitalizePercentEncoding(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } private static function decodeUnreservedCharacters(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } private function __construct() { } } /** * Resolves a URI reference in the context of a base URI and the opposite way. * * @author Tobias Schultze * * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5 */ final class UriResolver { /** * Removes dot segments from a path and returns the new path. * * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4 */ public static function removeDotSegments(string $path): string { } /** * Converts the relative URI into a new URI that is resolved against the base URI. * * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2 */ public static function resolve(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $base, \ForminatorGoogleAddon\Psr\Http\Message\UriInterface $rel): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } /** * Returns the target URI as a relative reference from the base URI. * * This method is the counterpart to resolve(): * * (string) $target === (string) UriResolver::resolve($base, UriResolver::relativize($base, $target)) * * One use-case is to use the current request URI as base URI and then generate relative links in your documents * to reduce the document size or offer self-contained downloadable document archives. * * $base = new Uri('http://example.com/a/b/'); * echo UriResolver::relativize($base, new Uri('http://example.com/a/b/c')); // prints 'c'. * echo UriResolver::relativize($base, new Uri('http://example.com/a/x/y')); // prints '../x/y'. * echo UriResolver::relativize($base, new Uri('http://example.com/a/b/?q')); // prints '?q'. * echo UriResolver::relativize($base, new Uri('http://example.org/a/b/')); // prints '//example.org/a/b/'. * * This method also accepts a target that is already relative and will try to relativize it further. Only a * relative-path reference will be returned as-is. * * echo UriResolver::relativize($base, new Uri('/a/b/c')); // prints 'c' as well */ public static function relativize(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $base, \ForminatorGoogleAddon\Psr\Http\Message\UriInterface $target): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } private static function getRelativePath(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $base, \ForminatorGoogleAddon\Psr\Http\Message\UriInterface $target): string { } private function __construct() { } } final class Utils { /** * Remove the items given by the keys, case insensitively from the data. * * @param (string|int)[] $keys */ public static function caselessRemove(array $keys, array $data): array { } /** * Copy the contents of a stream into another stream until the given number * of bytes have been read. * * @param StreamInterface $source Stream to read from * @param StreamInterface $dest Stream to write to * @param int $maxLen Maximum number of bytes to read. Pass -1 * to read the entire stream. * * @throws \RuntimeException on error. */ public static function copyToStream(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $source, \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $dest, int $maxLen = -1): void { } /** * Copy the contents of a stream into a string until the given number of * bytes have been read. * * @param StreamInterface $stream Stream to read * @param int $maxLen Maximum number of bytes to read. Pass -1 * to read the entire stream. * * @throws \RuntimeException on error. */ public static function copyToString(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream, int $maxLen = -1): string { } /** * Calculate a hash of a stream. * * This method reads the entire stream to calculate a rolling hash, based * on PHP's `hash_init` functions. * * @param StreamInterface $stream Stream to calculate the hash for * @param string $algo Hash algorithm (e.g. md5, crc32, etc) * @param bool $rawOutput Whether or not to use raw output * * @throws \RuntimeException on error. */ public static function hash(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream, string $algo, bool $rawOutput = \false): string { } /** * Clone and modify a request with the given changes. * * This method is useful for reducing the number of clones needed to mutate * a message. * * The changes can be one of: * - method: (string) Changes the HTTP method. * - set_headers: (array) Sets the given headers. * - remove_headers: (array) Remove the given headers. * - body: (mixed) Sets the given body. * - uri: (UriInterface) Set the URI. * - query: (string) Set the query string value of the URI. * - version: (string) Set the protocol version. * * @param RequestInterface $request Request to clone and modify. * @param array $changes Changes to apply. */ public static function modifyRequest(\ForminatorGoogleAddon\Psr\Http\Message\RequestInterface $request, array $changes): \ForminatorGoogleAddon\Psr\Http\Message\RequestInterface { } /** * Read a line from the stream up to the maximum allowed buffer length. * * @param StreamInterface $stream Stream to read from * @param int|null $maxLength Maximum buffer length */ public static function readLine(\ForminatorGoogleAddon\Psr\Http\Message\StreamInterface $stream, ?int $maxLength = null): string { } /** * Redact the password in the user info part of a URI. */ public static function redactUserInfo(\ForminatorGoogleAddon\Psr\Http\Message\UriInterface $uri): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } /** * Create a new stream based on the input type. * * Options is an associative array that can contain the following keys: * - metadata: Array of custom metadata. * - size: Size of the stream. * * This method accepts the following `$resource` types: * - `Psr\Http\Message\StreamInterface`: Returns the value as-is. * - `string`: Creates a stream object that uses the given string as the contents. * - `resource`: Creates a stream object that wraps the given PHP stream resource. * - `Iterator`: If the provided value implements `Iterator`, then a read-only * stream object will be created that wraps the given iterable. Each time the * stream is read from, data from the iterator will fill a buffer and will be * continuously called until the buffer is equal to the requested read size. * Subsequent read calls will first read from the buffer and then call `next` * on the underlying iterator until it is exhausted. * - `object` with `__toString()`: If the object has the `__toString()` method, * the object will be cast to a string and then a stream will be returned that * uses the string value. * - `NULL`: When `null` is passed, an empty stream object is returned. * - `callable` When a callable is passed, a read-only stream object will be * created that invokes the given callable. The callable is invoked with the * number of suggested bytes to read. The callable can return any number of * bytes, but MUST return `false` when there is no more data to return. The * stream object that wraps the callable will invoke the callable until the * number of requested bytes are available. Any additional bytes will be * buffered and used in subsequent reads. * * @param resource|string|int|float|bool|StreamInterface|callable|\Iterator|null $resource Entity body data * @param array{size?: int, metadata?: array} $options Additional options * * @throws \InvalidArgumentException if the $resource arg is not valid. */ public static function streamFor($resource = '', array $options = []): \ForminatorGoogleAddon\Psr\Http\Message\StreamInterface { } /** * Safely opens a PHP stream resource using a filename. * * When fopen fails, PHP normally raises a warning. This function adds an * error handler that checks for errors and throws an exception instead. * * @param string $filename File to open * @param string $mode Mode used to open the file * * @return resource * * @throws \RuntimeException if the file cannot be opened */ public static function tryFopen(string $filename, string $mode) { } /** * Safely gets the contents of a given stream. * * When stream_get_contents fails, PHP normally raises a warning. This * function adds an error handler that checks for errors and throws an * exception instead. * * @param resource $stream * * @throws \RuntimeException if the stream cannot be read */ public static function tryGetContents($stream): string { } /** * Returns a UriInterface for the given value. * * This function accepts a string or UriInterface and returns a * UriInterface for the given value. If the value is already a * UriInterface, it is returned as-is. * * @param string|UriInterface $uri * * @throws \InvalidArgumentException */ public static function uriFor($uri): \ForminatorGoogleAddon\Psr\Http\Message\UriInterface { } } } namespace ForminatorGoogleAddon\Monolog\Attribute { /** * A reusable attribute to help configure a class or a method as a processor. * * Using it offers no guarantee: it needs to be leveraged by a Monolog third-party consumer. * * Using it with the Monolog library only has no effect at all: processors should still be turned into a callable if * needed and manually pushed to the loggers and to the processable handlers. */ #[\Attribute(\Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class AsMonologProcessor { /** @var string|null */ public $channel = null; /** @var string|null */ public $handler = null; /** @var string|null */ public $method = null; /** * @param string|null $channel The logging channel the processor should be pushed to. * @param string|null $handler The handler the processor should be pushed to. * @param string|null $method The method that processes the records (if the attribute is used at the class level). */ public function __construct(?string $channel = null, ?string $handler = null, ?string $method = null) { } } } namespace ForminatorGoogleAddon\Monolog { /** * Overrides default json encoding of date time objects * * @author Menno Holtkamp * @author Jordi Boggiano */ class DateTimeImmutable extends \DateTimeImmutable implements \JsonSerializable { /** * @var bool */ private $useMicroseconds; public function __construct(bool $useMicroseconds, ?\DateTimeZone $timezone = null) { } public function jsonSerialize(): string { } public function __toString(): string { } } /** * Monolog error handler * * A facility to enable logging of runtime errors, exceptions and fatal errors. * * Quick setup: ErrorHandler::register($logger); * * @author Jordi Boggiano */ class ErrorHandler { /** @var LoggerInterface */ private $logger; /** @var ?callable */ private $previousExceptionHandler = null; /** @var array an array of class name to LogLevel::* constant mapping */ private $uncaughtExceptionLevelMap = []; /** @var callable|true|null */ private $previousErrorHandler = null; /** @var array an array of E_* constant to LogLevel::* constant mapping */ private $errorLevelMap = []; /** @var bool */ private $handleOnlyReportedErrors = \true; /** @var bool */ private $hasFatalErrorHandler = \false; /** @var LogLevel::* */ private $fatalLevel = \ForminatorGoogleAddon\Psr\Log\LogLevel::ALERT; /** @var ?string */ private $reservedMemory = null; /** @var ?array{type: int, message: string, file: string, line: int, trace: mixed} */ private $lastFatalData = null; /** @var int[] */ private static $fatalErrors = [\E_ERROR, \E_PARSE, \E_CORE_ERROR, \E_COMPILE_ERROR, \E_USER_ERROR]; public function __construct(\ForminatorGoogleAddon\Psr\Log\LoggerInterface $logger) { } /** * Registers a new ErrorHandler for a given Logger * * By default it will handle errors, exceptions and fatal errors * * @param LoggerInterface $logger * @param array|false $errorLevelMap an array of E_* constant to LogLevel::* constant mapping, or false to disable error handling * @param array|false $exceptionLevelMap an array of class name to LogLevel::* constant mapping, or false to disable exception handling * @param LogLevel::*|null|false $fatalLevel a LogLevel::* constant, null to use the default LogLevel::ALERT or false to disable fatal error handling * @return ErrorHandler */ public static function register(\ForminatorGoogleAddon\Psr\Log\LoggerInterface $logger, $errorLevelMap = [], $exceptionLevelMap = [], $fatalLevel = null): self { } /** * @param array $levelMap an array of class name to LogLevel::* constant mapping * @return $this */ public function registerExceptionHandler(array $levelMap = [], bool $callPrevious = \true): self { } /** * @param array $levelMap an array of E_* constant to LogLevel::* constant mapping * @return $this */ public function registerErrorHandler(array $levelMap = [], bool $callPrevious = \true, int $errorTypes = -1, bool $handleOnlyReportedErrors = \true): self { } /** * @param LogLevel::*|null $level a LogLevel::* constant, null to use the default LogLevel::ALERT * @param int $reservedMemorySize Amount of KBs to reserve in memory so that it can be freed when handling fatal errors giving Monolog some room in memory to get its job done */ public function registerFatalHandler($level = null, int $reservedMemorySize = 20): self { } /** * @return array */ protected function defaultExceptionLevelMap(): array { } /** * @return array */ protected function defaultErrorLevelMap(): array { } /** * @phpstan-return never */ private function handleException(\Throwable $e): void { } /** * @private * * @param mixed[] $context */ public function handleError(int $code, string $message, string $file = '', int $line = 0, ?array $context = []): bool { } /** * @private */ public function handleFatalError(): void { } /** * @param int $code */ private static function codeToString($code): string { } } } namespace ForminatorGoogleAddon\Monolog\Formatter { /** * Interface for formatters * * @author Jordi Boggiano * * @phpstan-import-type Record from \Monolog\Logger */ interface FormatterInterface { /** * Formats a log record. * * @param array $record A record to format * @return mixed The formatted record * * @phpstan-param Record $record */ public function format(array $record); /** * Formats a set of log records. * * @param array $records A set of records to format * @return mixed The formatted set of records * * @phpstan-param Record[] $records */ public function formatBatch(array $records); } /** * Formats a log message according to the ChromePHP array format * * @author Christophe Coevoet */ class ChromePHPFormatter implements \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { /** * Translates Monolog log levels to Wildfire levels. * * @var array */ private $logLevels = [\ForminatorGoogleAddon\Monolog\Logger::DEBUG => 'log', \ForminatorGoogleAddon\Monolog\Logger::INFO => 'info', \ForminatorGoogleAddon\Monolog\Logger::NOTICE => 'info', \ForminatorGoogleAddon\Monolog\Logger::WARNING => 'warn', \ForminatorGoogleAddon\Monolog\Logger::ERROR => 'error', \ForminatorGoogleAddon\Monolog\Logger::CRITICAL => 'error', \ForminatorGoogleAddon\Monolog\Logger::ALERT => 'error', \ForminatorGoogleAddon\Monolog\Logger::EMERGENCY => 'error']; /** * {@inheritDoc} */ public function format(array $record) { } /** * {@inheritDoc} */ public function formatBatch(array $records) { } } /** * Normalizes incoming records to remove objects/resources so it's easier to dump to various targets * * @author Jordi Boggiano */ class NormalizerFormatter implements \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { public const SIMPLE_DATE = "Y-m-d\\TH:i:sP"; /** @var string */ protected $dateFormat; /** @var int */ protected $maxNormalizeDepth = 9; /** @var int */ protected $maxNormalizeItemCount = 1000; /** @var int */ private $jsonEncodeOptions = \ForminatorGoogleAddon\Monolog\Utils::DEFAULT_JSON_FLAGS; /** * @param string|null $dateFormat The format of the timestamp: one supported by DateTime::format */ public function __construct(?string $dateFormat = null) { } /** * {@inheritDoc} * * @param mixed[] $record */ public function format(array $record) { } /** * {@inheritDoc} */ public function formatBatch(array $records) { } public function getDateFormat(): string { } public function setDateFormat(string $dateFormat): self { } /** * The maximum number of normalization levels to go through */ public function getMaxNormalizeDepth(): int { } public function setMaxNormalizeDepth(int $maxNormalizeDepth): self { } /** * The maximum number of items to normalize per level */ public function getMaxNormalizeItemCount(): int { } public function setMaxNormalizeItemCount(int $maxNormalizeItemCount): self { } /** * Enables `json_encode` pretty print. */ public function setJsonPrettyPrint(bool $enable): self { } /** * @param mixed $data * @return null|scalar|array */ protected function normalize($data, int $depth = 0) { } /** * @return mixed[] */ protected function normalizeException(\Throwable $e, int $depth = 0) { } /** * Return the JSON representation of a value * * @param mixed $data * @throws \RuntimeException if encoding fails and errors are not ignored * @return string if encoding fails and ignoreErrors is true 'null' is returned */ protected function toJson($data, bool $ignoreErrors = \false): string { } /** * @return string */ protected function formatDate(\DateTimeInterface $date) { } public function addJsonEncodeOption(int $option): self { } public function removeJsonEncodeOption(int $option): self { } } /** * Format a log message into an Elastica Document * * @author Jelle Vink * * @phpstan-import-type Record from \Monolog\Logger */ class ElasticaFormatter extends \ForminatorGoogleAddon\Monolog\Formatter\NormalizerFormatter { /** * @var string Elastic search index name */ protected $index; /** * @var ?string Elastic search document type */ protected $type; /** * @param string $index Elastic Search index name * @param ?string $type Elastic Search document type, deprecated as of Elastica 7 */ public function __construct(string $index, ?string $type) { } /** * {@inheritDoc} */ public function format(array $record) { } public function getIndex(): string { } /** * @deprecated since Elastica 7 type has no effect */ public function getType(): string { } /** * Convert a log message into an Elastica Document * * @phpstan-param Record $record */ protected function getDocument(array $record): \ForminatorGoogleAddon\Elastica\Document { } } /** * Format a log message into an Elasticsearch record * * @author Avtandil Kikabidze */ class ElasticsearchFormatter extends \ForminatorGoogleAddon\Monolog\Formatter\NormalizerFormatter { /** * @var string Elasticsearch index name */ protected $index; /** * @var string Elasticsearch record type */ protected $type; /** * @param string $index Elasticsearch index name * @param string $type Elasticsearch record type */ public function __construct(string $index, string $type) { } /** * {@inheritDoc} */ public function format(array $record) { } /** * Getter index * * @return string */ public function getIndex(): string { } /** * Getter type * * @return string */ public function getType(): string { } /** * Convert a log message into an Elasticsearch record * * @param mixed[] $record Log message * @return mixed[] */ protected function getDocument(array $record): array { } } /** * formats the record to be used in the FlowdockHandler * * @author Dominik Liebler * @deprecated Since 2.9.0 and 3.3.0, Flowdock was shutdown we will thus drop this handler in Monolog 4 */ class FlowdockFormatter implements \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { /** * @var string */ private $source; /** * @var string */ private $sourceEmail; public function __construct(string $source, string $sourceEmail) { } /** * {@inheritDoc} * * @return mixed[] */ public function format(array $record): array { } /** * {@inheritDoc} * * @return mixed[][] */ public function formatBatch(array $records): array { } public function getShortMessage(string $message): string { } } /** * Class FluentdFormatter * * Serializes a log message to Fluentd unix socket protocol * * Fluentd config: * * * type unix * path /var/run/td-agent/td-agent.sock * * * Monolog setup: * * $logger = new Monolog\Logger('fluent.tag'); * $fluentHandler = new Monolog\Handler\SocketHandler('unix:///var/run/td-agent/td-agent.sock'); * $fluentHandler->setFormatter(new Monolog\Formatter\FluentdFormatter()); * $logger->pushHandler($fluentHandler); * * @author Andrius Putna */ class FluentdFormatter implements \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { /** * @var bool $levelTag should message level be a part of the fluentd tag */ protected $levelTag = \false; public function __construct(bool $levelTag = \false) { } public function isUsingLevelsInTag(): bool { } public function format(array $record): string { } public function formatBatch(array $records): string { } } /** * Serializes a log message to GELF * @see http://docs.graylog.org/en/latest/pages/gelf.html * * @author Matt Lehner * * @phpstan-import-type Level from \Monolog\Logger */ class GelfMessageFormatter extends \ForminatorGoogleAddon\Monolog\Formatter\NormalizerFormatter { protected const DEFAULT_MAX_LENGTH = 32766; /** * @var string the name of the system for the Gelf log message */ protected $systemName; /** * @var string a prefix for 'extra' fields from the Monolog record (optional) */ protected $extraPrefix; /** * @var string a prefix for 'context' fields from the Monolog record (optional) */ protected $contextPrefix; /** * @var int max length per field */ protected $maxLength; /** * @var int */ private $gelfVersion = 2; /** * Translates Monolog log levels to Graylog2 log priorities. * * @var array * * @phpstan-var array */ private $logLevels = [\ForminatorGoogleAddon\Monolog\Logger::DEBUG => 7, \ForminatorGoogleAddon\Monolog\Logger::INFO => 6, \ForminatorGoogleAddon\Monolog\Logger::NOTICE => 5, \ForminatorGoogleAddon\Monolog\Logger::WARNING => 4, \ForminatorGoogleAddon\Monolog\Logger::ERROR => 3, \ForminatorGoogleAddon\Monolog\Logger::CRITICAL => 2, \ForminatorGoogleAddon\Monolog\Logger::ALERT => 1, \ForminatorGoogleAddon\Monolog\Logger::EMERGENCY => 0]; public function __construct(?string $systemName = null, ?string $extraPrefix = null, string $contextPrefix = 'ctxt_', ?int $maxLength = null) { } /** * {@inheritDoc} */ public function format(array $record): \ForminatorGoogleAddon\Gelf\Message { } } /** * Encodes whatever record data is passed to it as json * * This can be useful to log to databases or remote APIs * * @author Jordi Boggiano * * @phpstan-import-type Record from \Monolog\Logger */ class JsonFormatter extends \ForminatorGoogleAddon\Monolog\Formatter\NormalizerFormatter { public const BATCH_MODE_JSON = 1; public const BATCH_MODE_NEWLINES = 2; /** @var self::BATCH_MODE_* */ protected $batchMode; /** @var bool */ protected $appendNewline; /** @var bool */ protected $ignoreEmptyContextAndExtra; /** @var bool */ protected $includeStacktraces = \false; /** * @param self::BATCH_MODE_* $batchMode */ public function __construct(int $batchMode = self::BATCH_MODE_JSON, bool $appendNewline = \true, bool $ignoreEmptyContextAndExtra = \false, bool $includeStacktraces = \false) { } /** * The batch mode option configures the formatting style for * multiple records. By default, multiple records will be * formatted as a JSON-encoded array. However, for * compatibility with some API endpoints, alternative styles * are available. */ public function getBatchMode(): int { } /** * True if newlines are appended to every formatted record */ public function isAppendingNewlines(): bool { } /** * {@inheritDoc} */ public function format(array $record): string { } /** * {@inheritDoc} */ public function formatBatch(array $records): string { } /** * @return self */ public function includeStacktraces(bool $include = \true): self { } /** * Return a JSON-encoded array of records. * * @phpstan-param Record[] $records */ protected function formatBatchJson(array $records): string { } /** * Use new lines to separate records instead of a * JSON-encoded array. * * @phpstan-param Record[] $records */ protected function formatBatchNewlines(array $records): string { } /** * Normalizes given $data. * * @param mixed $data * * @return mixed */ protected function normalize($data, int $depth = 0) { } /** * Normalizes given exception with or without its own stack trace based on * `includeStacktraces` property. * * {@inheritDoc} */ protected function normalizeException(\Throwable $e, int $depth = 0): array { } } /** * Encodes message information into JSON in a format compatible with Cloud logging. * * @see https://cloud.google.com/logging/docs/structured-logging * @see https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry * * @author Luís Cobucci */ final class GoogleCloudLoggingFormatter extends \ForminatorGoogleAddon\Monolog\Formatter\JsonFormatter { /** {@inheritdoc} **/ public function format(array $record): string { } } /** * Formats incoming records into an HTML table * * This is especially useful for html email logging * * @author Tiago Brito */ class HtmlFormatter extends \ForminatorGoogleAddon\Monolog\Formatter\NormalizerFormatter { /** * Translates Monolog log levels to html color priorities. * * @var array */ protected $logLevels = [\ForminatorGoogleAddon\Monolog\Logger::DEBUG => '#CCCCCC', \ForminatorGoogleAddon\Monolog\Logger::INFO => '#28A745', \ForminatorGoogleAddon\Monolog\Logger::NOTICE => '#17A2B8', \ForminatorGoogleAddon\Monolog\Logger::WARNING => '#FFC107', \ForminatorGoogleAddon\Monolog\Logger::ERROR => '#FD7E14', \ForminatorGoogleAddon\Monolog\Logger::CRITICAL => '#DC3545', \ForminatorGoogleAddon\Monolog\Logger::ALERT => '#821722', \ForminatorGoogleAddon\Monolog\Logger::EMERGENCY => '#000000']; /** * @param string|null $dateFormat The format of the timestamp: one supported by DateTime::format */ public function __construct(?string $dateFormat = null) { } /** * Creates an HTML table row * * @param string $th Row header content * @param string $td Row standard cell content * @param bool $escapeTd false if td content must not be html escaped */ protected function addRow(string $th, string $td = ' ', bool $escapeTd = \true): string { } /** * Create a HTML h1 tag * * @param string $title Text to be in the h1 * @param int $level Error level * @return string */ protected function addTitle(string $title, int $level): string { } /** * Formats a log record. * * @return string The formatted record */ public function format(array $record): string { } /** * Formats a set of log records. * * @return string The formatted set of records */ public function formatBatch(array $records): string { } /** * @param mixed $data */ protected function convertToString($data): string { } } /** * Formats incoming records into a one-line string * * This is especially useful for logging to files * * @author Jordi Boggiano * @author Christophe Coevoet */ class LineFormatter extends \ForminatorGoogleAddon\Monolog\Formatter\NormalizerFormatter { public const SIMPLE_FORMAT = "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n"; /** @var string */ protected $format; /** @var bool */ protected $allowInlineLineBreaks; /** @var bool */ protected $ignoreEmptyContextAndExtra; /** @var bool */ protected $includeStacktraces; /** @var ?callable */ protected $stacktracesParser; /** * @param string|null $format The format of the message * @param string|null $dateFormat The format of the timestamp: one supported by DateTime::format * @param bool $allowInlineLineBreaks Whether to allow inline line breaks in log entries * @param bool $ignoreEmptyContextAndExtra */ public function __construct(?string $format = null, ?string $dateFormat = null, bool $allowInlineLineBreaks = \false, bool $ignoreEmptyContextAndExtra = \false, bool $includeStacktraces = \false) { } public function includeStacktraces(bool $include = \true, ?callable $parser = null): self { } public function allowInlineLineBreaks(bool $allow = \true): self { } public function ignoreEmptyContextAndExtra(bool $ignore = \true): self { } /** * {@inheritDoc} */ public function format(array $record): string { } public function formatBatch(array $records): string { } /** * @param mixed $value */ public function stringify($value): string { } protected function normalizeException(\Throwable $e, int $depth = 0): string { } /** * @param mixed $data */ protected function convertToString($data): string { } protected function replaceNewlines(string $str): string { } private function formatException(\Throwable $e): string { } private function stacktracesParser(\Throwable $e): string { } private function stacktracesParserCustom(string $trace): string { } } /** * Encodes message information into JSON in a format compatible with Loggly. * * @author Adam Pancutt */ class LogglyFormatter extends \ForminatorGoogleAddon\Monolog\Formatter\JsonFormatter { /** * Overrides the default batch mode to new lines for compatibility with the * Loggly bulk API. */ public function __construct(int $batchMode = self::BATCH_MODE_NEWLINES, bool $appendNewline = \false) { } /** * Appends the 'timestamp' parameter for indexing by Loggly. * * @see https://www.loggly.com/docs/automated-parsing/#json * @see \Monolog\Formatter\JsonFormatter::format() */ public function format(array $record): string { } } /** * Encodes message information into JSON in a format compatible with Logmatic. * * @author Julien Breux */ class LogmaticFormatter extends \ForminatorGoogleAddon\Monolog\Formatter\JsonFormatter { protected const MARKERS = ["sourcecode", "php"]; /** * @var string */ protected $hostname = ''; /** * @var string */ protected $appname = ''; public function setHostname(string $hostname): self { } public function setAppname(string $appname): self { } /** * Appends the 'hostname' and 'appname' parameter for indexing by Logmatic. * * @see http://doc.logmatic.io/docs/basics-to-send-data * @see \Monolog\Formatter\JsonFormatter::format() */ public function format(array $record): string { } } /** * Serializes a log message to Logstash Event Format * * @see https://www.elastic.co/products/logstash * @see https://github.com/elastic/logstash/blob/master/logstash-core/src/main/java/org/logstash/Event.java * * @author Tim Mower */ class LogstashFormatter extends \ForminatorGoogleAddon\Monolog\Formatter\NormalizerFormatter { /** * @var string the name of the system for the Logstash log message, used to fill the @source field */ protected $systemName; /** * @var string an application name for the Logstash log message, used to fill the @type field */ protected $applicationName; /** * @var string the key for 'extra' fields from the Monolog record */ protected $extraKey; /** * @var string the key for 'context' fields from the Monolog record */ protected $contextKey; /** * @param string $applicationName The application that sends the data, used as the "type" field of logstash * @param string|null $systemName The system/machine name, used as the "source" field of logstash, defaults to the hostname of the machine * @param string $extraKey The key for extra keys inside logstash "fields", defaults to extra * @param string $contextKey The key for context keys inside logstash "fields", defaults to context */ public function __construct(string $applicationName, ?string $systemName = null, string $extraKey = 'extra', string $contextKey = 'context') { } /** * {@inheritDoc} */ public function format(array $record): string { } } /** * Formats a record for use with the MongoDBHandler. * * @author Florian Plattner */ class MongoDBFormatter implements \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { /** @var bool */ private $exceptionTraceAsString; /** @var int */ private $maxNestingLevel; /** @var bool */ private $isLegacyMongoExt; /** * @param int $maxNestingLevel 0 means infinite nesting, the $record itself is level 1, $record['context'] is 2 * @param bool $exceptionTraceAsString set to false to log exception traces as a sub documents instead of strings */ public function __construct(int $maxNestingLevel = 3, bool $exceptionTraceAsString = \true) { } /** * {@inheritDoc} * * @return mixed[] */ public function format(array $record): array { } /** * {@inheritDoc} * * @return array */ public function formatBatch(array $records): array { } /** * @param mixed[] $array * @return mixed[]|string Array except when max nesting level is reached then a string "[...]" */ protected function formatArray(array $array, int $nestingLevel = 0) { } /** * @param mixed $value * @return mixed[]|string */ protected function formatObject($value, int $nestingLevel) { } /** * @return mixed[]|string */ protected function formatException(\Throwable $exception, int $nestingLevel) { } protected function formatDate(\DateTimeInterface $value, int $nestingLevel): \MongoDB\BSON\UTCDateTime { } private function getMongoDbDateTime(\DateTimeInterface $value): \MongoDB\BSON\UTCDateTime { } /** * This is needed to support MongoDB Driver v1.19 and below * * See https://github.com/mongodb/mongo-php-driver/issues/426 * * It can probably be removed in 2.1 or later once MongoDB's 1.2 is released and widely adopted */ private function legacyGetMongoDbDateTime(\DateTimeInterface $value): \MongoDB\BSON\UTCDateTime { } } /** * Formats data into an associative array of scalar values. * Objects and arrays will be JSON encoded. * * @author Andrew Lawson */ class ScalarFormatter extends \ForminatorGoogleAddon\Monolog\Formatter\NormalizerFormatter { /** * {@inheritDoc} * * @phpstan-return array $record */ public function format(array $record): array { } /** * @param mixed $value * @return scalar|null */ protected function normalizeValue($value) { } } /** * Serializes a log message according to Wildfire's header requirements * * @author Eric Clemmons (@ericclemmons) * @author Christophe Coevoet * @author Kirill chEbba Chebunin * * @phpstan-import-type Level from \Monolog\Logger */ class WildfireFormatter extends \ForminatorGoogleAddon\Monolog\Formatter\NormalizerFormatter { /** * Translates Monolog log levels to Wildfire levels. * * @var array */ private $logLevels = [\ForminatorGoogleAddon\Monolog\Logger::DEBUG => 'LOG', \ForminatorGoogleAddon\Monolog\Logger::INFO => 'INFO', \ForminatorGoogleAddon\Monolog\Logger::NOTICE => 'INFO', \ForminatorGoogleAddon\Monolog\Logger::WARNING => 'WARN', \ForminatorGoogleAddon\Monolog\Logger::ERROR => 'ERROR', \ForminatorGoogleAddon\Monolog\Logger::CRITICAL => 'ERROR', \ForminatorGoogleAddon\Monolog\Logger::ALERT => 'ERROR', \ForminatorGoogleAddon\Monolog\Logger::EMERGENCY => 'ERROR']; /** * @param string|null $dateFormat The format of the timestamp: one supported by DateTime::format */ public function __construct(?string $dateFormat = null) { } /** * {@inheritDoc} * * @return string */ public function format(array $record): string { } /** * {@inheritDoc} * * @phpstan-return never */ public function formatBatch(array $records) { } /** * {@inheritDoc} * * @return null|scalar|array|object */ protected function normalize($data, int $depth = 0) { } } } namespace ForminatorGoogleAddon\Monolog { /** * Handler or Processor implementing this interface will be reset when Logger::reset() is called. * * Resetting ends a log cycle gets them back to their initial state. * * Resetting a Handler or a Processor means flushing/cleaning all buffers, resetting internal * state, and getting it back to a state in which it can receive log records again. * * This is useful in case you want to avoid logs leaking between two requests or jobs when you * have a long running process like a worker or an application server serving multiple requests * in one process. * * @author Grégoire Pineau */ interface ResettableInterface { /** * @return void */ public function reset(); } } namespace ForminatorGoogleAddon\Monolog\Handler { /** * Interface that all Monolog Handlers must implement * * @author Jordi Boggiano * * @phpstan-import-type Record from \Monolog\Logger * @phpstan-import-type Level from \Monolog\Logger */ interface HandlerInterface { /** * Checks whether the given record will be handled by this handler. * * This is mostly done for performance reasons, to avoid calling processors for nothing. * * Handlers should still check the record levels within handle(), returning false in isHandling() * is no guarantee that handle() will not be called, and isHandling() might not be called * for a given record. * * @param array $record Partial log record containing only a level key * * @return bool * * @phpstan-param array{level: Level} $record */ public function isHandling(array $record): bool; /** * Handles a record. * * All records may be passed to this method, and the handler should discard * those that it does not want to handle. * * The return value of this function controls the bubbling process of the handler stack. * Unless the bubbling is interrupted (by returning true), the Logger class will keep on * calling further handlers in the stack with a given log record. * * @param array $record The record to handle * @return bool true means that this handler handled the record, and that bubbling is not permitted. * false means the record was either not processed or that this handler allows bubbling. * * @phpstan-param Record $record */ public function handle(array $record): bool; /** * Handles a set of records at once. * * @param array $records The records to handle (an array of record arrays) * * @phpstan-param Record[] $records */ public function handleBatch(array $records): void; /** * Closes the handler. * * Ends a log cycle and frees all resources used by the handler. * * Closing a Handler means flushing all buffers and freeing any open resources/handles. * * Implementations have to be idempotent (i.e. it should be possible to call close several times without breakage) * and ideally handlers should be able to reopen themselves on handle() after they have been closed. * * This is useful at the end of a request and will be called automatically when the object * is destroyed if you extend Monolog\Handler\Handler. * * If you are thinking of calling this method yourself, most likely you should be * calling ResettableInterface::reset instead. Have a look. */ public function close(): void; } /** * Base Handler class providing basic close() support as well as handleBatch * * @author Jordi Boggiano */ abstract class Handler implements \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { /** * {@inheritDoc} */ public function handleBatch(array $records): void { } /** * {@inheritDoc} */ public function close(): void { } public function __destruct() { } public function __sleep() { } } /** * Base Handler class providing basic level/bubble support * * @author Jordi Boggiano * * @phpstan-import-type Level from \Monolog\Logger * @phpstan-import-type LevelName from \Monolog\Logger */ abstract class AbstractHandler extends \ForminatorGoogleAddon\Monolog\Handler\Handler implements \ForminatorGoogleAddon\Monolog\ResettableInterface { /** * @var int * @phpstan-var Level */ protected $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG; /** @var bool */ protected $bubble = \true; /** * @param int|string $level The minimum logging level at which this handler will be triggered * @param bool $bubble Whether the messages that are handled can bubble up the stack or not * * @phpstan-param Level|LevelName|LogLevel::* $level */ public function __construct($level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * {@inheritDoc} */ public function isHandling(array $record): bool { } /** * Sets minimum logging level at which this handler will be triggered. * * @param Level|LevelName|LogLevel::* $level Level or level name * @return self */ public function setLevel($level): self { } /** * Gets minimum logging level at which this handler will be triggered. * * @return int * * @phpstan-return Level */ public function getLevel(): int { } /** * Sets the bubbling behavior. * * @param bool $bubble true means that this handler allows bubbling. * false means that bubbling is not permitted. * @return self */ public function setBubble(bool $bubble): self { } /** * Gets the bubbling behavior. * * @return bool true means that this handler allows bubbling. * false means that bubbling is not permitted. */ public function getBubble(): bool { } /** * {@inheritDoc} */ public function reset() { } } /** * Interface to describe loggers that have processors * * @author Jordi Boggiano * * @phpstan-import-type Record from \Monolog\Logger */ interface ProcessableHandlerInterface { /** * Adds a processor in the stack. * * @psalm-param ProcessorInterface|callable(Record): Record $callback * * @param ProcessorInterface|callable $callback * @return HandlerInterface self */ public function pushProcessor(callable $callback): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface; /** * Removes the processor on top of the stack and returns it. * * @psalm-return ProcessorInterface|callable(Record): Record $callback * * @throws \LogicException In case the processor stack is empty * @return callable|ProcessorInterface */ public function popProcessor(): callable; } /** * Interface to describe loggers that have a formatter * * @author Jordi Boggiano */ interface FormattableHandlerInterface { /** * Sets the formatter. * * @param FormatterInterface $formatter * @return HandlerInterface self */ public function setFormatter(\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface; /** * Gets the formatter. * * @return FormatterInterface */ public function getFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface; } /** * Helper trait for implementing ProcessableInterface * * @author Jordi Boggiano * * @phpstan-import-type Record from \Monolog\Logger */ trait ProcessableHandlerTrait { /** * @var callable[] * @phpstan-var array */ protected $processors = []; /** * {@inheritDoc} */ public function pushProcessor(callable $callback): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } /** * {@inheritDoc} */ public function popProcessor(): callable { } /** * Processes a record. * * @phpstan-param Record $record * @phpstan-return Record */ protected function processRecord(array $record): array { } protected function resetProcessors(): void { } } /** * Helper trait for implementing FormattableInterface * * @author Jordi Boggiano */ trait FormattableHandlerTrait { /** * @var ?FormatterInterface */ protected $formatter; /** * {@inheritDoc} */ public function setFormatter(\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } /** * {@inheritDoc} */ public function getFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } /** * Gets the default formatter. * * Overwrite this if the LineFormatter is not a good default for your handler. */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * Base Handler class providing the Handler structure, including processors and formatters * * Classes extending it should (in most cases) only implement write($record) * * @author Jordi Boggiano * @author Christophe Coevoet * * @phpstan-import-type LevelName from \Monolog\Logger * @phpstan-import-type Level from \Monolog\Logger * @phpstan-import-type Record from \Monolog\Logger * @phpstan-type FormattedRecord array{message: string, context: mixed[], level: Level, level_name: LevelName, channel: string, datetime: \DateTimeImmutable, extra: mixed[], formatted: mixed} */ abstract class AbstractProcessingHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractHandler implements \ForminatorGoogleAddon\Monolog\Handler\ProcessableHandlerInterface, \ForminatorGoogleAddon\Monolog\Handler\FormattableHandlerInterface { use \ForminatorGoogleAddon\Monolog\Handler\ProcessableHandlerTrait; use \ForminatorGoogleAddon\Monolog\Handler\FormattableHandlerTrait; /** * {@inheritDoc} */ public function handle(array $record): bool { } /** * Writes the record down to the log of the implementing handler * * @phpstan-param FormattedRecord $record */ abstract protected function write(array $record): void; /** * @return void */ public function reset() { } } /** * Common syslog functionality * * @phpstan-import-type Level from \Monolog\Logger */ abstract class AbstractSyslogHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** @var int */ protected $facility; /** * Translates Monolog log levels to syslog log priorities. * @var array * @phpstan-var array */ protected $logLevels = [\ForminatorGoogleAddon\Monolog\Logger::DEBUG => \LOG_DEBUG, \ForminatorGoogleAddon\Monolog\Logger::INFO => \LOG_INFO, \ForminatorGoogleAddon\Monolog\Logger::NOTICE => \LOG_NOTICE, \ForminatorGoogleAddon\Monolog\Logger::WARNING => \LOG_WARNING, \ForminatorGoogleAddon\Monolog\Logger::ERROR => \LOG_ERR, \ForminatorGoogleAddon\Monolog\Logger::CRITICAL => \LOG_CRIT, \ForminatorGoogleAddon\Monolog\Logger::ALERT => \LOG_ALERT, \ForminatorGoogleAddon\Monolog\Logger::EMERGENCY => \LOG_EMERG]; /** * List of valid log facility names. * @var array */ protected $facilities = ['auth' => \LOG_AUTH, 'authpriv' => \LOG_AUTHPRIV, 'cron' => \LOG_CRON, 'daemon' => \LOG_DAEMON, 'kern' => \LOG_KERN, 'lpr' => \LOG_LPR, 'mail' => \LOG_MAIL, 'news' => \LOG_NEWS, 'syslog' => \LOG_SYSLOG, 'user' => \LOG_USER, 'uucp' => \LOG_UUCP]; /** * @param string|int $facility Either one of the names of the keys in $this->facilities, or a LOG_* facility constant */ public function __construct($facility = \LOG_USER, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * @phpstan-import-type Record from \Monolog\Logger */ class AmqpHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** * @var AMQPExchange|AMQPChannel $exchange */ protected $exchange; /** @var array */ private $extraAttributes = []; /** * @return array */ public function getExtraAttributes(): array { } /** * Configure extra attributes to pass to the AMQPExchange (if you are using the amqp extension) * * @param array $extraAttributes One of content_type, content_encoding, * message_id, user_id, app_id, delivery_mode, * priority, timestamp, expiration, type * or reply_to, headers. * @return AmqpHandler */ public function setExtraAttributes(array $extraAttributes): self { } /** * @var string */ protected $exchangeName; /** * @param AMQPExchange|AMQPChannel $exchange AMQPExchange (php AMQP ext) or PHP AMQP lib channel, ready for use * @param string|null $exchangeName Optional exchange name, for AMQPChannel (PhpAmqpLib) only */ public function __construct($exchange, ?string $exchangeName = null, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * {@inheritDoc} */ public function handleBatch(array $records): void { } /** * Gets the routing key for the AMQP exchange * * @phpstan-param Record $record */ protected function getRoutingKey(array $record): string { } private function createAmqpMessage(string $data): \ForminatorGoogleAddon\PhpAmqpLib\Message\AMQPMessage { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * Handler sending logs to browser's javascript console with no browser extension required * * @author Olivier Poitrey * * @phpstan-import-type FormattedRecord from AbstractProcessingHandler */ class BrowserConsoleHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** @var bool */ protected static $initialized = \false; /** @var FormattedRecord[] */ protected static $records = []; protected const FORMAT_HTML = 'html'; protected const FORMAT_JS = 'js'; protected const FORMAT_UNKNOWN = 'unknown'; /** * {@inheritDoc} * * Formatted output may contain some formatting markers to be transferred to `console.log` using the %c format. * * Example of formatted string: * * You can do [[blue text]]{color: blue} or [[green background]]{background-color: green; color: white} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * Convert records to javascript console commands and send it to the browser. * This method is automatically called on PHP shutdown if output is HTML or Javascript. */ public static function send(): void { } public function close(): void { } public function reset() { } /** * Forget all logged records */ public static function resetStatic(): void { } /** * Wrapper for register_shutdown_function to allow overriding */ protected function registerShutdownFunction(): void { } /** * Wrapper for echo to allow overriding */ protected static function writeOutput(string $str): void { } /** * Checks the format of the response * * If Content-Type is set to application/javascript or text/javascript -> js * If Content-Type is set to text/html, or is unset -> html * If Content-Type is anything else -> unknown * * @return string One of 'js', 'html' or 'unknown' * @phpstan-return self::FORMAT_* */ protected static function getResponseFormat(): string { } /** * @return string One of 'js', 'html' or 'unknown' * @phpstan-return self::FORMAT_* */ protected static function getResponseFormatFromContentType(string $contentType): string { } private static function generateScript(): string { } private static function getConsoleMethodForLevel(int $level): string { } /** * @return string[] */ private static function handleStyles(string $formatted): array { } private static function handleCustomStyles(string $style, string $string): string { } /** * @param mixed[] $dict * @return mixed[] */ private static function dump(string $title, array $dict): array { } private static function quote(string $arg): string { } /** * @param mixed $args */ private static function call(...$args): string { } /** * @param mixed[] $args */ private static function call_array(string $method, array $args): string { } } /** * Buffers all records until closing the handler and then pass them as batch. * * This is useful for a MailHandler to send only one mail per request instead of * sending one per log message. * * @author Christophe Coevoet * * @phpstan-import-type Record from \Monolog\Logger */ class BufferHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractHandler implements \ForminatorGoogleAddon\Monolog\Handler\ProcessableHandlerInterface, \ForminatorGoogleAddon\Monolog\Handler\FormattableHandlerInterface { use \ForminatorGoogleAddon\Monolog\Handler\ProcessableHandlerTrait; /** @var HandlerInterface */ protected $handler; /** @var int */ protected $bufferSize = 0; /** @var int */ protected $bufferLimit; /** @var bool */ protected $flushOnOverflow; /** @var Record[] */ protected $buffer = []; /** @var bool */ protected $initialized = \false; /** * @param HandlerInterface $handler Handler. * @param int $bufferLimit How many entries should be buffered at most, beyond that the oldest items are removed from the buffer. * @param bool $flushOnOverflow If true, the buffer is flushed when the max size has been reached, by default oldest entries are discarded */ public function __construct(\ForminatorGoogleAddon\Monolog\Handler\HandlerInterface $handler, int $bufferLimit = 0, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true, bool $flushOnOverflow = \false) { } /** * {@inheritDoc} */ public function handle(array $record): bool { } public function flush(): void { } public function __destruct() { } /** * {@inheritDoc} */ public function close(): void { } /** * Clears the buffer without flushing any messages down to the wrapped handler. */ public function clear(): void { } public function reset() { } /** * {@inheritDoc} */ public function setFormatter(\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } /** * {@inheritDoc} */ public function getFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } trait WebRequestRecognizerTrait { /** * Checks if PHP's serving a web request * @return bool */ protected function isWebRequest(): bool { } } /** * Handler sending logs to the ChromePHP extension (http://www.chromephp.com/) * * This also works out of the box with Firefox 43+ * * @author Christophe Coevoet * * @phpstan-import-type Record from \Monolog\Logger */ class ChromePHPHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { use \ForminatorGoogleAddon\Monolog\Handler\WebRequestRecognizerTrait; /** * Version of the extension */ protected const VERSION = '4.0'; /** * Header name */ protected const HEADER_NAME = 'X-ChromeLogger-Data'; /** * Regular expression to detect supported browsers (matches any Chrome, or Firefox 43+) */ protected const USER_AGENT_REGEX = '{\b(?:Chrome/\d+(?:\.\d+)*|HeadlessChrome|Firefox/(?:4[3-9]|[5-9]\d|\d{3,})(?:\.\d)*)\b}'; /** @var bool */ protected static $initialized = \false; /** * Tracks whether we sent too much data * * Chrome limits the headers to 4KB, so when we sent 3KB we stop sending * * @var bool */ protected static $overflowed = \false; /** @var mixed[] */ protected static $json = ['version' => self::VERSION, 'columns' => ['label', 'log', 'backtrace', 'type'], 'rows' => []]; /** @var bool */ protected static $sendHeaders = \true; public function __construct($level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * {@inheritDoc} */ public function handleBatch(array $records): void { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } /** * Creates & sends header for a record * * @see sendHeader() * @see send() */ protected function write(array $record): void { } /** * Sends the log header * * @see sendHeader() */ protected function send(): void { } /** * Send header string to the client */ protected function sendHeader(string $header, string $content): void { } /** * Verifies if the headers are accepted by the current user agent */ protected function headersAccepted(): bool { } } /** * CouchDB handler * * @author Markus Bachmann */ class CouchDBHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** @var mixed[] */ private $options; /** * @param mixed[] $options */ public function __construct(array $options = [], $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * Logs to Cube. * * @link https://github.com/square/cube/wiki * @author Wan Chen * @deprecated Since 2.8.0 and 3.2.0, Cube appears abandoned and thus we will drop this handler in Monolog 4 */ class CubeHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** @var resource|\Socket|null */ private $udpConnection = null; /** @var resource|\CurlHandle|null */ private $httpConnection = null; /** @var string */ private $scheme; /** @var string */ private $host; /** @var int */ private $port; /** @var string[] */ private $acceptedSchemes = ['http', 'udp']; /** * Create a Cube handler * * @throws \UnexpectedValueException when given url is not a valid url. * A valid url must consist of three parts : protocol://host:port * Only valid protocols used by Cube are http and udp */ public function __construct(string $url, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * Establish a connection to an UDP socket * * @throws \LogicException when unable to connect to the socket * @throws MissingExtensionException when there is no socket extension */ protected function connectUdp(): void { } /** * Establish a connection to an http server * * @throws \LogicException when unable to connect to the socket * @throws MissingExtensionException when no curl extension */ protected function connectHttp(): void { } /** * {@inheritDoc} */ protected function write(array $record): void { } private function writeUdp(string $data): void { } private function writeHttp(string $data): void { } } } namespace ForminatorGoogleAddon\Monolog\Handler\Curl { /** * This class is marked as internal and it is not under the BC promise of the package. * * @internal */ final class Util { /** @var array */ private static $retriableErrorCodes = [\CURLE_COULDNT_RESOLVE_HOST, \CURLE_COULDNT_CONNECT, \CURLE_HTTP_NOT_FOUND, \CURLE_READ_ERROR, \CURLE_OPERATION_TIMEOUTED, \CURLE_HTTP_POST_ERROR, \CURLE_SSL_CONNECT_ERROR]; /** * Executes a CURL request with optional retries and exception on failure * * @param resource|CurlHandle $ch curl handler * @param int $retries * @param bool $closeAfterDone * @return bool|string @see curl_exec */ public static function execute($ch, int $retries = 5, bool $closeAfterDone = \true) { } } } namespace ForminatorGoogleAddon\Monolog\Handler { /** * Simple handler wrapper that deduplicates log records across multiple requests * * It also includes the BufferHandler functionality and will buffer * all messages until the end of the request or flush() is called. * * This works by storing all log records' messages above $deduplicationLevel * to the file specified by $deduplicationStore. When further logs come in at the end of the * request (or when flush() is called), all those above $deduplicationLevel are checked * against the existing stored logs. If they match and the timestamps in the stored log is * not older than $time seconds, the new log record is discarded. If no log record is new, the * whole data set is discarded. * * This is mainly useful in combination with Mail handlers or things like Slack or HipChat handlers * that send messages to people, to avoid spamming with the same message over and over in case of * a major component failure like a database server being down which makes all requests fail in the * same way. * * @author Jordi Boggiano * * @phpstan-import-type Record from \Monolog\Logger * @phpstan-import-type LevelName from \Monolog\Logger * @phpstan-import-type Level from \Monolog\Logger */ class DeduplicationHandler extends \ForminatorGoogleAddon\Monolog\Handler\BufferHandler { /** * @var string */ protected $deduplicationStore; /** * @var Level */ protected $deduplicationLevel; /** * @var int */ protected $time; /** * @var bool */ private $gc = \false; /** * @param HandlerInterface $handler Handler. * @param string $deduplicationStore The file/path where the deduplication log should be kept * @param string|int $deduplicationLevel The minimum logging level for log records to be looked at for deduplication purposes * @param int $time The period (in seconds) during which duplicate entries should be suppressed after a given log is sent through * @param bool $bubble Whether the messages that are handled can bubble up the stack or not * * @phpstan-param Level|LevelName|LogLevel::* $deduplicationLevel */ public function __construct(\ForminatorGoogleAddon\Monolog\Handler\HandlerInterface $handler, ?string $deduplicationStore = null, $deduplicationLevel = \ForminatorGoogleAddon\Monolog\Logger::ERROR, int $time = 60, bool $bubble = \true) { } public function flush(): void { } /** * @phpstan-param Record $record */ private function isDuplicate(array $record): bool { } private function collectLogs(): void { } /** * @phpstan-param Record $record */ private function appendRecord(array $record): void { } } /** * CouchDB handler for Doctrine CouchDB ODM * * @author Markus Bachmann */ class DoctrineCouchDBHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** @var CouchDBClient */ private $client; public function __construct(\ForminatorGoogleAddon\Doctrine\CouchDB\CouchDBClient $client, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function write(array $record): void { } protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * Amazon DynamoDB handler (http://aws.amazon.com/dynamodb/) * * @link https://github.com/aws/aws-sdk-php/ * @author Andrew Lawson */ class DynamoDbHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { public const DATE_FORMAT = 'Y-m-d\TH:i:s.uO'; /** * @var DynamoDbClient */ protected $client; /** * @var string */ protected $table; /** * @var int */ protected $version; /** * @var Marshaler */ protected $marshaler; public function __construct(\ForminatorGoogleAddon\Aws\DynamoDb\DynamoDbClient $client, string $table, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * @param mixed[] $record * @return mixed[] */ protected function filterEmptyFields(array $record): array { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * Elastic Search handler * * Usage example: * * $client = new \Elastica\Client(); * $options = array( * 'index' => 'elastic_index_name', * 'type' => 'elastic_doc_type', Types have been removed in Elastica 7 * ); * $handler = new ElasticaHandler($client, $options); * $log = new Logger('application'); * $log->pushHandler($handler); * * @author Jelle Vink */ class ElasticaHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** * @var Client */ protected $client; /** * @var mixed[] Handler config options */ protected $options = []; /** * @param Client $client Elastica Client object * @param mixed[] $options Handler configuration */ public function __construct(\ForminatorGoogleAddon\Elastica\Client $client, array $options = [], $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * {@inheritDoc} */ public function setFormatter(\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } /** * @return mixed[] */ public function getOptions(): array { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } /** * {@inheritDoc} */ public function handleBatch(array $records): void { } /** * Use Elasticsearch bulk API to send list of documents * * @param Document[] $documents * * @throws \RuntimeException */ protected function bulkSend(array $documents): void { } } /** * Elasticsearch handler * * @link https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/index.html * * Simple usage example: * * $client = \Elasticsearch\ClientBuilder::create() * ->setHosts($hosts) * ->build(); * * $options = array( * 'index' => 'elastic_index_name', * 'type' => 'elastic_doc_type', * ); * $handler = new ElasticsearchHandler($client, $options); * $log = new Logger('application'); * $log->pushHandler($handler); * * @author Avtandil Kikabidze */ class ElasticsearchHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** * @var Client|Client8 */ protected $client; /** * @var mixed[] Handler config options */ protected $options = []; /** * @var bool */ private $needsType; /** * @param Client|Client8 $client Elasticsearch Client object * @param mixed[] $options Handler configuration */ public function __construct($client, array $options = [], $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * {@inheritDoc} */ public function setFormatter(\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } /** * Getter options * * @return mixed[] */ public function getOptions(): array { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } /** * {@inheritDoc} */ public function handleBatch(array $records): void { } /** * Use Elasticsearch bulk API to send list of documents * * @param array[] $records Records + _index/_type keys * @throws \RuntimeException */ protected function bulkSend(array $records): void { } /** * Creates elasticsearch exception from responses array * * Only the first error is converted into an exception. * * @param mixed[]|Elasticsearch $responses returned by $this->client->bulk() */ protected function createExceptionFromResponses($responses): \Throwable { } /** * Creates elasticsearch exception from error array * * @param mixed[] $error */ protected function createExceptionFromError(array $error): \Throwable { } } /** * Stores to PHP error_log() handler. * * @author Elan Ruusamäe */ class ErrorLogHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { public const OPERATING_SYSTEM = 0; public const SAPI = 4; /** @var int */ protected $messageType; /** @var bool */ protected $expandNewlines; /** * @param int $messageType Says where the error should go. * @param bool $expandNewlines If set to true, newlines in the message will be expanded to be take multiple log entries */ public function __construct(int $messageType = self::OPERATING_SYSTEM, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true, bool $expandNewlines = \false) { } /** * @return int[] With all available types */ public static function getAvailableTypes(): array { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } /** * {@inheritDoc} */ protected function write(array $record): void { } } /** * Forwards records to multiple handlers * * @author Lenar Lõhmus * * @phpstan-import-type Record from \Monolog\Logger */ class GroupHandler extends \ForminatorGoogleAddon\Monolog\Handler\Handler implements \ForminatorGoogleAddon\Monolog\Handler\ProcessableHandlerInterface, \ForminatorGoogleAddon\Monolog\ResettableInterface { use \ForminatorGoogleAddon\Monolog\Handler\ProcessableHandlerTrait; /** @var HandlerInterface[] */ protected $handlers; /** @var bool */ protected $bubble; /** * @param HandlerInterface[] $handlers Array of Handlers. * @param bool $bubble Whether the messages that are handled can bubble up the stack or not */ public function __construct(array $handlers, bool $bubble = \true) { } /** * {@inheritDoc} */ public function isHandling(array $record): bool { } /** * {@inheritDoc} */ public function handle(array $record): bool { } /** * {@inheritDoc} */ public function handleBatch(array $records): void { } public function reset() { } public function close(): void { } /** * {@inheritDoc} */ public function setFormatter(\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } } /** * Forwards records to at most one handler * * If a handler fails, the exception is suppressed and the record is forwarded to the next handler. * * As soon as one handler handles a record successfully, the handling stops there. * * @phpstan-import-type Record from \Monolog\Logger */ class FallbackGroupHandler extends \ForminatorGoogleAddon\Monolog\Handler\GroupHandler { /** * {@inheritDoc} */ public function handle(array $record): bool { } /** * {@inheritDoc} */ public function handleBatch(array $records): void { } } /** * Simple handler wrapper that filters records based on a list of levels * * It can be configured with an exact list of levels to allow, or a min/max level. * * @author Hennadiy Verkh * @author Jordi Boggiano * * @phpstan-import-type Record from \Monolog\Logger * @phpstan-import-type Level from \Monolog\Logger * @phpstan-import-type LevelName from \Monolog\Logger */ class FilterHandler extends \ForminatorGoogleAddon\Monolog\Handler\Handler implements \ForminatorGoogleAddon\Monolog\Handler\ProcessableHandlerInterface, \ForminatorGoogleAddon\Monolog\ResettableInterface, \ForminatorGoogleAddon\Monolog\Handler\FormattableHandlerInterface { use \ForminatorGoogleAddon\Monolog\Handler\ProcessableHandlerTrait; /** * Handler or factory callable($record, $this) * * @var callable|HandlerInterface * @phpstan-var callable(?Record, HandlerInterface): HandlerInterface|HandlerInterface */ protected $handler; /** * Minimum level for logs that are passed to handler * * @var int[] * @phpstan-var array */ protected $acceptedLevels; /** * Whether the messages that are handled can bubble up the stack or not * * @var bool */ protected $bubble; /** * @psalm-param HandlerInterface|callable(?Record, HandlerInterface): HandlerInterface $handler * * @param callable|HandlerInterface $handler Handler or factory callable($record|null, $filterHandler). * @param int|array $minLevelOrList A list of levels to accept or a minimum level if maxLevel is provided * @param int|string $maxLevel Maximum level to accept, only used if $minLevelOrList is not an array * @param bool $bubble Whether the messages that are handled can bubble up the stack or not * * @phpstan-param Level|LevelName|LogLevel::*|array $minLevelOrList * @phpstan-param Level|LevelName|LogLevel::* $maxLevel */ public function __construct($handler, $minLevelOrList = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, $maxLevel = \ForminatorGoogleAddon\Monolog\Logger::EMERGENCY, bool $bubble = \true) { } /** * @phpstan-return array */ public function getAcceptedLevels(): array { } /** * @param int|string|array $minLevelOrList A list of levels to accept or a minimum level or level name if maxLevel is provided * @param int|string $maxLevel Maximum level or level name to accept, only used if $minLevelOrList is not an array * * @phpstan-param Level|LevelName|LogLevel::*|array $minLevelOrList * @phpstan-param Level|LevelName|LogLevel::* $maxLevel */ public function setAcceptedLevels($minLevelOrList = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, $maxLevel = \ForminatorGoogleAddon\Monolog\Logger::EMERGENCY): self { } /** * {@inheritDoc} */ public function isHandling(array $record): bool { } /** * {@inheritDoc} */ public function handle(array $record): bool { } /** * {@inheritDoc} */ public function handleBatch(array $records): void { } /** * Return the nested handler * * If the handler was provided as a factory callable, this will trigger the handler's instantiation. * * @return HandlerInterface * * @phpstan-param Record $record */ public function getHandler(?array $record = null) { } /** * {@inheritDoc} */ public function setFormatter(\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } /** * {@inheritDoc} */ public function getFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } public function reset() { } } } namespace ForminatorGoogleAddon\Monolog\Handler\FingersCrossed { /** * Interface for activation strategies for the FingersCrossedHandler. * * @author Johannes M. Schmitt * * @phpstan-import-type Record from \Monolog\Logger */ interface ActivationStrategyInterface { /** * Returns whether the given record activates the handler. * * @phpstan-param Record $record */ public function isHandlerActivated(array $record): bool; } /** * Channel and Error level based monolog activation strategy. Allows to trigger activation * based on level per channel. e.g. trigger activation on level 'ERROR' by default, except * for records of the 'sql' channel; those should trigger activation on level 'WARN'. * * Example: * * * $activationStrategy = new ChannelLevelActivationStrategy( * Logger::CRITICAL, * array( * 'request' => Logger::ALERT, * 'sensitive' => Logger::ERROR, * ) * ); * $handler = new FingersCrossedHandler(new StreamHandler('php://stderr'), $activationStrategy); * * * @author Mike Meessen * * @phpstan-import-type Record from \Monolog\Logger * @phpstan-import-type Level from \Monolog\Logger * @phpstan-import-type LevelName from \Monolog\Logger */ class ChannelLevelActivationStrategy implements \ForminatorGoogleAddon\Monolog\Handler\FingersCrossed\ActivationStrategyInterface { /** * @var Level */ private $defaultActionLevel; /** * @var array */ private $channelToActionLevel; /** * @param int|string $defaultActionLevel The default action level to be used if the record's category doesn't match any * @param array $channelToActionLevel An array that maps channel names to action levels. * * @phpstan-param array $channelToActionLevel * @phpstan-param Level|LevelName|LogLevel::* $defaultActionLevel */ public function __construct($defaultActionLevel, array $channelToActionLevel = []) { } /** * @phpstan-param Record $record */ public function isHandlerActivated(array $record): bool { } } /** * Error level based activation strategy. * * @author Johannes M. Schmitt * * @phpstan-import-type Level from \Monolog\Logger * @phpstan-import-type LevelName from \Monolog\Logger */ class ErrorLevelActivationStrategy implements \ForminatorGoogleAddon\Monolog\Handler\FingersCrossed\ActivationStrategyInterface { /** * @var Level */ private $actionLevel; /** * @param int|string $actionLevel Level or name or value * * @phpstan-param Level|LevelName|LogLevel::* $actionLevel */ public function __construct($actionLevel) { } public function isHandlerActivated(array $record): bool { } } } namespace ForminatorGoogleAddon\Monolog\Handler { /** * Buffers all records until a certain level is reached * * The advantage of this approach is that you don't get any clutter in your log files. * Only requests which actually trigger an error (or whatever your actionLevel is) will be * in the logs, but they will contain all records, not only those above the level threshold. * * You can then have a passthruLevel as well which means that at the end of the request, * even if it did not get activated, it will still send through log records of e.g. at least a * warning level. * * You can find the various activation strategies in the * Monolog\Handler\FingersCrossed\ namespace. * * @author Jordi Boggiano * * @phpstan-import-type Record from \Monolog\Logger * @phpstan-import-type Level from \Monolog\Logger * @phpstan-import-type LevelName from \Monolog\Logger */ class FingersCrossedHandler extends \ForminatorGoogleAddon\Monolog\Handler\Handler implements \ForminatorGoogleAddon\Monolog\Handler\ProcessableHandlerInterface, \ForminatorGoogleAddon\Monolog\ResettableInterface, \ForminatorGoogleAddon\Monolog\Handler\FormattableHandlerInterface { use \ForminatorGoogleAddon\Monolog\Handler\ProcessableHandlerTrait; /** * @var callable|HandlerInterface * @phpstan-var callable(?Record, HandlerInterface): HandlerInterface|HandlerInterface */ protected $handler; /** @var ActivationStrategyInterface */ protected $activationStrategy; /** @var bool */ protected $buffering = \true; /** @var int */ protected $bufferSize; /** @var Record[] */ protected $buffer = []; /** @var bool */ protected $stopBuffering; /** * @var ?int * @phpstan-var ?Level */ protected $passthruLevel; /** @var bool */ protected $bubble; /** * @psalm-param HandlerInterface|callable(?Record, HandlerInterface): HandlerInterface $handler * * @param callable|HandlerInterface $handler Handler or factory callable($record|null, $fingersCrossedHandler). * @param int|string|ActivationStrategyInterface $activationStrategy Strategy which determines when this handler takes action, or a level name/value at which the handler is activated * @param int $bufferSize How many entries should be buffered at most, beyond that the oldest items are removed from the buffer. * @param bool $bubble Whether the messages that are handled can bubble up the stack or not * @param bool $stopBuffering Whether the handler should stop buffering after being triggered (default true) * @param int|string $passthruLevel Minimum level to always flush to handler on close, even if strategy not triggered * * @phpstan-param Level|LevelName|LogLevel::* $passthruLevel * @phpstan-param Level|LevelName|LogLevel::*|ActivationStrategyInterface $activationStrategy */ public function __construct($handler, $activationStrategy = null, int $bufferSize = 0, bool $bubble = \true, bool $stopBuffering = \true, $passthruLevel = null) { } /** * {@inheritDoc} */ public function isHandling(array $record): bool { } /** * Manually activate this logger regardless of the activation strategy */ public function activate(): void { } /** * {@inheritDoc} */ public function handle(array $record): bool { } /** * {@inheritDoc} */ public function close(): void { } public function reset() { } /** * Clears the buffer without flushing any messages down to the wrapped handler. * * It also resets the handler to its initial buffering state. */ public function clear(): void { } /** * Resets the state of the handler. Stops forwarding records to the wrapped handler. */ private function flushBuffer(): void { } /** * Return the nested handler * * If the handler was provided as a factory callable, this will trigger the handler's instantiation. * * @return HandlerInterface * * @phpstan-param Record $record */ public function getHandler(?array $record = null) { } /** * {@inheritDoc} */ public function setFormatter(\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } /** * {@inheritDoc} */ public function getFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * Simple FirePHP Handler (http://www.firephp.org/), which uses the Wildfire protocol. * * @author Eric Clemmons (@ericclemmons) * * @phpstan-import-type FormattedRecord from AbstractProcessingHandler */ class FirePHPHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { use \ForminatorGoogleAddon\Monolog\Handler\WebRequestRecognizerTrait; /** * WildFire JSON header message format */ protected const PROTOCOL_URI = 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2'; /** * FirePHP structure for parsing messages & their presentation */ protected const STRUCTURE_URI = 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1'; /** * Must reference a "known" plugin, otherwise headers won't display in FirePHP */ protected const PLUGIN_URI = 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3'; /** * Header prefix for Wildfire to recognize & parse headers */ protected const HEADER_PREFIX = 'X-Wf'; /** * Whether or not Wildfire vendor-specific headers have been generated & sent yet * @var bool */ protected static $initialized = \false; /** * Shared static message index between potentially multiple handlers * @var int */ protected static $messageIndex = 1; /** @var bool */ protected static $sendHeaders = \true; /** * Base header creation function used by init headers & record headers * * @param array $meta Wildfire Plugin, Protocol & Structure Indexes * @param string $message Log message * * @return array Complete header string ready for the client as key and message as value * * @phpstan-return non-empty-array */ protected function createHeader(array $meta, string $message): array { } /** * Creates message header from record * * @return array * * @phpstan-return non-empty-array * * @see createHeader() * * @phpstan-param FormattedRecord $record */ protected function createRecordHeader(array $record): array { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } /** * Wildfire initialization headers to enable message parsing * * @see createHeader() * @see sendHeader() * * @return array */ protected function getInitHeaders(): array { } /** * Send header string to the client */ protected function sendHeader(string $header, string $content): void { } /** * Creates & sends header for a record, ensuring init headers have been sent prior * * @see sendHeader() * @see sendInitHeaders() */ protected function write(array $record): void { } /** * Verifies if the headers are accepted by the current user agent */ protected function headersAccepted(): bool { } } /** * Stores to any socket - uses fsockopen() or pfsockopen(). * * @author Pablo de Leon Belloc * @see http://php.net/manual/en/function.fsockopen.php * * @phpstan-import-type Record from \Monolog\Logger * @phpstan-import-type FormattedRecord from AbstractProcessingHandler */ class SocketHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** @var string */ private $connectionString; /** @var float */ private $connectionTimeout; /** @var resource|null */ private $resource; /** @var float */ private $timeout; /** @var float */ private $writingTimeout; /** @var ?int */ private $lastSentBytes = null; /** @var ?int */ private $chunkSize; /** @var bool */ private $persistent; /** @var ?int */ private $errno = null; /** @var ?string */ private $errstr = null; /** @var ?float */ private $lastWritingAt = null; /** * @param string $connectionString Socket connection string * @param bool $persistent Flag to enable/disable persistent connections * @param float $timeout Socket timeout to wait until the request is being aborted * @param float $writingTimeout Socket timeout to wait until the request should've been sent/written * @param float|null $connectionTimeout Socket connect timeout to wait until the connection should've been * established * @param int|null $chunkSize Sets the chunk size. Only has effect during connection in the writing cycle * * @throws \InvalidArgumentException If an invalid timeout value (less than 0) is passed. */ public function __construct(string $connectionString, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true, bool $persistent = \false, float $timeout = 0.0, float $writingTimeout = 10.0, ?float $connectionTimeout = null, ?int $chunkSize = null) { } /** * Connect (if necessary) and write to the socket * * {@inheritDoc} * * @throws \UnexpectedValueException * @throws \RuntimeException */ protected function write(array $record): void { } /** * We will not close a PersistentSocket instance so it can be reused in other requests. */ public function close(): void { } /** * Close socket, if open */ public function closeSocket(): void { } /** * Set socket connection to be persistent. It only has effect before the connection is initiated. */ public function setPersistent(bool $persistent): self { } /** * Set connection timeout. Only has effect before we connect. * * @see http://php.net/manual/en/function.fsockopen.php */ public function setConnectionTimeout(float $seconds): self { } /** * Set write timeout. Only has effect before we connect. * * @see http://php.net/manual/en/function.stream-set-timeout.php */ public function setTimeout(float $seconds): self { } /** * Set writing timeout. Only has effect during connection in the writing cycle. * * @param float $seconds 0 for no timeout */ public function setWritingTimeout(float $seconds): self { } /** * Set chunk size. Only has effect during connection in the writing cycle. */ public function setChunkSize(int $bytes): self { } /** * Get current connection string */ public function getConnectionString(): string { } /** * Get persistent setting */ public function isPersistent(): bool { } /** * Get current connection timeout setting */ public function getConnectionTimeout(): float { } /** * Get current in-transfer timeout */ public function getTimeout(): float { } /** * Get current local writing timeout * * @return float */ public function getWritingTimeout(): float { } /** * Get current chunk size */ public function getChunkSize(): ?int { } /** * Check to see if the socket is currently available. * * UDP might appear to be connected but might fail when writing. See http://php.net/fsockopen for details. */ public function isConnected(): bool { } /** * Wrapper to allow mocking * * @return resource|false */ protected function pfsockopen() { } /** * Wrapper to allow mocking * * @return resource|false */ protected function fsockopen() { } /** * Wrapper to allow mocking * * @see http://php.net/manual/en/function.stream-set-timeout.php * * @return bool */ protected function streamSetTimeout() { } /** * Wrapper to allow mocking * * @see http://php.net/manual/en/function.stream-set-chunk-size.php * * @return int|bool */ protected function streamSetChunkSize() { } /** * Wrapper to allow mocking * * @return int|bool */ protected function fwrite(string $data) { } /** * Wrapper to allow mocking * * @return mixed[]|bool */ protected function streamGetMetadata() { } private function validateTimeout(float $value): void { } private function connectIfNotConnected(): void { } /** * @phpstan-param FormattedRecord $record */ protected function generateDataStream(array $record): string { } /** * @return resource|null */ protected function getResource() { } private function connect(): void { } private function createSocketResource(): void { } private function setSocketTimeout(): void { } private function setStreamChunkSize(): void { } private function writeToSocket(string $data): void { } private function writingIsTimedOut(int $sent): bool { } } /** * Sends logs to Fleep.io using Webhook integrations * * You'll need a Fleep.io account to use this handler. * * @see https://fleep.io/integrations/webhooks/ Fleep Webhooks Documentation * @author Ando Roots * * @phpstan-import-type FormattedRecord from AbstractProcessingHandler */ class FleepHookHandler extends \ForminatorGoogleAddon\Monolog\Handler\SocketHandler { protected const FLEEP_HOST = 'fleep.io'; protected const FLEEP_HOOK_URI = '/hook/'; /** * @var string Webhook token (specifies the conversation where logs are sent) */ protected $token; /** * Construct a new Fleep.io Handler. * * For instructions on how to create a new web hook in your conversations * see https://fleep.io/integrations/webhooks/ * * @param string $token Webhook token * @throws MissingExtensionException */ public function __construct(string $token, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true, bool $persistent = \false, float $timeout = 0.0, float $writingTimeout = 10.0, ?float $connectionTimeout = null, ?int $chunkSize = null) { } /** * Returns the default formatter to use with this handler * * Overloaded to remove empty context and extra arrays from the end of the log message. * * @return LineFormatter */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } /** * Handles a log record */ public function write(array $record): void { } /** * {@inheritDoc} */ protected function generateDataStream(array $record): string { } /** * Builds the header of the API Call */ private function buildHeader(string $content): string { } /** * Builds the body of API call * * @phpstan-param FormattedRecord $record */ private function buildContent(array $record): string { } } /** * Sends notifications through the Flowdock push API * * This must be configured with a FlowdockFormatter instance via setFormatter() * * Notes: * API token - Flowdock API token * * @author Dominik Liebler * @see https://www.flowdock.com/api/push * * @phpstan-import-type FormattedRecord from AbstractProcessingHandler * @deprecated Since 2.9.0 and 3.3.0, Flowdock was shutdown we will thus drop this handler in Monolog 4 */ class FlowdockHandler extends \ForminatorGoogleAddon\Monolog\Handler\SocketHandler { /** * @var string */ protected $apiToken; /** * @throws MissingExtensionException if OpenSSL is missing */ public function __construct(string $apiToken, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true, bool $persistent = \false, float $timeout = 0.0, float $writingTimeout = 10.0, ?float $connectionTimeout = null, ?int $chunkSize = null) { } /** * {@inheritDoc} */ public function setFormatter(\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } /** * Gets the default formatter. */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * {@inheritDoc} */ protected function generateDataStream(array $record): string { } /** * Builds the body of API call * * @phpstan-param FormattedRecord $record */ private function buildContent(array $record): string { } /** * Builds the header of the API Call */ private function buildHeader(string $content): string { } } /** * Handler to send messages to a Graylog2 (http://www.graylog2.org) server * * @author Matt Lehner * @author Benjamin Zikarsky */ class GelfHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** * @var PublisherInterface the publisher object that sends the message to the server */ protected $publisher; /** * @param PublisherInterface $publisher a gelf publisher object */ public function __construct(\ForminatorGoogleAddon\Gelf\PublisherInterface $publisher, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * This simple wrapper class can be used to extend handlers functionality. * * Example: A custom filtering that can be applied to any handler. * * Inherit from this class and override handle() like this: * * public function handle(array $record) * { * if ($record meets certain conditions) { * return false; * } * return $this->handler->handle($record); * } * * @author Alexey Karapetov */ class HandlerWrapper implements \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface, \ForminatorGoogleAddon\Monolog\Handler\ProcessableHandlerInterface, \ForminatorGoogleAddon\Monolog\Handler\FormattableHandlerInterface, \ForminatorGoogleAddon\Monolog\ResettableInterface { /** * @var HandlerInterface */ protected $handler; public function __construct(\ForminatorGoogleAddon\Monolog\Handler\HandlerInterface $handler) { } /** * {@inheritDoc} */ public function isHandling(array $record): bool { } /** * {@inheritDoc} */ public function handle(array $record): bool { } /** * {@inheritDoc} */ public function handleBatch(array $records): void { } /** * {@inheritDoc} */ public function close(): void { } /** * {@inheritDoc} */ public function pushProcessor(callable $callback): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } /** * {@inheritDoc} */ public function popProcessor(): callable { } /** * {@inheritDoc} */ public function setFormatter(\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } /** * {@inheritDoc} */ public function getFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } public function reset() { } } /** * IFTTTHandler uses cURL to trigger IFTTT Maker actions * * Register a secret key and trigger/event name at https://ifttt.com/maker * * value1 will be the channel from monolog's Logger constructor, * value2 will be the level name (ERROR, WARNING, ..) * value3 will be the log record's message * * @author Nehal Patel */ class IFTTTHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** @var string */ private $eventName; /** @var string */ private $secretKey; /** * @param string $eventName The name of the IFTTT Maker event that should be triggered * @param string $secretKey A valid IFTTT secret key */ public function __construct(string $eventName, string $secretKey, $level = \ForminatorGoogleAddon\Monolog\Logger::ERROR, bool $bubble = \true) { } /** * {@inheritDoc} */ public function write(array $record): void { } } /** * Inspired on LogEntriesHandler. * * @author Robert Kaufmann III * @author Gabriel Machado */ class InsightOpsHandler extends \ForminatorGoogleAddon\Monolog\Handler\SocketHandler { /** * @var string */ protected $logToken; /** * @param string $token Log token supplied by InsightOps * @param string $region Region where InsightOps account is hosted. Could be 'us' or 'eu'. * @param bool $useSSL Whether or not SSL encryption should be used * * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing */ public function __construct(string $token, string $region = 'us', bool $useSSL = \true, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true, bool $persistent = \false, float $timeout = 0.0, float $writingTimeout = 10.0, ?float $connectionTimeout = null, ?int $chunkSize = null) { } /** * {@inheritDoc} */ protected function generateDataStream(array $record): string { } } /** * @author Robert Kaufmann III */ class LogEntriesHandler extends \ForminatorGoogleAddon\Monolog\Handler\SocketHandler { /** * @var string */ protected $logToken; /** * @param string $token Log token supplied by LogEntries * @param bool $useSSL Whether or not SSL encryption should be used. * @param string $host Custom hostname to send the data to if needed * * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing */ public function __construct(string $token, bool $useSSL = \true, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true, string $host = 'data.logentries.com', bool $persistent = \false, float $timeout = 0.0, float $writingTimeout = 10.0, ?float $connectionTimeout = null, ?int $chunkSize = null) { } /** * {@inheritDoc} */ protected function generateDataStream(array $record): string { } } /** * Sends errors to Loggly. * * @author Przemek Sobstel * @author Adam Pancutt * @author Gregory Barchard */ class LogglyHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { protected const HOST = 'logs-01.loggly.com'; protected const ENDPOINT_SINGLE = 'inputs'; protected const ENDPOINT_BATCH = 'bulk'; /** * Caches the curl handlers for every given endpoint. * * @var resource[]|CurlHandle[] */ protected $curlHandlers = []; /** @var string */ protected $token; /** @var string[] */ protected $tag = []; /** * @param string $token API token supplied by Loggly * * @throws MissingExtensionException If the curl extension is missing */ public function __construct(string $token, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * Loads and returns the shared curl handler for the given endpoint. * * @param string $endpoint * * @return resource|CurlHandle */ protected function getCurlHandler(string $endpoint) { } /** * Starts a fresh curl session for the given endpoint and returns its handler. * * @param string $endpoint * * @return resource|CurlHandle */ private function loadCurlHandle(string $endpoint) { } /** * @param string[]|string $tag */ public function setTag($tag): self { } /** * @param string[]|string $tag */ public function addTag($tag): self { } protected function write(array $record): void { } public function handleBatch(array $records): void { } protected function send(string $data, string $endpoint): void { } protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * @author Julien Breux */ class LogmaticHandler extends \ForminatorGoogleAddon\Monolog\Handler\SocketHandler { /** * @var string */ private $logToken; /** * @var string */ private $hostname; /** * @var string */ private $appname; /** * @param string $token Log token supplied by Logmatic. * @param string $hostname Host name supplied by Logmatic. * @param string $appname Application name supplied by Logmatic. * @param bool $useSSL Whether or not SSL encryption should be used. * * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing */ public function __construct(string $token, string $hostname = '', string $appname = '', bool $useSSL = \true, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true, bool $persistent = \false, float $timeout = 0.0, float $writingTimeout = 10.0, ?float $connectionTimeout = null, ?int $chunkSize = null) { } /** * {@inheritDoc} */ protected function generateDataStream(array $record): string { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * Base class for all mail handlers * * @author Gyula Sallai * * @phpstan-import-type Record from \Monolog\Logger */ abstract class MailHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** * {@inheritDoc} */ public function handleBatch(array $records): void { } /** * Send a mail with the given content * * @param string $content formatted email body to be sent * @param array $records the array of log records that formed this content * * @phpstan-param Record[] $records */ abstract protected function send(string $content, array $records): void; /** * {@inheritDoc} */ protected function write(array $record): void { } /** * @phpstan-param non-empty-array $records * @phpstan-return Record */ protected function getHighestRecord(array $records): array { } protected function isHtmlBody(string $body): bool { } /** * Gets the default formatter. * * @return FormatterInterface */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * MandrillHandler uses cURL to send the emails to the Mandrill API * * @author Adam Nicholson */ class MandrillHandler extends \ForminatorGoogleAddon\Monolog\Handler\MailHandler { /** @var Swift_Message */ protected $message; /** @var string */ protected $apiKey; /** * @psalm-param Swift_Message|callable(): Swift_Message $message * * @param string $apiKey A valid Mandrill API key * @param callable|Swift_Message $message An example message for real messages, only the body will be replaced */ public function __construct(string $apiKey, $message, $level = \ForminatorGoogleAddon\Monolog\Logger::ERROR, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function send(string $content, array $records): void { } } /** * Exception can be thrown if an extension for a handler is missing * * @author Christian Bergau */ class MissingExtensionException extends \Exception { } /** * Logs to a MongoDB database. * * Usage example: * * $log = new \Monolog\Logger('application'); * $client = new \MongoDB\Client('mongodb://localhost:27017'); * $mongodb = new \Monolog\Handler\MongoDBHandler($client, 'logs', 'prod'); * $log->pushHandler($mongodb); * * The above examples uses the MongoDB PHP library's client class; however, the * MongoDB\Driver\Manager class from ext-mongodb is also supported. */ class MongoDBHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** @var \MongoDB\Collection */ private $collection; /** @var Client|Manager */ private $manager; /** @var string */ private $namespace; /** * Constructor. * * @param Client|Manager $mongodb MongoDB library or driver client * @param string $database Database name * @param string $collection Collection name */ public function __construct($mongodb, string $database, string $collection, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } protected function write(array $record): void { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * NativeMailerHandler uses the mail() function to send the emails * * @author Christophe Coevoet * @author Mark Garrett */ class NativeMailerHandler extends \ForminatorGoogleAddon\Monolog\Handler\MailHandler { /** * The email addresses to which the message will be sent * @var string[] */ protected $to; /** * The subject of the email * @var string */ protected $subject; /** * Optional headers for the message * @var string[] */ protected $headers = []; /** * Optional parameters for the message * @var string[] */ protected $parameters = []; /** * The wordwrap length for the message * @var int */ protected $maxColumnWidth; /** * The Content-type for the message * @var string|null */ protected $contentType; /** * The encoding for the message * @var string */ protected $encoding = 'utf-8'; /** * @param string|string[] $to The receiver of the mail * @param string $subject The subject of the mail * @param string $from The sender of the mail * @param int $maxColumnWidth The maximum column width that the message lines will have */ public function __construct($to, string $subject, string $from, $level = \ForminatorGoogleAddon\Monolog\Logger::ERROR, bool $bubble = \true, int $maxColumnWidth = 70) { } /** * Add headers to the message * * @param string|string[] $headers Custom added headers */ public function addHeader($headers): self { } /** * Add parameters to the message * * @param string|string[] $parameters Custom added parameters */ public function addParameter($parameters): self { } /** * {@inheritDoc} */ protected function send(string $content, array $records): void { } public function getContentType(): ?string { } public function getEncoding(): string { } /** * @param string $contentType The content type of the email - Defaults to text/plain. Use text/html for HTML messages. */ public function setContentType(string $contentType): self { } public function setEncoding(string $encoding): self { } } /** * Class to record a log on a NewRelic application. * Enabling New Relic High Security mode may prevent capture of useful information. * * This handler requires a NormalizerFormatter to function and expects an array in $record['formatted'] * * @see https://docs.newrelic.com/docs/agents/php-agent * @see https://docs.newrelic.com/docs/accounts-partnerships/accounts/security/high-security */ class NewRelicHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** * Name of the New Relic application that will receive logs from this handler. * * @var ?string */ protected $appName; /** * Name of the current transaction * * @var ?string */ protected $transactionName; /** * Some context and extra data is passed into the handler as arrays of values. Do we send them as is * (useful if we are using the API), or explode them for display on the NewRelic RPM website? * * @var bool */ protected $explodeArrays; /** * {@inheritDoc} * * @param string|null $appName * @param bool $explodeArrays * @param string|null $transactionName */ public function __construct($level = \ForminatorGoogleAddon\Monolog\Logger::ERROR, bool $bubble = \true, ?string $appName = null, bool $explodeArrays = \false, ?string $transactionName = null) { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * Checks whether the NewRelic extension is enabled in the system. * * @return bool */ protected function isNewRelicEnabled(): bool { } /** * Returns the appname where this log should be sent. Each log can override the default appname, set in this * handler's constructor, by providing the appname in it's context. * * @param mixed[] $context */ protected function getAppName(array $context): ?string { } /** * Returns the name of the current transaction. Each log can override the default transaction name, set in this * handler's constructor, by providing the transaction_name in it's context * * @param mixed[] $context */ protected function getTransactionName(array $context): ?string { } /** * Sets the NewRelic application that should receive this log. */ protected function setNewRelicAppName(string $appName): void { } /** * Overwrites the name of the current transaction */ protected function setNewRelicTransactionName(string $transactionName): void { } /** * @param string $key * @param mixed $value */ protected function setNewRelicParameter(string $key, $value): void { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * No-op * * This handler handles anything, but does nothing, and does not stop bubbling to the rest of the stack. * This can be used for testing, or to disable a handler when overriding a configuration without * influencing the rest of the stack. * * @author Roel Harbers */ class NoopHandler extends \ForminatorGoogleAddon\Monolog\Handler\Handler { /** * {@inheritDoc} */ public function isHandling(array $record): bool { } /** * {@inheritDoc} */ public function handle(array $record): bool { } } /** * Blackhole * * Any record it can handle will be thrown away. This can be used * to put on top of an existing stack to override it temporarily. * * @author Jordi Boggiano * * @phpstan-import-type Level from \Monolog\Logger * @phpstan-import-type LevelName from \Monolog\Logger */ class NullHandler extends \ForminatorGoogleAddon\Monolog\Handler\Handler { /** * @var int */ private $level; /** * @param string|int $level The minimum logging level at which this handler will be triggered * * @phpstan-param Level|LevelName|LogLevel::* $level */ public function __construct($level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG) { } /** * {@inheritDoc} */ public function isHandling(array $record): bool { } /** * {@inheritDoc} */ public function handle(array $record): bool { } } /** * Handler to only pass log messages when a certain threshold of number of messages is reached. * * This can be useful in cases of processing a batch of data, but you're for example only interested * in case it fails catastrophically instead of a warning for 1 or 2 events. Worse things can happen, right? * * Usage example: * * ``` * $log = new Logger('application'); * $handler = new SomeHandler(...) * * // Pass all warnings to the handler when more than 10 & all error messages when more then 5 * $overflow = new OverflowHandler($handler, [Logger::WARNING => 10, Logger::ERROR => 5]); * * $log->pushHandler($overflow); *``` * * @author Kris Buist */ class OverflowHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractHandler implements \ForminatorGoogleAddon\Monolog\Handler\FormattableHandlerInterface { /** @var HandlerInterface */ private $handler; /** @var int[] */ private $thresholdMap = [\ForminatorGoogleAddon\Monolog\Logger::DEBUG => 0, \ForminatorGoogleAddon\Monolog\Logger::INFO => 0, \ForminatorGoogleAddon\Monolog\Logger::NOTICE => 0, \ForminatorGoogleAddon\Monolog\Logger::WARNING => 0, \ForminatorGoogleAddon\Monolog\Logger::ERROR => 0, \ForminatorGoogleAddon\Monolog\Logger::CRITICAL => 0, \ForminatorGoogleAddon\Monolog\Logger::ALERT => 0, \ForminatorGoogleAddon\Monolog\Logger::EMERGENCY => 0]; /** * Buffer of all messages passed to the handler before the threshold was reached * * @var mixed[][] */ private $buffer = []; /** * @param HandlerInterface $handler * @param int[] $thresholdMap Dictionary of logger level => threshold */ public function __construct(\ForminatorGoogleAddon\Monolog\Handler\HandlerInterface $handler, array $thresholdMap = [], $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * Handles a record. * * All records may be passed to this method, and the handler should discard * those that it does not want to handle. * * The return value of this function controls the bubbling process of the handler stack. * Unless the bubbling is interrupted (by returning true), the Logger class will keep on * calling further handlers in the stack with a given log record. * * {@inheritDoc} */ public function handle(array $record): bool { } /** * {@inheritDoc} */ public function setFormatter(\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } /** * {@inheritDoc} */ public function getFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * Monolog handler for Google Chrome extension "PHP Console" * * Display PHP error/debug log messages in Google Chrome console and notification popups, executes PHP code remotely * * Usage: * 1. Install Google Chrome extension [now dead and removed from the chrome store] * 2. See overview https://github.com/barbushin/php-console#overview * 3. Install PHP Console library https://github.com/barbushin/php-console#installation * 4. Example (result will looks like http://i.hizliresim.com/vg3Pz4.png) * * $logger = new \Monolog\Logger('all', array(new \Monolog\Handler\PHPConsoleHandler())); * \Monolog\ErrorHandler::register($logger); * echo $undefinedVar; * $logger->debug('SELECT * FROM users', array('db', 'time' => 0.012)); * PC::debug($_SERVER); // PHP Console debugger for any type of vars * * @author Sergey Barbushin https://www.linkedin.com/in/barbushin * * @phpstan-import-type Record from \Monolog\Logger * @deprecated Since 2.8.0 and 3.2.0, PHPConsole is abandoned and thus we will drop this handler in Monolog 4 */ class PHPConsoleHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** @var array */ private $options = [ 'enabled' => \true, // bool Is PHP Console server enabled 'classesPartialsTraceIgnore' => ['Monolog\\'], // array Hide calls of classes started with... 'debugTagsKeysInContext' => [0, 'tag'], // bool Is PHP Console server enabled 'useOwnErrorsHandler' => \false, // bool Enable errors handling 'useOwnExceptionsHandler' => \false, // bool Enable exceptions handling 'sourcesBasePath' => null, // string Base path of all project sources to strip in errors source paths 'registerHelper' => \true, // bool Register PhpConsole\Helper that allows short debug calls like PC::debug($var, 'ta.g.s') 'serverEncoding' => null, // string|null Server internal encoding 'headersLimit' => null, // int|null Set headers size limit for your web-server 'password' => null, // string|null Protect PHP Console connection by password 'enableSslOnlyMode' => \false, // bool Force connection by SSL for clients with PHP Console installed 'ipMasks' => [], // array Set IP masks of clients that will be allowed to connect to PHP Console: array('192.168.*.*', '127.0.0.1') 'enableEvalListener' => \false, // bool Enable eval request to be handled by eval dispatcher(if enabled, 'password' option is also required) 'dumperDetectCallbacks' => \false, // bool Convert callback items in dumper vars to (callback SomeClass::someMethod) strings 'dumperLevelLimit' => 5, // int Maximum dumped vars array or object nested dump level 'dumperItemsCountLimit' => 100, // int Maximum dumped var same level array items or object properties number 'dumperItemSizeLimit' => 5000, // int Maximum length of any string or dumped array item 'dumperDumpSizeLimit' => 500000, // int Maximum approximate size of dumped vars result formatted in JSON 'detectDumpTraceAndSource' => \false, // bool Autodetect and append trace data to debug 'dataStorage' => null, ]; /** @var Connector */ private $connector; /** * @param array $options See \Monolog\Handler\PHPConsoleHandler::$options for more details * @param Connector|null $connector Instance of \PhpConsole\Connector class (optional) * @throws \RuntimeException */ public function __construct(array $options = [], ?\ForminatorGoogleAddon\PhpConsole\Connector $connector = null, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * @param array $options * * @return array */ private function initOptions(array $options): array { } private function initConnector(?\ForminatorGoogleAddon\PhpConsole\Connector $connector = null): \ForminatorGoogleAddon\PhpConsole\Connector { } public function getConnector(): \ForminatorGoogleAddon\PhpConsole\Connector { } /** * @return array */ public function getOptions(): array { } public function handle(array $record): bool { } /** * Writes the record down to the log of the implementing handler */ protected function write(array $record): void { } /** * @phpstan-param Record $record */ private function handleDebugRecord(array $record): void { } /** * @phpstan-param Record $record */ private function handleExceptionRecord(array $record): void { } /** * @phpstan-param Record $record */ private function handleErrorRecord(array $record): void { } /** * @phpstan-param Record $record * @return string */ private function getRecordTags(array &$record) { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * Stores to STDIN of any process, specified by a command. * * Usage example: *
     * $log = new Logger('myLogger');
     * $log->pushHandler(new ProcessHandler('/usr/bin/php /var/www/monolog/someScript.php'));
     * 
* * @author Kolja Zuelsdorf */ class ProcessHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** * Holds the process to receive data on its STDIN. * * @var resource|bool|null */ private $process; /** * @var string */ private $command; /** * @var string|null */ private $cwd; /** * @var resource[] */ private $pipes = []; /** * @var array */ protected const DESCRIPTOR_SPEC = [ 0 => ['pipe', 'r'], // STDIN is a pipe that the child will read from 1 => ['pipe', 'w'], // STDOUT is a pipe that the child will write to 2 => ['pipe', 'w'], ]; /** * @param string $command Command for the process to start. Absolute paths are recommended, * especially if you do not use the $cwd parameter. * @param string|null $cwd "Current working directory" (CWD) for the process to be executed in. * @throws \InvalidArgumentException */ public function __construct(string $command, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true, ?string $cwd = null) { } /** * Writes the record down to the log of the implementing handler * * @throws \UnexpectedValueException */ protected function write(array $record): void { } /** * Makes sure that the process is actually started, and if not, starts it, * assigns the stream pipes, and handles startup errors, if any. */ private function ensureProcessIsStarted(): void { } /** * Starts the actual process and sets all streams to non-blocking. */ private function startProcess(): void { } /** * Selects the STDERR stream, handles upcoming startup errors, and throws an exception, if any. * * @throws \UnexpectedValueException */ private function handleStartupErrors(): void { } /** * Selects the STDERR stream. * * @return int|bool */ protected function selectErrorStream() { } /** * Reads the errors of the process, if there are any. * * @codeCoverageIgnore * @return string Empty string if there are no errors. */ protected function readProcessErrors(): string { } /** * Writes to the input stream of the opened process. * * @codeCoverageIgnore */ protected function writeProcessInput(string $string): void { } /** * {@inheritDoc} */ public function close(): void { } } /** * Proxies log messages to an existing PSR-3 compliant logger. * * If a formatter is configured, the formatter's output MUST be a string and the * formatted message will be fed to the wrapped PSR logger instead of the original * log record's message. * * @author Michael Moussa */ class PsrHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractHandler implements \ForminatorGoogleAddon\Monolog\Handler\FormattableHandlerInterface { /** * PSR-3 compliant logger * * @var LoggerInterface */ protected $logger; /** * @var FormatterInterface|null */ protected $formatter; /** * @param LoggerInterface $logger The underlying PSR-3 compliant logger to which messages will be proxied */ public function __construct(\ForminatorGoogleAddon\Psr\Log\LoggerInterface $logger, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * {@inheritDoc} */ public function handle(array $record): bool { } /** * Sets the formatter. * * @param FormatterInterface $formatter */ public function setFormatter(\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } /** * Gets the formatter. * * @return FormatterInterface */ public function getFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * Sends notifications through the pushover api to mobile phones * * @author Sebastian Göttschkes * @see https://www.pushover.net/api * * @phpstan-import-type FormattedRecord from AbstractProcessingHandler * @phpstan-import-type Level from \Monolog\Logger * @phpstan-import-type LevelName from \Monolog\Logger */ class PushoverHandler extends \ForminatorGoogleAddon\Monolog\Handler\SocketHandler { /** @var string */ private $token; /** @var array */ private $users; /** @var string */ private $title; /** @var string|int|null */ private $user = null; /** @var int */ private $retry; /** @var int */ private $expire; /** @var int */ private $highPriorityLevel; /** @var int */ private $emergencyLevel; /** @var bool */ private $useFormattedMessage = \false; /** * All parameters that can be sent to Pushover * @see https://pushover.net/api * @var array */ private $parameterNames = ['token' => \true, 'user' => \true, 'message' => \true, 'device' => \true, 'title' => \true, 'url' => \true, 'url_title' => \true, 'priority' => \true, 'timestamp' => \true, 'sound' => \true, 'retry' => \true, 'expire' => \true, 'callback' => \true]; /** * Sounds the api supports by default * @see https://pushover.net/api#sounds * @var string[] */ private $sounds = ['pushover', 'bike', 'bugle', 'cashregister', 'classical', 'cosmic', 'falling', 'gamelan', 'incoming', 'intermission', 'magic', 'mechanical', 'pianobar', 'siren', 'spacealarm', 'tugboat', 'alien', 'climb', 'persistent', 'echo', 'updown', 'none']; /** * @param string $token Pushover api token * @param string|array $users Pushover user id or array of ids the message will be sent to * @param string|null $title Title sent to the Pushover API * @param bool $useSSL Whether to connect via SSL. Required when pushing messages to users that are not * the pushover.net app owner. OpenSSL is required for this option. * @param string|int $highPriorityLevel The minimum logging level at which this handler will start * sending "high priority" requests to the Pushover API * @param string|int $emergencyLevel The minimum logging level at which this handler will start * sending "emergency" requests to the Pushover API * @param int $retry The retry parameter specifies how often (in seconds) the Pushover servers will * send the same notification to the user. * @param int $expire The expire parameter specifies how many seconds your notification will continue * to be retried for (every retry seconds). * * @phpstan-param string|array $users * @phpstan-param Level|LevelName|LogLevel::* $highPriorityLevel * @phpstan-param Level|LevelName|LogLevel::* $emergencyLevel */ public function __construct(string $token, $users, ?string $title = null, $level = \ForminatorGoogleAddon\Monolog\Logger::CRITICAL, bool $bubble = \true, bool $useSSL = \true, $highPriorityLevel = \ForminatorGoogleAddon\Monolog\Logger::CRITICAL, $emergencyLevel = \ForminatorGoogleAddon\Monolog\Logger::EMERGENCY, int $retry = 30, int $expire = 25200, bool $persistent = \false, float $timeout = 0.0, float $writingTimeout = 10.0, ?float $connectionTimeout = null, ?int $chunkSize = null) { } protected function generateDataStream(array $record): string { } /** * @phpstan-param FormattedRecord $record */ private function buildContent(array $record): string { } private function buildHeader(string $content): string { } protected function write(array $record): void { } /** * @param int|string $value * * @phpstan-param Level|LevelName|LogLevel::* $value */ public function setHighPriorityLevel($value): self { } /** * @param int|string $value * * @phpstan-param Level|LevelName|LogLevel::* $value */ public function setEmergencyLevel($value): self { } /** * Use the formatted message? */ public function useFormattedMessage(bool $value): self { } } /** * Logs to a Redis key using rpush * * usage example: * * $log = new Logger('application'); * $redis = new RedisHandler(new Predis\Client("tcp://localhost:6379"), "logs", "prod"); * $log->pushHandler($redis); * * @author Thomas Tourlourat * * @phpstan-import-type FormattedRecord from AbstractProcessingHandler */ class RedisHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** @var \Predis\Client<\Predis\Client>|\Redis */ private $redisClient; /** @var string */ private $redisKey; /** @var int */ protected $capSize; /** * @param \Predis\Client<\Predis\Client>|\Redis $redis The redis instance * @param string $key The key name to push records to * @param int $capSize Number of entries to limit list size to, 0 = unlimited */ public function __construct($redis, string $key, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true, int $capSize = 0) { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * Write and cap the collection * Writes the record to the redis list and caps its * * @phpstan-param FormattedRecord $record */ protected function writeCapped(array $record): void { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * Sends the message to a Redis Pub/Sub channel using PUBLISH * * usage example: * * $log = new Logger('application'); * $redis = new RedisPubSubHandler(new Predis\Client("tcp://localhost:6379"), "logs", Logger::WARNING); * $log->pushHandler($redis); * * @author Gaëtan Faugère */ class RedisPubSubHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** @var \Predis\Client<\Predis\Client>|\Redis */ private $redisClient; /** @var string */ private $channelKey; /** * @param \Predis\Client<\Predis\Client>|\Redis $redis The redis instance * @param string $key The channel key to publish records to */ public function __construct($redis, string $key, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * {@inheritDoc} */ protected function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * Sends errors to Rollbar * * If the context data contains a `payload` key, that is used as an array * of payload options to RollbarLogger's log method. * * Rollbar's context info will contain the context + extra keys from the log record * merged, and then on top of that a few keys: * * - level (rollbar level name) * - monolog_level (monolog level name, raw level, as rollbar only has 5 but monolog 8) * - channel * - datetime (unix timestamp) * * @author Paul Statezny */ class RollbarHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** * @var RollbarLogger */ protected $rollbarLogger; /** @var string[] */ protected $levelMap = [\ForminatorGoogleAddon\Monolog\Logger::DEBUG => 'debug', \ForminatorGoogleAddon\Monolog\Logger::INFO => 'info', \ForminatorGoogleAddon\Monolog\Logger::NOTICE => 'info', \ForminatorGoogleAddon\Monolog\Logger::WARNING => 'warning', \ForminatorGoogleAddon\Monolog\Logger::ERROR => 'error', \ForminatorGoogleAddon\Monolog\Logger::CRITICAL => 'critical', \ForminatorGoogleAddon\Monolog\Logger::ALERT => 'critical', \ForminatorGoogleAddon\Monolog\Logger::EMERGENCY => 'critical']; /** * Records whether any log records have been added since the last flush of the rollbar notifier * * @var bool */ private $hasRecords = \false; /** @var bool */ protected $initialized = \false; /** * @param RollbarLogger $rollbarLogger RollbarLogger object constructed with valid token */ public function __construct(\ForminatorGoogleAddon\Rollbar\RollbarLogger $rollbarLogger, $level = \ForminatorGoogleAddon\Monolog\Logger::ERROR, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function write(array $record): void { } public function flush(): void { } /** * {@inheritDoc} */ public function close(): void { } /** * {@inheritDoc} */ public function reset() { } } /** * Stores to any stream resource * * Can be used to store into php://stderr, remote and local files, etc. * * @author Jordi Boggiano * * @phpstan-import-type FormattedRecord from AbstractProcessingHandler */ class StreamHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** @const int */ protected const MAX_CHUNK_SIZE = 2147483647; /** @const int 10MB */ protected const DEFAULT_CHUNK_SIZE = 10 * 1024 * 1024; /** @var int */ protected $streamChunkSize; /** @var resource|null */ protected $stream; /** @var ?string */ protected $url = null; /** @var ?string */ private $errorMessage = null; /** @var ?int */ protected $filePermission; /** @var bool */ protected $useLocking; /** @var true|null */ private $dirCreated = null; /** * @param resource|string $stream If a missing path can't be created, an UnexpectedValueException will be thrown on first write * @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write) * @param bool $useLocking Try to lock log file before doing any writes * * @throws \InvalidArgumentException If stream is not a resource or string */ public function __construct($stream, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true, ?int $filePermission = null, bool $useLocking = \false) { } /** * {@inheritDoc} */ public function close(): void { } /** * Return the currently active stream if it is open * * @return resource|null */ public function getStream() { } /** * Return the stream URL if it was configured with a URL and not an active resource * * @return string|null */ public function getUrl(): ?string { } /** * @return int */ public function getStreamChunkSize(): int { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * Write to stream * @param resource $stream * @param array $record * * @phpstan-param FormattedRecord $record */ protected function streamWrite($stream, array $record): void { } private function customErrorHandler(int $code, string $msg): bool { } private function getDirFromStream(string $stream): ?string { } private function createDir(string $url): void { } } /** * Stores logs to files that are rotated every day and a limited number of files are kept. * * This rotation is only intended to be used as a workaround. Using logrotate to * handle the rotation is strongly encouraged when you can use it. * * @author Christophe Coevoet * @author Jordi Boggiano */ class RotatingFileHandler extends \ForminatorGoogleAddon\Monolog\Handler\StreamHandler { public const FILE_PER_DAY = 'Y-m-d'; public const FILE_PER_MONTH = 'Y-m'; public const FILE_PER_YEAR = 'Y'; /** @var string */ protected $filename; /** @var int */ protected $maxFiles; /** @var bool */ protected $mustRotate; /** @var \DateTimeImmutable */ protected $nextRotation; /** @var string */ protected $filenameFormat; /** @var string */ protected $dateFormat; /** * @param string $filename * @param int $maxFiles The maximal amount of files to keep (0 means unlimited) * @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write) * @param bool $useLocking Try to lock log file before doing any writes */ public function __construct(string $filename, int $maxFiles = 0, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true, ?int $filePermission = null, bool $useLocking = \false) { } /** * {@inheritDoc} */ public function close(): void { } /** * {@inheritDoc} */ public function reset() { } public function setFilenameFormat(string $filenameFormat, string $dateFormat): self { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * Rotates the files. */ protected function rotate(): void { } protected function getTimedFilename(): string { } protected function getGlobPattern(): string { } } /** * Sampling handler * * A sampled event stream can be useful for logging high frequency events in * a production environment where you only need an idea of what is happening * and are not concerned with capturing every occurrence. Since the decision to * handle or not handle a particular event is determined randomly, the * resulting sampled log is not guaranteed to contain 1/N of the events that * occurred in the application, but based on the Law of large numbers, it will * tend to be close to this ratio with a large number of attempts. * * @author Bryan Davis * @author Kunal Mehta * * @phpstan-import-type Record from \Monolog\Logger * @phpstan-import-type Level from \Monolog\Logger */ class SamplingHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractHandler implements \ForminatorGoogleAddon\Monolog\Handler\ProcessableHandlerInterface, \ForminatorGoogleAddon\Monolog\Handler\FormattableHandlerInterface { use \ForminatorGoogleAddon\Monolog\Handler\ProcessableHandlerTrait; /** * @var HandlerInterface|callable * @phpstan-var HandlerInterface|callable(Record|array{level: Level}|null, HandlerInterface): HandlerInterface */ protected $handler; /** * @var int $factor */ protected $factor; /** * @psalm-param HandlerInterface|callable(Record|array{level: Level}|null, HandlerInterface): HandlerInterface $handler * * @param callable|HandlerInterface $handler Handler or factory callable($record|null, $samplingHandler). * @param int $factor Sample factor (e.g. 10 means every ~10th record is sampled) */ public function __construct($handler, int $factor) { } public function isHandling(array $record): bool { } public function handle(array $record): bool { } /** * Return the nested handler * * If the handler was provided as a factory callable, this will trigger the handler's instantiation. * * @phpstan-param Record|array{level: Level}|null $record * * @return HandlerInterface */ public function getHandler(?array $record = null) { } /** * {@inheritDoc} */ public function setFormatter(\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } /** * {@inheritDoc} */ public function getFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * SendGridrHandler uses the SendGrid API v2 function to send Log emails, more information in https://sendgrid.com/docs/API_Reference/Web_API/mail.html * * @author Ricardo Fontanelli */ class SendGridHandler extends \ForminatorGoogleAddon\Monolog\Handler\MailHandler { /** * The SendGrid API User * @var string */ protected $apiUser; /** * The SendGrid API Key * @var string */ protected $apiKey; /** * The email addresses to which the message will be sent * @var string */ protected $from; /** * The email addresses to which the message will be sent * @var string[] */ protected $to; /** * The subject of the email * @var string */ protected $subject; /** * @param string $apiUser The SendGrid API User * @param string $apiKey The SendGrid API Key * @param string $from The sender of the email * @param string|string[] $to The recipients of the email * @param string $subject The subject of the mail */ public function __construct(string $apiUser, string $apiKey, string $from, $to, string $subject, $level = \ForminatorGoogleAddon\Monolog\Logger::ERROR, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function send(string $content, array $records): void { } } } namespace ForminatorGoogleAddon\Monolog\Handler\Slack { /** * Slack record utility helping to log to Slack webhooks or API. * * @author Greg Kedzierski * @author Haralan Dobrev * @see https://api.slack.com/incoming-webhooks * @see https://api.slack.com/docs/message-attachments * * @phpstan-import-type FormattedRecord from \Monolog\Handler\AbstractProcessingHandler * @phpstan-import-type Record from \Monolog\Logger */ class SlackRecord { public const COLOR_DANGER = 'danger'; public const COLOR_WARNING = 'warning'; public const COLOR_GOOD = 'good'; public const COLOR_DEFAULT = '#e3e4e6'; /** * Slack channel (encoded ID or name) * @var string|null */ private $channel; /** * Name of a bot * @var string|null */ private $username; /** * User icon e.g. 'ghost', 'http://example.com/user.png' * @var string|null */ private $userIcon; /** * Whether the message should be added to Slack as attachment (plain text otherwise) * @var bool */ private $useAttachment; /** * Whether the the context/extra messages added to Slack as attachments are in a short style * @var bool */ private $useShortAttachment; /** * Whether the attachment should include context and extra data * @var bool */ private $includeContextAndExtra; /** * Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2'] * @var string[] */ private $excludeFields; /** * @var ?FormatterInterface */ private $formatter; /** * @var NormalizerFormatter */ private $normalizerFormatter; /** * @param string[] $excludeFields */ public function __construct(?string $channel = null, ?string $username = null, bool $useAttachment = \true, ?string $userIcon = null, bool $useShortAttachment = \false, bool $includeContextAndExtra = \false, array $excludeFields = array(), ?\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter = null) { } /** * Returns required data in format that Slack * is expecting. * * @phpstan-param FormattedRecord $record * @phpstan-return mixed[] */ public function getSlackData(array $record): array { } /** * Returns a Slack message attachment color associated with * provided level. */ public function getAttachmentColor(int $level): string { } /** * Stringifies an array of key/value pairs to be used in attachment fields * * @param mixed[] $fields */ public function stringify(array $fields): string { } /** * Channel used by the bot when posting * * @param ?string $channel * * @return static */ public function setChannel(?string $channel = null): self { } /** * Username used by the bot when posting * * @param ?string $username * * @return static */ public function setUsername(?string $username = null): self { } public function useAttachment(bool $useAttachment = \true): self { } public function setUserIcon(?string $userIcon = null): self { } public function useShortAttachment(bool $useShortAttachment = \false): self { } public function includeContextAndExtra(bool $includeContextAndExtra = \false): self { } /** * @param string[] $excludeFields */ public function excludeFields(array $excludeFields = []): self { } public function setFormatter(?\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter = null): self { } /** * Generates attachment field * * @param string|mixed[] $value * * @return array{title: string, value: string, short: false} */ private function generateAttachmentField(string $title, $value): array { } /** * Generates a collection of attachment fields from array * * @param mixed[] $data * * @return array */ private function generateAttachmentFields(array $data): array { } /** * Get a copy of record with fields excluded according to $this->excludeFields * * @phpstan-param FormattedRecord $record * * @return mixed[] */ private function removeExcludedFields(array $record): array { } } } namespace ForminatorGoogleAddon\Monolog\Handler { /** * Sends notifications through Slack API * * @author Greg Kedzierski * @see https://api.slack.com/ * * @phpstan-import-type FormattedRecord from AbstractProcessingHandler */ class SlackHandler extends \ForminatorGoogleAddon\Monolog\Handler\SocketHandler { /** * Slack API token * @var string */ private $token; /** * Instance of the SlackRecord util class preparing data for Slack API. * @var SlackRecord */ private $slackRecord; /** * @param string $token Slack API token * @param string $channel Slack channel (encoded ID or name) * @param string|null $username Name of a bot * @param bool $useAttachment Whether the message should be added to Slack as attachment (plain text otherwise) * @param string|null $iconEmoji The emoji name to use (or null) * @param bool $useShortAttachment Whether the context/extra messages added to Slack as attachments are in a short style * @param bool $includeContextAndExtra Whether the attachment should include context and extra data * @param string[] $excludeFields Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2'] * @throws MissingExtensionException If no OpenSSL PHP extension configured */ public function __construct(string $token, string $channel, ?string $username = null, bool $useAttachment = \true, ?string $iconEmoji = null, $level = \ForminatorGoogleAddon\Monolog\Logger::CRITICAL, bool $bubble = \true, bool $useShortAttachment = \false, bool $includeContextAndExtra = \false, array $excludeFields = array(), bool $persistent = \false, float $timeout = 0.0, float $writingTimeout = 10.0, ?float $connectionTimeout = null, ?int $chunkSize = null) { } public function getSlackRecord(): \ForminatorGoogleAddon\Monolog\Handler\Slack\SlackRecord { } public function getToken(): string { } /** * {@inheritDoc} */ protected function generateDataStream(array $record): string { } /** * Builds the body of API call * * @phpstan-param FormattedRecord $record */ private function buildContent(array $record): string { } /** * @phpstan-param FormattedRecord $record * @return string[] */ protected function prepareContentData(array $record): array { } /** * Builds the header of the API Call */ private function buildHeader(string $content): string { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * Finalizes the request by reading some bytes and then closing the socket * * If we do not read some but close the socket too early, slack sometimes * drops the request entirely. */ protected function finalizeWrite(): void { } public function setFormatter(\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } public function getFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } /** * Channel used by the bot when posting */ public function setChannel(string $channel): self { } /** * Username used by the bot when posting */ public function setUsername(string $username): self { } public function useAttachment(bool $useAttachment): self { } public function setIconEmoji(string $iconEmoji): self { } public function useShortAttachment(bool $useShortAttachment): self { } public function includeContextAndExtra(bool $includeContextAndExtra): self { } /** * @param string[] $excludeFields */ public function excludeFields(array $excludeFields): self { } } /** * Sends notifications through Slack Webhooks * * @author Haralan Dobrev * @see https://api.slack.com/incoming-webhooks */ class SlackWebhookHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** * Slack Webhook token * @var string */ private $webhookUrl; /** * Instance of the SlackRecord util class preparing data for Slack API. * @var SlackRecord */ private $slackRecord; /** * @param string $webhookUrl Slack Webhook URL * @param string|null $channel Slack channel (encoded ID or name) * @param string|null $username Name of a bot * @param bool $useAttachment Whether the message should be added to Slack as attachment (plain text otherwise) * @param string|null $iconEmoji The emoji name to use (or null) * @param bool $useShortAttachment Whether the the context/extra messages added to Slack as attachments are in a short style * @param bool $includeContextAndExtra Whether the attachment should include context and extra data * @param string[] $excludeFields Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2'] */ public function __construct(string $webhookUrl, ?string $channel = null, ?string $username = null, bool $useAttachment = \true, ?string $iconEmoji = null, bool $useShortAttachment = \false, bool $includeContextAndExtra = \false, $level = \ForminatorGoogleAddon\Monolog\Logger::CRITICAL, bool $bubble = \true, array $excludeFields = array()) { } public function getSlackRecord(): \ForminatorGoogleAddon\Monolog\Handler\Slack\SlackRecord { } public function getWebhookUrl(): string { } /** * {@inheritDoc} */ protected function write(array $record): void { } public function setFormatter(\ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface $formatter): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } public function getFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } /** * Writes to any sqs queue. * * @author Martijn van Calker */ class SqsHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** 256 KB in bytes - maximum message size in SQS */ protected const MAX_MESSAGE_SIZE = 262144; /** 100 KB in bytes - head message size for new error log */ protected const HEAD_MESSAGE_SIZE = 102400; /** @var SqsClient */ private $client; /** @var string */ private $queueUrl; public function __construct(\ForminatorGoogleAddon\Aws\Sqs\SqsClient $sqsClient, string $queueUrl, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function write(array $record): void { } } /** * SwiftMailerHandler uses Swift_Mailer to send the emails * * @author Gyula Sallai * * @phpstan-import-type Record from \Monolog\Logger * @deprecated Since Monolog 2.6. Use SymfonyMailerHandler instead. */ class SwiftMailerHandler extends \ForminatorGoogleAddon\Monolog\Handler\MailHandler { /** @var \Swift_Mailer */ protected $mailer; /** @var Swift_Message|callable(string, Record[]): Swift_Message */ private $messageTemplate; /** * @psalm-param Swift_Message|callable(string, Record[]): Swift_Message $message * * @param \Swift_Mailer $mailer The mailer to use * @param callable|Swift_Message $message An example message for real messages, only the body will be replaced */ public function __construct(\ForminatorGoogleAddon\Swift_Mailer $mailer, $message, $level = \ForminatorGoogleAddon\Monolog\Logger::ERROR, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function send(string $content, array $records): void { } /** * Gets the formatter for the Swift_Message subject. * * @param string|null $format The format of the subject */ protected function getSubjectFormatter(?string $format): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } /** * Creates instance of Swift_Message to be sent * * @param string $content formatted email body to be sent * @param array $records Log records that formed the content * @return Swift_Message * * @phpstan-param Record[] $records */ protected function buildMessage(string $content, array $records): \ForminatorGoogleAddon\Swift_Message { } } /** * SymfonyMailerHandler uses Symfony's Mailer component to send the emails * * @author Jordi Boggiano * * @phpstan-import-type Record from \Monolog\Logger */ class SymfonyMailerHandler extends \ForminatorGoogleAddon\Monolog\Handler\MailHandler { /** @var MailerInterface|TransportInterface */ protected $mailer; /** @var Email|callable(string, Record[]): Email */ private $emailTemplate; /** * @psalm-param Email|callable(string, Record[]): Email $email * * @param MailerInterface|TransportInterface $mailer The mailer to use * @param callable|Email $email An email template, the subject/body will be replaced */ public function __construct($mailer, $email, $level = \ForminatorGoogleAddon\Monolog\Logger::ERROR, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function send(string $content, array $records): void { } /** * Gets the formatter for the Swift_Message subject. * * @param string|null $format The format of the subject */ protected function getSubjectFormatter(?string $format): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } /** * Creates instance of Email to be sent * * @param string $content formatted email body to be sent * @param array $records Log records that formed the content * * @phpstan-param Record[] $records */ protected function buildMessage(string $content, array $records): \ForminatorGoogleAddon\Symfony\Component\Mime\Email { } } /** * Logs to syslog service. * * usage example: * * $log = new Logger('application'); * $syslog = new SyslogHandler('myfacility', 'local6'); * $formatter = new LineFormatter("%channel%.%level_name%: %message% %extra%"); * $syslog->setFormatter($formatter); * $log->pushHandler($syslog); * * @author Sven Paulus */ class SyslogHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractSyslogHandler { /** @var string */ protected $ident; /** @var int */ protected $logopts; /** * @param string $ident * @param string|int $facility Either one of the names of the keys in $this->facilities, or a LOG_* facility constant * @param int $logopts Option flags for the openlog() call, defaults to LOG_PID */ public function __construct(string $ident, $facility = \LOG_USER, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true, int $logopts = \LOG_PID) { } /** * {@inheritDoc} */ public function close(): void { } /** * {@inheritDoc} */ protected function write(array $record): void { } } } namespace ForminatorGoogleAddon\Monolog\Handler\SyslogUdp { class UdpSocket { protected const DATAGRAM_MAX_LENGTH = 65023; /** @var string */ protected $ip; /** @var int */ protected $port; /** @var resource|Socket|null */ protected $socket = null; public function __construct(string $ip, int $port = 514) { } /** * @param string $line * @param string $header * @return void */ public function write($line, $header = "") { } public function close(): void { } /** * @return resource|Socket */ protected function getSocket() { } protected function send(string $chunk): void { } protected function assembleMessage(string $line, string $header): string { } } } namespace ForminatorGoogleAddon\Monolog\Handler { /** * A Handler for logging to a remote syslogd server. * * @author Jesper Skovgaard Nielsen * @author Dominik Kukacka */ class SyslogUdpHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractSyslogHandler { const RFC3164 = 0; const RFC5424 = 1; const RFC5424e = 2; /** @var array */ private $dateFormats = array(self::RFC3164 => 'M d H:i:s', self::RFC5424 => \DateTime::RFC3339, self::RFC5424e => \DateTime::RFC3339_EXTENDED); /** @var UdpSocket */ protected $socket; /** @var string */ protected $ident; /** @var self::RFC* */ protected $rfc; /** * @param string $host Either IP/hostname or a path to a unix socket (port must be 0 then) * @param int $port Port number, or 0 if $host is a unix socket * @param string|int $facility Either one of the names of the keys in $this->facilities, or a LOG_* facility constant * @param bool $bubble Whether the messages that are handled can bubble up the stack or not * @param string $ident Program name or tag for each log message. * @param int $rfc RFC to format the message for. * @throws MissingExtensionException * * @phpstan-param self::RFC* $rfc */ public function __construct(string $host, int $port = 514, $facility = \LOG_USER, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true, string $ident = 'php', int $rfc = self::RFC5424) { } protected function write(array $record): void { } public function close(): void { } /** * @param string|string[] $message * @return string[] */ private function splitMessageIntoLines($message): array { } /** * Make common syslog header (see rfc5424 or rfc3164) */ protected function makeCommonSyslogHeader(int $severity, \DateTimeInterface $datetime): string { } /** * Inject your own socket, mainly used for testing */ public function setSocket(\ForminatorGoogleAddon\Monolog\Handler\SyslogUdp\UdpSocket $socket): self { } } /** * Handler send logs to Telegram using Telegram Bot API. * * How to use: * 1) Create telegram bot with https://telegram.me/BotFather * 2) Create a telegram channel where logs will be recorded. * 3) Add created bot from step 1 to the created channel from step 2. * * Use telegram bot API key from step 1 and channel name with '@' prefix from step 2 to create instance of TelegramBotHandler * * @link https://core.telegram.org/bots/api * * @author Mazur Alexandr * * @phpstan-import-type Record from \Monolog\Logger */ class TelegramBotHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { private const BOT_API = 'https://api.telegram.org/bot'; /** * The available values of parseMode according to the Telegram api documentation */ private const AVAILABLE_PARSE_MODES = ['HTML', 'MarkdownV2', 'Markdown']; /** * The maximum number of characters allowed in a message according to the Telegram api documentation */ private const MAX_MESSAGE_LENGTH = 4096; /** * Telegram bot access token provided by BotFather. * Create telegram bot with https://telegram.me/BotFather and use access token from it. * @var string */ private $apiKey; /** * Telegram channel name. * Since to start with '@' symbol as prefix. * @var string */ private $channel; /** * The kind of formatting that is used for the message. * See available options at https://core.telegram.org/bots/api#formatting-options * or in AVAILABLE_PARSE_MODES * @var ?string */ private $parseMode; /** * Disables link previews for links in the message. * @var ?bool */ private $disableWebPagePreview; /** * Sends the message silently. Users will receive a notification with no sound. * @var ?bool */ private $disableNotification; /** * True - split a message longer than MAX_MESSAGE_LENGTH into parts and send in multiple messages. * False - truncates a message that is too long. * @var bool */ private $splitLongMessages; /** * Adds 1-second delay between sending a split message (according to Telegram API to avoid 429 Too Many Requests). * @var bool */ private $delayBetweenMessages; /** * @param string $apiKey Telegram bot access token provided by BotFather * @param string $channel Telegram channel name * @param bool $splitLongMessages Split a message longer than MAX_MESSAGE_LENGTH into parts and send in multiple messages * @param bool $delayBetweenMessages Adds delay between sending a split message according to Telegram API * @throws MissingExtensionException */ public function __construct(string $apiKey, string $channel, $level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true, ?string $parseMode = null, ?bool $disableWebPagePreview = null, ?bool $disableNotification = null, bool $splitLongMessages = \false, bool $delayBetweenMessages = \false) { } public function setParseMode(?string $parseMode = null): self { } public function disableWebPagePreview(?bool $disableWebPagePreview = null): self { } public function disableNotification(?bool $disableNotification = null): self { } /** * True - split a message longer than MAX_MESSAGE_LENGTH into parts and send in multiple messages. * False - truncates a message that is too long. * @param bool $splitLongMessages * @return $this */ public function splitLongMessages(bool $splitLongMessages = \false): self { } /** * Adds 1-second delay between sending a split message (according to Telegram API to avoid 429 Too Many Requests). * @param bool $delayBetweenMessages * @return $this */ public function delayBetweenMessages(bool $delayBetweenMessages = \false): self { } /** * {@inheritDoc} */ public function handleBatch(array $records): void { } /** * @inheritDoc */ protected function write(array $record): void { } /** * Send request to @link https://api.telegram.org/bot on SendMessage action. * @param string $message */ protected function send(string $message): void { } protected function sendCurl(string $message): void { } /** * Handle a message that is too long: truncates or splits into several * @param string $message * @return string[] */ private function handleMessageLength(string $message): array { } } /** * Used for testing purposes. * * It records all records and gives you access to them for verification. * * @author Jordi Boggiano * * @method bool hasEmergency($record) * @method bool hasAlert($record) * @method bool hasCritical($record) * @method bool hasError($record) * @method bool hasWarning($record) * @method bool hasNotice($record) * @method bool hasInfo($record) * @method bool hasDebug($record) * * @method bool hasEmergencyRecords() * @method bool hasAlertRecords() * @method bool hasCriticalRecords() * @method bool hasErrorRecords() * @method bool hasWarningRecords() * @method bool hasNoticeRecords() * @method bool hasInfoRecords() * @method bool hasDebugRecords() * * @method bool hasEmergencyThatContains($message) * @method bool hasAlertThatContains($message) * @method bool hasCriticalThatContains($message) * @method bool hasErrorThatContains($message) * @method bool hasWarningThatContains($message) * @method bool hasNoticeThatContains($message) * @method bool hasInfoThatContains($message) * @method bool hasDebugThatContains($message) * * @method bool hasEmergencyThatMatches($message) * @method bool hasAlertThatMatches($message) * @method bool hasCriticalThatMatches($message) * @method bool hasErrorThatMatches($message) * @method bool hasWarningThatMatches($message) * @method bool hasNoticeThatMatches($message) * @method bool hasInfoThatMatches($message) * @method bool hasDebugThatMatches($message) * * @method bool hasEmergencyThatPasses($message) * @method bool hasAlertThatPasses($message) * @method bool hasCriticalThatPasses($message) * @method bool hasErrorThatPasses($message) * @method bool hasWarningThatPasses($message) * @method bool hasNoticeThatPasses($message) * @method bool hasInfoThatPasses($message) * @method bool hasDebugThatPasses($message) * * @phpstan-import-type Record from \Monolog\Logger * @phpstan-import-type Level from \Monolog\Logger * @phpstan-import-type LevelName from \Monolog\Logger */ class TestHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** @var Record[] */ protected $records = []; /** @var array */ protected $recordsByLevel = []; /** @var bool */ private $skipReset = \false; /** * @return array * * @phpstan-return Record[] */ public function getRecords() { } /** * @return void */ public function clear() { } /** * @return void */ public function reset() { } /** * @return void */ public function setSkipReset(bool $skipReset) { } /** * @param string|int $level Logging level value or name * * @phpstan-param Level|LevelName|LogLevel::* $level */ public function hasRecords($level): bool { } /** * @param string|array $record Either a message string or an array containing message and optionally context keys that will be checked against all records * @param string|int $level Logging level value or name * * @phpstan-param array{message: string, context?: mixed[]}|string $record * @phpstan-param Level|LevelName|LogLevel::* $level */ public function hasRecord($record, $level): bool { } /** * @param string|int $level Logging level value or name * * @phpstan-param Level|LevelName|LogLevel::* $level */ public function hasRecordThatContains(string $message, $level): bool { } /** * @param string|int $level Logging level value or name * * @phpstan-param Level|LevelName|LogLevel::* $level */ public function hasRecordThatMatches(string $regex, $level): bool { } /** * @param string|int $level Logging level value or name * @return bool * * @psalm-param callable(Record, int): mixed $predicate * @phpstan-param Level|LevelName|LogLevel::* $level */ public function hasRecordThatPasses(callable $predicate, $level) { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * @param string $method * @param mixed[] $args * @return bool */ public function __call($method, $args) { } } /** * Forwards records to multiple handlers suppressing failures of each handler * and continuing through to give every handler a chance to succeed. * * @author Craig D'Amelio * * @phpstan-import-type Record from \Monolog\Logger */ class WhatFailureGroupHandler extends \ForminatorGoogleAddon\Monolog\Handler\GroupHandler { /** * {@inheritDoc} */ public function handle(array $record): bool { } /** * {@inheritDoc} */ public function handleBatch(array $records): void { } /** * {@inheritDoc} */ public function close(): void { } } /** * Handler sending logs to Zend Monitor * * @author Christian Bergau * @author Jason Davis * * @phpstan-import-type FormattedRecord from AbstractProcessingHandler */ class ZendMonitorHandler extends \ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler { /** * Monolog level / ZendMonitor Custom Event priority map * * @var array */ protected $levelMap = []; /** * @throws MissingExtensionException */ public function __construct($level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, bool $bubble = \true) { } /** * {@inheritDoc} */ protected function write(array $record): void { } /** * Write to Zend Monitor Events * @param string $type Text displayed in "Class Name (custom)" field * @param string $message Text displayed in "Error String" * @param array $formatted Displayed in Custom Variables tab * @param int $severity Set the event severity level (-1,0,1) * * @phpstan-param FormattedRecord $formatted */ protected function writeZendMonitorCustomEvent(string $type, string $message, array $formatted, int $severity): void { } /** * {@inheritDoc} */ public function getDefaultFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } /** * @return array */ public function getLevelMap(): array { } } } namespace ForminatorGoogleAddon\Monolog { /** * Monolog log record interface for forward compatibility with Monolog 3.0 * * This is just present in Monolog 2.4+ to allow interoperable code to be written against * both versions by type-hinting arguments as `array|\Monolog\LogRecord $record` * * Do not rely on this interface for other purposes, and do not implement it. * * @author Jordi Boggiano * @template-extends \ArrayAccess<'message'|'level'|'context'|'level_name'|'channel'|'datetime'|'extra'|'formatted', mixed> * @phpstan-import-type Record from Logger */ interface LogRecord extends \ArrayAccess { /** * @phpstan-return Record */ public function toArray(): array; } } namespace ForminatorGoogleAddon\Psr\Log { /** * Describes a logger instance. * * The message MUST be a string or object implementing __toString(). * * The message MAY contain placeholders in the form: {foo} where foo * will be replaced by the context data in key "foo". * * The context array can contain arbitrary data. The only assumption that * can be made by implementors is that if an Exception instance is given * to produce a stack trace, it MUST be in a key named "exception". * * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md * for the full interface specification. */ interface LoggerInterface { /** * System is unusable. * * @param string $message * @param mixed[] $context * * @return void */ public function emergency($message, array $context = array()); /** * Action must be taken immediately. * * Example: Entire website down, database unavailable, etc. This should * trigger the SMS alerts and wake you up. * * @param string $message * @param mixed[] $context * * @return void */ public function alert($message, array $context = array()); /** * Critical conditions. * * Example: Application component unavailable, unexpected exception. * * @param string $message * @param mixed[] $context * * @return void */ public function critical($message, array $context = array()); /** * Runtime errors that do not require immediate action but should typically * be logged and monitored. * * @param string $message * @param mixed[] $context * * @return void */ public function error($message, array $context = array()); /** * Exceptional occurrences that are not errors. * * Example: Use of deprecated APIs, poor use of an API, undesirable things * that are not necessarily wrong. * * @param string $message * @param mixed[] $context * * @return void */ public function warning($message, array $context = array()); /** * Normal but significant events. * * @param string $message * @param mixed[] $context * * @return void */ public function notice($message, array $context = array()); /** * Interesting events. * * Example: User logs in, SQL logs. * * @param string $message * @param mixed[] $context * * @return void */ public function info($message, array $context = array()); /** * Detailed debug information. * * @param string $message * @param mixed[] $context * * @return void */ public function debug($message, array $context = array()); /** * Logs with an arbitrary level. * * @param mixed $level * @param string $message * @param mixed[] $context * * @return void * * @throws \Psr\Log\InvalidArgumentException */ public function log($level, $message, array $context = array()); } } namespace ForminatorGoogleAddon\Monolog { /** * Monolog log channel * * It contains a stack of Handlers and a stack of Processors, * and uses them to store records that are added to it. * * @author Jordi Boggiano * * @phpstan-type Level Logger::DEBUG|Logger::INFO|Logger::NOTICE|Logger::WARNING|Logger::ERROR|Logger::CRITICAL|Logger::ALERT|Logger::EMERGENCY * @phpstan-type LevelName 'DEBUG'|'INFO'|'NOTICE'|'WARNING'|'ERROR'|'CRITICAL'|'ALERT'|'EMERGENCY' * @phpstan-type Record array{message: string, context: mixed[], level: Level, level_name: LevelName, channel: string, datetime: \DateTimeImmutable, extra: mixed[]} */ class Logger implements \ForminatorGoogleAddon\Psr\Log\LoggerInterface, \ForminatorGoogleAddon\Monolog\ResettableInterface { /** * Detailed debug information */ public const DEBUG = 100; /** * Interesting events * * Examples: User logs in, SQL logs. */ public const INFO = 200; /** * Uncommon events */ public const NOTICE = 250; /** * Exceptional occurrences that are not errors * * Examples: Use of deprecated APIs, poor use of an API, * undesirable things that are not necessarily wrong. */ public const WARNING = 300; /** * Runtime errors */ public const ERROR = 400; /** * Critical conditions * * Example: Application component unavailable, unexpected exception. */ public const CRITICAL = 500; /** * Action must be taken immediately * * Example: Entire website down, database unavailable, etc. * This should trigger the SMS alerts and wake you up. */ public const ALERT = 550; /** * Urgent alert. */ public const EMERGENCY = 600; /** * Monolog API version * * This is only bumped when API breaks are done and should * follow the major version of the library * * @var int */ public const API = 2; /** * This is a static variable and not a constant to serve as an extension point for custom levels * * @var array $levels Logging levels with the levels as key * * @phpstan-var array $levels Logging levels with the levels as key */ protected static $levels = [self::DEBUG => 'DEBUG', self::INFO => 'INFO', self::NOTICE => 'NOTICE', self::WARNING => 'WARNING', self::ERROR => 'ERROR', self::CRITICAL => 'CRITICAL', self::ALERT => 'ALERT', self::EMERGENCY => 'EMERGENCY']; /** * Mapping between levels numbers defined in RFC 5424 and Monolog ones * * @phpstan-var array $rfc_5424_levels */ private const RFC_5424_LEVELS = [7 => self::DEBUG, 6 => self::INFO, 5 => self::NOTICE, 4 => self::WARNING, 3 => self::ERROR, 2 => self::CRITICAL, 1 => self::ALERT, 0 => self::EMERGENCY]; /** * @var string */ protected $name; /** * The handler stack * * @var HandlerInterface[] */ protected $handlers; /** * Processors that will process all log records * * To process records of a single handler instead, add the processor on that specific handler * * @var callable[] */ protected $processors; /** * @var bool */ protected $microsecondTimestamps = \true; /** * @var DateTimeZone */ protected $timezone; /** * @var callable|null */ protected $exceptionHandler; /** * @var int Keeps track of depth to prevent infinite logging loops */ private $logDepth = 0; /** * @var \WeakMap<\Fiber, int>|null Keeps track of depth inside fibers to prevent infinite logging loops */ private $fiberLogDepth; /** * @var bool Whether to detect infinite logging loops * * This can be disabled via {@see useLoggingLoopDetection} if you have async handlers that do not play well with this */ private $detectCycles = \true; /** * @psalm-param array $processors * * @param string $name The logging channel, a simple descriptive name that is attached to all log records * @param HandlerInterface[] $handlers Optional stack of handlers, the first one in the array is called first, etc. * @param callable[] $processors Optional array of processors * @param DateTimeZone|null $timezone Optional timezone, if not provided date_default_timezone_get() will be used */ public function __construct(string $name, array $handlers = [], array $processors = [], ?\DateTimeZone $timezone = null) { } public function getName(): string { } /** * Return a new cloned instance with the name changed */ public function withName(string $name): self { } /** * Pushes a handler on to the stack. */ public function pushHandler(\ForminatorGoogleAddon\Monolog\Handler\HandlerInterface $handler): self { } /** * Pops a handler from the stack * * @throws \LogicException If empty handler stack */ public function popHandler(): \ForminatorGoogleAddon\Monolog\Handler\HandlerInterface { } /** * Set handlers, replacing all existing ones. * * If a map is passed, keys will be ignored. * * @param HandlerInterface[] $handlers */ public function setHandlers(array $handlers): self { } /** * @return HandlerInterface[] */ public function getHandlers(): array { } /** * Adds a processor on to the stack. */ public function pushProcessor(callable $callback): self { } /** * Removes the processor on top of the stack and returns it. * * @throws \LogicException If empty processor stack * @return callable */ public function popProcessor(): callable { } /** * @return callable[] */ public function getProcessors(): array { } /** * Control the use of microsecond resolution timestamps in the 'datetime' * member of new records. * * As of PHP7.1 microseconds are always included by the engine, so * there is no performance penalty and Monolog 2 enabled microseconds * by default. This function lets you disable them though in case you want * to suppress microseconds from the output. * * @param bool $micro True to use microtime() to create timestamps */ public function useMicrosecondTimestamps(bool $micro): self { } public function useLoggingLoopDetection(bool $detectCycles): self { } /** * Adds a log record. * * @param int $level The logging level (a Monolog or RFC 5424 level) * @param string $message The log message * @param mixed[] $context The log context * @param DateTimeImmutable $datetime Optional log date to log into the past or future * @return bool Whether the record has been processed * * @phpstan-param Level $level */ public function addRecord(int $level, string $message, array $context = [], ?\ForminatorGoogleAddon\Monolog\DateTimeImmutable $datetime = null): bool { } /** * Ends a log cycle and frees all resources used by handlers. * * Closing a Handler means flushing all buffers and freeing any open resources/handles. * Handlers that have been closed should be able to accept log records again and re-open * themselves on demand, but this may not always be possible depending on implementation. * * This is useful at the end of a request and will be called automatically on every handler * when they get destructed. */ public function close(): void { } /** * Ends a log cycle and resets all handlers and processors to their initial state. * * Resetting a Handler or a Processor means flushing/cleaning all buffers, resetting internal * state, and getting it back to a state in which it can receive log records again. * * This is useful in case you want to avoid logs leaking between two requests or jobs when you * have a long running process like a worker or an application server serving multiple requests * in one process. */ public function reset(): void { } /** * Gets all supported logging levels. * * @return array Assoc array with human-readable level names => level codes. * @phpstan-return array */ public static function getLevels(): array { } /** * Gets the name of the logging level. * * @throws \Psr\Log\InvalidArgumentException If level is not defined * * @phpstan-param Level $level * @phpstan-return LevelName */ public static function getLevelName(int $level): string { } /** * Converts PSR-3 levels to Monolog ones if necessary * * @param string|int $level Level number (monolog) or name (PSR-3) * @throws \Psr\Log\InvalidArgumentException If level is not defined * * @phpstan-param Level|LevelName|LogLevel::* $level * @phpstan-return Level */ public static function toMonologLevel($level): int { } /** * Checks whether the Logger has a handler that listens on the given level * * @phpstan-param Level $level */ public function isHandling(int $level): bool { } /** * Set a custom exception handler that will be called if adding a new record fails * * The callable will receive an exception object and the record that failed to be logged */ public function setExceptionHandler(?callable $callback): self { } public function getExceptionHandler(): ?callable { } /** * Adds a log record at an arbitrary level. * * This method allows for compatibility with common interfaces. * * @param mixed $level The log level (a Monolog, PSR-3 or RFC 5424 level) * @param string|Stringable $message The log message * @param mixed[] $context The log context * * @phpstan-param Level|LevelName|LogLevel::* $level */ public function log($level, $message, array $context = []): void { } /** * Adds a log record at the DEBUG level. * * This method allows for compatibility with common interfaces. * * @param string|Stringable $message The log message * @param mixed[] $context The log context */ public function debug($message, array $context = []): void { } /** * Adds a log record at the INFO level. * * This method allows for compatibility with common interfaces. * * @param string|Stringable $message The log message * @param mixed[] $context The log context */ public function info($message, array $context = []): void { } /** * Adds a log record at the NOTICE level. * * This method allows for compatibility with common interfaces. * * @param string|Stringable $message The log message * @param mixed[] $context The log context */ public function notice($message, array $context = []): void { } /** * Adds a log record at the WARNING level. * * This method allows for compatibility with common interfaces. * * @param string|Stringable $message The log message * @param mixed[] $context The log context */ public function warning($message, array $context = []): void { } /** * Adds a log record at the ERROR level. * * This method allows for compatibility with common interfaces. * * @param string|Stringable $message The log message * @param mixed[] $context The log context */ public function error($message, array $context = []): void { } /** * Adds a log record at the CRITICAL level. * * This method allows for compatibility with common interfaces. * * @param string|Stringable $message The log message * @param mixed[] $context The log context */ public function critical($message, array $context = []): void { } /** * Adds a log record at the ALERT level. * * This method allows for compatibility with common interfaces. * * @param string|Stringable $message The log message * @param mixed[] $context The log context */ public function alert($message, array $context = []): void { } /** * Adds a log record at the EMERGENCY level. * * This method allows for compatibility with common interfaces. * * @param string|Stringable $message The log message * @param mixed[] $context The log context */ public function emergency($message, array $context = []): void { } /** * Sets the timezone to be used for the timestamp of log records. */ public function setTimezone(\DateTimeZone $tz): self { } /** * Returns the timezone to be used for the timestamp of log records. */ public function getTimezone(): \DateTimeZone { } /** * Delegates exception management to the custom exception handler, * or throws the exception if no custom handler is set. * * @param array $record * @phpstan-param Record $record */ protected function handleException(\Throwable $e, array $record): void { } /** * @return array */ public function __serialize(): array { } /** * @param array $data */ public function __unserialize(array $data): void { } } } namespace ForminatorGoogleAddon\Monolog\Processor { /** * An optional interface to allow labelling Monolog processors. * * @author Nicolas Grekas * * @phpstan-import-type Record from \Monolog\Logger */ interface ProcessorInterface { /** * @return array The processed record * * @phpstan-param Record $record * @phpstan-return Record */ public function __invoke(array $record); } /** * Injects Git branch and Git commit SHA in all records * * @author Nick Otter * @author Jordi Boggiano * * @phpstan-import-type Level from \Monolog\Logger * @phpstan-import-type LevelName from \Monolog\Logger */ class GitProcessor implements \ForminatorGoogleAddon\Monolog\Processor\ProcessorInterface { /** @var int */ private $level; /** @var array{branch: string, commit: string}|array|null */ private static $cache = null; /** * @param string|int $level The minimum logging level at which this Processor will be triggered * * @phpstan-param Level|LevelName|LogLevel::* $level */ public function __construct($level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG) { } /** * {@inheritDoc} */ public function __invoke(array $record): array { } /** * @return array{branch: string, commit: string}|array */ private static function getGitInfo(): array { } } /** * Injects value of gethostname in all records */ class HostnameProcessor implements \ForminatorGoogleAddon\Monolog\Processor\ProcessorInterface { /** @var string */ private static $host; public function __construct() { } /** * {@inheritDoc} */ public function __invoke(array $record): array { } } /** * Injects line/file:class/function where the log message came from * * Warning: This only works if the handler processes the logs directly. * If you put the processor on a handler that is behind a FingersCrossedHandler * for example, the processor will only be called once the trigger level is reached, * and all the log records will have the same file/line/.. data from the call that * triggered the FingersCrossedHandler. * * @author Jordi Boggiano * * @phpstan-import-type Level from \Monolog\Logger * @phpstan-import-type LevelName from \Monolog\Logger */ class IntrospectionProcessor implements \ForminatorGoogleAddon\Monolog\Processor\ProcessorInterface { /** @var int */ private $level; /** @var string[] */ private $skipClassesPartials; /** @var int */ private $skipStackFramesCount; /** @var string[] */ private $skipFunctions = ['call_user_func', 'call_user_func_array']; /** * @param string|int $level The minimum logging level at which this Processor will be triggered * @param string[] $skipClassesPartials * * @phpstan-param Level|LevelName|LogLevel::* $level */ public function __construct($level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG, array $skipClassesPartials = [], int $skipStackFramesCount = 0) { } /** * {@inheritDoc} */ public function __invoke(array $record): array { } /** * @param array[] $trace */ private function isTraceClassOrSkippedFunction(array $trace, int $index): bool { } } /** * Some methods that are common for all memory processors * * @author Rob Jensen */ abstract class MemoryProcessor implements \ForminatorGoogleAddon\Monolog\Processor\ProcessorInterface { /** * @var bool If true, get the real size of memory allocated from system. Else, only the memory used by emalloc() is reported. */ protected $realUsage; /** * @var bool If true, then format memory size to human readable string (MB, KB, B depending on size) */ protected $useFormatting; /** * @param bool $realUsage Set this to true to get the real size of memory allocated from system. * @param bool $useFormatting If true, then format memory size to human readable string (MB, KB, B depending on size) */ public function __construct(bool $realUsage = \true, bool $useFormatting = \true) { } /** * Formats bytes into a human readable string if $this->useFormatting is true, otherwise return $bytes as is * * @param int $bytes * @return string|int Formatted string if $this->useFormatting is true, otherwise return $bytes as int */ protected function formatBytes(int $bytes) { } } /** * Injects memory_get_peak_usage in all records * * @see Monolog\Processor\MemoryProcessor::__construct() for options * @author Rob Jensen */ class MemoryPeakUsageProcessor extends \ForminatorGoogleAddon\Monolog\Processor\MemoryProcessor { /** * {@inheritDoc} */ public function __invoke(array $record): array { } } /** * Injects memory_get_usage in all records * * @see Monolog\Processor\MemoryProcessor::__construct() for options * @author Rob Jensen */ class MemoryUsageProcessor extends \ForminatorGoogleAddon\Monolog\Processor\MemoryProcessor { /** * {@inheritDoc} */ public function __invoke(array $record): array { } } /** * Injects Hg branch and Hg revision number in all records * * @author Jonathan A. Schweder * * @phpstan-import-type LevelName from \Monolog\Logger * @phpstan-import-type Level from \Monolog\Logger */ class MercurialProcessor implements \ForminatorGoogleAddon\Monolog\Processor\ProcessorInterface { /** @var Level */ private $level; /** @var array{branch: string, revision: string}|array|null */ private static $cache = null; /** * @param int|string $level The minimum logging level at which this Processor will be triggered * * @phpstan-param Level|LevelName|LogLevel::* $level */ public function __construct($level = \ForminatorGoogleAddon\Monolog\Logger::DEBUG) { } /** * {@inheritDoc} */ public function __invoke(array $record): array { } /** * @return array{branch: string, revision: string}|array */ private static function getMercurialInfo(): array { } } /** * Adds value of getmypid into records * * @author Andreas Hörnicke */ class ProcessIdProcessor implements \ForminatorGoogleAddon\Monolog\Processor\ProcessorInterface { /** * {@inheritDoc} */ public function __invoke(array $record): array { } } /** * Processes a record's message according to PSR-3 rules * * It replaces {foo} with the value from $context['foo'] * * @author Jordi Boggiano */ class PsrLogMessageProcessor implements \ForminatorGoogleAddon\Monolog\Processor\ProcessorInterface { public const SIMPLE_DATE = "Y-m-d\\TH:i:s.uP"; /** @var string|null */ private $dateFormat; /** @var bool */ private $removeUsedContextFields; /** * @param string|null $dateFormat The format of the timestamp: one supported by DateTime::format * @param bool $removeUsedContextFields If set to true the fields interpolated into message gets unset */ public function __construct(?string $dateFormat = null, bool $removeUsedContextFields = \false) { } /** * {@inheritDoc} */ public function __invoke(array $record): array { } } /** * Adds a tags array into record * * @author Martijn Riemers */ class TagProcessor implements \ForminatorGoogleAddon\Monolog\Processor\ProcessorInterface { /** @var string[] */ private $tags; /** * @param string[] $tags */ public function __construct(array $tags = []) { } /** * @param string[] $tags */ public function addTags(array $tags = []): self { } /** * @param string[] $tags */ public function setTags(array $tags = []): self { } /** * {@inheritDoc} */ public function __invoke(array $record): array { } } /** * Adds a unique identifier into records * * @author Simon Mönch */ class UidProcessor implements \ForminatorGoogleAddon\Monolog\Processor\ProcessorInterface, \ForminatorGoogleAddon\Monolog\ResettableInterface { /** @var string */ private $uid; public function __construct(int $length = 7) { } /** * {@inheritDoc} */ public function __invoke(array $record): array { } public function getUid(): string { } public function reset() { } private function generateUid(int $length): string { } } /** * Injects url/method and remote IP of the current web request in all records * * @author Jordi Boggiano */ class WebProcessor implements \ForminatorGoogleAddon\Monolog\Processor\ProcessorInterface { /** * @var array|\ArrayAccess */ protected $serverData; /** * Default fields * * Array is structured as [key in record.extra => key in $serverData] * * @var array */ protected $extraFields = ['url' => 'REQUEST_URI', 'ip' => 'REMOTE_ADDR', 'http_method' => 'REQUEST_METHOD', 'server' => 'SERVER_NAME', 'referrer' => 'HTTP_REFERER', 'user_agent' => 'HTTP_USER_AGENT']; /** * @param array|\ArrayAccess|null $serverData Array or object w/ ArrayAccess that provides access to the $_SERVER data * @param array|array|null $extraFields Field names and the related key inside $serverData to be added (or just a list of field names to use the default configured $serverData mapping). If not provided it defaults to: [url, ip, http_method, server, referrer] + unique_id if present in server data */ public function __construct($serverData = null, ?array $extraFields = null) { } /** * {@inheritDoc} */ public function __invoke(array $record): array { } public function addExtraField(string $extraName, string $serverName): self { } /** * @param mixed[] $extra * @return mixed[] */ private function appendExtraFields(array $extra): array { } } } namespace ForminatorGoogleAddon\Monolog { /** * Monolog log registry * * Allows to get `Logger` instances in the global scope * via static method calls on this class. * * * $application = new Monolog\Logger('application'); * $api = new Monolog\Logger('api'); * * Monolog\Registry::addLogger($application); * Monolog\Registry::addLogger($api); * * function testLogger() * { * Monolog\Registry::api()->error('Sent to $api Logger instance'); * Monolog\Registry::application()->error('Sent to $application Logger instance'); * } * * * @author Tomas Tatarko */ class Registry { /** * List of all loggers in the registry (by named indexes) * * @var Logger[] */ private static $loggers = []; /** * Adds new logging channel to the registry * * @param Logger $logger Instance of the logging channel * @param string|null $name Name of the logging channel ($logger->getName() by default) * @param bool $overwrite Overwrite instance in the registry if the given name already exists? * @throws \InvalidArgumentException If $overwrite set to false and named Logger instance already exists * @return void */ public static function addLogger(\ForminatorGoogleAddon\Monolog\Logger $logger, ?string $name = null, bool $overwrite = \false) { } /** * Checks if such logging channel exists by name or instance * * @param string|Logger $logger Name or logger instance */ public static function hasLogger($logger): bool { } /** * Removes instance from registry by name or instance * * @param string|Logger $logger Name or logger instance */ public static function removeLogger($logger): void { } /** * Clears the registry */ public static function clear(): void { } /** * Gets Logger instance from the registry * * @param string $name Name of the requested Logger instance * @throws \InvalidArgumentException If named Logger instance is not in the registry */ public static function getInstance($name): \ForminatorGoogleAddon\Monolog\Logger { } /** * Gets Logger instance from the registry via static method call * * @param string $name Name of the requested Logger instance * @param mixed[] $arguments Arguments passed to static method call * @throws \InvalidArgumentException If named Logger instance is not in the registry * @return Logger Requested instance of Logger */ public static function __callStatic($name, $arguments) { } } /** * Monolog POSIX signal handler * * @author Robert Gust-Bardon * * @phpstan-import-type Level from \Monolog\Logger * @phpstan-import-type LevelName from \Monolog\Logger */ class SignalHandler { /** @var LoggerInterface */ private $logger; /** @var array SIG_DFL, SIG_IGN or previous callable */ private $previousSignalHandler = []; /** @var array */ private $signalLevelMap = []; /** @var array */ private $signalRestartSyscalls = []; public function __construct(\ForminatorGoogleAddon\Psr\Log\LoggerInterface $logger) { } /** * @param int|string $level Level or level name * @param bool $callPrevious * @param bool $restartSyscalls * @param bool|null $async * @return $this * * @phpstan-param Level|LevelName|LogLevel::* $level */ public function registerSignalHandler(int $signo, $level = \ForminatorGoogleAddon\Psr\Log\LogLevel::CRITICAL, bool $callPrevious = \true, bool $restartSyscalls = \true, ?bool $async = \true): self { } /** * @param mixed $siginfo */ public function handleSignal(int $signo, $siginfo = null): void { } } } namespace ForminatorGoogleAddon\Monolog\Test { /** * Lets you easily generate log records and a dummy formatter for testing purposes * * @author Jordi Boggiano * * @phpstan-import-type Record from \Monolog\Logger * @phpstan-import-type Level from \Monolog\Logger * * @internal feel free to reuse this to test your own handlers, this is marked internal to avoid issues with PHPStorm https://github.com/Seldaek/monolog/issues/1677 */ class TestCase extends \ForminatorGoogleAddon\PHPUnit\Framework\TestCase { public function tearDown(): void { } /** * @param mixed[] $context * * @return array Record * * @phpstan-param Level $level * @phpstan-return Record */ protected function getRecord(int $level = \ForminatorGoogleAddon\Monolog\Logger::WARNING, string $message = 'test', array $context = []): array { } /** * @phpstan-return Record[] */ protected function getMultipleRecords(): array { } protected function getIdentityFormatter(): \ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface { } } } namespace ForminatorGoogleAddon\Monolog { final class Utils { const DEFAULT_JSON_FLAGS = \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE | \JSON_PRESERVE_ZERO_FRACTION | \JSON_INVALID_UTF8_SUBSTITUTE | \JSON_PARTIAL_OUTPUT_ON_ERROR; public static function getClass(object $object): string { } public static function substr(string $string, int $start, ?int $length = null): string { } /** * Makes sure if a relative path is passed in it is turned into an absolute path * * @param string $streamUrl stream URL or path without protocol */ public static function canonicalizePath(string $streamUrl): string { } /** * Return the JSON representation of a value * * @param mixed $data * @param int $encodeFlags flags to pass to json encode, defaults to DEFAULT_JSON_FLAGS * @param bool $ignoreErrors whether to ignore encoding errors or to throw on error, when ignored and the encoding fails, "null" is returned which is valid json for null * @throws \RuntimeException if encoding fails and errors are not ignored * @return string when errors are ignored and the encoding fails, "null" is returned which is valid json for null */ public static function jsonEncode($data, ?int $encodeFlags = null, bool $ignoreErrors = \false): string { } /** * Handle a json_encode failure. * * If the failure is due to invalid string encoding, try to clean the * input and encode again. If the second encoding attempt fails, the * initial error is not encoding related or the input can't be cleaned then * raise a descriptive exception. * * @param int $code return code of json_last_error function * @param mixed $data data that was meant to be encoded * @param int $encodeFlags flags to pass to json encode, defaults to JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRESERVE_ZERO_FRACTION * @throws \RuntimeException if failure can't be corrected * @return string JSON encoded data after error correction */ public static function handleJsonError(int $code, $data, ?int $encodeFlags = null): string { } /** * @internal */ public static function pcreLastErrorMessage(int $code): string { } /** * Throws an exception according to a given code with a customized message * * @param int $code return code of json_last_error function * @param mixed $data data that was meant to be encoded * @throws \RuntimeException * * @return never */ private static function throwEncodeError(int $code, $data): void { } /** * Detect invalid UTF-8 string characters and convert to valid UTF-8. * * Valid UTF-8 input will be left unmodified, but strings containing * invalid UTF-8 codepoints will be reencoded as UTF-8 with an assumed * original encoding of ISO-8859-15. This conversion may result in * incorrect output if the actual encoding was not ISO-8859-15, but it * will be clean UTF-8 output and will not rely on expensive and fragile * detection algorithms. * * Function converts the input in place in the passed variable so that it * can be used as a callback for array_walk_recursive. * * @param mixed $data Input to check and convert if needed, passed by ref */ private static function detectAndCleanUtf8(&$data): void { } /** * Converts a string with a valid 'memory_limit' format, to bytes. * * @param string|false $val * @return int|false Returns an integer representing bytes. Returns FALSE in case of error. */ public static function expandIniShorthandBytes($val) { } /** * @param array $record */ public static function getRecordMessageForException(array $record): string { } } } namespace ForminatorGoogleAddon\ParagonIE\ConstantTime { /** * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) * * 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 * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * Interface EncoderInterface * @package ParagonIE\ConstantTime */ interface EncoderInterface { /** * Convert a binary string into a hexadecimal string without cache-timing * leaks * * @param string $binString (raw binary) * @return string */ public static function encode(string $binString): string; /** * Convert a binary string into a hexadecimal string without cache-timing * leaks * * @param string $encodedString * @param bool $strictPadding Error on invalid padding * @return string (raw binary) */ public static function decode(string $encodedString, bool $strictPadding = \false): string; } /** * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) * * 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 * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * Class Base32 * [A-Z][2-7] * * @package ParagonIE\ConstantTime */ abstract class Base32 implements \ForminatorGoogleAddon\ParagonIE\ConstantTime\EncoderInterface { /** * Decode a Base32-encoded string into raw binary * * @param string $encodedString * @param bool $strictPadding * @return string */ public static function decode( #[\SensitiveParameter] string $encodedString, bool $strictPadding = \false ): string { } /** * Decode an uppercase Base32-encoded string into raw binary * * @param string $src * @param bool $strictPadding * @return string */ public static function decodeUpper( #[\SensitiveParameter] string $src, bool $strictPadding = \false ): string { } /** * Encode into Base32 (RFC 4648) * * @param string $binString * @return string * @throws TypeError */ public static function encode( #[\SensitiveParameter] string $binString ): string { } /** * Encode into Base32 (RFC 4648) * * @param string $src * @return string * @throws TypeError */ public static function encodeUnpadded( #[\SensitiveParameter] string $src ): string { } /** * Encode into uppercase Base32 (RFC 4648) * * @param string $src * @return string * @throws TypeError */ public static function encodeUpper( #[\SensitiveParameter] string $src ): string { } /** * Encode into uppercase Base32 (RFC 4648) * * @param string $src * @return string * @throws TypeError */ public static function encodeUpperUnpadded( #[\SensitiveParameter] string $src ): string { } /** * Uses bitwise operators instead of table-lookups to turn 5-bit integers * into 8-bit integers. * * @param int $src * @return int */ protected static function decode5Bits(int $src): int { } /** * Uses bitwise operators instead of table-lookups to turn 5-bit integers * into 8-bit integers. * * Uppercase variant. * * @param int $src * @return int */ protected static function decode5BitsUpper(int $src): int { } /** * Uses bitwise operators instead of table-lookups to turn 8-bit integers * into 5-bit integers. * * @param int $src * @return string */ protected static function encode5Bits(int $src): string { } /** * Uses bitwise operators instead of table-lookups to turn 8-bit integers * into 5-bit integers. * * Uppercase variant. * * @param int $src * @return string */ protected static function encode5BitsUpper(int $src): string { } /** * @param string $encodedString * @param bool $upper * @return string */ public static function decodeNoPadding( #[\SensitiveParameter] string $encodedString, bool $upper = \false ): string { } /** * Base32 decoding * * @param string $src * @param bool $upper * @param bool $strictPadding * @return string * * @throws TypeError */ protected static function doDecode( #[\SensitiveParameter] string $src, bool $upper = \false, bool $strictPadding = \false ): string { } /** * Base32 Encoding * * @param string $src * @param bool $upper * @param bool $pad * @return string * @throws TypeError */ protected static function doEncode( #[\SensitiveParameter] string $src, bool $upper = \false, $pad = \true ): string { } } /** * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) * * 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 * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * Class Base32Hex * [0-9][A-V] * * @package ParagonIE\ConstantTime */ abstract class Base32Hex extends \ForminatorGoogleAddon\ParagonIE\ConstantTime\Base32 { /** * Uses bitwise operators instead of table-lookups to turn 5-bit integers * into 8-bit integers. * * @param int $src * @return int */ protected static function decode5Bits(int $src): int { } /** * Uses bitwise operators instead of table-lookups to turn 5-bit integers * into 8-bit integers. * * @param int $src * @return int */ protected static function decode5BitsUpper(int $src): int { } /** * Uses bitwise operators instead of table-lookups to turn 8-bit integers * into 5-bit integers. * * @param int $src * @return string */ protected static function encode5Bits(int $src): string { } /** * Uses bitwise operators instead of table-lookups to turn 8-bit integers * into 5-bit integers. * * Uppercase variant. * * @param int $src * @return string */ protected static function encode5BitsUpper(int $src): string { } } /** * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) * * 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 * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * Class Base64 * [A-Z][a-z][0-9]+/ * * @package ParagonIE\ConstantTime */ abstract class Base64 implements \ForminatorGoogleAddon\ParagonIE\ConstantTime\EncoderInterface { /** * Encode into Base64 * * Base64 character set "[A-Z][a-z][0-9]+/" * * @param string $binString * @return string * * @throws TypeError */ public static function encode( #[\SensitiveParameter] string $binString ): string { } /** * Encode into Base64, no = padding * * Base64 character set "[A-Z][a-z][0-9]+/" * * @param string $src * @return string * * @throws TypeError */ public static function encodeUnpadded( #[\SensitiveParameter] string $src ): string { } /** * @param string $src * @param bool $pad Include = padding? * @return string * * @throws TypeError */ protected static function doEncode( #[\SensitiveParameter] string $src, bool $pad = \true ): string { } /** * decode from base64 into binary * * Base64 character set "./[A-Z][a-z][0-9]" * * @param string $encodedString * @param bool $strictPadding * @return string * * @throws RangeException * @throws TypeError */ public static function decode( #[\SensitiveParameter] string $encodedString, bool $strictPadding = \false ): string { } /** * @param string $encodedString * @return string */ public static function decodeNoPadding( #[\SensitiveParameter] string $encodedString ): string { } /** * Uses bitwise operators instead of table-lookups to turn 6-bit integers * into 8-bit integers. * * Base64 character set: * [A-Z] [a-z] [0-9] + / * 0x41-0x5a, 0x61-0x7a, 0x30-0x39, 0x2b, 0x2f * * @param int $src * @return int */ protected static function decode6Bits(int $src): int { } /** * Uses bitwise operators instead of table-lookups to turn 8-bit integers * into 6-bit integers. * * @param int $src * @return string */ protected static function encode6Bits(int $src): string { } } /** * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) * * 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 * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * Class Base64DotSlash * ./[A-Z][a-z][0-9] * * @package ParagonIE\ConstantTime */ abstract class Base64DotSlash extends \ForminatorGoogleAddon\ParagonIE\ConstantTime\Base64 { /** * Uses bitwise operators instead of table-lookups to turn 6-bit integers * into 8-bit integers. * * Base64 character set: * ./ [A-Z] [a-z] [0-9] * 0x2e-0x2f, 0x41-0x5a, 0x61-0x7a, 0x30-0x39 * * @param int $src * @return int */ protected static function decode6Bits(int $src): int { } /** * Uses bitwise operators instead of table-lookups to turn 8-bit integers * into 6-bit integers. * * @param int $src * @return string */ protected static function encode6Bits(int $src): string { } } /** * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) * * 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 * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * Class Base64DotSlashOrdered * ./[0-9][A-Z][a-z] * * @package ParagonIE\ConstantTime */ abstract class Base64DotSlashOrdered extends \ForminatorGoogleAddon\ParagonIE\ConstantTime\Base64 { /** * Uses bitwise operators instead of table-lookups to turn 6-bit integers * into 8-bit integers. * * Base64 character set: * [.-9] [A-Z] [a-z] * 0x2e-0x39, 0x41-0x5a, 0x61-0x7a * * @param int $src * @return int */ protected static function decode6Bits(int $src): int { } /** * Uses bitwise operators instead of table-lookups to turn 8-bit integers * into 6-bit integers. * * @param int $src * @return string */ protected static function encode6Bits(int $src): string { } } /** * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) * * 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 * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * Class Base64UrlSafe * [A-Z][a-z][0-9]\-_ * * @package ParagonIE\ConstantTime */ abstract class Base64UrlSafe extends \ForminatorGoogleAddon\ParagonIE\ConstantTime\Base64 { /** * Uses bitwise operators instead of table-lookups to turn 6-bit integers * into 8-bit integers. * * Base64 character set: * [A-Z] [a-z] [0-9] - _ * 0x41-0x5a, 0x61-0x7a, 0x30-0x39, 0x2d, 0x5f * * @param int $src * @return int */ protected static function decode6Bits(int $src): int { } /** * Uses bitwise operators instead of table-lookups to turn 8-bit integers * into 6-bit integers. * * @param int $src * @return string */ protected static function encode6Bits(int $src): string { } } /** * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) * * 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 * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * Class Binary * * Binary string operators that don't choke on * mbstring.func_overload * * @package ParagonIE\ConstantTime */ abstract class Binary { /** * Safe string length * * @ref mbstring.func_overload * * @param string $str * @return int */ public static function safeStrlen( #[\SensitiveParameter] string $str ): int { } /** * Safe substring * * @ref mbstring.func_overload * * @staticvar boolean $exists * @param string $str * @param int $start * @param ?int $length * @return string * * @throws TypeError */ public static function safeSubstr( #[\SensitiveParameter] string $str, int $start = 0, $length = null ): string { } } /** * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) * * 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 * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * Class Encoding * @package ParagonIE\ConstantTime */ abstract class Encoding { /** * RFC 4648 Base32 encoding * * @param string $str * @return string * @throws TypeError */ public static function base32Encode( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base32 encoding * * @param string $str * @return string * @throws TypeError */ public static function base32EncodeUpper( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base32 decoding * * @param string $str * @return string * @throws TypeError */ public static function base32Decode( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base32 decoding * * @param string $str * @return string * @throws TypeError */ public static function base32DecodeUpper( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base32 encoding * * @param string $str * @return string * @throws TypeError */ public static function base32HexEncode( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base32Hex encoding * * @param string $str * @return string * @throws TypeError */ public static function base32HexEncodeUpper( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base32Hex decoding * * @param string $str * @return string * @throws TypeError */ public static function base32HexDecode( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base32Hex decoding * * @param string $str * @return string * @throws TypeError */ public static function base32HexDecodeUpper( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base64 encoding * * @param string $str * @return string * @throws TypeError */ public static function base64Encode( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base64 decoding * * @param string $str * @return string * @throws TypeError */ public static function base64Decode( #[\SensitiveParameter] string $str ): string { } /** * Encode into Base64 * * Base64 character set "./[A-Z][a-z][0-9]" * @param string $str * @return string * @throws TypeError */ public static function base64EncodeDotSlash( #[\SensitiveParameter] string $str ): string { } /** * Decode from base64 to raw binary * * Base64 character set "./[A-Z][a-z][0-9]" * * @param string $str * @return string * @throws \RangeException * @throws TypeError */ public static function base64DecodeDotSlash( #[\SensitiveParameter] string $str ): string { } /** * Encode into Base64 * * Base64 character set "[.-9][A-Z][a-z]" or "./[0-9][A-Z][a-z]" * @param string $str * @return string * @throws TypeError */ public static function base64EncodeDotSlashOrdered( #[\SensitiveParameter] string $str ): string { } /** * Decode from base64 to raw binary * * Base64 character set "[.-9][A-Z][a-z]" or "./[0-9][A-Z][a-z]" * * @param string $str * @return string * @throws \RangeException * @throws TypeError */ public static function base64DecodeDotSlashOrdered( #[\SensitiveParameter] string $str ): string { } /** * Convert a binary string into a hexadecimal string without cache-timing * leaks * * @param string $bin_string (raw binary) * @return string * @throws TypeError */ public static function hexEncode( #[\SensitiveParameter] string $bin_string ): string { } /** * Convert a hexadecimal string into a binary string without cache-timing * leaks * * @param string $hex_string * @return string (raw binary) * @throws \RangeException */ public static function hexDecode( #[\SensitiveParameter] string $hex_string ): string { } /** * Convert a binary string into a hexadecimal string without cache-timing * leaks * * @param string $bin_string (raw binary) * @return string * @throws TypeError */ public static function hexEncodeUpper( #[\SensitiveParameter] string $bin_string ): string { } /** * Convert a binary string into a hexadecimal string without cache-timing * leaks * * @param string $bin_string (raw binary) * @return string */ public static function hexDecodeUpper( #[\SensitiveParameter] string $bin_string ): string { } } /** * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) * * 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 * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * Class Hex * @package ParagonIE\ConstantTime */ abstract class Hex implements \ForminatorGoogleAddon\ParagonIE\ConstantTime\EncoderInterface { /** * Convert a binary string into a hexadecimal string without cache-timing * leaks * * @param string $binString (raw binary) * @return string * @throws TypeError */ public static function encode( #[\SensitiveParameter] string $binString ): string { } /** * Convert a binary string into a hexadecimal string without cache-timing * leaks, returning uppercase letters (as per RFC 4648) * * @param string $binString (raw binary) * @return string * @throws TypeError */ public static function encodeUpper( #[\SensitiveParameter] string $binString ): string { } /** * Convert a hexadecimal string into a binary string without cache-timing * leaks * * @param string $encodedString * @param bool $strictPadding * @return string (raw binary) * @throws RangeException */ public static function decode( #[\SensitiveParameter] string $encodedString, bool $strictPadding = \false ): string { } } /** * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) * * 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 * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * Class RFC4648 * * This class conforms strictly to the RFC * * @package ParagonIE\ConstantTime */ abstract class RFC4648 { /** * RFC 4648 Base64 encoding * * "foo" -> "Zm9v" * * @param string $str * @return string * * @throws TypeError */ public static function base64Encode( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base64 decoding * * "Zm9v" -> "foo" * * @param string $str * @return string * * @throws TypeError */ public static function base64Decode( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base64 (URL Safe) encoding * * "foo" -> "Zm9v" * * @param string $str * @return string * * @throws TypeError */ public static function base64UrlSafeEncode( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base64 (URL Safe) decoding * * "Zm9v" -> "foo" * * @param string $str * @return string * * @throws TypeError */ public static function base64UrlSafeDecode( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base32 encoding * * "foo" -> "MZXW6===" * * @param string $str * @return string * * @throws TypeError */ public static function base32Encode( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base32 encoding * * "MZXW6===" -> "foo" * * @param string $str * @return string * * @throws TypeError */ public static function base32Decode( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base32-Hex encoding * * "foo" -> "CPNMU===" * * @param string $str * @return string * * @throws TypeError */ public static function base32HexEncode( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base32-Hex decoding * * "CPNMU===" -> "foo" * * @param string $str * @return string * * @throws TypeError */ public static function base32HexDecode( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base16 decoding * * "foo" -> "666F6F" * * @param string $str * @return string * * @throws TypeError */ public static function base16Encode( #[\SensitiveParameter] string $str ): string { } /** * RFC 4648 Base16 decoding * * "666F6F" -> "foo" * * @param string $str * @return string */ public static function base16Decode( #[\SensitiveParameter] string $str ): string { } } } namespace ForminatorGoogleAddon\phpseclib3\Common\Functions { /** * Common String Functions * * @author Jim Wigginton */ abstract class Strings { /** * String Shift * * Inspired by array_shift * * @param string $string * @param int $index * @return string */ public static function shift(&$string, $index = 1) { } /** * String Pop * * Inspired by array_pop * * @param string $string * @param int $index * @return string */ public static function pop(&$string, $index = 1) { } /** * Parse SSH2-style string * * Returns either an array or a boolean if $data is malformed. * * Valid characters for $format are as follows: * * C = byte * b = boolean (true/false) * N = uint32 * Q = uint64 * s = string * i = mpint * L = name-list * * uint64 is not supported. * * @param string $format * @param string $data * @return mixed */ public static function unpackSSH2($format, &$data) { } /** * Create SSH2-style string * * @param string $format * @param string|int|float|array|bool ...$elements * @return string */ public static function packSSH2($format, ...$elements) { } /** * Expand a pack string * * Converts C5 to CCCCC, for example. * * @param string $format * @return string */ private static function formatPack($format) { } /** * Convert binary data into bits * * bin2hex / hex2bin refer to base-256 encoded data as binary, whilst * decbin / bindec refer to base-2 encoded data as binary. For the purposes * of this function, bin refers to base-256 encoded data whilst bits refers * to base-2 encoded data * * @param string $x * @return string */ public static function bits2bin($x) { } /** * Convert bits to binary data * * @param string $x * @return string */ public static function bin2bits($x, $trim = \true) { } /** * Switch Endianness Bit Order * * @param string $x * @return string */ public static function switchEndianness($x) { } /** * Increment the current string * * @param string $var * @return string */ public static function increment_str(&$var) { } /** * Find whether the type of a variable is string (or could be converted to one) * * @param mixed $var * @return bool * @psalm-assert-if-true string|\Stringable $var */ public static function is_stringable($var) { } /** * Constant Time Base64-decoding * * ParagoneIE\ConstantTime doesn't use libsodium if it's available so we'll do so * ourselves. see https://github.com/paragonie/constant_time_encoding/issues/39 * * @param string $data * @return string */ public static function base64_decode($data) { } /** * Constant Time Base64-decoding (URL safe) * * @param string $data * @return string */ public static function base64url_decode($data) { } /** * Constant Time Base64-encoding * * @param string $data * @return string */ public static function base64_encode($data) { } /** * Constant Time Base64-encoding (URL safe) * * @param string $data * @return string */ public static function base64url_encode($data) { } /** * Constant Time Hex Decoder * * @param string $data * @return string */ public static function hex2bin($data) { } /** * Constant Time Hex Encoder * * @param string $data * @return string */ public static function bin2hex($data) { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\Common { /** * Base Class for all \phpseclib3\Crypt\* cipher classes * * @author Jim Wigginton * @author Hans-Juergen Petrich */ abstract class SymmetricKey { /** * Encrypt / decrypt using the Counter mode. * * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 * @see \phpseclib3\Crypt\Common\SymmetricKey::encrypt() * @see \phpseclib3\Crypt\Common\SymmetricKey::decrypt() */ const MODE_CTR = -1; /** * Encrypt / decrypt using the Electronic Code Book mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 * @see \phpseclib3\Crypt\Common\SymmetricKey::encrypt() * @see \phpseclib3\Crypt\Common\SymmetricKey::decrypt() */ const MODE_ECB = 1; /** * Encrypt / decrypt using the Code Book Chaining mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 * @see \phpseclib3\Crypt\Common\SymmetricKey::encrypt() * @see \phpseclib3\Crypt\Common\SymmetricKey::decrypt() */ const MODE_CBC = 2; /** * Encrypt / decrypt using the Cipher Feedback mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 * @see \phpseclib3\Crypt\Common\SymmetricKey::encrypt() * @see \phpseclib3\Crypt\Common\SymmetricKey::decrypt() */ const MODE_CFB = 3; /** * Encrypt / decrypt using the Cipher Feedback mode (8bit) * * @see \phpseclib3\Crypt\Common\SymmetricKey::encrypt() * @see \phpseclib3\Crypt\Common\SymmetricKey::decrypt() */ const MODE_CFB8 = 7; /** * Encrypt / decrypt using the Output Feedback mode (8bit) * * @see \phpseclib3\Crypt\Common\SymmetricKey::encrypt() * @see \phpseclib3\Crypt\Common\SymmetricKey::decrypt() */ const MODE_OFB8 = 8; /** * Encrypt / decrypt using the Output Feedback mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 * @see \phpseclib3\Crypt\Common\SymmetricKey::encrypt() * @see \phpseclib3\Crypt\Common\SymmetricKey::decrypt() */ const MODE_OFB = 4; /** * Encrypt / decrypt using Galois/Counter mode. * * @link https://en.wikipedia.org/wiki/Galois/Counter_Mode * @see \phpseclib3\Crypt\Common\SymmetricKey::encrypt() * @see \phpseclib3\Crypt\Common\SymmetricKey::decrypt() */ const MODE_GCM = 5; /** * Encrypt / decrypt using streaming mode. * * @see \phpseclib3\Crypt\Common\SymmetricKey::encrypt() * @see \phpseclib3\Crypt\Common\SymmetricKey::decrypt() */ const MODE_STREAM = 6; /** * Mode Map * * @see \phpseclib3\Crypt\Common\SymmetricKey::__construct() */ const MODE_MAP = ['ctr' => self::MODE_CTR, 'ecb' => self::MODE_ECB, 'cbc' => self::MODE_CBC, 'cfb' => self::MODE_CFB, 'cfb8' => self::MODE_CFB8, 'ofb' => self::MODE_OFB, 'ofb8' => self::MODE_OFB8, 'gcm' => self::MODE_GCM, 'stream' => self::MODE_STREAM]; /** * Base value for the internal implementation $engine switch * * @see \phpseclib3\Crypt\Common\SymmetricKey::__construct() */ const ENGINE_INTERNAL = 1; /** * Base value for the eval() implementation $engine switch * * @see \phpseclib3\Crypt\Common\SymmetricKey::__construct() */ const ENGINE_EVAL = 2; /** * Base value for the mcrypt implementation $engine switch * * @see \phpseclib3\Crypt\Common\SymmetricKey::__construct() */ const ENGINE_MCRYPT = 3; /** * Base value for the openssl implementation $engine switch * * @see \phpseclib3\Crypt\Common\SymmetricKey::__construct() */ const ENGINE_OPENSSL = 4; /** * Base value for the libsodium implementation $engine switch * * @see \phpseclib3\Crypt\Common\SymmetricKey::__construct() */ const ENGINE_LIBSODIUM = 5; /** * Base value for the openssl / gcm implementation $engine switch * * @see \phpseclib3\Crypt\Common\SymmetricKey::__construct() */ const ENGINE_OPENSSL_GCM = 6; /** * Engine Reverse Map * * @see \phpseclib3\Crypt\Common\SymmetricKey::getEngine() */ const ENGINE_MAP = [self::ENGINE_INTERNAL => 'PHP', self::ENGINE_EVAL => 'Eval', self::ENGINE_MCRYPT => 'mcrypt', self::ENGINE_OPENSSL => 'OpenSSL', self::ENGINE_LIBSODIUM => 'libsodium', self::ENGINE_OPENSSL_GCM => 'OpenSSL (GCM)']; /** * The Encryption Mode * * @see self::__construct() * @var int */ protected $mode; /** * The Block Length of the block cipher * * @var int */ protected $block_size = 16; /** * The Key * * @see self::setKey() * @var string */ protected $key = \false; /** * HMAC Key * * @see self::setupGCM() * @var ?string */ protected $hKey = \false; /** * The Initialization Vector * * @see self::setIV() * @var string */ protected $iv = \false; /** * A "sliding" Initialization Vector * * @see self::enableContinuousBuffer() * @see self::clearBuffers() * @var string */ protected $encryptIV; /** * A "sliding" Initialization Vector * * @see self::enableContinuousBuffer() * @see self::clearBuffers() * @var string */ protected $decryptIV; /** * Continuous Buffer status * * @see self::enableContinuousBuffer() * @var bool */ protected $continuousBuffer = \false; /** * Encryption buffer for CTR, OFB and CFB modes * * @see self::encrypt() * @see self::clearBuffers() * @var array */ protected $enbuffer; /** * Decryption buffer for CTR, OFB and CFB modes * * @see self::decrypt() * @see self::clearBuffers() * @var array */ protected $debuffer; /** * mcrypt resource for encryption * * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. * * @see self::encrypt() * @var resource */ private $enmcrypt; /** * mcrypt resource for decryption * * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. * * @see self::decrypt() * @var resource */ private $demcrypt; /** * Does the enmcrypt resource need to be (re)initialized? * * @see \phpseclib3\Crypt\Twofish::setKey() * @see \phpseclib3\Crypt\Twofish::setIV() * @var bool */ private $enchanged = \true; /** * Does the demcrypt resource need to be (re)initialized? * * @see \phpseclib3\Crypt\Twofish::setKey() * @see \phpseclib3\Crypt\Twofish::setIV() * @var bool */ private $dechanged = \true; /** * mcrypt resource for CFB mode * * mcrypt's CFB mode, in (and only in) buffered context, * is broken, so phpseclib implements the CFB mode by it self, * even when the mcrypt php extension is available. * * In order to do the CFB-mode work (fast) phpseclib * use a separate ECB-mode mcrypt resource. * * @link http://phpseclib.sourceforge.net/cfb-demo.phps * @see self::encrypt() * @see self::decrypt() * @see self::setupMcrypt() * @var resource */ private $ecb; /** * Optimizing value while CFB-encrypting * * Only relevant if $continuousBuffer enabled * and $engine == self::ENGINE_MCRYPT * * It's faster to re-init $enmcrypt if * $buffer bytes > $cfb_init_len than * using the $ecb resource furthermore. * * This value depends of the chosen cipher * and the time it would be needed for it's * initialization [by mcrypt_generic_init()] * which, typically, depends on the complexity * on its internaly Key-expanding algorithm. * * @see self::encrypt() * @var int */ protected $cfb_init_len = 600; /** * Does internal cipher state need to be (re)initialized? * * @see self::setKey() * @see self::setIV() * @see self::disableContinuousBuffer() * @var bool */ protected $changed = \true; /** * Does Eval engie need to be (re)initialized? * * @see self::setup() * @var bool */ protected $nonIVChanged = \true; /** * Padding status * * @see self::enablePadding() * @var bool */ private $padding = \true; /** * Is the mode one that is paddable? * * @see self::__construct() * @var bool */ private $paddable = \false; /** * Holds which crypt engine internaly should be use, * which will be determined automatically on __construct() * * Currently available $engines are: * - self::ENGINE_LIBSODIUM (very fast, php-extension: libsodium, extension_loaded('libsodium') required) * - self::ENGINE_OPENSSL_GCM (very fast, php-extension: openssl, extension_loaded('openssl') required) * - self::ENGINE_OPENSSL (very fast, php-extension: openssl, extension_loaded('openssl') required) * - self::ENGINE_MCRYPT (fast, php-extension: mcrypt, extension_loaded('mcrypt') required) * - self::ENGINE_EVAL (medium, pure php-engine, no php-extension required) * - self::ENGINE_INTERNAL (slower, pure php-engine, no php-extension required) * * @see self::setEngine() * @see self::encrypt() * @see self::decrypt() * @var int */ protected $engine; /** * Holds the preferred crypt engine * * @see self::setEngine() * @see self::setPreferredEngine() * @var int */ private $preferredEngine; /** * The mcrypt specific name of the cipher * * Only used if $engine == self::ENGINE_MCRYPT * * @link http://www.php.net/mcrypt_module_open * @link http://www.php.net/mcrypt_list_algorithms * @see self::setupMcrypt() * @var string */ protected $cipher_name_mcrypt; /** * The openssl specific name of the cipher * * Only used if $engine == self::ENGINE_OPENSSL * * @link http://www.php.net/openssl-get-cipher-methods * @var string */ protected $cipher_name_openssl; /** * The openssl specific name of the cipher in ECB mode * * If OpenSSL does not support the mode we're trying to use (CTR) * it can still be emulated with ECB mode. * * @link http://www.php.net/openssl-get-cipher-methods * @var string */ protected $cipher_name_openssl_ecb; /** * The default salt used by setPassword() * * @see self::setPassword() * @var string */ private $password_default_salt = 'phpseclib/salt'; /** * The name of the performance-optimized callback function * * Used by encrypt() / decrypt() * only if $engine == self::ENGINE_INTERNAL * * @see self::encrypt() * @see self::decrypt() * @see self::setupInlineCrypt() * @var Callback */ protected $inline_crypt; /** * If OpenSSL can be used in ECB but not in CTR we can emulate CTR * * @see self::openssl_ctr_process() * @var bool */ private $openssl_emulate_ctr = \false; /** * Don't truncate / null pad key * * @see self::clearBuffers() * @var bool */ private $skip_key_adjustment = \false; /** * Has the key length explicitly been set or should it be derived from the key, itself? * * @see self::setKeyLength() * @var bool */ protected $explicit_key_length = \false; /** * Hash subkey for GHASH * * @see self::setupGCM() * @see self::ghash() * @var BinaryField\Integer */ private $h; /** * Additional authenticated data * * @var string */ protected $aad = ''; /** * Authentication Tag produced after a round of encryption * * @var string */ protected $newtag = \false; /** * Authentication Tag to be verified during decryption * * @var string */ protected $oldtag = \false; /** * GCM Binary Field * * @see self::__construct() * @see self::ghash() * @var BinaryField */ private static $gcmField; /** * Poly1305 Prime Field * * @see self::enablePoly1305() * @see self::poly1305() * @var PrimeField */ private static $poly1305Field; /** * Flag for using regular vs "safe" intval * * @see self::initialize_static_variables() * @var boolean */ protected static $use_reg_intval; /** * Poly1305 Key * * @see self::setPoly1305Key() * @see self::poly1305() * @var string */ protected $poly1305Key; /** * Poly1305 Flag * * @see self::setPoly1305Key() * @see self::enablePoly1305() * @var boolean */ protected $usePoly1305 = \false; /** * The Original Initialization Vector * * GCM uses the nonce to build the IV but we want to be able to distinguish between nonce-derived * IV's and user-set IV's * * @see self::setIV() * @var string */ private $origIV = \false; /** * Nonce * * Only used with GCM. We could re-use setIV() but nonce's can be of a different length and * toggling between GCM and other modes could be more complicated if we re-used setIV() * * @see self::setNonce() * @var string */ protected $nonce = \false; /** * Default Constructor. * * $mode could be: * * - ecb * * - cbc * * - ctr * * - cfb * * - cfb8 * * - ofb * * - ofb8 * * - gcm * * @param string $mode * @throws BadModeException if an invalid / unsupported mode is provided */ public function __construct($mode) { } /** * Initialize static variables */ protected static function initialize_static_variables() { } /** * Sets the initialization vector. * * setIV() is not required when ecb or gcm modes are being used. * * {@internal Can be overwritten by a sub class, but does not have to be} * * @param string $iv * @throws \LengthException if the IV length isn't equal to the block size * @throws \BadMethodCallException if an IV is provided when one shouldn't be */ public function setIV($iv) { } /** * Enables Poly1305 mode. * * Once enabled Poly1305 cannot be disabled. * * @throws \BadMethodCallException if Poly1305 is enabled whilst in GCM mode */ public function enablePoly1305() { } /** * Enables Poly1305 mode. * * Once enabled Poly1305 cannot be disabled. If $key is not passed then an attempt to call createPoly1305Key * will be made. * * @param string $key optional * @throws \LengthException if the key isn't long enough * @throws \BadMethodCallException if Poly1305 is enabled whilst in GCM mode */ public function setPoly1305Key($key = null) { } /** * Sets the nonce. * * setNonce() is only required when gcm is used * * @param string $nonce * @throws \BadMethodCallException if an nonce is provided when one shouldn't be */ public function setNonce($nonce) { } /** * Sets additional authenticated data * * setAAD() is only used by gcm or in poly1305 mode * * @param string $aad * @throws \BadMethodCallException if mode isn't GCM or if poly1305 isn't being utilized */ public function setAAD($aad) { } /** * Returns whether or not the algorithm uses an IV * * @return bool */ public function usesIV() { } /** * Returns whether or not the algorithm uses a nonce * * @return bool */ public function usesNonce() { } /** * Returns the current key length in bits * * @return int */ public function getKeyLength() { } /** * Returns the current block length in bits * * @return int */ public function getBlockLength() { } /** * Returns the current block length in bytes * * @return int */ public function getBlockLengthInBytes() { } /** * Sets the key length. * * Keys with explicitly set lengths need to be treated accordingly * * @param int $length */ public function setKeyLength($length) { } /** * Sets the key. * * The min/max length(s) of the key depends on the cipher which is used. * If the key not fits the length(s) of the cipher it will paded with null bytes * up to the closest valid key length. If the key is more than max length, * we trim the excess bits. * * If the key is not explicitly set, it'll be assumed to be all null bytes. * * {@internal Could, but not must, extend by the child Crypt_* class} * * @param string $key */ public function setKey($key) { } /** * Sets the password. * * Depending on what $method is set to, setPassword()'s (optional) parameters are as follows: * {@link http://en.wikipedia.org/wiki/PBKDF2 pbkdf2} or pbkdf1: * $hash, $salt, $count, $dkLen * * Where $hash (default = sha1) currently supports the following hashes: see: Crypt/Hash.php * {@link https://en.wikipedia.org/wiki/Bcrypt bcypt}: * $salt, $rounds, $keylen * * This is a modified version of bcrypt used by OpenSSH. * * {@internal Could, but not must, extend by the child Crypt_* class} * * @see Crypt/Hash.php * @param string $password * @param string $method * @param int|string ...$func_args * @throws \LengthException if pbkdf1 is being used and the derived key length exceeds the hash length * @throws \RuntimeException if bcrypt is being used and a salt isn't provided * @return bool */ public function setPassword($password, $method = 'pbkdf2', ...$func_args) { } /** * PKCS#12 KDF Helper Function * * As discussed here: * * {@link https://tools.ietf.org/html/rfc7292#appendix-B} * * @see self::setPassword() * @param int $n * @param Hash $hashObj * @param string $i * @param string $d * @param int $count * @return string $a */ private static function pkcs12helper($n, $hashObj, $i, $d, $count) { } /** * Encrypts a message. * * $plaintext will be padded with additional bytes such that it's length is a multiple of the block size. Other cipher * implementations may or may not pad in the same manner. Other common approaches to padding and the reasons why it's * necessary are discussed in the following * URL: * * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} * * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. * strlen($plaintext) will still need to be a multiple of the block size, however, arbitrary values can be added to make it that * length. * * {@internal Could, but not must, extend by the child Crypt_* class} * * @see self::decrypt() * @param string $plaintext * @return string $ciphertext */ public function encrypt($plaintext) { } /** * Decrypts a message. * * If strlen($ciphertext) is not a multiple of the block size, null bytes will be added to the end of the string until * it is. * * {@internal Could, but not must, extend by the child Crypt_* class} * * @see self::encrypt() * @param string $ciphertext * @return string $plaintext * @throws \LengthException if we're inside a block cipher and the ciphertext length is not a multiple of the block size */ public function decrypt($ciphertext) { } /** * Get the authentication tag * * Only used in GCM or Poly1305 mode * * @see self::encrypt() * @param int $length optional * @return string * @throws \LengthException if $length isn't of a sufficient length * @throws \RuntimeException if GCM mode isn't being used */ public function getTag($length = 16) { } /** * Sets the authentication tag * * Only used in GCM mode * * @see self::decrypt() * @param string $tag * @throws \LengthException if $length isn't of a sufficient length * @throws \RuntimeException if GCM mode isn't being used */ public function setTag($tag) { } /** * Get the IV * * mcrypt requires an IV even if ECB is used * * @see self::encrypt() * @see self::decrypt() * @param string $iv * @return string */ protected function getIV($iv) { } /** * OpenSSL CTR Processor * * PHP's OpenSSL bindings do not operate in continuous mode so we'll wrap around it. Since the keystream * for CTR is the same for both encrypting and decrypting this function is re-used by both SymmetricKey::encrypt() * and SymmetricKey::decrypt(). Also, OpenSSL doesn't implement CTR for all of it's symmetric ciphers so this * function will emulate CTR with ECB when necessary. * * @see self::encrypt() * @see self::decrypt() * @param string $plaintext * @param string $encryptIV * @param array $buffer * @return string */ private function openssl_ctr_process($plaintext, &$encryptIV, &$buffer) { } /** * OpenSSL OFB Processor * * PHP's OpenSSL bindings do not operate in continuous mode so we'll wrap around it. Since the keystream * for OFB is the same for both encrypting and decrypting this function is re-used by both SymmetricKey::encrypt() * and SymmetricKey::decrypt(). * * @see self::encrypt() * @see self::decrypt() * @param string $plaintext * @param string $encryptIV * @param array $buffer * @return string */ private function openssl_ofb_process($plaintext, &$encryptIV, &$buffer) { } /** * phpseclib <-> OpenSSL Mode Mapper * * May need to be overwritten by classes extending this one in some cases * * @return string */ protected function openssl_translate_mode() { } /** * Pad "packets". * * Block ciphers working by encrypting between their specified [$this->]block_size at a time * If you ever need to encrypt or decrypt something that isn't of the proper length, it becomes necessary to * pad the input so that it is of the proper length. * * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH, * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is * transmitted separately) * * @see self::disablePadding() */ public function enablePadding() { } /** * Do not pad packets. * * @see self::enablePadding() */ public function disablePadding() { } /** * Treat consecutive "packets" as if they are a continuous buffer. * * Say you have a 32-byte plaintext $plaintext. Using the default behavior, the two following code snippets * will yield different outputs: * * * echo $rijndael->encrypt(substr($plaintext, 0, 16)); * echo $rijndael->encrypt(substr($plaintext, 16, 16)); * * * echo $rijndael->encrypt($plaintext); * * * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates * another, as demonstrated with the following: * * * $rijndael->encrypt(substr($plaintext, 0, 16)); * echo $rijndael->decrypt($rijndael->encrypt(substr($plaintext, 16, 16))); * * * echo $rijndael->decrypt($rijndael->encrypt(substr($plaintext, 16, 16))); * * * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different * outputs. The reason is due to the fact that the initialization vector's change after every encryption / * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. * * Put another way, when the continuous buffer is enabled, the state of the \phpseclib3\Crypt\*() object changes after each * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), * however, they are also less intuitive and more likely to cause you problems. * * {@internal Could, but not must, extend by the child Crypt_* class} * * @see self::disableContinuousBuffer() */ public function enableContinuousBuffer() { } /** * Treat consecutive packets as if they are a discontinuous buffer. * * The default behavior. * * {@internal Could, but not must, extend by the child Crypt_* class} * * @see self::enableContinuousBuffer() */ public function disableContinuousBuffer() { } /** * Test for engine validity * * @see self::__construct() * @param int $engine * @return bool */ protected function isValidEngineHelper($engine) { } /** * Test for engine validity * * @see self::__construct() * @param string $engine * @return bool */ public function isValidEngine($engine) { } /** * Sets the preferred crypt engine * * Currently, $engine could be: * * - libsodium[very fast] * * - OpenSSL [very fast] * * - mcrypt [fast] * * - Eval [slow] * * - PHP [slowest] * * If the preferred crypt engine is not available the fastest available one will be used * * @see self::__construct() * @param string $engine */ public function setPreferredEngine($engine) { } /** * Returns the engine currently being utilized * * @see self::setEngine() */ public function getEngine() { } /** * Sets the engine as appropriate * * @see self::__construct() */ protected function setEngine() { } /** * Encrypts a block * * Note: Must be extended by the child \phpseclib3\Crypt\* class * * @param string $in * @return string */ abstract protected function encryptBlock($in); /** * Decrypts a block * * Note: Must be extended by the child \phpseclib3\Crypt\* class * * @param string $in * @return string */ abstract protected function decryptBlock($in); /** * Setup the key (expansion) * * Only used if $engine == self::ENGINE_INTERNAL * * Note: Must extend by the child \phpseclib3\Crypt\* class * * @see self::setup() */ abstract protected function setupKey(); /** * Setup the self::ENGINE_INTERNAL $engine * * (re)init, if necessary, the internal cipher $engine and flush all $buffers * Used (only) if $engine == self::ENGINE_INTERNAL * * _setup() will be called each time if $changed === true * typically this happens when using one or more of following public methods: * * - setKey() * * - setIV() * * - disableContinuousBuffer() * * - First run of encrypt() / decrypt() with no init-settings * * {@internal setup() is always called before en/decryption.} * * {@internal Could, but not must, extend by the child Crypt_* class} * * @see self::setKey() * @see self::setIV() * @see self::disableContinuousBuffer() */ protected function setup() { } /** * Pads a string * * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize. * $this->block_size - (strlen($text) % $this->block_size) bytes are added, each of which is equal to * chr($this->block_size - (strlen($text) % $this->block_size) * * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless * and padding will, hence forth, be enabled. * * @see self::unpad() * @param string $text * @throws \LengthException if padding is disabled and the plaintext's length is not a multiple of the block size * @return string */ protected function pad($text) { } /** * Unpads a string. * * If padding is enabled and the reported padding length is invalid the encryption key will be assumed to be wrong * and false will be returned. * * @see self::pad() * @param string $text * @throws \LengthException if the ciphertext's length is not a multiple of the block size * @return string */ protected function unpad($text) { } /** * Setup the performance-optimized function for de/encrypt() * * Stores the created (or existing) callback function-name * in $this->inline_crypt * * Internally for phpseclib developers: * * _setupInlineCrypt() would be called only if: * * - $this->engine === self::ENGINE_EVAL * * - each time on _setup(), after(!) _setupKey() * * * This ensures that _setupInlineCrypt() has always a * full ready2go initializated internal cipher $engine state * where, for example, the keys already expanded, * keys/block_size calculated and such. * * It is, each time if called, the responsibility of _setupInlineCrypt(): * * - to set $this->inline_crypt to a valid and fully working callback function * as a (faster) replacement for encrypt() / decrypt() * * - NOT to create unlimited callback functions (for memory reasons!) * no matter how often _setupInlineCrypt() would be called. At some * point of amount they must be generic re-useable. * * - the code of _setupInlineCrypt() it self, * and the generated callback code, * must be, in following order: * - 100% safe * - 100% compatible to encrypt()/decrypt() * - using only php5+ features/lang-constructs/php-extensions if * compatibility (down to php4) or fallback is provided * - readable/maintainable/understandable/commented and... not-cryptic-styled-code :-) * - >= 10% faster than encrypt()/decrypt() [which is, by the way, * the reason for the existence of _setupInlineCrypt() :-)] * - memory-nice * - short (as good as possible) * * Note: - _setupInlineCrypt() is using _createInlineCryptFunction() to create the full callback function code. * - In case of using inline crypting, _setupInlineCrypt() must extend by the child \phpseclib3\Crypt\* class. * - The following variable names are reserved: * - $_* (all variable names prefixed with an underscore) * - $self (object reference to it self. Do not use $this, but $self instead) * - $in (the content of $in has to en/decrypt by the generated code) * - The callback function should not use the 'return' statement, but en/decrypt'ing the content of $in only * * {@internal If a Crypt_* class providing inline crypting it must extend _setupInlineCrypt()} * * @see self::setup() * @see self::createInlineCryptFunction() * @see self::encrypt() * @see self::decrypt() */ //protected function setupInlineCrypt(); /** * Creates the performance-optimized function for en/decrypt() * * Internally for phpseclib developers: * * _createInlineCryptFunction(): * * - merge the $cipher_code [setup'ed by _setupInlineCrypt()] * with the current [$this->]mode of operation code * * - create the $inline function, which called by encrypt() / decrypt() * as its replacement to speed up the en/decryption operations. * * - return the name of the created $inline callback function * * - used to speed up en/decryption * * * * The main reason why can speed up things [up to 50%] this way are: * * - using variables more effective then regular. * (ie no use of expensive arrays but integers $k_0, $k_1 ... * or even, for example, the pure $key[] values hardcoded) * * - avoiding 1000's of function calls of ie _encryptBlock() * but inlining the crypt operations. * in the mode of operation for() loop. * * - full loop unroll the (sometimes key-dependent) rounds * avoiding this way ++$i counters and runtime-if's etc... * * The basic code architectur of the generated $inline en/decrypt() * lambda function, in pseudo php, is: * * * +----------------------------------------------------------------------------------------------+ * | callback $inline = create_function: | * | lambda_function_0001_crypt_ECB($action, $text) | * | { | * | INSERT PHP CODE OF: | * | $cipher_code['init_crypt']; // general init code. | * | // ie: $sbox'es declarations used for | * | // encrypt and decrypt'ing. | * | | * | switch ($action) { | * | case 'encrypt': | * | INSERT PHP CODE OF: | * | $cipher_code['init_encrypt']; // encrypt sepcific init code. | * | ie: specified $key or $box | * | declarations for encrypt'ing. | * | | * | foreach ($ciphertext) { | * | $in = $block_size of $ciphertext; | * | | * | INSERT PHP CODE OF: | * | $cipher_code['encrypt_block']; // encrypt's (string) $in, which is always: | * | // strlen($in) == $this->block_size | * | // here comes the cipher algorithm in action | * | // for encryption. | * | // $cipher_code['encrypt_block'] has to | * | // encrypt the content of the $in variable | * | | * | $plaintext .= $in; | * | } | * | return $plaintext; | * | | * | case 'decrypt': | * | INSERT PHP CODE OF: | * | $cipher_code['init_decrypt']; // decrypt sepcific init code | * | ie: specified $key or $box | * | declarations for decrypt'ing. | * | foreach ($plaintext) { | * | $in = $block_size of $plaintext; | * | | * | INSERT PHP CODE OF: | * | $cipher_code['decrypt_block']; // decrypt's (string) $in, which is always | * | // strlen($in) == $this->block_size | * | // here comes the cipher algorithm in action | * | // for decryption. | * | // $cipher_code['decrypt_block'] has to | * | // decrypt the content of the $in variable | * | $ciphertext .= $in; | * | } | * | return $ciphertext; | * | } | * | } | * +----------------------------------------------------------------------------------------------+ * * * See also the \phpseclib3\Crypt\*::_setupInlineCrypt()'s for * productive inline $cipher_code's how they works. * * Structure of: * * $cipher_code = [ * 'init_crypt' => (string) '', // optional * 'init_encrypt' => (string) '', // optional * 'init_decrypt' => (string) '', // optional * 'encrypt_block' => (string) '', // required * 'decrypt_block' => (string) '' // required * ]; * * * @see self::setupInlineCrypt() * @see self::encrypt() * @see self::decrypt() * @param array $cipher_code * @return string (the name of the created callback function) */ protected function createInlineCryptFunction($cipher_code) { } /** * Convert float to int * * On ARM CPUs converting floats to ints doesn't always work * * @param string $x * @return int */ protected static function safe_intval($x) { } /** * eval()'able string for in-line float to int * * @return string */ protected static function safe_intval_inline() { } /** * Sets up GCM parameters * * See steps 1-2 of https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf#page=23 * for more info * */ private function setupGCM() { } /** * Performs GHASH operation * * See https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf#page=20 * for more info * * @see self::decrypt() * @see self::encrypt() * @param string $x * @return string */ private function ghash($x) { } /** * Returns the bit length of a string in a packed format * * @see self::decrypt() * @see self::encrypt() * @see self::setupGCM() * @param string $str * @return string */ private static function len64($str) { } /** * NULL pads a string to be a multiple of 128 * * @see self::decrypt() * @see self::encrypt() * @see self::setupGCM() * @param string $str * @return string */ protected static function nullPad128($str) { } /** * Calculates Poly1305 MAC * * On my system ChaCha20, with libsodium, takes 0.5s. With this custom Poly1305 implementation * it takes 1.2s. * * @see self::decrypt() * @see self::encrypt() * @param string $text * @return string */ protected function poly1305($text) { } /** * Return the mode * * You can do $obj instanceof AES or whatever to get the cipher but you can't do that to get the mode * * @return string */ public function getMode() { } /** * Is the continuous buffer enabled? * * @return boolean */ public function continuousBufferEnabled() { } } /** * Base Class for all block cipher classes * * @author Jim Wigginton */ abstract class BlockCipher extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\SymmetricKey { } } namespace ForminatorGoogleAddon\phpseclib3\Crypt { /** * Pure-PHP implementation of Rijndael. * * @author Jim Wigginton */ class Rijndael extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\BlockCipher { /** * The mcrypt specific name of the cipher * * Mcrypt is useable for 128/192/256-bit $block_size/$key_length. For 160/224 not. * \phpseclib3\Crypt\Rijndael determines automatically whether mcrypt is useable * or not for the current $block_size/$key_length. * In case of, $cipher_name_mcrypt will be set dynamically at run time accordingly. * * @see \phpseclib3\Crypt\Common\SymmetricKey::cipher_name_mcrypt * @see \phpseclib3\Crypt\Common\SymmetricKey::engine * @see self::isValidEngine() * @var string */ protected $cipher_name_mcrypt = 'rijndael-128'; /** * The Key Schedule * * @see self::setup() * @var array */ private $w; /** * The Inverse Key Schedule * * @see self::setup() * @var array */ private $dw; /** * The Block Length divided by 32 * * {@internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4. Exists in conjunction with $block_size * because the encryption / decryption / key schedule creation requires this number and not $block_size. We could * derive this from $block_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu * of that, we'll just precompute it once.} * * @see self::setBlockLength() * @var int */ private $Nb = 4; /** * The Key Length (in bytes) * * {@internal The max value is 256 / 8 = 32, the min value is 128 / 8 = 16. Exists in conjunction with $Nk * because the encryption / decryption / key schedule creation requires this number and not $key_length. We could * derive this from $key_length or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu * of that, we'll just precompute it once.} * * @see self::setKeyLength() * @var int */ protected $key_length = 16; /** * The Key Length divided by 32 * * @see self::setKeyLength() * @var int * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4 */ private $Nk = 4; /** * The Number of Rounds * * {@internal The max value is 14, the min value is 10.} * * @var int */ private $Nr; /** * Shift offsets * * @var array */ private $c; /** * Holds the last used key- and block_size information * * @var array */ private $kl; /** * Default Constructor. * * @param string $mode * @throws \InvalidArgumentException if an invalid / unsupported mode is provided */ public function __construct($mode) { } /** * Sets the key length. * * Valid key lengths are 128, 160, 192, 224, and 256. * * Note: phpseclib extends Rijndael (and AES) for using 160- and 224-bit keys but they are officially not defined * and the most (if not all) implementations are not able using 160/224-bit keys but round/pad them up to * 192/256 bits as, for example, mcrypt will do. * * That said, if you want be compatible with other Rijndael and AES implementations, * you should not setKeyLength(160) or setKeyLength(224). * * Additional: In case of 160- and 224-bit keys, phpseclib will/can, for that reason, not use * the mcrypt php extension, even if available. * This results then in slower encryption. * * @throws \LengthException if the key length is invalid * @param int $length */ public function setKeyLength($length) { } /** * Sets the key. * * Rijndael supports five different key lengths * * @see setKeyLength() * @param string $key * @throws \LengthException if the key length isn't supported */ public function setKey($key) { } /** * Sets the block length * * Valid block lengths are 128, 160, 192, 224, and 256. * * @param int $length */ public function setBlockLength($length) { } /** * Test for engine validity * * This is mainly just a wrapper to set things up for \phpseclib3\Crypt\Common\SymmetricKey::isValidEngine() * * @see \phpseclib3\Crypt\Common\SymmetricKey::__construct() * @param int $engine * @return bool */ protected function isValidEngineHelper($engine) { } /** * Encrypts a block * * @param string $in * @return string */ protected function encryptBlock($in) { } /** * Decrypts a block * * @param string $in * @return string */ protected function decryptBlock($in) { } /** * Setup the self::ENGINE_INTERNAL $engine * * (re)init, if necessary, the internal cipher $engine and flush all $buffers * Used (only) if $engine == self::ENGINE_INTERNAL * * _setup() will be called each time if $changed === true * typically this happens when using one or more of following public methods: * * - setKey() * * - setIV() * * - disableContinuousBuffer() * * - First run of encrypt() / decrypt() with no init-settings * * {@internal setup() is always called before en/decryption.} * * {@internal Could, but not must, extend by the child Crypt_* class} * * @see self::setKey() * @see self::setIV() * @see self::disableContinuousBuffer() */ protected function setup() { } /** * Setup the key (expansion) * * @see \phpseclib3\Crypt\Common\SymmetricKey::setupKey() */ protected function setupKey() { } /** * Performs S-Box substitutions * * @return array * @param int $word */ private function subWord($word) { } /** * Provides the mixColumns and sboxes tables * * @see self::encryptBlock() * @see self::setupInlineCrypt() * @see self::subWord() * @return array &$tables */ protected function &getTables() { } /** * Provides the inverse mixColumns and inverse sboxes tables * * @see self::decryptBlock() * @see self::setupInlineCrypt() * @see self::setupKey() * @return array &$tables */ protected function &getInvTables() { } /** * Setup the performance-optimized function for de/encrypt() * * @see \phpseclib3\Crypt\Common\SymmetricKey::setupInlineCrypt() */ protected function setupInlineCrypt() { } /** * Encrypts a message. * * @see self::decrypt() * @see parent::encrypt() * @param string $plaintext * @return string */ public function encrypt($plaintext) { } /** * Decrypts a message. * * @see self::encrypt() * @see parent::decrypt() * @param string $ciphertext * @return string */ public function decrypt($ciphertext) { } } /** * Pure-PHP implementation of AES. * * @author Jim Wigginton */ class AES extends \ForminatorGoogleAddon\phpseclib3\Crypt\Rijndael { /** * Dummy function * * Since \phpseclib3\Crypt\AES extends \phpseclib3\Crypt\Rijndael, this function is, technically, available, but it doesn't do anything. * * @see \phpseclib3\Crypt\Rijndael::setBlockLength() * @param int $length * @throws \BadMethodCallException anytime it's called */ public function setBlockLength($length) { } /** * Sets the key length * * Valid key lengths are 128, 192, and 256. Set the link to bool(false) to disable a fixed key length * * @see \phpseclib3\Crypt\Rijndael:setKeyLength() * @param int $length * @throws \LengthException if the key length isn't supported */ public function setKeyLength($length) { } /** * Sets the key. * * Rijndael supports five different key lengths, AES only supports three. * * @see \phpseclib3\Crypt\Rijndael:setKey() * @see setKeyLength() * @param string $key * @throws \LengthException if the key length isn't supported */ public function setKey($key) { } } /** * Pure-PHP implementation of Blowfish. * * @author Jim Wigginton * @author Hans-Juergen Petrich */ class Blowfish extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\BlockCipher { /** * Block Length of the cipher * * @see \phpseclib3\Crypt\Common\SymmetricKey::block_size * @var int */ protected $block_size = 8; /** * The mcrypt specific name of the cipher * * @see \phpseclib3\Crypt\Common\SymmetricKey::cipher_name_mcrypt * @var string */ protected $cipher_name_mcrypt = 'blowfish'; /** * Optimizing value while CFB-encrypting * * @see \phpseclib3\Crypt\Common\SymmetricKey::cfb_init_len * @var int */ protected $cfb_init_len = 500; /** * The fixed subkeys boxes * * S-Box * * @var array */ private static $sbox = [0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, 0x801f2e2, 0x858efc16, 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, 0xd95748f, 0x728eb658, 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a, 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, 0xf6d6ff3, 0x83f44239, 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0, 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d, 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, 0x75372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x4c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1, 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, 0x250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af, 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x2e5b9c5, 0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x8ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, 0x53b02d5d, 0xa99f8fa1, 0x8ba4799, 0x6e85076a, 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x21ecc5e, 0x9686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7, 0xa9446146, 0xfd0030e, 0xecc8c73e, 0xa4751e41, 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af, 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x43556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509, 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a, 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960, 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x18cff28, 0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, 0xeb61bd96, 0x334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281, 0xe358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, 0x95bbf00, 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a, 0xc55f5ea, 0x1dadf43e, 0x233f7061, 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, 0x9e447a2e, 0xc3453484, 0xfdd56705, 0xe1e9ec9, 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7, 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068, 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x3bd9785, 0x7fac6dd0, 0x31cb8504, 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, 0x28507825, 0x530429f4, 0xa2c86da, 0xe9b66dfb, 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, 0xfdf8e802, 0x4272f70, 0x80bb155c, 0x5282ce3, 0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc, 0x7f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17, 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, 0xe12b4c2, 0x2e1329e, 0xaf664fd1, 0xcad18115, 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0xa476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b, 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c, 0x6a124237, 0xb79251e7, 0x6a1bbe6, 0x4bfb6350, 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9, 0x44421659, 0xa121386, 0xd90cec6e, 0xd5abea2a, 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633, 0xe85a1f02, 0x9f0be8c, 0x4a99a025, 0x1d6efe10, 0x1ab93d1d, 0xba5a4df, 0xa186f20f, 0x2868f169, 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4, 0xde6d027, 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, 0x6058aa, 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, 0xed545578, 0x8fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c, 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0, 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22, 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59, 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x22b8b51, 0x96d5ac3a, 0x17da67d, 0xd1cf3ed6, 0x7c7d2d28, 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, 0x88f46dba, 0x3a16125, 0x564f0bd, 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, 0x7533d928, 0xb155fdf5, 0x3563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x9072166, 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x115af84, 0xe1b00428, 0x95983a1d, 0x6b89fb4, 0xce6ea048, 0x6f3f3b82, 0x3520ab82, 0x11a1d4b, 0x277227f8, 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd, 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38, 0x339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f, 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, 0xbf97222c, 0x15e6fc2a, 0xf91fc71, 0x9b941525, 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0xfe3f11d, 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x2fb8a8c, 0x1c36ae4, 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6]; /** * P-Array consists of 18 32-bit subkeys * * @var array */ private static $parray = [0x243f6a88, 0x85a308d3, 0x13198a2e, 0x3707344, 0xa4093822, 0x299f31d0, 0x82efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b]; /** * The BCTX-working Array * * Holds the expanded key [p] and the key-depended s-boxes [sb] * * @var array */ private $bctx; /** * Holds the last used key * * @var array */ private $kl; /** * The Key Length (in bytes) * {@internal The max value is 256 / 8 = 32, the min value is 128 / 8 = 16. Exists in conjunction with $Nk * because the encryption / decryption / key schedule creation requires this number and not $key_length. We could * derive this from $key_length or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu * of that, we'll just precompute it once.} * * @see \phpseclib3\Crypt\Common\SymmetricKey::setKeyLength() * @var int */ protected $key_length = 16; /** * Default Constructor. * * @param string $mode * @throws \InvalidArgumentException if an invalid / unsupported mode is provided */ public function __construct($mode) { } /** * Sets the key length. * * Key lengths can be between 32 and 448 bits. * * @param int $length */ public function setKeyLength($length) { } /** * Test for engine validity * * This is mainly just a wrapper to set things up for \phpseclib3\Crypt\Common\SymmetricKey::isValidEngine() * * @see \phpseclib3\Crypt\Common\SymmetricKey::isValidEngine() * @param int $engine * @return bool */ protected function isValidEngineHelper($engine) { } /** * Setup the key (expansion) * * @see \phpseclib3\Crypt\Common\SymmetricKey::_setupKey() */ protected function setupKey() { } /** * Initialize Static Variables */ protected static function initialize_static_variables() { } /** * bcrypt * * @param string $sha2pass * @param string $sha2salt * @access private * @return string */ private static function bcrypt_hash($sha2pass, $sha2salt) { } /** * Performs OpenSSH-style bcrypt * * @param string $pass * @param string $salt * @param int $keylen * @param int $rounds * @access public * @return string */ public static function bcrypt_pbkdf($pass, $salt, $keylen, $rounds) { } /** * Key expansion without salt * * @access private * @param int[] $key * @param int[] $sbox * @param int[] $p * @see self::_bcrypt_hash() */ private static function expand0state(array $key, array &$sbox, array &$p) { } /** * Key expansion with salt * * @access private * @param int[] $data * @param int[] $key * @param int[] $sbox * @param int[] $p * @see self::_bcrypt_hash() */ private static function expandstate(array $data, array $key, array &$sbox, array &$p) { } /** * Encrypts a block * * @param string $in * @return string */ protected function encryptBlock($in) { } /** * Fast helper function for block encryption * * @access private * @param int $x0 * @param int $x1 * @param int[] $sbox * @param int[] $p * @return int[] */ private static function encryptBlockHelperFast($x0, $x1, array $sbox, array $p) { } /** * Slow helper function for block encryption * * @access private * @param int $x0 * @param int $x1 * @param int[] $sbox * @param int[] $p * @return int[] */ private static function encryptBlockHelperSlow($x0, $x1, array $sbox, array $p) { } /** * Decrypts a block * * @param string $in * @return string */ protected function decryptBlock($in) { } /** * Setup the performance-optimized function for de/encrypt() * * @see \phpseclib3\Crypt\Common\SymmetricKey::_setupInlineCrypt() */ protected function setupInlineCrypt() { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\Common { /** * Base Class for all stream cipher classes * * @author Jim Wigginton */ abstract class StreamCipher extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\SymmetricKey { /** * Block Length of the cipher * * Stream ciphers do not have a block size * * @see \phpseclib3\Crypt\Common\SymmetricKey::block_size * @var int */ protected $block_size = 0; /** * Default Constructor. * * @see \phpseclib3\Crypt\Common\SymmetricKey::__construct() * @return StreamCipher */ public function __construct() { } /** * Stream ciphers not use an IV * * @return bool */ public function usesIV() { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt { /** * Pure-PHP implementation of Salsa20. * * @author Jim Wigginton */ class Salsa20 extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\StreamCipher { /** * Part 1 of the state * * @var string|false */ protected $p1 = \false; /** * Part 2 of the state * * @var string|false */ protected $p2 = \false; /** * Key Length (in bytes) * * @var int */ protected $key_length = 32; // = 256 bits /** * @see \phpseclib3\Crypt\Salsa20::crypt() */ const ENCRYPT = 0; /** * @see \phpseclib3\Crypt\Salsa20::crypt() */ const DECRYPT = 1; /** * Encryption buffer for continuous mode * * @var array */ protected $enbuffer; /** * Decryption buffer for continuous mode * * @var array */ protected $debuffer; /** * Counter * * @var int */ protected $counter = 0; /** * Using Generated Poly1305 Key * * @var boolean */ protected $usingGeneratedPoly1305Key = \false; /** * Salsa20 uses a nonce * * @return bool */ public function usesNonce() { } /** * Sets the key. * * @param string $key * @throws \LengthException if the key length isn't supported */ public function setKey($key) { } /** * Sets the nonce. * * @param string $nonce */ public function setNonce($nonce) { } /** * Sets the counter. * * @param int $counter */ public function setCounter($counter) { } /** * Creates a Poly1305 key using the method discussed in RFC8439 * * See https://tools.ietf.org/html/rfc8439#section-2.6.1 */ protected function createPoly1305Key() { } /** * Setup the self::ENGINE_INTERNAL $engine * * (re)init, if necessary, the internal cipher $engine * * _setup() will be called each time if $changed === true * typically this happens when using one or more of following public methods: * * - setKey() * * - setNonce() * * - First run of encrypt() / decrypt() with no init-settings * * @see self::setKey() * @see self::setNonce() * @see self::disableContinuousBuffer() */ protected function setup() { } /** * Setup the key (expansion) */ protected function setupKey() { } /** * Encrypts a message. * * @see \phpseclib3\Crypt\Common\SymmetricKey::decrypt() * @see self::crypt() * @param string $plaintext * @return string $ciphertext */ public function encrypt($plaintext) { } /** * Decrypts a message. * * $this->decrypt($this->encrypt($plaintext)) == $this->encrypt($this->encrypt($plaintext)). * At least if the continuous buffer is disabled. * * @see \phpseclib3\Crypt\Common\SymmetricKey::encrypt() * @see self::crypt() * @param string $ciphertext * @return string $plaintext */ public function decrypt($ciphertext) { } /** * Encrypts a block * * @param string $in */ protected function encryptBlock($in) { } /** * Decrypts a block * * @param string $in */ protected function decryptBlock($in) { } /** * Encrypts or decrypts a message. * * @see self::encrypt() * @see self::decrypt() * @param string $text * @param int $mode * @return string $text */ private function crypt($text, $mode) { } /** * Left Rotate * * @param int $x * @param int $n * @return int */ protected static function leftRotate($x, $n) { } /** * The quarterround function * * @param int $a * @param int $b * @param int $c * @param int $d */ protected static function quarterRound(&$a, &$b, &$c, &$d) { } /** * The doubleround function * * @param int $x0 (by reference) * @param int $x1 (by reference) * @param int $x2 (by reference) * @param int $x3 (by reference) * @param int $x4 (by reference) * @param int $x5 (by reference) * @param int $x6 (by reference) * @param int $x7 (by reference) * @param int $x8 (by reference) * @param int $x9 (by reference) * @param int $x10 (by reference) * @param int $x11 (by reference) * @param int $x12 (by reference) * @param int $x13 (by reference) * @param int $x14 (by reference) * @param int $x15 (by reference) */ protected static function doubleRound(&$x0, &$x1, &$x2, &$x3, &$x4, &$x5, &$x6, &$x7, &$x8, &$x9, &$x10, &$x11, &$x12, &$x13, &$x14, &$x15) { } /** * The Salsa20 hash function function * * @param string $x */ protected static function salsa20($x) { } /** * Calculates Poly1305 MAC * * @see self::decrypt() * @see self::encrypt() * @param string $ciphertext * @return string */ protected function poly1305($ciphertext) { } } /** * Pure-PHP implementation of ChaCha20. * * @author Jim Wigginton */ class ChaCha20 extends \ForminatorGoogleAddon\phpseclib3\Crypt\Salsa20 { /** * The OpenSSL specific name of the cipher * * @var string */ protected $cipher_name_openssl = 'chacha20'; /** * Test for engine validity * * This is mainly just a wrapper to set things up for \phpseclib3\Crypt\Common\SymmetricKey::isValidEngine() * * @see \phpseclib3\Crypt\Common\SymmetricKey::__construct() * @param int $engine * @return bool */ protected function isValidEngineHelper($engine) { } /** * Encrypts a message. * * @see \phpseclib3\Crypt\Common\SymmetricKey::decrypt() * @see self::crypt() * @param string $plaintext * @return string $ciphertext */ public function encrypt($plaintext) { } /** * Decrypts a message. * * $this->decrypt($this->encrypt($plaintext)) == $this->encrypt($this->encrypt($plaintext)). * At least if the continuous buffer is disabled. * * @see \phpseclib3\Crypt\Common\SymmetricKey::encrypt() * @see self::crypt() * @param string $ciphertext * @return string $plaintext */ public function decrypt($ciphertext) { } /** * Encrypts a message with libsodium * * @see self::encrypt() * @param string $plaintext * @return string $text */ private function encrypt_with_libsodium($plaintext) { } /** * Decrypts a message with libsodium * * @see self::decrypt() * @param string $ciphertext * @return string $text */ private function decrypt_with_libsodium($ciphertext) { } /** * Sets the nonce. * * @param string $nonce */ public function setNonce($nonce) { } /** * Setup the self::ENGINE_INTERNAL $engine * * (re)init, if necessary, the internal cipher $engine * * _setup() will be called each time if $changed === true * typically this happens when using one or more of following public methods: * * - setKey() * * - setNonce() * * - First run of encrypt() / decrypt() with no init-settings * * @see self::setKey() * @see self::setNonce() * @see self::disableContinuousBuffer() */ protected function setup() { } /** * The quarterround function * * @param int $a * @param int $b * @param int $c * @param int $d */ protected static function quarterRound(&$a, &$b, &$c, &$d) { } /** * The doubleround function * * @param int $x0 (by reference) * @param int $x1 (by reference) * @param int $x2 (by reference) * @param int $x3 (by reference) * @param int $x4 (by reference) * @param int $x5 (by reference) * @param int $x6 (by reference) * @param int $x7 (by reference) * @param int $x8 (by reference) * @param int $x9 (by reference) * @param int $x10 (by reference) * @param int $x11 (by reference) * @param int $x12 (by reference) * @param int $x13 (by reference) * @param int $x14 (by reference) * @param int $x15 (by reference) */ protected static function doubleRound(&$x0, &$x1, &$x2, &$x3, &$x4, &$x5, &$x6, &$x7, &$x8, &$x9, &$x10, &$x11, &$x12, &$x13, &$x14, &$x15) { } /** * The Salsa20 hash function function * * On my laptop this loop unrolled / function dereferenced version of parent::salsa20 encrypts 1mb of text in * 0.65s vs the 0.85s that it takes with the parent method. * * If we were free to assume that the host OS would always be 64-bits then the if condition in leftRotate could * be eliminated and we could knock this done to 0.60s. * * For comparison purposes, RC4 takes 0.16s and AES in CTR mode with the Eval engine takes 0.48s. * AES in CTR mode with the PHP engine takes 1.19s. Salsa20 / ChaCha20 do not benefit as much from the Eval * approach due to the fact that there are a lot less variables to de-reference, fewer loops to unroll, etc * * @param string $x */ protected static function salsa20($x) { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\Common { /** * Base Class for all asymmetric cipher classes * * @author Jim Wigginton */ abstract class AsymmetricKey { /** * Precomputed Zero * * @var BigInteger */ protected static $zero; /** * Precomputed One * * @var BigInteger */ protected static $one; /** * Format of the loaded key * * @var string */ protected $format; /** * Hash function * * @var Hash */ protected $hash; /** * HMAC function * * @var Hash */ private $hmac; /** * Supported plugins (lower case) * * @see self::initialize_static_variables() * @var array */ private static $plugins = []; /** * Invisible plugins * * @see self::initialize_static_variables() * @var array */ private static $invisiblePlugins = []; /** * Available Engines * * @var boolean[] */ protected static $engines = []; /** * Key Comment * * @var null|string */ private $comment; /** * @param string $type * @return array|string */ abstract public function toString($type, array $options = []); /** * The constructor */ protected function __construct() { } /** * Initialize static variables */ protected static function initialize_static_variables() { } /** * Load the key * * @param string $key * @param string $password optional * @return PublicKey|PrivateKey */ public static function load($key, $password = \false) { } /** * Loads a private key * * @return PrivateKey * @param string|array $key * @param string $password optional */ public static function loadPrivateKey($key, $password = '') { } /** * Loads a public key * * @return PublicKey * @param string|array $key */ public static function loadPublicKey($key) { } /** * Loads parameters * * @return AsymmetricKey * @param string|array $key */ public static function loadParameters($key) { } /** * Load the key, assuming a specific format * * @param string $type * @param string $key * @param string $password optional * @return static */ public static function loadFormat($type, $key, $password = \false) { } /** * Loads a private key * * @return PrivateKey * @param string $type * @param string $key * @param string $password optional */ public static function loadPrivateKeyFormat($type, $key, $password = \false) { } /** * Loads a public key * * @return PublicKey * @param string $type * @param string $key */ public static function loadPublicKeyFormat($type, $key) { } /** * Loads parameters * * @return AsymmetricKey * @param string $type * @param string|array $key */ public static function loadParametersFormat($type, $key) { } /** * Validate Plugin * * @param string $format * @param string $type * @param string $method optional * @return mixed */ protected static function validatePlugin($format, $type, $method = null) { } /** * Load Plugins * * @param string $format */ private static function loadPlugins($format) { } /** * Returns a list of supported formats. * * @return array */ public static function getSupportedKeyFormats() { } /** * Add a fileformat plugin * * The plugin needs to either already be loaded or be auto-loadable. * Loading a plugin whose shortname overwrite an existing shortname will overwrite the old plugin. * * @see self::load() * @param string $fullname * @return bool */ public static function addFileFormat($fullname) { } /** * Returns the format of the loaded key. * * If the key that was loaded wasn't in a valid or if the key was auto-generated * with RSA::createKey() then this will throw an exception. * * @see self::load() * @return mixed */ public function getLoadedFormat() { } /** * Returns the key's comment * * Not all key formats support comments. If you want to set a comment use toString() * * @return null|string */ public function getComment() { } /** * Tests engine validity * */ public static function useBestEngine() { } /** * Flag to use internal engine only (useful for unit testing) * */ public static function useInternalEngine() { } /** * __toString() magic method * * @return string */ public function __toString() { } /** * Determines which hashing function should be used * * @param string $hash */ public function withHash($hash) { } /** * Returns the hash algorithm currently being used * */ public function getHash() { } /** * Compute the pseudorandom k for signature generation, * using the process specified for deterministic DSA. * * @param string $h1 * @return string */ protected function computek($h1) { } /** * Integer to Octet String * * @param BigInteger $v * @return string */ private function int2octets($v) { } /** * Bit String to Integer * * @param string $in * @return BigInteger */ protected function bits2int($in) { } /** * Bit String to Octet String * * @param string $in * @return string */ private function bits2octets($in) { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys { /** * JSON Web Key Formatted Key Handler * * @author Jim Wigginton */ abstract class JWK { /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password * @return array */ public static function load($key, $password = '') { } /** * Wrap a key appropriately * * @return string */ protected static function wrapKey(array $key, array $options) { } } /** * OpenSSH Formatted RSA Key Handler * * @author Jim Wigginton */ abstract class OpenSSH { /** * Default comment * * @var string */ protected static $comment = 'phpseclib-generated-key'; /** * Binary key flag * * @var bool */ protected static $binary = \false; /** * Sets the default comment * * @param string $comment */ public static function setComment($comment) { } /** * Break a public or private key down into its constituent components * * $type can be either ssh-dss or ssh-rsa * * @param string $key * @param string $password * @return array */ public static function load($key, $password = '') { } /** * Toggle between binary and printable keys * * Printable keys are what are generated by default. These are the ones that go in * $HOME/.ssh/authorized_key. * * @param bool $enabled */ public static function setBinaryOutput($enabled) { } /** * Checks to see if the type is valid * * @param string $candidate */ private static function checkType($candidate) { } /** * Wrap a private key appropriately * * @param string $publicKey * @param string $privateKey * @param string $password * @param array $options * @return string */ protected static function wrapPrivateKey($publicKey, $privateKey, $password, $options) { } } /** * PKCS1 Formatted Key Handler * * @author Jim Wigginton */ abstract class PKCS { /** * Auto-detect the format */ const MODE_ANY = 0; /** * Require base64-encoded PEM's be supplied */ const MODE_PEM = 1; /** * Require raw DER's be supplied */ const MODE_DER = 2; /**#@-*/ /** * Is the key a base-64 encoded PEM, DER or should it be auto-detected? * * @var int */ protected static $format = self::MODE_ANY; /** * Require base64-encoded PEM's be supplied * */ public static function requirePEM() { } /** * Require raw DER's be supplied * */ public static function requireDER() { } /** * Accept any format and auto detect the format * * This is the default setting * */ public static function requireAny() { } } /** * PKCS1 Formatted Key Handler * * @author Jim Wigginton */ abstract class PKCS1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PKCS { /** * Default encryption algorithm * * @var string */ private static $defaultEncryptionAlgorithm = 'AES-128-CBC'; /** * Sets the default encryption algorithm * * @param string $algo */ public static function setEncryptionAlgorithm($algo) { } /** * Returns the mode constant corresponding to the mode string * * @param string $mode * @return int * @throws \UnexpectedValueException if the block cipher mode is unsupported */ private static function getEncryptionMode($mode) { } /** * Returns a cipher object corresponding to a string * * @param string $algo * @return string * @throws \UnexpectedValueException if the encryption algorithm is unsupported */ private static function getEncryptionObject($algo) { } /** * Generate a symmetric key for PKCS#1 keys * * @param string $password * @param string $iv * @param int $length * @return string */ private static function generateSymmetricKey($password, $iv, $length) { } /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ protected static function load($key, $password) { } /** * Wrap a private key appropriately * * @param string $key * @param string $type * @param string $password * @param array $options optional * @return string */ protected static function wrapPrivateKey($key, $type, $password, array $options = []) { } /** * Wrap a public key appropriately * * @param string $key * @param string $type * @return string */ protected static function wrapPublicKey($key, $type) { } } /** * PKCS#8 Formatted Key Handler * * @author Jim Wigginton */ abstract class PKCS8 extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PKCS { /** * Default encryption algorithm * * @var string */ private static $defaultEncryptionAlgorithm = 'id-PBES2'; /** * Default encryption scheme * * Only used when defaultEncryptionAlgorithm is id-PBES2 * * @var string */ private static $defaultEncryptionScheme = 'aes128-CBC-PAD'; /** * Default PRF * * Only used when defaultEncryptionAlgorithm is id-PBES2 * * @var string */ private static $defaultPRF = 'id-hmacWithSHA256'; /** * Default Iteration Count * * @var int */ private static $defaultIterationCount = 2048; /** * OIDs loaded * * @var bool */ private static $oidsLoaded = \false; /** * Sets the default encryption algorithm * * @param string $algo */ public static function setEncryptionAlgorithm($algo) { } /** * Sets the default encryption algorithm for PBES2 * * @param string $algo */ public static function setEncryptionScheme($algo) { } /** * Sets the iteration count * * @param int $count */ public static function setIterationCount($count) { } /** * Sets the PRF for PBES2 * * @param string $algo */ public static function setPRF($algo) { } /** * Returns a SymmetricKey object based on a PBES1 $algo * * @return \phpseclib3\Crypt\Common\SymmetricKey * @param string $algo */ private static function getPBES1EncryptionObject($algo) { } /** * Returns a hash based on a PBES1 $algo * * @return string * @param string $algo */ private static function getPBES1Hash($algo) { } /** * Returns a KDF baesd on a PBES1 $algo * * @return string * @param string $algo */ private static function getPBES1KDF($algo) { } /** * Returns a SymmetricKey object baesd on a PBES2 $algo * * @return SymmetricKey * @param string $algo */ private static function getPBES2EncryptionObject($algo) { } /** * Initialize static variables * */ private static function initialize_static_variables() { } /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ protected static function load($key, $password = '') { } /** * Wrap a private key appropriately * * @param string $key * @param string $attr * @param mixed $params * @param string $password * @param string $oid optional * @param string $publicKey optional * @param array $options optional * @return string */ protected static function wrapPrivateKey($key, $attr, $params, $password, $oid = null, $publicKey = '', array $options = []) { } /** * Wrap a public key appropriately * * @param string $key * @param mixed $params * @param string $oid * @return string */ protected static function wrapPublicKey($key, $params, $oid = null) { } /** * Perform some preliminary parsing of the key * * @param string $key * @return array */ private static function preParse(&$key) { } /** * Returns the encryption parameters used by the key * * @param string $key * @return array */ public static function extractEncryptionAlgorithm($key) { } } /** * PuTTY Formatted Key Handler * * @author Jim Wigginton */ abstract class PuTTY { /** * Default comment * * @var string */ private static $comment = 'phpseclib-generated-key'; /** * Default version * * @var int */ private static $version = 2; /** * Sets the default comment * * @param string $comment */ public static function setComment($comment) { } /** * Sets the default version * * @param int $version */ public static function setVersion($version) { } /** * Generate a symmetric key for PuTTY v2 keys * * @param string $password * @param int $length * @return string */ private static function generateV2Key($password, $length) { } /** * Generate a symmetric key for PuTTY v3 keys * * @param string $password * @param string $flavour * @param int $memory * @param int $passes * @param string $salt * @return array */ private static function generateV3Key($password, $flavour, $memory, $passes, $salt) { } /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password * @return array */ public static function load($key, $password) { } /** * Wrap a private key appropriately * * @param string $public * @param string $private * @param string $type * @param string $password * @param array $options optional * @return string */ protected static function wrapPrivateKey($public, $private, $type, $password, array $options = []) { } /** * Wrap a public key appropriately * * This is basically the format described in RFC 4716 (https://tools.ietf.org/html/rfc4716) * * @param string $key * @param string $type * @return string */ protected static function wrapPublicKey($key, $type) { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Signature { /** * Raw Signature Handler * * @author Jim Wigginton */ abstract class Raw { /** * Loads a signature * * @param array $sig * @return array|bool */ public static function load($sig) { } /** * Returns a signature in the appropriate format * * @param BigInteger $r * @param BigInteger $s * @return string */ public static function save(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $r, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $s) { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\Common { /** * PrivateKey interface * * @author Jim Wigginton */ interface PrivateKey { public function sign($message); //public function decrypt($ciphertext); public function getPublicKey(); public function toString($type, array $options = []); /** * @param string|false $password * @return mixed */ public function withPassword($password = \false); } /** * PublicKey interface * * @author Jim Wigginton */ interface PublicKey { public function verify($message, $signature); //public function encrypt($plaintext); public function toString($type, array $options = []); public function getFingerprint($algorithm); } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\Common\Traits { /** * Fingerprint Trait for Private Keys * * @author Jim Wigginton */ trait Fingerprint { /** * Returns the public key's fingerprint * * The public key's fingerprint is returned, which is equivalent to running `ssh-keygen -lf rsa.pub`. If there is * no public key currently loaded, false is returned. * Example output (md5): "c1:b1:30:29:d7:b8:de:6c:97:77:10:d7:46:41:63:87" (as specified by RFC 4716) * * @param string $algorithm The hashing algorithm to be used. Valid options are 'md5' and 'sha256'. False is returned * for invalid values. * @return mixed */ public function getFingerprint($algorithm = 'md5') { } } /** * Password Protected Trait for Private Keys * * @author Jim Wigginton */ trait PasswordProtected { /** * Password * * @var string|bool */ private $password = \false; /** * Sets the password * * Private keys can be encrypted with a password. To unset the password, pass in the empty string or false. * Or rather, pass in $password such that empty($password) && !is_string($password) is true. * * @see self::createKey() * @see self::load() * @param string|bool $password */ public function withPassword($password = \false) { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt { /** * Pure-PHP implementation of DES. * * @author Jim Wigginton */ class DES extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\BlockCipher { /** * Contains $keys[self::ENCRYPT] * * @see \phpseclib3\Crypt\DES::setupKey() * @see \phpseclib3\Crypt\DES::processBlock() */ const ENCRYPT = 0; /** * Contains $keys[self::DECRYPT] * * @see \phpseclib3\Crypt\DES::setupKey() * @see \phpseclib3\Crypt\DES::processBlock() */ const DECRYPT = 1; /** * Block Length of the cipher * * @see \phpseclib3\Crypt\Common\SymmetricKey::block_size * @var int */ protected $block_size = 8; /** * Key Length (in bytes) * * @see \phpseclib3\Crypt\Common\SymmetricKey::setKeyLength() * @var int */ protected $key_length = 8; /** * The mcrypt specific name of the cipher * * @see \phpseclib3\Crypt\Common\SymmetricKey::cipher_name_mcrypt * @var string */ protected $cipher_name_mcrypt = 'des'; /** * The OpenSSL names of the cipher / modes * * @see \phpseclib3\Crypt\Common\SymmetricKey::openssl_mode_names * @var array */ protected $openssl_mode_names = [self::MODE_ECB => 'des-ecb', self::MODE_CBC => 'des-cbc', self::MODE_CFB => 'des-cfb', self::MODE_OFB => 'des-ofb']; /** * Optimizing value while CFB-encrypting * * @see \phpseclib3\Crypt\Common\SymmetricKey::cfb_init_len * @var int */ protected $cfb_init_len = 500; /** * Switch for DES/3DES encryption * * Used only if $engine == self::ENGINE_INTERNAL * * @see self::setupKey() * @see self::processBlock() * @var int */ protected $des_rounds = 1; /** * max possible size of $key * * @see self::setKey() * @var string */ protected $key_length_max = 8; /** * The Key Schedule * * @see self::setupKey() * @var array */ private $keys; /** * Key Cache "key" * * @see self::setupKey() * @var array */ private $kl; /** * Shuffle table. * * For each byte value index, the entry holds an 8-byte string * with each byte containing all bits in the same state as the * corresponding bit in the index value. * * @see self::processBlock() * @see self::setupKey() * @var array */ protected static $shuffle = ["\x00\x00\x00\x00\x00\x00\x00\x00", "\x00\x00\x00\x00\x00\x00\x00\xff", "\x00\x00\x00\x00\x00\x00\xff\x00", "\x00\x00\x00\x00\x00\x00\xff\xff", "\x00\x00\x00\x00\x00\xff\x00\x00", "\x00\x00\x00\x00\x00\xff\x00\xff", "\x00\x00\x00\x00\x00\xff\xff\x00", "\x00\x00\x00\x00\x00\xff\xff\xff", "\x00\x00\x00\x00\xff\x00\x00\x00", "\x00\x00\x00\x00\xff\x00\x00\xff", "\x00\x00\x00\x00\xff\x00\xff\x00", "\x00\x00\x00\x00\xff\x00\xff\xff", "\x00\x00\x00\x00\xff\xff\x00\x00", "\x00\x00\x00\x00\xff\xff\x00\xff", "\x00\x00\x00\x00\xff\xff\xff\x00", "\x00\x00\x00\x00\xff\xff\xff\xff", "\x00\x00\x00\xff\x00\x00\x00\x00", "\x00\x00\x00\xff\x00\x00\x00\xff", "\x00\x00\x00\xff\x00\x00\xff\x00", "\x00\x00\x00\xff\x00\x00\xff\xff", "\x00\x00\x00\xff\x00\xff\x00\x00", "\x00\x00\x00\xff\x00\xff\x00\xff", "\x00\x00\x00\xff\x00\xff\xff\x00", "\x00\x00\x00\xff\x00\xff\xff\xff", "\x00\x00\x00\xff\xff\x00\x00\x00", "\x00\x00\x00\xff\xff\x00\x00\xff", "\x00\x00\x00\xff\xff\x00\xff\x00", "\x00\x00\x00\xff\xff\x00\xff\xff", "\x00\x00\x00\xff\xff\xff\x00\x00", "\x00\x00\x00\xff\xff\xff\x00\xff", "\x00\x00\x00\xff\xff\xff\xff\x00", "\x00\x00\x00\xff\xff\xff\xff\xff", "\x00\x00\xff\x00\x00\x00\x00\x00", "\x00\x00\xff\x00\x00\x00\x00\xff", "\x00\x00\xff\x00\x00\x00\xff\x00", "\x00\x00\xff\x00\x00\x00\xff\xff", "\x00\x00\xff\x00\x00\xff\x00\x00", "\x00\x00\xff\x00\x00\xff\x00\xff", "\x00\x00\xff\x00\x00\xff\xff\x00", "\x00\x00\xff\x00\x00\xff\xff\xff", "\x00\x00\xff\x00\xff\x00\x00\x00", "\x00\x00\xff\x00\xff\x00\x00\xff", "\x00\x00\xff\x00\xff\x00\xff\x00", "\x00\x00\xff\x00\xff\x00\xff\xff", "\x00\x00\xff\x00\xff\xff\x00\x00", "\x00\x00\xff\x00\xff\xff\x00\xff", "\x00\x00\xff\x00\xff\xff\xff\x00", "\x00\x00\xff\x00\xff\xff\xff\xff", "\x00\x00\xff\xff\x00\x00\x00\x00", "\x00\x00\xff\xff\x00\x00\x00\xff", "\x00\x00\xff\xff\x00\x00\xff\x00", "\x00\x00\xff\xff\x00\x00\xff\xff", "\x00\x00\xff\xff\x00\xff\x00\x00", "\x00\x00\xff\xff\x00\xff\x00\xff", "\x00\x00\xff\xff\x00\xff\xff\x00", "\x00\x00\xff\xff\x00\xff\xff\xff", "\x00\x00\xff\xff\xff\x00\x00\x00", "\x00\x00\xff\xff\xff\x00\x00\xff", "\x00\x00\xff\xff\xff\x00\xff\x00", "\x00\x00\xff\xff\xff\x00\xff\xff", "\x00\x00\xff\xff\xff\xff\x00\x00", "\x00\x00\xff\xff\xff\xff\x00\xff", "\x00\x00\xff\xff\xff\xff\xff\x00", "\x00\x00\xff\xff\xff\xff\xff\xff", "\x00\xff\x00\x00\x00\x00\x00\x00", "\x00\xff\x00\x00\x00\x00\x00\xff", "\x00\xff\x00\x00\x00\x00\xff\x00", "\x00\xff\x00\x00\x00\x00\xff\xff", "\x00\xff\x00\x00\x00\xff\x00\x00", "\x00\xff\x00\x00\x00\xff\x00\xff", "\x00\xff\x00\x00\x00\xff\xff\x00", "\x00\xff\x00\x00\x00\xff\xff\xff", "\x00\xff\x00\x00\xff\x00\x00\x00", "\x00\xff\x00\x00\xff\x00\x00\xff", "\x00\xff\x00\x00\xff\x00\xff\x00", "\x00\xff\x00\x00\xff\x00\xff\xff", "\x00\xff\x00\x00\xff\xff\x00\x00", "\x00\xff\x00\x00\xff\xff\x00\xff", "\x00\xff\x00\x00\xff\xff\xff\x00", "\x00\xff\x00\x00\xff\xff\xff\xff", "\x00\xff\x00\xff\x00\x00\x00\x00", "\x00\xff\x00\xff\x00\x00\x00\xff", "\x00\xff\x00\xff\x00\x00\xff\x00", "\x00\xff\x00\xff\x00\x00\xff\xff", "\x00\xff\x00\xff\x00\xff\x00\x00", "\x00\xff\x00\xff\x00\xff\x00\xff", "\x00\xff\x00\xff\x00\xff\xff\x00", "\x00\xff\x00\xff\x00\xff\xff\xff", "\x00\xff\x00\xff\xff\x00\x00\x00", "\x00\xff\x00\xff\xff\x00\x00\xff", "\x00\xff\x00\xff\xff\x00\xff\x00", "\x00\xff\x00\xff\xff\x00\xff\xff", "\x00\xff\x00\xff\xff\xff\x00\x00", "\x00\xff\x00\xff\xff\xff\x00\xff", "\x00\xff\x00\xff\xff\xff\xff\x00", "\x00\xff\x00\xff\xff\xff\xff\xff", "\x00\xff\xff\x00\x00\x00\x00\x00", "\x00\xff\xff\x00\x00\x00\x00\xff", "\x00\xff\xff\x00\x00\x00\xff\x00", "\x00\xff\xff\x00\x00\x00\xff\xff", "\x00\xff\xff\x00\x00\xff\x00\x00", "\x00\xff\xff\x00\x00\xff\x00\xff", "\x00\xff\xff\x00\x00\xff\xff\x00", "\x00\xff\xff\x00\x00\xff\xff\xff", "\x00\xff\xff\x00\xff\x00\x00\x00", "\x00\xff\xff\x00\xff\x00\x00\xff", "\x00\xff\xff\x00\xff\x00\xff\x00", "\x00\xff\xff\x00\xff\x00\xff\xff", "\x00\xff\xff\x00\xff\xff\x00\x00", "\x00\xff\xff\x00\xff\xff\x00\xff", "\x00\xff\xff\x00\xff\xff\xff\x00", "\x00\xff\xff\x00\xff\xff\xff\xff", "\x00\xff\xff\xff\x00\x00\x00\x00", "\x00\xff\xff\xff\x00\x00\x00\xff", "\x00\xff\xff\xff\x00\x00\xff\x00", "\x00\xff\xff\xff\x00\x00\xff\xff", "\x00\xff\xff\xff\x00\xff\x00\x00", "\x00\xff\xff\xff\x00\xff\x00\xff", "\x00\xff\xff\xff\x00\xff\xff\x00", "\x00\xff\xff\xff\x00\xff\xff\xff", "\x00\xff\xff\xff\xff\x00\x00\x00", "\x00\xff\xff\xff\xff\x00\x00\xff", "\x00\xff\xff\xff\xff\x00\xff\x00", "\x00\xff\xff\xff\xff\x00\xff\xff", "\x00\xff\xff\xff\xff\xff\x00\x00", "\x00\xff\xff\xff\xff\xff\x00\xff", "\x00\xff\xff\xff\xff\xff\xff\x00", "\x00\xff\xff\xff\xff\xff\xff\xff", "\xff\x00\x00\x00\x00\x00\x00\x00", "\xff\x00\x00\x00\x00\x00\x00\xff", "\xff\x00\x00\x00\x00\x00\xff\x00", "\xff\x00\x00\x00\x00\x00\xff\xff", "\xff\x00\x00\x00\x00\xff\x00\x00", "\xff\x00\x00\x00\x00\xff\x00\xff", "\xff\x00\x00\x00\x00\xff\xff\x00", "\xff\x00\x00\x00\x00\xff\xff\xff", "\xff\x00\x00\x00\xff\x00\x00\x00", "\xff\x00\x00\x00\xff\x00\x00\xff", "\xff\x00\x00\x00\xff\x00\xff\x00", "\xff\x00\x00\x00\xff\x00\xff\xff", "\xff\x00\x00\x00\xff\xff\x00\x00", "\xff\x00\x00\x00\xff\xff\x00\xff", "\xff\x00\x00\x00\xff\xff\xff\x00", "\xff\x00\x00\x00\xff\xff\xff\xff", "\xff\x00\x00\xff\x00\x00\x00\x00", "\xff\x00\x00\xff\x00\x00\x00\xff", "\xff\x00\x00\xff\x00\x00\xff\x00", "\xff\x00\x00\xff\x00\x00\xff\xff", "\xff\x00\x00\xff\x00\xff\x00\x00", "\xff\x00\x00\xff\x00\xff\x00\xff", "\xff\x00\x00\xff\x00\xff\xff\x00", "\xff\x00\x00\xff\x00\xff\xff\xff", "\xff\x00\x00\xff\xff\x00\x00\x00", "\xff\x00\x00\xff\xff\x00\x00\xff", "\xff\x00\x00\xff\xff\x00\xff\x00", "\xff\x00\x00\xff\xff\x00\xff\xff", "\xff\x00\x00\xff\xff\xff\x00\x00", "\xff\x00\x00\xff\xff\xff\x00\xff", "\xff\x00\x00\xff\xff\xff\xff\x00", "\xff\x00\x00\xff\xff\xff\xff\xff", "\xff\x00\xff\x00\x00\x00\x00\x00", "\xff\x00\xff\x00\x00\x00\x00\xff", "\xff\x00\xff\x00\x00\x00\xff\x00", "\xff\x00\xff\x00\x00\x00\xff\xff", "\xff\x00\xff\x00\x00\xff\x00\x00", "\xff\x00\xff\x00\x00\xff\x00\xff", "\xff\x00\xff\x00\x00\xff\xff\x00", "\xff\x00\xff\x00\x00\xff\xff\xff", "\xff\x00\xff\x00\xff\x00\x00\x00", "\xff\x00\xff\x00\xff\x00\x00\xff", "\xff\x00\xff\x00\xff\x00\xff\x00", "\xff\x00\xff\x00\xff\x00\xff\xff", "\xff\x00\xff\x00\xff\xff\x00\x00", "\xff\x00\xff\x00\xff\xff\x00\xff", "\xff\x00\xff\x00\xff\xff\xff\x00", "\xff\x00\xff\x00\xff\xff\xff\xff", "\xff\x00\xff\xff\x00\x00\x00\x00", "\xff\x00\xff\xff\x00\x00\x00\xff", "\xff\x00\xff\xff\x00\x00\xff\x00", "\xff\x00\xff\xff\x00\x00\xff\xff", "\xff\x00\xff\xff\x00\xff\x00\x00", "\xff\x00\xff\xff\x00\xff\x00\xff", "\xff\x00\xff\xff\x00\xff\xff\x00", "\xff\x00\xff\xff\x00\xff\xff\xff", "\xff\x00\xff\xff\xff\x00\x00\x00", "\xff\x00\xff\xff\xff\x00\x00\xff", "\xff\x00\xff\xff\xff\x00\xff\x00", "\xff\x00\xff\xff\xff\x00\xff\xff", "\xff\x00\xff\xff\xff\xff\x00\x00", "\xff\x00\xff\xff\xff\xff\x00\xff", "\xff\x00\xff\xff\xff\xff\xff\x00", "\xff\x00\xff\xff\xff\xff\xff\xff", "\xff\xff\x00\x00\x00\x00\x00\x00", "\xff\xff\x00\x00\x00\x00\x00\xff", "\xff\xff\x00\x00\x00\x00\xff\x00", "\xff\xff\x00\x00\x00\x00\xff\xff", "\xff\xff\x00\x00\x00\xff\x00\x00", "\xff\xff\x00\x00\x00\xff\x00\xff", "\xff\xff\x00\x00\x00\xff\xff\x00", "\xff\xff\x00\x00\x00\xff\xff\xff", "\xff\xff\x00\x00\xff\x00\x00\x00", "\xff\xff\x00\x00\xff\x00\x00\xff", "\xff\xff\x00\x00\xff\x00\xff\x00", "\xff\xff\x00\x00\xff\x00\xff\xff", "\xff\xff\x00\x00\xff\xff\x00\x00", "\xff\xff\x00\x00\xff\xff\x00\xff", "\xff\xff\x00\x00\xff\xff\xff\x00", "\xff\xff\x00\x00\xff\xff\xff\xff", "\xff\xff\x00\xff\x00\x00\x00\x00", "\xff\xff\x00\xff\x00\x00\x00\xff", "\xff\xff\x00\xff\x00\x00\xff\x00", "\xff\xff\x00\xff\x00\x00\xff\xff", "\xff\xff\x00\xff\x00\xff\x00\x00", "\xff\xff\x00\xff\x00\xff\x00\xff", "\xff\xff\x00\xff\x00\xff\xff\x00", "\xff\xff\x00\xff\x00\xff\xff\xff", "\xff\xff\x00\xff\xff\x00\x00\x00", "\xff\xff\x00\xff\xff\x00\x00\xff", "\xff\xff\x00\xff\xff\x00\xff\x00", "\xff\xff\x00\xff\xff\x00\xff\xff", "\xff\xff\x00\xff\xff\xff\x00\x00", "\xff\xff\x00\xff\xff\xff\x00\xff", "\xff\xff\x00\xff\xff\xff\xff\x00", "\xff\xff\x00\xff\xff\xff\xff\xff", "\xff\xff\xff\x00\x00\x00\x00\x00", "\xff\xff\xff\x00\x00\x00\x00\xff", "\xff\xff\xff\x00\x00\x00\xff\x00", "\xff\xff\xff\x00\x00\x00\xff\xff", "\xff\xff\xff\x00\x00\xff\x00\x00", "\xff\xff\xff\x00\x00\xff\x00\xff", "\xff\xff\xff\x00\x00\xff\xff\x00", "\xff\xff\xff\x00\x00\xff\xff\xff", "\xff\xff\xff\x00\xff\x00\x00\x00", "\xff\xff\xff\x00\xff\x00\x00\xff", "\xff\xff\xff\x00\xff\x00\xff\x00", "\xff\xff\xff\x00\xff\x00\xff\xff", "\xff\xff\xff\x00\xff\xff\x00\x00", "\xff\xff\xff\x00\xff\xff\x00\xff", "\xff\xff\xff\x00\xff\xff\xff\x00", "\xff\xff\xff\x00\xff\xff\xff\xff", "\xff\xff\xff\xff\x00\x00\x00\x00", "\xff\xff\xff\xff\x00\x00\x00\xff", "\xff\xff\xff\xff\x00\x00\xff\x00", "\xff\xff\xff\xff\x00\x00\xff\xff", "\xff\xff\xff\xff\x00\xff\x00\x00", "\xff\xff\xff\xff\x00\xff\x00\xff", "\xff\xff\xff\xff\x00\xff\xff\x00", "\xff\xff\xff\xff\x00\xff\xff\xff", "\xff\xff\xff\xff\xff\x00\x00\x00", "\xff\xff\xff\xff\xff\x00\x00\xff", "\xff\xff\xff\xff\xff\x00\xff\x00", "\xff\xff\xff\xff\xff\x00\xff\xff", "\xff\xff\xff\xff\xff\xff\x00\x00", "\xff\xff\xff\xff\xff\xff\x00\xff", "\xff\xff\xff\xff\xff\xff\xff\x00", "\xff\xff\xff\xff\xff\xff\xff\xff"]; /** * IP mapping helper table. * * Indexing this table with each source byte performs the initial bit permutation. * * @var array */ protected static $ipmap = [0x0, 0x10, 0x1, 0x11, 0x20, 0x30, 0x21, 0x31, 0x2, 0x12, 0x3, 0x13, 0x22, 0x32, 0x23, 0x33, 0x40, 0x50, 0x41, 0x51, 0x60, 0x70, 0x61, 0x71, 0x42, 0x52, 0x43, 0x53, 0x62, 0x72, 0x63, 0x73, 0x4, 0x14, 0x5, 0x15, 0x24, 0x34, 0x25, 0x35, 0x6, 0x16, 0x7, 0x17, 0x26, 0x36, 0x27, 0x37, 0x44, 0x54, 0x45, 0x55, 0x64, 0x74, 0x65, 0x75, 0x46, 0x56, 0x47, 0x57, 0x66, 0x76, 0x67, 0x77, 0x80, 0x90, 0x81, 0x91, 0xa0, 0xb0, 0xa1, 0xb1, 0x82, 0x92, 0x83, 0x93, 0xa2, 0xb2, 0xa3, 0xb3, 0xc0, 0xd0, 0xc1, 0xd1, 0xe0, 0xf0, 0xe1, 0xf1, 0xc2, 0xd2, 0xc3, 0xd3, 0xe2, 0xf2, 0xe3, 0xf3, 0x84, 0x94, 0x85, 0x95, 0xa4, 0xb4, 0xa5, 0xb5, 0x86, 0x96, 0x87, 0x97, 0xa6, 0xb6, 0xa7, 0xb7, 0xc4, 0xd4, 0xc5, 0xd5, 0xe4, 0xf4, 0xe5, 0xf5, 0xc6, 0xd6, 0xc7, 0xd7, 0xe6, 0xf6, 0xe7, 0xf7, 0x8, 0x18, 0x9, 0x19, 0x28, 0x38, 0x29, 0x39, 0xa, 0x1a, 0xb, 0x1b, 0x2a, 0x3a, 0x2b, 0x3b, 0x48, 0x58, 0x49, 0x59, 0x68, 0x78, 0x69, 0x79, 0x4a, 0x5a, 0x4b, 0x5b, 0x6a, 0x7a, 0x6b, 0x7b, 0xc, 0x1c, 0xd, 0x1d, 0x2c, 0x3c, 0x2d, 0x3d, 0xe, 0x1e, 0xf, 0x1f, 0x2e, 0x3e, 0x2f, 0x3f, 0x4c, 0x5c, 0x4d, 0x5d, 0x6c, 0x7c, 0x6d, 0x7d, 0x4e, 0x5e, 0x4f, 0x5f, 0x6e, 0x7e, 0x6f, 0x7f, 0x88, 0x98, 0x89, 0x99, 0xa8, 0xb8, 0xa9, 0xb9, 0x8a, 0x9a, 0x8b, 0x9b, 0xaa, 0xba, 0xab, 0xbb, 0xc8, 0xd8, 0xc9, 0xd9, 0xe8, 0xf8, 0xe9, 0xf9, 0xca, 0xda, 0xcb, 0xdb, 0xea, 0xfa, 0xeb, 0xfb, 0x8c, 0x9c, 0x8d, 0x9d, 0xac, 0xbc, 0xad, 0xbd, 0x8e, 0x9e, 0x8f, 0x9f, 0xae, 0xbe, 0xaf, 0xbf, 0xcc, 0xdc, 0xcd, 0xdd, 0xec, 0xfc, 0xed, 0xfd, 0xce, 0xde, 0xcf, 0xdf, 0xee, 0xfe, 0xef, 0xff]; /** * Inverse IP mapping helper table. * Indexing this table with a byte value reverses the bit order. * * @var array */ protected static $invipmap = [0x0, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0, 0x8, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8, 0x4, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4, 0xc, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc, 0x2, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2, 0xa, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa, 0x6, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6, 0xe, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe, 0x1, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1, 0x9, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9, 0x5, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5, 0xd, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd, 0x3, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3, 0xb, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb, 0x7, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7, 0xf, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff]; /** * Pre-permuted S-box1 * * Each box ($sbox1-$sbox8) has been vectorized, then each value pre-permuted using the * P table: concatenation can then be replaced by exclusive ORs. * * @var array */ protected static $sbox1 = [0x808200, 0x0, 0x8000, 0x808202, 0x808002, 0x8202, 0x2, 0x8000, 0x200, 0x808200, 0x808202, 0x200, 0x800202, 0x808002, 0x800000, 0x2, 0x202, 0x800200, 0x800200, 0x8200, 0x8200, 0x808000, 0x808000, 0x800202, 0x8002, 0x800002, 0x800002, 0x8002, 0x0, 0x202, 0x8202, 0x800000, 0x8000, 0x808202, 0x2, 0x808000, 0x808200, 0x800000, 0x800000, 0x200, 0x808002, 0x8000, 0x8200, 0x800002, 0x200, 0x2, 0x800202, 0x8202, 0x808202, 0x8002, 0x808000, 0x800202, 0x800002, 0x202, 0x8202, 0x808200, 0x202, 0x800200, 0x800200, 0x0, 0x8002, 0x8200, 0x0, 0x808002]; /** * Pre-permuted S-box2 * * @var array */ protected static $sbox2 = [0x40084010, 0x40004000, 0x4000, 0x84010, 0x80000, 0x10, 0x40080010, 0x40004010, 0x40000010, 0x40084010, 0x40084000, 0x40000000, 0x40004000, 0x80000, 0x10, 0x40080010, 0x84000, 0x80010, 0x40004010, 0x0, 0x40000000, 0x4000, 0x84010, 0x40080000, 0x80010, 0x40000010, 0x0, 0x84000, 0x4010, 0x40084000, 0x40080000, 0x4010, 0x0, 0x84010, 0x40080010, 0x80000, 0x40004010, 0x40080000, 0x40084000, 0x4000, 0x40080000, 0x40004000, 0x10, 0x40084010, 0x84010, 0x10, 0x4000, 0x40000000, 0x4010, 0x40084000, 0x80000, 0x40000010, 0x80010, 0x40004010, 0x40000010, 0x80010, 0x84000, 0x0, 0x40004000, 0x4010, 0x40000000, 0x40080010, 0x40084010, 0x84000]; /** * Pre-permuted S-box3 * * @var array */ protected static $sbox3 = [0x104, 0x4010100, 0x0, 0x4010004, 0x4000100, 0x0, 0x10104, 0x4000100, 0x10004, 0x4000004, 0x4000004, 0x10000, 0x4010104, 0x10004, 0x4010000, 0x104, 0x4000000, 0x4, 0x4010100, 0x100, 0x10100, 0x4010000, 0x4010004, 0x10104, 0x4000104, 0x10100, 0x10000, 0x4000104, 0x4, 0x4010104, 0x100, 0x4000000, 0x4010100, 0x4000000, 0x10004, 0x104, 0x10000, 0x4010100, 0x4000100, 0x0, 0x100, 0x10004, 0x4010104, 0x4000100, 0x4000004, 0x100, 0x0, 0x4010004, 0x4000104, 0x10000, 0x4000000, 0x4010104, 0x4, 0x10104, 0x10100, 0x4000004, 0x4010000, 0x4000104, 0x104, 0x4010000, 0x10104, 0x4, 0x4010004, 0x10100]; /** * Pre-permuted S-box4 * * @var array */ protected static $sbox4 = [0x80401000, 0x80001040, 0x80001040, 0x40, 0x401040, 0x80400040, 0x80400000, 0x80001000, 0x0, 0x401000, 0x401000, 0x80401040, 0x80000040, 0x0, 0x400040, 0x80400000, 0x80000000, 0x1000, 0x400000, 0x80401000, 0x40, 0x400000, 0x80001000, 0x1040, 0x80400040, 0x80000000, 0x1040, 0x400040, 0x1000, 0x401040, 0x80401040, 0x80000040, 0x400040, 0x80400000, 0x401000, 0x80401040, 0x80000040, 0x0, 0x0, 0x401000, 0x1040, 0x400040, 0x80400040, 0x80000000, 0x80401000, 0x80001040, 0x80001040, 0x40, 0x80401040, 0x80000040, 0x80000000, 0x1000, 0x80400000, 0x80001000, 0x401040, 0x80400040, 0x80001000, 0x1040, 0x400000, 0x80401000, 0x40, 0x400000, 0x1000, 0x401040]; /** * Pre-permuted S-box5 * * @var array */ protected static $sbox5 = [0x80, 0x1040080, 0x1040000, 0x21000080, 0x40000, 0x80, 0x20000000, 0x1040000, 0x20040080, 0x40000, 0x1000080, 0x20040080, 0x21000080, 0x21040000, 0x40080, 0x20000000, 0x1000000, 0x20040000, 0x20040000, 0x0, 0x20000080, 0x21040080, 0x21040080, 0x1000080, 0x21040000, 0x20000080, 0x0, 0x21000000, 0x1040080, 0x1000000, 0x21000000, 0x40080, 0x40000, 0x21000080, 0x80, 0x1000000, 0x20000000, 0x1040000, 0x21000080, 0x20040080, 0x1000080, 0x20000000, 0x21040000, 0x1040080, 0x20040080, 0x80, 0x1000000, 0x21040000, 0x21040080, 0x40080, 0x21000000, 0x21040080, 0x1040000, 0x0, 0x20040000, 0x21000000, 0x40080, 0x1000080, 0x20000080, 0x40000, 0x0, 0x20040000, 0x1040080, 0x20000080]; /** * Pre-permuted S-box6 * * @var array */ protected static $sbox6 = [0x10000008, 0x10200000, 0x2000, 0x10202008, 0x10200000, 0x8, 0x10202008, 0x200000, 0x10002000, 0x202008, 0x200000, 0x10000008, 0x200008, 0x10002000, 0x10000000, 0x2008, 0x0, 0x200008, 0x10002008, 0x2000, 0x202000, 0x10002008, 0x8, 0x10200008, 0x10200008, 0x0, 0x202008, 0x10202000, 0x2008, 0x202000, 0x10202000, 0x10000000, 0x10002000, 0x8, 0x10200008, 0x202000, 0x10202008, 0x200000, 0x2008, 0x10000008, 0x200000, 0x10002000, 0x10000000, 0x2008, 0x10000008, 0x10202008, 0x202000, 0x10200000, 0x202008, 0x10202000, 0x0, 0x10200008, 0x8, 0x2000, 0x10200000, 0x202008, 0x2000, 0x200008, 0x10002008, 0x0, 0x10202000, 0x10000000, 0x200008, 0x10002008]; /** * Pre-permuted S-box7 * * @var array */ protected static $sbox7 = [0x100000, 0x2100001, 0x2000401, 0x0, 0x400, 0x2000401, 0x100401, 0x2100400, 0x2100401, 0x100000, 0x0, 0x2000001, 0x1, 0x2000000, 0x2100001, 0x401, 0x2000400, 0x100401, 0x100001, 0x2000400, 0x2000001, 0x2100000, 0x2100400, 0x100001, 0x2100000, 0x400, 0x401, 0x2100401, 0x100400, 0x1, 0x2000000, 0x100400, 0x2000000, 0x100400, 0x100000, 0x2000401, 0x2000401, 0x2100001, 0x2100001, 0x1, 0x100001, 0x2000000, 0x2000400, 0x100000, 0x2100400, 0x401, 0x100401, 0x2100400, 0x401, 0x2000001, 0x2100401, 0x2100000, 0x100400, 0x0, 0x1, 0x2100401, 0x0, 0x100401, 0x2100000, 0x400, 0x2000001, 0x2000400, 0x400, 0x100001]; /** * Pre-permuted S-box8 * * @var array */ protected static $sbox8 = [0x8000820, 0x800, 0x20000, 0x8020820, 0x8000000, 0x8000820, 0x20, 0x8000000, 0x20020, 0x8020000, 0x8020820, 0x20800, 0x8020800, 0x20820, 0x800, 0x20, 0x8020000, 0x8000020, 0x8000800, 0x820, 0x20800, 0x20020, 0x8020020, 0x8020800, 0x820, 0x0, 0x0, 0x8020020, 0x8000020, 0x8000800, 0x20820, 0x20000, 0x20820, 0x20000, 0x8020800, 0x800, 0x20, 0x8020020, 0x800, 0x20820, 0x8000800, 0x20, 0x8000020, 0x8020000, 0x8020020, 0x8000000, 0x20000, 0x8000820, 0x0, 0x8020820, 0x20020, 0x8000020, 0x8020000, 0x8000800, 0x8000820, 0x0, 0x8020820, 0x20800, 0x20800, 0x820, 0x820, 0x20020, 0x8000000, 0x8020800]; /** * Default Constructor. * * @param string $mode * @throws BadModeException if an invalid / unsupported mode is provided */ public function __construct($mode) { } /** * Test for engine validity * * This is mainly just a wrapper to set things up for \phpseclib3\Crypt\Common\SymmetricKey::isValidEngine() * * @see \phpseclib3\Crypt\Common\SymmetricKey::isValidEngine() * @param int $engine * @return bool */ protected function isValidEngineHelper($engine) { } /** * Sets the key. * * Keys must be 64-bits long or 8 bytes long. * * DES also requires that every eighth bit be a parity bit, however, we'll ignore that. * * @see \phpseclib3\Crypt\Common\SymmetricKey::setKey() * @param string $key */ public function setKey($key) { } /** * Encrypts a block * * @see \phpseclib3\Crypt\Common\SymmetricKey::encryptBlock() * @see \phpseclib3\Crypt\Common\SymmetricKey::encrypt() * @see self::encrypt() * @param string $in * @return string */ protected function encryptBlock($in) { } /** * Decrypts a block * * @see \phpseclib3\Crypt\Common\SymmetricKey::decryptBlock() * @see \phpseclib3\Crypt\Common\SymmetricKey::decrypt() * @see self::decrypt() * @param string $in * @return string */ protected function decryptBlock($in) { } /** * Encrypts or decrypts a 64-bit block * * $mode should be either self::ENCRYPT or self::DECRYPT. See * {@link http://en.wikipedia.org/wiki/Image:Feistel.png Feistel.png} to get a general * idea of what this function does. * * @see self::encryptBlock() * @see self::decryptBlock() * @param string $block * @param int $mode * @return string */ private function processBlock($block, $mode) { } /** * Creates the key schedule * * @see \phpseclib3\Crypt\Common\SymmetricKey::setupKey() */ protected function setupKey() { } /** * Setup the performance-optimized function for de/encrypt() * * @see \phpseclib3\Crypt\Common\SymmetricKey::setupInlineCrypt() */ protected function setupInlineCrypt() { } } /** * Pure-PHP (EC)DH implementation * * @author Jim Wigginton */ abstract class DH extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\AsymmetricKey { /** * Algorithm Name * * @var string */ const ALGORITHM = 'DH'; /** * DH prime * * @var BigInteger */ protected $prime; /** * DH Base * * Prime divisor of p-1 * * @var BigInteger */ protected $base; /** * Public Key * * @var BigInteger */ protected $publicKey; /** * Create DH parameters * * This method is a bit polymorphic. It can take any of the following: * - two BigInteger's (prime and base) * - an integer representing the size of the prime in bits (the base is assumed to be 2) * - a string (eg. diffie-hellman-group14-sha1) * * @return Parameters */ public static function createParameters(...$args) { } /** * Create public / private key pair. * * The rationale for the second parameter is described in http://tools.ietf.org/html/rfc4419#section-6.2 : * * "To increase the speed of the key exchange, both client and server may * reduce the size of their private exponents. It should be at least * twice as long as the key material that is generated from the shared * secret. For more details, see the paper by van Oorschot and Wiener * [VAN-OORSCHOT]." * * $length is in bits * * @param Parameters $params * @param int $length optional * @return PrivateKey */ public static function createKey(\ForminatorGoogleAddon\phpseclib3\Crypt\DH\Parameters $params, $length = 0) { } /** * Compute Shared Secret * * @param PrivateKey|EC $private * @param PublicKey|BigInteger|string $public * @return mixed */ public static function computeSecret($private, $public) { } /** * Load the key * * @param string $key * @param string $password optional * @return AsymmetricKey */ public static function load($key, $password = \false) { } /** * OnLoad Handler * * @return bool */ protected static function onLoad(array $components) { } /** * Determines which hashing function should be used * * @param string $hash */ public function withHash($hash) { } /** * Returns the hash algorithm currently being used * */ public function getHash() { } /** * Returns the parameters * * A public / private key is only returned if the currently loaded "key" contains an x or y * value. * * @see self::getPublicKey() * @return mixed */ public function getParameters() { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\DH\Formats\Keys { /** * "PKCS1" Formatted DH Key Handler * * @author Jim Wigginton */ abstract class PKCS1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PKCS1 { /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert EC parameters to the appropriate format * * @return string */ public static function saveParameters(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $prime, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $base, array $options = []) { } } /** * PKCS#8 Formatted DH Key Handler * * @author Jim Wigginton */ abstract class PKCS8 extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PKCS8 { /** * OID Name * * @var string */ const OID_NAME = 'dhKeyAgreement'; /** * OID Value * * @var string */ const OID_VALUE = '1.2.840.113549.1.3.1'; /** * Child OIDs loaded * * @var bool */ protected static $childOIDsLoaded = \false; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a private key to the appropriate format. * * @param BigInteger $prime * @param BigInteger $base * @param BigInteger $privateKey * @param BigInteger $publicKey * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $prime, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $base, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $privateKey, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $publicKey, $password = '', array $options = []) { } /** * Convert a public key to the appropriate format * * @param BigInteger $prime * @param BigInteger $base * @param BigInteger $publicKey * @param array $options optional * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $prime, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $base, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $publicKey, array $options = []) { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\DH { /** * DH Parameters * * @author Jim Wigginton */ final class Parameters extends \ForminatorGoogleAddon\phpseclib3\Crypt\DH { /** * Returns the parameters * * @param string $type * @param array $options optional * @return string */ public function toString($type = 'PKCS1', array $options = []) { } } /** * DH Private Key * * @author Jim Wigginton */ final class PrivateKey extends \ForminatorGoogleAddon\phpseclib3\Crypt\DH { use \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Traits\PasswordProtected; /** * Private Key * * @var \phpseclib3\Math\BigInteger */ protected $privateKey; /** * Public Key * * @var \phpseclib3\Math\BigInteger */ protected $publicKey; /** * Returns the public key * * @return PublicKey */ public function getPublicKey() { } /** * Returns the private key * * @param string $type * @param array $options optional * @return string */ public function toString($type, array $options = []) { } } /** * DH Public Key * * @author Jim Wigginton */ final class PublicKey extends \ForminatorGoogleAddon\phpseclib3\Crypt\DH { use \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Traits\Fingerprint; /** * Returns the public key * * @param string $type * @param array $options optional * @return string */ public function toString($type, array $options = []) { } /** * Returns the public key as a BigInteger * * @return \phpseclib3\Math\BigInteger */ public function toBigInteger() { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt { /** * Pure-PHP FIPS 186-4 compliant implementation of DSA. * * @author Jim Wigginton */ abstract class DSA extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\AsymmetricKey { /** * Algorithm Name * * @var string */ const ALGORITHM = 'DSA'; /** * DSA Prime P * * @var BigInteger */ protected $p; /** * DSA Group Order q * * Prime divisor of p-1 * * @var BigInteger */ protected $q; /** * DSA Group Generator G * * @var BigInteger */ protected $g; /** * DSA public key value y * * @var BigInteger */ protected $y; /** * Signature Format * * @var string */ protected $sigFormat; /** * Signature Format (Short) * * @var string */ protected $shortFormat; /** * Create DSA parameters * * @param int $L * @param int $N * @return DSA|bool */ public static function createParameters($L = 2048, $N = 224) { } /** * Create public / private key pair. * * This method is a bit polymorphic. It can take a DSA/Parameters object, L / N as two distinct parameters or * no parameters (at which point L and N will be generated with this method) * * Returns the private key, from which the publickey can be extracted * * @param int[] ...$args * @return PrivateKey */ public static function createKey(...$args) { } /** * OnLoad Handler * * @return bool */ protected static function onLoad(array $components) { } /** * Constructor * * PublicKey and PrivateKey objects can only be created from abstract RSA class */ protected function __construct() { } /** * Returns the key size * * More specifically, this L (the length of DSA Prime P) and N (the length of DSA Group Order q) * * @return array */ public function getLength() { } /** * Returns the current engine being used * * @see self::useInternalEngine() * @see self::useBestEngine() * @return string */ public function getEngine() { } /** * Returns the parameters * * A public / private key is only returned if the currently loaded "key" contains an x or y * value. * * @see self::getPublicKey() * @return mixed */ public function getParameters() { } /** * Determines the signature padding mode * * Valid values are: ASN1, SSH2, Raw * * @param string $format */ public function withSignatureFormat($format) { } /** * Returns the signature format currently being used * */ public function getSignatureFormat() { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\DSA\Formats\Keys { /** * OpenSSH Formatted DSA Key Handler * * @author Jim Wigginton */ abstract class OpenSSH extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\OpenSSH { /** * Supported Key Types * * @var array */ protected static $types = ['ssh-dss']; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a public key to the appropriate format * * @param BigInteger $p * @param BigInteger $q * @param BigInteger $g * @param BigInteger $y * @param array $options optional * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $q, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $g, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y, array $options = []) { } /** * Convert a private key to the appropriate format. * * @param BigInteger $p * @param BigInteger $q * @param BigInteger $g * @param BigInteger $y * @param BigInteger $x * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $q, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $g, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x, $password = '', array $options = []) { } } /** * PKCS#1 Formatted DSA Key Handler * * @author Jim Wigginton */ abstract class PKCS1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PKCS1 { /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert DSA parameters to the appropriate format * * @param BigInteger $p * @param BigInteger $q * @param BigInteger $g * @return string */ public static function saveParameters(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $q, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $g) { } /** * Convert a private key to the appropriate format. * * @param BigInteger $p * @param BigInteger $q * @param BigInteger $g * @param BigInteger $y * @param BigInteger $x * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $q, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $g, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x, $password = '', array $options = []) { } /** * Convert a public key to the appropriate format * * @param BigInteger $p * @param BigInteger $q * @param BigInteger $g * @param BigInteger $y * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $q, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $g, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y) { } } /** * PKCS#8 Formatted DSA Key Handler * * @author Jim Wigginton */ abstract class PKCS8 extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PKCS8 { /** * OID Name * * @var string */ const OID_NAME = 'id-dsa'; /** * OID Value * * @var string */ const OID_VALUE = '1.2.840.10040.4.1'; /** * Child OIDs loaded * * @var bool */ protected static $childOIDsLoaded = \false; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a private key to the appropriate format. * * @param BigInteger $p * @param BigInteger $q * @param BigInteger $g * @param BigInteger $y * @param BigInteger $x * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $q, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $g, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x, $password = '', array $options = []) { } /** * Convert a public key to the appropriate format * * @param BigInteger $p * @param BigInteger $q * @param BigInteger $g * @param BigInteger $y * @param array $options optional * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $q, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $g, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y, array $options = []) { } } /** * PuTTY Formatted DSA Key Handler * * @author Jim Wigginton */ abstract class PuTTY extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PuTTY { /** * Public Handler * * @var string */ const PUBLIC_HANDLER = 'ForminatorGoogleAddon\phpseclib3\Crypt\DSA\Formats\Keys\OpenSSH'; /** * Algorithm Identifier * * @var array */ protected static $types = ['ssh-dss']; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a private key to the appropriate format. * * @param BigInteger $p * @param BigInteger $q * @param BigInteger $g * @param BigInteger $y * @param BigInteger $x * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $q, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $g, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x, $password = \false, array $options = []) { } /** * Convert a public key to the appropriate format * * @param BigInteger $p * @param BigInteger $q * @param BigInteger $g * @param BigInteger $y * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $q, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $g, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y) { } } /** * Raw DSA Key Handler * * @author Jim Wigginton */ abstract class Raw { /** * Break a public or private key down into its constituent components * * @param array $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a private key to the appropriate format. * * @param BigInteger $p * @param BigInteger $q * @param BigInteger $g * @param BigInteger $y * @param BigInteger $x * @param string $password optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $q, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $g, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x, $password = '') { } /** * Convert a public key to the appropriate format * * @param BigInteger $p * @param BigInteger $q * @param BigInteger $g * @param BigInteger $y * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $q, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $g, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y) { } } /** * XML Formatted DSA Key Handler * * @author Jim Wigginton */ abstract class XML { /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a public key to the appropriate format * * See https://www.w3.org/TR/xmldsig-core/#sec-DSAKeyValue * * @param BigInteger $p * @param BigInteger $q * @param BigInteger $g * @param BigInteger $y * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $q, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $g, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y) { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\DSA\Formats\Signature { /** * ASN1 Signature Handler * * @author Jim Wigginton */ abstract class ASN1 { /** * Loads a signature * * @param string $sig * @return array|bool */ public static function load($sig) { } /** * Returns a signature in the appropriate format * * @param BigInteger $r * @param BigInteger $s * @return string */ public static function save(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $r, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $s) { } } /** * Raw DSA Signature Handler * * @author Jim Wigginton */ abstract class Raw extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Signature\Raw { } /** * SSH2 Signature Handler * * @author Jim Wigginton */ abstract class SSH2 { /** * Loads a signature * * @param string $sig * @return mixed */ public static function load($sig) { } /** * Returns a signature in the appropriate format * * @param BigInteger $r * @param BigInteger $s * @return string */ public static function save(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $r, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $s) { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\DSA { /** * DSA Parameters * * @author Jim Wigginton */ final class Parameters extends \ForminatorGoogleAddon\phpseclib3\Crypt\DSA { /** * Returns the parameters * * @param string $type * @param array $options optional * @return string */ public function toString($type = 'PKCS1', array $options = []) { } } /** * DSA Private Key * * @author Jim Wigginton */ final class PrivateKey extends \ForminatorGoogleAddon\phpseclib3\Crypt\DSA implements \ForminatorGoogleAddon\phpseclib3\Crypt\Common\PrivateKey { use \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Traits\PasswordProtected; /** * DSA secret exponent x * * @var BigInteger */ protected $x; /** * Returns the public key * * If you do "openssl rsa -in private.rsa -pubout -outform PEM" you get a PKCS8 formatted key * that contains a publicKeyAlgorithm AlgorithmIdentifier and a publicKey BIT STRING. * An AlgorithmIdentifier contains an OID and a parameters field. With RSA public keys this * parameters field is NULL. With DSA PKCS8 public keys it is not - it contains the p, q and g * variables. The publicKey BIT STRING contains, simply, the y variable. This can be verified * by getting a DSA PKCS8 public key: * * "openssl dsa -in private.dsa -pubout -outform PEM" * * ie. just swap out rsa with dsa in the rsa command above. * * A PKCS1 public key corresponds to the publicKey portion of the PKCS8 key. In the case of RSA * the publicKey portion /is/ the key. In the case of DSA it is not. You cannot verify a signature * without the parameters and the PKCS1 DSA public key format does not include the parameters. * * @see self::getPrivateKey() * @return mixed */ public function getPublicKey() { } /** * Create a signature * * @see self::verify() * @param string $message * @return mixed */ public function sign($message) { } /** * Returns the private key * * @param string $type * @param array $options optional * @return string */ public function toString($type, array $options = []) { } } /** * DSA Public Key * * @author Jim Wigginton */ final class PublicKey extends \ForminatorGoogleAddon\phpseclib3\Crypt\DSA implements \ForminatorGoogleAddon\phpseclib3\Crypt\Common\PublicKey { use \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Traits\Fingerprint; /** * Verify a signature * * @see self::verify() * @param string $message * @param string $signature * @return mixed */ public function verify($message, $signature) { } /** * Returns the public key * * @param string $type * @param array $options optional * @return string */ public function toString($type, array $options = []) { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt { /** * Pure-PHP implementation of EC. * * @author Jim Wigginton */ abstract class EC extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\AsymmetricKey { /** * Algorithm Name * * @var string */ const ALGORITHM = 'EC'; /** * Public Key QA * * @var object[] */ protected $QA; /** * Curve * * @var EC\BaseCurves\Base */ protected $curve; /** * Signature Format * * @var string */ protected $format; /** * Signature Format (Short) * * @var string */ protected $shortFormat; /** * Curve Name * * @var string */ private $curveName; /** * Curve Order * * Used for deterministic ECDSA * * @var BigInteger */ protected $q; /** * Alias for the private key * * Used for deterministic ECDSA. AsymmetricKey expects $x. I don't like x because * with x you have x * the base point yielding an (x, y)-coordinate that is the * public key. But the x is different depending on which side of the equal sign * you're on. It's less ambiguous if you do dA * base point = (x, y)-coordinate. * * @var BigInteger */ protected $x; /** * Context * * @var string */ protected $context; /** * Signature Format * * @var string */ protected $sigFormat; /** * Create public / private key pair. * * @param string $curve * @return PrivateKey */ public static function createKey($curve) { } /** * OnLoad Handler * * @return bool */ protected static function onLoad(array $components) { } /** * Constructor * * PublicKey and PrivateKey objects can only be created from abstract RSA class */ protected function __construct() { } /** * Returns the curve * * Returns a string if it's a named curve, an array if not * * @return string|array */ public function getCurve() { } /** * Returns the key size * * Quoting https://tools.ietf.org/html/rfc5656#section-2, * * "The size of a set of elliptic curve domain parameters on a prime * curve is defined as the number of bits in the binary representation * of the field order, commonly denoted by p. Size on a * characteristic-2 curve is defined as the number of bits in the binary * representation of the field, commonly denoted by m. A set of * elliptic curve domain parameters defines a group of order n generated * by a base point P" * * @return int */ public function getLength() { } /** * Returns the current engine being used * * @see self::useInternalEngine() * @see self::useBestEngine() * @return string */ public function getEngine() { } /** * Returns the public key coordinates as a string * * Used by ECDH * * @return string */ public function getEncodedCoordinates() { } /** * Returns the parameters * * @see self::getPublicKey() * @param string $type optional * @return mixed */ public function getParameters($type = 'PKCS1') { } /** * Determines the signature padding mode * * Valid values are: ASN1, SSH2, Raw * * @param string $format */ public function withSignatureFormat($format) { } /** * Returns the signature format currently being used * */ public function getSignatureFormat() { } /** * Sets the context * * Used by Ed25519 / Ed448. * * @see self::sign() * @see self::verify() * @param string $context optional */ public function withContext($context = null) { } /** * Returns the signature format currently being used * */ public function getContext() { } /** * Determines which hashing function should be used * * @param string $hash */ public function withHash($hash) { } /** * __toString() magic method * * @return string */ public function __toString() { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves { /** * Base * * @author Jim Wigginton */ abstract class Base { /** * The Order * * @var BigInteger */ protected $order; /** * Finite Field Integer factory * * @var FiniteField\Integer */ protected $factory; /** * Returns a random integer * * @return object */ public function randomInteger() { } /** * Converts a BigInteger to a FiniteField\Integer integer * * @return object */ public function convertInteger(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x) { } /** * Returns the length, in bytes, of the modulo * * @return integer */ public function getLengthInBytes() { } /** * Returns the length, in bits, of the modulo * * @return integer */ public function getLength() { } /** * Multiply a point on the curve by a scalar * * Uses the montgomery ladder technique as described here: * * https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication#Montgomery_ladder * https://github.com/phpecc/phpecc/issues/16#issuecomment-59176772 * * @return array */ public function multiplyPoint(array $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $d) { } /** * Creates a random scalar multiplier * * @return BigInteger */ public function createRandomMultiplier() { } /** * Performs range check */ public function rangeCheck(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x) { } /** * Sets the Order */ public function setOrder(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $order) { } /** * Returns the Order * * @return BigInteger */ public function getOrder() { } /** * Use a custom defined modular reduction function * * @return object */ public function setReduction(callable $func) { } /** * Returns the affine point * * @return object[] */ public function convertToAffine(array $p) { } /** * Converts an affine point to a jacobian coordinate * * @return object[] */ public function convertToInternal(array $p) { } /** * Negates a point * * @return object[] */ public function negatePoint(array $p) { } /** * Multiply and Add Points * * @return int[] */ public function multiplyAddPoints(array $points, array $scalars) { } } /** * Curves over y^2 + x*y = x^3 + a*x^2 + b * * @author Jim Wigginton */ class Binary extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base { /** * Binary Field Integer factory * * @var BinaryField */ protected $factory; /** * Cofficient for x^1 * * @var object */ protected $a; /** * Cofficient for x^0 * * @var object */ protected $b; /** * Base Point * * @var object */ protected $p; /** * The number one over the specified finite field * * @var object */ protected $one; /** * The modulo * * @var BigInteger */ protected $modulo; /** * The Order * * @var BigInteger */ protected $order; /** * Sets the modulo */ public function setModulo(...$modulo) { } /** * Set coefficients a and b * * @param string $a * @param string $b */ public function setCoefficients($a, $b) { } /** * Set x and y coordinates for the base point * * @param string|BinaryInteger $x * @param string|BinaryInteger $y */ public function setBasePoint($x, $y) { } /** * Retrieve the base point as an array * * @return array */ public function getBasePoint() { } /** * Adds two points on the curve * * @return FiniteField[] */ public function addPoint(array $p, array $q) { } /** * Doubles a point on a curve * * @return FiniteField[] */ public function doublePoint(array $p) { } /** * Returns the X coordinate and the derived Y coordinate * * Not supported because it is covered by patents. * Quoting https://www.openssl.org/docs/man1.1.0/apps/ecparam.html , * * "Due to patent issues the compressed option is disabled by default for binary curves * and can be enabled by defining the preprocessor macro OPENSSL_EC_BIN_PT_COMP at * compile time." * * @return array */ public function derivePoint($m) { } /** * Tests whether or not the x / y values satisfy the equation * * @return boolean */ public function verifyPoint(array $p) { } /** * Returns the modulo * * @return BigInteger */ public function getModulo() { } /** * Returns the a coefficient * * @return \phpseclib3\Math\PrimeField\Integer */ public function getA() { } /** * Returns the a coefficient * * @return \phpseclib3\Math\PrimeField\Integer */ public function getB() { } /** * Returns the affine point * * A Jacobian Coordinate is of the form (x, y, z). * To convert a Jacobian Coordinate to an Affine Point * you do (x / z^2, y / z^3) * * @return \phpseclib3\Math\PrimeField\Integer[] */ public function convertToAffine(array $p) { } /** * Converts an affine point to a jacobian coordinate * * @return \phpseclib3\Math\PrimeField\Integer[] */ public function convertToInternal(array $p) { } } /** * Curves over y^2 = x^3 + a*x + b * * @author Jim Wigginton */ class Prime extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base { /** * Prime Field Integer factory * * @var \phpseclib3\Math\PrimeFields */ protected $factory; /** * Cofficient for x^1 * * @var object */ protected $a; /** * Cofficient for x^0 * * @var object */ protected $b; /** * Base Point * * @var object */ protected $p; /** * The number one over the specified finite field * * @var object */ protected $one; /** * The number two over the specified finite field * * @var object */ protected $two; /** * The number three over the specified finite field * * @var object */ protected $three; /** * The number four over the specified finite field * * @var object */ protected $four; /** * The number eight over the specified finite field * * @var object */ protected $eight; /** * The modulo * * @var BigInteger */ protected $modulo; /** * The Order * * @var BigInteger */ protected $order; /** * Sets the modulo */ public function setModulo(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $modulo) { } /** * Set coefficients a and b */ public function setCoefficients(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $a, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $b) { } /** * Set x and y coordinates for the base point * * @param BigInteger|PrimeInteger $x * @param BigInteger|PrimeInteger $y * @return PrimeInteger[] */ public function setBasePoint($x, $y) { } /** * Retrieve the base point as an array * * @return array */ public function getBasePoint() { } /** * Adds two "fresh" jacobian form on the curve * * @return FiniteField[] */ protected function jacobianAddPointMixedXY(array $p, array $q) { } /** * Adds one "fresh" jacobian form on the curve * * The second parameter should be the "fresh" one * * @return FiniteField[] */ protected function jacobianAddPointMixedX(array $p, array $q) { } /** * Adds two jacobian coordinates on the curve * * @return FiniteField[] */ protected function jacobianAddPoint(array $p, array $q) { } /** * Adds two points on the curve * * @return FiniteField[] */ public function addPoint(array $p, array $q) { } /** * Returns the numerator and denominator of the slope * * @return FiniteField[] */ protected function doublePointHelper(array $p) { } /** * Doubles a jacobian coordinate on the curve * * @return FiniteField[] */ protected function jacobianDoublePoint(array $p) { } /** * Doubles a "fresh" jacobian coordinate on the curve * * @return FiniteField[] */ protected function jacobianDoublePointMixed(array $p) { } /** * Doubles a point on a curve * * @return FiniteField[] */ public function doublePoint(array $p) { } /** * Returns the X coordinate and the derived Y coordinate * * @return array */ public function derivePoint($m) { } /** * Tests whether or not the x / y values satisfy the equation * * @return boolean */ public function verifyPoint(array $p) { } /** * Returns the modulo * * @return BigInteger */ public function getModulo() { } /** * Returns the a coefficient * * @return PrimeInteger */ public function getA() { } /** * Returns the a coefficient * * @return PrimeInteger */ public function getB() { } /** * Multiply and Add Points * * Adapted from: * https://github.com/indutny/elliptic/blob/725bd91/lib/elliptic/curve/base.js#L125 * * @return int[] */ public function multiplyAddPoints(array $points, array $scalars) { } /** * Precomputes NAF points * * Adapted from: * https://github.com/indutny/elliptic/blob/725bd91/lib/elliptic/curve/base.js#L351 * * @return int[] */ private function getNAFPoints(array $point, $wnd) { } /** * Precomputes points in Joint Sparse Form * * Adapted from: * https://github.com/indutny/elliptic/blob/725bd91/lib/elliptic/utils.js#L96 * * @return int[] */ private static function getJSFPoints(\ForminatorGoogleAddon\phpseclib3\Math\Common\FiniteField\Integer $k1, \ForminatorGoogleAddon\phpseclib3\Math\Common\FiniteField\Integer $k2) { } /** * Returns the affine point * * A Jacobian Coordinate is of the form (x, y, z). * To convert a Jacobian Coordinate to an Affine Point * you do (x / z^2, y / z^3) * * @return \phpseclib3\Math\PrimeField\Integer[] */ public function convertToAffine(array $p) { } /** * Converts an affine point to a jacobian coordinate * * @return \phpseclib3\Math\PrimeField\Integer[] */ public function convertToInternal(array $p) { } } /** * Curves over y^2 = x^3 + b * * @author Jim Wigginton */ class KoblitzPrime extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { /** * Basis * * @var list */ protected $basis; /** * Beta * * @var PrimeField\Integer */ protected $beta; // don't overwrite setCoefficients() with one that only accepts one parameter so that // one might be able to switch between KoblitzPrime and Prime more easily (for benchmarking // purposes). /** * Multiply and Add Points * * Uses a efficiently computable endomorphism to achieve a slight speedup * * Adapted from: * https://github.com/indutny/elliptic/blob/725bd91/lib/elliptic/curve/short.js#L219 * * @return int[] */ public function multiplyAddPoints(array $points, array $scalars) { } /** * Returns the numerator and denominator of the slope * * @return FiniteField[] */ protected function doublePointHelper(array $p) { } /** * Doubles a jacobian coordinate on the curve * * See http://hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#doubling-dbl-2009-l * * @return FiniteField[] */ protected function jacobianDoublePoint(array $p) { } /** * Doubles a "fresh" jacobian coordinate on the curve * * See http://hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#doubling-mdbl-2007-bl * * @return FiniteField[] */ protected function jacobianDoublePointMixed(array $p) { } /** * Tests whether or not the x / y values satisfy the equation * * @return boolean */ public function verifyPoint(array $p) { } /** * Calculates the parameters needed from the Euclidean algorithm as discussed at * http://diamond.boisestate.edu/~liljanab/MATH308/GuideToECC.pdf#page=148 * * @param BigInteger $u * @param BigInteger $v * @return BigInteger[] */ protected static function extendedGCD(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $u, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $v) { } } /** * Curves over y^2 = x^3 + a*x + x * * @author Jim Wigginton */ class Montgomery extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base { /** * Prime Field Integer factory * * @var PrimeField */ protected $factory; /** * Cofficient for x * * @var object */ protected $a; /** * Constant used for point doubling * * @var object */ protected $a24; /** * The Number Zero * * @var object */ protected $zero; /** * The Number One * * @var object */ protected $one; /** * Base Point * * @var object */ protected $p; /** * The modulo * * @var BigInteger */ protected $modulo; /** * The Order * * @var BigInteger */ protected $order; /** * Sets the modulo */ public function setModulo(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $modulo) { } /** * Set coefficients a */ public function setCoefficients(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $a) { } /** * Set x and y coordinates for the base point * * @param BigInteger|PrimeInteger $x * @param BigInteger|PrimeInteger $y * @return PrimeInteger[] */ public function setBasePoint($x, $y) { } /** * Retrieve the base point as an array * * @return array */ public function getBasePoint() { } /** * Doubles and adds a point on a curve * * See https://tools.ietf.org/html/draft-ietf-tls-curve25519-01#appendix-A.1.3 * * @return FiniteField[][] */ private function doubleAndAddPoint(array $p, array $q, \ForminatorGoogleAddon\phpseclib3\Math\PrimeField\Integer $x1) { } /** * Multiply a point on the curve by a scalar * * Uses the montgomery ladder technique as described here: * * https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication#Montgomery_ladder * https://github.com/phpecc/phpecc/issues/16#issuecomment-59176772 * * @return array */ public function multiplyPoint(array $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $d) { } /** * Converts an affine point to an XZ coordinate * * From https://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html * * XZ coordinates represent x y as X Z satsfying the following equations: * * x=X/Z * * @return \phpseclib3\Math\PrimeField\Integer[] */ public function convertToInternal(array $p) { } /** * Returns the affine point * * @return \phpseclib3\Math\PrimeField\Integer[] */ public function convertToAffine(array $p) { } } /** * Curves over a*x^2 + y^2 = 1 + d*x^2*y^2 * * @author Jim Wigginton */ class TwistedEdwards extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base { /** * The modulo * * @var BigInteger */ protected $modulo; /** * Cofficient for x^2 * * @var object */ protected $a; /** * Cofficient for x^2*y^2 * * @var object */ protected $d; /** * Base Point * * @var object[] */ protected $p; /** * The number zero over the specified finite field * * @var object */ protected $zero; /** * The number one over the specified finite field * * @var object */ protected $one; /** * The number two over the specified finite field * * @var object */ protected $two; /** * Sets the modulo */ public function setModulo(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $modulo) { } /** * Set coefficients a and b */ public function setCoefficients(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $a, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $d) { } /** * Set x and y coordinates for the base point */ public function setBasePoint($x, $y) { } /** * Returns the a coefficient * * @return PrimeInteger */ public function getA() { } /** * Returns the a coefficient * * @return PrimeInteger */ public function getD() { } /** * Retrieve the base point as an array * * @return array */ public function getBasePoint() { } /** * Returns the affine point * * @return PrimeField\Integer[] */ public function convertToAffine(array $p) { } /** * Returns the modulo * * @return BigInteger */ public function getModulo() { } /** * Tests whether or not the x / y values satisfy the equation * * @return boolean */ public function verifyPoint(array $p) { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves { class Curve448 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Montgomery { public function __construct() { } /** * Multiply a point on the curve by a scalar * * Modifies the scalar as described at https://tools.ietf.org/html/rfc7748#page-8 * * @return array */ public function multiplyPoint(array $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $d) { } /** * Creates a random scalar multiplier * * @return BigInteger */ public function createRandomMultiplier() { } /** * Performs range check */ public function rangeCheck(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x) { } } class Curve25519 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Montgomery { public function __construct() { } /** * Multiply a point on the curve by a scalar * * Modifies the scalar as described at https://tools.ietf.org/html/rfc7748#page-8 * * @return array */ public function multiplyPoint(array $p, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $d) { } /** * Creates a random scalar multiplier * * @return BigInteger */ public function createRandomMultiplier() { } /** * Performs range check */ public function rangeCheck(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x) { } } class Ed448 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\TwistedEdwards { const HASH = 'shake256-912'; const SIZE = 57; public function __construct() { } /** * Recover X from Y * * Implements steps 2-4 at https://tools.ietf.org/html/rfc8032#section-5.2.3 * * Used by EC\Keys\Common.php * * @param BigInteger $y * @param boolean $sign * @return object[] */ public function recoverX(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y, $sign) { } /** * Extract Secret Scalar * * Implements steps 1-3 at https://tools.ietf.org/html/rfc8032#section-5.2.5 * * Used by the various key handlers * * @param string $str * @return array */ public function extractSecret($str) { } /** * Encode a point as a string * * @param array $point * @return string */ public function encodePoint($point) { } /** * Creates a random scalar multiplier * * @return \phpseclib3\Math\PrimeField\Integer */ public function createRandomMultiplier() { } /** * Converts an affine point to an extended homogeneous coordinate * * From https://tools.ietf.org/html/rfc8032#section-5.2.4 : * * A point (x,y) is represented in extended homogeneous coordinates (X, Y, Z, T), * with x = X/Z, y = Y/Z, x * y = T/Z. * * @return \phpseclib3\Math\PrimeField\Integer[] */ public function convertToInternal(array $p) { } /** * Doubles a point on a curve * * @return FiniteField[] */ public function doublePoint(array $p) { } /** * Adds two points on the curve * * @return FiniteField[] */ public function addPoint(array $p, array $q) { } } class Ed25519 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\TwistedEdwards { const HASH = 'sha512'; /* Per https://tools.ietf.org/html/rfc8032#page-6 EdDSA has several parameters, one of which is b: 2. An integer b with 2^(b-1) > p. EdDSA public keys have exactly b bits, and EdDSA signatures have exactly 2*b bits. b is recommended to be a multiple of 8, so public key and signature lengths are an integral number of octets. SIZE corresponds to b */ const SIZE = 32; public function __construct() { } /** * Recover X from Y * * Implements steps 2-4 at https://tools.ietf.org/html/rfc8032#section-5.1.3 * * Used by EC\Keys\Common.php * * @param BigInteger $y * @param boolean $sign * @return object[] */ public function recoverX(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y, $sign) { } /** * Extract Secret Scalar * * Implements steps 1-3 at https://tools.ietf.org/html/rfc8032#section-5.1.5 * * Used by the various key handlers * * @param string $str * @return array */ public function extractSecret($str) { } /** * Encode a point as a string * * @param array $point * @return string */ public function encodePoint($point) { } /** * Creates a random scalar multiplier * * @return \phpseclib3\Math\PrimeField\Integer */ public function createRandomMultiplier() { } /** * Converts an affine point to an extended homogeneous coordinate * * From https://tools.ietf.org/html/rfc8032#section-5.1.4 : * * A point (x,y) is represented in extended homogeneous coordinates (X, Y, Z, T), * with x = X/Z, y = Y/Z, x * y = T/Z. * * @return \phpseclib3\Math\PrimeField\Integer[] */ public function convertToInternal(array $p) { } /** * Doubles a point on a curve * * @return FiniteField[] */ public function doublePoint(array $p) { } /** * Adds two points on the curve * * @return FiniteField[] */ public function addPoint(array $p, array $q) { } } class brainpoolP160r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class brainpoolP160t1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class brainpoolP192r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class brainpoolP192t1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class brainpoolP224r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class brainpoolP224t1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class brainpoolP256r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class brainpoolP256t1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class brainpoolP320r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class brainpoolP320t1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class brainpoolP384r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class brainpoolP384t1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class brainpoolP512r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class brainpoolP512t1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class sect233r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } final class nistb233 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect233r1 { } class sect409r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } final class nistb409 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect409r1 { } class sect163k1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } final class nistk163 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect163k1 { } class sect233k1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } final class nistk233 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect233k1 { } class sect283k1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } final class nistk283 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect283k1 { } class sect409k1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } final class nistk409 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect409k1 { } class secp192r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } final class nistp192 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp192r1 { } class secp224r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } final class nistp224 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp224r1 { } class secp256r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } final class nistp256 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp256r1 { } class secp384r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } final class nistp384 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp384r1 { } class secp521r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } final class nistp521 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp521r1 { } class sect571k1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } final class nistt571 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect571k1 { } final class prime192v1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp192r1 { } class prime192v2 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class prime192v3 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class prime239v1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class prime239v2 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class prime239v3 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } final class prime256v1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp256r1 { } class secp112r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class secp112r2 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class secp128r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class secp128r2 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class secp160k1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\KoblitzPrime { public function __construct() { } } class secp160r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class secp160r2 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime { public function __construct() { } } class secp192k1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\KoblitzPrime { public function __construct() { } } class secp224k1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\KoblitzPrime { public function __construct() { } } //class secp256k1 extends Prime class secp256k1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\KoblitzPrime { public function __construct() { } } class sect113r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } class sect113r2 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } class sect131r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } class sect131r2 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } class sect163r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } class sect163r2 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } class sect193r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } class sect193r2 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } class sect239k1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } class sect283r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } class sect571r1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary { public function __construct() { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys { /** * Generic EC Key Parsing Helper functions * * @author Jim Wigginton */ trait Common { /** * Curve OIDs * * @var array */ private static $curveOIDs = []; /** * Child OIDs loaded * * @var bool */ protected static $childOIDsLoaded = \false; /** * Use Named Curves * * @var bool */ private static $useNamedCurves = \true; /** * Initialize static variables */ private static function initialize_static_variables() { } /** * Explicitly set the curve * * If the key contains an implicit curve phpseclib needs the curve * to be explicitly provided * * @param BaseCurve $curve */ public static function setImplicitCurve(\ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve) { } /** * Returns an instance of \phpseclib3\Crypt\EC\BaseCurves\Base based * on the curve parameters * * @param array $params * @return BaseCurve|false */ protected static function loadCurveByParam(array $params) { } /** * Extract points from a string * * Supports both compressed and uncompressed points * * @param string $str * @param BaseCurve $curve * @return object[] */ public static function extractPoint($str, \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve) { } /** * Encode Parameters * * @todo Maybe at some point this could be moved to __toString() for each of the curves? * @param BaseCurve $curve * @param bool $returnArray optional * @param array $options optional * @return string|false */ private static function encodeParameters(\ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve, $returnArray = \false, array $options = []) { } /** * Use Specified Curve * * A specified curve has all the coefficients, the base points, etc, explicitely included. * A specified curve is a more verbose way of representing a curve */ public static function useSpecifiedCurve() { } /** * Use Named Curve * * A named curve does not include any parameters. It is up to the EC parameters to * know what the coefficients, the base points, etc, are from the name of the curve. * A named curve is a more concise way of representing a curve */ public static function useNamedCurve() { } } /** * JWK Formatted EC Handler * * @author Jim Wigginton */ abstract class JWK extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\JWK { use \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\Common; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Returns the alias that corresponds to a curve * * @return string */ private static function getAlias(\ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve) { } /** * Return the array superstructure for an EC public key * * @param BaseCurve $curve * @param \phpseclib3\Math\Common\FiniteField\Integer[] $publicKey * @return array */ private static function savePublicKeyHelper(\ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve, array $publicKey) { } /** * Convert an EC public key to the appropriate format * * @param BaseCurve $curve * @param \phpseclib3\Math\Common\FiniteField\Integer[] $publicKey * @param array $options optional * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve, array $publicKey, array $options = []) { } /** * Convert a private key to the appropriate format. * * @param BigInteger $privateKey * @param Ed25519 $curve * @param \phpseclib3\Math\Common\FiniteField\Integer[] $publicKey * @param string $secret optional * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $privateKey, \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve, array $publicKey, $secret = null, $password = '', array $options = []) { } } /** * Montgomery Curve Private Key Handler * * @author Jim Wigginton */ abstract class MontgomeryPrivate { /** * Is invisible flag * */ const IS_INVISIBLE = \true; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert an EC public key to the appropriate format * * @param MontgomeryCurve $curve * @param \phpseclib3\Math\Common\FiniteField\Integer[] $publicKey * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Montgomery $curve, array $publicKey) { } /** * Convert a private key to the appropriate format. * * @param BigInteger $privateKey * @param MontgomeryCurve $curve * @param \phpseclib3\Math\Common\FiniteField\Integer[] $publicKey * @param string $secret optional * @param string $password optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $privateKey, \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Montgomery $curve, array $publicKey, $secret = null, $password = '') { } } /** * Montgomery Public Key Handler * * @author Jim Wigginton */ abstract class MontgomeryPublic { /** * Is invisible flag * */ const IS_INVISIBLE = \true; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert an EC public key to the appropriate format * * @param MontgomeryCurve $curve * @param \phpseclib3\Math\Common\FiniteField\Integer[] $publicKey * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Montgomery $curve, array $publicKey) { } } /** * OpenSSH Formatted EC Key Handler * * @author Jim Wigginton */ abstract class OpenSSH extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\OpenSSH { use \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\Common; /** * Supported Key Types * * @var array */ protected static $types = ['ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521', 'ssh-ed25519']; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Returns the alias that corresponds to a curve * * @return string */ private static function getAlias(\ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve) { } /** * Convert an EC public key to the appropriate format * * @param BaseCurve $curve * @param \phpseclib3\Math\Common\FiniteField\Integer[] $publicKey * @param array $options optional * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve, array $publicKey, array $options = []) { } /** * Convert a private key to the appropriate format. * * @param BigInteger $privateKey * @param Ed25519 $curve * @param \phpseclib3\Math\Common\FiniteField\Integer[] $publicKey * @param string $secret optional * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $privateKey, \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve, array $publicKey, $secret = null, $password = '', array $options = []) { } } /** * "PKCS1" (RFC5915) Formatted EC Key Handler * * @author Jim Wigginton */ abstract class PKCS1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PKCS1 { use \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\Common; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert EC parameters to the appropriate format * * @return string */ public static function saveParameters(\ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve, array $options = []) { } /** * Convert a private key to the appropriate format. * * @param BigInteger $privateKey * @param BaseCurve $curve * @param \phpseclib3\Math\Common\FiniteField\Integer[] $publicKey * @param string $secret optional * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $privateKey, \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve, array $publicKey, $secret = null, $password = '', array $options = []) { } } /** * PKCS#8 Formatted EC Key Handler * * @author Jim Wigginton */ abstract class PKCS8 extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PKCS8 { use \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\Common; /** * OID Name * * @var array */ const OID_NAME = ['id-ecPublicKey', 'id-Ed25519', 'id-Ed448']; /** * OID Value * * @var string */ const OID_VALUE = ['1.2.840.10045.2.1', '1.3.101.112', '1.3.101.113']; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Break a public or private EdDSA key down into its constituent components * * @return array */ private static function loadEdDSA(array $key) { } /** * Convert an EC public key to the appropriate format * * @param BaseCurve $curve * @param \phpseclib3\Math\Common\FiniteField\Integer[] $publicKey * @param array $options optional * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve, array $publicKey, array $options = []) { } /** * Convert a private key to the appropriate format. * * @param BigInteger $privateKey * @param BaseCurve $curve * @param \phpseclib3\Math\Common\FiniteField\Integer[] $publicKey * @param string $secret optional * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $privateKey, \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve, array $publicKey, $secret = null, $password = '', array $options = []) { } } /** * PuTTY Formatted EC Key Handler * * @author Jim Wigginton */ abstract class PuTTY extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PuTTY { use \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\Common; /** * Public Handler * * @var string */ const PUBLIC_HANDLER = 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\OpenSSH'; /** * Supported Key Types * * @var array */ protected static $types = ['ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521', 'ssh-ed25519']; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a private key to the appropriate format. * * @param BigInteger $privateKey * @param BaseCurve $curve * @param \phpseclib3\Math\Common\FiniteField\Integer[] $publicKey * @param string $secret optional * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $privateKey, \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve, array $publicKey, $secret = null, $password = \false, array $options = []) { } /** * Convert an EC public key to the appropriate format * * @param BaseCurve $curve * @param \phpseclib3\Math\Common\FiniteField[] $publicKey * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve, array $publicKey) { } } /** * XML Formatted EC Key Handler * * @author Jim Wigginton */ abstract class XML { use \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\Common; /** * Default namespace * * @var string */ private static $namespace; /** * Flag for using RFC4050 syntax * * @var bool */ private static $rfc4050 = \false; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Case-insensitive xpath query * * @param \DOMXPath $xpath * @param string $name * @param string $error optional * @param bool $decode optional * @return \DOMNodeList */ private static function query(\DOMXPath $xpath, $name, $error = null, $decode = \true) { } /** * Finds the first element in the relevant namespace, strips the namespacing and returns the XML for that element. * * @param string $xml * @param string $ns */ private static function isolateNamespace($xml, $ns) { } /** * Decodes the value * * @param string $value */ private static function decodeValue($value) { } /** * Extract points from an XML document * * @param \DOMXPath $xpath * @param BaseCurve $curve * @return object[] */ private static function extractPointRFC4050(\DOMXPath $xpath, \ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve) { } /** * Returns an instance of \phpseclib3\Crypt\EC\BaseCurves\Base based * on the curve parameters * * @param \DomXPath $xpath * @return BaseCurve|false */ private static function loadCurveByParam(\DOMXPath $xpath) { } /** * Returns an instance of \phpseclib3\Crypt\EC\BaseCurves\Base based * on the curve parameters * * @param \DomXPath $xpath * @return BaseCurve|false */ private static function loadCurveByParamRFC4050(\DOMXPath $xpath) { } /** * Sets the namespace. dsig11 is the most common one. * * Set to null to unset. Used only for creating public keys. * * @param string $namespace */ public static function setNamespace($namespace) { } /** * Uses the XML syntax specified in https://tools.ietf.org/html/rfc4050 */ public static function enableRFC4050Syntax() { } /** * Uses the XML syntax specified in https://www.w3.org/TR/xmldsig-core/#sec-ECParameters */ public static function disableRFC4050Syntax() { } /** * Convert a public key to the appropriate format * * @param BaseCurve $curve * @param \phpseclib3\Math\Common\FiniteField\Integer[] $publicKey * @param array $options optional * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve, array $publicKey, array $options = []) { } /** * Encode Parameters * * @param BaseCurve $curve * @param string $pre * @param array $options optional * @return string|false */ private static function encodeXMLParameters(\ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base $curve, $pre, array $options = []) { } } /** * libsodium Key Handler * * @author Jim Wigginton */ abstract class libsodium { use \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\Common; /** * Is invisible flag * */ const IS_INVISIBLE = \true; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert an EC public key to the appropriate format * * @param Ed25519 $curve * @param \phpseclib3\Math\Common\FiniteField\Integer[] $publicKey * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\Ed25519 $curve, array $publicKey) { } /** * Convert a private key to the appropriate format. * * @param BigInteger $privateKey * @param Ed25519 $curve * @param \phpseclib3\Math\Common\FiniteField\Integer[] $publicKey * @param string $secret optional * @param string $password optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $privateKey, \ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\Ed25519 $curve, array $publicKey, $secret = null, $password = '') { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Signature { /** * ASN1 Signature Handler * * @author Jim Wigginton */ abstract class ASN1 { /** * Loads a signature * * @param string $sig * @return array */ public static function load($sig) { } /** * Returns a signature in the appropriate format * * @param BigInteger $r * @param BigInteger $s * @return string */ public static function save(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $r, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $s) { } } /** * ASN1 Signature Handler * * @author Jim Wigginton */ abstract class IEEE { /** * Loads a signature * * @param string $sig * @return array */ public static function load($sig) { } /** * Returns a signature in the appropriate format * * @param BigInteger $r * @param BigInteger $s * @param string $curve * @param int $length * @return string */ public static function save(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $r, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $s, $curve, $length) { } } /** * Raw DSA Signature Handler * * @author Jim Wigginton */ abstract class Raw extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Signature\Raw { } /** * SSH2 Signature Handler * * @author Jim Wigginton */ abstract class SSH2 { /** * Loads a signature * * @param string $sig * @return mixed */ public static function load($sig) { } /** * Returns a signature in the appropriate format * * @param BigInteger $r * @param BigInteger $s * @param string $curve * @return string */ public static function save(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $r, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $s, $curve) { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\EC { /** * EC Parameters * * @author Jim Wigginton */ final class Parameters extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC { /** * Returns the parameters * * @param string $type * @param array $options optional * @return string */ public function toString($type = 'PKCS1', array $options = []) { } } /** * EC Private Key * * @author Jim Wigginton */ final class PrivateKey extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC implements \ForminatorGoogleAddon\phpseclib3\Crypt\Common\PrivateKey { use \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Traits\PasswordProtected; /** * Private Key dA * * sign() converts this to a BigInteger so one might wonder why this is a FiniteFieldInteger instead of * a BigInteger. That's because a FiniteFieldInteger, when converted to a byte string, is null padded by * a certain amount whereas a BigInteger isn't. * * @var object */ protected $dA; /** * @var string */ protected $secret; /** * Multiplies an encoded point by the private key * * Used by ECDH * * @param string $coordinates * @return string */ public function multiply($coordinates) { } /** * Create a signature * * @see self::verify() * @param string $message * @return mixed */ public function sign($message) { } /** * Returns the private key * * @param string $type * @param array $options optional * @return string */ public function toString($type, array $options = []) { } /** * Returns the public key * * @see self::getPrivateKey() * @return mixed */ public function getPublicKey() { } /** * Returns a signature in the appropriate format * * @return string */ private function formatSignature(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $r, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $s) { } } /** * EC Public Key * * @author Jim Wigginton */ final class PublicKey extends \ForminatorGoogleAddon\phpseclib3\Crypt\EC implements \ForminatorGoogleAddon\phpseclib3\Crypt\Common\PublicKey { use \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Traits\Fingerprint; /** * Verify a signature * * @see self::verify() * @param string $message * @param string $signature * @return mixed */ public function verify($message, $signature) { } /** * Returns the public key * * @param string $type * @param array $options optional * @return string */ public function toString($type, array $options = []) { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt { /** * @author Jim Wigginton * @author Andreas Fischer */ class Hash { /** * Padding Types * */ const PADDING_KECCAK = 1; /** * Padding Types * */ const PADDING_SHA3 = 2; /** * Padding Types * */ const PADDING_SHAKE = 3; /** * Padding Type * * Only used by SHA3 * * @var int */ private $paddingType = 0; /** * Hash Parameter * * @see self::setHash() * @var int */ private $hashParam; /** * Byte-length of hash output (Internal HMAC) * * @see self::setHash() * @var int */ private $length; /** * Hash Algorithm * * @see self::setHash() * @var string */ private $algo; /** * Key * * @see self::setKey() * @var string */ private $key = \false; /** * Nonce * * @see self::setNonce() * @var string */ private $nonce = \false; /** * Hash Parameters * * @var array */ private $parameters = []; /** * Computed Key * * @see self::_computeKey() * @var string */ private $computedKey = \false; /** * Outer XOR (Internal HMAC) * * Used only for sha512 * * @see self::hash() * @var string */ private $opad; /** * Inner XOR (Internal HMAC) * * Used only for sha512 * * @see self::hash() * @var string */ private $ipad; /** * Recompute AES Key * * Used only for umac * * @see self::hash() * @var boolean */ private $recomputeAESKey; /** * umac cipher object * * @see self::hash() * @var AES */ private $c; /** * umac pad * * @see self::hash() * @var string */ private $pad; /** * Block Size * * @var int */ private $blockSize; /**#@+ * UMAC variables * * @var PrimeField */ private static $factory36; private static $factory64; private static $factory128; private static $offset64; private static $offset128; private static $marker64; private static $marker128; private static $maxwordrange64; private static $maxwordrange128; /**#@-*/ /** * Default Constructor. * * @param string $hash */ public function __construct($hash = 'sha256') { } /** * Sets the key for HMACs * * Keys can be of any length. * * @param string $key */ public function setKey($key = \false) { } /** * Sets the nonce for UMACs * * Keys can be of any length. * * @param string $nonce */ public function setNonce($nonce = \false) { } /** * Pre-compute the key used by the HMAC * * Quoting http://tools.ietf.org/html/rfc2104#section-2, "Applications that use keys longer than B bytes * will first hash the key using H and then use the resultant L byte string as the actual key to HMAC." * * As documented in https://www.reddit.com/r/PHP/comments/9nct2l/symfonypolyfill_hash_pbkdf2_correct_fix_for/ * when doing an HMAC multiple times it's faster to compute the hash once instead of computing it during * every call * */ private function computeKey() { } /** * Gets the hash function. * * As set by the constructor or by the setHash() method. * * @return string */ public function getHash() { } /** * Sets the hash function. * * @param string $hash */ public function setHash($hash) { } /** * KDF: Key-Derivation Function * * The key-derivation function generates pseudorandom bits used to key the hash functions. * * @param int $index a non-negative integer less than 2^64 * @param int $numbytes a non-negative integer less than 2^64 * @return string string of length numbytes bytes */ private function kdf($index, $numbytes) { } /** * PDF Algorithm * * @return string string of length taglen bytes. */ private function pdf() { } /** * UHASH Algorithm * * @param string $m string of length less than 2^67 bits. * @param int $taglen the integer 4, 8, 12 or 16. * @return string string of length taglen bytes. */ private function uhash($m, $taglen) { } /** * L1-HASH Algorithm * * The first-layer hash breaks the message into 1024-byte chunks and * hashes each with a function called NH. Concatenating the results * forms a string, which is up to 128 times shorter than the original. * * @param string $k string of length 1024 bytes. * @param string $m string of length less than 2^67 bits. * @return string string of length (8 * ceil(bitlength(M)/8192)) bytes. */ private static function L1Hash($k, $m) { } /** * 32-bit safe 64-bit Multiply with 2x 32-bit ints * * @param int $x * @param int $y * @return string $x * $y */ private static function mul32_64($x, $y) { } /** * 32-bit safe 64-bit Addition with 2x 64-bit strings * * @param int $x * @param int $y * @return int $x * $y */ private static function add32_64($x, $y) { } /** * 32-bit safe 32-bit Addition with 2x 32-bit strings * * @param int $x * @param int $y * @return int $x * $y */ private static function add32($x, $y) { } /** * NH Algorithm / 32-bit safe * * @param string $k string of length 1024 bytes. * @param string $m string with length divisible by 32 bytes. * @return string string of length 8 bytes. */ private static function nh32($k, $m, $length) { } /** * 64-bit Multiply with 2x 32-bit ints * * @param int $x * @param int $y * @return int $x * $y */ private static function mul64($x, $y) { } /** * 64-bit Addition with 2x 64-bit ints * * @param int $x * @param int $y * @return int $x + $y */ private static function add64($x, $y) { } /** * NH Algorithm / 64-bit safe * * @param string $k string of length 1024 bytes. * @param string $m string with length divisible by 32 bytes. * @return string string of length 8 bytes. */ private static function nh64($k, $m, $length) { } /** * L2-HASH: Second-Layer Hash * * The second-layer rehashes the L1-HASH output using a polynomial hash * called POLY. If the L1-HASH output is long, then POLY is called once * on a prefix of the L1-HASH output and called using different settings * on the remainder. (This two-step hashing of the L1-HASH output is * needed only if the message length is greater than 16 megabytes.) * Careful implementation of POLY is necessary to avoid a possible * timing attack (see Section 6.6 for more information). * * @param string $k string of length 24 bytes. * @param string $m string of length less than 2^64 bytes. * @return string string of length 16 bytes. */ private static function L2Hash($k, $m) { } /** * POLY Algorithm * * @param int $wordbits the integer 64 or 128. * @param BigInteger $maxwordrange positive integer less than 2^wordbits. * @param BigInteger $k integer in the range 0 ... prime(wordbits) - 1. * @param string $m string with length divisible by (wordbits / 8) bytes. * @return integer in the range 0 ... prime(wordbits) - 1. */ private static function poly($wordbits, $maxwordrange, $k, $m) { } /** * L3-HASH: Third-Layer Hash * * The output from L2-HASH is 16 bytes long. This final hash function * hashes the 16-byte string to a fixed length of 4 bytes. * * @param string $k1 string of length 64 bytes. * @param string $k2 string of length 4 bytes. * @param string $m string of length 16 bytes. * @return string string of length 4 bytes. */ private static function L3Hash($k1, $k2, $m) { } /** * Compute the Hash / HMAC / UMAC. * * @param string $text * @return string */ public function hash($text) { } /** * Returns the hash length (in bits) * * @return int */ public function getLength() { } /** * Returns the hash length (in bytes) * * @return int */ public function getLengthInBytes() { } /** * Returns the block length (in bits) * * @return int */ public function getBlockLength() { } /** * Returns the block length (in bytes) * * @return int */ public function getBlockLengthInBytes() { } /** * Pads SHA3 based on the mode * * @param int $padLength * @param int $padType * @return string */ private static function sha3_pad($padLength, $padType) { } /** * Pure-PHP 32-bit implementation of SHA3 * * Whereas BigInteger.php's 32-bit engine works on PHP 64-bit this 32-bit implementation * of SHA3 will *not* work on PHP 64-bit. This is because this implementation * employees bitwise NOTs and bitwise left shifts. And the round constants only work * on 32-bit PHP. eg. dechex(-2147483648) returns 80000000 on 32-bit PHP and * FFFFFFFF80000000 on 64-bit PHP. Sure, we could do bitwise ANDs but that would slow * things down. * * SHA512 requires BigInteger to simulate 64-bit unsigned integers because SHA2 employees * addition whereas SHA3 just employees bitwise operators. PHP64 only supports signed * 64-bit integers, which complicates addition, whereas that limitation isn't an issue * for SHA3. * * In https://ws680.nist.gov/publication/get_pdf.cfm?pub_id=919061#page=16 KECCAK[C] is * defined as "the KECCAK instance with KECCAK-f[1600] as the underlying permutation and * capacity c". This is relevant because, altho the KECCAK standard defines a mode * (KECCAK-f[800]) designed for 32-bit machines that mode is incompatible with SHA3 * * @param string $p * @param int $c * @param int $r * @param int $d * @param int $padType */ private static function sha3_32($p, $c, $r, $d, $padType) { } /** * 32-bit block processing method for SHA3 * * @param array $s */ private static function processSHA3Block32(&$s) { } /** * Rotate 32-bit int * * @param array $x * @param int $shift */ private static function rotateLeft32($x, $shift) { } /** * Pure-PHP 64-bit implementation of SHA3 * * @param string $p * @param int $c * @param int $r * @param int $d * @param int $padType */ private static function sha3_64($p, $c, $r, $d, $padType) { } /** * 64-bit block processing method for SHA3 * * @param array $s */ private static function processSHA3Block64(&$s) { } /** * Left rotate 64-bit int * * @param int $x * @param int $shift */ private static function rotateLeft64($x, $shift) { } /** * Right rotate 64-bit int * * @param int $x * @param int $shift */ private static function rotateRight64($x, $shift) { } /** * Pure-PHP implementation of SHA512 * * @param string $m * @param array $hash * @return string */ private static function sha512($m, $hash) { } /** * Pure-PHP implementation of SHA512 * * @param string $m * @param array $hash * @return string */ private static function sha512_64($m, $hash) { } /** * __toString() magic method */ public function __toString() { } } /** * PublicKeyLoader * * @author Jim Wigginton */ abstract class PublicKeyLoader { /** * Loads a public or private key * * @return AsymmetricKey * @param string|array $key * @param string $password optional */ public static function load($key, $password = \false) { } /** * Loads a private key * * @return PrivateKey * @param string|array $key * @param string $password optional */ public static function loadPrivateKey($key, $password = \false) { } /** * Loads a public key * * @return PublicKey * @param string|array $key */ public static function loadPublicKey($key) { } /** * Loads parameters * * @return AsymmetricKey * @param string|array $key */ public static function loadParameters($key) { } } /** * Pure-PHP implementation of RC2. * */ class RC2 extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\BlockCipher { /** * Block Length of the cipher * * @see \phpseclib3\Crypt\Common\SymmetricKey::block_size * @var int */ protected $block_size = 8; /** * The Key * * @see \phpseclib3\Crypt\Common\SymmetricKey::key * @see self::setKey() * @var string */ protected $key; /** * The Original (unpadded) Key * * @see \phpseclib3\Crypt\Common\SymmetricKey::key * @see self::setKey() * @see self::encrypt() * @see self::decrypt() * @var string */ private $orig_key; /** * Key Length (in bytes) * * @see \phpseclib3\Crypt\RC2::setKeyLength() * @var int */ protected $key_length = 16; // = 128 bits /** * The mcrypt specific name of the cipher * * @see \phpseclib3\Crypt\Common\SymmetricKey::cipher_name_mcrypt * @var string */ protected $cipher_name_mcrypt = 'rc2'; /** * Optimizing value while CFB-encrypting * * @see \phpseclib3\Crypt\Common\SymmetricKey::cfb_init_len * @var int */ protected $cfb_init_len = 500; /** * The key length in bits. * * {@internal Should be in range [1..1024].} * * {@internal Changing this value after setting the key has no effect.} * * @see self::setKeyLength() * @see self::setKey() * @var int */ private $default_key_length = 1024; /** * The key length in bits. * * {@internal Should be in range [1..1024].} * * @see self::isValidEnine() * @see self::setKey() * @var int */ private $current_key_length; /** * The Key Schedule * * @see self::setupKey() * @var array */ private $keys; /** * Key expansion randomization table. * Twice the same 256-value sequence to save a modulus in key expansion. * * @see self::setKey() * @var array */ private static $pitable = [0xd9, 0x78, 0xf9, 0xc4, 0x19, 0xdd, 0xb5, 0xed, 0x28, 0xe9, 0xfd, 0x79, 0x4a, 0xa0, 0xd8, 0x9d, 0xc6, 0x7e, 0x37, 0x83, 0x2b, 0x76, 0x53, 0x8e, 0x62, 0x4c, 0x64, 0x88, 0x44, 0x8b, 0xfb, 0xa2, 0x17, 0x9a, 0x59, 0xf5, 0x87, 0xb3, 0x4f, 0x13, 0x61, 0x45, 0x6d, 0x8d, 0x9, 0x81, 0x7d, 0x32, 0xbd, 0x8f, 0x40, 0xeb, 0x86, 0xb7, 0x7b, 0xb, 0xf0, 0x95, 0x21, 0x22, 0x5c, 0x6b, 0x4e, 0x82, 0x54, 0xd6, 0x65, 0x93, 0xce, 0x60, 0xb2, 0x1c, 0x73, 0x56, 0xc0, 0x14, 0xa7, 0x8c, 0xf1, 0xdc, 0x12, 0x75, 0xca, 0x1f, 0x3b, 0xbe, 0xe4, 0xd1, 0x42, 0x3d, 0xd4, 0x30, 0xa3, 0x3c, 0xb6, 0x26, 0x6f, 0xbf, 0xe, 0xda, 0x46, 0x69, 0x7, 0x57, 0x27, 0xf2, 0x1d, 0x9b, 0xbc, 0x94, 0x43, 0x3, 0xf8, 0x11, 0xc7, 0xf6, 0x90, 0xef, 0x3e, 0xe7, 0x6, 0xc3, 0xd5, 0x2f, 0xc8, 0x66, 0x1e, 0xd7, 0x8, 0xe8, 0xea, 0xde, 0x80, 0x52, 0xee, 0xf7, 0x84, 0xaa, 0x72, 0xac, 0x35, 0x4d, 0x6a, 0x2a, 0x96, 0x1a, 0xd2, 0x71, 0x5a, 0x15, 0x49, 0x74, 0x4b, 0x9f, 0xd0, 0x5e, 0x4, 0x18, 0xa4, 0xec, 0xc2, 0xe0, 0x41, 0x6e, 0xf, 0x51, 0xcb, 0xcc, 0x24, 0x91, 0xaf, 0x50, 0xa1, 0xf4, 0x70, 0x39, 0x99, 0x7c, 0x3a, 0x85, 0x23, 0xb8, 0xb4, 0x7a, 0xfc, 0x2, 0x36, 0x5b, 0x25, 0x55, 0x97, 0x31, 0x2d, 0x5d, 0xfa, 0x98, 0xe3, 0x8a, 0x92, 0xae, 0x5, 0xdf, 0x29, 0x10, 0x67, 0x6c, 0xba, 0xc9, 0xd3, 0x0, 0xe6, 0xcf, 0xe1, 0x9e, 0xa8, 0x2c, 0x63, 0x16, 0x1, 0x3f, 0x58, 0xe2, 0x89, 0xa9, 0xd, 0x38, 0x34, 0x1b, 0xab, 0x33, 0xff, 0xb0, 0xbb, 0x48, 0xc, 0x5f, 0xb9, 0xb1, 0xcd, 0x2e, 0xc5, 0xf3, 0xdb, 0x47, 0xe5, 0xa5, 0x9c, 0x77, 0xa, 0xa6, 0x20, 0x68, 0xfe, 0x7f, 0xc1, 0xad, 0xd9, 0x78, 0xf9, 0xc4, 0x19, 0xdd, 0xb5, 0xed, 0x28, 0xe9, 0xfd, 0x79, 0x4a, 0xa0, 0xd8, 0x9d, 0xc6, 0x7e, 0x37, 0x83, 0x2b, 0x76, 0x53, 0x8e, 0x62, 0x4c, 0x64, 0x88, 0x44, 0x8b, 0xfb, 0xa2, 0x17, 0x9a, 0x59, 0xf5, 0x87, 0xb3, 0x4f, 0x13, 0x61, 0x45, 0x6d, 0x8d, 0x9, 0x81, 0x7d, 0x32, 0xbd, 0x8f, 0x40, 0xeb, 0x86, 0xb7, 0x7b, 0xb, 0xf0, 0x95, 0x21, 0x22, 0x5c, 0x6b, 0x4e, 0x82, 0x54, 0xd6, 0x65, 0x93, 0xce, 0x60, 0xb2, 0x1c, 0x73, 0x56, 0xc0, 0x14, 0xa7, 0x8c, 0xf1, 0xdc, 0x12, 0x75, 0xca, 0x1f, 0x3b, 0xbe, 0xe4, 0xd1, 0x42, 0x3d, 0xd4, 0x30, 0xa3, 0x3c, 0xb6, 0x26, 0x6f, 0xbf, 0xe, 0xda, 0x46, 0x69, 0x7, 0x57, 0x27, 0xf2, 0x1d, 0x9b, 0xbc, 0x94, 0x43, 0x3, 0xf8, 0x11, 0xc7, 0xf6, 0x90, 0xef, 0x3e, 0xe7, 0x6, 0xc3, 0xd5, 0x2f, 0xc8, 0x66, 0x1e, 0xd7, 0x8, 0xe8, 0xea, 0xde, 0x80, 0x52, 0xee, 0xf7, 0x84, 0xaa, 0x72, 0xac, 0x35, 0x4d, 0x6a, 0x2a, 0x96, 0x1a, 0xd2, 0x71, 0x5a, 0x15, 0x49, 0x74, 0x4b, 0x9f, 0xd0, 0x5e, 0x4, 0x18, 0xa4, 0xec, 0xc2, 0xe0, 0x41, 0x6e, 0xf, 0x51, 0xcb, 0xcc, 0x24, 0x91, 0xaf, 0x50, 0xa1, 0xf4, 0x70, 0x39, 0x99, 0x7c, 0x3a, 0x85, 0x23, 0xb8, 0xb4, 0x7a, 0xfc, 0x2, 0x36, 0x5b, 0x25, 0x55, 0x97, 0x31, 0x2d, 0x5d, 0xfa, 0x98, 0xe3, 0x8a, 0x92, 0xae, 0x5, 0xdf, 0x29, 0x10, 0x67, 0x6c, 0xba, 0xc9, 0xd3, 0x0, 0xe6, 0xcf, 0xe1, 0x9e, 0xa8, 0x2c, 0x63, 0x16, 0x1, 0x3f, 0x58, 0xe2, 0x89, 0xa9, 0xd, 0x38, 0x34, 0x1b, 0xab, 0x33, 0xff, 0xb0, 0xbb, 0x48, 0xc, 0x5f, 0xb9, 0xb1, 0xcd, 0x2e, 0xc5, 0xf3, 0xdb, 0x47, 0xe5, 0xa5, 0x9c, 0x77, 0xa, 0xa6, 0x20, 0x68, 0xfe, 0x7f, 0xc1, 0xad]; /** * Inverse key expansion randomization table. * * @see self::setKey() * @var array */ private static $invpitable = [0xd1, 0xda, 0xb9, 0x6f, 0x9c, 0xc8, 0x78, 0x66, 0x80, 0x2c, 0xf8, 0x37, 0xea, 0xe0, 0x62, 0xa4, 0xcb, 0x71, 0x50, 0x27, 0x4b, 0x95, 0xd9, 0x20, 0x9d, 0x4, 0x91, 0xe3, 0x47, 0x6a, 0x7e, 0x53, 0xfa, 0x3a, 0x3b, 0xb4, 0xa8, 0xbc, 0x5f, 0x68, 0x8, 0xca, 0x8f, 0x14, 0xd7, 0xc0, 0xef, 0x7b, 0x5b, 0xbf, 0x2f, 0xe5, 0xe2, 0x8c, 0xba, 0x12, 0xe1, 0xaf, 0xb2, 0x54, 0x5d, 0x59, 0x76, 0xdb, 0x32, 0xa2, 0x58, 0x6e, 0x1c, 0x29, 0x64, 0xf3, 0xe9, 0x96, 0xc, 0x98, 0x19, 0x8d, 0x3e, 0x26, 0xab, 0xa5, 0x85, 0x16, 0x40, 0xbd, 0x49, 0x67, 0xdc, 0x22, 0x94, 0xbb, 0x3c, 0xc1, 0x9b, 0xeb, 0x45, 0x28, 0x18, 0xd8, 0x1a, 0x42, 0x7d, 0xcc, 0xfb, 0x65, 0x8e, 0x3d, 0xcd, 0x2a, 0xa3, 0x60, 0xae, 0x93, 0x8a, 0x48, 0x97, 0x51, 0x15, 0xf7, 0x1, 0xb, 0xb7, 0x36, 0xb1, 0x2e, 0x11, 0xfd, 0x84, 0x2d, 0x3f, 0x13, 0x88, 0xb3, 0x34, 0x24, 0x1b, 0xde, 0xc5, 0x1d, 0x4d, 0x2b, 0x17, 0x31, 0x74, 0xa9, 0xc6, 0x43, 0x6d, 0x39, 0x90, 0xbe, 0xc3, 0xb0, 0x21, 0x6b, 0xf6, 0xf, 0xd5, 0x99, 0xd, 0xac, 0x1f, 0x5c, 0x9e, 0xf5, 0xf9, 0x4c, 0xd6, 0xdf, 0x89, 0xe4, 0x8b, 0xff, 0xc7, 0xaa, 0xe7, 0xed, 0x46, 0x25, 0xb6, 0x6, 0x5e, 0x35, 0xb5, 0xec, 0xce, 0xe8, 0x6c, 0x30, 0x55, 0x61, 0x4a, 0xfe, 0xa0, 0x79, 0x3, 0xf0, 0x10, 0x72, 0x7c, 0xcf, 0x52, 0xa6, 0xa7, 0xee, 0x44, 0xd3, 0x9a, 0x57, 0x92, 0xd0, 0x5a, 0x7a, 0x41, 0x7f, 0xe, 0x0, 0x63, 0xf2, 0x4f, 0x5, 0x83, 0xc9, 0xa1, 0xd4, 0xdd, 0xc4, 0x56, 0xf4, 0xd2, 0x77, 0x81, 0x9, 0x82, 0x33, 0x9f, 0x7, 0x86, 0x75, 0x38, 0x4e, 0x69, 0xf1, 0xad, 0x23, 0x73, 0x87, 0x70, 0x2, 0xc2, 0x1e, 0xb8, 0xa, 0xfc, 0xe6]; /** * Default Constructor. * * @param string $mode * @throws \InvalidArgumentException if an invalid / unsupported mode is provided */ public function __construct($mode) { } /** * Test for engine validity * * This is mainly just a wrapper to set things up for \phpseclib3\Crypt\Common\SymmetricKey::isValidEngine() * * @see \phpseclib3\Crypt\Common\SymmetricKey::__construct() * @param int $engine * @return bool */ protected function isValidEngineHelper($engine) { } /** * Sets the key length. * * Valid key lengths are 8 to 1024. * Calling this function after setting the key has no effect until the next * \phpseclib3\Crypt\RC2::setKey() call. * * @param int $length in bits * @throws \LengthException if the key length isn't supported */ public function setKeyLength($length) { } /** * Returns the current key length * * @return int */ public function getKeyLength() { } /** * Sets the key. * * Keys can be of any length. RC2, itself, uses 8 to 1024 bit keys (eg. * strlen($key) <= 128), however, we only use the first 128 bytes if $key * has more then 128 bytes in it, and set $key to a single null byte if * it is empty. * * @see \phpseclib3\Crypt\Common\SymmetricKey::setKey() * @param string $key * @param int|boolean $t1 optional Effective key length in bits. * @throws \LengthException if the key length isn't supported */ public function setKey($key, $t1 = \false) { } /** * Encrypts a message. * * Mostly a wrapper for \phpseclib3\Crypt\Common\SymmetricKey::encrypt, with some additional OpenSSL handling code * * @see self::decrypt() * @param string $plaintext * @return string $ciphertext */ public function encrypt($plaintext) { } /** * Decrypts a message. * * Mostly a wrapper for \phpseclib3\Crypt\Common\SymmetricKey::decrypt, with some additional OpenSSL handling code * * @see self::encrypt() * @param string $ciphertext * @return string $plaintext */ public function decrypt($ciphertext) { } /** * Encrypts a block * * @see \phpseclib3\Crypt\Common\SymmetricKey::encryptBlock() * @see \phpseclib3\Crypt\Common\SymmetricKey::encrypt() * @param string $in * @return string */ protected function encryptBlock($in) { } /** * Decrypts a block * * @see \phpseclib3\Crypt\Common\SymmetricKey::decryptBlock() * @see \phpseclib3\Crypt\Common\SymmetricKey::decrypt() * @param string $in * @return string */ protected function decryptBlock($in) { } /** * Creates the key schedule * * @see \phpseclib3\Crypt\Common\SymmetricKey::setupKey() */ protected function setupKey() { } /** * Setup the performance-optimized function for de/encrypt() * * @see \phpseclib3\Crypt\Common\SymmetricKey::setupInlineCrypt() */ protected function setupInlineCrypt() { } } /** * Pure-PHP implementation of RC4. * * @author Jim Wigginton */ class RC4 extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\StreamCipher { /** * @see \phpseclib3\Crypt\RC4::_crypt() */ const ENCRYPT = 0; /** * @see \phpseclib3\Crypt\RC4::_crypt() */ const DECRYPT = 1; /** * Key Length (in bytes) * * @see \phpseclib3\Crypt\RC4::setKeyLength() * @var int */ protected $key_length = 128; // = 1024 bits /** * The mcrypt specific name of the cipher * * @see \phpseclib3\Crypt\Common\SymmetricKey::cipher_name_mcrypt * @var string */ protected $cipher_name_mcrypt = 'arcfour'; /** * The Key * * @see self::setKey() * @var string */ protected $key; /** * The Key Stream for decryption and encryption * * @see self::setKey() * @var array */ private $stream; /** * Test for engine validity * * This is mainly just a wrapper to set things up for \phpseclib3\Crypt\Common\SymmetricKey::isValidEngine() * * @see \phpseclib3\Crypt\Common\SymmetricKey::__construct() * @param int $engine * @return bool */ protected function isValidEngineHelper($engine) { } /** * Sets the key length * * Keys can be between 1 and 256 bytes long. * * @param int $length * @throws \LengthException if the key length is invalid */ public function setKeyLength($length) { } /** * Sets the key length * * Keys can be between 1 and 256 bytes long. * * @param string $key */ public function setKey($key) { } /** * Encrypts a message. * * @see \phpseclib3\Crypt\Common\SymmetricKey::decrypt() * @see self::crypt() * @param string $plaintext * @return string $ciphertext */ public function encrypt($plaintext) { } /** * Decrypts a message. * * $this->decrypt($this->encrypt($plaintext)) == $this->encrypt($this->encrypt($plaintext)). * At least if the continuous buffer is disabled. * * @see \phpseclib3\Crypt\Common\SymmetricKey::encrypt() * @see self::crypt() * @param string $ciphertext * @return string $plaintext */ public function decrypt($ciphertext) { } /** * Encrypts a block * * @param string $in */ protected function encryptBlock($in) { } /** * Decrypts a block * * @param string $in */ protected function decryptBlock($in) { } /** * Setup the key (expansion) * * @see \phpseclib3\Crypt\Common\SymmetricKey::_setupKey() */ protected function setupKey() { } /** * Encrypts or decrypts a message. * * @see self::encrypt() * @see self::decrypt() * @param string $text * @param int $mode * @return string $text */ private function crypt($text, $mode) { } } /** * Pure-PHP PKCS#1 compliant implementation of RSA. * * @author Jim Wigginton */ abstract class RSA extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\AsymmetricKey { /** * Algorithm Name * * @var string */ const ALGORITHM = 'RSA'; /** * Use {@link http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding Optimal Asymmetric Encryption Padding} * (OAEP) for encryption / decryption. * * Uses sha256 by default * * @see self::setHash() * @see self::setMGFHash() * @see self::encrypt() * @see self::decrypt() */ const ENCRYPTION_OAEP = 1; /** * Use PKCS#1 padding. * * Although self::PADDING_OAEP / self::PADDING_PSS offers more security, including PKCS#1 padding is necessary for purposes of backwards * compatibility with protocols (like SSH-1) written before OAEP's introduction. * * @see self::encrypt() * @see self::decrypt() */ const ENCRYPTION_PKCS1 = 2; /** * Do not use any padding * * Although this method is not recommended it can none-the-less sometimes be useful if you're trying to decrypt some legacy * stuff, if you're trying to diagnose why an encrypted message isn't decrypting, etc. * * @see self::encrypt() * @see self::decrypt() */ const ENCRYPTION_NONE = 4; /** * Use the Probabilistic Signature Scheme for signing * * Uses sha256 and 0 as the salt length * * @see self::setSaltLength() * @see self::setMGFHash() * @see self::setHash() * @see self::sign() * @see self::verify() * @see self::setHash() */ const SIGNATURE_PSS = 16; /** * Use a relaxed version of PKCS#1 padding for signature verification * * @see self::sign() * @see self::verify() * @see self::setHash() */ const SIGNATURE_RELAXED_PKCS1 = 32; /** * Use PKCS#1 padding for signature verification * * @see self::sign() * @see self::verify() * @see self::setHash() */ const SIGNATURE_PKCS1 = 64; /** * Encryption padding mode * * @var int */ protected $encryptionPadding = self::ENCRYPTION_OAEP; /** * Signature padding mode * * @var int */ protected $signaturePadding = self::SIGNATURE_PSS; /** * Length of hash function output * * @var int */ protected $hLen; /** * Length of salt * * @var int */ protected $sLen; /** * Label * * @var string */ protected $label = ''; /** * Hash function for the Mask Generation Function * * @var Hash */ protected $mgfHash; /** * Length of MGF hash function output * * @var int */ protected $mgfHLen; /** * Modulus (ie. n) * * @var Math\BigInteger */ protected $modulus; /** * Modulus length * * @var Math\BigInteger */ protected $k; /** * Exponent (ie. e or d) * * @var Math\BigInteger */ protected $exponent; /** * Default public exponent * * @var int * @link http://en.wikipedia.org/wiki/65537_%28number%29 */ private static $defaultExponent = 65537; /** * Enable Blinding? * * @var bool */ protected static $enableBlinding = \true; /** * OpenSSL configuration file name. * * @see self::createKey() * @var ?string */ protected static $configFile; /** * Smallest Prime * * Per , this number ought not result in primes smaller * than 256 bits. As a consequence if the key you're trying to create is 1024 bits and you've set smallestPrime * to 384 bits then you're going to get a 384 bit prime and a 640 bit prime (384 + 1024 % 384). At least if * engine is set to self::ENGINE_INTERNAL. If Engine is set to self::ENGINE_OPENSSL then smallest Prime is * ignored (ie. multi-prime RSA support is more intended as a way to speed up RSA key generation when there's * a chance neither gmp nor OpenSSL are installed) * * @var int */ private static $smallestPrime = 4096; /** * Public Exponent * * @var Math\BigInteger */ protected $publicExponent; /** * Sets the public exponent for key generation * * This will be 65537 unless changed. * * @param int $val */ public static function setExponent($val) { } /** * Sets the smallest prime number in bits. Used for key generation * * This will be 4096 unless changed. * * @param int $val */ public static function setSmallestPrime($val) { } /** * Sets the OpenSSL config file path * * Set to the empty string to use the default config file * * @param string $val */ public static function setOpenSSLConfigPath($val) { } /** * Create a private key * * The public key can be extracted from the private key * * @return PrivateKey * @param int $bits */ public static function createKey($bits = 2048) { } /** * OnLoad Handler * * @return bool */ protected static function onLoad(array $components) { } /** * Initialize static variables */ protected static function initialize_static_variables() { } /** * Constructor * * PublicKey and PrivateKey objects can only be created from abstract RSA class */ protected function __construct() { } /** * Integer-to-Octet-String primitive * * See {@link http://tools.ietf.org/html/rfc3447#section-4.1 RFC3447#section-4.1}. * * @param bool|Math\BigInteger $x * @param int $xLen * @return bool|string */ protected function i2osp($x, $xLen) { } /** * Octet-String-to-Integer primitive * * See {@link http://tools.ietf.org/html/rfc3447#section-4.2 RFC3447#section-4.2}. * * @param string $x * @return Math\BigInteger */ protected function os2ip($x) { } /** * EMSA-PKCS1-V1_5-ENCODE * * See {@link http://tools.ietf.org/html/rfc3447#section-9.2 RFC3447#section-9.2}. * * @param string $m * @param int $emLen * @throws \LengthException if the intended encoded message length is too short * @return string */ protected function emsa_pkcs1_v1_5_encode($m, $emLen) { } /** * EMSA-PKCS1-V1_5-ENCODE (without NULL) * * Quoting https://tools.ietf.org/html/rfc8017#page-65, * * "The parameters field associated with id-sha1, id-sha224, id-sha256, * id-sha384, id-sha512, id-sha512/224, and id-sha512/256 should * generally be omitted, but if present, it shall have a value of type * NULL" * * @param string $m * @param int $emLen * @return string */ protected function emsa_pkcs1_v1_5_encode_without_null($m, $emLen) { } /** * MGF1 * * See {@link http://tools.ietf.org/html/rfc3447#appendix-B.2.1 RFC3447#appendix-B.2.1}. * * @param string $mgfSeed * @param int $maskLen * @return string */ protected function mgf1($mgfSeed, $maskLen) { } /** * Returns the key size * * More specifically, this returns the size of the modulo in bits. * * @return int */ public function getLength() { } /** * Determines which hashing function should be used * * Used with signature production / verification and (if the encryption mode is self::PADDING_OAEP) encryption and * decryption. * * @param string $hash */ public function withHash($hash) { } /** * Determines which hashing function should be used for the mask generation function * * The mask generation function is used by self::PADDING_OAEP and self::PADDING_PSS and although it's * best if Hash and MGFHash are set to the same thing this is not a requirement. * * @param string $hash */ public function withMGFHash($hash) { } /** * Returns the MGF hash algorithm currently being used * */ public function getMGFHash() { } /** * Determines the salt length * * Used by RSA::PADDING_PSS * * To quote from {@link http://tools.ietf.org/html/rfc3447#page-38 RFC3447#page-38}: * * Typical salt lengths in octets are hLen (the length of the output * of the hash function Hash) and 0. * * @param int $sLen */ public function withSaltLength($sLen) { } /** * Returns the salt length currently being used * */ public function getSaltLength() { } /** * Determines the label * * Used by RSA::PADDING_OAEP * * To quote from {@link http://tools.ietf.org/html/rfc3447#page-17 RFC3447#page-17}: * * Both the encryption and the decryption operations of RSAES-OAEP take * the value of a label L as input. In this version of PKCS #1, L is * the empty string; other uses of the label are outside the scope of * this document. * * @param string $label */ public function withLabel($label) { } /** * Returns the label currently being used * */ public function getLabel() { } /** * Determines the padding modes * * Example: $key->withPadding(RSA::ENCRYPTION_PKCS1 | RSA::SIGNATURE_PKCS1); * * @param int $padding */ public function withPadding($padding) { } /** * Returns the padding currently being used * */ public function getPadding() { } /** * Returns the current engine being used * * OpenSSL is only used in this class (and it's subclasses) for key generation * Even then it depends on the parameters you're using. It's not used for * multi-prime RSA nor is it used if the key length is outside of the range * supported by OpenSSL * * @see self::useInternalEngine() * @see self::useBestEngine() * @return string */ public function getEngine() { } /** * Enable RSA Blinding * */ public static function enableBlinding() { } /** * Disable RSA Blinding * */ public static function disableBlinding() { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\RSA\Formats\Keys { /** * JWK Formatted RSA Handler * * @author Jim Wigginton */ abstract class JWK extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\JWK { /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a private key to the appropriate format. * * @param BigInteger $n * @param BigInteger $e * @param BigInteger $d * @param array $primes * @param array $exponents * @param array $coefficients * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $d, array $primes, array $exponents, array $coefficients, $password = '', array $options = []) { } /** * Convert a public key to the appropriate format * * @param BigInteger $n * @param BigInteger $e * @param array $options optional * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e, array $options = []) { } } /** * Microsoft BLOB Formatted RSA Key Handler * * @author Jim Wigginton */ abstract class MSBLOB { /** * Public/Private Key Pair * */ const PRIVATEKEYBLOB = 0x7; /** * Public Key * */ const PUBLICKEYBLOB = 0x6; /** * Public Key * */ const PUBLICKEYBLOBEX = 0xa; /** * RSA public key exchange algorithm * */ const CALG_RSA_KEYX = 0xa400; /** * RSA public key exchange algorithm * */ const CALG_RSA_SIGN = 0x2400; /** * Public Key * */ const RSA1 = 0x31415352; /** * Private Key * */ const RSA2 = 0x32415352; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a private key to the appropriate format. * * @param BigInteger $n * @param BigInteger $e * @param BigInteger $d * @param array $primes * @param array $exponents * @param array $coefficients * @param string $password optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $d, array $primes, array $exponents, array $coefficients, $password = '') { } /** * Convert a public key to the appropriate format * * @param BigInteger $n * @param BigInteger $e * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e) { } } /** * OpenSSH Formatted RSA Key Handler * * @author Jim Wigginton */ abstract class OpenSSH extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\OpenSSH { /** * Supported Key Types * * @var array */ protected static $types = ['ssh-rsa']; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a public key to the appropriate format * * @param BigInteger $n * @param BigInteger $e * @param array $options optional * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e, array $options = []) { } /** * Convert a private key to the appropriate format. * * @param BigInteger $n * @param BigInteger $e * @param BigInteger $d * @param array $primes * @param array $exponents * @param array $coefficients * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $d, array $primes, array $exponents, array $coefficients, $password = '', array $options = []) { } } /** * PKCS#1 Formatted RSA Key Handler * * @author Jim Wigginton */ abstract class PKCS1 extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PKCS1 { /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a private key to the appropriate format. * * @param BigInteger $n * @param BigInteger $e * @param BigInteger $d * @param array $primes * @param array $exponents * @param array $coefficients * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $d, array $primes, array $exponents, array $coefficients, $password = '', array $options = []) { } /** * Convert a public key to the appropriate format * * @param BigInteger $n * @param BigInteger $e * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e) { } } /** * PKCS#8 Formatted RSA Key Handler * * @author Jim Wigginton */ abstract class PKCS8 extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PKCS8 { /** * OID Name * * @var string */ const OID_NAME = 'rsaEncryption'; /** * OID Value * * @var string */ const OID_VALUE = '1.2.840.113549.1.1.1'; /** * Child OIDs loaded * * @var bool */ protected static $childOIDsLoaded = \false; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a private key to the appropriate format. * * @param BigInteger $n * @param BigInteger $e * @param BigInteger $d * @param array $primes * @param array $exponents * @param array $coefficients * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $d, array $primes, array $exponents, array $coefficients, $password = '', array $options = []) { } /** * Convert a public key to the appropriate format * * @param BigInteger $n * @param BigInteger $e * @param array $options optional * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e, array $options = []) { } } /** * PKCS#8 Formatted RSA-PSS Key Handler * * @author Jim Wigginton */ abstract class PSS extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PKCS8 { /** * OID Name * * @var string */ const OID_NAME = 'id-RSASSA-PSS'; /** * OID Value * * @var string */ const OID_VALUE = '1.2.840.113549.1.1.10'; /** * OIDs loaded * * @var bool */ private static $oidsLoaded = \false; /** * Child OIDs loaded * * @var bool */ protected static $childOIDsLoaded = \false; /** * Initialize static variables */ private static function initialize_static_variables() { } /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a private key to the appropriate format. * * @param BigInteger $n * @param BigInteger $e * @param BigInteger $d * @param array $primes * @param array $exponents * @param array $coefficients * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $d, array $primes, array $exponents, array $coefficients, $password = '', array $options = []) { } /** * Convert a public key to the appropriate format * * @param BigInteger $n * @param BigInteger $e * @param array $options optional * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e, array $options = []) { } /** * Encodes PSS parameters * * @param array $options * @return string */ public static function savePSSParams(array $options) { } } /** * PuTTY Formatted RSA Key Handler * * @author Jim Wigginton */ abstract class PuTTY extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PuTTY { /** * Public Handler * * @var string */ const PUBLIC_HANDLER = 'ForminatorGoogleAddon\phpseclib3\Crypt\RSA\Formats\Keys\OpenSSH'; /** * Algorithm Identifier * * @var array */ protected static $types = ['ssh-rsa']; /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a private key to the appropriate format. * * @param BigInteger $n * @param BigInteger $e * @param BigInteger $d * @param array $primes * @param array $exponents * @param array $coefficients * @param string $password optional * @param array $options optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $d, array $primes, array $exponents, array $coefficients, $password = '', array $options = []) { } /** * Convert a public key to the appropriate format * * @param BigInteger $n * @param BigInteger $e * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e) { } } /** * Raw RSA Key Handler * * @author Jim Wigginton */ abstract class Raw { /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a private key to the appropriate format. * * @param BigInteger $n * @param BigInteger $e * @param BigInteger $d * @param array $primes * @param array $exponents * @param array $coefficients * @param string $password optional * @param array $options optional * @return array */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $d, array $primes, array $exponents, array $coefficients, $password = '', array $options = []) { } /** * Convert a public key to the appropriate format * * @param BigInteger $n * @param BigInteger $e * @return array */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e) { } } /** * XML Formatted RSA Key Handler * * @author Jim Wigginton */ abstract class XML { /** * Break a public or private key down into its constituent components * * @param string $key * @param string $password optional * @return array */ public static function load($key, $password = '') { } /** * Convert a private key to the appropriate format. * * @param BigInteger $n * @param BigInteger $e * @param BigInteger $d * @param array $primes * @param array $exponents * @param array $coefficients * @param string $password optional * @return string */ public static function savePrivateKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $d, array $primes, array $exponents, array $coefficients, $password = '') { } /** * Convert a public key to the appropriate format * * @param BigInteger $n * @param BigInteger $e * @return string */ public static function savePublicKey(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e) { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt\RSA { /** * Raw RSA Key Handler * * @author Jim Wigginton */ final class PrivateKey extends \ForminatorGoogleAddon\phpseclib3\Crypt\RSA implements \ForminatorGoogleAddon\phpseclib3\Crypt\Common\PrivateKey { use \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Traits\PasswordProtected; /** * Primes for Chinese Remainder Theorem (ie. p and q) * * @var array */ protected $primes; /** * Exponents for Chinese Remainder Theorem (ie. dP and dQ) * * @var array */ protected $exponents; /** * Coefficients for Chinese Remainder Theorem (ie. qInv) * * @var array */ protected $coefficients; /** * Private Exponent * * @var BigInteger */ protected $privateExponent; /** * RSADP * * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.2 RFC3447#section-5.1.2}. * * @return bool|BigInteger */ private function rsadp(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $c) { } /** * RSASP1 * * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.1 RFC3447#section-5.2.1}. * * @return bool|BigInteger */ private function rsasp1(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $m) { } /** * Exponentiate * * @param BigInteger $x * @return BigInteger */ protected function exponentiate(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x) { } /** * Performs RSA Blinding * * Protects against timing attacks by employing RSA Blinding. * Returns $x->modPow($this->exponents[$i], $this->primes[$i]) * * @param BigInteger $x * @param BigInteger $r * @param int $i * @return BigInteger */ private function blind(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $r, $i) { } /** * EMSA-PSS-ENCODE * * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.1 RFC3447#section-9.1.1}. * * @return string * @param string $m * @throws \RuntimeException on encoding error * @param int $emBits */ private function emsa_pss_encode($m, $emBits) { } /** * RSASSA-PSS-SIGN * * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.1 RFC3447#section-8.1.1}. * * @param string $m * @return bool|string */ private function rsassa_pss_sign($m) { } /** * RSASSA-PKCS1-V1_5-SIGN * * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.1 RFC3447#section-8.2.1}. * * @param string $m * @throws \LengthException if the RSA modulus is too short * @return bool|string */ private function rsassa_pkcs1_v1_5_sign($m) { } /** * Create a signature * * @see self::verify() * @param string $message * @return string */ public function sign($message) { } /** * RSAES-PKCS1-V1_5-DECRYPT * * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.2 RFC3447#section-7.2.2}. * * @param string $c * @return bool|string */ private function rsaes_pkcs1_v1_5_decrypt($c) { } /** * RSAES-OAEP-DECRYPT * * See {@link http://tools.ietf.org/html/rfc3447#section-7.1.2 RFC3447#section-7.1.2}. The fact that the error * messages aren't distinguishable from one another hinders debugging, but, to quote from RFC3447#section-7.1.2: * * Note. Care must be taken to ensure that an opponent cannot * distinguish the different error conditions in Step 3.g, whether by * error message or timing, or, more generally, learn partial * information about the encoded message EM. Otherwise an opponent may * be able to obtain useful information about the decryption of the * ciphertext C, leading to a chosen-ciphertext attack such as the one * observed by Manger [36]. * * @param string $c * @return bool|string */ private function rsaes_oaep_decrypt($c) { } /** * Raw Encryption / Decryption * * Doesn't use padding and is not recommended. * * @param string $m * @return bool|string * @throws \LengthException if strlen($m) > $this->k */ private function raw_encrypt($m) { } /** * Decryption * * @see self::encrypt() * @param string $ciphertext * @return bool|string */ public function decrypt($ciphertext) { } /** * Returns the public key * * @return mixed */ public function getPublicKey() { } /** * Returns the private key * * @param string $type * @param array $options optional * @return string */ public function toString($type, array $options = []) { } } /** * Raw RSA Key Handler * * @author Jim Wigginton */ final class PublicKey extends \ForminatorGoogleAddon\phpseclib3\Crypt\RSA implements \ForminatorGoogleAddon\phpseclib3\Crypt\Common\PublicKey { use \ForminatorGoogleAddon\phpseclib3\Crypt\Common\Traits\Fingerprint; /** * Exponentiate * * @param BigInteger $x * @return BigInteger */ private function exponentiate(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x) { } /** * RSAVP1 * * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.2 RFC3447#section-5.2.2}. * * @param BigInteger $s * @return bool|BigInteger */ private function rsavp1($s) { } /** * RSASSA-PKCS1-V1_5-VERIFY * * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.2 RFC3447#section-8.2.2}. * * @param string $m * @param string $s * @throws \LengthException if the RSA modulus is too short * @return bool */ private function rsassa_pkcs1_v1_5_verify($m, $s) { } /** * RSASSA-PKCS1-V1_5-VERIFY (relaxed matching) * * Per {@link http://tools.ietf.org/html/rfc3447#page-43 RFC3447#page-43} PKCS1 v1.5 * specified the use BER encoding rather than DER encoding that PKCS1 v2.0 specified. * This means that under rare conditions you can have a perfectly valid v1.5 signature * that fails to validate with _rsassa_pkcs1_v1_5_verify(). PKCS1 v2.1 also recommends * that if you're going to validate these types of signatures you "should indicate * whether the underlying BER encoding is a DER encoding and hence whether the signature * is valid with respect to the specification given in [PKCS1 v2.0+]". so if you do * $rsa->getLastPadding() and get RSA::PADDING_RELAXED_PKCS1 back instead of * RSA::PADDING_PKCS1... that means BER encoding was used. * * @param string $m * @param string $s * @return bool */ private function rsassa_pkcs1_v1_5_relaxed_verify($m, $s) { } /** * EMSA-PSS-VERIFY * * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.2 RFC3447#section-9.1.2}. * * @param string $m * @param string $em * @param int $emBits * @return string */ private function emsa_pss_verify($m, $em, $emBits) { } /** * RSASSA-PSS-VERIFY * * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.2 RFC3447#section-8.1.2}. * * @param string $m * @param string $s * @return bool|string */ private function rsassa_pss_verify($m, $s) { } /** * Verifies a signature * * @see self::sign() * @param string $message * @param string $signature * @return bool */ public function verify($message, $signature) { } /** * RSAES-PKCS1-V1_5-ENCRYPT * * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.1 RFC3447#section-7.2.1}. * * @param string $m * @param bool $pkcs15_compat optional * @throws \LengthException if strlen($m) > $this->k - 11 * @return bool|string */ private function rsaes_pkcs1_v1_5_encrypt($m, $pkcs15_compat = \false) { } /** * RSAES-OAEP-ENCRYPT * * See {@link http://tools.ietf.org/html/rfc3447#section-7.1.1 RFC3447#section-7.1.1} and * {http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding OAES}. * * @param string $m * @throws \LengthException if strlen($m) > $this->k - 2 * $this->hLen - 2 * @return string */ private function rsaes_oaep_encrypt($m) { } /** * RSAEP * * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.1 RFC3447#section-5.1.1}. * * @param BigInteger $m * @return bool|BigInteger */ private function rsaep($m) { } /** * Raw Encryption / Decryption * * Doesn't use padding and is not recommended. * * @param string $m * @return bool|string * @throws \LengthException if strlen($m) > $this->k */ private function raw_encrypt($m) { } /** * Encryption * * Both self::PADDING_OAEP and self::PADDING_PKCS1 both place limits on how long $plaintext can be. * If $plaintext exceeds those limits it will be broken up so that it does and the resultant ciphertext's will * be concatenated together. * * @see self::decrypt() * @param string $plaintext * @return bool|string * @throws \LengthException if the RSA modulus is too short */ public function encrypt($plaintext) { } /** * Returns the public key * * The public key is only returned under two circumstances - if the private key had the public key embedded within it * or if the public key was set via setPublicKey(). If the currently loaded key is supposed to be the public key this * function won't return it since this library, for the most part, doesn't distinguish between public and private keys. * * @param string $type * @param array $options optional * @return mixed */ public function toString($type, array $options = []) { } /** * Converts a public key to a private key * * @return RSA */ public function asPrivateKey() { } } } namespace ForminatorGoogleAddon\phpseclib3\Crypt { /** * Pure-PHP Random Number Generator * * @author Jim Wigginton */ abstract class Random { /** * Generate a random string. * * Although microoptimizations are generally discouraged as they impair readability this function is ripe with * microoptimizations because this function has the potential of being called a huge number of times. * eg. for RSA key generation. * * @param int $length * @throws \RuntimeException if a symmetric cipher is needed but not loaded * @return string */ public static function string($length) { } /** * Safely serialize variables * * If a class has a private __sleep() it'll emit a warning * @return mixed * @param mixed $arr */ private static function safe_serialize(&$arr) { } } /** * Pure-PHP implementation of Triple DES. * * @author Jim Wigginton */ class TripleDES extends \ForminatorGoogleAddon\phpseclib3\Crypt\DES { /** * Encrypt / decrypt using inner chaining * * Inner chaining is used by SSH-1 and is generally considered to be less secure then outer chaining (self::MODE_CBC3). */ const MODE_3CBC = -2; /** * Encrypt / decrypt using outer chaining * * Outer chaining is used by SSH-2 and when the mode is set to \phpseclib3\Crypt\Common\BlockCipher::MODE_CBC. */ const MODE_CBC3 = self::MODE_CBC; /** * Key Length (in bytes) * * @see \phpseclib3\Crypt\TripleDES::setKeyLength() * @var int */ protected $key_length = 24; /** * The mcrypt specific name of the cipher * * @see \phpseclib3\Crypt\DES::cipher_name_mcrypt * @see \phpseclib3\Crypt\Common\SymmetricKey::cipher_name_mcrypt * @var string */ protected $cipher_name_mcrypt = 'tripledes'; /** * Optimizing value while CFB-encrypting * * @see \phpseclib3\Crypt\Common\SymmetricKey::cfb_init_len * @var int */ protected $cfb_init_len = 750; /** * max possible size of $key * * @see self::setKey() * @see \phpseclib3\Crypt\DES::setKey() * @var string */ protected $key_length_max = 24; /** * Internal flag whether using self::MODE_3CBC or not * * @var bool */ private $mode_3cbc; /** * The \phpseclib3\Crypt\DES objects * * Used only if $mode_3cbc === true * * @var array */ private $des; /** * Default Constructor. * * Determines whether or not the mcrypt or OpenSSL extensions should be used. * * $mode could be: * * - ecb * * - cbc * * - ctr * * - cfb * * - ofb * * - 3cbc * * - cbc3 (same as cbc) * * @see \phpseclib3\Crypt\DES::__construct() * @see \phpseclib3\Crypt\Common\SymmetricKey::__construct() * @param string $mode */ public function __construct($mode) { } /** * Test for engine validity * * This is mainly just a wrapper to set things up for \phpseclib3\Crypt\Common\SymmetricKey::isValidEngine() * * @see \phpseclib3\Crypt\Common\SymmetricKey::__construct() * @param int $engine * @return bool */ protected function isValidEngineHelper($engine) { } /** * Sets the initialization vector. * * SetIV is not required when \phpseclib3\Crypt\Common\SymmetricKey::MODE_ECB is being used. * * @see \phpseclib3\Crypt\Common\SymmetricKey::setIV() * @param string $iv */ public function setIV($iv) { } /** * Sets the key length. * * Valid key lengths are 128 and 192 bits. * * If you want to use a 64-bit key use DES.php * * @see \phpseclib3\Crypt\Common\SymmetricKey:setKeyLength() * @throws \LengthException if the key length is invalid * @param int $length */ public function setKeyLength($length) { } /** * Sets the key. * * Triple DES can use 128-bit (eg. strlen($key) == 16) or 192-bit (eg. strlen($key) == 24) keys. * * DES also requires that every eighth bit be a parity bit, however, we'll ignore that. * * @see \phpseclib3\Crypt\DES::setKey() * @see \phpseclib3\Crypt\Common\SymmetricKey::setKey() * @throws \LengthException if the key length is invalid * @param string $key */ public function setKey($key) { } /** * Encrypts a message. * * @see \phpseclib3\Crypt\Common\SymmetricKey::encrypt() * @param string $plaintext * @return string $cipertext */ public function encrypt($plaintext) { } /** * Decrypts a message. * * @see \phpseclib3\Crypt\Common\SymmetricKey::decrypt() * @param string $ciphertext * @return string $plaintext */ public function decrypt($ciphertext) { } /** * Treat consecutive "packets" as if they are a continuous buffer. * * Say you have a 16-byte plaintext $plaintext. Using the default behavior, the two following code snippets * will yield different outputs: * * * echo $des->encrypt(substr($plaintext, 0, 8)); * echo $des->encrypt(substr($plaintext, 8, 8)); * * * echo $des->encrypt($plaintext); * * * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates * another, as demonstrated with the following: * * * $des->encrypt(substr($plaintext, 0, 8)); * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); * * * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); * * * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different * outputs. The reason is due to the fact that the initialization vector's change after every encryption / * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. * * Put another way, when the continuous buffer is enabled, the state of the \phpseclib3\Crypt\DES() object changes after each * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), * however, they are also less intuitive and more likely to cause you problems. * * @see \phpseclib3\Crypt\Common\SymmetricKey::enableContinuousBuffer() * @see self::disableContinuousBuffer() */ public function enableContinuousBuffer() { } /** * Treat consecutive packets as if they are a discontinuous buffer. * * The default behavior. * * @see \phpseclib3\Crypt\Common\SymmetricKey::disableContinuousBuffer() * @see self::enableContinuousBuffer() */ public function disableContinuousBuffer() { } /** * Creates the key schedule * * @see \phpseclib3\Crypt\DES::setupKey() * @see \phpseclib3\Crypt\Common\SymmetricKey::setupKey() */ protected function setupKey() { } /** * Sets the internal crypt engine * * @see \phpseclib3\Crypt\Common\SymmetricKey::__construct() * @see \phpseclib3\Crypt\Common\SymmetricKey::setPreferredEngine() * @param int $engine */ public function setPreferredEngine($engine) { } } /** * Pure-PHP implementation of Twofish. * * @author Jim Wigginton * @author Hans-Juergen Petrich */ class Twofish extends \ForminatorGoogleAddon\phpseclib3\Crypt\Common\BlockCipher { /** * The mcrypt specific name of the cipher * * @see \phpseclib3\Crypt\Common\SymmetricKey::cipher_name_mcrypt * @var string */ protected $cipher_name_mcrypt = 'twofish'; /** * Optimizing value while CFB-encrypting * * @see \phpseclib3\Crypt\Common\SymmetricKey::cfb_init_len * @var int */ protected $cfb_init_len = 800; /** * Q-Table * * @var array */ private static $q0 = [0xa9, 0x67, 0xb3, 0xe8, 0x4, 0xfd, 0xa3, 0x76, 0x9a, 0x92, 0x80, 0x78, 0xe4, 0xdd, 0xd1, 0x38, 0xd, 0xc6, 0x35, 0x98, 0x18, 0xf7, 0xec, 0x6c, 0x43, 0x75, 0x37, 0x26, 0xfa, 0x13, 0x94, 0x48, 0xf2, 0xd0, 0x8b, 0x30, 0x84, 0x54, 0xdf, 0x23, 0x19, 0x5b, 0x3d, 0x59, 0xf3, 0xae, 0xa2, 0x82, 0x63, 0x1, 0x83, 0x2e, 0xd9, 0x51, 0x9b, 0x7c, 0xa6, 0xeb, 0xa5, 0xbe, 0x16, 0xc, 0xe3, 0x61, 0xc0, 0x8c, 0x3a, 0xf5, 0x73, 0x2c, 0x25, 0xb, 0xbb, 0x4e, 0x89, 0x6b, 0x53, 0x6a, 0xb4, 0xf1, 0xe1, 0xe6, 0xbd, 0x45, 0xe2, 0xf4, 0xb6, 0x66, 0xcc, 0x95, 0x3, 0x56, 0xd4, 0x1c, 0x1e, 0xd7, 0xfb, 0xc3, 0x8e, 0xb5, 0xe9, 0xcf, 0xbf, 0xba, 0xea, 0x77, 0x39, 0xaf, 0x33, 0xc9, 0x62, 0x71, 0x81, 0x79, 0x9, 0xad, 0x24, 0xcd, 0xf9, 0xd8, 0xe5, 0xc5, 0xb9, 0x4d, 0x44, 0x8, 0x86, 0xe7, 0xa1, 0x1d, 0xaa, 0xed, 0x6, 0x70, 0xb2, 0xd2, 0x41, 0x7b, 0xa0, 0x11, 0x31, 0xc2, 0x27, 0x90, 0x20, 0xf6, 0x60, 0xff, 0x96, 0x5c, 0xb1, 0xab, 0x9e, 0x9c, 0x52, 0x1b, 0x5f, 0x93, 0xa, 0xef, 0x91, 0x85, 0x49, 0xee, 0x2d, 0x4f, 0x8f, 0x3b, 0x47, 0x87, 0x6d, 0x46, 0xd6, 0x3e, 0x69, 0x64, 0x2a, 0xce, 0xcb, 0x2f, 0xfc, 0x97, 0x5, 0x7a, 0xac, 0x7f, 0xd5, 0x1a, 0x4b, 0xe, 0xa7, 0x5a, 0x28, 0x14, 0x3f, 0x29, 0x88, 0x3c, 0x4c, 0x2, 0xb8, 0xda, 0xb0, 0x17, 0x55, 0x1f, 0x8a, 0x7d, 0x57, 0xc7, 0x8d, 0x74, 0xb7, 0xc4, 0x9f, 0x72, 0x7e, 0x15, 0x22, 0x12, 0x58, 0x7, 0x99, 0x34, 0x6e, 0x50, 0xde, 0x68, 0x65, 0xbc, 0xdb, 0xf8, 0xc8, 0xa8, 0x2b, 0x40, 0xdc, 0xfe, 0x32, 0xa4, 0xca, 0x10, 0x21, 0xf0, 0xd3, 0x5d, 0xf, 0x0, 0x6f, 0x9d, 0x36, 0x42, 0x4a, 0x5e, 0xc1, 0xe0]; /** * Q-Table * * @var array */ private static $q1 = [0x75, 0xf3, 0xc6, 0xf4, 0xdb, 0x7b, 0xfb, 0xc8, 0x4a, 0xd3, 0xe6, 0x6b, 0x45, 0x7d, 0xe8, 0x4b, 0xd6, 0x32, 0xd8, 0xfd, 0x37, 0x71, 0xf1, 0xe1, 0x30, 0xf, 0xf8, 0x1b, 0x87, 0xfa, 0x6, 0x3f, 0x5e, 0xba, 0xae, 0x5b, 0x8a, 0x0, 0xbc, 0x9d, 0x6d, 0xc1, 0xb1, 0xe, 0x80, 0x5d, 0xd2, 0xd5, 0xa0, 0x84, 0x7, 0x14, 0xb5, 0x90, 0x2c, 0xa3, 0xb2, 0x73, 0x4c, 0x54, 0x92, 0x74, 0x36, 0x51, 0x38, 0xb0, 0xbd, 0x5a, 0xfc, 0x60, 0x62, 0x96, 0x6c, 0x42, 0xf7, 0x10, 0x7c, 0x28, 0x27, 0x8c, 0x13, 0x95, 0x9c, 0xc7, 0x24, 0x46, 0x3b, 0x70, 0xca, 0xe3, 0x85, 0xcb, 0x11, 0xd0, 0x93, 0xb8, 0xa6, 0x83, 0x20, 0xff, 0x9f, 0x77, 0xc3, 0xcc, 0x3, 0x6f, 0x8, 0xbf, 0x40, 0xe7, 0x2b, 0xe2, 0x79, 0xc, 0xaa, 0x82, 0x41, 0x3a, 0xea, 0xb9, 0xe4, 0x9a, 0xa4, 0x97, 0x7e, 0xda, 0x7a, 0x17, 0x66, 0x94, 0xa1, 0x1d, 0x3d, 0xf0, 0xde, 0xb3, 0xb, 0x72, 0xa7, 0x1c, 0xef, 0xd1, 0x53, 0x3e, 0x8f, 0x33, 0x26, 0x5f, 0xec, 0x76, 0x2a, 0x49, 0x81, 0x88, 0xee, 0x21, 0xc4, 0x1a, 0xeb, 0xd9, 0xc5, 0x39, 0x99, 0xcd, 0xad, 0x31, 0x8b, 0x1, 0x18, 0x23, 0xdd, 0x1f, 0x4e, 0x2d, 0xf9, 0x48, 0x4f, 0xf2, 0x65, 0x8e, 0x78, 0x5c, 0x58, 0x19, 0x8d, 0xe5, 0x98, 0x57, 0x67, 0x7f, 0x5, 0x64, 0xaf, 0x63, 0xb6, 0xfe, 0xf5, 0xb7, 0x3c, 0xa5, 0xce, 0xe9, 0x68, 0x44, 0xe0, 0x4d, 0x43, 0x69, 0x29, 0x2e, 0xac, 0x15, 0x59, 0xa8, 0xa, 0x9e, 0x6e, 0x47, 0xdf, 0x34, 0x35, 0x6a, 0xcf, 0xdc, 0x22, 0xc9, 0xc0, 0x9b, 0x89, 0xd4, 0xed, 0xab, 0x12, 0xa2, 0xd, 0x52, 0xbb, 0x2, 0x2f, 0xa9, 0xd7, 0x61, 0x1e, 0xb4, 0x50, 0x4, 0xf6, 0xc2, 0x16, 0x25, 0x86, 0x56, 0x55, 0x9, 0xbe, 0x91]; /** * M-Table * * @var array */ private static $m0 = [0xbcbc3275, 0xecec21f3, 0x202043c6, 0xb3b3c9f4, 0xdada03db, 0x2028b7b, 0xe2e22bfb, 0x9e9efac8, 0xc9c9ec4a, 0xd4d409d3, 0x18186be6, 0x1e1e9f6b, 0x98980e45, 0xb2b2387d, 0xa6a6d2e8, 0x2626b74b, 0x3c3c57d6, 0x93938a32, 0x8282eed8, 0x525298fd, 0x7b7bd437, 0xbbbb3771, 0x5b5b97f1, 0x474783e1, 0x24243c30, 0x5151e20f, 0xbabac6f8, 0x4a4af31b, 0xbfbf4887, 0xd0d70fa, 0xb0b0b306, 0x7575de3f, 0xd2d2fd5e, 0x7d7d20ba, 0x666631ae, 0x3a3aa35b, 0x59591c8a, 0x0, 0xcdcd93bc, 0x1a1ae09d, 0xaeae2c6d, 0x7f7fabc1, 0x2b2bc7b1, 0xbebeb90e, 0xe0e0a080, 0x8a8a105d, 0x3b3b52d2, 0x6464bad5, 0xd8d888a0, 0xe7e7a584, 0x5f5fe807, 0x1b1b1114, 0x2c2cc2b5, 0xfcfcb490, 0x3131272c, 0x808065a3, 0x73732ab2, 0xc0c8173, 0x79795f4c, 0x6b6b4154, 0x4b4b0292, 0x53536974, 0x94948f36, 0x83831f51, 0x2a2a3638, 0xc4c49cb0, 0x2222c8bd, 0xd5d5f85a, 0xbdbdc3fc, 0x48487860, 0xffffce62, 0x4c4c0796, 0x4141776c, 0xc7c7e642, 0xebeb24f7, 0x1c1c1410, 0x5d5d637c, 0x36362228, 0x6767c027, 0xe9e9af8c, 0x4444f913, 0x1414ea95, 0xf5f5bb9c, 0xcfcf18c7, 0x3f3f2d24, 0xc0c0e346, 0x7272db3b, 0x54546c70, 0x29294cca, 0xf0f035e3, 0x808fe85, 0xc6c617cb, 0xf3f34f11, 0x8c8ce4d0, 0xa4a45993, 0xcaca96b8, 0x68683ba6, 0xb8b84d83, 0x38382820, 0xe5e52eff, 0xadad569f, 0xb0b8477, 0xc8c81dc3, 0x9999ffcc, 0x5858ed03, 0x19199a6f, 0xe0e0a08, 0x95957ebf, 0x70705040, 0xf7f730e7, 0x6e6ecf2b, 0x1f1f6ee2, 0xb5b53d79, 0x9090f0c, 0x616134aa, 0x57571682, 0x9f9f0b41, 0x9d9d803a, 0x111164ea, 0x2525cdb9, 0xafafdde4, 0x4545089a, 0xdfdf8da4, 0xa3a35c97, 0xeaead57e, 0x353558da, 0xededd07a, 0x4343fc17, 0xf8f8cb66, 0xfbfbb194, 0x3737d3a1, 0xfafa401d, 0xc2c2683d, 0xb4b4ccf0, 0x32325dde, 0x9c9c71b3, 0x5656e70b, 0xe3e3da72, 0x878760a7, 0x15151b1c, 0xf9f93aef, 0x6363bfd1, 0x3434a953, 0x9a9a853e, 0xb1b1428f, 0x7c7cd133, 0x88889b26, 0x3d3da65f, 0xa1a1d7ec, 0xe4e4df76, 0x8181942a, 0x91910149, 0xf0ffb81, 0xeeeeaa88, 0x161661ee, 0xd7d77321, 0x9797f5c4, 0xa5a5a81a, 0xfefe3feb, 0x6d6db5d9, 0x7878aec5, 0xc5c56d39, 0x1d1de599, 0x7676a4cd, 0x3e3edcad, 0xcbcb6731, 0xb6b6478b, 0xefef5b01, 0x12121e18, 0x6060c523, 0x6a6ab0dd, 0x4d4df61f, 0xcecee94e, 0xdede7c2d, 0x55559df9, 0x7e7e5a48, 0x2121b24f, 0x3037af2, 0xa0a02665, 0x5e5e198e, 0x5a5a6678, 0x65654b5c, 0x62624e58, 0xfdfd4519, 0x606f48d, 0x404086e5, 0xf2f2be98, 0x3333ac57, 0x17179067, 0x5058e7f, 0xe8e85e05, 0x4f4f7d64, 0x89896aaf, 0x10109563, 0x74742fb6, 0xa0a75fe, 0x5c5c92f5, 0x9b9b74b7, 0x2d2d333c, 0x3030d6a5, 0x2e2e49ce, 0x494989e9, 0x46467268, 0x77775544, 0xa8a8d8e0, 0x9696044d, 0x2828bd43, 0xa9a92969, 0xd9d97929, 0x8686912e, 0xd1d187ac, 0xf4f44a15, 0x8d8d1559, 0xd6d682a8, 0xb9b9bc0a, 0x42420d9e, 0xf6f6c16e, 0x2f2fb847, 0xdddd06df, 0x23233934, 0xcccc6235, 0xf1f1c46a, 0xc1c112cf, 0x8585ebdc, 0x8f8f9e22, 0x7171a1c9, 0x9090f0c0, 0xaaaa539b, 0x101f189, 0x8b8be1d4, 0x4e4e8ced, 0x8e8e6fab, 0xababa212, 0x6f6f3ea2, 0xe6e6540d, 0xdbdbf252, 0x92927bbb, 0xb7b7b602, 0x6969ca2f, 0x3939d9a9, 0xd3d30cd7, 0xa7a72361, 0xa2a2ad1e, 0xc3c399b4, 0x6c6c4450, 0x7070504, 0x4047ff6, 0x272746c2, 0xacaca716, 0xd0d07625, 0x50501386, 0xdcdcf756, 0x84841a55, 0xe1e15109, 0x7a7a25be, 0x1313ef91]; /** * M-Table * * @var array */ private static $m1 = [0xa9d93939, 0x67901717, 0xb3719c9c, 0xe8d2a6a6, 0x4050707, 0xfd985252, 0xa3658080, 0x76dfe4e4, 0x9a084545, 0x92024b4b, 0x80a0e0e0, 0x78665a5a, 0xe4ddafaf, 0xddb06a6a, 0xd1bf6363, 0x38362a2a, 0xd54e6e6, 0xc6432020, 0x3562cccc, 0x98bef2f2, 0x181e1212, 0xf724ebeb, 0xecd7a1a1, 0x6c774141, 0x43bd2828, 0x7532bcbc, 0x37d47b7b, 0x269b8888, 0xfa700d0d, 0x13f94444, 0x94b1fbfb, 0x485a7e7e, 0xf27a0303, 0xd0e48c8c, 0x8b47b6b6, 0x303c2424, 0x84a5e7e7, 0x54416b6b, 0xdf06dddd, 0x23c56060, 0x1945fdfd, 0x5ba33a3a, 0x3d68c2c2, 0x59158d8d, 0xf321ecec, 0xae316666, 0xa23e6f6f, 0x82165757, 0x63951010, 0x15befef, 0x834db8b8, 0x2e918686, 0xd9b56d6d, 0x511f8383, 0x9b53aaaa, 0x7c635d5d, 0xa63b6868, 0xeb3ffefe, 0xa5d63030, 0xbe257a7a, 0x16a7acac, 0xc0f0909, 0xe335f0f0, 0x6123a7a7, 0xc0f09090, 0x8cafe9e9, 0x3a809d9d, 0xf5925c5c, 0x73810c0c, 0x2c273131, 0x2576d0d0, 0xbe75656, 0xbb7b9292, 0x4ee9cece, 0x89f10101, 0x6b9f1e1e, 0x53a93434, 0x6ac4f1f1, 0xb499c3c3, 0xf1975b5b, 0xe1834747, 0xe66b1818, 0xbdc82222, 0x450e9898, 0xe26e1f1f, 0xf4c9b3b3, 0xb62f7474, 0x66cbf8f8, 0xccff9999, 0x95ea1414, 0x3ed5858, 0x56f7dcdc, 0xd4e18b8b, 0x1c1b1515, 0x1eada2a2, 0xd70cd3d3, 0xfb2be2e2, 0xc31dc8c8, 0x8e195e5e, 0xb5c22c2c, 0xe9894949, 0xcf12c1c1, 0xbf7e9595, 0xba207d7d, 0xea641111, 0x77840b0b, 0x396dc5c5, 0xaf6a8989, 0x33d17c7c, 0xc9a17171, 0x62ceffff, 0x7137bbbb, 0x81fb0f0f, 0x793db5b5, 0x951e1e1, 0xaddc3e3e, 0x242d3f3f, 0xcda47676, 0xf99d5555, 0xd8ee8282, 0xe5864040, 0xc5ae7878, 0xb9cd2525, 0x4d049696, 0x44557777, 0x80a0e0e, 0x86135050, 0xe730f7f7, 0xa1d33737, 0x1d40fafa, 0xaa346161, 0xed8c4e4e, 0x6b3b0b0, 0x706c5454, 0xb22a7373, 0xd2523b3b, 0x410b9f9f, 0x7b8b0202, 0xa088d8d8, 0x114ff3f3, 0x3167cbcb, 0xc2462727, 0x27c06767, 0x90b4fcfc, 0x20283838, 0xf67f0404, 0x60784848, 0xff2ee5e5, 0x96074c4c, 0x5c4b6565, 0xb1c72b2b, 0xab6f8e8e, 0x9e0d4242, 0x9cbbf5f5, 0x52f2dbdb, 0x1bf34a4a, 0x5fa63d3d, 0x9359a4a4, 0xabcb9b9, 0xef3af9f9, 0x91ef1313, 0x85fe0808, 0x49019191, 0xee611616, 0x2d7cdede, 0x4fb22121, 0x8f42b1b1, 0x3bdb7272, 0x47b82f2f, 0x8748bfbf, 0x6d2caeae, 0x46e3c0c0, 0xd6573c3c, 0x3e859a9a, 0x6929a9a9, 0x647d4f4f, 0x2a948181, 0xce492e2e, 0xcb17c6c6, 0x2fca6969, 0xfcc3bdbd, 0x975ca3a3, 0x55ee8e8, 0x7ad0eded, 0xac87d1d1, 0x7f8e0505, 0xd5ba6464, 0x1aa8a5a5, 0x4bb72626, 0xeb9bebe, 0xa7608787, 0x5af8d5d5, 0x28223636, 0x14111b1b, 0x3fde7575, 0x2979d9d9, 0x88aaeeee, 0x3c332d2d, 0x4c5f7979, 0x2b6b7b7, 0xb896caca, 0xda583535, 0xb09cc4c4, 0x17fc4343, 0x551a8484, 0x1ff64d4d, 0x8a1c5959, 0x7d38b2b2, 0x57ac3333, 0xc718cfcf, 0x8df40606, 0x74695353, 0xb7749b9b, 0xc4f59797, 0x9f56adad, 0x72dae3e3, 0x7ed5eaea, 0x154af4f4, 0x229e8f8f, 0x12a2abab, 0x584e6262, 0x7e85f5f, 0x99e51d1d, 0x34392323, 0x6ec1f6f6, 0x50446c6c, 0xde5d3232, 0x68724646, 0x6526a0a0, 0xbc93cdcd, 0xdb03dada, 0xf8c6baba, 0xc8fa9e9e, 0xa882d6d6, 0x2bcf6e6e, 0x40507070, 0xdceb8585, 0xfe750a0a, 0x328a9393, 0xa48ddfdf, 0xca4c2929, 0x10141c1c, 0x2173d7d7, 0xf0ccb4b4, 0xd309d4d4, 0x5d108a8a, 0xfe25151, 0x0, 0x6f9a1919, 0x9de01a1a, 0x368f9494, 0x42e6c7c7, 0x4aecc9c9, 0x5efdd2d2, 0xc1ab7f7f, 0xe0d8a8a8]; /** * M-Table * * @var array */ private static $m2 = [0xbc75bc32, 0xecf3ec21, 0x20c62043, 0xb3f4b3c9, 0xdadbda03, 0x27b028b, 0xe2fbe22b, 0x9ec89efa, 0xc94ac9ec, 0xd4d3d409, 0x18e6186b, 0x1e6b1e9f, 0x9845980e, 0xb27db238, 0xa6e8a6d2, 0x264b26b7, 0x3cd63c57, 0x9332938a, 0x82d882ee, 0x52fd5298, 0x7b377bd4, 0xbb71bb37, 0x5bf15b97, 0x47e14783, 0x2430243c, 0x510f51e2, 0xbaf8bac6, 0x4a1b4af3, 0xbf87bf48, 0xdfa0d70, 0xb006b0b3, 0x753f75de, 0xd25ed2fd, 0x7dba7d20, 0x66ae6631, 0x3a5b3aa3, 0x598a591c, 0x0, 0xcdbccd93, 0x1a9d1ae0, 0xae6dae2c, 0x7fc17fab, 0x2bb12bc7, 0xbe0ebeb9, 0xe080e0a0, 0x8a5d8a10, 0x3bd23b52, 0x64d564ba, 0xd8a0d888, 0xe784e7a5, 0x5f075fe8, 0x1b141b11, 0x2cb52cc2, 0xfc90fcb4, 0x312c3127, 0x80a38065, 0x73b2732a, 0xc730c81, 0x794c795f, 0x6b546b41, 0x4b924b02, 0x53745369, 0x9436948f, 0x8351831f, 0x2a382a36, 0xc4b0c49c, 0x22bd22c8, 0xd55ad5f8, 0xbdfcbdc3, 0x48604878, 0xff62ffce, 0x4c964c07, 0x416c4177, 0xc742c7e6, 0xebf7eb24, 0x1c101c14, 0x5d7c5d63, 0x36283622, 0x672767c0, 0xe98ce9af, 0x441344f9, 0x149514ea, 0xf59cf5bb, 0xcfc7cf18, 0x3f243f2d, 0xc046c0e3, 0x723b72db, 0x5470546c, 0x29ca294c, 0xf0e3f035, 0x88508fe, 0xc6cbc617, 0xf311f34f, 0x8cd08ce4, 0xa493a459, 0xcab8ca96, 0x68a6683b, 0xb883b84d, 0x38203828, 0xe5ffe52e, 0xad9fad56, 0xb770b84, 0xc8c3c81d, 0x99cc99ff, 0x580358ed, 0x196f199a, 0xe080e0a, 0x95bf957e, 0x70407050, 0xf7e7f730, 0x6e2b6ecf, 0x1fe21f6e, 0xb579b53d, 0x90c090f, 0x61aa6134, 0x57825716, 0x9f419f0b, 0x9d3a9d80, 0x11ea1164, 0x25b925cd, 0xafe4afdd, 0x459a4508, 0xdfa4df8d, 0xa397a35c, 0xea7eead5, 0x35da3558, 0xed7aedd0, 0x431743fc, 0xf866f8cb, 0xfb94fbb1, 0x37a137d3, 0xfa1dfa40, 0xc23dc268, 0xb4f0b4cc, 0x32de325d, 0x9cb39c71, 0x560b56e7, 0xe372e3da, 0x87a78760, 0x151c151b, 0xf9eff93a, 0x63d163bf, 0x345334a9, 0x9a3e9a85, 0xb18fb142, 0x7c337cd1, 0x8826889b, 0x3d5f3da6, 0xa1eca1d7, 0xe476e4df, 0x812a8194, 0x91499101, 0xf810ffb, 0xee88eeaa, 0x16ee1661, 0xd721d773, 0x97c497f5, 0xa51aa5a8, 0xfeebfe3f, 0x6dd96db5, 0x78c578ae, 0xc539c56d, 0x1d991de5, 0x76cd76a4, 0x3ead3edc, 0xcb31cb67, 0xb68bb647, 0xef01ef5b, 0x1218121e, 0x602360c5, 0x6add6ab0, 0x4d1f4df6, 0xce4ecee9, 0xde2dde7c, 0x55f9559d, 0x7e487e5a, 0x214f21b2, 0x3f2037a, 0xa065a026, 0x5e8e5e19, 0x5a785a66, 0x655c654b, 0x6258624e, 0xfd19fd45, 0x68d06f4, 0x40e54086, 0xf298f2be, 0x335733ac, 0x17671790, 0x57f058e, 0xe805e85e, 0x4f644f7d, 0x89af896a, 0x10631095, 0x74b6742f, 0xafe0a75, 0x5cf55c92, 0x9bb79b74, 0x2d3c2d33, 0x30a530d6, 0x2ece2e49, 0x49e94989, 0x46684672, 0x77447755, 0xa8e0a8d8, 0x964d9604, 0x284328bd, 0xa969a929, 0xd929d979, 0x862e8691, 0xd1acd187, 0xf415f44a, 0x8d598d15, 0xd6a8d682, 0xb90ab9bc, 0x429e420d, 0xf66ef6c1, 0x2f472fb8, 0xdddfdd06, 0x23342339, 0xcc35cc62, 0xf16af1c4, 0xc1cfc112, 0x85dc85eb, 0x8f228f9e, 0x71c971a1, 0x90c090f0, 0xaa9baa53, 0x18901f1, 0x8bd48be1, 0x4eed4e8c, 0x8eab8e6f, 0xab12aba2, 0x6fa26f3e, 0xe60de654, 0xdb52dbf2, 0x92bb927b, 0xb702b7b6, 0x692f69ca, 0x39a939d9, 0xd3d7d30c, 0xa761a723, 0xa21ea2ad, 0xc3b4c399, 0x6c506c44, 0x7040705, 0x4f6047f, 0x27c22746, 0xac16aca7, 0xd025d076, 0x50865013, 0xdc56dcf7, 0x8455841a, 0xe109e151, 0x7abe7a25, 0x139113ef]; /** * M-Table * * @var array */ private static $m3 = [0xd939a9d9, 0x90176790, 0x719cb371, 0xd2a6e8d2, 0x5070405, 0x9852fd98, 0x6580a365, 0xdfe476df, 0x8459a08, 0x24b9202, 0xa0e080a0, 0x665a7866, 0xddafe4dd, 0xb06addb0, 0xbf63d1bf, 0x362a3836, 0x54e60d54, 0x4320c643, 0x62cc3562, 0xbef298be, 0x1e12181e, 0x24ebf724, 0xd7a1ecd7, 0x77416c77, 0xbd2843bd, 0x32bc7532, 0xd47b37d4, 0x9b88269b, 0x700dfa70, 0xf94413f9, 0xb1fb94b1, 0x5a7e485a, 0x7a03f27a, 0xe48cd0e4, 0x47b68b47, 0x3c24303c, 0xa5e784a5, 0x416b5441, 0x6dddf06, 0xc56023c5, 0x45fd1945, 0xa33a5ba3, 0x68c23d68, 0x158d5915, 0x21ecf321, 0x3166ae31, 0x3e6fa23e, 0x16578216, 0x95106395, 0x5bef015b, 0x4db8834d, 0x91862e91, 0xb56dd9b5, 0x1f83511f, 0x53aa9b53, 0x635d7c63, 0x3b68a63b, 0x3ffeeb3f, 0xd630a5d6, 0x257abe25, 0xa7ac16a7, 0xf090c0f, 0x35f0e335, 0x23a76123, 0xf090c0f0, 0xafe98caf, 0x809d3a80, 0x925cf592, 0x810c7381, 0x27312c27, 0x76d02576, 0xe7560be7, 0x7b92bb7b, 0xe9ce4ee9, 0xf10189f1, 0x9f1e6b9f, 0xa93453a9, 0xc4f16ac4, 0x99c3b499, 0x975bf197, 0x8347e183, 0x6b18e66b, 0xc822bdc8, 0xe98450e, 0x6e1fe26e, 0xc9b3f4c9, 0x2f74b62f, 0xcbf866cb, 0xff99ccff, 0xea1495ea, 0xed5803ed, 0xf7dc56f7, 0xe18bd4e1, 0x1b151c1b, 0xada21ead, 0xcd3d70c, 0x2be2fb2b, 0x1dc8c31d, 0x195e8e19, 0xc22cb5c2, 0x8949e989, 0x12c1cf12, 0x7e95bf7e, 0x207dba20, 0x6411ea64, 0x840b7784, 0x6dc5396d, 0x6a89af6a, 0xd17c33d1, 0xa171c9a1, 0xceff62ce, 0x37bb7137, 0xfb0f81fb, 0x3db5793d, 0x51e10951, 0xdc3eaddc, 0x2d3f242d, 0xa476cda4, 0x9d55f99d, 0xee82d8ee, 0x8640e586, 0xae78c5ae, 0xcd25b9cd, 0x4964d04, 0x55774455, 0xa0e080a, 0x13508613, 0x30f7e730, 0xd337a1d3, 0x40fa1d40, 0x3461aa34, 0x8c4eed8c, 0xb3b006b3, 0x6c54706c, 0x2a73b22a, 0x523bd252, 0xb9f410b, 0x8b027b8b, 0x88d8a088, 0x4ff3114f, 0x67cb3167, 0x4627c246, 0xc06727c0, 0xb4fc90b4, 0x28382028, 0x7f04f67f, 0x78486078, 0x2ee5ff2e, 0x74c9607, 0x4b655c4b, 0xc72bb1c7, 0x6f8eab6f, 0xd429e0d, 0xbbf59cbb, 0xf2db52f2, 0xf34a1bf3, 0xa63d5fa6, 0x59a49359, 0xbcb90abc, 0x3af9ef3a, 0xef1391ef, 0xfe0885fe, 0x1914901, 0x6116ee61, 0x7cde2d7c, 0xb2214fb2, 0x42b18f42, 0xdb723bdb, 0xb82f47b8, 0x48bf8748, 0x2cae6d2c, 0xe3c046e3, 0x573cd657, 0x859a3e85, 0x29a96929, 0x7d4f647d, 0x94812a94, 0x492ece49, 0x17c6cb17, 0xca692fca, 0xc3bdfcc3, 0x5ca3975c, 0x5ee8055e, 0xd0ed7ad0, 0x87d1ac87, 0x8e057f8e, 0xba64d5ba, 0xa8a51aa8, 0xb7264bb7, 0xb9be0eb9, 0x6087a760, 0xf8d55af8, 0x22362822, 0x111b1411, 0xde753fde, 0x79d92979, 0xaaee88aa, 0x332d3c33, 0x5f794c5f, 0xb6b702b6, 0x96cab896, 0x5835da58, 0x9cc4b09c, 0xfc4317fc, 0x1a84551a, 0xf64d1ff6, 0x1c598a1c, 0x38b27d38, 0xac3357ac, 0x18cfc718, 0xf4068df4, 0x69537469, 0x749bb774, 0xf597c4f5, 0x56ad9f56, 0xdae372da, 0xd5ea7ed5, 0x4af4154a, 0x9e8f229e, 0xa2ab12a2, 0x4e62584e, 0xe85f07e8, 0xe51d99e5, 0x39233439, 0xc1f66ec1, 0x446c5044, 0x5d32de5d, 0x72466872, 0x26a06526, 0x93cdbc93, 0x3dadb03, 0xc6baf8c6, 0xfa9ec8fa, 0x82d6a882, 0xcf6e2bcf, 0x50704050, 0xeb85dceb, 0x750afe75, 0x8a93328a, 0x8ddfa48d, 0x4c29ca4c, 0x141c1014, 0x73d72173, 0xccb4f0cc, 0x9d4d309, 0x108a5d10, 0xe2510fe2, 0x0, 0x9a196f9a, 0xe01a9de0, 0x8f94368f, 0xe6c742e6, 0xecc94aec, 0xfdd25efd, 0xab7fc1ab, 0xd8a8e0d8]; /** * The Key Schedule Array * * @var array */ private $K = []; /** * The Key depended S-Table 0 * * @var array */ private $S0 = []; /** * The Key depended S-Table 1 * * @var array */ private $S1 = []; /** * The Key depended S-Table 2 * * @var array */ private $S2 = []; /** * The Key depended S-Table 3 * * @var array */ private $S3 = []; /** * Holds the last used key * * @var array */ private $kl; /** * The Key Length (in bytes) * * @see Crypt_Twofish::setKeyLength() * @var int */ protected $key_length = 16; /** * Default Constructor. * * @param string $mode * @throws BadModeException if an invalid / unsupported mode is provided */ public function __construct($mode) { } /** * Initialize Static Variables */ protected static function initialize_static_variables() { } /** * Sets the key length. * * Valid key lengths are 128, 192 or 256 bits * * @param int $length */ public function setKeyLength($length) { } /** * Sets the key. * * Rijndael supports five different key lengths * * @see setKeyLength() * @param string $key * @throws \LengthException if the key length isn't supported */ public function setKey($key) { } /** * Setup the key (expansion) * * @see \phpseclib3\Crypt\Common\SymmetricKey::_setupKey() */ protected function setupKey() { } /** * _mdsrem function using by the twofish cipher algorithm * * @param string $A * @param string $B * @return array */ private function mdsrem($A, $B) { } /** * Encrypts a block * * @param string $in * @return string */ protected function encryptBlock($in) { } /** * Decrypts a block * * @param string $in * @return string */ protected function decryptBlock($in) { } /** * Setup the performance-optimized function for de/encrypt() * * @see \phpseclib3\Crypt\Common\SymmetricKey::_setupInlineCrypt() */ protected function setupInlineCrypt() { } } } namespace ForminatorGoogleAddon\phpseclib3\Exception { /** * BadConfigurationException * * @author Jim Wigginton */ class BadConfigurationException extends \RuntimeException { } /** * BadDecryptionException * * @author Jim Wigginton */ class BadDecryptionException extends \RuntimeException { } /** * BadModeException * * @author Jim Wigginton */ class BadModeException extends \RuntimeException { } /** * ConnectionClosedException * * @author Jim Wigginton */ class ConnectionClosedException extends \RuntimeException { } /** * FileNotFoundException * * @author Jim Wigginton */ class FileNotFoundException extends \RuntimeException { } /** * InconsistentSetupException * * @author Jim Wigginton */ class InconsistentSetupException extends \RuntimeException { } /** * InsufficientSetupException * * @author Jim Wigginton */ class InsufficientSetupException extends \RuntimeException { } /** * Indicates an absent or malformed packet length header */ class InvalidPacketLengthException extends \ForminatorGoogleAddon\phpseclib3\Exception\ConnectionClosedException { } /** * NoKeyLoadedException * * @author Jim Wigginton */ class NoKeyLoadedException extends \RuntimeException { } /** * NoSupportedAlgorithmsException * * @author Jim Wigginton */ class NoSupportedAlgorithmsException extends \RuntimeException { } /** * Indicates a timeout awaiting server response */ class TimeoutException extends \RuntimeException { } /** * UnableToConnectException * * @author Jim Wigginton */ class UnableToConnectException extends \RuntimeException { } /** * UnsupportedAlgorithmException * * @author Jim Wigginton */ class UnsupportedAlgorithmException extends \RuntimeException { } /** * UnsupportedCurveException * * @author Jim Wigginton */ class UnsupportedCurveException extends \RuntimeException { } /** * UnsupportedFormatException * * @author Jim Wigginton */ class UnsupportedFormatException extends \RuntimeException { } /** * UnsupportedOperationException * * @author Jim Wigginton */ class UnsupportedOperationException extends \RuntimeException { } } namespace ForminatorGoogleAddon\phpseclib3\File { /** * Pure-PHP ANSI Decoder * * @author Jim Wigginton */ class ANSI { /** * Max Width * * @var int */ private $max_x; /** * Max Height * * @var int */ private $max_y; /** * Max History * * @var int */ private $max_history; /** * History * * @var array */ private $history; /** * History Attributes * * @var array */ private $history_attrs; /** * Current Column * * @var int */ private $x; /** * Current Row * * @var int */ private $y; /** * Old Column * * @var int */ private $old_x; /** * Old Row * * @var int */ private $old_y; /** * An empty attribute cell * * @var object */ private $base_attr_cell; /** * The current attribute cell * * @var object */ private $attr_cell; /** * An empty attribute row * * @var array */ private $attr_row; /** * The current screen text * * @var list */ private $screen; /** * The current screen attributes * * @var array */ private $attrs; /** * Current ANSI code * * @var string */ private $ansi; /** * Tokenization * * @var array */ private $tokenization; /** * Default Constructor. * * @return ANSI */ public function __construct() { } /** * Set terminal width and height * * Resets the screen as well * * @param int $x * @param int $y */ public function setDimensions($x, $y) { } /** * Set the number of lines that should be logged past the terminal height * * @param int $history */ public function setHistory($history) { } /** * Load a string * * @param string $source */ public function loadString($source) { } /** * Appdend a string * * @param string $source */ public function appendString($source) { } /** * Add a new line * * Also update the $this->screen and $this->history buffers * */ private function newLine() { } /** * Returns the current coordinate without preformating * * @param \stdClass $last_attr * @param \stdClass $cur_attr * @param string $char * @return string */ private function processCoordinate(\stdClass $last_attr, \stdClass $cur_attr, $char) { } /** * Returns the current screen without preformating * * @return string */ private function getScreenHelper() { } /** * Returns the current screen * * @return string */ public function getScreen() { } /** * Returns the current screen and the x previous lines * * @return string */ public function getHistory() { } } /** * Pure-PHP ASN.1 Parser * * @author Jim Wigginton */ abstract class ASN1 { // Tag Classes // http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#page=12 const CLASS_UNIVERSAL = 0; const CLASS_APPLICATION = 1; const CLASS_CONTEXT_SPECIFIC = 2; const CLASS_PRIVATE = 3; // Tag Classes // http://www.obj-sys.com/asn1tutorial/node124.html const TYPE_BOOLEAN = 1; const TYPE_INTEGER = 2; const TYPE_BIT_STRING = 3; const TYPE_OCTET_STRING = 4; const TYPE_NULL = 5; const TYPE_OBJECT_IDENTIFIER = 6; //const TYPE_OBJECT_DESCRIPTOR = 7; //const TYPE_INSTANCE_OF = 8; // EXTERNAL const TYPE_REAL = 9; const TYPE_ENUMERATED = 10; //const TYPE_EMBEDDED = 11; const TYPE_UTF8_STRING = 12; //const TYPE_RELATIVE_OID = 13; const TYPE_SEQUENCE = 16; // SEQUENCE OF const TYPE_SET = 17; // SET OF // More Tag Classes // http://www.obj-sys.com/asn1tutorial/node10.html const TYPE_NUMERIC_STRING = 18; const TYPE_PRINTABLE_STRING = 19; const TYPE_TELETEX_STRING = 20; // T61String const TYPE_VIDEOTEX_STRING = 21; const TYPE_IA5_STRING = 22; const TYPE_UTC_TIME = 23; const TYPE_GENERALIZED_TIME = 24; const TYPE_GRAPHIC_STRING = 25; const TYPE_VISIBLE_STRING = 26; // ISO646String const TYPE_GENERAL_STRING = 27; const TYPE_UNIVERSAL_STRING = 28; //const TYPE_CHARACTER_STRING = 29; const TYPE_BMP_STRING = 30; // Tag Aliases // These tags are kinda place holders for other tags. const TYPE_CHOICE = -1; const TYPE_ANY = -2; /** * ASN.1 object identifiers * * @var array * @link http://en.wikipedia.org/wiki/Object_identifier */ private static $oids = []; /** * ASN.1 object identifier reverse mapping * * @var array */ private static $reverseOIDs = []; /** * Default date format * * @var string * @link http://php.net/class.datetime */ private static $format = 'D, d M Y H:i:s O'; /** * Filters * * If the mapping type is self::TYPE_ANY what do we actually encode it as? * * @var array * @see self::encode_der() */ private static $filters; /** * Current Location of most recent ASN.1 encode process * * Useful for debug purposes * * @var array * @see self::encode_der() */ private static $location; /** * DER Encoded String * * In case we need to create ASN1\Element object's.. * * @var string * @see self::decodeDER() */ private static $encoded; /** * Type mapping table for the ANY type. * * Structured or unknown types are mapped to a \phpseclib3\File\ASN1\Element. * Unambiguous types get the direct mapping (int/real/bool). * Others are mapped as a choice, with an extra indexing level. * * @var array */ const ANY_MAP = [ self::TYPE_BOOLEAN => \true, self::TYPE_INTEGER => \true, self::TYPE_BIT_STRING => 'bitString', self::TYPE_OCTET_STRING => 'octetString', self::TYPE_NULL => 'null', self::TYPE_OBJECT_IDENTIFIER => 'objectIdentifier', self::TYPE_REAL => \true, self::TYPE_ENUMERATED => 'enumerated', self::TYPE_UTF8_STRING => 'utf8String', self::TYPE_NUMERIC_STRING => 'numericString', self::TYPE_PRINTABLE_STRING => 'printableString', self::TYPE_TELETEX_STRING => 'teletexString', self::TYPE_VIDEOTEX_STRING => 'videotexString', self::TYPE_IA5_STRING => 'ia5String', self::TYPE_UTC_TIME => 'utcTime', self::TYPE_GENERALIZED_TIME => 'generalTime', self::TYPE_GRAPHIC_STRING => 'graphicString', self::TYPE_VISIBLE_STRING => 'visibleString', self::TYPE_GENERAL_STRING => 'generalString', self::TYPE_UNIVERSAL_STRING => 'universalString', //self::TYPE_CHARACTER_STRING => 'characterString', self::TYPE_BMP_STRING => 'bmpString', ]; /** * String type to character size mapping table. * * Non-convertable types are absent from this table. * size == 0 indicates variable length encoding. * * @var array */ const STRING_TYPE_SIZE = [self::TYPE_UTF8_STRING => 0, self::TYPE_BMP_STRING => 2, self::TYPE_UNIVERSAL_STRING => 4, self::TYPE_PRINTABLE_STRING => 1, self::TYPE_TELETEX_STRING => 1, self::TYPE_IA5_STRING => 1, self::TYPE_VISIBLE_STRING => 1]; /** * Parse BER-encoding * * Serves a similar purpose to openssl's asn1parse * * @param Element|string $encoded * @return ?array */ public static function decodeBER($encoded) { } /** * Parse BER-encoding (Helper function) * * Sometimes we want to get the BER encoding of a particular tag. $start lets us do that without having to reencode. * $encoded is passed by reference for the recursive calls done for self::TYPE_BIT_STRING and * self::TYPE_OCTET_STRING. In those cases, the indefinite length is used. * * @param string $encoded * @param int $start * @param int $encoded_pos * @return array|bool */ private static function decode_ber($encoded, $start = 0, $encoded_pos = 0) { } /** * ASN.1 Map * * Provides an ASN.1 semantic mapping ($mapping) from a parsed BER-encoding to a human readable format. * * "Special" mappings may be applied on a per tag-name basis via $special. * * @param array $decoded * @param array $mapping * @param array $special * @return array|bool|Element|string|null */ public static function asn1map(array $decoded, $mapping, $special = []) { } /** * DER-decode the length * * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information. * * @param string $string * @return int */ public static function decodeLength(&$string) { } /** * ASN.1 Encode * * DER-encodes an ASN.1 semantic mapping ($mapping). Some libraries would probably call this function * an ASN.1 compiler. * * "Special" mappings can be applied via $special. * * @param Element|string|array $source * @param array $mapping * @param array $special * @return string */ public static function encodeDER($source, $mapping, $special = []) { } /** * ASN.1 Encode (Helper function) * * @param Element|string|array|null $source * @param array $mapping * @param int $idx * @param array $special * @return string */ private static function encode_der($source, array $mapping, $idx = null, array $special = []) { } /** * BER-decode the OID * * Called by _decode_ber() * * @param string $content * @return string */ public static function decodeOID($content) { } /** * DER-encode the OID * * Called by _encode_der() * * @param string $source * @return string */ public static function encodeOID($source) { } /** * BER-decode the time * * Called by _decode_ber() and in the case of implicit tags asn1map(). * * @param string $content * @param int $tag * @return \DateTime|false */ private static function decodeTime($content, $tag) { } /** * Set the time format * * Sets the time / date format for asn1map(). * * @param string $format */ public static function setTimeFormat($format) { } /** * Load OIDs * * Load the relevant OIDs for a particular ASN.1 semantic mapping. * Previously loaded OIDs are retained. * * @param array $oids */ public static function loadOIDs(array $oids) { } /** * Set filters * * See \phpseclib3\File\X509, etc, for an example. * Previously loaded filters are not retained. * * @param array $filters */ public static function setFilters(array $filters) { } /** * String type conversion * * This is a lazy conversion, dealing only with character size. * No real conversion table is used. * * @param string $in * @param int $from * @param int $to * @return string */ public static function convert($in, $from = self::TYPE_UTF8_STRING, $to = self::TYPE_UTF8_STRING) { } /** * Extract raw BER from Base64 encoding * * @param string $str * @return string */ public static function extractBER($str) { } /** * DER-encode the length * * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information. * * @param int $length * @return string */ public static function encodeLength($length) { } /** * Returns the OID corresponding to a name * * What's returned in the associative array returned by loadX509() (or load*()) is either a name or an OID if * no OID to name mapping is available. The problem with this is that what may be an unmapped OID in one version * of phpseclib may not be unmapped in the next version, so apps that are looking at this OID may not be able * to work from version to version. * * This method will return the OID if a name is passed to it and if no mapping is avialable it'll assume that * what's being passed to it already is an OID and return that instead. A few examples. * * getOID('2.16.840.1.101.3.4.2.1') == '2.16.840.1.101.3.4.2.1' * getOID('id-sha256') == '2.16.840.1.101.3.4.2.1' * getOID('zzz') == 'zzz' * * @param string $name * @return string */ public static function getOID($name) { } } } namespace ForminatorGoogleAddon\phpseclib3\File\ASN1 { /** * ASN.1 Raw Element * * An ASN.1 ANY mapping will return an ASN1\Element object. Use of this object * will also bypass the normal encoding rules in ASN1::encodeDER() * * @author Jim Wigginton */ class Element { /** * Raw element value * * @var string */ public $element; /** * Constructor * * @param string $encoded * @return Element */ public function __construct($encoded) { } } } namespace ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps { /** * AccessDescription * * @author Jim Wigginton */ abstract class AccessDescription { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['accessMethod' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OBJECT_IDENTIFIER], 'accessLocation' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralName::MAP]]; } /** * AdministrationDomainName * * @author Jim Wigginton */ abstract class AdministrationDomainName { const MAP = [ 'type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_CHOICE, // if class isn't present it's assumed to be \phpseclib3\File\ASN1::CLASS_UNIVERSAL or // (if constant is present) \phpseclib3\File\ASN1::CLASS_CONTEXT_SPECIFIC 'class' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::CLASS_APPLICATION, 'cast' => 2, 'children' => ['numeric' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_NUMERIC_STRING], 'printable' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_PRINTABLE_STRING]], ]; } /** * AlgorithmIdentifier * * @author Jim Wigginton */ abstract class AlgorithmIdentifier { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['algorithm' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OBJECT_IDENTIFIER], 'parameters' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_ANY, 'optional' => \true]]]; } /** * AnotherName * * @author Jim Wigginton */ abstract class AnotherName { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['type-id' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OBJECT_IDENTIFIER], 'value' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_ANY, 'constant' => 0, 'optional' => \true, 'explicit' => \true]]]; } /** * Attribute * * @author Jim Wigginton */ abstract class Attribute { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AttributeType::MAP, 'value' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SET, 'min' => 1, 'max' => -1, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AttributeValue::MAP]]]; } /** * AttributeType * * @author Jim Wigginton */ abstract class AttributeType { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OBJECT_IDENTIFIER]; } /** * AttributeTypeAndValue * * @author Jim Wigginton */ abstract class AttributeTypeAndValue { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AttributeType::MAP, 'value' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AttributeValue::MAP]]; } /** * AttributeValue * * @author Jim Wigginton */ abstract class AttributeValue { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_ANY]; } /** * Attributes * * @author Jim Wigginton */ abstract class Attributes { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SET, 'min' => 1, 'max' => -1, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Attribute::MAP]; } /** * AuthorityInfoAccessSyntax * * @author Jim Wigginton */ abstract class AuthorityInfoAccessSyntax { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'min' => 1, 'max' => -1, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AccessDescription::MAP]; } /** * AuthorityKeyIdentifier * * @author Jim Wigginton */ abstract class AuthorityKeyIdentifier { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['keyIdentifier' => ['constant' => 0, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\KeyIdentifier::MAP, 'authorityCertIssuer' => ['constant' => 1, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralNames::MAP, 'authorityCertSerialNumber' => ['constant' => 2, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CertificateSerialNumber::MAP]]; } /** * BaseDistance * * @author Jim Wigginton */ abstract class BaseDistance { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER]; } /** * BasicConstraints * * @author Jim Wigginton */ abstract class BasicConstraints { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['cA' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BOOLEAN, 'optional' => \true, 'default' => \false], 'pathLenConstraint' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER, 'optional' => \true]]]; } /** * BuiltInDomainDefinedAttribute * * @author Jim Wigginton */ abstract class BuiltInDomainDefinedAttribute { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['type' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_PRINTABLE_STRING], 'value' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_PRINTABLE_STRING]]]; } /** * BuiltInDomainDefinedAttributes * * @author Jim Wigginton */ abstract class BuiltInDomainDefinedAttributes { const MAP = [ 'type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'min' => 1, 'max' => 4, // ub-domain-defined-attributes 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\BuiltInDomainDefinedAttribute::MAP, ]; } /** * BuiltInStandardAttributes * * @author Jim Wigginton */ abstract class BuiltInStandardAttributes { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['country-name' => ['optional' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CountryName::MAP, 'administration-domain-name' => ['optional' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AdministrationDomainName::MAP, 'network-address' => ['constant' => 0, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\NetworkAddress::MAP, 'terminal-identifier' => ['constant' => 1, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\TerminalIdentifier::MAP, 'private-domain-name' => ['constant' => 2, 'optional' => \true, 'explicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PrivateDomainName::MAP, 'organization-name' => ['constant' => 3, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\OrganizationName::MAP, 'numeric-user-identifier' => ['constant' => 4, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\NumericUserIdentifier::MAP, 'personal-name' => ['constant' => 5, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PersonalName::MAP, 'organizational-unit-names' => ['constant' => 6, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\OrganizationalUnitNames::MAP]]; } /** * CPSuri * * @author Jim Wigginton */ abstract class CPSuri { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_IA5_STRING]; } /** * CRLDistributionPoints * * @author Jim Wigginton */ abstract class CRLDistributionPoints { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'min' => 1, 'max' => -1, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DistributionPoint::MAP]; } /** * CRLNumber * * @author Jim Wigginton */ abstract class CRLNumber { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER]; } /** * CRLReason * * @author Jim Wigginton */ abstract class CRLReason { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_ENUMERATED, 'mapping' => [ 'unspecified', 'keyCompromise', 'cACompromise', 'affiliationChanged', 'superseded', 'cessationOfOperation', 'certificateHold', // Value 7 is not used. 8 => 'removeFromCRL', 'privilegeWithdrawn', 'aACompromise', ]]; } /** * CertPolicyId * * @author Jim Wigginton */ abstract class CertPolicyId { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OBJECT_IDENTIFIER]; } /** * Certificate * * @author Jim Wigginton */ abstract class Certificate { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['tbsCertificate' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\TBSCertificate::MAP, 'signatureAlgorithm' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP, 'signature' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BIT_STRING]]]; } /** * CertificateIssuer * * @author Jim Wigginton */ abstract class CertificateIssuer { const MAP = \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralNames::MAP; } /** * CertificateList * * @author Jim Wigginton */ abstract class CertificateList { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['tbsCertList' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\TBSCertList::MAP, 'signatureAlgorithm' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP, 'signature' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BIT_STRING]]]; } /** * CertificatePolicies * * @author Jim Wigginton */ abstract class CertificatePolicies { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'min' => 1, 'max' => -1, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PolicyInformation::MAP]; } /** * CertificateSerialNumber * * @author Jim Wigginton */ abstract class CertificateSerialNumber { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER]; } /** * CertificationRequest * * @author Jim Wigginton */ abstract class CertificationRequest { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['certificationRequestInfo' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CertificationRequestInfo::MAP, 'signatureAlgorithm' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP, 'signature' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BIT_STRING]]]; } /** * CertificationRequestInfo * * @author Jim Wigginton */ abstract class CertificationRequestInfo { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['version' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER, 'mapping' => ['v1']], 'subject' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Name::MAP, 'subjectPKInfo' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\SubjectPublicKeyInfo::MAP, 'attributes' => ['constant' => 0, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Attributes::MAP]]; } /** * Characteristic_two * * @author Jim Wigginton */ abstract class Characteristic_two { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => [ 'm' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], // field size 2**m 'basis' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OBJECT_IDENTIFIER], 'parameters' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_ANY, 'optional' => \true], ]]; } /** * CountryName * * @author Jim Wigginton */ abstract class CountryName { const MAP = [ 'type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_CHOICE, // if class isn't present it's assumed to be \phpseclib3\File\ASN1::CLASS_UNIVERSAL or // (if constant is present) \phpseclib3\File\ASN1::CLASS_CONTEXT_SPECIFIC 'class' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::CLASS_APPLICATION, 'cast' => 1, 'children' => ['x121-dcc-code' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_NUMERIC_STRING], 'iso-3166-alpha2-code' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_PRINTABLE_STRING]], ]; } /** * Curve * * @author Jim Wigginton */ abstract class Curve { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['a' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\FieldElement::MAP, 'b' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\FieldElement::MAP, 'seed' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BIT_STRING, 'optional' => \true]]]; } /** * DHParameter * * @author Jim Wigginton */ abstract class DHParameter { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['prime' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], 'base' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], 'privateValueLength' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER, 'optional' => \true]]]; } /** * DSAParams * * @author Jim Wigginton */ abstract class DSAParams { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['p' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], 'q' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], 'g' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER]]]; } /** * DSAPrivateKey * * @author Jim Wigginton */ abstract class DSAPrivateKey { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['version' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], 'p' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], 'q' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], 'g' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], 'y' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], 'x' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER]]]; } /** * DSAPublicKey * * @author Jim Wigginton */ abstract class DSAPublicKey { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER]; } /** * DigestInfo * * from https://tools.ietf.org/html/rfc2898#appendix-A.3 * * @author Jim Wigginton */ abstract class DigestInfo { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['digestAlgorithm' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP, 'digest' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OCTET_STRING]]]; } /** * DirectoryString * * @author Jim Wigginton */ abstract class DirectoryString { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_CHOICE, 'children' => ['teletexString' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_TELETEX_STRING], 'printableString' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_PRINTABLE_STRING], 'universalString' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_UNIVERSAL_STRING], 'utf8String' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_UTF8_STRING], 'bmpString' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BMP_STRING]]]; } /** * DisplayText * * @author Jim Wigginton */ abstract class DisplayText { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_CHOICE, 'children' => ['ia5String' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_IA5_STRING], 'visibleString' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_VISIBLE_STRING], 'bmpString' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BMP_STRING], 'utf8String' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_UTF8_STRING]]]; } /** * DistributionPoint * * @author Jim Wigginton */ abstract class DistributionPoint { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['distributionPoint' => ['constant' => 0, 'optional' => \true, 'explicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DistributionPointName::MAP, 'reasons' => ['constant' => 1, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\ReasonFlags::MAP, 'cRLIssuer' => ['constant' => 2, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralNames::MAP]]; } /** * DistributionPointName * * @author Jim Wigginton */ abstract class DistributionPointName { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_CHOICE, 'children' => ['fullName' => ['constant' => 0, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralNames::MAP, 'nameRelativeToCRLIssuer' => ['constant' => 1, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\RelativeDistinguishedName::MAP]]; } /** * DssSigValue * * @author Jim Wigginton */ abstract class DssSigValue { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['r' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], 's' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER]]]; } /** * ECParameters * * ECParameters ::= CHOICE { * namedCurve OBJECT IDENTIFIER * -- implicitCurve NULL * -- specifiedCurve SpecifiedECDomain * } * -- implicitCurve and specifiedCurve MUST NOT be used in PKIX. * -- Details for SpecifiedECDomain can be found in [X9.62]. * -- Any future additions to this CHOICE should be coordinated * -- with ANSI X9. * * @author Jim Wigginton */ abstract class ECParameters { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_CHOICE, 'children' => ['namedCurve' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OBJECT_IDENTIFIER], 'implicitCurve' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_NULL], 'specifiedCurve' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\SpecifiedECDomain::MAP]]; } /** * ECPoint * * @author Jim Wigginton */ abstract class ECPoint { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OCTET_STRING]; } /** * ECPrivateKey * * @author Jim Wigginton */ abstract class ECPrivateKey { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['version' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER, 'mapping' => [1 => 'ecPrivkeyVer1']], 'privateKey' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OCTET_STRING], 'parameters' => ['constant' => 0, 'optional' => \true, 'explicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\ECParameters::MAP, 'publicKey' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BIT_STRING, 'constant' => 1, 'optional' => \true, 'explicit' => \true]]]; } /** * EDIPartyName * * @author Jim Wigginton */ abstract class EDIPartyName { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => [ 'nameAssigner' => ['constant' => 0, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DirectoryString::MAP, // partyName is technically required but \phpseclib3\File\ASN1 doesn't currently support non-optional constants and // setting it to optional gets the job done in any event. 'partyName' => ['constant' => 1, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DirectoryString::MAP, ]]; } /** * EcdsaSigValue * * @author Jim Wigginton */ abstract class EcdsaSigValue { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['r' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], 's' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER]]]; } /** * EncryptedData * * @author Jim Wigginton */ abstract class EncryptedData { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OCTET_STRING]; } /** * EncryptedPrivateKeyInfo * * @author Jim Wigginton */ abstract class EncryptedPrivateKeyInfo { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['encryptionAlgorithm' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP, 'encryptedData' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\EncryptedData::MAP]]; } /** * ExtKeyUsageSyntax * * @author Jim Wigginton */ abstract class ExtKeyUsageSyntax { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'min' => 1, 'max' => -1, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\KeyPurposeId::MAP]; } /** * Extension * * A certificate using system MUST reject the certificate if it encounters * a critical extension it does not recognize; however, a non-critical * extension may be ignored if it is not recognized. * * http://tools.ietf.org/html/rfc5280#section-4.2 * * @author Jim Wigginton */ abstract class Extension { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['extnId' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OBJECT_IDENTIFIER], 'critical' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BOOLEAN, 'optional' => \true, 'default' => \false], 'extnValue' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OCTET_STRING]]]; } /** * ExtensionAttribute * * @author Jim Wigginton */ abstract class ExtensionAttribute { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['extension-attribute-type' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_PRINTABLE_STRING, 'constant' => 0, 'optional' => \true, 'implicit' => \true], 'extension-attribute-value' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_ANY, 'constant' => 1, 'optional' => \true, 'explicit' => \true]]]; } /** * ExtensionAttributes * * @author Jim Wigginton */ abstract class ExtensionAttributes { const MAP = [ 'type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SET, 'min' => 1, 'max' => 256, // ub-extension-attributes 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\ExtensionAttribute::MAP, ]; } /** * Extensions * * @author Jim Wigginton */ abstract class Extensions { const MAP = [ 'type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'min' => 1, // technically, it's MAX, but we'll assume anything < 0 is MAX 'max' => -1, // if 'children' isn't an array then 'min' and 'max' must be defined 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Extension::MAP, ]; } /** * FieldElement * * @author Jim Wigginton */ abstract class FieldElement { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OCTET_STRING]; } /** * FieldID * * @author Jim Wigginton */ abstract class FieldID { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['fieldType' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OBJECT_IDENTIFIER], 'parameters' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_ANY, 'optional' => \true]]]; } /** * GeneralName * * @author Jim Wigginton */ abstract class GeneralName { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_CHOICE, 'children' => ['otherName' => ['constant' => 0, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AnotherName::MAP, 'rfc822Name' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_IA5_STRING, 'constant' => 1, 'optional' => \true, 'implicit' => \true], 'dNSName' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_IA5_STRING, 'constant' => 2, 'optional' => \true, 'implicit' => \true], 'x400Address' => ['constant' => 3, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\ORAddress::MAP, 'directoryName' => ['constant' => 4, 'optional' => \true, 'explicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Name::MAP, 'ediPartyName' => ['constant' => 5, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\EDIPartyName::MAP, 'uniformResourceIdentifier' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_IA5_STRING, 'constant' => 6, 'optional' => \true, 'implicit' => \true], 'iPAddress' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OCTET_STRING, 'constant' => 7, 'optional' => \true, 'implicit' => \true], 'registeredID' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OBJECT_IDENTIFIER, 'constant' => 8, 'optional' => \true, 'implicit' => \true]]]; } /** * GeneralNames * * @author Jim Wigginton */ abstract class GeneralNames { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'min' => 1, 'max' => -1, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralName::MAP]; } /** * GeneralSubtree * * @author Jim Wigginton */ abstract class GeneralSubtree { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['base' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralName::MAP, 'minimum' => ['constant' => 0, 'optional' => \true, 'implicit' => \true, 'default' => '0'] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\BaseDistance::MAP, 'maximum' => ['constant' => 1, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\BaseDistance::MAP]]; } /** * GeneralSubtrees * * @author Jim Wigginton */ abstract class GeneralSubtrees { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'min' => 1, 'max' => -1, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralSubtree::MAP]; } /** * HashAglorithm * * @author Jim Wigginton */ abstract class HashAlgorithm { const MAP = \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP; } /** * HoldInstructionCode * * @author Jim Wigginton */ abstract class HoldInstructionCode { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OBJECT_IDENTIFIER]; } /** * InvalidityDate * * @author Jim Wigginton */ abstract class InvalidityDate { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_GENERALIZED_TIME]; } /** * IssuerAltName * * @author Jim Wigginton */ abstract class IssuerAltName { const MAP = \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralNames::MAP; } /** * IssuingDistributionPoint * * @author Jim Wigginton */ abstract class IssuingDistributionPoint { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['distributionPoint' => ['constant' => 0, 'optional' => \true, 'explicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DistributionPointName::MAP, 'onlyContainsUserCerts' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BOOLEAN, 'constant' => 1, 'optional' => \true, 'default' => \false, 'implicit' => \true], 'onlyContainsCACerts' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BOOLEAN, 'constant' => 2, 'optional' => \true, 'default' => \false, 'implicit' => \true], 'onlySomeReasons' => ['constant' => 3, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\ReasonFlags::MAP, 'indirectCRL' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BOOLEAN, 'constant' => 4, 'optional' => \true, 'default' => \false, 'implicit' => \true], 'onlyContainsAttributeCerts' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BOOLEAN, 'constant' => 5, 'optional' => \true, 'default' => \false, 'implicit' => \true]]]; } /** * KeyIdentifier * * @author Jim Wigginton */ abstract class KeyIdentifier { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OCTET_STRING]; } /** * KeyPurposeId * * @author Jim Wigginton */ abstract class KeyPurposeId { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OBJECT_IDENTIFIER]; } /** * KeyUsage * * @author Jim Wigginton */ abstract class KeyUsage { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BIT_STRING, 'mapping' => ['digitalSignature', 'nonRepudiation', 'keyEncipherment', 'dataEncipherment', 'keyAgreement', 'keyCertSign', 'cRLSign', 'encipherOnly', 'decipherOnly']]; } /** * MaskGenAglorithm * * @author Jim Wigginton */ abstract class MaskGenAlgorithm { const MAP = \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP; } /** * Name * * @author Jim Wigginton */ abstract class Name { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_CHOICE, 'children' => ['rdnSequence' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\RDNSequence::MAP]]; } /** * NameConstraints * * @author Jim Wigginton */ abstract class NameConstraints { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['permittedSubtrees' => ['constant' => 0, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralSubtrees::MAP, 'excludedSubtrees' => ['constant' => 1, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralSubtrees::MAP]]; } /** * NetworkAddress * * @author Jim Wigginton */ abstract class NetworkAddress { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_NUMERIC_STRING]; } /** * NoticeReference * * @author Jim Wigginton */ abstract class NoticeReference { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['organization' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DisplayText::MAP, 'noticeNumbers' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'min' => 1, 'max' => 200, 'children' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER]]]]; } /** * NumericUserIdentifier * * @author Jim Wigginton */ abstract class NumericUserIdentifier { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_NUMERIC_STRING]; } /** * ORAddress * * @author Jim Wigginton */ abstract class ORAddress { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['built-in-standard-attributes' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\BuiltInStandardAttributes::MAP, 'built-in-domain-defined-attributes' => ['optional' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\BuiltInDomainDefinedAttributes::MAP, 'extension-attributes' => ['optional' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\ExtensionAttributes::MAP]]; } /** * OneAsymmetricKey * * @author Jim Wigginton */ abstract class OneAsymmetricKey { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['version' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER, 'mapping' => ['v1', 'v2']], 'privateKeyAlgorithm' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP, 'privateKey' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PrivateKey::MAP, 'attributes' => ['constant' => 0, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Attributes::MAP, 'publicKey' => ['constant' => 1, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PublicKey::MAP]]; } /** * OrganizationName * * @author Jim Wigginton */ abstract class OrganizationName { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_PRINTABLE_STRING]; } /** * OrganizationalUnitNames * * @author Jim Wigginton */ abstract class OrganizationalUnitNames { const MAP = [ 'type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'min' => 1, 'max' => 4, // ub-organizational-units 'children' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_PRINTABLE_STRING], ]; } /** * OtherPrimeInfo * * @author Jim Wigginton */ abstract class OtherPrimeInfo { // version must be multi if otherPrimeInfos present const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => [ 'prime' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], // ri 'exponent' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], // di 'coefficient' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], ]]; } /** * OtherPrimeInfos * * @author Jim Wigginton */ abstract class OtherPrimeInfos { // version must be multi if otherPrimeInfos present const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'min' => 1, 'max' => -1, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\OtherPrimeInfo::MAP]; } /** * PBEParameter * * from https://tools.ietf.org/html/rfc2898#appendix-A.3 * * @author Jim Wigginton */ abstract class PBEParameter { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['salt' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OCTET_STRING], 'iterationCount' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER]]]; } /** * PBES2params * * from https://tools.ietf.org/html/rfc2898#appendix-A.3 * * @author Jim Wigginton */ abstract class PBES2params { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['keyDerivationFunc' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP, 'encryptionScheme' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP]]; } /** * PBKDF2params * * from https://tools.ietf.org/html/rfc2898#appendix-A.3 * * @author Jim Wigginton */ abstract class PBKDF2params { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => [ // technically, this is a CHOICE in RFC2898 but the other "choice" is, currently, more of a placeholder // in the RFC 'salt' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OCTET_STRING], 'iterationCount' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], 'keyLength' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER, 'optional' => \true], 'prf' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP + ['optional' => \true], ]]; } /** * PBMAC1params * * from https://tools.ietf.org/html/rfc2898#appendix-A.3 * * @author Jim Wigginton */ abstract class PBMAC1params { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['keyDerivationFunc' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP, 'messageAuthScheme' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP]]; } /** * PKCS9String * * @author Jim Wigginton */ abstract class PKCS9String { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_CHOICE, 'children' => ['ia5String' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_IA5_STRING], 'directoryString' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DirectoryString::MAP]]; } /** * Pentanomial * * @author Jim Wigginton */ abstract class Pentanomial { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => [ 'k1' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], // k1 > 0 'k2' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], // k2 > k1 'k3' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], ]]; } /** * PersonalName * * @author Jim Wigginton */ abstract class PersonalName { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SET, 'children' => ['surname' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_PRINTABLE_STRING, 'constant' => 0, 'optional' => \true, 'implicit' => \true], 'given-name' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_PRINTABLE_STRING, 'constant' => 1, 'optional' => \true, 'implicit' => \true], 'initials' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_PRINTABLE_STRING, 'constant' => 2, 'optional' => \true, 'implicit' => \true], 'generation-qualifier' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_PRINTABLE_STRING, 'constant' => 3, 'optional' => \true, 'implicit' => \true]]]; } /** * PolicyInformation * * @author Jim Wigginton */ abstract class PolicyInformation { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['policyIdentifier' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CertPolicyId::MAP, 'policyQualifiers' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'min' => 0, 'max' => -1, 'optional' => \true, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PolicyQualifierInfo::MAP]]]; } /** * PolicyMappings * * @author Jim Wigginton */ abstract class PolicyMappings { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'min' => 1, 'max' => -1, 'children' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['issuerDomainPolicy' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CertPolicyId::MAP, 'subjectDomainPolicy' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CertPolicyId::MAP]]]; } /** * PolicyQualifierId * * @author Jim Wigginton */ abstract class PolicyQualifierId { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OBJECT_IDENTIFIER]; } /** * PolicyQualifierInfo * * @author Jim Wigginton */ abstract class PolicyQualifierInfo { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['policyQualifierId' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PolicyQualifierId::MAP, 'qualifier' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_ANY]]]; } /** * PostalAddress * * @author Jim Wigginton */ abstract class PostalAddress { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'optional' => \true, 'min' => 1, 'max' => -1, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DirectoryString::MAP]; } /** * Prime_p * * @author Jim Wigginton */ abstract class Prime_p { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER]; } /** * PrivateDomainName * * @author Jim Wigginton */ abstract class PrivateDomainName { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_CHOICE, 'children' => ['numeric' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_NUMERIC_STRING], 'printable' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_PRINTABLE_STRING]]]; } /** * PrivateKey * * @author Jim Wigginton */ abstract class PrivateKey { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OCTET_STRING]; } /** * PrivateKeyInfo * * @author Jim Wigginton */ abstract class PrivateKeyInfo { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['version' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER, 'mapping' => ['v1']], 'privateKeyAlgorithm' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP, 'privateKey' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PrivateKey::MAP, 'attributes' => ['constant' => 0, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Attributes::MAP]]; } /** * PrivateKeyUsagePeriod * * @author Jim Wigginton */ abstract class PrivateKeyUsagePeriod { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['notBefore' => ['constant' => 0, 'optional' => \true, 'implicit' => \true, 'type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_GENERALIZED_TIME], 'notAfter' => ['constant' => 1, 'optional' => \true, 'implicit' => \true, 'type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_GENERALIZED_TIME]]]; } /** * PublicKey * * @author Jim Wigginton */ abstract class PublicKey { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BIT_STRING]; } /** * PublicKeyAndChallenge * * @author Jim Wigginton */ abstract class PublicKeyAndChallenge { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['spki' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\SubjectPublicKeyInfo::MAP, 'challenge' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_IA5_STRING]]]; } /** * PublicKeyInfo * * this format is not formally defined anywhere but is none-the-less the form you * get when you do "openssl rsa -in private.pem -outform PEM -pubout" * * @author Jim Wigginton */ abstract class PublicKeyInfo { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['publicKeyAlgorithm' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP, 'publicKey' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BIT_STRING]]]; } /** * RC2CBCParameter * * from https://tools.ietf.org/html/rfc2898#appendix-A.3 * * @author Jim Wigginton */ abstract class RC2CBCParameter { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['rc2ParametersVersion' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER, 'optional' => \true], 'iv' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_OCTET_STRING]]]; } /** * RDNSequence * * In practice, RDNs containing multiple name-value pairs (called "multivalued RDNs") are rare, * but they can be useful at times when either there is no unique attribute in the entry or you * want to ensure that the entry's DN contains some useful identifying information. * * - https://www.opends.org/wiki/page/DefinitionRelativeDistinguishedName * * @author Jim Wigginton */ abstract class RDNSequence { const MAP = [ 'type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, // RDNSequence does not define a min or a max, which means it doesn't have one 'min' => 0, 'max' => -1, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\RelativeDistinguishedName::MAP, ]; } /** * RSAPrivateKey * * @author Jim Wigginton */ abstract class RSAPrivateKey { // version must be multi if otherPrimeInfos present const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => [ 'version' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER, 'mapping' => ['two-prime', 'multi']], 'modulus' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], // n 'publicExponent' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], // e 'privateExponent' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], // d 'prime1' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], // p 'prime2' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], // q 'exponent1' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], // d mod (p-1) 'exponent2' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], // d mod (q-1) 'coefficient' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], // (inverse of q) mod p 'otherPrimeInfos' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\OtherPrimeInfos::MAP + ['optional' => \true], ]]; } /** * RSAPublicKey * * @author Jim Wigginton */ abstract class RSAPublicKey { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['modulus' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], 'publicExponent' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER]]]; } /** * RSASSA_PSS_params * * @author Jim Wigginton */ abstract class RSASSA_PSS_params { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['hashAlgorithm' => ['constant' => 0, 'optional' => \true, 'explicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\HashAlgorithm::MAP, 'maskGenAlgorithm' => ['constant' => 1, 'optional' => \true, 'explicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\MaskGenAlgorithm::MAP, 'saltLength' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER, 'constant' => 2, 'optional' => \true, 'explicit' => \true, 'default' => 20], 'trailerField' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER, 'constant' => 3, 'optional' => \true, 'explicit' => \true, 'default' => 1]]]; } /** * ReasonFlags * * @author Jim Wigginton */ abstract class ReasonFlags { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BIT_STRING, 'mapping' => ['unused', 'keyCompromise', 'cACompromise', 'affiliationChanged', 'superseded', 'cessationOfOperation', 'certificateHold', 'privilegeWithdrawn', 'aACompromise']]; } /** * RelativeDistinguishedName * * In practice, RDNs containing multiple name-value pairs (called "multivalued RDNs") are rare, * but they can be useful at times when either there is no unique attribute in the entry or you * want to ensure that the entry's DN contains some useful identifying information. * * - https://www.opends.org/wiki/page/DefinitionRelativeDistinguishedName * * @author Jim Wigginton */ abstract class RelativeDistinguishedName { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SET, 'min' => 1, 'max' => -1, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AttributeTypeAndValue::MAP]; } /** * RevokedCertificate * * @author Jim Wigginton */ abstract class RevokedCertificate { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['userCertificate' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CertificateSerialNumber::MAP, 'revocationDate' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Time::MAP, 'crlEntryExtensions' => ['optional' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Extensions::MAP]]; } /** * SignedPublicKeyAndChallenge * * @author Jim Wigginton */ abstract class SignedPublicKeyAndChallenge { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['publicKeyAndChallenge' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PublicKeyAndChallenge::MAP, 'signatureAlgorithm' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP, 'signature' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BIT_STRING]]]; } /** * SpecifiedECDomain * * @author Jim Wigginton */ abstract class SpecifiedECDomain { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['version' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER, 'mapping' => [1 => 'ecdpVer1', 'ecdpVer2', 'ecdpVer3']], 'fieldID' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\FieldID::MAP, 'curve' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Curve::MAP, 'base' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\ECPoint::MAP, 'order' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER], 'cofactor' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER, 'optional' => \true], 'hash' => ['optional' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\HashAlgorithm::MAP]]; } /** * SubjectAltName * * @author Jim Wigginton */ abstract class SubjectAltName { const MAP = \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralNames::MAP; } /** * SubjectDirectoryAttributes * * @author Jim Wigginton */ abstract class SubjectDirectoryAttributes { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'min' => 1, 'max' => -1, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Attribute::MAP]; } /** * SubjectInfoAccessSyntax * * @author Jim Wigginton */ abstract class SubjectInfoAccessSyntax { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'min' => 1, 'max' => -1, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AccessDescription::MAP]; } /** * SubjectPublicKeyInfo * * @author Jim Wigginton */ abstract class SubjectPublicKeyInfo { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['algorithm' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP, 'subjectPublicKey' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BIT_STRING]]]; } /** * TBSCertList * * @author Jim Wigginton */ abstract class TBSCertList { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['version' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER, 'mapping' => ['v1', 'v2'], 'optional' => \true, 'default' => 'v1'], 'signature' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP, 'issuer' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Name::MAP, 'thisUpdate' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Time::MAP, 'nextUpdate' => ['optional' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Time::MAP, 'revokedCertificates' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'optional' => \true, 'min' => 0, 'max' => -1, 'children' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\RevokedCertificate::MAP], 'crlExtensions' => ['constant' => 0, 'optional' => \true, 'explicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Extensions::MAP]]; } /** * TBSCertificate * * @author Jim Wigginton */ abstract class TBSCertificate { // assert($TBSCertificate['children']['signature'] == $Certificate['children']['signatureAlgorithm']) const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => [ // technically, default implies optional, but we'll define it as being optional, none-the-less, just to // reenforce that fact 'version' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER, 'constant' => 0, 'optional' => \true, 'explicit' => \true, 'mapping' => ['v1', 'v2', 'v3'], 'default' => 'v1'], 'serialNumber' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CertificateSerialNumber::MAP, 'signature' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier::MAP, 'issuer' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Name::MAP, 'validity' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Validity::MAP, 'subject' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Name::MAP, 'subjectPublicKeyInfo' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\SubjectPublicKeyInfo::MAP, // implicit means that the T in the TLV structure is to be rewritten, regardless of the type 'issuerUniqueID' => ['constant' => 1, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\UniqueIdentifier::MAP, 'subjectUniqueID' => ['constant' => 2, 'optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\UniqueIdentifier::MAP, // doesn't use the EXPLICIT keyword but if // it's not IMPLICIT, it's EXPLICIT 'extensions' => ['constant' => 3, 'optional' => \true, 'explicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Extensions::MAP, ]]; } /** * TerminalIdentifier * * @author Jim Wigginton */ abstract class TerminalIdentifier { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_PRINTABLE_STRING]; } /** * Time * * @author Jim Wigginton */ abstract class Time { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_CHOICE, 'children' => ['utcTime' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_UTC_TIME], 'generalTime' => ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_GENERALIZED_TIME]]]; } /** * Trinomial * * @author Jim Wigginton */ abstract class Trinomial { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_INTEGER]; } /** * UniqueIdentifier * * @author Jim Wigginton */ abstract class UniqueIdentifier { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BIT_STRING]; } /** * UserNotice * * @author Jim Wigginton */ abstract class UserNotice { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['noticeRef' => ['optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\NoticeReference::MAP, 'explicitText' => ['optional' => \true, 'implicit' => \true] + \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DisplayText::MAP]]; } /** * Validity * * @author Jim Wigginton */ abstract class Validity { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_SEQUENCE, 'children' => ['notBefore' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Time::MAP, 'notAfter' => \ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Time::MAP]]; } /** * netscape_ca_policy_url * * @author Jim Wigginton */ abstract class netscape_ca_policy_url { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_IA5_STRING]; } /** * netscape_cert_type * * mapping is from * * @author Jim Wigginton */ abstract class netscape_cert_type { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_BIT_STRING, 'mapping' => ['SSLClient', 'SSLServer', 'Email', 'ObjectSigning', 'Reserved', 'SSLCA', 'EmailCA', 'ObjectSigningCA']]; } /** * netscape_comment * * @author Jim Wigginton */ abstract class netscape_comment { const MAP = ['type' => \ForminatorGoogleAddon\phpseclib3\File\ASN1::TYPE_IA5_STRING]; } } namespace ForminatorGoogleAddon\phpseclib3\File { /** * Pure-PHP X.509 Parser * * @author Jim Wigginton */ class X509 { /** * Flag to only accept signatures signed by certificate authorities * * Not really used anymore but retained all the same to suppress E_NOTICEs from old installs * */ const VALIDATE_SIGNATURE_BY_CA = 1; /** * Return internal array representation * * @see \phpseclib3\File\X509::getDN() */ const DN_ARRAY = 0; /** * Return string * * @see \phpseclib3\File\X509::getDN() */ const DN_STRING = 1; /** * Return ASN.1 name string * * @see \phpseclib3\File\X509::getDN() */ const DN_ASN1 = 2; /** * Return OpenSSL compatible array * * @see \phpseclib3\File\X509::getDN() */ const DN_OPENSSL = 3; /** * Return canonical ASN.1 RDNs string * * @see \phpseclib3\File\X509::getDN() */ const DN_CANON = 4; /** * Return name hash for file indexing * * @see \phpseclib3\File\X509::getDN() */ const DN_HASH = 5; /** * Save as PEM * * ie. a base64-encoded PEM with a header and a footer * * @see \phpseclib3\File\X509::saveX509() * @see \phpseclib3\File\X509::saveCSR() * @see \phpseclib3\File\X509::saveCRL() */ const FORMAT_PEM = 0; /** * Save as DER * * @see \phpseclib3\File\X509::saveX509() * @see \phpseclib3\File\X509::saveCSR() * @see \phpseclib3\File\X509::saveCRL() */ const FORMAT_DER = 1; /** * Save as a SPKAC * * @see \phpseclib3\File\X509::saveX509() * @see \phpseclib3\File\X509::saveCSR() * @see \phpseclib3\File\X509::saveCRL() * * Only works on CSRs. Not currently supported. */ const FORMAT_SPKAC = 2; /** * Auto-detect the format * * Used only by the load*() functions * * @see \phpseclib3\File\X509::saveX509() * @see \phpseclib3\File\X509::saveCSR() * @see \phpseclib3\File\X509::saveCRL() */ const FORMAT_AUTO_DETECT = 3; /** * Attribute value disposition. * If disposition is >= 0, this is the index of the target value. */ const ATTR_ALL = -1; // All attribute values (array). const ATTR_APPEND = -2; // Add a value. const ATTR_REPLACE = -3; // Clear first, then add a value. /** * Distinguished Name * * @var array */ private $dn; /** * Public key * * @var string|PublicKey */ private $publicKey; /** * Private key * * @var string|PrivateKey */ private $privateKey; /** * The certificate authorities * * @var array */ private $CAs = []; /** * The currently loaded certificate * * @var array */ private $currentCert; /** * The signature subject * * There's no guarantee \phpseclib3\File\X509 is going to re-encode an X.509 cert in the same way it was originally * encoded so we take save the portion of the original cert that the signature would have made for. * * @var string */ private $signatureSubject; /** * Certificate Start Date * * @var string */ private $startDate; /** * Certificate End Date * * @var string|Element */ private $endDate; /** * Serial Number * * @var string */ private $serialNumber; /** * Key Identifier * * See {@link http://tools.ietf.org/html/rfc5280#section-4.2.1.1 RFC5280#section-4.2.1.1} and * {@link http://tools.ietf.org/html/rfc5280#section-4.2.1.2 RFC5280#section-4.2.1.2}. * * @var string */ private $currentKeyIdentifier; /** * CA Flag * * @var bool */ private $caFlag = \false; /** * SPKAC Challenge * * @var string */ private $challenge; /** * @var array */ private $extensionValues = []; /** * OIDs loaded * * @var bool */ private static $oidsLoaded = \false; /** * Recursion Limit * * @var int */ private static $recur_limit = 5; /** * URL fetch flag * * @var bool */ private static $disable_url_fetch = \false; /** * @var array */ private static $extensions = []; /** * @var ?array */ private $ipAddresses = null; /** * @var ?array */ private $domains = null; /** * Default Constructor. * * @return X509 */ public function __construct() { } /** * Load X.509 certificate * * Returns an associative array describing the X.509 cert or a false if the cert failed to load * * @param array|string $cert * @param int $mode * @return mixed */ public function loadX509($cert, $mode = self::FORMAT_AUTO_DETECT) { } /** * Save X.509 certificate * * @param array $cert * @param int $format optional * @return string */ public function saveX509(array $cert, $format = self::FORMAT_PEM) { } /** * Map extension values from octet string to extension-specific internal * format. * * @param array $root (by reference) * @param string $path */ private function mapInExtensions(array &$root, $path) { } /** * Map extension values from extension-specific internal format to * octet string. * * @param array $root (by reference) * @param string $path */ private function mapOutExtensions(array &$root, $path) { } /** * Map attribute values from ANY type to attribute-specific internal * format. * * @param array $root (by reference) * @param string $path */ private function mapInAttributes(&$root, $path) { } /** * Map attribute values from attribute-specific internal format to * ANY type. * * @param array $root (by reference) * @param string $path */ private function mapOutAttributes(&$root, $path) { } /** * Map DN values from ANY type to DN-specific internal * format. * * @param array $root (by reference) * @param string $path */ private function mapInDNs(array &$root, $path) { } /** * Map DN values from DN-specific internal format to * ANY type. * * @param array $root (by reference) * @param string $path */ private function mapOutDNs(array &$root, $path) { } /** * Associate an extension ID to an extension mapping * * @param string $extnId * @return mixed */ private function getMapping($extnId) { } /** * Load an X.509 certificate as a certificate authority * * @param string $cert * @return bool */ public function loadCA($cert) { } /** * Validate an X.509 certificate against a URL * * From RFC2818 "HTTP over TLS": * * Matching is performed using the matching rules specified by * [RFC2459]. If more than one identity of a given type is present in * the certificate (e.g., more than one dNSName name, a match in any one * of the set is considered acceptable.) Names may contain the wildcard * character * which is considered to match any single domain name * component or component fragment. E.g., *.a.com matches foo.a.com but * not bar.foo.a.com. f*.com matches foo.com but not bar.com. * * @param string $url * @return bool */ public function validateURL($url) { } /** * Validate a date * * If $date isn't defined it is assumed to be the current date. * * @param \DateTimeInterface|string $date optional * @return bool */ public function validateDate($date = null) { } /** * Fetches a URL * * @param string $url * @return bool|string */ private static function fetchURL($url) { } /** * Validates an intermediate cert as identified via authority info access extension * * See https://tools.ietf.org/html/rfc4325 for more info * * @param bool $caonly * @param int $count * @return bool */ private function testForIntermediate($caonly, $count) { } /** * Validate a signature * * Works on X.509 certs, CSR's and CRL's. * Returns true if the signature is verified, false if it is not correct or null on error * * By default returns false for self-signed certs. Call validateSignature(false) to make this support * self-signed. * * The behavior of this function is inspired by {@link http://php.net/openssl-verify openssl_verify}. * * @param bool $caonly optional * @return mixed */ public function validateSignature($caonly = \true) { } /** * Validate a signature * * Performs said validation whilst keeping track of how many times validation method is called * * @param bool $caonly * @param int $count * @return mixed */ private function validateSignatureCountable($caonly, $count) { } /** * Validates a signature * * Returns true if the signature is verified and false if it is not correct. * If the algorithms are unsupposed an exception is thrown. * * @param string $publicKeyAlgorithm * @param string $publicKey * @param string $signatureAlgorithm * @param string $signature * @param string $signatureSubject * @throws UnsupportedAlgorithmException if the algorithm is unsupported * @return bool */ private function validateSignatureHelper($publicKeyAlgorithm, $publicKey, $signatureAlgorithm, $signature, $signatureSubject) { } /** * Sets the recursion limit * * When validating a signature it may be necessary to download intermediate certs from URI's. * An intermediate cert that linked to itself would result in an infinite loop so to prevent * that we set a recursion limit. A negative number means that there is no recursion limit. * * @param int $count */ public static function setRecurLimit($count) { } /** * Prevents URIs from being automatically retrieved * */ public static function disableURLFetch() { } /** * Allows URIs to be automatically retrieved * */ public static function enableURLFetch() { } /** * Decodes an IP address * * Takes in a base64 encoded "blob" and returns a human readable IP address * * @param string $ip * @return string */ public static function decodeIP($ip) { } /** * Decodes an IP address in a name constraints extension * * Takes in a base64 encoded "blob" and returns a human readable IP address / mask * * @param string $ip * @return array */ public static function decodeNameConstraintIP($ip) { } /** * Encodes an IP address * * Takes a human readable IP address into a base64-encoded "blob" * * @param string|array $ip * @return string */ public static function encodeIP($ip) { } /** * "Normalizes" a Distinguished Name property * * @param string $propName * @return mixed */ private function translateDNProp($propName) { } /** * Set a Distinguished Name property * * @param string $propName * @param mixed $propValue * @param string $type optional * @return bool */ public function setDNProp($propName, $propValue, $type = 'utf8String') { } /** * Remove Distinguished Name properties * * @param string $propName */ public function removeDNProp($propName) { } /** * Get Distinguished Name properties * * @param string $propName * @param array $dn optional * @param bool $withType optional * @return mixed */ public function getDNProp($propName, array $dn = null, $withType = \false) { } /** * Set a Distinguished Name * * @param mixed $dn * @param bool $merge optional * @param string $type optional * @return bool */ public function setDN($dn, $merge = \false, $type = 'utf8String') { } /** * Get the Distinguished Name for a certificates subject * * @param mixed $format optional * @param array $dn optional * @return array|bool|string */ public function getDN($format = self::DN_ARRAY, array $dn = null) { } /** * Get the Distinguished Name for a certificate/crl issuer * * @param int $format optional * @return mixed */ public function getIssuerDN($format = self::DN_ARRAY) { } /** * Get the Distinguished Name for a certificate/csr subject * Alias of getDN() * * @param int $format optional * @return mixed */ public function getSubjectDN($format = self::DN_ARRAY) { } /** * Get an individual Distinguished Name property for a certificate/crl issuer * * @param string $propName * @param bool $withType optional * @return mixed */ public function getIssuerDNProp($propName, $withType = \false) { } /** * Get an individual Distinguished Name property for a certificate/csr subject * * @param string $propName * @param bool $withType optional * @return mixed */ public function getSubjectDNProp($propName, $withType = \false) { } /** * Get the certificate chain for the current cert * * @return mixed */ public function getChain() { } /** * Returns the current cert * * @return array|bool */ public function &getCurrentCert() { } /** * Set public key * * Key needs to be a \phpseclib3\Crypt\RSA object * * @param PublicKey $key * @return void */ public function setPublicKey(\ForminatorGoogleAddon\phpseclib3\Crypt\Common\PublicKey $key) { } /** * Set private key * * Key needs to be a \phpseclib3\Crypt\RSA object * * @param PrivateKey $key */ public function setPrivateKey(\ForminatorGoogleAddon\phpseclib3\Crypt\Common\PrivateKey $key) { } /** * Set challenge * * Used for SPKAC CSR's * * @param string $challenge */ public function setChallenge($challenge) { } /** * Gets the public key * * Returns a \phpseclib3\Crypt\RSA object or a false. * * @return mixed */ public function getPublicKey() { } /** * Load a Certificate Signing Request * * @param string $csr * @param int $mode * @return mixed */ public function loadCSR($csr, $mode = self::FORMAT_AUTO_DETECT) { } /** * Save CSR request * * @param array $csr * @param int $format optional * @return string */ public function saveCSR(array $csr, $format = self::FORMAT_PEM) { } /** * Load a SPKAC CSR * * SPKAC's are produced by the HTML5 keygen element: * * https://developer.mozilla.org/en-US/docs/HTML/Element/keygen * * @param string $spkac * @return mixed */ public function loadSPKAC($spkac) { } /** * Save a SPKAC CSR request * * @param array $spkac * @param int $format optional * @return string */ public function saveSPKAC(array $spkac, $format = self::FORMAT_PEM) { } /** * Load a Certificate Revocation List * * @param string $crl * @param int $mode * @return mixed */ public function loadCRL($crl, $mode = self::FORMAT_AUTO_DETECT) { } /** * Save Certificate Revocation List. * * @param array $crl * @param int $format optional * @return string */ public function saveCRL(array $crl, $format = self::FORMAT_PEM) { } /** * Helper function to build a time field according to RFC 3280 section * - 4.1.2.5 Validity * - 5.1.2.4 This Update * - 5.1.2.5 Next Update * - 5.1.2.6 Revoked Certificates * by choosing utcTime iff year of date given is before 2050 and generalTime else. * * @param string $date in format date('D, d M Y H:i:s O') * @return array|Element */ private function timeField($date) { } /** * Sign an X.509 certificate * * $issuer's private key needs to be loaded. * $subject can be either an existing X.509 cert (if you want to resign it), * a CSR or something with the DN and public key explicitly set. * * @return mixed */ public function sign(\ForminatorGoogleAddon\phpseclib3\File\X509 $issuer, \ForminatorGoogleAddon\phpseclib3\File\X509 $subject) { } /** * Sign a CSR * * @return mixed */ public function signCSR() { } /** * Sign a SPKAC * * @return mixed */ public function signSPKAC() { } /** * Sign a CRL * * $issuer's private key needs to be loaded. * * @return mixed */ public function signCRL(\ForminatorGoogleAddon\phpseclib3\File\X509 $issuer, \ForminatorGoogleAddon\phpseclib3\File\X509 $crl) { } /** * Identify signature algorithm from key settings * * @param PrivateKey $key * @throws UnsupportedAlgorithmException if the algorithm is unsupported * @return array */ private static function identifySignatureAlgorithm(\ForminatorGoogleAddon\phpseclib3\Crypt\Common\PrivateKey $key) { } /** * Set certificate start date * * @param \DateTimeInterface|string $date */ public function setStartDate($date) { } /** * Set certificate end date * * @param \DateTimeInterface|string $date */ public function setEndDate($date) { } /** * Set Serial Number * * @param string $serial * @param int $base optional */ public function setSerialNumber($serial, $base = -256) { } /** * Turns the certificate into a certificate authority * */ public function makeCA() { } /** * Check for validity of subarray * * This is intended for use in conjunction with _subArrayUnchecked(), * implementing the checks included in _subArray() but without copying * a potentially large array by passing its reference by-value to is_array(). * * @param array $root * @param string $path * @return boolean */ private function isSubArrayValid(array $root, $path) { } /** * Get a reference to a subarray * * This variant of _subArray() does no is_array() checking, * so $root should be checked with _isSubArrayValid() first. * * This is here for performance reasons: * Passing a reference (i.e. $root) by-value (i.e. to is_array()) * creates a copy. If $root is an especially large array, this is expensive. * * @param array $root * @param string $path absolute path with / as component separator * @param bool $create optional * @return array|false */ private function &subArrayUnchecked(array &$root, $path, $create = \false) { } /** * Get a reference to a subarray * * @param array $root * @param string $path absolute path with / as component separator * @param bool $create optional * @return array|false */ private function &subArray(array &$root = null, $path, $create = \false) { } /** * Get a reference to an extension subarray * * @param array $root * @param string $path optional absolute path with / as component separator * @param bool $create optional * @return array|false */ private function &extensions(array &$root = null, $path = null, $create = \false) { } /** * Remove an Extension * * @param string $id * @param string $path optional * @return bool */ private function removeExtensionHelper($id, $path = null) { } /** * Get an Extension * * Returns the extension if it exists and false if not * * @param string $id * @param array $cert optional * @param string $path optional * @return mixed */ private function getExtensionHelper($id, array $cert = null, $path = null) { } /** * Returns a list of all extensions in use * * @param array $cert optional * @param string $path optional * @return array */ private function getExtensionsHelper(array $cert = null, $path = null) { } /** * Set an Extension * * @param string $id * @param mixed $value * @param bool $critical optional * @param bool $replace optional * @param string $path optional * @return bool */ private function setExtensionHelper($id, $value, $critical = \false, $replace = \true, $path = null) { } /** * Remove a certificate, CSR or CRL Extension * * @param string $id * @return bool */ public function removeExtension($id) { } /** * Get a certificate, CSR or CRL Extension * * Returns the extension if it exists and false if not * * @param string $id * @param array $cert optional * @param string $path * @return mixed */ public function getExtension($id, array $cert = null, $path = null) { } /** * Returns a list of all extensions in use in certificate, CSR or CRL * * @param array $cert optional * @param string $path optional * @return array */ public function getExtensions(array $cert = null, $path = null) { } /** * Set a certificate, CSR or CRL Extension * * @param string $id * @param mixed $value * @param bool $critical optional * @param bool $replace optional * @return bool */ public function setExtension($id, $value, $critical = \false, $replace = \true) { } /** * Remove a CSR attribute. * * @param string $id * @param int $disposition optional * @return bool */ public function removeAttribute($id, $disposition = self::ATTR_ALL) { } /** * Get a CSR attribute * * Returns the attribute if it exists and false if not * * @param string $id * @param int $disposition optional * @param array $csr optional * @return mixed */ public function getAttribute($id, $disposition = self::ATTR_ALL, array $csr = null) { } /** * Returns a list of all CSR attributes in use * * @param array $csr optional * @return array */ public function getAttributes(array $csr = null) { } /** * Set a CSR attribute * * @param string $id * @param mixed $value * @param int $disposition optional * @return bool */ public function setAttribute($id, $value, $disposition = self::ATTR_ALL) { } /** * Sets the subject key identifier * * This is used by the id-ce-authorityKeyIdentifier and the id-ce-subjectKeyIdentifier extensions. * * @param string $value */ public function setKeyIdentifier($value) { } /** * Compute a public key identifier. * * Although key identifiers may be set to any unique value, this function * computes key identifiers from public key according to the two * recommended methods (4.2.1.2 RFC 3280). * Highly polymorphic: try to accept all possible forms of key: * - Key object * - \phpseclib3\File\X509 object with public or private key defined * - Certificate or CSR array * - \phpseclib3\File\ASN1\Element object * - PEM or DER string * * @param mixed $key optional * @param int $method optional * @return string binary key identifier */ public function computeKeyIdentifier($key = null, $method = 1) { } /** * Format a public key as appropriate * * @return array|false */ private function formatSubjectPublicKey() { } /** * Set the domain name's which the cert is to be valid for * * @param mixed ...$domains * @return void */ public function setDomain(...$domains) { } /** * Set the IP Addresses's which the cert is to be valid for * * @param mixed[] ...$ipAddresses */ public function setIPAddress(...$ipAddresses) { } /** * Helper function to build domain array * * @param string $domain * @return array */ private static function dnsName($domain) { } /** * Helper function to build IP Address array * * (IPv6 is not currently supported) * * @param string $address * @return array */ private function iPAddress($address) { } /** * Get the index of a revoked certificate. * * @param array $rclist * @param string $serial * @param bool $create optional * @return int|false */ private function revokedCertificate(array &$rclist, $serial, $create = \false) { } /** * Revoke a certificate. * * @param string $serial * @param string $date optional * @return bool */ public function revoke($serial, $date = null) { } /** * Unrevoke a certificate. * * @param string $serial * @return bool */ public function unrevoke($serial) { } /** * Get a revoked certificate. * * @param string $serial * @return mixed */ public function getRevoked($serial) { } /** * List revoked certificates * * @param array $crl optional * @return array|bool */ public function listRevoked(array $crl = null) { } /** * Remove a Revoked Certificate Extension * * @param string $serial * @param string $id * @return bool */ public function removeRevokedCertificateExtension($serial, $id) { } /** * Get a Revoked Certificate Extension * * Returns the extension if it exists and false if not * * @param string $serial * @param string $id * @param array $crl optional * @return mixed */ public function getRevokedCertificateExtension($serial, $id, array $crl = null) { } /** * Returns a list of all extensions in use for a given revoked certificate * * @param string $serial * @param array $crl optional * @return array|bool */ public function getRevokedCertificateExtensions($serial, array $crl = null) { } /** * Set a Revoked Certificate Extension * * @param string $serial * @param string $id * @param mixed $value * @param bool $critical optional * @param bool $replace optional * @return bool */ public function setRevokedCertificateExtension($serial, $id, $value, $critical = \false, $replace = \true) { } /** * Register the mapping for a custom/unsupported extension. * * @param string $id * @param array $mapping */ public static function registerExtension($id, array $mapping) { } /** * Register the mapping for a custom/unsupported extension. * * @param string $id * * @return array|null */ public static function getRegisteredExtension($id) { } /** * Register the mapping for a custom/unsupported extension. * * @param string $id * @param mixed $value * @param bool $critical * @param bool $replace */ public function setExtensionValue($id, $value, $critical = \false, $replace = \false) { } } } namespace ForminatorGoogleAddon\phpseclib3\Math { /** * Pure-PHP arbitrary precision integer arithmetic library. Supports base-2, base-10, base-16, and base-256 * numbers. * * @author Jim Wigginton */ class BigInteger implements \JsonSerializable { /** * Main Engine * * @var class-string */ private static $mainEngine; /** * Selected Engines * * @var list */ private static $engines; /** * The actual BigInteger object * * @var object */ private $value; /** * Mode independent value used for serialization. * * @see self::__sleep() * @see self::__wakeup() * @var string */ private $hex; /** * Precision (used only for serialization) * * @see self::__sleep() * @see self::__wakeup() * @var int */ private $precision; /** * Sets engine type. * * Throws an exception if the type is invalid * * @param string $main * @param list $modexps optional * @return void */ public static function setEngine($main, array $modexps = ['DefaultEngine']) { } /** * Returns the engine type * * @return string[] */ public static function getEngine() { } /** * Initialize static variables */ private static function initialize_static_variables() { } /** * Converts base-2, base-10, base-16, and binary strings (base-256) to BigIntegers. * * If the second parameter - $base - is negative, then it will be assumed that the number's are encoded using * two's compliment. The sole exception to this is -10, which is treated the same as 10 is. * * @param string|int|Engine $x Base-10 number or base-$base number if $base set. * @param int $base */ public function __construct($x = 0, $base = 10) { } /** * Converts a BigInteger to a base-10 number. * * @return string */ public function toString() { } /** * __toString() magic method */ public function __toString() { } /** * __debugInfo() magic method * * Will be called, automatically, when print_r() or var_dump() are called */ public function __debugInfo() { } /** * Converts a BigInteger to a byte string (eg. base-256). * * @param bool $twos_compliment * @return string */ public function toBytes($twos_compliment = \false) { } /** * Converts a BigInteger to a hex string (eg. base-16). * * @param bool $twos_compliment * @return string */ public function toHex($twos_compliment = \false) { } /** * Converts a BigInteger to a bit string (eg. base-2). * * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're * saved as two's compliment. * * @param bool $twos_compliment * @return string */ public function toBits($twos_compliment = \false) { } /** * Adds two BigIntegers. * * @param BigInteger $y * @return BigInteger */ public function add(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y) { } /** * Subtracts two BigIntegers. * * @param BigInteger $y * @return BigInteger */ public function subtract(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y) { } /** * Multiplies two BigIntegers * * @param BigInteger $x * @return BigInteger */ public function multiply(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x) { } /** * Divides two BigIntegers. * * Returns an array whose first element contains the quotient and whose second element contains the * "common residue". If the remainder would be positive, the "common residue" and the remainder are the * same. If the remainder would be negative, the "common residue" is equal to the sum of the remainder * and the divisor (basically, the "common residue" is the first positive modulo). * * Here's an example: * * divide($b); * * echo $quotient->toString(); // outputs 0 * echo "\r\n"; * echo $remainder->toString(); // outputs 10 * ?> * * * @param BigInteger $y * @return BigInteger[] */ public function divide(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y) { } /** * Calculates modular inverses. * * Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses. * * @param BigInteger $n * @return BigInteger */ public function modInverse(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n) { } /** * Calculates modular inverses. * * Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses. * * @param BigInteger $n * @return BigInteger[] */ public function extendedGCD(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n) { } /** * Calculates the greatest common divisor * * Say you have 693 and 609. The GCD is 21. * * @param BigInteger $n * @return BigInteger */ public function gcd(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n) { } /** * Absolute value. * * @return BigInteger */ public function abs() { } /** * Set Precision * * Some bitwise operations give different results depending on the precision being used. Examples include left * shift, not, and rotates. * * @param int $bits */ public function setPrecision($bits) { } /** * Get Precision * * Returns the precision if it exists, false if it doesn't * * @return int|bool */ public function getPrecision() { } /** * Serialize * * Will be called, automatically, when serialize() is called on a BigInteger object. * * __sleep() / __wakeup() have been around since PHP 4.0 * * \Serializable was introduced in PHP 5.1 and deprecated in PHP 8.1: * https://wiki.php.net/rfc/phase_out_serializable * * __serialize() / __unserialize() were introduced in PHP 7.4: * https://wiki.php.net/rfc/custom_object_serialization * * @return array */ public function __sleep() { } /** * Serialize * * Will be called, automatically, when unserialize() is called on a BigInteger object. */ public function __wakeup() { } /** * JSON Serialize * * Will be called, automatically, when json_encode() is called on a BigInteger object. * * @return array{hex: string, precision?: int] */ #[\ReturnTypeWillChange] public function jsonSerialize() { } /** * Performs modular exponentiation. * * @param BigInteger $e * @param BigInteger $n * @return BigInteger */ public function powMod(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n) { } /** * Performs modular exponentiation. * * @param BigInteger $e * @param BigInteger $n * @return BigInteger */ public function modPow(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n) { } /** * Compares two numbers. * * Although one might think !$x->compare($y) means $x != $y, it, in fact, means the opposite. The reason for this * is demonstrated thusly: * * $x > $y: $x->compare($y) > 0 * $x < $y: $x->compare($y) < 0 * $x == $y: $x->compare($y) == 0 * * Note how the same comparison operator is used. If you want to test for equality, use $x->equals($y). * * {@internal Could return $this->subtract($x), but that's not as fast as what we do do.} * * @param BigInteger $y * @return int in case < 0 if $this is less than $y; > 0 if $this is greater than $y, and 0 if they are equal. * @see self::equals() */ public function compare(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $y) { } /** * Tests the equality of two numbers. * * If you need to see if one number is greater than or less than another number, use BigInteger::compare() * * @param BigInteger $x * @return bool */ public function equals(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x) { } /** * Logical Not * * @return BigInteger */ public function bitwise_not() { } /** * Logical And * * @param BigInteger $x * @return BigInteger */ public function bitwise_and(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x) { } /** * Logical Or * * @param BigInteger $x * @return BigInteger */ public function bitwise_or(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x) { } /** * Logical Exclusive Or * * @param BigInteger $x * @return BigInteger */ public function bitwise_xor(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x) { } /** * Logical Right Shift * * Shifts BigInteger's by $shift bits, effectively dividing by 2**$shift. * * @param int $shift * @return BigInteger */ public function bitwise_rightShift($shift) { } /** * Logical Left Shift * * Shifts BigInteger's by $shift bits, effectively multiplying by 2**$shift. * * @param int $shift * @return BigInteger */ public function bitwise_leftShift($shift) { } /** * Logical Left Rotate * * Instead of the top x bits being dropped they're appended to the shifted bit string. * * @param int $shift * @return BigInteger */ public function bitwise_leftRotate($shift) { } /** * Logical Right Rotate * * Instead of the bottom x bits being dropped they're prepended to the shifted bit string. * * @param int $shift * @return BigInteger */ public function bitwise_rightRotate($shift) { } /** * Returns the smallest and largest n-bit number * * @param int $bits * @return BigInteger[] */ public static function minMaxBits($bits) { } /** * Return the size of a BigInteger in bits * * @return int */ public function getLength() { } /** * Return the size of a BigInteger in bytes * * @return int */ public function getLengthInBytes() { } /** * Generates a random number of a certain size * * Bit length is equal to $size * * @param int $size * @return BigInteger */ public static function random($size) { } /** * Generates a random prime number of a certain size * * Bit length is equal to $size * * @param int $size * @return BigInteger */ public static function randomPrime($size) { } /** * Generate a random prime number between a range * * If there's not a prime within the given range, false will be returned. * * @param BigInteger $min * @param BigInteger $max * @return false|BigInteger */ public static function randomRangePrime(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $max) { } /** * Generate a random number between a range * * Returns a random number between $min and $max where $min and $max * can be defined using one of the two methods: * * BigInteger::randomRange($min, $max) * BigInteger::randomRange($max, $min) * * @param BigInteger $min * @param BigInteger $max * @return BigInteger */ public static function randomRange(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $max) { } /** * Checks a numer to see if it's prime * * Assuming the $t parameter is not set, this function has an error rate of 2**-80. The main motivation for the * $t parameter is distributability. BigInteger::randomPrime() can be distributed across multiple pageloads * on a website instead of just one. * * @param int|bool $t * @return bool */ public function isPrime($t = \false) { } /** * Calculates the nth root of a biginteger. * * Returns the nth root of a positive biginteger, where n defaults to 2 * * @param int $n optional * @return BigInteger */ public function root($n = 2) { } /** * Performs exponentiation. * * @param BigInteger $n * @return BigInteger */ public function pow(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $n) { } /** * Return the minimum BigInteger between an arbitrary number of BigIntegers. * * @param BigInteger ...$nums * @return BigInteger */ public static function min(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger ...$nums) { } /** * Return the maximum BigInteger between an arbitrary number of BigIntegers. * * @param BigInteger ...$nums * @return BigInteger */ public static function max(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger ...$nums) { } /** * Tests BigInteger to see if it is between two integers, inclusive * * @param BigInteger $min * @param BigInteger $max * @return bool */ public function between(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $max) { } /** * Clone */ public function __clone() { } /** * Is Odd? * * @return bool */ public function isOdd() { } /** * Tests if a bit is set * * @param int $x * @return bool */ public function testBit($x) { } /** * Is Negative? * * @return bool */ public function isNegative() { } /** * Negate * * Given $k, returns -$k * * @return BigInteger */ public function negate() { } /** * Scan for 1 and right shift by that amount * * ie. $s = gmp_scan1($n, 0) and $r = gmp_div_q($n, gmp_pow(gmp_init('2'), $s)); * * @param BigInteger $r * @return int */ public static function scan1divide(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $r) { } /** * Create Recurring Modulo Function * * Sometimes it may be desirable to do repeated modulos with the same number outside of * modular exponentiation * * @return callable */ public function createRecurringModuloFunction() { } /** * Bitwise Split * * Splits BigInteger's into chunks of $split bits * * @param int $split * @return BigInteger[] */ public function bitwise_split($split) { } } } namespace ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines { /** * Base Engine. * * @author Jim Wigginton */ abstract class Engine implements \JsonSerializable { /* final protected */ const PRIMES = [3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997]; /** * BigInteger(0) * * @var array, static> */ protected static $zero = []; /** * BigInteger(1) * * @var array, static> */ protected static $one = []; /** * BigInteger(2) * * @var array, static> */ protected static $two = []; /** * Modular Exponentiation Engine * * @var array, class-string> */ protected static $modexpEngine; /** * Engine Validity Flag * * @var array, bool> */ protected static $isValidEngine; /** * Holds the BigInteger's value * * @var \GMP|string|array|int */ protected $value; /** * Holds the BigInteger's sign * * @var bool */ protected $is_negative; /** * Precision * * @see static::setPrecision() * @var int */ protected $precision = -1; /** * Precision Bitmask * * @see static::setPrecision() * @var static|false */ protected $bitmask = \false; /** * Recurring Modulo Function * * @var callable */ protected $reduce; /** * Mode independent value used for serialization. * * @see self::__sleep() * @see self::__wakeup() * @var string */ protected $hex; /** * Default constructor * * @param int|numeric-string $x integer Base-10 number or base-$base number if $base set. * @param int $base */ public function __construct($x = 0, $base = 10) { } /** * Sets engine type. * * Throws an exception if the type is invalid * * @param class-string $engine */ public static function setModExpEngine($engine) { } /** * Converts a BigInteger to a byte string (eg. base-256). * * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're * saved as two's compliment. * @return string */ protected function toBytesHelper() { } /** * Converts a BigInteger to a hex string (eg. base-16). * * @param bool $twos_compliment * @return string */ public function toHex($twos_compliment = \false) { } /** * Converts a BigInteger to a bit string (eg. base-2). * * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're * saved as two's compliment. * * @param bool $twos_compliment * @return string */ public function toBits($twos_compliment = \false) { } /** * Calculates modular inverses. * * Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses. * * {@internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=21 HAC 14.64} for more information.} * * @param Engine $n * @return static|false */ protected function modInverseHelper(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $n) { } /** * Serialize * * Will be called, automatically, when serialize() is called on a BigInteger object. * * @return array */ public function __sleep() { } /** * Serialize * * Will be called, automatically, when unserialize() is called on a BigInteger object. * * @return void */ public function __wakeup() { } /** * JSON Serialize * * Will be called, automatically, when json_encode() is called on a BigInteger object. * * @return array{hex: string, precision?: int] */ #[\ReturnTypeWillChange] public function jsonSerialize() { } /** * Converts a BigInteger to a base-10 number. * * @return string */ public function __toString() { } /** * __debugInfo() magic method * * Will be called, automatically, when print_r() or var_dump() are called * * @return array */ public function __debugInfo() { } /** * Set Precision * * Some bitwise operations give different results depending on the precision being used. Examples include left * shift, not, and rotates. * * @param int $bits */ public function setPrecision($bits) { } /** * Get Precision * * Returns the precision if it exists, -1 if it doesn't * * @return int */ public function getPrecision() { } /** * Set Bitmask * @return static * @param int $bits * @see self::setPrecision() */ protected static function setBitmask($bits) { } /** * Logical Not * * @return Engine|string */ public function bitwise_not() { } /** * Logical Left Shift * * Shifts binary strings $shift bits, essentially multiplying by 2**$shift. * * @param string $x * @param int $shift * @return void */ protected static function base256_lshift(&$x, $shift) { } /** * Logical Left Rotate * * Instead of the top x bits being dropped they're appended to the shifted bit string. * * @param int $shift * @return Engine */ public function bitwise_leftRotate($shift) { } /** * Logical Right Rotate * * Instead of the bottom x bits being dropped they're prepended to the shifted bit string. * * @param int $shift * @return Engine */ public function bitwise_rightRotate($shift) { } /** * Returns the smallest and largest n-bit number * * @param int $bits * @return array{min: static, max: static} */ public static function minMaxBits($bits) { } /** * Return the size of a BigInteger in bits * * @return int */ public function getLength() { } /** * Return the size of a BigInteger in bytes * * @return int */ public function getLengthInBytes() { } /** * Performs some pre-processing for powMod * * @param Engine $e * @param Engine $n * @return static|false */ protected function powModOuter(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $n) { } /** * Sliding Window k-ary Modular Exponentiation * * Based on {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=27 HAC 14.85} / * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=210 MPM 7.7}. In a departure from those algorithims, * however, this function performs a modular reduction after every multiplication and squaring operation. * As such, this function has the same preconditions that the reductions being used do. * * @template T of Engine * @param Engine $x * @param Engine $e * @param Engine $n * @param class-string $class * @return T */ protected static function slidingWindow(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $x, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $n, $class) { } /** * Generates a random number of a certain size * * Bit length is equal to $size * * @param int $size * @return Engine */ public static function random($size) { } /** * Generates a random prime number of a certain size * * Bit length is equal to $size * * @param int $size * @return Engine */ public static function randomPrime($size) { } /** * Performs some pre-processing for randomRangePrime * * @param Engine $min * @param Engine $max * @return static|false */ protected static function randomRangePrimeOuter(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $max) { } /** * Generate a random number between a range * * Returns a random number between $min and $max where $min and $max * can be defined using one of the two methods: * * BigInteger::randomRange($min, $max) * BigInteger::randomRange($max, $min) * * @param Engine $min * @param Engine $max * @return Engine */ protected static function randomRangeHelper(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $max) { } /** * Performs some post-processing for randomRangePrime * * @param Engine $x * @param Engine $min * @param Engine $max * @return static|false */ protected static function randomRangePrimeInner(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $x, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $max) { } /** * Sets the $t parameter for primality testing * * @return int */ protected function setupIsPrime() { } /** * Tests Primality * * Uses the {@link http://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test Miller-Rabin primality test}. * See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=8 HAC 4.24} for more info. * * @param int $t * @return bool */ protected function testPrimality($t) { } /** * Checks a numer to see if it's prime * * Assuming the $t parameter is not set, this function has an error rate of 2**-80. The main motivation for the * $t parameter is distributability. BigInteger::randomPrime() can be distributed across multiple pageloads * on a website instead of just one. * * @param int|bool $t * @return bool */ public function isPrime($t = \false) { } /** * Performs a few preliminary checks on root * * @param int $n * @return Engine */ protected function rootHelper($n) { } /** * Calculates the nth root of a biginteger. * * Returns the nth root of a positive biginteger, where n defaults to 2 * * {@internal This function is based off of {@link http://mathforum.org/library/drmath/view/52605.html this page} and {@link http://stackoverflow.com/questions/11242920/calculating-nth-root-with-bcmath-in-php this stackoverflow question}.} * * @param int $n * @return Engine */ protected function rootInner($n) { } /** * Calculates the nth root of a biginteger. * * @param int $n * @return Engine */ public function root($n = 2) { } /** * Return the minimum BigInteger between an arbitrary number of BigIntegers. * * @param array $nums * @return Engine */ protected static function minHelper(array $nums) { } /** * Return the minimum BigInteger between an arbitrary number of BigIntegers. * * @param array $nums * @return Engine */ protected static function maxHelper(array $nums) { } /** * Create Recurring Modulo Function * * Sometimes it may be desirable to do repeated modulos with the same number outside of * modular exponentiation * * @return callable */ public function createRecurringModuloFunction() { } /** * Calculates the greatest common divisor and Bezout's identity. * * @param Engine $n * @return array{gcd: Engine, x: Engine, y: Engine} */ protected function extendedGCDHelper(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $n) { } /** * Bitwise Split * * Splits BigInteger's into chunks of $split bits * * @param int $split * @return Engine[] */ public function bitwise_split($split) { } /** * Logical And * * @param Engine $x * @return Engine */ protected function bitwiseAndHelper(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $x) { } /** * Logical Or * * @param Engine $x * @return Engine */ protected function bitwiseOrHelper(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $x) { } /** * Logical Exclusive Or * * @param Engine $x * @return Engine */ protected function bitwiseXorHelper(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $x) { } } /** * BCMath Engine. * * @author Jim Wigginton */ class BCMath extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine { /** * Can Bitwise operations be done fast? * * @see parent::bitwise_leftRotate() * @see parent::bitwise_rightRotate() */ const FAST_BITWISE = \false; /** * Engine Directory * * @see parent::setModExpEngine */ const ENGINE_DIR = 'BCMath'; /** * Test for engine validity * * @return bool * @see parent::__construct() */ public static function isValidEngine() { } /** * Default constructor * * @param mixed $x integer Base-10 number or base-$base number if $base set. * @param int $base * @see parent::__construct() */ public function __construct($x = 0, $base = 10) { } /** * Initialize a BCMath BigInteger Engine instance * * @param int $base * @see parent::__construct() */ protected function initialize($base) { } /** * Converts a BigInteger to a base-10 number. * * @return string */ public function toString() { } /** * Converts a BigInteger to a byte string (eg. base-256). * * @param bool $twos_compliment * @return string */ public function toBytes($twos_compliment = \false) { } /** * Adds two BigIntegers. * * @param BCMath $y * @return BCMath */ public function add(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $y) { } /** * Subtracts two BigIntegers. * * @param BCMath $y * @return BCMath */ public function subtract(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $y) { } /** * Multiplies two BigIntegers. * * @param BCMath $x * @return BCMath */ public function multiply(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $x) { } /** * Divides two BigIntegers. * * Returns an array whose first element contains the quotient and whose second element contains the * "common residue". If the remainder would be positive, the "common residue" and the remainder are the * same. If the remainder would be negative, the "common residue" is equal to the sum of the remainder * and the divisor (basically, the "common residue" is the first positive modulo). * * @param BCMath $y * @return array{static, static} */ public function divide(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $y) { } /** * Calculates modular inverses. * * Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses. * * @param BCMath $n * @return false|BCMath */ public function modInverse(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $n) { } /** * Calculates the greatest common divisor and Bezout's identity. * * Say you have 693 and 609. The GCD is 21. Bezout's identity states that there exist integers x and y such that * 693*x + 609*y == 21. In point of fact, there are actually an infinite number of x and y combinations and which * combination is returned is dependent upon which mode is in use. See * {@link http://en.wikipedia.org/wiki/B%C3%A9zout%27s_identity Bezout's identity - Wikipedia} for more information. * * @param BCMath $n * @return array{gcd: static, x: static, y: static} */ public function extendedGCD(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $n) { } /** * Calculates the greatest common divisor * * Say you have 693 and 609. The GCD is 21. * * @param BCMath $n * @return BCMath */ public function gcd(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $n) { } /** * Absolute value. * * @return BCMath */ public function abs() { } /** * Logical And * * @param BCMath $x * @return BCMath */ public function bitwise_and(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $x) { } /** * Logical Or * * @param BCMath $x * @return BCMath */ public function bitwise_or(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $x) { } /** * Logical Exclusive Or * * @param BCMath $x * @return BCMath */ public function bitwise_xor(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $x) { } /** * Logical Right Shift * * Shifts BigInteger's by $shift bits, effectively dividing by 2**$shift. * * @param int $shift * @return BCMath */ public function bitwise_rightShift($shift) { } /** * Logical Left Shift * * Shifts BigInteger's by $shift bits, effectively multiplying by 2**$shift. * * @param int $shift * @return BCMath */ public function bitwise_leftShift($shift) { } /** * Compares two numbers. * * Although one might think !$x->compare($y) means $x != $y, it, in fact, means the opposite. The reason for this * is demonstrated thusly: * * $x > $y: $x->compare($y) > 0 * $x < $y: $x->compare($y) < 0 * $x == $y: $x->compare($y) == 0 * * Note how the same comparison operator is used. If you want to test for equality, use $x->equals($y). * * {@internal Could return $this->subtract($x), but that's not as fast as what we do do.} * * @param BCMath $y * @return int in case < 0 if $this is less than $y; > 0 if $this is greater than $y, and 0 if they are equal. * @see self::equals() */ public function compare(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $y) { } /** * Tests the equality of two numbers. * * If you need to see if one number is greater than or less than another number, use BigInteger::compare() * * @param BCMath $x * @return bool */ public function equals(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $x) { } /** * Performs modular exponentiation. * * @param BCMath $e * @param BCMath $n * @return BCMath */ public function modPow(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $n) { } /** * Performs modular exponentiation. * * Alias for modPow(). * * @param BCMath $e * @param BCMath $n * @return BCMath */ public function powMod(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $n) { } /** * Performs modular exponentiation. * * @param BCMath $e * @param BCMath $n * @return BCMath */ protected function powModInner(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $n) { } /** * Normalize * * Removes leading zeros and truncates (if necessary) to maintain the appropriate precision * * @param BCMath $result * @return BCMath */ protected function normalize(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $result) { } /** * Generate a random prime number between a range * * If there's not a prime within the given range, false will be returned. * * @param BCMath $min * @param BCMath $max * @return false|BCMath */ public static function randomRangePrime(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $max) { } /** * Generate a random number between a range * * Returns a random number between $min and $max where $min and $max * can be defined using one of the two methods: * * BigInteger::randomRange($min, $max) * BigInteger::randomRange($max, $min) * * @param BCMath $min * @param BCMath $max * @return BCMath */ public static function randomRange(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $max) { } /** * Make the current number odd * * If the current number is odd it'll be unchanged. If it's even, one will be added to it. * * @see self::randomPrime() */ protected function make_odd() { } /** * Test the number against small primes. * * @see self::isPrime() */ protected function testSmallPrimes() { } /** * Scan for 1 and right shift by that amount * * ie. $s = gmp_scan1($n, 0) and $r = gmp_div_q($n, gmp_pow(gmp_init('2'), $s)); * * @param BCMath $r * @return int * @see self::isPrime() */ public static function scan1divide(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $r) { } /** * Performs exponentiation. * * @param BCMath $n * @return BCMath */ public function pow(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $n) { } /** * Return the minimum BigInteger between an arbitrary number of BigIntegers. * * @param BCMath ...$nums * @return BCMath */ public static function min(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath ...$nums) { } /** * Return the maximum BigInteger between an arbitrary number of BigIntegers. * * @param BCMath ...$nums * @return BCMath */ public static function max(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath ...$nums) { } /** * Tests BigInteger to see if it is between two integers, inclusive * * @param BCMath $min * @param BCMath $max * @return bool */ public function between(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $max) { } /** * Set Bitmask * * @param int $bits * @return Engine * @see self::setPrecision() */ protected static function setBitmask($bits) { } /** * Is Odd? * * @return bool */ public function isOdd() { } /** * Tests if a bit is set * * @return bool */ public function testBit($x) { } /** * Is Negative? * * @return bool */ public function isNegative() { } /** * Negate * * Given $k, returns -$k * * @return BCMath */ public function negate() { } } } namespace ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath { /** * Sliding Window Exponentiation Engine * * @author Jim Wigginton */ abstract class Base extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath { /** * Cache constants * * $cache[self::VARIABLE] tells us whether or not the cached data is still valid. * */ const VARIABLE = 0; /** * $cache[self::DATA] contains the cached data. * */ const DATA = 1; /** * Test for engine validity * * @return bool */ public static function isValidEngine() { } /** * Performs modular exponentiation. * * @param BCMath $x * @param BCMath $e * @param BCMath $n * @param string $class * @return BCMath */ protected static function powModHelper(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $x, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $n, $class) { } /** * Modular reduction preparation * * @param string $x * @param string $n * @param string $class * @see self::slidingWindow() * @return string */ protected static function prepareReduce($x, $n, $class) { } /** * Modular multiply * * @param string $x * @param string $y * @param string $n * @param string $class * @see self::slidingWindow() * @return string */ protected static function multiplyReduce($x, $y, $n, $class) { } /** * Modular square * * @param string $x * @param string $n * @param string $class * @see self::slidingWindow() * @return string */ protected static function squareReduce($x, $n, $class) { } } /** * Built-In BCMath Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class BuiltIn extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath { /** * Performs modular exponentiation. * * @param BCMath $x * @param BCMath $e * @param BCMath $n * @return BCMath */ protected static function powModHelper(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $x, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $n) { } } } namespace ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath\Reductions { /** * PHP Barrett Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class Barrett extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath\Base { /** * Cache constants * * $cache[self::VARIABLE] tells us whether or not the cached data is still valid. * */ const VARIABLE = 0; /** * $cache[self::DATA] contains the cached data. * */ const DATA = 1; /** * Barrett Modular Reduction * * See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=14 HAC 14.3.3} / * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=165 MPM 6.2.5} for more information. Modified slightly, * so as not to require negative numbers (initially, this script didn't support negative numbers). * * Employs "folding", as described at * {@link http://www.cosic.esat.kuleuven.be/publications/thesis-149.pdf#page=66 thesis-149.pdf#page=66}. To quote from * it, "the idea [behind folding] is to find a value x' such that x (mod m) = x' (mod m), with x' being smaller than x." * * Unfortunately, the "Barrett Reduction with Folding" algorithm described in thesis-149.pdf is not, as written, all that * usable on account of (1) its not using reasonable radix points as discussed in * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=162 MPM 6.2.2} and (2) the fact that, even with reasonable * radix points, it only works when there are an even number of digits in the denominator. The reason for (2) is that * (x >> 1) + (x >> 1) != x / 2 + x / 2. If x is even, they're the same, but if x is odd, they're not. See the in-line * comments for details. * * @param string $n * @param string $m * @return string */ protected static function reduce($n, $m) { } /** * (Regular) Barrett Modular Reduction * * For numbers with more than four digits BigInteger::_barrett() is faster. The difference between that and this * is that this function does not fold the denominator into a smaller form. * * @param string $x * @param string $n * @return string */ private static function regularBarrett($x, $n) { } } } namespace ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath { /** * PHP Default Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class DefaultEngine extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath\Reductions\Barrett { } } namespace ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines { /** * OpenSSL Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class OpenSSL { /** * Test for engine validity * * @return bool */ public static function isValidEngine() { } /** * Performs modular exponentiation. * * @param Engine $x * @param Engine $e * @param Engine $n * @return Engine */ public static function powModHelper(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $x, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $n) { } } } namespace ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath { /** * OpenSSL Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class OpenSSL extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\OpenSSL { } } namespace ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath\Reductions { /** * PHP Barrett Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class EvalBarrett extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath\Base { /** * Custom Reduction Function * * @see self::generateCustomReduction */ private static $custom_reduction; /** * Barrett Modular Reduction * * This calls a dynamically generated loop unrolled function that's specific to a given modulo. * Array lookups are avoided as are if statements testing for how many bits the host OS supports, etc. * * @param string $n * @param string $m * @return string */ protected static function reduce($n, $m) { } /** * Generate Custom Reduction * * @param BCMath $m * @param string $class * @return callable|void */ protected static function generateCustomReduction(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath $m, $class) { } } } namespace ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines { /** * GMP Engine. * * @author Jim Wigginton */ class GMP extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine { /** * Can Bitwise operations be done fast? * * @see parent::bitwise_leftRotate() * @see parent::bitwise_rightRotate() */ const FAST_BITWISE = \true; /** * Engine Directory * * @see parent::setModExpEngine */ const ENGINE_DIR = 'GMP'; /** * Test for engine validity * * @return bool * @see parent::__construct() */ public static function isValidEngine() { } /** * Default constructor * * @param mixed $x integer Base-10 number or base-$base number if $base set. * @param int $base * @see parent::__construct() */ public function __construct($x = 0, $base = 10) { } /** * Initialize a GMP BigInteger Engine instance * * @param int $base * @see parent::__construct() */ protected function initialize($base) { } /** * Converts a BigInteger to a base-10 number. * * @return string */ public function toString() { } /** * Converts a BigInteger to a bit string (eg. base-2). * * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're * saved as two's compliment. * * @param bool $twos_compliment * @return string */ public function toBits($twos_compliment = \false) { } /** * Converts a BigInteger to a byte string (eg. base-256). * * @param bool $twos_compliment * @return string */ public function toBytes($twos_compliment = \false) { } /** * Adds two BigIntegers. * * @param GMP $y * @return GMP */ public function add(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $y) { } /** * Subtracts two BigIntegers. * * @param GMP $y * @return GMP */ public function subtract(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $y) { } /** * Multiplies two BigIntegers. * * @param GMP $x * @return GMP */ public function multiply(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $x) { } /** * Divides two BigIntegers. * * Returns an array whose first element contains the quotient and whose second element contains the * "common residue". If the remainder would be positive, the "common residue" and the remainder are the * same. If the remainder would be negative, the "common residue" is equal to the sum of the remainder * and the divisor (basically, the "common residue" is the first positive modulo). * * @param GMP $y * @return array{GMP, GMP} */ public function divide(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $y) { } /** * Compares two numbers. * * Although one might think !$x->compare($y) means $x != $y, it, in fact, means the opposite. The reason for this * is demonstrated thusly: * * $x > $y: $x->compare($y) > 0 * $x < $y: $x->compare($y) < 0 * $x == $y: $x->compare($y) == 0 * * Note how the same comparison operator is used. If you want to test for equality, use $x->equals($y). * * {@internal Could return $this->subtract($x), but that's not as fast as what we do do.} * * @param GMP $y * @return int in case < 0 if $this is less than $y; > 0 if $this is greater than $y, and 0 if they are equal. * @see self::equals() */ public function compare(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $y) { } /** * Tests the equality of two numbers. * * If you need to see if one number is greater than or less than another number, use BigInteger::compare() * * @param GMP $x * @return bool */ public function equals(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $x) { } /** * Calculates modular inverses. * * Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses. * * @param GMP $n * @return false|GMP */ public function modInverse(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $n) { } /** * Calculates the greatest common divisor and Bezout's identity. * * Say you have 693 and 609. The GCD is 21. Bezout's identity states that there exist integers x and y such that * 693*x + 609*y == 21. In point of fact, there are actually an infinite number of x and y combinations and which * combination is returned is dependent upon which mode is in use. See * {@link http://en.wikipedia.org/wiki/B%C3%A9zout%27s_identity Bezout's identity - Wikipedia} for more information. * * @param GMP $n * @return GMP[] */ public function extendedGCD(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $n) { } /** * Calculates the greatest common divisor * * Say you have 693 and 609. The GCD is 21. * * @param GMP $n * @return GMP */ public function gcd(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $n) { } /** * Absolute value. * * @return GMP */ public function abs() { } /** * Logical And * * @param GMP $x * @return GMP */ public function bitwise_and(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $x) { } /** * Logical Or * * @param GMP $x * @return GMP */ public function bitwise_or(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $x) { } /** * Logical Exclusive Or * * @param GMP $x * @return GMP */ public function bitwise_xor(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $x) { } /** * Logical Right Shift * * Shifts BigInteger's by $shift bits, effectively dividing by 2**$shift. * * @param int $shift * @return GMP */ public function bitwise_rightShift($shift) { } /** * Logical Left Shift * * Shifts BigInteger's by $shift bits, effectively multiplying by 2**$shift. * * @param int $shift * @return GMP */ public function bitwise_leftShift($shift) { } /** * Performs modular exponentiation. * * @param GMP $e * @param GMP $n * @return GMP */ public function modPow(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $n) { } /** * Performs modular exponentiation. * * Alias for modPow(). * * @param GMP $e * @param GMP $n * @return GMP */ public function powMod(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $n) { } /** * Performs modular exponentiation. * * @param GMP $e * @param GMP $n * @return GMP */ protected function powModInner(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $n) { } /** * Normalize * * Removes leading zeros and truncates (if necessary) to maintain the appropriate precision * * @param GMP $result * @return GMP */ protected function normalize(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $result) { } /** * Performs some post-processing for randomRangePrime * * @param Engine $x * @param Engine $min * @param Engine $max * @return GMP */ protected static function randomRangePrimeInner(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $x, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $max) { } /** * Generate a random prime number between a range * * If there's not a prime within the given range, false will be returned. * * @param GMP $min * @param GMP $max * @return false|GMP */ public static function randomRangePrime(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $max) { } /** * Generate a random number between a range * * Returns a random number between $min and $max where $min and $max * can be defined using one of the two methods: * * BigInteger::randomRange($min, $max) * BigInteger::randomRange($max, $min) * * @param GMP $min * @param GMP $max * @return GMP */ public static function randomRange(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $max) { } /** * Make the current number odd * * If the current number is odd it'll be unchanged. If it's even, one will be added to it. * * @see self::randomPrime() */ protected function make_odd() { } /** * Tests Primality * * @param int $t * @return bool */ protected function testPrimality($t) { } /** * Calculates the nth root of a biginteger. * * Returns the nth root of a positive biginteger, where n defaults to 2 * * @param int $n * @return GMP */ protected function rootInner($n) { } /** * Performs exponentiation. * * @param GMP $n * @return GMP */ public function pow(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $n) { } /** * Return the minimum BigInteger between an arbitrary number of BigIntegers. * * @param GMP ...$nums * @return GMP */ public static function min(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP ...$nums) { } /** * Return the maximum BigInteger between an arbitrary number of BigIntegers. * * @param GMP ...$nums * @return GMP */ public static function max(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP ...$nums) { } /** * Tests BigInteger to see if it is between two integers, inclusive * * @param GMP $min * @param GMP $max * @return bool */ public function between(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $max) { } /** * Create Recurring Modulo Function * * Sometimes it may be desirable to do repeated modulos with the same number outside of * modular exponentiation * * @return callable */ public function createRecurringModuloFunction() { } /** * Scan for 1 and right shift by that amount * * ie. $s = gmp_scan1($n, 0) and $r = gmp_div_q($n, gmp_pow(gmp_init('2'), $s)); * * @param GMP $r * @return int */ public static function scan1divide(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $r) { } /** * Is Odd? * * @return bool */ public function isOdd() { } /** * Tests if a bit is set * * @return bool */ public function testBit($x) { } /** * Is Negative? * * @return bool */ public function isNegative() { } /** * Negate * * Given $k, returns -$k * * @return GMP */ public function negate() { } } } namespace ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP { /** * GMP Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class DefaultEngine extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP { /** * Performs modular exponentiation. * * @param GMP $x * @param GMP $e * @param GMP $n * @return GMP */ protected static function powModHelper(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $x, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP $n) { } } } namespace ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines { /** * Pure-PHP Engine. * * @author Jim Wigginton */ abstract class PHP extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine { /**#@+ * Array constants * * Rather than create a thousands and thousands of new BigInteger objects in repeated function calls to add() and * multiply() or whatever, we'll just work directly on arrays, taking them in as parameters and returning them. * */ /** * $result[self::VALUE] contains the value. */ const VALUE = 0; /** * $result[self::SIGN] contains the sign. */ const SIGN = 1; /**#@-*/ /** * Karatsuba Cutoff * * At what point do we switch between Karatsuba multiplication and schoolbook long multiplication? * */ const KARATSUBA_CUTOFF = 25; /** * Can Bitwise operations be done fast? * * @see parent::bitwise_leftRotate() * @see parent::bitwise_rightRotate() */ const FAST_BITWISE = \true; /** * Engine Directory * * @see parent::setModExpEngine */ const ENGINE_DIR = 'PHP'; /** * Default constructor * * @param mixed $x integer Base-10 number or base-$base number if $base set. * @param int $base * @return PHP * @see parent::__construct() */ public function __construct($x = 0, $base = 10) { } /** * Initialize a PHP BigInteger Engine instance * * @param int $base * @see parent::__construct() */ protected function initialize($base) { } /** * Pads strings so that unpack may be used on them * * @param string $str * @return string */ protected function pad($str) { } /** * Converts a BigInteger to a base-10 number. * * @return string */ public function toString() { } /** * Converts a BigInteger to a byte string (eg. base-256). * * @param bool $twos_compliment * @return string */ public function toBytes($twos_compliment = \false) { } /** * Performs addition. * * @param array $x_value * @param bool $x_negative * @param array $y_value * @param bool $y_negative * @return array */ protected static function addHelper(array $x_value, $x_negative, array $y_value, $y_negative) { } /** * Performs subtraction. * * @param array $x_value * @param bool $x_negative * @param array $y_value * @param bool $y_negative * @return array */ public static function subtractHelper(array $x_value, $x_negative, array $y_value, $y_negative) { } /** * Performs multiplication. * * @param array $x_value * @param bool $x_negative * @param array $y_value * @param bool $y_negative * @return array */ protected static function multiplyHelper(array $x_value, $x_negative, array $y_value, $y_negative) { } /** * Performs Karatsuba multiplication on two BigIntegers * * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=120 MPM 5.2.3}. * * @param array $x_value * @param array $y_value * @return array */ private static function karatsuba(array $x_value, array $y_value) { } /** * Performs long multiplication on two BigIntegers * * Modeled after 'multiply' in MutableBigInteger.java. * * @param array $x_value * @param array $y_value * @return array */ protected static function regularMultiply(array $x_value, array $y_value) { } /** * Divides two BigIntegers. * * Returns an array whose first element contains the quotient and whose second element contains the * "common residue". If the remainder would be positive, the "common residue" and the remainder are the * same. If the remainder would be negative, the "common residue" is equal to the sum of the remainder * and the divisor (basically, the "common residue" is the first positive modulo). * * @return array{static, static} * @internal This function is based off of * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=9 HAC 14.20}. */ protected function divideHelper(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP $y) { } /** * Divides a BigInteger by a regular integer * * abc / x = a00 / x + b0 / x + c / x * * @param array $dividend * @param int $divisor * @return array */ private static function divide_digit(array $dividend, $divisor) { } /** * Single digit division * * Even if int64 is being used the division operator will return a float64 value * if the dividend is not evenly divisible by the divisor. Since a float64 doesn't * have the precision of int64 this is a problem so, when int64 is being used, * we'll guarantee that the dividend is divisible by first subtracting the remainder. * * @param int $x * @param int $y * @return int */ private static function safe_divide($x, $y) { } /** * Convert an array / boolean to a PHP BigInteger object * * @param array $arr * @return static */ protected function convertToObj(array $arr) { } /** * Normalize * * Removes leading zeros and truncates (if necessary) to maintain the appropriate precision * * @param PHP $result * @return static */ protected function normalize(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP $result) { } /** * Compares two numbers. * * @param array $x_value * @param bool $x_negative * @param array $y_value * @param bool $y_negative * @return int * @see static::compare() */ protected static function compareHelper(array $x_value, $x_negative, array $y_value, $y_negative) { } /** * Absolute value. * * @return PHP */ public function abs() { } /** * Trim * * Removes leading zeros * * @param list $value * @return list */ protected static function trim(array $value) { } /** * Logical Right Shift * * Shifts BigInteger's by $shift bits, effectively dividing by 2**$shift. * * @param int $shift * @return PHP */ public function bitwise_rightShift($shift) { } /** * Logical Left Shift * * Shifts BigInteger's by $shift bits, effectively multiplying by 2**$shift. * * @param int $shift * @return PHP */ public function bitwise_leftShift($shift) { } /** * Converts 32-bit integers to bytes. * * @param int $x * @return string */ private static function int2bytes($x) { } /** * Array Repeat * * @param int $input * @param int $multiplier * @return array */ protected static function array_repeat($input, $multiplier) { } /** * Logical Left Shift * * Shifts BigInteger's by $shift bits. * * @param int $shift */ protected function lshift($shift) { } /** * Logical Right Shift * * Shifts BigInteger's by $shift bits. * * @param int $shift */ protected function rshift($shift) { } /** * Performs modular exponentiation. * * @param PHP $e * @param PHP $n * @return PHP */ protected function powModInner(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP $n) { } /** * Performs squaring * * @param list $x * @return list */ protected static function square(array $x) { } /** * Performs traditional squaring on two BigIntegers * * Squaring can be done faster than multiplying a number by itself can be. See * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=7 HAC 14.2.4} / * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=141 MPM 5.3} for more information. * * @param array $value * @return array */ protected static function baseSquare(array $value) { } /** * Performs Karatsuba "squaring" on two BigIntegers * * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=151 MPM 5.3.4}. * * @param array $value * @return array */ protected static function karatsubaSquare(array $value) { } /** * Make the current number odd * * If the current number is odd it'll be unchanged. If it's even, one will be added to it. * * @see self::randomPrime() */ protected function make_odd() { } /** * Test the number against small primes. * * @see self::isPrime() */ protected function testSmallPrimes() { } /** * Scan for 1 and right shift by that amount * * ie. $s = gmp_scan1($n, 0) and $r = gmp_div_q($n, gmp_pow(gmp_init('2'), $s)); * * @param PHP $r * @return int * @see self::isPrime() */ public static function scan1divide(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP $r) { } /** * Performs exponentiation. * * @param PHP $n * @return PHP */ protected function powHelper(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP $n) { } /** * Is Odd? * * @return bool */ public function isOdd() { } /** * Tests if a bit is set * * @return bool */ public function testBit($x) { } /** * Is Negative? * * @return bool */ public function isNegative() { } /** * Negate * * Given $k, returns -$k * * @return static */ public function negate() { } /** * Bitwise Split * * Splits BigInteger's into chunks of $split bits * * @param int $split * @return list */ public function bitwise_split($split) { } /** * Bitwise Split where $split < static::BASE * * @param int $split * @return list */ private function bitwise_small_split($split) { } /** * @return bool */ protected static function testJITOnWindows() { } /** * Return the size of a BigInteger in bits * * @return int */ public function getLength() { } } } namespace ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP { /** * PHP Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class Base extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP { /** * Cache constants * * $cache[self::VARIABLE] tells us whether or not the cached data is still valid. * */ const VARIABLE = 0; /** * $cache[self::DATA] contains the cached data. * */ const DATA = 1; /** * Test for engine validity * * @return bool */ public static function isValidEngine() { } /** * Performs modular exponentiation. * * The most naive approach to modular exponentiation has very unreasonable requirements, and * and although the approach involving repeated squaring does vastly better, it, too, is impractical * for our purposes. The reason being that division - by far the most complicated and time-consuming * of the basic operations (eg. +,-,*,/) - occurs multiple times within it. * * Modular reductions resolve this issue. Although an individual modular reduction takes more time * then an individual division, when performed in succession (with the same modulo), they're a lot faster. * * The two most commonly used modular reductions are Barrett and Montgomery reduction. Montgomery reduction, * although faster, only works when the gcd of the modulo and of the base being used is 1. In RSA, when the * base is a power of two, the modulo - a product of two primes - is always going to have a gcd of 1 (because * the product of two odd numbers is odd), but what about when RSA isn't used? * * In contrast, Barrett reduction has no such constraint. As such, some bigint implementations perform a * Barrett reduction after every operation in the modpow function. Others perform Barrett reductions when the * modulo is even and Montgomery reductions when the modulo is odd. BigInteger.java's modPow method, however, * uses a trick involving the Chinese Remainder Theorem to factor the even modulo into two numbers - one odd and * the other, a power of two - and recombine them, later. This is the method that this modPow function uses. * {@link http://islab.oregonstate.edu/papers/j34monex.pdf Montgomery Reduction with Even Modulus} elaborates. * * @param PHP $x * @param PHP $e * @param PHP $n * @param string $class * @return PHP */ protected static function powModHelper(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP $x, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP $n, $class) { } /** * Modular reduction preparation * * @param array $x * @param array $n * @param string $class * @see self::slidingWindow() * @return array */ protected static function prepareReduce(array $x, array $n, $class) { } /** * Modular multiply * * @param array $x * @param array $y * @param array $n * @param string $class * @see self::slidingWindow() * @return array */ protected static function multiplyReduce(array $x, array $y, array $n, $class) { } /** * Modular square * * @param array $x * @param array $n * @param string $class * @see self::slidingWindow() * @return array */ protected static function squareReduce(array $x, array $n, $class) { } } } namespace ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Reductions { /** * PHP Dynamic Barrett Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class EvalBarrett extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Base { /** * Custom Reduction Function * * @see self::generateCustomReduction */ private static $custom_reduction; /** * Barrett Modular Reduction * * This calls a dynamically generated loop unrolled function that's specific to a given modulo. * Array lookups are avoided as are if statements testing for how many bits the host OS supports, etc. * * @param array $n * @param array $m * @param string $class * @return array */ protected static function reduce(array $n, array $m, $class) { } /** * Generate Custom Reduction * * @param PHP $m * @param string $class * @return callable */ protected static function generateCustomReduction(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP $m, $class) { } /** * Inline Trim * * Removes leading zeros * * @param string $name * @return string */ private static function generateInlineTrim($name) { } /** * Inline Multiply (unknown, known) * * @param string $input * @param array $arr * @param string $output * @param string $class * @return string */ private static function generateInlineMultiply($input, array $arr, $output, $class) { } /** * Inline Addition * * @param string $x * @param string $y * @param string $result * @param string $class * @return string */ private static function generateInlineAdd($x, $y, $result, $class) { } /** * Inline Subtraction 2 * * For when $known is more digits than $unknown. This is the harder use case to optimize for. * * @param string $known * @param string $unknown * @param string $result * @param string $class * @return string */ private static function generateInlineSubtract2($known, $unknown, $result, $class) { } /** * Inline Subtraction 1 * * For when $unknown is more digits than $known. This is the easier use case to optimize for. * * @param string $unknown * @param array $known * @param string $result * @param string $class * @return string */ private static function generateInlineSubtract1($unknown, array $known, $result, $class) { } /** * Inline Comparison * * If $unknown >= $known then loop * * @param array $known * @param string $unknown * @param string $subcode * @return string */ private static function generateInlineCompare(array $known, $unknown, $subcode) { } /** * Convert a float to a string * * If you do echo floatval(pow(2, 52)) you'll get 4.6116860184274E+18. It /can/ be displayed without a loss of * precision but displayed in this way there will be precision loss, hence the need for this method. * * @param int|float $num * @return string */ private static function float2string($num) { } } } namespace ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP { /** * PHP Default Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class DefaultEngine extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Reductions\EvalBarrett { } /** * PHP Montgomery Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class Montgomery extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Base { /** * Test for engine validity * * @return bool */ public static function isValidEngine() { } /** * Performs modular exponentiation. * * @template T of Engine * @param Engine $x * @param Engine $e * @param Engine $n * @param class-string $class * @return T */ protected static function slidingWindow(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $x, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine $n, $class) { } } /** * OpenSSL Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class OpenSSL extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\OpenSSL { } } namespace ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Reductions { /** * PHP Barrett Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class Barrett extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Base { /** * Barrett Modular Reduction * * See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=14 HAC 14.3.3} / * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=165 MPM 6.2.5} for more information. Modified slightly, * so as not to require negative numbers (initially, this script didn't support negative numbers). * * Employs "folding", as described at * {@link http://www.cosic.esat.kuleuven.be/publications/thesis-149.pdf#page=66 thesis-149.pdf#page=66}. To quote from * it, "the idea [behind folding] is to find a value x' such that x (mod m) = x' (mod m), with x' being smaller than x." * * Unfortunately, the "Barrett Reduction with Folding" algorithm described in thesis-149.pdf is not, as written, all that * usable on account of (1) its not using reasonable radix points as discussed in * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=162 MPM 6.2.2} and (2) the fact that, even with reasonable * radix points, it only works when there are an even number of digits in the denominator. The reason for (2) is that * (x >> 1) + (x >> 1) != x / 2 + x / 2. If x is even, they're the same, but if x is odd, they're not. See the in-line * comments for details. * * @param array $n * @param array $m * @param class-string $class * @return array */ protected static function reduce(array $n, array $m, $class) { } /** * (Regular) Barrett Modular Reduction * * For numbers with more than four digits BigInteger::_barrett() is faster. The difference between that and this * is that this function does not fold the denominator into a smaller form. * * @param array $x * @param array $n * @param string $class * @return array */ private static function regularBarrett(array $x, array $n, $class) { } /** * Performs long multiplication up to $stop digits * * If you're going to be doing array_slice($product->value, 0, $stop), some cycles can be saved. * * @see self::regularBarrett() * @param array $x_value * @param bool $x_negative * @param array $y_value * @param bool $y_negative * @param int $stop * @param string $class * @return array */ private static function multiplyLower(array $x_value, $x_negative, array $y_value, $y_negative, $stop, $class) { } } /** * PHP Classic Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class Classic extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Base { /** * Regular Division * * @param array $x * @param array $n * @param string $class * @return array */ protected static function reduce(array $x, array $n, $class) { } } /** * PHP Montgomery Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class Montgomery extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Montgomery { /** * Prepare a number for use in Montgomery Modular Reductions * * @param array $x * @param array $n * @param string $class * @return array */ protected static function prepareReduce(array $x, array $n, $class) { } /** * Montgomery Multiply * * Interleaves the montgomery reduction and long multiplication algorithms together as described in * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=13 HAC 14.36} * * @param array $x * @param array $n * @param string $class * @return array */ protected static function reduce(array $x, array $n, $class) { } /** * Modular Inverse of a number mod 2**26 (eg. 67108864) * * Based off of the bnpInvDigit function implemented and justified in the following URL: * * {@link http://www-cs-students.stanford.edu/~tjw/jsbn/jsbn.js} * * The following URL provides more info: * * {@link http://groups.google.com/group/sci.crypt/msg/7a137205c1be7d85} * * As for why we do all the bitmasking... strange things can happen when converting from floats to ints. For * instance, on some computers, var_dump((int) -4294967297) yields int(-1) and on others, it yields * int(-2147483648). To avoid problems stemming from this, we use bitmasks to guarantee that ints aren't * auto-converted to floats. The outermost bitmask is present because without it, there's no guarantee that * the "residue" returned would be the so-called "common residue". We use fmod, in the last step, because the * maximum possible $x is 26 bits and the maximum $result is 16 bits. Thus, we have to be able to handle up to * 40 bits, which only 64-bit floating points will support. * * Thanks to Pedro Gimeno Fortea for input! * * @param array $x * @param string $class * @return int */ protected static function modInverse67108864(array $x, $class) { } } /** * PHP Montgomery Modular Exponentiation Engine with interleaved multiplication * * @author Jim Wigginton */ abstract class MontgomeryMult extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Reductions\Montgomery { /** * Montgomery Multiply * * Interleaves the montgomery reduction and long multiplication algorithms together as described in * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=13 HAC 14.36} * * @see self::_prepMontgomery() * @see self::_montgomery() * @param array $x * @param array $y * @param array $m * @param class-string $class * @return array */ public static function multiplyReduce(array $x, array $y, array $m, $class) { } } /** * PHP Power Of Two Modular Exponentiation Engine * * @author Jim Wigginton */ abstract class PowerOfTwo extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Base { /** * Prepare a number for use in Montgomery Modular Reductions * * @param array $x * @param array $n * @param string $class * @return array */ protected static function prepareReduce(array $x, array $n, $class) { } /** * Power Of Two Reduction * * @param array $x * @param array $n * @param string $class * @return array */ protected static function reduce(array $x, array $n, $class) { } } } namespace ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines { /** * Pure-PHP 32-bit Engine. * * Uses 64-bit floats if int size is 4 bits * * @author Jim Wigginton */ class PHP32 extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP { // Constants used by PHP.php const BASE = 26; const BASE_FULL = 0x4000000; const MAX_DIGIT = 0x3ffffff; const MSB = 0x2000000; /** * MAX10 in greatest MAX10LEN satisfying * MAX10 = 10**MAX10LEN <= 2**BASE. */ const MAX10 = 10000000; /** * MAX10LEN in greatest MAX10LEN satisfying * MAX10 = 10**MAX10LEN <= 2**BASE. */ const MAX10LEN = 7; const MAX_DIGIT2 = 4503599627370496; /** * Initialize a PHP32 BigInteger Engine instance * * @param int $base * @see parent::initialize() */ protected function initialize($base) { } /** * Test for engine validity * * @see parent::__construct() * @return bool */ public static function isValidEngine() { } /** * Adds two BigIntegers. * * @param PHP32 $y * @return PHP32 */ public function add(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $y) { } /** * Subtracts two BigIntegers. * * @param PHP32 $y * @return PHP32 */ public function subtract(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $y) { } /** * Multiplies two BigIntegers. * * @param PHP32 $y * @return PHP32 */ public function multiply(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $y) { } /** * Divides two BigIntegers. * * Returns an array whose first element contains the quotient and whose second element contains the * "common residue". If the remainder would be positive, the "common residue" and the remainder are the * same. If the remainder would be negative, the "common residue" is equal to the sum of the remainder * and the divisor (basically, the "common residue" is the first positive modulo). * * @param PHP32 $y * @return array{PHP32, PHP32} */ public function divide(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $y) { } /** * Calculates modular inverses. * * Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses. * @param PHP32 $n * @return false|PHP32 */ public function modInverse(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $n) { } /** * Calculates modular inverses. * * Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses. * @param PHP32 $n * @return PHP32[] */ public function extendedGCD(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $n) { } /** * Calculates the greatest common divisor * * Say you have 693 and 609. The GCD is 21. * * @param PHP32 $n * @return PHP32 */ public function gcd(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $n) { } /** * Logical And * * @param PHP32 $x * @return PHP32 */ public function bitwise_and(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $x) { } /** * Logical Or * * @param PHP32 $x * @return PHP32 */ public function bitwise_or(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $x) { } /** * Logical Exclusive Or * * @param PHP32 $x * @return PHP32 */ public function bitwise_xor(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $x) { } /** * Compares two numbers. * * Although one might think !$x->compare($y) means $x != $y, it, in fact, means the opposite. The reason for this is * demonstrated thusly: * * $x > $y: $x->compare($y) > 0 * $x < $y: $x->compare($y) < 0 * $x == $y: $x->compare($y) == 0 * * Note how the same comparison operator is used. If you want to test for equality, use $x->equals($y). * * {@internal Could return $this->subtract($x), but that's not as fast as what we do do.} * * @param PHP32 $y * @return int in case < 0 if $this is less than $y; > 0 if $this is greater than $y, and 0 if they are equal. * @see self::equals() */ public function compare(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $y) { } /** * Tests the equality of two numbers. * * If you need to see if one number is greater than or less than another number, use BigInteger::compare() * * @param PHP32 $x * @return bool */ public function equals(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $x) { } /** * Performs modular exponentiation. * * @param PHP32 $e * @param PHP32 $n * @return PHP32 */ public function modPow(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $n) { } /** * Performs modular exponentiation. * * Alias for modPow(). * * @param PHP32 $e * @param PHP32 $n * @return PHP32 */ public function powMod(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $n) { } /** * Generate a random prime number between a range * * If there's not a prime within the given range, false will be returned. * * @param PHP32 $min * @param PHP32 $max * @return false|PHP32 */ public static function randomRangePrime(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $max) { } /** * Generate a random number between a range * * Returns a random number between $min and $max where $min and $max * can be defined using one of the two methods: * * BigInteger::randomRange($min, $max) * BigInteger::randomRange($max, $min) * * @param PHP32 $min * @param PHP32 $max * @return PHP32 */ public static function randomRange(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $max) { } /** * Performs exponentiation. * * @param PHP32 $n * @return PHP32 */ public function pow(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $n) { } /** * Return the minimum BigInteger between an arbitrary number of BigIntegers. * * @param PHP32 ...$nums * @return PHP32 */ public static function min(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 ...$nums) { } /** * Return the maximum BigInteger between an arbitrary number of BigIntegers. * * @param PHP32 ...$nums * @return PHP32 */ public static function max(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 ...$nums) { } /** * Tests BigInteger to see if it is between two integers, inclusive * * @param PHP32 $min * @param PHP32 $max * @return bool */ public function between(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32 $max) { } } /** * Pure-PHP 64-bit Engine. * * Uses 64-bit integers if int size is 8 bits * * @author Jim Wigginton */ class PHP64 extends \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP { // Constants used by PHP.php const BASE = 31; const BASE_FULL = 0x80000000; const MAX_DIGIT = 0x7fffffff; const MSB = 0x40000000; /** * MAX10 in greatest MAX10LEN satisfying * MAX10 = 10**MAX10LEN <= 2**BASE. */ const MAX10 = 1000000000; /** * MAX10LEN in greatest MAX10LEN satisfying * MAX10 = 10**MAX10LEN <= 2**BASE. */ const MAX10LEN = 9; const MAX_DIGIT2 = 4611686018427387904; /** * Initialize a PHP64 BigInteger Engine instance * * @param int $base * @see parent::initialize() */ protected function initialize($base) { } /** * Test for engine validity * * @see parent::__construct() * @return bool */ public static function isValidEngine() { } /** * Adds two BigIntegers. * * @param PHP64 $y * @return PHP64 */ public function add(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $y) { } /** * Subtracts two BigIntegers. * * @param PHP64 $y * @return PHP64 */ public function subtract(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $y) { } /** * Multiplies two BigIntegers. * * @param PHP64 $y * @return PHP64 */ public function multiply(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $y) { } /** * Divides two BigIntegers. * * Returns an array whose first element contains the quotient and whose second element contains the * "common residue". If the remainder would be positive, the "common residue" and the remainder are the * same. If the remainder would be negative, the "common residue" is equal to the sum of the remainder * and the divisor (basically, the "common residue" is the first positive modulo). * * @param PHP64 $y * @return array{PHP64, PHP64} */ public function divide(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $y) { } /** * Calculates modular inverses. * * Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses. * @param PHP64 $n * @return false|PHP64 */ public function modInverse(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $n) { } /** * Calculates modular inverses. * * Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses. * @param PHP64 $n * @return PHP64[] */ public function extendedGCD(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $n) { } /** * Calculates the greatest common divisor * * Say you have 693 and 609. The GCD is 21. * * @param PHP64 $n * @return PHP64 */ public function gcd(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $n) { } /** * Logical And * * @param PHP64 $x * @return PHP64 */ public function bitwise_and(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $x) { } /** * Logical Or * * @param PHP64 $x * @return PHP64 */ public function bitwise_or(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $x) { } /** * Logical Exclusive Or * * @param PHP64 $x * @return PHP64 */ public function bitwise_xor(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $x) { } /** * Compares two numbers. * * Although one might think !$x->compare($y) means $x != $y, it, in fact, means the opposite. The reason for this is * demonstrated thusly: * * $x > $y: $x->compare($y) > 0 * $x < $y: $x->compare($y) < 0 * $x == $y: $x->compare($y) == 0 * * Note how the same comparison operator is used. If you want to test for equality, use $x->equals($y). * * {@internal Could return $this->subtract($x), but that's not as fast as what we do do.} * * @param PHP64 $y * @return int in case < 0 if $this is less than $y; > 0 if $this is greater than $y, and 0 if they are equal. * @see self::equals() */ public function compare(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $y) { } /** * Tests the equality of two numbers. * * If you need to see if one number is greater than or less than another number, use BigInteger::compare() * * @param PHP64 $x * @return bool */ public function equals(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $x) { } /** * Performs modular exponentiation. * * @param PHP64 $e * @param PHP64 $n * @return PHP64 */ public function modPow(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $n) { } /** * Performs modular exponentiation. * * Alias for modPow(). * * @param PHP64 $e * @param PHP64 $n * @return PHP64|false */ public function powMod(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $e, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $n) { } /** * Generate a random prime number between a range * * If there's not a prime within the given range, false will be returned. * * @param PHP64 $min * @param PHP64 $max * @return false|PHP64 */ public static function randomRangePrime(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $max) { } /** * Generate a random number between a range * * Returns a random number between $min and $max where $min and $max * can be defined using one of the two methods: * * BigInteger::randomRange($min, $max) * BigInteger::randomRange($max, $min) * * @param PHP64 $min * @param PHP64 $max * @return PHP64 */ public static function randomRange(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $max) { } /** * Performs exponentiation. * * @param PHP64 $n * @return PHP64 */ public function pow(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $n) { } /** * Return the minimum BigInteger between an arbitrary number of BigIntegers. * * @param PHP64 ...$nums * @return PHP64 */ public static function min(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 ...$nums) { } /** * Return the maximum BigInteger between an arbitrary number of BigIntegers. * * @param PHP64 ...$nums * @return PHP64 */ public static function max(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 ...$nums) { } /** * Tests BigInteger to see if it is between two integers, inclusive * * @param PHP64 $min * @param PHP64 $max * @return bool */ public function between(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $min, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64 $max) { } } } namespace ForminatorGoogleAddon\phpseclib3\Math\Common { /** * Finite Fields * * @author Jim Wigginton */ abstract class FiniteField { } } namespace ForminatorGoogleAddon\phpseclib3\Math { /** * Binary Finite Fields * * @author Jim Wigginton */ class BinaryField extends \ForminatorGoogleAddon\phpseclib3\Math\Common\FiniteField { /** * Instance Counter * * @var int */ private static $instanceCounter = 0; /** * Keeps track of current instance * * @var int */ protected $instanceID; /** @var BigInteger */ private $randomMax; /** * Default constructor */ public function __construct(...$indices) { } /** * Returns an instance of a dynamically generated PrimeFieldInteger class * * @param string $num * @return Integer */ public function newInteger($num) { } /** * Returns an integer on the finite field between one and the prime modulo * * @return Integer */ public function randomInteger() { } /** * Returns the length of the modulo in bytes * * @return int */ public function getLengthInBytes() { } /** * Returns the length of the modulo in bits * * @return int */ public function getLength() { } /** * Converts a base-2 string to a base-256 string * * @param string $x * @param int|null $size * @return string */ public static function base2ToBase256($x, $size = null) { } /** * Converts a base-256 string to a base-2 string * * @param string $x * @return string */ public static function base256ToBase2($x) { } } } namespace ForminatorGoogleAddon\phpseclib3\Math\Common\FiniteField { /** * Finite Field Integer * * @author Jim Wigginton */ abstract class Integer implements \JsonSerializable { /** * JSON Serialize * * Will be called, automatically, when json_encode() is called on a BigInteger object. * * PHP Serialize isn't supported because unserializing would require the factory be * serialized as well and that just sounds like too much * * @return array{hex: string} */ #[\ReturnTypeWillChange] public function jsonSerialize() { } /** * Converts an Integer to a hex string (eg. base-16). * * @return string */ abstract public function toHex(); } } namespace ForminatorGoogleAddon\phpseclib3\Math\BinaryField { /** * Binary Finite Fields * * @author Jim Wigginton */ class Integer extends \ForminatorGoogleAddon\phpseclib3\Math\Common\FiniteField\Integer { /** * Holds the BinaryField's value * * @var string */ protected $value; /** * Keeps track of current instance * * @var int */ protected $instanceID; /** * Holds the PrimeField's modulo * * @var array */ protected static $modulo; /** * Holds a pre-generated function to perform modulo reductions * * @var callable[] */ protected static $reduce; /** * Default constructor */ public function __construct($instanceID, $num = '') { } /** * Set the modulo for a given instance * @param int $instanceID * @param string $modulo */ public static function setModulo($instanceID, $modulo) { } /** * Set the modulo for a given instance */ public static function setRecurringModuloFunction($instanceID, callable $function) { } /** * Tests a parameter to see if it's of the right instance * * Throws an exception if the incorrect class is being utilized */ private static function checkInstance(self $x, self $y) { } /** * Tests the equality of two numbers. * * @return bool */ public function equals(self $x) { } /** * Compares two numbers. * * @return int */ public function compare(self $x) { } /** * Returns the degree of the polynomial * * @param string $x * @return int */ private static function deg($x) { } /** * Perform polynomial division * * @return string[] * @link https://en.wikipedia.org/wiki/Polynomial_greatest_common_divisor#Euclidean_division */ private static function polynomialDivide($x, $y) { } /** * Perform polynomial multiplation in the traditional way * * @return string * @link https://en.wikipedia.org/wiki/Finite_field_arithmetic#Multiplication */ private static function regularPolynomialMultiply($x, $y) { } /** * Perform polynomial multiplation * * Uses karatsuba multiplication to reduce x-bit multiplications to a series of 32-bit multiplications * * @return string * @link https://en.wikipedia.org/wiki/Karatsuba_algorithm */ private static function polynomialMultiply($x, $y) { } /** * Perform polynomial multiplication on 2x 32-bit numbers, returning * a 64-bit number * * @param string $x * @param string $y * @return string * @link https://www.bearssl.org/constanttime.html#ghash-for-gcm */ private static function subMultiply($x, $y) { } /** * Adds two numbers * * @param string $x * @param string $y * @return string */ private static function subAdd2($x, $y) { } /** * Adds three numbers * * @param string $x * @param string $y * @return string */ private static function subAdd3($x, $y, $z) { } /** * Adds two BinaryFieldIntegers. * * @return static */ public function add(self $y) { } /** * Subtracts two BinaryFieldIntegers. * * @return static */ public function subtract(self $x) { } /** * Multiplies two BinaryFieldIntegers. * * @return static */ public function multiply(self $y) { } /** * Returns the modular inverse of a BinaryFieldInteger * * @return static */ public function modInverse() { } /** * Divides two PrimeFieldIntegers. * * @return static */ public function divide(self $x) { } /** * Negate * * A negative number can be written as 0-12. With modulos, 0 is the same thing as the modulo * so 0-12 is the same thing as modulo-12 * * @return object */ public function negate() { } /** * Returns the modulo * * @return string */ public static function getModulo($instanceID) { } /** * Converts an Integer to a byte string (eg. base-256). * * @return string */ public function toBytes() { } /** * Converts an Integer to a hex string (eg. base-16). * * @return string */ public function toHex() { } /** * Converts an Integer to a bit string (eg. base-2). * * @return string */ public function toBits() { } /** * Converts an Integer to a BigInteger * * @return string */ public function toBigInteger() { } /** * __toString() magic method * */ public function __toString() { } /** * __debugInfo() magic method * */ public function __debugInfo() { } } } namespace ForminatorGoogleAddon\phpseclib3\Math { /** * Prime Finite Fields * * @author Jim Wigginton */ class PrimeField extends \ForminatorGoogleAddon\phpseclib3\Math\Common\FiniteField { /** * Instance Counter * * @var int */ private static $instanceCounter = 0; /** * Keeps track of current instance * * @var int */ protected $instanceID; /** * Default constructor */ public function __construct(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $modulo) { } /** * Use a custom defined modular reduction function * * @return void */ public function setReduction(\Closure $func) { } /** * Returns an instance of a dynamically generated PrimeFieldInteger class * * @return Integer */ public function newInteger(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $num) { } /** * Returns an integer on the finite field between one and the prime modulo * * @return Integer */ public function randomInteger() { } /** * Returns the length of the modulo in bytes * * @return int */ public function getLengthInBytes() { } /** * Returns the length of the modulo in bits * * @return int */ public function getLength() { } /** * Destructor */ public function __destruct() { } } } namespace ForminatorGoogleAddon\phpseclib3\Math\PrimeField { /** * Prime Finite Fields * * @author Jim Wigginton */ class Integer extends \ForminatorGoogleAddon\phpseclib3\Math\Common\FiniteField\Integer { /** * Holds the PrimeField's value * * @var BigInteger */ protected $value; /** * Keeps track of current instance * * @var int */ protected $instanceID; /** * Holds the PrimeField's modulo * * @var array */ protected static $modulo; /** * Holds a pre-generated function to perform modulo reductions * * @var array */ protected static $reduce; /** * Zero * * @var BigInteger */ protected static $zero; /** * Default constructor * * @param int $instanceID */ public function __construct($instanceID, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $num = null) { } /** * Set the modulo for a given instance * * @param int $instanceID * @return void */ public static function setModulo($instanceID, \ForminatorGoogleAddon\phpseclib3\Math\BigInteger $modulo) { } /** * Set the modulo for a given instance * * @param int $instanceID * @return void */ public static function setRecurringModuloFunction($instanceID, callable $function) { } /** * Delete the modulo for a given instance */ public static function cleanupCache($instanceID) { } /** * Returns the modulo * * @param int $instanceID * @return BigInteger */ public static function getModulo($instanceID) { } /** * Tests a parameter to see if it's of the right instance * * Throws an exception if the incorrect class is being utilized * * @return void */ public static function checkInstance(self $x, self $y) { } /** * Tests the equality of two numbers. * * @return bool */ public function equals(self $x) { } /** * Compares two numbers. * * @return int */ public function compare(self $x) { } /** * Adds two PrimeFieldIntegers. * * @return static */ public function add(self $x) { } /** * Subtracts two PrimeFieldIntegers. * * @return static */ public function subtract(self $x) { } /** * Multiplies two PrimeFieldIntegers. * * @return static */ public function multiply(self $x) { } /** * Divides two PrimeFieldIntegers. * * @return static */ public function divide(self $x) { } /** * Performs power operation on a PrimeFieldInteger. * * @return static */ public function pow(\ForminatorGoogleAddon\phpseclib3\Math\BigInteger $x) { } /** * Calculates the square root * * @link https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm * @return static|false */ public function squareRoot() { } /** * Is Odd? * * @return bool */ public function isOdd() { } /** * Negate * * A negative number can be written as 0-12. With modulos, 0 is the same thing as the modulo * so 0-12 is the same thing as modulo-12 * * @return static */ public function negate() { } /** * Converts an Integer to a byte string (eg. base-256). * * @return string */ public function toBytes() { } /** * Converts an Integer to a hex string (eg. base-16). * * @return string */ public function toHex() { } /** * Converts an Integer to a bit string (eg. base-2). * * @return string */ public function toBits() { } /** * Returns the w-ary non-adjacent form (wNAF) * * @param int $w optional * @return array */ public function getNAF($w = 1) { } /** * Converts an Integer to a BigInteger * * @return BigInteger */ public function toBigInteger() { } /** * __toString() magic method * * @return string */ public function __toString() { } /** * __debugInfo() magic method * * @return array */ public function __debugInfo() { } } } namespace ForminatorGoogleAddon\phpseclib3\Net { /** * Pure-PHP implementation of SSHv2. * * @author Jim Wigginton */ class SSH2 { /**#@+ * Compression Types * */ /** * No compression */ const NET_SSH2_COMPRESSION_NONE = 1; /** * zlib compression */ const NET_SSH2_COMPRESSION_ZLIB = 2; /** * zlib@openssh.com */ const NET_SSH2_COMPRESSION_ZLIB_AT_OPENSSH = 3; /**#@-*/ // Execution Bitmap Masks const MASK_CONSTRUCTOR = 0x1; const MASK_CONNECTED = 0x2; const MASK_LOGIN_REQ = 0x4; const MASK_LOGIN = 0x8; const MASK_SHELL = 0x10; const MASK_DISCONNECT = 0x20; /* * Channel constants * * RFC4254 refers not to client and server channels but rather to sender and recipient channels. we don't refer * to them in that way because RFC4254 toggles the meaning. the client sends a SSH_MSG_CHANNEL_OPEN message with * a sender channel and the server sends a SSH_MSG_CHANNEL_OPEN_CONFIRMATION in response, with a sender and a * recipient channel. at first glance, you might conclude that SSH_MSG_CHANNEL_OPEN_CONFIRMATION's sender channel * would be the same thing as SSH_MSG_CHANNEL_OPEN's sender channel, but it's not, per this snippet: * The 'recipient channel' is the channel number given in the original * open request, and 'sender channel' is the channel number allocated by * the other side. * * @see \phpseclib3\Net\SSH2::send_channel_packet() * @see \phpseclib3\Net\SSH2::get_channel_packet() */ const CHANNEL_EXEC = 1; // PuTTy uses 0x100 const CHANNEL_SHELL = 2; const CHANNEL_SUBSYSTEM = 3; const CHANNEL_AGENT_FORWARD = 4; const CHANNEL_KEEP_ALIVE = 5; /** * Returns the message numbers * * @see \phpseclib3\Net\SSH2::getLog() */ const LOG_SIMPLE = 1; /** * Returns the message content * * @see \phpseclib3\Net\SSH2::getLog() */ const LOG_COMPLEX = 2; /** * Outputs the content real-time */ const LOG_REALTIME = 3; /** * Dumps the content real-time to a file */ const LOG_REALTIME_FILE = 4; /** * Outputs the message numbers real-time */ const LOG_SIMPLE_REALTIME = 5; /** * Make sure that the log never gets larger than this * * @see \phpseclib3\Net\SSH2::getLog() */ const LOG_MAX_SIZE = 1048576; // 1024 * 1024 /** * Returns when a string matching $expect exactly is found * * @see \phpseclib3\Net\SSH2::read() */ const READ_SIMPLE = 1; /** * Returns when a string matching the regular expression $expect is found * * @see \phpseclib3\Net\SSH2::read() */ const READ_REGEX = 2; /** * Returns whenever a data packet is received. * * Some data packets may only contain a single character so it may be necessary * to call read() multiple times when using this option * * @see \phpseclib3\Net\SSH2::read() */ const READ_NEXT = 3; /** * The SSH identifier * * @var string */ private $identifier; /** * The Socket Object * * @var resource|closed-resource|null */ public $fsock; /** * Execution Bitmap * * The bits that are set represent functions that have been called already. This is used to determine * if a requisite function has been successfully executed. If not, an error should be thrown. * * @var int */ protected $bitmap = 0; /** * Error information * * @see self::getErrors() * @see self::getLastError() * @var array */ private $errors = []; /** * Server Identifier * * @see self::getServerIdentification() * @var string|false */ protected $server_identifier = \false; /** * Key Exchange Algorithms * * @see self::getKexAlgorithims() * @var array|false */ private $kex_algorithms = \false; /** * Key Exchange Algorithm * * @see self::getMethodsNegotiated() * @var string|false */ private $kex_algorithm = \false; /** * Minimum Diffie-Hellman Group Bit Size in RFC 4419 Key Exchange Methods * * @see self::_key_exchange() * @var int */ private $kex_dh_group_size_min = 1536; /** * Preferred Diffie-Hellman Group Bit Size in RFC 4419 Key Exchange Methods * * @see self::_key_exchange() * @var int */ private $kex_dh_group_size_preferred = 2048; /** * Maximum Diffie-Hellman Group Bit Size in RFC 4419 Key Exchange Methods * * @see self::_key_exchange() * @var int */ private $kex_dh_group_size_max = 4096; /** * Server Host Key Algorithms * * @see self::getServerHostKeyAlgorithms() * @var array|false */ private $server_host_key_algorithms = \false; /** * Supported Private Key Algorithms * * In theory this should be the same as the Server Host Key Algorithms but, in practice, * some servers (eg. Azure) will support rsa-sha2-512 as a server host key algorithm but * not a private key algorithm * * @see self::privatekey_login() * @var array|false */ private $supported_private_key_algorithms = \false; /** * Encryption Algorithms: Client to Server * * @see self::getEncryptionAlgorithmsClient2Server() * @var array|false */ private $encryption_algorithms_client_to_server = \false; /** * Encryption Algorithms: Server to Client * * @see self::getEncryptionAlgorithmsServer2Client() * @var array|false */ private $encryption_algorithms_server_to_client = \false; /** * MAC Algorithms: Client to Server * * @see self::getMACAlgorithmsClient2Server() * @var array|false */ private $mac_algorithms_client_to_server = \false; /** * MAC Algorithms: Server to Client * * @see self::getMACAlgorithmsServer2Client() * @var array|false */ private $mac_algorithms_server_to_client = \false; /** * Compression Algorithms: Client to Server * * @see self::getCompressionAlgorithmsClient2Server() * @var array|false */ private $compression_algorithms_client_to_server = \false; /** * Compression Algorithms: Server to Client * * @see self::getCompressionAlgorithmsServer2Client() * @var array|false */ private $compression_algorithms_server_to_client = \false; /** * Languages: Server to Client * * @see self::getLanguagesServer2Client() * @var array|false */ private $languages_server_to_client = \false; /** * Languages: Client to Server * * @see self::getLanguagesClient2Server() * @var array|false */ private $languages_client_to_server = \false; /** * Preferred Algorithms * * @see self::setPreferredAlgorithms() * @var array */ private $preferred = []; /** * Block Size for Server to Client Encryption * * "Note that the length of the concatenation of 'packet_length', * 'padding_length', 'payload', and 'random padding' MUST be a multiple * of the cipher block size or 8, whichever is larger. This constraint * MUST be enforced, even when using stream ciphers." * * -- http://tools.ietf.org/html/rfc4253#section-6 * * @see self::__construct() * @see self::_send_binary_packet() * @var int */ private $encrypt_block_size = 8; /** * Block Size for Client to Server Encryption * * @see self::__construct() * @see self::_get_binary_packet() * @var int */ private $decrypt_block_size = 8; /** * Server to Client Encryption Object * * @see self::_get_binary_packet() * @var SymmetricKey|false */ private $decrypt = \false; /** * Decryption Algorithm Name * * @var string|null */ private $decryptName; /** * Decryption Invocation Counter * * Used by GCM * * @var string|null */ private $decryptInvocationCounter; /** * Fixed Part of Nonce * * Used by GCM * * @var string|null */ private $decryptFixedPart; /** * Server to Client Length Encryption Object * * @see self::_get_binary_packet() * @var object */ private $lengthDecrypt = \false; /** * Client to Server Encryption Object * * @see self::_send_binary_packet() * @var SymmetricKey|false */ private $encrypt = \false; /** * Encryption Algorithm Name * * @var string|null */ private $encryptName; /** * Encryption Invocation Counter * * Used by GCM * * @var string|null */ private $encryptInvocationCounter; /** * Fixed Part of Nonce * * Used by GCM * * @var string|null */ private $encryptFixedPart; /** * Client to Server Length Encryption Object * * @see self::_send_binary_packet() * @var object */ private $lengthEncrypt = \false; /** * Client to Server HMAC Object * * @see self::_send_binary_packet() * @var object */ private $hmac_create = \false; /** * Client to Server HMAC Name * * @var string|false */ private $hmac_create_name; /** * Client to Server ETM * * @var int|false */ private $hmac_create_etm; /** * Server to Client HMAC Object * * @see self::_get_binary_packet() * @var object */ private $hmac_check = \false; /** * Server to Client HMAC Name * * @var string|false */ private $hmac_check_name; /** * Server to Client ETM * * @var int|false */ private $hmac_check_etm; /** * Size of server to client HMAC * * We need to know how big the HMAC will be for the server to client direction so that we know how many bytes to read. * For the client to server side, the HMAC object will make the HMAC as long as it needs to be. All we need to do is * append it. * * @see self::_get_binary_packet() * @var int */ private $hmac_size = \false; /** * Server Public Host Key * * @see self::getServerPublicHostKey() * @var string */ private $server_public_host_key; /** * Session identifier * * "The exchange hash H from the first key exchange is additionally * used as the session identifier, which is a unique identifier for * this connection." * * -- http://tools.ietf.org/html/rfc4253#section-7.2 * * @see self::_key_exchange() * @var string */ private $session_id = \false; /** * Exchange hash * * The current exchange hash * * @see self::_key_exchange() * @var string */ private $exchange_hash = \false; /** * Message Numbers * * @see self::__construct() * @var array * @access private */ private static $message_numbers = []; /** * Disconnection Message 'reason codes' defined in RFC4253 * * @see self::__construct() * @var array * @access private */ private static $disconnect_reasons = []; /** * SSH_MSG_CHANNEL_OPEN_FAILURE 'reason codes', defined in RFC4254 * * @see self::__construct() * @var array * @access private */ private static $channel_open_failure_reasons = []; /** * Terminal Modes * * @link http://tools.ietf.org/html/rfc4254#section-8 * @see self::__construct() * @var array * @access private */ private static $terminal_modes = []; /** * SSH_MSG_CHANNEL_EXTENDED_DATA's data_type_codes * * @link http://tools.ietf.org/html/rfc4254#section-5.2 * @see self::__construct() * @var array * @access private */ private static $channel_extended_data_type_codes = []; /** * Send Sequence Number * * See 'Section 6.4. Data Integrity' of rfc4253 for more info. * * @see self::_send_binary_packet() * @var int */ private $send_seq_no = 0; /** * Get Sequence Number * * See 'Section 6.4. Data Integrity' of rfc4253 for more info. * * @see self::_get_binary_packet() * @var int */ private $get_seq_no = 0; /** * Server Channels * * Maps client channels to server channels * * @see self::get_channel_packet() * @see self::exec() * @var array */ protected $server_channels = []; /** * Channel Read Buffers * * If a client requests a packet from one channel but receives two packets from another those packets should * be placed in a buffer * * @see self::get_channel_packet() * @see self::exec() * @var array */ private $channel_buffers = []; /** * Channel Write Buffers * * If a client sends a packet and receives a timeout error mid-transmission, buffer the data written so it * can be de-duplicated upon resuming write * * @see self::send_channel_packet() * @var array */ private $channel_buffers_write = []; /** * Channel Status * * Contains the type of the last sent message * * @see self::get_channel_packet() * @var array */ protected $channel_status = []; /** * The identifier of the interactive channel which was opened most recently * * @see self::getInteractiveChannelId() * @var int */ private $channel_id_last_interactive = 0; /** * Packet Size * * Maximum packet size indexed by channel * * @see self::send_channel_packet() * @var array */ private $packet_size_client_to_server = []; /** * Message Number Log * * @see self::getLog() * @var array */ private $message_number_log = []; /** * Message Log * * @see self::getLog() * @var array */ private $message_log = []; /** * The Window Size * * Bytes the other party can send before it must wait for the window to be adjusted (0x7FFFFFFF = 2GB) * * @var int * @see self::send_channel_packet() * @see self::exec() */ protected $window_size = 0x7fffffff; /** * What we resize the window to * * When PuTTY resizes the window it doesn't add an additional 0x7FFFFFFF bytes - it adds 0x40000000 bytes. * Some SFTP clients (GoAnywhere) don't support adding 0x7FFFFFFF to the window size after the fact so * we'll just do what PuTTY does * * @var int * @see self::_send_channel_packet() * @see self::exec() */ private $window_resize = 0x40000000; /** * Window size, server to client * * Window size indexed by channel * * @see self::send_channel_packet() * @var array */ protected $window_size_server_to_client = []; /** * Window size, client to server * * Window size indexed by channel * * @see self::get_channel_packet() * @var array */ private $window_size_client_to_server = []; /** * Server signature * * Verified against $this->session_id * * @see self::getServerPublicHostKey() * @var string */ private $signature = ''; /** * Server signature format * * ssh-rsa or ssh-dss. * * @see self::getServerPublicHostKey() * @var string */ private $signature_format = ''; /** * Interactive Buffer * * @see self::read() * @var string */ private $interactiveBuffer = ''; /** * Current log size * * Should never exceed self::LOG_MAX_SIZE * * @see self::_send_binary_packet() * @see self::_get_binary_packet() * @var int */ private $log_size; /** * Timeout * * @see self::setTimeout() */ protected $timeout; /** * Current Timeout * * @see self::get_channel_packet() */ protected $curTimeout; /** * Keep Alive Interval * * @see self::setKeepAlive() */ private $keepAlive; /** * Real-time log file pointer * * @see self::_append_log() * @var resource|closed-resource */ private $realtime_log_file; /** * Real-time log file size * * @see self::_append_log() * @var int */ private $realtime_log_size; /** * Has the signature been validated? * * @see self::getServerPublicHostKey() * @var bool */ private $signature_validated = \false; /** * Real-time log file wrap boolean * * @see self::_append_log() * @var bool */ private $realtime_log_wrap; /** * Flag to suppress stderr from output * * @see self::enableQuietMode() */ private $quiet_mode = \false; /** * Time of last read/write network activity * * @var float */ private $last_packet = null; /** * Exit status returned from ssh if any * * @var int */ private $exit_status; /** * Flag to request a PTY when using exec() * * @var bool * @see self::enablePTY() */ private $request_pty = \false; /** * Contents of stdError * * @var string */ private $stdErrorLog; /** * The Last Interactive Response * * @see self::_keyboard_interactive_process() * @var string */ private $last_interactive_response = ''; /** * Keyboard Interactive Request / Responses * * @see self::_keyboard_interactive_process() * @var array */ private $keyboard_requests_responses = []; /** * Banner Message * * Quoting from the RFC, "in some jurisdictions, sending a warning message before * authentication may be relevant for getting legal protection." * * @see self::_filter() * @see self::getBannerMessage() * @var string */ private $banner_message = ''; /** * Did read() timeout or return normally? * * @see self::isTimeout() * @var bool */ protected $is_timeout = \false; /** * Log Boundary * * @see self::_format_log() * @var string */ private $log_boundary = ':'; /** * Log Long Width * * @see self::_format_log() * @var int */ private $log_long_width = 65; /** * Log Short Width * * @see self::_format_log() * @var int */ private $log_short_width = 16; /** * Hostname * * @see self::__construct() * @see self::_connect() * @var string */ private $host; /** * Port Number * * @see self::__construct() * @see self::_connect() * @var int */ private $port; /** * Number of columns for terminal window size * * @see self::getWindowColumns() * @see self::setWindowColumns() * @see self::setWindowSize() * @var int */ private $windowColumns = 80; /** * Number of columns for terminal window size * * @see self::getWindowRows() * @see self::setWindowRows() * @see self::setWindowSize() * @var int */ private $windowRows = 24; /** * Crypto Engine * * @see self::setCryptoEngine() * @see self::_key_exchange() * @var int */ private static $crypto_engine = \false; /** * A System_SSH_Agent for use in the SSH2 Agent Forwarding scenario * * @var Agent */ private $agent; /** * Connection storage to replicates ssh2 extension functionality: * {@link http://php.net/manual/en/wrappers.ssh2.php#refsect1-wrappers.ssh2-examples} * * @var array> */ private static $connections; /** * Send the identification string first? * * @var bool */ private $send_id_string_first = \true; /** * Send the key exchange initiation packet first? * * @var bool */ private $send_kex_first = \true; /** * Some versions of OpenSSH incorrectly calculate the key size * * @var bool */ private $bad_key_size_fix = \false; /** * Should we try to re-connect to re-establish keys? * * @var bool */ private $login_credentials_finalized = \false; /** * Binary Packet Buffer * * @var object|null */ private $binary_packet_buffer = null; /** * Preferred Signature Format * * @var string|false */ protected $preferred_signature_format = \false; /** * Authentication Credentials * * @var array */ protected $auth = []; /** * Terminal * * @var string */ private $term = 'vt100'; /** * The authentication methods that may productively continue authentication. * * @see https://tools.ietf.org/html/rfc4252#section-5.1 * @var array|null */ private $auth_methods_to_continue = null; /** * Compression method * * @var int */ private $compress = self::NET_SSH2_COMPRESSION_NONE; /** * Decompression method * * @var int */ private $decompress = self::NET_SSH2_COMPRESSION_NONE; /** * Compression context * * @var resource|false|null */ private $compress_context; /** * Decompression context * * @var resource|object */ private $decompress_context; /** * Regenerate Compression Context * * @var bool */ private $regenerate_compression_context = \false; /** * Regenerate Decompression Context * * @var bool */ private $regenerate_decompression_context = \false; /** * Smart multi-factor authentication flag * * @var bool */ private $smartMFA = \true; /** * How many channels are currently opened * * @var int */ private $channelCount = 0; /** * Does the server support multiple channels? If not then error out * when multiple channels are attempted to be opened * * @var bool */ private $errorOnMultipleChannels; /** * Terrapin Countermeasure * * "During initial KEX, terminate the connection if any unexpected or out-of-sequence packet is received" * -- https://github.com/openssh/openssh-portable/commit/1edb00c58f8a6875fad6a497aa2bacf37f9e6cd5 * * @var int */ private $extra_packets; /** * Default Constructor. * * $host can either be a string, representing the host, or a stream resource. * If $host is a stream resource then $port doesn't do anything, altho $timeout * still will be used * * @param mixed $host * @param int $port * @param int $timeout * @see self::login() */ public function __construct($host, $port = 22, $timeout = 10) { } /** * Set Crypto Engine Mode * * Possible $engine values: * OpenSSL, mcrypt, Eval, PHP * * @param int $engine */ public static function setCryptoEngine($engine) { } /** * Send Identification String First * * https://tools.ietf.org/html/rfc4253#section-4.2 says "when the connection has been established, * both sides MUST send an identification string". It does not say which side sends it first. In * theory it shouldn't matter but it is a fact of life that some SSH servers are simply buggy * */ public function sendIdentificationStringFirst() { } /** * Send Identification String Last * * https://tools.ietf.org/html/rfc4253#section-4.2 says "when the connection has been established, * both sides MUST send an identification string". It does not say which side sends it first. In * theory it shouldn't matter but it is a fact of life that some SSH servers are simply buggy * */ public function sendIdentificationStringLast() { } /** * Send SSH_MSG_KEXINIT First * * https://tools.ietf.org/html/rfc4253#section-7.1 says "key exchange begins by each sending * sending the [SSH_MSG_KEXINIT] packet". It does not say which side sends it first. In theory * it shouldn't matter but it is a fact of life that some SSH servers are simply buggy * */ public function sendKEXINITFirst() { } /** * Send SSH_MSG_KEXINIT Last * * https://tools.ietf.org/html/rfc4253#section-7.1 says "key exchange begins by each sending * sending the [SSH_MSG_KEXINIT] packet". It does not say which side sends it first. In theory * it shouldn't matter but it is a fact of life that some SSH servers are simply buggy * */ public function sendKEXINITLast() { } /** * stream_select wrapper * * Quoting https://stackoverflow.com/a/14262151/569976, * "The general approach to `EINTR` is to simply handle the error and retry the operation again" * * This wrapper does that loop */ private static function stream_select(&$read, &$write, &$except, $seconds, $microseconds = null) { } /** * Connect to an SSHv2 server * * @throws \UnexpectedValueException on receipt of unexpected packets * @throws \RuntimeException on other errors */ private function connect() { } /** * Generates the SSH identifier * * You should overwrite this method in your own class if you want to use another identifier * * @return string */ private function generate_identifier() { } /** * Key Exchange * * @return bool * @param string|bool $kexinit_payload_server optional * @throws \UnexpectedValueException on receipt of unexpected packets * @throws \RuntimeException on other errors * @throws NoSupportedAlgorithmsException when none of the algorithms phpseclib has loaded are compatible */ private function key_exchange($kexinit_payload_server = \false) { } /** * Maps an encryption algorithm name to the number of key bytes. * * @param string $algorithm Name of the encryption algorithm * @return int|null Number of bytes as an integer or null for unknown */ private function encryption_algorithm_to_key_size($algorithm) { } /** * Maps an encryption algorithm name to an instance of a subclass of * \phpseclib3\Crypt\Common\SymmetricKey. * * @param string $algorithm Name of the encryption algorithm * @return SymmetricKey|null */ private static function encryption_algorithm_to_crypt_instance($algorithm) { } /** * Maps an encryption algorithm name to an instance of a subclass of * \phpseclib3\Crypt\Hash. * * @param string $algorithm Name of the encryption algorithm * @return array{Hash, int}|null */ private static function mac_algorithm_to_hash_instance($algorithm) { } /** * Tests whether or not proposed algorithm has a potential for issues * * @link https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/ssh2-aesctr-openssh.html * @link https://bugzilla.mindrot.org/show_bug.cgi?id=1291 * @param string $algorithm Name of the encryption algorithm * @return bool */ private static function bad_algorithm_candidate($algorithm) { } /** * Login * * The $password parameter can be a plaintext password, a \phpseclib3\Crypt\RSA|EC|DSA object, a \phpseclib3\System\SSH\Agent object or an array * * @param string $username * @param string|PrivateKey|array[]|Agent|null ...$args * @return bool * @see self::_login() */ public function login($username, ...$args) { } /** * Login Helper * * @param string $username * @param string|PrivateKey|array[]|Agent|null ...$args * @return bool * @see self::_login_helper() */ protected function sublogin($username, ...$args) { } /** * Login Helper * * {@internal It might be worthwhile, at some point, to protect against {@link http://tools.ietf.org/html/rfc4251#section-9.3.9 traffic analysis} * by sending dummy SSH_MSG_IGNORE messages.} * * @param string $username * @param string|AsymmetricKey|array[]|Agent|null ...$args * @return bool * @throws \UnexpectedValueException on receipt of unexpected packets * @throws \RuntimeException on other errors */ private function login_helper($username, $password = null) { } /** * Login via keyboard-interactive authentication * * See {@link http://tools.ietf.org/html/rfc4256 RFC4256} for details. This is not a full-featured keyboard-interactive authenticator. * * @param string $username * @param string|array $password * @return bool */ private function keyboard_interactive_login($username, $password) { } /** * Handle the keyboard-interactive requests / responses. * * @param string|array ...$responses * @return bool * @throws \RuntimeException on connection error */ private function keyboard_interactive_process(...$responses) { } /** * Login with an ssh-agent provided key * * @param string $username * @param Agent $agent * @return bool */ private function ssh_agent_login($username, \ForminatorGoogleAddon\phpseclib3\System\SSH\Agent $agent) { } /** * Login with an RSA private key * * {@internal It might be worthwhile, at some point, to protect against {@link http://tools.ietf.org/html/rfc4251#section-9.3.9 traffic analysis} * by sending dummy SSH_MSG_IGNORE messages.} * * @param string $username * @param PrivateKey $privatekey * @return bool * @throws \RuntimeException on connection error */ private function privatekey_login($username, \ForminatorGoogleAddon\phpseclib3\Crypt\Common\PrivateKey $privatekey) { } /** * Return the currently configured timeout * * @return int */ public function getTimeout() { } /** * Set Timeout * * $ssh->exec('ping 127.0.0.1'); on a Linux host will never return and will run indefinitely. setTimeout() makes it so it'll timeout. * Setting $timeout to false or 0 will revert to the default socket timeout. * * @param mixed $timeout */ public function setTimeout($timeout) { } /** * Set Keep Alive * * Sends an SSH2_MSG_IGNORE message every x seconds, if x is a positive non-zero number. * * @param int $interval */ public function setKeepAlive($interval) { } /** * Get the output from stdError * */ public function getStdError() { } /** * Execute Command * * If $callback is set to false then \phpseclib3\Net\SSH2::get_channel_packet(self::CHANNEL_EXEC) will need to be called manually. * In all likelihood, this is not a feature you want to be taking advantage of. * * @param string $command * @return string|bool * @psalm-return ($callback is callable ? bool : string|bool) * @throws \RuntimeException on connection error */ public function exec($command, callable $callback = null) { } /** * How many channels are currently open? * * @return int */ public function getOpenChannelCount() { } /** * Opens a channel * * @param string $channel * @param bool $skip_extended * @return bool */ protected function open_channel($channel, $skip_extended = \false) { } /** * Creates an interactive shell * * Returns bool(true) if the shell was opened. * Returns bool(false) if the shell was already open. * * @see self::isShellOpen() * @see self::read() * @see self::write() * @return bool * @throws InsufficientSetupException if not authenticated * @throws \UnexpectedValueException on receipt of unexpected packets * @throws \RuntimeException on other errors */ public function openShell() { } /** * Return the channel to be used with read(), write(), and reset(), if none were specified * @deprecated for lack of transparency in intended channel target, to be potentially replaced * with method which guarantees open-ness of all yielded channels and throws * error for multiple open channels * @see self::read() * @see self::write() * @return int */ private function get_interactive_channel() { } /** * Indicates the DATA status on the given channel * * @param int $channel The channel number to evaluate * @return bool */ private function is_channel_status_data($channel) { } /** * Return an available open channel * * @return int */ private function get_open_channel() { } /** * Request agent forwarding of remote server * * @return bool */ public function requestAgentForwarding() { } /** * Returns the output of an interactive shell * * Returns when there's a match for $expect, which can take the form of a string literal or, * if $mode == self::READ_REGEX, a regular expression. * * If not specifying a channel, an open interactive channel will be selected, or, if there are * no open channels, an interactive shell will be created. If there are multiple open * interactive channels, a legacy behavior will apply in which channel selection prioritizes * an active subsystem, the exec pty, and, lastly, the shell. If using multiple interactive * channels, callers are discouraged from relying on this legacy behavior and should specify * the intended channel. * * @see self::write() * @param string $expect * @param int $mode One of the self::READ_* constants * @param int|null $channel Channel id returned by self::getInteractiveChannelId() * @return string|bool|null * @throws \RuntimeException on connection error * @throws InsufficientSetupException on unexpected channel status, possibly due to closure */ public function read($expect = '', $mode = self::READ_SIMPLE, $channel = null) { } /** * Inputs a command into an interactive shell. * * If not specifying a channel, an open interactive channel will be selected, or, if there are * no open channels, an interactive shell will be created. If there are multiple open * interactive channels, a legacy behavior will apply in which channel selection prioritizes * an active subsystem, the exec pty, and, lastly, the shell. If using multiple interactive * channels, callers are discouraged from relying on this legacy behavior and should specify * the intended channel. * * @see SSH2::read() * @param string $cmd * @param int|null $channel Channel id returned by self::getInteractiveChannelId() * @return void * @throws \RuntimeException on connection error * @throws InsufficientSetupException on unexpected channel status, possibly due to closure * @throws TimeoutException if the write could not be completed within the requested self::setTimeout() */ public function write($cmd, $channel = null) { } /** * Start a subsystem. * * Right now only one subsystem at a time is supported. To support multiple subsystem's stopSubsystem() could accept * a string that contained the name of the subsystem, but at that point, only one subsystem of each type could be opened. * To support multiple subsystem's of the same name maybe it'd be best if startSubsystem() generated a new channel id and * returns that and then that that was passed into stopSubsystem() but that'll be saved for a future date and implemented * if there's sufficient demand for such a feature. * * @see self::stopSubsystem() * @param string $subsystem * @return bool */ public function startSubsystem($subsystem) { } /** * Stops a subsystem. * * @see self::startSubsystem() * @return bool */ public function stopSubsystem() { } /** * Closes a channel * * If read() timed out you might want to just close the channel and have it auto-restart on the next read() call * * If not specifying a channel, an open interactive channel will be selected. If there are * multiple open interactive channels, a legacy behavior will apply in which channel selection * prioritizes an active subsystem, the exec pty, and, lastly, the shell. If using multiple * interactive channels, callers are discouraged from relying on this legacy behavior and * should specify the intended channel. * * @param int|null $channel Channel id returned by self::getInteractiveChannelId() * @return void */ public function reset($channel = null) { } /** * Is timeout? * * Did exec() or read() return because they timed out or because they encountered the end? * */ public function isTimeout() { } /** * Disconnect * */ public function disconnect() { } /** * Destructor. * * Will be called, automatically, if you're supporting just PHP5. If you're supporting PHP4, you'll need to call * disconnect(). * */ public function __destruct() { } /** * Is the connection still active? * * $level has 3x possible values: * 0 (default): phpseclib takes a passive approach to see if the connection is still active by calling feof() * on the socket * 1: phpseclib takes an active approach to see if the connection is still active by sending an SSH_MSG_IGNORE * packet that doesn't require a response * 2: phpseclib takes an active approach to see if the connection is still active by sending an SSH_MSG_CHANNEL_OPEN * packet and imediately trying to close that channel. some routers, in particular, however, will only let you * open one channel, so this approach could yield false positives * * @param int $level * @return bool */ public function isConnected($level = 0) { } /** * Have you successfully been logged in? * * @return bool */ public function isAuthenticated() { } /** * Is the interactive shell active? * * @return bool */ public function isShellOpen() { } /** * Is the exec pty active? * * @return bool */ public function isPTYOpen() { } /** * Is the given interactive channel active? * * @param int $channel Channel id returned by self::getInteractiveChannelId() * @return bool */ public function isInteractiveChannelOpen($channel) { } /** * Returns a channel identifier, presently of the last interactive channel opened, regardless of current status. * Returns 0 if no interactive channel has been opened. * * @see self::isInteractiveChannelOpen() * @return int */ public function getInteractiveChannelId() { } /** * Pings a server connection, or tries to reconnect if the connection has gone down * * Inspired by http://php.net/manual/en/mysqli.ping.php * * @return bool */ public function ping() { } /** * In situ reconnect method * * @return boolean */ private function reconnect() { } /** * Resets a connection for re-use */ protected function reset_connection() { } /** * @return int[] second and microsecond stream timeout options based on user-requested timeout and keep-alive, or the default socket timeout by default, which mirrors PHP socket streams. */ private function get_stream_timeout() { } /** * Retrieves the next packet with added timeout and type handling * * @param string $message_types Message types to enforce in response, closing if not met * @return string * @throws ConnectionClosedException If an error has occurred preventing read of the next packet */ private function get_binary_packet_or_close(...$message_types) { } /** * Gets Binary Packets * * See '6. Binary Packet Protocol' of rfc4253 for more info. * * @see self::_send_binary_packet() * @return string * @throws TimeoutException If user requested timeout was reached while waiting for next packet * @throws ConnectionClosedException If an error has occurred preventing read of the next packet */ private function get_binary_packet() { } /** * @param object $packet The packet object being constructed, passed by reference * The size, packet_length, and plain properties of this object may be modified in processing * @throws InvalidPacketLengthException if the packet length header is invalid */ private function get_binary_packet_size(&$packet) { } /** * Filter Binary Packets * * Because some binary packets need to be ignored... * * @see self::_get_binary_packet() * @param string $payload * @return string */ private function filter($payload) { } /** * Enable Quiet Mode * * Suppress stderr from output * */ public function enableQuietMode() { } /** * Disable Quiet Mode * * Show stderr in output * */ public function disableQuietMode() { } /** * Returns whether Quiet Mode is enabled or not * * @see self::enableQuietMode() * @see self::disableQuietMode() * @return bool */ public function isQuietModeEnabled() { } /** * Enable request-pty when using exec() * */ public function enablePTY() { } /** * Disable request-pty when using exec() * */ public function disablePTY() { } /** * Returns whether request-pty is enabled or not * * @see self::enablePTY() * @see self::disablePTY() * @return bool */ public function isPTYEnabled() { } /** * Gets channel data * * Returns the data as a string. bool(true) is returned if: * * - the server closes the channel * - if the connection times out * - if a window adjust packet is received on the given negated client channel * - if the channel status is CHANNEL_OPEN and the response was CHANNEL_OPEN_CONFIRMATION * - if the channel status is CHANNEL_REQUEST and the response was CHANNEL_SUCCESS * - if the channel status is CHANNEL_CLOSE and the response was CHANNEL_CLOSE * * bool(false) is returned if: * * - if the channel status is CHANNEL_REQUEST and the response was CHANNEL_FAILURE * * @param int $client_channel Specifies the channel to return data for, and data received * on other channels is buffered. The respective negative value of a channel is * also supported for the case that the caller is awaiting adjustment of the data * window, and where data received on that respective channel is also buffered. * @param bool $skip_extended * @return mixed * @throws \RuntimeException on connection error */ protected function get_channel_packet($client_channel, $skip_extended = \false) { } /** * Sends Binary Packets * * See '6. Binary Packet Protocol' of rfc4253 for more info. * * @param string $data * @param string $logged * @see self::_get_binary_packet() * @return void */ protected function send_binary_packet($data, $logged = null) { } /** * Sends a keep-alive message, if keep-alive is enabled and interval is met */ private function send_keep_alive() { } /** * Logs data packets * * Makes sure that only the last 1MB worth of packets will be logged * * @param string $message_number * @param string $message */ private function append_log($message_number, $message) { } /** * Logs data packet helper * * @param int $constant * @param string $message_number * @param string $message * @param array &$message_number_log * @param array &$message_log * @param int &$log_size * @param resource &$realtime_log_file * @param bool &$realtime_log_wrap * @param int &$realtime_log_size */ protected function append_log_helper($constant, $message_number, $message, array &$message_number_log, array &$message_log, &$log_size, &$realtime_log_file, &$realtime_log_wrap, &$realtime_log_size) { } /** * Sends channel data * * Spans multiple SSH_MSG_CHANNEL_DATAs if appropriate * * @param int $client_channel * @param string $data * @return void */ protected function send_channel_packet($client_channel, $data) { } /** * Closes and flushes a channel * * \phpseclib3\Net\SSH2 doesn't properly close most channels. For exec() channels are normally closed by the server * and for SFTP channels are presumably closed when the client disconnects. This functions is intended * for SCP more than anything. * * @param int $client_channel * @param bool $want_reply * @return void */ private function close_channel($client_channel, $want_reply = \false) { } /** * Maintains execution state bitmap in response to channel closure * * @param int $client_channel The channel number to maintain closure status of * @return void */ private function close_channel_bitmap($client_channel) { } /** * Disconnect * * @param int $reason * @return false */ protected function disconnect_helper($reason) { } /** * Define Array * * Takes any number of arrays whose indices are integers and whose values are strings and defines a bunch of * named constants from it, using the value as the name of the constant and the index as the value of the constant. * If any of the constants that would be defined already exists, none of the constants will be defined. * * @param mixed[] ...$args * @access protected */ protected static function define_array(...$args) { } /** * Returns a log of the packets that have been sent and received. * * Returns a string if NET_SSH2_LOGGING == self::LOG_COMPLEX, an array if NET_SSH2_LOGGING == self::LOG_SIMPLE and false if !defined('NET_SSH2_LOGGING') * * @return array|false|string */ public function getLog() { } /** * Formats a log for printing * * @param array $message_log * @param array $message_number_log * @return string */ protected function format_log(array $message_log, array $message_number_log) { } /** * Helper function for agent->on_channel_open() * * Used when channels are created to inform agent * of said channel opening. Must be called after * channel open confirmation received * */ private function on_channel_open() { } /** * Returns the first value of the intersection of two arrays or false if * the intersection is empty. The order is defined by the first parameter. * * @param array $array1 * @param array $array2 * @return mixed False if intersection is empty, else intersected value. */ private static function array_intersect_first(array $array1, array $array2) { } /** * Returns all errors / debug messages on the SSH layer * * If you are looking for messages from the SFTP layer, please see SFTP::getSFTPErrors() * * @return string[] */ public function getErrors() { } /** * Returns the last error received on the SSH layer * * If you are looking for messages from the SFTP layer, please see SFTP::getLastSFTPError() * * @return string */ public function getLastError() { } /** * Return the server identification. * * @return string|false */ public function getServerIdentification() { } /** * Returns a list of algorithms the server supports * * @return array */ public function getServerAlgorithms() { } /** * Returns a list of KEX algorithms that phpseclib supports * * @return array */ public static function getSupportedKEXAlgorithms() { } /** * Returns a list of host key algorithms that phpseclib supports * * @return array */ public static function getSupportedHostKeyAlgorithms() { } /** * Returns a list of symmetric key algorithms that phpseclib supports * * @return array */ public static function getSupportedEncryptionAlgorithms() { } /** * Returns a list of MAC algorithms that phpseclib supports * * @return array */ public static function getSupportedMACAlgorithms() { } /** * Returns a list of compression algorithms that phpseclib supports * * @return array */ public static function getSupportedCompressionAlgorithms() { } /** * Return list of negotiated algorithms * * Uses the same format as https://www.php.net/ssh2-methods-negotiated * * @return array */ public function getAlgorithmsNegotiated() { } /** * Force multiple channels (even if phpseclib has decided to disable them) */ public function forceMultipleChannels() { } /** * Allows you to set the terminal * * @param string $term */ public function setTerminal($term) { } /** * Accepts an associative array with up to four parameters as described at * * * @param array $methods */ public function setPreferredAlgorithms(array $methods) { } /** * Returns the banner message. * * Quoting from the RFC, "in some jurisdictions, sending a warning message before * authentication may be relevant for getting legal protection." * * @return string */ public function getBannerMessage() { } /** * Returns the server public host key. * * Caching this the first time you connect to a server and checking the result on subsequent connections * is recommended. Returns false if the server signature is not signed correctly with the public host key. * * @return string|false * @throws \RuntimeException on badly formatted keys * @throws NoSupportedAlgorithmsException when the key isn't in a supported format */ public function getServerPublicHostKey() { } /** * Returns the exit status of an SSH command or false. * * @return false|int */ public function getExitStatus() { } /** * Returns the number of columns for the terminal window size. * * @return int */ public function getWindowColumns() { } /** * Returns the number of rows for the terminal window size. * * @return int */ public function getWindowRows() { } /** * Sets the number of columns for the terminal window size. * * @param int $value */ public function setWindowColumns($value) { } /** * Sets the number of rows for the terminal window size. * * @param int $value */ public function setWindowRows($value) { } /** * Sets the number of columns and rows for the terminal window size. * * @param int $columns * @param int $rows */ public function setWindowSize($columns = 80, $rows = 24) { } /** * To String Magic Method * * @return string */ #[\ReturnTypeWillChange] public function __toString() { } /** * Get Resource ID * * We use {} because that symbols should not be in URL according to * {@link http://tools.ietf.org/html/rfc3986#section-2 RFC}. * It will safe us from any conflicts, because otherwise regexp will * match all alphanumeric domains. * * @return string */ public function getResourceId() { } /** * Return existing connection * * @param string $id * * @return bool|SSH2 will return false if no such connection */ public static function getConnectionByResourceId($id) { } /** * Return all excising connections * * @return array */ public static function getConnections() { } /* * Update packet types in log history * * @param string $old * @param string $new */ private function updateLogHistory($old, $new) { } /** * Return the list of authentication methods that may productively continue authentication. * * @see https://tools.ietf.org/html/rfc4252#section-5.1 * @return array|null */ public function getAuthMethodsToContinue() { } /** * Enables "smart" multi-factor authentication (MFA) */ public function enableSmartMFA() { } /** * Disables "smart" multi-factor authentication (MFA) */ public function disableSmartMFA() { } } /** * Pure-PHP implementations of SFTP. * * @author Jim Wigginton */ class SFTP extends \ForminatorGoogleAddon\phpseclib3\Net\SSH2 { /** * SFTP channel constant * * \phpseclib3\Net\SSH2::exec() uses 0 and \phpseclib3\Net\SSH2::read() / \phpseclib3\Net\SSH2::write() use 1. * * @see \phpseclib3\Net\SSH2::send_channel_packet() * @see \phpseclib3\Net\SSH2::get_channel_packet() */ const CHANNEL = 0x100; /** * Reads data from a local file. * * @see \phpseclib3\Net\SFTP::put() */ const SOURCE_LOCAL_FILE = 1; /** * Reads data from a string. * * @see \phpseclib3\Net\SFTP::put() */ // this value isn't really used anymore but i'm keeping it reserved for historical reasons const SOURCE_STRING = 2; /** * Reads data from callback: * function callback($length) returns string to proceed, null for EOF * * @see \phpseclib3\Net\SFTP::put() */ const SOURCE_CALLBACK = 16; /** * Resumes an upload * * @see \phpseclib3\Net\SFTP::put() */ const RESUME = 4; /** * Append a local file to an already existing remote file * * @see \phpseclib3\Net\SFTP::put() */ const RESUME_START = 8; /** * Packet Types * * @see self::__construct() * @var array * @access private */ private static $packet_types = []; /** * Status Codes * * @see self::__construct() * @var array * @access private */ private static $status_codes = []; /** @var array */ private static $attributes; /** @var array */ private static $open_flags; /** @var array */ private static $open_flags5; /** @var array */ private static $file_types; /** * The Request ID * * The request ID exists in the off chance that a packet is sent out-of-order. Of course, this library doesn't support * concurrent actions, so it's somewhat academic, here. * * @var boolean * @see self::_send_sftp_packet() */ private $use_request_id = \false; /** * The Packet Type * * The request ID exists in the off chance that a packet is sent out-of-order. Of course, this library doesn't support * concurrent actions, so it's somewhat academic, here. * * @var int * @see self::_get_sftp_packet() */ private $packet_type = -1; /** * Packet Buffer * * @var string * @see self::_get_sftp_packet() */ private $packet_buffer = ''; /** * Extensions supported by the server * * @var array * @see self::_initChannel() */ private $extensions = []; /** * Server SFTP version * * @var int * @see self::_initChannel() */ private $version; /** * Default Server SFTP version * * @var int * @see self::_initChannel() */ private $defaultVersion; /** * Preferred SFTP version * * @var int * @see self::_initChannel() */ private $preferredVersion = 3; /** * Current working directory * * @var string|bool * @see self::realpath() * @see self::chdir() */ private $pwd = \false; /** * Packet Type Log * * @see self::getLog() * @var array */ private $packet_type_log = []; /** * Packet Log * * @see self::getLog() * @var array */ private $packet_log = []; /** * Real-time log file pointer * * @see self::_append_log() * @var resource|closed-resource */ private $realtime_log_file; /** * Real-time log file size * * @see self::_append_log() * @var int */ private $realtime_log_size; /** * Real-time log file wrap boolean * * @see self::_append_log() * @var bool */ private $realtime_log_wrap; /** * Current log size * * Should never exceed self::LOG_MAX_SIZE * * @var int */ private $log_size; /** * Error information * * @see self::getSFTPErrors() * @see self::getLastSFTPError() * @var array */ private $sftp_errors = []; /** * Stat Cache * * Rather than always having to open a directory and close it immediately there after to see if a file is a directory * we'll cache the results. * * @see self::_update_stat_cache() * @see self::_remove_from_stat_cache() * @see self::_query_stat_cache() * @var array */ private $stat_cache = []; /** * Max SFTP Packet Size * * @see self::__construct() * @see self::get() * @var int */ private $max_sftp_packet; /** * Stat Cache Flag * * @see self::disableStatCache() * @see self::enableStatCache() * @var bool */ private $use_stat_cache = \true; /** * Sort Options * * @see self::_comparator() * @see self::setListOrder() * @var array */ protected $sortOptions = []; /** * Canonicalization Flag * * Determines whether or not paths should be canonicalized before being * passed on to the remote server. * * @see self::enablePathCanonicalization() * @see self::disablePathCanonicalization() * @see self::realpath() * @var bool */ private $canonicalize_paths = \true; /** * Request Buffers * * @see self::_get_sftp_packet() * @var array */ private $requestBuffer = []; /** * Preserve timestamps on file downloads / uploads * * @see self::get() * @see self::put() * @var bool */ private $preserveTime = \false; /** * Arbitrary Length Packets Flag * * Determines whether or not packets of any length should be allowed, * in cases where the server chooses the packet length (such as * directory listings). By default, packets are only allowed to be * 256 * 1024 bytes (SFTP_MAX_MSG_LENGTH from OpenSSH's sftp-common.h) * * @see self::enableArbitraryLengthPackets() * @see self::_get_sftp_packet() * @var bool */ private $allow_arbitrary_length_packets = \false; /** * Was the last packet due to the channels being closed or not? * * @see self::get() * @see self::get_sftp_packet() * @var bool */ private $channel_close = \false; /** * Has the SFTP channel been partially negotiated? * * @var bool */ private $partial_init = \false; /** * Default Constructor. * * Connects to an SFTP server * * $host can either be a string, representing the host, or a stream resource. * * @param mixed $host * @param int $port * @param int $timeout */ public function __construct($host, $port = 22, $timeout = 10) { } /** * Check a few things before SFTP functions are called * * @return bool */ private function precheck() { } /** * Partially initialize an SFTP connection * * @throws \UnexpectedValueException on receipt of unexpected packets * @return bool */ private function partial_init_sftp_connection() { } /** * (Re)initializes the SFTP channel * * @return bool */ private function init_sftp_connection() { } /** * Disable the stat cache * */ public function disableStatCache() { } /** * Enable the stat cache * */ public function enableStatCache() { } /** * Clear the stat cache * */ public function clearStatCache() { } /** * Enable path canonicalization * */ public function enablePathCanonicalization() { } /** * Disable path canonicalization * * If this is enabled then $sftp->pwd() will not return the canonicalized absolute path * */ public function disablePathCanonicalization() { } /** * Enable arbitrary length packets * */ public function enableArbitraryLengthPackets() { } /** * Disable arbitrary length packets * */ public function disableArbitraryLengthPackets() { } /** * Returns the current directory name * * @return string|bool */ public function pwd() { } /** * Logs errors * * @param string $response * @param int $status */ private function logError($response, $status = -1) { } /** * Canonicalize the Server-Side Path Name * * SFTP doesn't provide a mechanism by which the current working directory can be changed, so we'll emulate it. Returns * the absolute (canonicalized) path. * * If canonicalize_paths has been disabled using disablePathCanonicalization(), $path is returned as-is. * * @see self::chdir() * @see self::disablePathCanonicalization() * @param string $path * @throws \UnexpectedValueException on receipt of unexpected packets * @return mixed */ public function realpath($path) { } /** * Changes the current directory * * @param string $dir * @throws \UnexpectedValueException on receipt of unexpected packets * @return bool */ public function chdir($dir) { } /** * Returns a list of files in the given directory * * @param string $dir * @param bool $recursive * @return array|false */ public function nlist($dir = '.', $recursive = \false) { } /** * Helper method for nlist * * @param string $dir * @param bool $recursive * @param string $relativeDir * @return array|false */ private function nlist_helper($dir, $recursive, $relativeDir) { } /** * Returns a detailed list of files in the given directory * * @param string $dir * @param bool $recursive * @return array|false */ public function rawlist($dir = '.', $recursive = \false) { } /** * Reads a list, be it detailed or not, of files in the given directory * * @param string $dir * @param bool $raw * @return array|false * @throws \UnexpectedValueException on receipt of unexpected packets */ private function readlist($dir, $raw = \true) { } /** * Compares two rawlist entries using parameters set by setListOrder() * * Intended for use with uasort() * * @param array $a * @param array $b * @return int */ private function comparator(array $a, array $b) { } /** * Defines how nlist() and rawlist() will be sorted - if at all. * * If sorting is enabled directories and files will be sorted independently with * directories appearing before files in the resultant array that is returned. * * Any parameter returned by stat is a valid sort parameter for this function. * Filename comparisons are case insensitive. * * Examples: * * $sftp->setListOrder('filename', SORT_ASC); * $sftp->setListOrder('size', SORT_DESC, 'filename', SORT_ASC); * $sftp->setListOrder(true); * Separates directories from files but doesn't do any sorting beyond that * $sftp->setListOrder(); * Don't do any sort of sorting * * @param string ...$args */ public function setListOrder(...$args) { } /** * Save files / directories to cache * * @param string $path * @param mixed $value */ private function update_stat_cache($path, $value) { } /** * Remove files / directories from cache * * @param string $path * @return bool */ private function remove_from_stat_cache($path) { } /** * Checks cache for path * * Mainly used by file_exists * * @param string $path * @return mixed */ private function query_stat_cache($path) { } /** * Returns general information about a file. * * Returns an array on success and false otherwise. * * @param string $filename * @return array|false */ public function stat($filename) { } /** * Returns general information about a file or symbolic link. * * Returns an array on success and false otherwise. * * @param string $filename * @return array|false */ public function lstat($filename) { } /** * Returns general information about a file or symbolic link * * Determines information without calling \phpseclib3\Net\SFTP::realpath(). * The second parameter can be either NET_SFTP_STAT or NET_SFTP_LSTAT. * * @param string $filename * @param int $type * @throws \UnexpectedValueException on receipt of unexpected packets * @return array|false */ private function stat_helper($filename, $type) { } /** * Truncates a file to a given length * * @param string $filename * @param int $new_size * @return bool */ public function truncate($filename, $new_size) { } /** * Sets access and modification time of file. * * If the file does not exist, it will be created. * * @param string $filename * @param int $time * @param int $atime * @throws \UnexpectedValueException on receipt of unexpected packets * @return bool */ public function touch($filename, $time = null, $atime = null) { } /** * Changes file or directory owner * * $uid should be an int for SFTPv3 and a string for SFTPv4+. Ideally the string * would be of the form "user@dns_domain" but it does not need to be. * `$sftp->getSupportedVersions()['version']` will return the specific version * that's being used. * * Returns true on success or false on error. * * @param string $filename * @param int|string $uid * @param bool $recursive * @return bool */ public function chown($filename, $uid, $recursive = \false) { } /** * Changes file or directory group * * $gid should be an int for SFTPv3 and a string for SFTPv4+. Ideally the string * would be of the form "user@dns_domain" but it does not need to be. * `$sftp->getSupportedVersions()['version']` will return the specific version * that's being used. * * Returns true on success or false on error. * * @param string $filename * @param int|string $gid * @param bool $recursive * @return bool */ public function chgrp($filename, $gid, $recursive = \false) { } /** * Set permissions on a file. * * Returns the new file permissions on success or false on error. * If $recursive is true than this just returns true or false. * * @param int $mode * @param string $filename * @param bool $recursive * @throws \UnexpectedValueException on receipt of unexpected packets * @return mixed */ public function chmod($mode, $filename, $recursive = \false) { } /** * Sets information about a file * * @param string $filename * @param string $attr * @param bool $recursive * @throws \UnexpectedValueException on receipt of unexpected packets * @return bool */ private function setstat($filename, $attr, $recursive) { } /** * Recursively sets information on directories on the SFTP server * * Minimizes directory lookups and SSH_FXP_STATUS requests for speed. * * @param string $path * @param string $attr * @param int $i * @return bool */ private function setstat_recursive($path, $attr, &$i) { } /** * Return the target of a symbolic link * * @param string $link * @throws \UnexpectedValueException on receipt of unexpected packets * @return mixed */ public function readlink($link) { } /** * Create a symlink * * symlink() creates a symbolic link to the existing target with the specified name link. * * @param string $target * @param string $link * @throws \UnexpectedValueException on receipt of unexpected packets * @return bool */ public function symlink($target, $link) { } /** * Creates a directory. * * @param string $dir * @param int $mode * @param bool $recursive * @return bool */ public function mkdir($dir, $mode = -1, $recursive = \false) { } /** * Helper function for directory creation * * @param string $dir * @param int $mode * @return bool */ private function mkdir_helper($dir, $mode) { } /** * Removes a directory. * * @param string $dir * @throws \UnexpectedValueException on receipt of unexpected packets * @return bool */ public function rmdir($dir) { } /** * Uploads a file to the SFTP server. * * By default, \phpseclib3\Net\SFTP::put() does not read from the local filesystem. $data is dumped directly into $remote_file. * So, for example, if you set $data to 'filename.ext' and then do \phpseclib3\Net\SFTP::get(), you will get a file, twelve bytes * long, containing 'filename.ext' as its contents. * * Setting $mode to self::SOURCE_LOCAL_FILE will change the above behavior. With self::SOURCE_LOCAL_FILE, $remote_file will * contain as many bytes as filename.ext does on your local filesystem. If your filename.ext is 1MB then that is how * large $remote_file will be, as well. * * Setting $mode to self::SOURCE_CALLBACK will use $data as callback function, which gets only one parameter -- number * of bytes to return, and returns a string if there is some data or null if there is no more data * * If $data is a resource then it'll be used as a resource instead. * * Currently, only binary mode is supported. As such, if the line endings need to be adjusted, you will need to take * care of that, yourself. * * $mode can take an additional two parameters - self::RESUME and self::RESUME_START. These are bitwise AND'd with * $mode. So if you want to resume upload of a 300mb file on the local file system you'd set $mode to the following: * * self::SOURCE_LOCAL_FILE | self::RESUME * * If you wanted to simply append the full contents of a local file to the full contents of a remote file you'd replace * self::RESUME with self::RESUME_START. * * If $mode & (self::RESUME | self::RESUME_START) then self::RESUME_START will be assumed. * * $start and $local_start give you more fine grained control over this process and take precident over self::RESUME * when they're non-negative. ie. $start could let you write at the end of a file (like self::RESUME) or in the middle * of one. $local_start could let you start your reading from the end of a file (like self::RESUME_START) or in the * middle of one. * * Setting $local_start to > 0 or $mode | self::RESUME_START doesn't do anything unless $mode | self::SOURCE_LOCAL_FILE. * * {@internal ASCII mode for SFTPv4/5/6 can be supported by adding a new function - \phpseclib3\Net\SFTP::setMode().} * * @param string $remote_file * @param string|resource $data * @param int $mode * @param int $start * @param int $local_start * @param callable|null $progressCallback * @throws \UnexpectedValueException on receipt of unexpected packets * @throws \BadFunctionCallException if you're uploading via a callback and the callback function is invalid * @throws FileNotFoundException if you're uploading via a file and the file doesn't exist * @return bool */ public function put($remote_file, $data, $mode = self::SOURCE_STRING, $start = -1, $local_start = -1, $progressCallback = null) { } /** * Reads multiple successive SSH_FXP_WRITE responses * * Sending an SSH_FXP_WRITE packet and immediately reading its response isn't as efficient as blindly sending out $i * SSH_FXP_WRITEs, in succession, and then reading $i responses. * * @param int $i * @return bool * @throws \UnexpectedValueException on receipt of unexpected packets */ private function read_put_responses($i) { } /** * Close handle * * @param string $handle * @return bool * @throws \UnexpectedValueException on receipt of unexpected packets */ private function close_handle($handle) { } /** * Downloads a file from the SFTP server. * * Returns a string containing the contents of $remote_file if $local_file is left undefined or a boolean false if * the operation was unsuccessful. If $local_file is defined, returns true or false depending on the success of the * operation. * * $offset and $length can be used to download files in chunks. * * @param string $remote_file * @param string|bool|resource|callable $local_file * @param int $offset * @param int $length * @param callable|null $progressCallback * @throws \UnexpectedValueException on receipt of unexpected packets * @return string|bool */ public function get($remote_file, $local_file = \false, $offset = 0, $length = -1, $progressCallback = null) { } /** * Deletes a file on the SFTP server. * * @param string $path * @param bool $recursive * @return bool * @throws \UnexpectedValueException on receipt of unexpected packets */ public function delete($path, $recursive = \true) { } /** * Recursively deletes directories on the SFTP server * * Minimizes directory lookups and SSH_FXP_STATUS requests for speed. * * @param string $path * @param int $i * @return bool */ private function delete_recursive($path, &$i) { } /** * Checks whether a file or directory exists * * @param string $path * @return bool */ public function file_exists($path) { } /** * Tells whether the filename is a directory * * @param string $path * @return bool */ public function is_dir($path) { } /** * Tells whether the filename is a regular file * * @param string $path * @return bool */ public function is_file($path) { } /** * Tells whether the filename is a symbolic link * * @param string $path * @return bool */ public function is_link($path) { } /** * Tells whether a file exists and is readable * * @param string $path * @return bool */ public function is_readable($path) { } /** * Tells whether the filename is writable * * @param string $path * @return bool */ public function is_writable($path) { } /** * Tells whether the filename is writeable * * Alias of is_writable * * @param string $path * @return bool */ public function is_writeable($path) { } /** * Gets last access time of file * * @param string $path * @return mixed */ public function fileatime($path) { } /** * Gets file modification time * * @param string $path * @return mixed */ public function filemtime($path) { } /** * Gets file permissions * * @param string $path * @return mixed */ public function fileperms($path) { } /** * Gets file owner * * @param string $path * @return mixed */ public function fileowner($path) { } /** * Gets file group * * @param string $path * @return mixed */ public function filegroup($path) { } /** * Recursively go through rawlist() output to get the total filesize * * @return int */ private static function recursiveFilesize(array $files) { } /** * Gets file size * * @param string $path * @param bool $recursive * @return mixed */ public function filesize($path, $recursive = \false) { } /** * Gets file type * * @param string $path * @return string|false */ public function filetype($path) { } /** * Return a stat properity * * Uses cache if appropriate. * * @param string $path * @param string $prop * @return mixed */ private function get_stat_cache_prop($path, $prop) { } /** * Return an lstat properity * * Uses cache if appropriate. * * @param string $path * @param string $prop * @return mixed */ private function get_lstat_cache_prop($path, $prop) { } /** * Return a stat or lstat properity * * Uses cache if appropriate. * * @param string $path * @param string $prop * @param string $type * @return mixed */ private function get_xstat_cache_prop($path, $prop, $type) { } /** * Renames a file or a directory on the SFTP server. * * If the file already exists this will return false * * @param string $oldname * @param string $newname * @return bool * @throws \UnexpectedValueException on receipt of unexpected packets */ public function rename($oldname, $newname) { } /** * Parse Time * * See '7.7. Times' of draft-ietf-secsh-filexfer-13 for more info. * * @param string $key * @param int $flags * @param string $response * @return array */ private function parseTime($key, $flags, &$response) { } /** * Parse Attributes * * See '7. File Attributes' of draft-ietf-secsh-filexfer-13 for more info. * * @param string $response * @return array */ protected function parseAttributes(&$response) { } /** * Attempt to identify the file type * * Quoting the SFTP RFC, "Implementations MUST NOT send bits that are not defined" but they seem to anyway * * @param int $mode * @return int */ private function parseMode($mode) { } /** * Parse Longname * * SFTPv3 doesn't provide any easy way of identifying a file type. You could try to open * a file as a directory and see if an error is returned or you could try to parse the * SFTPv3-specific longname field of the SSH_FXP_NAME packet. That's what this function does. * The result is returned using the * {@link http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-5.2 SFTPv4 type constants}. * * If the longname is in an unrecognized format bool(false) is returned. * * @param string $longname * @return mixed */ private function parseLongname($longname) { } /** * Sends SFTP Packets * * See '6. General Packet Format' of draft-ietf-secsh-filexfer-13 for more info. * * @param int $type * @param string $data * @param int $request_id * @see self::_get_sftp_packet() * @see self::send_channel_packet() * @return void */ private function send_sftp_packet($type, $data, $request_id = 1) { } /** * Resets the SFTP channel for re-use */ private function reset_sftp() { } /** * Resets a connection for re-use */ protected function reset_connection() { } /** * Receives SFTP Packets * * See '6. General Packet Format' of draft-ietf-secsh-filexfer-13 for more info. * * Incidentally, the number of SSH_MSG_CHANNEL_DATA messages has no bearing on the number of SFTP packets present. * There can be one SSH_MSG_CHANNEL_DATA messages containing two SFTP packets or there can be two SSH_MSG_CHANNEL_DATA * messages containing one SFTP packet. * * @see self::_send_sftp_packet() * @return string */ private function get_sftp_packet($request_id = null) { } /** * Logs data packets * * Makes sure that only the last 1MB worth of packets will be logged * * @param string $message_number * @param string $message */ private function append_log($message_number, $message) { } /** * Returns a log of the packets that have been sent and received. * * Returns a string if NET_SFTP_LOGGING == self::LOG_COMPLEX, an array if NET_SFTP_LOGGING == self::LOG_SIMPLE and false if !defined('NET_SFTP_LOGGING') * * @return array|string|false */ public function getSFTPLog() { } /** * Returns all errors on the SFTP layer * * @return array */ public function getSFTPErrors() { } /** * Returns the last error on the SFTP layer * * @return string */ public function getLastSFTPError() { } /** * Get supported SFTP versions * * @return array */ public function getSupportedVersions() { } /** * Get supported SFTP extensions * * @return array */ public function getSupportedExtensions() { } /** * Get supported SFTP versions * * @return int|false */ public function getNegotiatedVersion() { } /** * Set preferred version * * If you're preferred version isn't supported then the highest supported * version of SFTP will be utilized. Set to null or false or int(0) to * unset the preferred version * * @param int $version */ public function setPreferredVersion($version) { } /** * Disconnect * * @param int $reason * @return false */ protected function disconnect_helper($reason) { } /** * Enable Date Preservation * */ public function enableDatePreservation() { } /** * Disable Date Preservation * */ public function disableDatePreservation() { } /** * POSIX Rename * * Where rename() fails "if there already exists a file with the name specified by newpath" * (draft-ietf-secsh-filexfer-02#section-6.5), posix_rename() overwrites the existing file in an atomic fashion. * ie. "there is no observable instant in time where the name does not refer to either the old or the new file" * (draft-ietf-secsh-filexfer-13#page-39). * * @param string $oldname * @param string $newname * @return bool */ public function posix_rename($oldname, $newname) { } /** * Returns general information about a file system. * * The function statvfs() returns information about a mounted filesystem. * @see https://man7.org/linux/man-pages/man3/statvfs.3.html * * @param string $path * @return false|array{bsize: int, frsize: int, blocks: int, bfree: int, bavail: int, files: int, ffree: int, favail: int, fsid: int, flag: int, namemax: int} */ public function statvfs($path) { } } } namespace ForminatorGoogleAddon\phpseclib3\Net\SFTP { /** * SFTP Stream Wrapper * * @author Jim Wigginton */ class Stream { /** * SFTP instances * * Rather than re-create the connection we re-use instances if possible * * @var array */ public static $instances; /** * SFTP instance * * @var object */ private $sftp; /** * Path * * @var string */ private $path; /** * Mode * * @var string */ private $mode; /** * Position * * @var int */ private $pos; /** * Size * * @var int */ private $size; /** * Directory entries * * @var array */ private $entries; /** * EOF flag * * @var bool */ private $eof; /** * Context resource * * Technically this needs to be publicly accessible so PHP can set it directly * * @var resource */ public $context; /** * Notification callback function * * @var callable */ private $notification; /** * Registers this class as a URL wrapper. * * @param string $protocol The wrapper name to be registered. * @return bool True on success, false otherwise. */ public static function register($protocol = 'sftp') { } /** * The Constructor * */ public function __construct() { } /** * Path Parser * * Extract a path from a URI and actually connect to an SSH server if appropriate * * If "notification" is set as a context parameter the message code for successful login is * NET_SSH2_MSG_USERAUTH_SUCCESS. For a failed login it's NET_SSH2_MSG_USERAUTH_FAILURE. * * @param string $path * @return string */ protected function parse_path($path) { } /** * Opens file or URL * * @param string $path * @param string $mode * @param int $options * @param string $opened_path * @return bool */ private function _stream_open($path, $mode, $options, &$opened_path) { } /** * Read from stream * * @param int $count * @return mixed */ private function _stream_read($count) { } /** * Write to stream * * @param string $data * @return int|false */ private function _stream_write($data) { } /** * Retrieve the current position of a stream * * @return int */ private function _stream_tell() { } /** * Tests for end-of-file on a file pointer * * In my testing there are four classes functions that normally effect the pointer: * fseek, fputs / fwrite, fgets / fread and ftruncate. * * Only fgets / fread, however, results in feof() returning true. do fputs($fp, 'aaa') on a blank file and feof() * will return false. do fread($fp, 1) and feof() will then return true. do fseek($fp, 10) on ablank file and feof() * will return false. do fread($fp, 1) and feof() will then return true. * * @return bool */ private function _stream_eof() { } /** * Seeks to specific location in a stream * * @param int $offset * @param int $whence * @return bool */ private function _stream_seek($offset, $whence) { } /** * Change stream options * * @param string $path * @param int $option * @param mixed $var * @return bool */ private function _stream_metadata($path, $option, $var) { } /** * Retrieve the underlaying resource * * @param int $cast_as * @return resource */ private function _stream_cast($cast_as) { } /** * Advisory file locking * * @param int $operation * @return bool */ private function _stream_lock($operation) { } /** * Renames a file or directory * * Attempts to rename oldname to newname, moving it between directories if necessary. * If newname exists, it will be overwritten. This is a departure from what \phpseclib3\Net\SFTP * does. * * @param string $path_from * @param string $path_to * @return bool */ private function _rename($path_from, $path_to) { } /** * Open directory handle * * The only $options is "whether or not to enforce safe_mode (0x04)". Since safe mode was deprecated in 5.3 and * removed in 5.4 I'm just going to ignore it. * * Also, nlist() is the best that this function is realistically going to be able to do. When an SFTP client * sends a SSH_FXP_READDIR packet you don't generally get info on just one file but on multiple files. Quoting * the SFTP specs: * * The SSH_FXP_NAME response has the following format: * * uint32 id * uint32 count * repeats count times: * string filename * string longname * ATTRS attrs * * @param string $path * @param int $options * @return bool */ private function _dir_opendir($path, $options) { } /** * Read entry from directory handle * * @return mixed */ private function _dir_readdir() { } /** * Rewind directory handle * * @return bool */ private function _dir_rewinddir() { } /** * Close directory handle * * @return bool */ private function _dir_closedir() { } /** * Create a directory * * Only valid $options is STREAM_MKDIR_RECURSIVE * * @param string $path * @param int $mode * @param int $options * @return bool */ private function _mkdir($path, $mode, $options) { } /** * Removes a directory * * Only valid $options is STREAM_MKDIR_RECURSIVE per , however, * does not have a $recursive parameter as mkdir() does so I don't know how * STREAM_MKDIR_RECURSIVE is supposed to be set. Also, when I try it out with rmdir() I get 8 as * $options. What does 8 correspond to? * * @param string $path * @param int $options * @return bool */ private function _rmdir($path, $options) { } /** * Flushes the output * * See . Always returns true because \phpseclib3\Net\SFTP doesn't cache stuff before writing * * @return bool */ private function _stream_flush() { } /** * Retrieve information about a file resource * * @return mixed */ private function _stream_stat() { } /** * Delete a file * * @param string $path * @return bool */ private function _unlink($path) { } /** * Retrieve information about a file * * Ignores the STREAM_URL_STAT_QUIET flag because the entirety of \phpseclib3\Net\SFTP\Stream is quiet by default * might be worthwhile to reconstruct bits 12-16 (ie. the file type) if mode doesn't have them but we'll * cross that bridge when and if it's reached * * @param string $path * @param int $flags * @return mixed */ private function _url_stat($path, $flags) { } /** * Truncate stream * * @param int $new_size * @return bool */ private function _stream_truncate($new_size) { } /** * Change stream options * * STREAM_OPTION_WRITE_BUFFER isn't supported for the same reason stream_flush isn't. * The other two aren't supported because of limitations in \phpseclib3\Net\SFTP. * * @param int $option * @param int $arg1 * @param int $arg2 * @return bool */ private function _stream_set_option($option, $arg1, $arg2) { } /** * Close an resource * */ private function _stream_close() { } /** * __call Magic Method * * When you're utilizing an SFTP stream you're not calling the methods in this class directly - PHP is calling them for you. * Which kinda begs the question... what methods is PHP calling and what parameters is it passing to them? This function * lets you figure that out. * * If NET_SFTP_STREAM_LOGGING is defined all calls will be output on the screen and then (regardless of whether or not * NET_SFTP_STREAM_LOGGING is enabled) the parameters will be passed through to the appropriate method. * * @param string $name * @param array $arguments * @return mixed */ public function __call($name, array $arguments) { } } } namespace ForminatorGoogleAddon\phpseclib3\System\SSH\Common\Traits { /** * ReadBytes trait * * @author Jim Wigginton */ trait ReadBytes { /** * Read data * * @param int $length * @throws \RuntimeException on connection errors */ public function readBytes($length) { } } } namespace ForminatorGoogleAddon\phpseclib3\System\SSH { /** * Pure-PHP ssh-agent client identity factory * * requestIdentities() method pumps out \phpseclib3\System\SSH\Agent\Identity objects * * @author Jim Wigginton */ class Agent { use \ForminatorGoogleAddon\phpseclib3\System\SSH\Common\Traits\ReadBytes; // Message numbers // to request SSH1 keys you have to use SSH_AGENTC_REQUEST_RSA_IDENTITIES (1) const SSH_AGENTC_REQUEST_IDENTITIES = 11; // this is the SSH2 response; the SSH1 response is SSH_AGENT_RSA_IDENTITIES_ANSWER (2). const SSH_AGENT_IDENTITIES_ANSWER = 12; // the SSH1 request is SSH_AGENTC_RSA_CHALLENGE (3) const SSH_AGENTC_SIGN_REQUEST = 13; // the SSH1 response is SSH_AGENT_RSA_RESPONSE (4) const SSH_AGENT_SIGN_RESPONSE = 14; // Agent forwarding status // no forwarding requested and not active const FORWARD_NONE = 0; // request agent forwarding when opportune const FORWARD_REQUEST = 1; // forwarding has been request and is active const FORWARD_ACTIVE = 2; /** * Unused */ const SSH_AGENT_FAILURE = 5; /** * Socket Resource * * @var resource */ private $fsock; /** * Agent forwarding status * * @var int */ private $forward_status = self::FORWARD_NONE; /** * Buffer for accumulating forwarded authentication * agent data arriving on SSH data channel destined * for agent unix socket * * @var string */ private $socket_buffer = ''; /** * Tracking the number of bytes we are expecting * to arrive for the agent socket on the SSH data * channel * * @var int */ private $expected_bytes = 0; /** * Default Constructor * * @return Agent * @throws BadConfigurationException if SSH_AUTH_SOCK cannot be found * @throws \RuntimeException on connection errors */ public function __construct($address = null) { } /** * Request Identities * * See "2.5.2 Requesting a list of protocol 2 keys" * Returns an array containing zero or more \phpseclib3\System\SSH\Agent\Identity objects * * @return array * @throws \RuntimeException on receipt of unexpected packets */ public function requestIdentities() { } /** * Returns the SSH Agent identity matching a given public key or null if no identity is found * * @return ?Identity */ public function findIdentityByPublicKey(\ForminatorGoogleAddon\phpseclib3\Crypt\Common\PublicKey $key) { } /** * Signal that agent forwarding should * be requested when a channel is opened * * @return void */ public function startSSHForwarding() { } /** * Request agent forwarding of remote server * * @param SSH2 $ssh * @return bool */ private function request_forwarding(\ForminatorGoogleAddon\phpseclib3\Net\SSH2 $ssh) { } /** * On successful channel open * * This method is called upon successful channel * open to give the SSH Agent an opportunity * to take further action. i.e. request agent forwarding * * @param SSH2 $ssh */ public function registerChannelOpen(\ForminatorGoogleAddon\phpseclib3\Net\SSH2 $ssh) { } /** * Forward data to SSH Agent and return data reply * * @param string $data * @return string Data from SSH Agent * @throws \RuntimeException on connection errors */ public function forwardData($data) { } } } namespace ForminatorGoogleAddon\phpseclib3\System\SSH\Agent { /** * Pure-PHP ssh-agent client identity object * * Instantiation should only be performed by \phpseclib3\System\SSH\Agent class. * This could be thought of as implementing an interface that phpseclib3\Crypt\RSA * implements. ie. maybe a Net_SSH_Auth_PublicKey interface or something. * The methods in this interface would be getPublicKey and sign since those are the * methods phpseclib looks for to perform public key authentication. * * @author Jim Wigginton * @internal */ class Identity implements \ForminatorGoogleAddon\phpseclib3\Crypt\Common\PrivateKey { use \ForminatorGoogleAddon\phpseclib3\System\SSH\Common\Traits\ReadBytes; // Signature Flags // See https://tools.ietf.org/html/draft-miller-ssh-agent-00#section-5.3 const SSH_AGENT_RSA2_256 = 2; const SSH_AGENT_RSA2_512 = 4; /** * Key Object * * @var PublicKey * @see self::getPublicKey() */ private $key; /** * Key Blob * * @var string * @see self::sign() */ private $key_blob; /** * Socket Resource * * @var resource * @see self::sign() */ private $fsock; /** * Signature flags * * @var int * @see self::sign() * @see self::setHash() */ private $flags = 0; /** * Comment * * @var null|string */ private $comment; /** * Curve Aliases * * @var array */ private static $curveAliases = ['secp256r1' => 'nistp256', 'secp384r1' => 'nistp384', 'secp521r1' => 'nistp521', 'Ed25519' => 'Ed25519']; /** * Default Constructor. * * @param resource $fsock */ public function __construct($fsock) { } /** * Set Public Key * * Called by \phpseclib3\System\SSH\Agent::requestIdentities() * * @param PublicKey $key */ public function withPublicKey(\ForminatorGoogleAddon\phpseclib3\Crypt\Common\PublicKey $key) { } /** * Set Public Key * * Called by \phpseclib3\System\SSH\Agent::requestIdentities(). The key blob could be extracted from $this->key * but this saves a small amount of computation. * * @param string $key_blob */ public function withPublicKeyBlob($key_blob) { } /** * Get Public Key * * Wrapper for $this->key->getPublicKey() * * @return mixed */ public function getPublicKey() { } /** * Sets the hash * * @param string $hash */ public function withHash($hash) { } /** * Sets the padding * * Only PKCS1 padding is supported * * @param string $padding */ public function withPadding($padding) { } /** * Determines the signature padding mode * * Valid values are: ASN1, SSH2, Raw * * @param string $format */ public function withSignatureFormat($format) { } /** * Returns the curve * * Returns a string if it's a named curve, an array if not * * @return string|array */ public function getCurve() { } /** * Create a signature * * See "2.6.2 Protocol 2 private key signature request" * * @param string $message * @return string * @throws \RuntimeException on connection errors * @throws UnsupportedAlgorithmException if the algorithm is unsupported */ public function sign($message) { } /** * Returns the private key * * @param string $type * @param array $options optional * @return string */ public function toString($type, array $options = []) { } /** * Sets the password * * @param string|bool $password * @return never */ public function withPassword($password = \false) { } /** * Sets the comment */ public function withComment($comment = null) { } /** * Returns the comment * * @return null|string */ public function getComment() { } } } namespace ForminatorGoogleAddon\Psr\Container { /** * Base interface representing a generic exception in a container. */ interface ContainerExceptionInterface extends \Throwable { } /** * Describes the interface of a container that exposes methods to read its entries. */ interface ContainerInterface { /** * Finds an entry of the container by its identifier and returns it. * * @param string $id Identifier of the entry to look for. * * @throws NotFoundExceptionInterface No entry was found for **this** identifier. * @throws ContainerExceptionInterface Error while retrieving the entry. * * @return mixed Entry. */ public function get(string $id); /** * Returns true if the container can return an entry for the given identifier. * Returns false otherwise. * * `has($id)` returning true does not mean that `get($id)` will not throw an exception. * It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`. * * @param string $id Identifier of the entry to look for. * * @return bool */ public function has(string $id); } /** * No entry was found in the container. */ interface NotFoundExceptionInterface extends \ForminatorGoogleAddon\Psr\Container\ContainerExceptionInterface { } } namespace ForminatorGoogleAddon\Psr\EventDispatcher { /** * Defines a dispatcher for events. */ interface EventDispatcherInterface { /** * Provide all relevant listeners with an event to process. * * @param object $event * The object to process. * * @return object * The Event that was passed, now modified by listeners. */ public function dispatch(object $event); } /** * Mapper from an event to the listeners that are applicable to that event. */ interface ListenerProviderInterface { /** * @param object $event * An event for which to return the relevant listeners. * @return iterable[callable] * An iterable (array, iterator, or generator) of callables. Each * callable MUST be type-compatible with $event. */ public function getListenersForEvent(object $event): iterable; } /** * An Event whose processing may be interrupted when the event has been handled. * * A Dispatcher implementation MUST check to determine if an Event * is marked as stopped after each listener is called. If it is then it should * return immediately without calling any further Listeners. */ interface StoppableEventInterface { /** * Is propagation stopped? * * This will typically only be used by the Dispatcher to determine if the * previous listener halted propagation. * * @return bool * True if the Event is complete and no further listeners should be called. * False to continue calling listeners. */ public function isPropagationStopped(): bool; } } namespace ForminatorGoogleAddon\Psr\Log { /** * This is a simple Logger implementation that other Loggers can inherit from. * * It simply delegates all log-level-specific methods to the `log` method to * reduce boilerplate code that a simple Logger that does the same thing with * messages regardless of the error level has to implement. */ abstract class AbstractLogger implements \ForminatorGoogleAddon\Psr\Log\LoggerInterface { /** * System is unusable. * * @param string $message * @param mixed[] $context * * @return void */ public function emergency($message, array $context = array()) { } /** * Action must be taken immediately. * * Example: Entire website down, database unavailable, etc. This should * trigger the SMS alerts and wake you up. * * @param string $message * @param mixed[] $context * * @return void */ public function alert($message, array $context = array()) { } /** * Critical conditions. * * Example: Application component unavailable, unexpected exception. * * @param string $message * @param mixed[] $context * * @return void */ public function critical($message, array $context = array()) { } /** * Runtime errors that do not require immediate action but should typically * be logged and monitored. * * @param string $message * @param mixed[] $context * * @return void */ public function error($message, array $context = array()) { } /** * Exceptional occurrences that are not errors. * * Example: Use of deprecated APIs, poor use of an API, undesirable things * that are not necessarily wrong. * * @param string $message * @param mixed[] $context * * @return void */ public function warning($message, array $context = array()) { } /** * Normal but significant events. * * @param string $message * @param mixed[] $context * * @return void */ public function notice($message, array $context = array()) { } /** * Interesting events. * * Example: User logs in, SQL logs. * * @param string $message * @param mixed[] $context * * @return void */ public function info($message, array $context = array()) { } /** * Detailed debug information. * * @param string $message * @param mixed[] $context * * @return void */ public function debug($message, array $context = array()) { } } class InvalidArgumentException extends \InvalidArgumentException { } /** * Describes log levels. */ class LogLevel { const EMERGENCY = 'emergency'; const ALERT = 'alert'; const CRITICAL = 'critical'; const ERROR = 'error'; const WARNING = 'warning'; const NOTICE = 'notice'; const INFO = 'info'; const DEBUG = 'debug'; } /** * Describes a logger-aware instance. */ interface LoggerAwareInterface { /** * Sets a logger instance on the object. * * @param LoggerInterface $logger * * @return void */ public function setLogger(\ForminatorGoogleAddon\Psr\Log\LoggerInterface $logger); } /** * Basic Implementation of LoggerAwareInterface. */ trait LoggerAwareTrait { /** * The logger instance. * * @var LoggerInterface|null */ protected $logger; /** * Sets a logger. * * @param LoggerInterface $logger */ public function setLogger(\ForminatorGoogleAddon\Psr\Log\LoggerInterface $logger) { } } /** * This is a simple Logger trait that classes unable to extend AbstractLogger * (because they extend another class, etc) can include. * * It simply delegates all log-level-specific methods to the `log` method to * reduce boilerplate code that a simple Logger that does the same thing with * messages regardless of the error level has to implement. */ trait LoggerTrait { /** * System is unusable. * * @param string $message * @param array $context * * @return void */ public function emergency($message, array $context = array()) { } /** * Action must be taken immediately. * * Example: Entire website down, database unavailable, etc. This should * trigger the SMS alerts and wake you up. * * @param string $message * @param array $context * * @return void */ public function alert($message, array $context = array()) { } /** * Critical conditions. * * Example: Application component unavailable, unexpected exception. * * @param string $message * @param array $context * * @return void */ public function critical($message, array $context = array()) { } /** * Runtime errors that do not require immediate action but should typically * be logged and monitored. * * @param string $message * @param array $context * * @return void */ public function error($message, array $context = array()) { } /** * Exceptional occurrences that are not errors. * * Example: Use of deprecated APIs, poor use of an API, undesirable things * that are not necessarily wrong. * * @param string $message * @param array $context * * @return void */ public function warning($message, array $context = array()) { } /** * Normal but significant events. * * @param string $message * @param array $context * * @return void */ public function notice($message, array $context = array()) { } /** * Interesting events. * * Example: User logs in, SQL logs. * * @param string $message * @param array $context * * @return void */ public function info($message, array $context = array()) { } /** * Detailed debug information. * * @param string $message * @param array $context * * @return void */ public function debug($message, array $context = array()) { } /** * Logs with an arbitrary level. * * @param mixed $level * @param string $message * @param array $context * * @return void * * @throws \Psr\Log\InvalidArgumentException */ abstract public function log($level, $message, array $context = array()); } /** * This Logger can be used to avoid conditional log calls. * * Logging should always be optional, and if no logger is provided to your * library creating a NullLogger instance to have something to throw logs at * is a good way to avoid littering your code with `if ($this->logger) { }` * blocks. */ class NullLogger extends \ForminatorGoogleAddon\Psr\Log\AbstractLogger { /** * Logs with an arbitrary level. * * @param mixed $level * @param string $message * @param array $context * * @return void * * @throws \Psr\Log\InvalidArgumentException */ public function log($level, $message, array $context = array()) { } } } namespace ForminatorGoogleAddon\Psr\Log\Test { /** * This class is internal and does not follow the BC promise. * * Do NOT use this class in any way. * * @internal */ class DummyTest { public function __toString() { } } /** * Provides a base test class for ensuring compliance with the LoggerInterface. * * Implementors can extend the class and implement abstract methods to run this * as part of their test suite. */ abstract class LoggerInterfaceTest extends \ForminatorGoogleAddon\PHPUnit\Framework\TestCase { /** * @return LoggerInterface */ abstract public function getLogger(); /** * This must return the log messages in order. * * The simple formatting of the messages is: " ". * * Example ->error('Foo') would yield "error Foo". * * @return string[] */ abstract public function getLogs(); public function testImplements() { } /** * @dataProvider provideLevelsAndMessages */ public function testLogsAtAllLevels($level, $message) { } public function provideLevelsAndMessages() { } /** * @expectedException \Psr\Log\InvalidArgumentException */ public function testThrowsOnInvalidLevel() { } public function testContextReplacement() { } public function testObjectCastToString() { } public function testContextCanContainAnything() { } public function testContextExceptionKeyCanBeExceptionOrOtherValues() { } } /** * Used for testing purposes. * * It records all records and gives you access to them for verification. * * @method bool hasEmergency($record) * @method bool hasAlert($record) * @method bool hasCritical($record) * @method bool hasError($record) * @method bool hasWarning($record) * @method bool hasNotice($record) * @method bool hasInfo($record) * @method bool hasDebug($record) * * @method bool hasEmergencyRecords() * @method bool hasAlertRecords() * @method bool hasCriticalRecords() * @method bool hasErrorRecords() * @method bool hasWarningRecords() * @method bool hasNoticeRecords() * @method bool hasInfoRecords() * @method bool hasDebugRecords() * * @method bool hasEmergencyThatContains($message) * @method bool hasAlertThatContains($message) * @method bool hasCriticalThatContains($message) * @method bool hasErrorThatContains($message) * @method bool hasWarningThatContains($message) * @method bool hasNoticeThatContains($message) * @method bool hasInfoThatContains($message) * @method bool hasDebugThatContains($message) * * @method bool hasEmergencyThatMatches($message) * @method bool hasAlertThatMatches($message) * @method bool hasCriticalThatMatches($message) * @method bool hasErrorThatMatches($message) * @method bool hasWarningThatMatches($message) * @method bool hasNoticeThatMatches($message) * @method bool hasInfoThatMatches($message) * @method bool hasDebugThatMatches($message) * * @method bool hasEmergencyThatPasses($message) * @method bool hasAlertThatPasses($message) * @method bool hasCriticalThatPasses($message) * @method bool hasErrorThatPasses($message) * @method bool hasWarningThatPasses($message) * @method bool hasNoticeThatPasses($message) * @method bool hasInfoThatPasses($message) * @method bool hasDebugThatPasses($message) */ class TestLogger extends \ForminatorGoogleAddon\Psr\Log\AbstractLogger { /** * @var array */ public $records = []; public $recordsByLevel = []; /** * @inheritdoc */ public function log($level, $message, array $context = []) { } public function hasRecords($level) { } public function hasRecord($record, $level) { } public function hasRecordThatContains($message, $level) { } public function hasRecordThatMatches($regex, $level) { } public function hasRecordThatPasses(callable $predicate, $level) { } public function __call($method, $args) { } public function reset() { } } } namespace { // autoload_real.php @generated by Composer class ComposerAutoloaderInit1e585a5d0f77563c00a772ea20ebd3ac { private static $loader; public static function loadClassLoader($class) { } /** * @return \Composer\Autoload\ClassLoader */ public static function getLoader() { } } } namespace Composer\Autoload { class ComposerStaticInit1e585a5d0f77563c00a772ea20ebd3ac { public static $classMap = array('Composer\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 'ForminatorGoogleAddon\Firebase\JWT\BeforeValidException' => __DIR__ . '/../..' . '/vendor-prefixed/firebase/php-jwt/src/BeforeValidException.php', 'ForminatorGoogleAddon\Firebase\JWT\CachedKeySet' => __DIR__ . '/../..' . '/vendor-prefixed/firebase/php-jwt/src/CachedKeySet.php', 'ForminatorGoogleAddon\Firebase\JWT\ExpiredException' => __DIR__ . '/../..' . '/vendor-prefixed/firebase/php-jwt/src/ExpiredException.php', 'ForminatorGoogleAddon\Firebase\JWT\JWK' => __DIR__ . '/../..' . '/vendor-prefixed/firebase/php-jwt/src/JWK.php', 'ForminatorGoogleAddon\Firebase\JWT\JWT' => __DIR__ . '/../..' . '/vendor-prefixed/firebase/php-jwt/src/JWT.php', 'ForminatorGoogleAddon\Firebase\JWT\JWTExceptionWithPayloadInterface' => __DIR__ . '/../..' . '/vendor-prefixed/firebase/php-jwt/src/JWTExceptionWithPayloadInterface.php', 'ForminatorGoogleAddon\Firebase\JWT\Key' => __DIR__ . '/../..' . '/vendor-prefixed/firebase/php-jwt/src/Key.php', 'ForminatorGoogleAddon\Firebase\JWT\SignatureInvalidException' => __DIR__ . '/../..' . '/vendor-prefixed/firebase/php-jwt/src/SignatureInvalidException.php', 'ForminatorGoogleAddon\Google\AccessToken\Revoke' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/AccessToken/Revoke.php', 'ForminatorGoogleAddon\Google\AccessToken\Verify' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/AccessToken/Verify.php', 'ForminatorGoogleAddon\Google\AuthHandler\AuthHandlerFactory' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/AuthHandler/AuthHandlerFactory.php', 'ForminatorGoogleAddon\Google\AuthHandler\Guzzle6AuthHandler' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/AuthHandler/Guzzle6AuthHandler.php', 'ForminatorGoogleAddon\Google\AuthHandler\Guzzle7AuthHandler' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/AuthHandler/Guzzle7AuthHandler.php', 'ForminatorGoogleAddon\Google\Auth\AccessToken' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/AccessToken.php', 'ForminatorGoogleAddon\Google\Auth\ApplicationDefaultCredentials' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/ApplicationDefaultCredentials.php', 'ForminatorGoogleAddon\Google\Auth\CacheTrait' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/CacheTrait.php', 'ForminatorGoogleAddon\Google\Auth\Cache\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Cache/InvalidArgumentException.php', 'ForminatorGoogleAddon\Google\Auth\Cache\Item' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Cache/Item.php', 'ForminatorGoogleAddon\Google\Auth\Cache\MemoryCacheItemPool' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Cache/MemoryCacheItemPool.php', 'ForminatorGoogleAddon\Google\Auth\Cache\SysVCacheItemPool' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Cache/SysVCacheItemPool.php', 'ForminatorGoogleAddon\Google\Auth\Cache\TypedItem' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Cache/TypedItem.php', 'ForminatorGoogleAddon\Google\Auth\CredentialSource\AwsNativeSource' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/CredentialSource/AwsNativeSource.php', 'ForminatorGoogleAddon\Google\Auth\CredentialSource\FileSource' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/CredentialSource/FileSource.php', 'ForminatorGoogleAddon\Google\Auth\CredentialSource\UrlSource' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/CredentialSource/UrlSource.php', 'ForminatorGoogleAddon\Google\Auth\CredentialsLoader' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/CredentialsLoader.php', 'ForminatorGoogleAddon\Google\Auth\Credentials\AppIdentityCredentials' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Credentials/AppIdentityCredentials.php', 'ForminatorGoogleAddon\Google\Auth\Credentials\ExternalAccountCredentials' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Credentials/ExternalAccountCredentials.php', 'ForminatorGoogleAddon\Google\Auth\Credentials\GCECredentials' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Credentials/GCECredentials.php', 'ForminatorGoogleAddon\Google\Auth\Credentials\IAMCredentials' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Credentials/IAMCredentials.php', 'ForminatorGoogleAddon\Google\Auth\Credentials\ImpersonatedServiceAccountCredentials' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Credentials/ImpersonatedServiceAccountCredentials.php', 'ForminatorGoogleAddon\Google\Auth\Credentials\InsecureCredentials' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Credentials/InsecureCredentials.php', 'ForminatorGoogleAddon\Google\Auth\Credentials\ServiceAccountCredentials' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Credentials/ServiceAccountCredentials.php', 'ForminatorGoogleAddon\Google\Auth\Credentials\ServiceAccountJwtAccessCredentials' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php', 'ForminatorGoogleAddon\Google\Auth\Credentials\UserRefreshCredentials' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Credentials/UserRefreshCredentials.php', 'ForminatorGoogleAddon\Google\Auth\ExternalAccountCredentialSourceInterface' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/ExternalAccountCredentialSourceInterface.php', 'ForminatorGoogleAddon\Google\Auth\FetchAuthTokenCache' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/FetchAuthTokenCache.php', 'ForminatorGoogleAddon\Google\Auth\FetchAuthTokenInterface' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/FetchAuthTokenInterface.php', 'ForminatorGoogleAddon\Google\Auth\GCECache' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/GCECache.php', 'ForminatorGoogleAddon\Google\Auth\GetQuotaProjectInterface' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/GetQuotaProjectInterface.php', 'ForminatorGoogleAddon\Google\Auth\GetUniverseDomainInterface' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/GetUniverseDomainInterface.php', 'ForminatorGoogleAddon\Google\Auth\HttpHandler\Guzzle6HttpHandler' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/HttpHandler/Guzzle6HttpHandler.php', 'ForminatorGoogleAddon\Google\Auth\HttpHandler\Guzzle7HttpHandler' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/HttpHandler/Guzzle7HttpHandler.php', 'ForminatorGoogleAddon\Google\Auth\HttpHandler\HttpClientCache' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/HttpHandler/HttpClientCache.php', 'ForminatorGoogleAddon\Google\Auth\HttpHandler\HttpHandlerFactory' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/HttpHandler/HttpHandlerFactory.php', 'ForminatorGoogleAddon\Google\Auth\Iam' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Iam.php', 'ForminatorGoogleAddon\Google\Auth\IamSignerTrait' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/IamSignerTrait.php', 'ForminatorGoogleAddon\Google\Auth\Middleware\AuthTokenMiddleware' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Middleware/AuthTokenMiddleware.php', 'ForminatorGoogleAddon\Google\Auth\Middleware\ProxyAuthTokenMiddleware' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Middleware/ProxyAuthTokenMiddleware.php', 'ForminatorGoogleAddon\Google\Auth\Middleware\ScopedAccessTokenMiddleware' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Middleware/ScopedAccessTokenMiddleware.php', 'ForminatorGoogleAddon\Google\Auth\Middleware\SimpleMiddleware' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/Middleware/SimpleMiddleware.php', 'ForminatorGoogleAddon\Google\Auth\OAuth2' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/OAuth2.php', 'ForminatorGoogleAddon\Google\Auth\ProjectIdProviderInterface' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/ProjectIdProviderInterface.php', 'ForminatorGoogleAddon\Google\Auth\ServiceAccountSignerTrait' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/ServiceAccountSignerTrait.php', 'ForminatorGoogleAddon\Google\Auth\SignBlobInterface' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/SignBlobInterface.php', 'ForminatorGoogleAddon\Google\Auth\UpdateMetadataInterface' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/UpdateMetadataInterface.php', 'ForminatorGoogleAddon\Google\Auth\UpdateMetadataTrait' => __DIR__ . '/../..' . '/vendor-prefixed/google/auth/src/UpdateMetadataTrait.php', 'ForminatorGoogleAddon\Google\Client' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/Client.php', 'ForminatorGoogleAddon\Google\Collection' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/Collection.php', 'ForminatorGoogleAddon\Google\Exception' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/Exception.php', 'ForminatorGoogleAddon\Google\Http\Batch' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/Http/Batch.php', 'ForminatorGoogleAddon\Google\Http\MediaFileUpload' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/Http/MediaFileUpload.php', 'ForminatorGoogleAddon\Google\Http\REST' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/Http/REST.php', 'ForminatorGoogleAddon\Google\Model' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/Model.php', 'ForminatorGoogleAddon\Google\Service' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/Service.php', 'ForminatorGoogleAddon\Google\Service\Drive' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive.php', 'ForminatorGoogleAddon\Google\Service\Drive\About' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/About.php', 'ForminatorGoogleAddon\Google\Service\Drive\AboutDriveThemes' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/AboutDriveThemes.php', 'ForminatorGoogleAddon\Google\Service\Drive\AboutStorageQuota' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/AboutStorageQuota.php', 'ForminatorGoogleAddon\Google\Service\Drive\AboutTeamDriveThemes' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/AboutTeamDriveThemes.php', 'ForminatorGoogleAddon\Google\Service\Drive\App' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/App.php', 'ForminatorGoogleAddon\Google\Service\Drive\AppIcons' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/AppIcons.php', 'ForminatorGoogleAddon\Google\Service\Drive\AppList' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/AppList.php', 'ForminatorGoogleAddon\Google\Service\Drive\Change' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Change.php', 'ForminatorGoogleAddon\Google\Service\Drive\ChangeList' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/ChangeList.php', 'ForminatorGoogleAddon\Google\Service\Drive\Channel' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Channel.php', 'ForminatorGoogleAddon\Google\Service\Drive\Comment' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Comment.php', 'ForminatorGoogleAddon\Google\Service\Drive\CommentList' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/CommentList.php', 'ForminatorGoogleAddon\Google\Service\Drive\CommentQuotedFileContent' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/CommentQuotedFileContent.php', 'ForminatorGoogleAddon\Google\Service\Drive\ContentRestriction' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/ContentRestriction.php', 'ForminatorGoogleAddon\Google\Service\Drive\Drive' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Drive.php', 'ForminatorGoogleAddon\Google\Service\Drive\DriveBackgroundImageFile' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/DriveBackgroundImageFile.php', 'ForminatorGoogleAddon\Google\Service\Drive\DriveCapabilities' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/DriveCapabilities.php', 'ForminatorGoogleAddon\Google\Service\Drive\DriveFile' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/DriveFile.php', 'ForminatorGoogleAddon\Google\Service\Drive\DriveFileCapabilities' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/DriveFileCapabilities.php', 'ForminatorGoogleAddon\Google\Service\Drive\DriveFileContentHints' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/DriveFileContentHints.php', 'ForminatorGoogleAddon\Google\Service\Drive\DriveFileContentHintsThumbnail' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/DriveFileContentHintsThumbnail.php', 'ForminatorGoogleAddon\Google\Service\Drive\DriveFileImageMediaMetadata' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/DriveFileImageMediaMetadata.php', 'ForminatorGoogleAddon\Google\Service\Drive\DriveFileImageMediaMetadataLocation' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/DriveFileImageMediaMetadataLocation.php', 'ForminatorGoogleAddon\Google\Service\Drive\DriveFileLabelInfo' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/DriveFileLabelInfo.php', 'ForminatorGoogleAddon\Google\Service\Drive\DriveFileLinkShareMetadata' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/DriveFileLinkShareMetadata.php', 'ForminatorGoogleAddon\Google\Service\Drive\DriveFileShortcutDetails' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/DriveFileShortcutDetails.php', 'ForminatorGoogleAddon\Google\Service\Drive\DriveFileVideoMediaMetadata' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/DriveFileVideoMediaMetadata.php', 'ForminatorGoogleAddon\Google\Service\Drive\DriveList' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/DriveList.php', 'ForminatorGoogleAddon\Google\Service\Drive\DriveRestrictions' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/DriveRestrictions.php', 'ForminatorGoogleAddon\Google\Service\Drive\FileList' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/FileList.php', 'ForminatorGoogleAddon\Google\Service\Drive\GeneratedIds' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/GeneratedIds.php', 'ForminatorGoogleAddon\Google\Service\Drive\Label' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Label.php', 'ForminatorGoogleAddon\Google\Service\Drive\LabelField' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/LabelField.php', 'ForminatorGoogleAddon\Google\Service\Drive\LabelFieldModification' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/LabelFieldModification.php', 'ForminatorGoogleAddon\Google\Service\Drive\LabelList' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/LabelList.php', 'ForminatorGoogleAddon\Google\Service\Drive\LabelModification' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/LabelModification.php', 'ForminatorGoogleAddon\Google\Service\Drive\ModifyLabelsRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/ModifyLabelsRequest.php', 'ForminatorGoogleAddon\Google\Service\Drive\ModifyLabelsResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/ModifyLabelsResponse.php', 'ForminatorGoogleAddon\Google\Service\Drive\Permission' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Permission.php', 'ForminatorGoogleAddon\Google\Service\Drive\PermissionList' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/PermissionList.php', 'ForminatorGoogleAddon\Google\Service\Drive\PermissionPermissionDetails' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/PermissionPermissionDetails.php', 'ForminatorGoogleAddon\Google\Service\Drive\PermissionTeamDrivePermissionDetails' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/PermissionTeamDrivePermissionDetails.php', 'ForminatorGoogleAddon\Google\Service\Drive\Reply' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Reply.php', 'ForminatorGoogleAddon\Google\Service\Drive\ReplyList' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/ReplyList.php', 'ForminatorGoogleAddon\Google\Service\Drive\Resource\About' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Resource/About.php', 'ForminatorGoogleAddon\Google\Service\Drive\Resource\Apps' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Resource/Apps.php', 'ForminatorGoogleAddon\Google\Service\Drive\Resource\Changes' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Resource/Changes.php', 'ForminatorGoogleAddon\Google\Service\Drive\Resource\Channels' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Resource/Channels.php', 'ForminatorGoogleAddon\Google\Service\Drive\Resource\Comments' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Resource/Comments.php', 'ForminatorGoogleAddon\Google\Service\Drive\Resource\Drives' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Resource/Drives.php', 'ForminatorGoogleAddon\Google\Service\Drive\Resource\Files' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Resource/Files.php', 'ForminatorGoogleAddon\Google\Service\Drive\Resource\Permissions' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Resource/Permissions.php', 'ForminatorGoogleAddon\Google\Service\Drive\Resource\Replies' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Resource/Replies.php', 'ForminatorGoogleAddon\Google\Service\Drive\Resource\Revisions' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Resource/Revisions.php', 'ForminatorGoogleAddon\Google\Service\Drive\Resource\Teamdrives' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Resource/Teamdrives.php', 'ForminatorGoogleAddon\Google\Service\Drive\Revision' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/Revision.php', 'ForminatorGoogleAddon\Google\Service\Drive\RevisionList' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/RevisionList.php', 'ForminatorGoogleAddon\Google\Service\Drive\StartPageToken' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/StartPageToken.php', 'ForminatorGoogleAddon\Google\Service\Drive\TeamDrive' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/TeamDrive.php', 'ForminatorGoogleAddon\Google\Service\Drive\TeamDriveBackgroundImageFile' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/TeamDriveBackgroundImageFile.php', 'ForminatorGoogleAddon\Google\Service\Drive\TeamDriveCapabilities' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/TeamDriveCapabilities.php', 'ForminatorGoogleAddon\Google\Service\Drive\TeamDriveList' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/TeamDriveList.php', 'ForminatorGoogleAddon\Google\Service\Drive\TeamDriveRestrictions' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/TeamDriveRestrictions.php', 'ForminatorGoogleAddon\Google\Service\Drive\User' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Drive/User.php', 'ForminatorGoogleAddon\Google\Service\Exception' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/Service/Exception.php', 'ForminatorGoogleAddon\Google\Service\Resource' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/Service/Resource.php', 'ForminatorGoogleAddon\Google\Service\Sheets' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddBandingRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddBandingRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddBandingResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddBandingResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddChartRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddChartRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddChartResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddChartResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddConditionalFormatRuleRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddConditionalFormatRuleRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddDataSourceRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddDataSourceRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddDataSourceResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddDataSourceResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddDimensionGroupRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddDimensionGroupRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddDimensionGroupResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddDimensionGroupResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddFilterViewRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddFilterViewRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddFilterViewResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddFilterViewResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddNamedRangeRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddNamedRangeRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddNamedRangeResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddNamedRangeResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddProtectedRangeRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddProtectedRangeRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddProtectedRangeResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddProtectedRangeResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddSheetRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddSheetRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddSheetResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddSheetResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddSlicerRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddSlicerRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AddSlicerResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AddSlicerResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AppendCellsRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AppendCellsRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AppendDimensionRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AppendDimensionRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AppendValuesResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AppendValuesResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AutoFillRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AutoFillRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\AutoResizeDimensionsRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/AutoResizeDimensionsRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BandedRange' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BandedRange.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BandingProperties' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BandingProperties.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BaselineValueFormat' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BaselineValueFormat.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BasicChartAxis' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BasicChartAxis.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BasicChartDomain' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BasicChartDomain.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BasicChartSeries' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BasicChartSeries.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BasicChartSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BasicChartSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BasicFilter' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BasicFilter.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BasicSeriesDataPointStyleOverride' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BasicSeriesDataPointStyleOverride.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BatchClearValuesByDataFilterRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BatchClearValuesByDataFilterRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BatchClearValuesByDataFilterResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BatchClearValuesByDataFilterResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BatchClearValuesRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BatchClearValuesRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BatchClearValuesResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BatchClearValuesResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BatchGetValuesByDataFilterRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BatchGetValuesByDataFilterRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BatchGetValuesByDataFilterResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BatchGetValuesByDataFilterResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BatchGetValuesResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BatchGetValuesResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BatchUpdateSpreadsheetRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BatchUpdateSpreadsheetRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BatchUpdateSpreadsheetResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BatchUpdateSpreadsheetResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BatchUpdateValuesByDataFilterRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BatchUpdateValuesByDataFilterRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BatchUpdateValuesByDataFilterResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BatchUpdateValuesByDataFilterResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BatchUpdateValuesRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BatchUpdateValuesRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BatchUpdateValuesResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BatchUpdateValuesResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BigQueryDataSourceSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BigQueryDataSourceSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BigQueryQuerySpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BigQueryQuerySpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BigQueryTableSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BigQueryTableSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BooleanCondition' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BooleanCondition.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BooleanRule' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BooleanRule.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Border' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Border.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Borders' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Borders.php', 'ForminatorGoogleAddon\Google\Service\Sheets\BubbleChartSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/BubbleChartSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\CancelDataSourceRefreshRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/CancelDataSourceRefreshRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\CancelDataSourceRefreshResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/CancelDataSourceRefreshResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\CancelDataSourceRefreshStatus' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/CancelDataSourceRefreshStatus.php', 'ForminatorGoogleAddon\Google\Service\Sheets\CandlestickChartSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/CandlestickChartSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\CandlestickData' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/CandlestickData.php', 'ForminatorGoogleAddon\Google\Service\Sheets\CandlestickDomain' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/CandlestickDomain.php', 'ForminatorGoogleAddon\Google\Service\Sheets\CandlestickSeries' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/CandlestickSeries.php', 'ForminatorGoogleAddon\Google\Service\Sheets\CellData' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/CellData.php', 'ForminatorGoogleAddon\Google\Service\Sheets\CellFormat' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/CellFormat.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ChartAxisViewWindowOptions' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ChartAxisViewWindowOptions.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ChartCustomNumberFormatOptions' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ChartCustomNumberFormatOptions.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ChartData' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ChartData.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ChartDateTimeRule' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ChartDateTimeRule.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ChartGroupRule' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ChartGroupRule.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ChartHistogramRule' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ChartHistogramRule.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ChartSourceRange' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ChartSourceRange.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ChartSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ChartSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ClearBasicFilterRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ClearBasicFilterRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ClearValuesRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ClearValuesRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ClearValuesResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ClearValuesResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Color' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Color.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ColorStyle' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ColorStyle.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ConditionValue' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ConditionValue.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ConditionalFormatRule' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ConditionalFormatRule.php', 'ForminatorGoogleAddon\Google\Service\Sheets\CopyPasteRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/CopyPasteRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\CopySheetToAnotherSpreadsheetRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/CopySheetToAnotherSpreadsheetRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\CreateDeveloperMetadataRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/CreateDeveloperMetadataRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\CreateDeveloperMetadataResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/CreateDeveloperMetadataResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\CutPasteRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/CutPasteRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataExecutionStatus' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataExecutionStatus.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataFilter' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataFilter.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataFilterValueRange' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataFilterValueRange.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataLabel' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataLabel.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSource' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSource.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSourceChartProperties' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSourceChartProperties.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumn' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSourceColumn.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSourceColumnReference' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSourceColumnReference.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSourceFormula' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSourceFormula.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSourceObjectReference' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSourceObjectReference.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSourceObjectReferences' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSourceObjectReferences.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSourceParameter' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSourceParameter.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSourceRefreshDailySchedule' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSourceRefreshDailySchedule.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSourceRefreshMonthlySchedule' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSourceRefreshMonthlySchedule.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSourceRefreshSchedule' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSourceRefreshSchedule.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSourceRefreshWeeklySchedule' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSourceRefreshWeeklySchedule.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSourceSheetDimensionRange' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSourceSheetDimensionRange.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSourceSheetProperties' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSourceSheetProperties.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSourceSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSourceSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataSourceTable' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataSourceTable.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DataValidationRule' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DataValidationRule.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DateTimeRule' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DateTimeRule.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteBandingRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteBandingRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteConditionalFormatRuleRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteConditionalFormatRuleRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteConditionalFormatRuleResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteConditionalFormatRuleResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteDataSourceRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteDataSourceRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteDeveloperMetadataRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteDeveloperMetadataRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteDeveloperMetadataResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteDeveloperMetadataResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteDimensionGroupRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteDimensionGroupRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteDimensionGroupResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteDimensionGroupResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteDimensionRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteDimensionRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteDuplicatesRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteDuplicatesRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteDuplicatesResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteDuplicatesResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteEmbeddedObjectRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteEmbeddedObjectRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteFilterViewRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteFilterViewRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteNamedRangeRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteNamedRangeRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteProtectedRangeRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteProtectedRangeRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteRangeRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteRangeRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeleteSheetRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeleteSheetRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadata' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeveloperMetadata.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadataLocation' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeveloperMetadataLocation.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DeveloperMetadataLookup' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DeveloperMetadataLookup.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DimensionGroup' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DimensionGroup.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DimensionProperties' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DimensionProperties.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DimensionRange' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DimensionRange.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DuplicateFilterViewRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DuplicateFilterViewRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DuplicateFilterViewResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DuplicateFilterViewResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DuplicateSheetRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DuplicateSheetRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\DuplicateSheetResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/DuplicateSheetResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Editors' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Editors.php', 'ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedChart' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/EmbeddedChart.php', 'ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedObjectBorder' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/EmbeddedObjectBorder.php', 'ForminatorGoogleAddon\Google\Service\Sheets\EmbeddedObjectPosition' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/EmbeddedObjectPosition.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ErrorValue' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ErrorValue.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ExtendedValue' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ExtendedValue.php', 'ForminatorGoogleAddon\Google\Service\Sheets\FilterCriteria' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/FilterCriteria.php', 'ForminatorGoogleAddon\Google\Service\Sheets\FilterSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/FilterSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\FilterView' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/FilterView.php', 'ForminatorGoogleAddon\Google\Service\Sheets\FindReplaceRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/FindReplaceRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\FindReplaceResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/FindReplaceResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\GetSpreadsheetByDataFilterRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/GetSpreadsheetByDataFilterRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\GradientRule' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/GradientRule.php', 'ForminatorGoogleAddon\Google\Service\Sheets\GridCoordinate' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/GridCoordinate.php', 'ForminatorGoogleAddon\Google\Service\Sheets\GridData' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/GridData.php', 'ForminatorGoogleAddon\Google\Service\Sheets\GridProperties' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/GridProperties.php', 'ForminatorGoogleAddon\Google\Service\Sheets\GridRange' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/GridRange.php', 'ForminatorGoogleAddon\Google\Service\Sheets\HistogramChartSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/HistogramChartSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\HistogramRule' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/HistogramRule.php', 'ForminatorGoogleAddon\Google\Service\Sheets\HistogramSeries' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/HistogramSeries.php', 'ForminatorGoogleAddon\Google\Service\Sheets\InsertDimensionRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/InsertDimensionRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\InsertRangeRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/InsertRangeRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\InterpolationPoint' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/InterpolationPoint.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Interval' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Interval.php', 'ForminatorGoogleAddon\Google\Service\Sheets\IterativeCalculationSettings' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/IterativeCalculationSettings.php', 'ForminatorGoogleAddon\Google\Service\Sheets\KeyValueFormat' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/KeyValueFormat.php', 'ForminatorGoogleAddon\Google\Service\Sheets\LineStyle' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/LineStyle.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Link' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Link.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ManualRule' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ManualRule.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ManualRuleGroup' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ManualRuleGroup.php', 'ForminatorGoogleAddon\Google\Service\Sheets\MatchedDeveloperMetadata' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/MatchedDeveloperMetadata.php', 'ForminatorGoogleAddon\Google\Service\Sheets\MatchedValueRange' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/MatchedValueRange.php', 'ForminatorGoogleAddon\Google\Service\Sheets\MergeCellsRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/MergeCellsRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\MoveDimensionRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/MoveDimensionRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\NamedRange' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/NamedRange.php', 'ForminatorGoogleAddon\Google\Service\Sheets\NumberFormat' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/NumberFormat.php', 'ForminatorGoogleAddon\Google\Service\Sheets\OrgChartSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/OrgChartSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\OverlayPosition' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/OverlayPosition.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Padding' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Padding.php', 'ForminatorGoogleAddon\Google\Service\Sheets\PasteDataRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/PasteDataRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\PieChartSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/PieChartSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\PivotFilterCriteria' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/PivotFilterCriteria.php', 'ForminatorGoogleAddon\Google\Service\Sheets\PivotFilterSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/PivotFilterSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\PivotGroup' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/PivotGroup.php', 'ForminatorGoogleAddon\Google\Service\Sheets\PivotGroupLimit' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/PivotGroupLimit.php', 'ForminatorGoogleAddon\Google\Service\Sheets\PivotGroupRule' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/PivotGroupRule.php', 'ForminatorGoogleAddon\Google\Service\Sheets\PivotGroupSortValueBucket' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/PivotGroupSortValueBucket.php', 'ForminatorGoogleAddon\Google\Service\Sheets\PivotGroupValueMetadata' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/PivotGroupValueMetadata.php', 'ForminatorGoogleAddon\Google\Service\Sheets\PivotTable' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/PivotTable.php', 'ForminatorGoogleAddon\Google\Service\Sheets\PivotValue' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/PivotValue.php', 'ForminatorGoogleAddon\Google\Service\Sheets\PointStyle' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/PointStyle.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ProtectedRange' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ProtectedRange.php', 'ForminatorGoogleAddon\Google\Service\Sheets\RandomizeRangeRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/RandomizeRangeRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\RefreshCancellationStatus' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/RefreshCancellationStatus.php', 'ForminatorGoogleAddon\Google\Service\Sheets\RefreshDataSourceObjectExecutionStatus' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/RefreshDataSourceObjectExecutionStatus.php', 'ForminatorGoogleAddon\Google\Service\Sheets\RefreshDataSourceRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/RefreshDataSourceRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\RefreshDataSourceResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/RefreshDataSourceResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\RepeatCellRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/RepeatCellRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Request' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Request.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Resource\Spreadsheets' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Resource/Spreadsheets.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Resource\SpreadsheetsDeveloperMetadata' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Resource/SpreadsheetsDeveloperMetadata.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Resource\SpreadsheetsSheets' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Resource/SpreadsheetsSheets.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Resource\SpreadsheetsValues' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Resource/SpreadsheetsValues.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Response' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Response.php', 'ForminatorGoogleAddon\Google\Service\Sheets\RowData' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/RowData.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ScorecardChartSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ScorecardChartSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\SearchDeveloperMetadataRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/SearchDeveloperMetadataRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\SearchDeveloperMetadataResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/SearchDeveloperMetadataResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\SetBasicFilterRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/SetBasicFilterRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\SetDataValidationRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/SetDataValidationRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Sheet' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Sheet.php', 'ForminatorGoogleAddon\Google\Service\Sheets\SheetProperties' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/SheetProperties.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Slicer' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Slicer.php', 'ForminatorGoogleAddon\Google\Service\Sheets\SlicerSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/SlicerSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\SortRangeRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/SortRangeRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\SortSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/SortSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\SourceAndDestination' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/SourceAndDestination.php', 'ForminatorGoogleAddon\Google\Service\Sheets\Spreadsheet' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/Spreadsheet.php', 'ForminatorGoogleAddon\Google\Service\Sheets\SpreadsheetProperties' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/SpreadsheetProperties.php', 'ForminatorGoogleAddon\Google\Service\Sheets\SpreadsheetTheme' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/SpreadsheetTheme.php', 'ForminatorGoogleAddon\Google\Service\Sheets\TextFormat' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/TextFormat.php', 'ForminatorGoogleAddon\Google\Service\Sheets\TextFormatRun' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/TextFormatRun.php', 'ForminatorGoogleAddon\Google\Service\Sheets\TextPosition' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/TextPosition.php', 'ForminatorGoogleAddon\Google\Service\Sheets\TextRotation' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/TextRotation.php', 'ForminatorGoogleAddon\Google\Service\Sheets\TextToColumnsRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/TextToColumnsRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ThemeColorPair' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ThemeColorPair.php', 'ForminatorGoogleAddon\Google\Service\Sheets\TimeOfDay' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/TimeOfDay.php', 'ForminatorGoogleAddon\Google\Service\Sheets\TreemapChartColorScale' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/TreemapChartColorScale.php', 'ForminatorGoogleAddon\Google\Service\Sheets\TreemapChartSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/TreemapChartSpec.php', 'ForminatorGoogleAddon\Google\Service\Sheets\TrimWhitespaceRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/TrimWhitespaceRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\TrimWhitespaceResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/TrimWhitespaceResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UnmergeCellsRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UnmergeCellsRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateBandingRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateBandingRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateBordersRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateBordersRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateCellsRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateCellsRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateChartSpecRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateChartSpecRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateConditionalFormatRuleRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateConditionalFormatRuleRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateConditionalFormatRuleResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateConditionalFormatRuleResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateDataSourceRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateDataSourceRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateDataSourceResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateDataSourceResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateDeveloperMetadataRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateDeveloperMetadataRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateDeveloperMetadataResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateDeveloperMetadataResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateDimensionGroupRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateDimensionGroupRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateDimensionPropertiesRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateDimensionPropertiesRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateEmbeddedObjectBorderRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateEmbeddedObjectBorderRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateEmbeddedObjectPositionRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateEmbeddedObjectPositionRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateEmbeddedObjectPositionResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateEmbeddedObjectPositionResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateFilterViewRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateFilterViewRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateNamedRangeRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateNamedRangeRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateProtectedRangeRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateProtectedRangeRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateSheetPropertiesRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateSheetPropertiesRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateSlicerSpecRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateSlicerSpecRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateSpreadsheetPropertiesRequest' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateSpreadsheetPropertiesRequest.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateValuesByDataFilterResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateValuesByDataFilterResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\UpdateValuesResponse' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/UpdateValuesResponse.php', 'ForminatorGoogleAddon\Google\Service\Sheets\ValueRange' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/ValueRange.php', 'ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartColumnStyle' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/WaterfallChartColumnStyle.php', 'ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartCustomSubtotal' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/WaterfallChartCustomSubtotal.php', 'ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartDomain' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/WaterfallChartDomain.php', 'ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartSeries' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/WaterfallChartSeries.php', 'ForminatorGoogleAddon\Google\Service\Sheets\WaterfallChartSpec' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient-services/src/Sheets/WaterfallChartSpec.php', 'ForminatorGoogleAddon\Google\Task\Composer' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/Task/Composer.php', 'ForminatorGoogleAddon\Google\Task\Exception' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/Task/Exception.php', 'ForminatorGoogleAddon\Google\Task\Retryable' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/Task/Retryable.php', 'ForminatorGoogleAddon\Google\Task\Runner' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/Task/Runner.php', 'ForminatorGoogleAddon\Google\Utils\UriTemplate' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/Utils/UriTemplate.php', 'ForminatorGoogleAddon\Google_AccessToken_Revoke' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_AccessToken_Verify' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_AuthHandler_AuthHandlerFactory' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_AuthHandler_Guzzle6AuthHandler' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_AuthHandler_Guzzle7AuthHandler' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_Client' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_Collection' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_Exception' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_Http_Batch' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_Http_MediaFileUpload' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_Http_REST' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_Model' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_Service' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_Service_Exception' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_Service_Resource' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_Task_Composer' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_Task_Exception' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_Task_Retryable' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_Task_Runner' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\Google_Utils_UriTemplate' => __DIR__ . '/../..' . '/vendor-prefixed/google/apiclient/src/aliases.php', 'ForminatorGoogleAddon\GuzzleHttp\BodySummarizer' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/BodySummarizer.php', 'ForminatorGoogleAddon\GuzzleHttp\BodySummarizerInterface' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/BodySummarizerInterface.php', 'ForminatorGoogleAddon\GuzzleHttp\Client' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Client.php', 'ForminatorGoogleAddon\GuzzleHttp\ClientInterface' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/ClientInterface.php', 'ForminatorGoogleAddon\GuzzleHttp\ClientTrait' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/ClientTrait.php', 'ForminatorGoogleAddon\GuzzleHttp\Cookie\CookieJar' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Cookie/CookieJar.php', 'ForminatorGoogleAddon\GuzzleHttp\Cookie\CookieJarInterface' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php', 'ForminatorGoogleAddon\GuzzleHttp\Cookie\FileCookieJar' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php', 'ForminatorGoogleAddon\GuzzleHttp\Cookie\SessionCookieJar' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php', 'ForminatorGoogleAddon\GuzzleHttp\Cookie\SetCookie' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Cookie/SetCookie.php', 'ForminatorGoogleAddon\GuzzleHttp\Exception\BadResponseException' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Exception/BadResponseException.php', 'ForminatorGoogleAddon\GuzzleHttp\Exception\ClientException' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Exception/ClientException.php', 'ForminatorGoogleAddon\GuzzleHttp\Exception\ConnectException' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Exception/ConnectException.php', 'ForminatorGoogleAddon\GuzzleHttp\Exception\GuzzleException' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Exception/GuzzleException.php', 'ForminatorGoogleAddon\GuzzleHttp\Exception\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php', 'ForminatorGoogleAddon\GuzzleHttp\Exception\RequestException' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Exception/RequestException.php', 'ForminatorGoogleAddon\GuzzleHttp\Exception\ServerException' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Exception/ServerException.php', 'ForminatorGoogleAddon\GuzzleHttp\Exception\TooManyRedirectsException' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php', 'ForminatorGoogleAddon\GuzzleHttp\Exception\TransferException' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Exception/TransferException.php', 'ForminatorGoogleAddon\GuzzleHttp\HandlerStack' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/HandlerStack.php', 'ForminatorGoogleAddon\GuzzleHttp\Handler\CurlFactory' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Handler/CurlFactory.php', 'ForminatorGoogleAddon\GuzzleHttp\Handler\CurlFactoryInterface' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php', 'ForminatorGoogleAddon\GuzzleHttp\Handler\CurlHandler' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Handler/CurlHandler.php', 'ForminatorGoogleAddon\GuzzleHttp\Handler\CurlMultiHandler' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php', 'ForminatorGoogleAddon\GuzzleHttp\Handler\EasyHandle' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Handler/EasyHandle.php', 'ForminatorGoogleAddon\GuzzleHttp\Handler\HeaderProcessor' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Handler/HeaderProcessor.php', 'ForminatorGoogleAddon\GuzzleHttp\Handler\MockHandler' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Handler/MockHandler.php', 'ForminatorGoogleAddon\GuzzleHttp\Handler\Proxy' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Handler/Proxy.php', 'ForminatorGoogleAddon\GuzzleHttp\Handler\StreamHandler' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Handler/StreamHandler.php', 'ForminatorGoogleAddon\GuzzleHttp\MessageFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/MessageFormatter.php', 'ForminatorGoogleAddon\GuzzleHttp\MessageFormatterInterface' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/MessageFormatterInterface.php', 'ForminatorGoogleAddon\GuzzleHttp\Middleware' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Middleware.php', 'ForminatorGoogleAddon\GuzzleHttp\Pool' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Pool.php', 'ForminatorGoogleAddon\GuzzleHttp\PrepareBodyMiddleware' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\AggregateException' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/AggregateException.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\CancellationException' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/CancellationException.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\Coroutine' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/Coroutine.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\Create' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/Create.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\Each' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/Each.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\EachPromise' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/EachPromise.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\FulfilledPromise' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/FulfilledPromise.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\Is' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/Is.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\Promise' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/Promise.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\PromiseInterface' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/PromiseInterface.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\PromisorInterface' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/PromisorInterface.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\RejectedPromise' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/RejectedPromise.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\RejectionException' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/RejectionException.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\TaskQueue' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/TaskQueue.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\TaskQueueInterface' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/TaskQueueInterface.php', 'ForminatorGoogleAddon\GuzzleHttp\Promise\Utils' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/promises/src/Utils.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\AppendStream' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/AppendStream.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\BufferStream' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/BufferStream.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\CachingStream' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/CachingStream.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\DroppingStream' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/DroppingStream.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\Exception\MalformedUriException' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/Exception/MalformedUriException.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\FnStream' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/FnStream.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\Header' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/Header.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\HttpFactory' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/HttpFactory.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\InflateStream' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/InflateStream.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\LazyOpenStream' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/LazyOpenStream.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\LimitStream' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/LimitStream.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\Message' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/Message.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\MessageTrait' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/MessageTrait.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\MimeType' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/MimeType.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\MultipartStream' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/MultipartStream.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\NoSeekStream' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/NoSeekStream.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\PumpStream' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/PumpStream.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\Query' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/Query.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\Request' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/Request.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\Response' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/Response.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\Rfc7230' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/Rfc7230.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\ServerRequest' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/ServerRequest.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\Stream' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/Stream.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\StreamDecoratorTrait' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/StreamDecoratorTrait.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\StreamWrapper' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/StreamWrapper.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\UploadedFile' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/UploadedFile.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\Uri' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/Uri.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\UriComparator' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/UriComparator.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\UriNormalizer' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/UriNormalizer.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\UriResolver' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/UriResolver.php', 'ForminatorGoogleAddon\GuzzleHttp\Psr7\Utils' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/psr7/src/Utils.php', 'ForminatorGoogleAddon\GuzzleHttp\RedirectMiddleware' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/RedirectMiddleware.php', 'ForminatorGoogleAddon\GuzzleHttp\RequestOptions' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/RequestOptions.php', 'ForminatorGoogleAddon\GuzzleHttp\RetryMiddleware' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/RetryMiddleware.php', 'ForminatorGoogleAddon\GuzzleHttp\TransferStats' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/TransferStats.php', 'ForminatorGoogleAddon\GuzzleHttp\Utils' => __DIR__ . '/../..' . '/vendor-prefixed/guzzlehttp/guzzle/src/Utils.php', 'ForminatorGoogleAddon\Monolog\Attribute\AsMonologProcessor' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Attribute/AsMonologProcessor.php', 'ForminatorGoogleAddon\Monolog\DateTimeImmutable' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/DateTimeImmutable.php', 'ForminatorGoogleAddon\Monolog\ErrorHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/ErrorHandler.php', 'ForminatorGoogleAddon\Monolog\Formatter\ChromePHPFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\ElasticaFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\ElasticsearchFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/ElasticsearchFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\FlowdockFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\FluentdFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\FormatterInterface' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php', 'ForminatorGoogleAddon\Monolog\Formatter\GelfMessageFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\GoogleCloudLoggingFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/GoogleCloudLoggingFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\HtmlFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\JsonFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\LineFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/LineFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\LogglyFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\LogmaticFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/LogmaticFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\LogstashFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\MongoDBFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\NormalizerFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\ScalarFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php', 'ForminatorGoogleAddon\Monolog\Formatter\WildfireFormatter' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php', 'ForminatorGoogleAddon\Monolog\Handler\AbstractHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/AbstractHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\AbstractProcessingHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\AbstractSyslogHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\AmqpHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/AmqpHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\BrowserConsoleHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\BufferHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/BufferHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\ChromePHPHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\CouchDBHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\CubeHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/CubeHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\Curl\Util' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/Curl/Util.php', 'ForminatorGoogleAddon\Monolog\Handler\DeduplicationHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\DoctrineCouchDBHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\DynamoDbHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\ElasticaHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/ElasticaHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\ElasticsearchHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\ErrorLogHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\FallbackGroupHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/FallbackGroupHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\FilterHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/FilterHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\FingersCrossedHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\FingersCrossed\ActivationStrategyInterface' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php', 'ForminatorGoogleAddon\Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php', 'ForminatorGoogleAddon\Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php', 'ForminatorGoogleAddon\Monolog\Handler\FirePHPHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\FleepHookHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\FlowdockHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\FormattableHandlerInterface' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php', 'ForminatorGoogleAddon\Monolog\Handler\FormattableHandlerTrait' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php', 'ForminatorGoogleAddon\Monolog\Handler\GelfHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/GelfHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\GroupHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/GroupHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\Handler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/Handler.php', 'ForminatorGoogleAddon\Monolog\Handler\HandlerInterface' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/HandlerInterface.php', 'ForminatorGoogleAddon\Monolog\Handler\HandlerWrapper' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php', 'ForminatorGoogleAddon\Monolog\Handler\IFTTTHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\InsightOpsHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\LogEntriesHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\LogglyHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/LogglyHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\LogmaticHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/LogmaticHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\MailHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/MailHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\MandrillHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/MandrillHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\MissingExtensionException' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php', 'ForminatorGoogleAddon\Monolog\Handler\MongoDBHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\NativeMailerHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\NewRelicHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\NoopHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/NoopHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\NullHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/NullHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\OverflowHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/OverflowHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\PHPConsoleHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\ProcessHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/ProcessHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\ProcessableHandlerInterface' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php', 'ForminatorGoogleAddon\Monolog\Handler\ProcessableHandlerTrait' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php', 'ForminatorGoogleAddon\Monolog\Handler\PsrHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/PsrHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\PushoverHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/PushoverHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\RedisHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/RedisHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\RedisPubSubHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/RedisPubSubHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\RollbarHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/RollbarHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\RotatingFileHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\SamplingHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/SamplingHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\SendGridHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/SendGridHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\SlackHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/SlackHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\SlackWebhookHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\Slack\SlackRecord' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php', 'ForminatorGoogleAddon\Monolog\Handler\SocketHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/SocketHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\SqsHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/SqsHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\StreamHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/StreamHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\SwiftMailerHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\SymfonyMailerHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/SymfonyMailerHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\SyslogHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/SyslogHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\SyslogUdpHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\SyslogUdp\UdpSocket' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php', 'ForminatorGoogleAddon\Monolog\Handler\TelegramBotHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\TestHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/TestHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\WebRequestRecognizerTrait' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/WebRequestRecognizerTrait.php', 'ForminatorGoogleAddon\Monolog\Handler\WhatFailureGroupHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php', 'ForminatorGoogleAddon\Monolog\Handler\ZendMonitorHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php', 'ForminatorGoogleAddon\Monolog\LogRecord' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/LogRecord.php', 'ForminatorGoogleAddon\Monolog\Logger' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Logger.php', 'ForminatorGoogleAddon\Monolog\Processor\GitProcessor' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Processor/GitProcessor.php', 'ForminatorGoogleAddon\Monolog\Processor\HostnameProcessor' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Processor/HostnameProcessor.php', 'ForminatorGoogleAddon\Monolog\Processor\IntrospectionProcessor' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php', 'ForminatorGoogleAddon\Monolog\Processor\MemoryPeakUsageProcessor' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php', 'ForminatorGoogleAddon\Monolog\Processor\MemoryProcessor' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php', 'ForminatorGoogleAddon\Monolog\Processor\MemoryUsageProcessor' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php', 'ForminatorGoogleAddon\Monolog\Processor\MercurialProcessor' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php', 'ForminatorGoogleAddon\Monolog\Processor\ProcessIdProcessor' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php', 'ForminatorGoogleAddon\Monolog\Processor\ProcessorInterface' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php', 'ForminatorGoogleAddon\Monolog\Processor\PsrLogMessageProcessor' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php', 'ForminatorGoogleAddon\Monolog\Processor\TagProcessor' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Processor/TagProcessor.php', 'ForminatorGoogleAddon\Monolog\Processor\UidProcessor' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Processor/UidProcessor.php', 'ForminatorGoogleAddon\Monolog\Processor\WebProcessor' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Processor/WebProcessor.php', 'ForminatorGoogleAddon\Monolog\Registry' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Registry.php', 'ForminatorGoogleAddon\Monolog\ResettableInterface' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/ResettableInterface.php', 'ForminatorGoogleAddon\Monolog\SignalHandler' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/SignalHandler.php', 'ForminatorGoogleAddon\Monolog\Test\TestCase' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Test/TestCase.php', 'ForminatorGoogleAddon\Monolog\Utils' => __DIR__ . '/../..' . '/vendor-prefixed/monolog/monolog/src/Monolog/Utils.php', 'ForminatorGoogleAddon\ParagonIE\ConstantTime\Base32' => __DIR__ . '/../..' . '/vendor-prefixed/paragonie/constant_time_encoding/src/Base32.php', 'ForminatorGoogleAddon\ParagonIE\ConstantTime\Base32Hex' => __DIR__ . '/../..' . '/vendor-prefixed/paragonie/constant_time_encoding/src/Base32Hex.php', 'ForminatorGoogleAddon\ParagonIE\ConstantTime\Base64' => __DIR__ . '/../..' . '/vendor-prefixed/paragonie/constant_time_encoding/src/Base64.php', 'ForminatorGoogleAddon\ParagonIE\ConstantTime\Base64DotSlash' => __DIR__ . '/../..' . '/vendor-prefixed/paragonie/constant_time_encoding/src/Base64DotSlash.php', 'ForminatorGoogleAddon\ParagonIE\ConstantTime\Base64DotSlashOrdered' => __DIR__ . '/../..' . '/vendor-prefixed/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php', 'ForminatorGoogleAddon\ParagonIE\ConstantTime\Base64UrlSafe' => __DIR__ . '/../..' . '/vendor-prefixed/paragonie/constant_time_encoding/src/Base64UrlSafe.php', 'ForminatorGoogleAddon\ParagonIE\ConstantTime\Binary' => __DIR__ . '/../..' . '/vendor-prefixed/paragonie/constant_time_encoding/src/Binary.php', 'ForminatorGoogleAddon\ParagonIE\ConstantTime\EncoderInterface' => __DIR__ . '/../..' . '/vendor-prefixed/paragonie/constant_time_encoding/src/EncoderInterface.php', 'ForminatorGoogleAddon\ParagonIE\ConstantTime\Encoding' => __DIR__ . '/../..' . '/vendor-prefixed/paragonie/constant_time_encoding/src/Encoding.php', 'ForminatorGoogleAddon\ParagonIE\ConstantTime\Hex' => __DIR__ . '/../..' . '/vendor-prefixed/paragonie/constant_time_encoding/src/Hex.php', 'ForminatorGoogleAddon\ParagonIE\ConstantTime\RFC4648' => __DIR__ . '/../..' . '/vendor-prefixed/paragonie/constant_time_encoding/src/RFC4648.php', 'ForminatorGoogleAddon\Psr\Cache\CacheException' => __DIR__ . '/../..' . '/vendor-prefixed/psr/cache/src/CacheException.php', 'ForminatorGoogleAddon\Psr\Cache\CacheItemInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/cache/src/CacheItemInterface.php', 'ForminatorGoogleAddon\Psr\Cache\CacheItemPoolInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/cache/src/CacheItemPoolInterface.php', 'ForminatorGoogleAddon\Psr\Cache\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor-prefixed/psr/cache/src/InvalidArgumentException.php', 'ForminatorGoogleAddon\Psr\Container\ContainerExceptionInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/container/src/ContainerExceptionInterface.php', 'ForminatorGoogleAddon\Psr\Container\ContainerInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/container/src/ContainerInterface.php', 'ForminatorGoogleAddon\Psr\Container\NotFoundExceptionInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/container/src/NotFoundExceptionInterface.php', 'ForminatorGoogleAddon\Psr\EventDispatcher\EventDispatcherInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/event-dispatcher/src/EventDispatcherInterface.php', 'ForminatorGoogleAddon\Psr\EventDispatcher\ListenerProviderInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/event-dispatcher/src/ListenerProviderInterface.php', 'ForminatorGoogleAddon\Psr\EventDispatcher\StoppableEventInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/event-dispatcher/src/StoppableEventInterface.php', 'ForminatorGoogleAddon\Psr\Http\Client\ClientExceptionInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-client/src/ClientExceptionInterface.php', 'ForminatorGoogleAddon\Psr\Http\Client\ClientInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-client/src/ClientInterface.php', 'ForminatorGoogleAddon\Psr\Http\Client\NetworkExceptionInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-client/src/NetworkExceptionInterface.php', 'ForminatorGoogleAddon\Psr\Http\Client\RequestExceptionInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-client/src/RequestExceptionInterface.php', 'ForminatorGoogleAddon\Psr\Http\Message\MessageInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-message/src/MessageInterface.php', 'ForminatorGoogleAddon\Psr\Http\Message\RequestFactoryInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-factory/src/RequestFactoryInterface.php', 'ForminatorGoogleAddon\Psr\Http\Message\RequestInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-message/src/RequestInterface.php', 'ForminatorGoogleAddon\Psr\Http\Message\ResponseFactoryInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-factory/src/ResponseFactoryInterface.php', 'ForminatorGoogleAddon\Psr\Http\Message\ResponseInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-message/src/ResponseInterface.php', 'ForminatorGoogleAddon\Psr\Http\Message\ServerRequestFactoryInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-factory/src/ServerRequestFactoryInterface.php', 'ForminatorGoogleAddon\Psr\Http\Message\ServerRequestInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-message/src/ServerRequestInterface.php', 'ForminatorGoogleAddon\Psr\Http\Message\StreamFactoryInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-factory/src/StreamFactoryInterface.php', 'ForminatorGoogleAddon\Psr\Http\Message\StreamInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-message/src/StreamInterface.php', 'ForminatorGoogleAddon\Psr\Http\Message\UploadedFileFactoryInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-factory/src/UploadedFileFactoryInterface.php', 'ForminatorGoogleAddon\Psr\Http\Message\UploadedFileInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-message/src/UploadedFileInterface.php', 'ForminatorGoogleAddon\Psr\Http\Message\UriFactoryInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-factory/src/UriFactoryInterface.php', 'ForminatorGoogleAddon\Psr\Http\Message\UriInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/http-message/src/UriInterface.php', 'ForminatorGoogleAddon\Psr\Log\AbstractLogger' => __DIR__ . '/../..' . '/vendor-prefixed/psr/log/Psr/Log/AbstractLogger.php', 'ForminatorGoogleAddon\Psr\Log\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor-prefixed/psr/log/Psr/Log/InvalidArgumentException.php', 'ForminatorGoogleAddon\Psr\Log\LogLevel' => __DIR__ . '/../..' . '/vendor-prefixed/psr/log/Psr/Log/LogLevel.php', 'ForminatorGoogleAddon\Psr\Log\LoggerAwareInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/log/Psr/Log/LoggerAwareInterface.php', 'ForminatorGoogleAddon\Psr\Log\LoggerAwareTrait' => __DIR__ . '/../..' . '/vendor-prefixed/psr/log/Psr/Log/LoggerAwareTrait.php', 'ForminatorGoogleAddon\Psr\Log\LoggerInterface' => __DIR__ . '/../..' . '/vendor-prefixed/psr/log/Psr/Log/LoggerInterface.php', 'ForminatorGoogleAddon\Psr\Log\LoggerTrait' => __DIR__ . '/../..' . '/vendor-prefixed/psr/log/Psr/Log/LoggerTrait.php', 'ForminatorGoogleAddon\Psr\Log\NullLogger' => __DIR__ . '/../..' . '/vendor-prefixed/psr/log/Psr/Log/NullLogger.php', 'ForminatorGoogleAddon\Psr\Log\Test\DummyTest' => __DIR__ . '/../..' . '/vendor-prefixed/psr/log/Psr/Log/Test/DummyTest.php', 'ForminatorGoogleAddon\Psr\Log\Test\LoggerInterfaceTest' => __DIR__ . '/../..' . '/vendor-prefixed/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', 'ForminatorGoogleAddon\Psr\Log\Test\TestLogger' => __DIR__ . '/../..' . '/vendor-prefixed/psr/log/Psr/Log/Test/TestLogger.php', 'ForminatorGoogleAddon\phpseclib3\Common\Functions\Strings' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Common/Functions/Strings.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\AES' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/AES.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Blowfish' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\ChaCha20' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/ChaCha20.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Common\AsymmetricKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Common/AsymmetricKey.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Common\BlockCipher' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Common/BlockCipher.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\JWK' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Common/Formats/Keys/JWK.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\OpenSSH' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Common/Formats/Keys/OpenSSH.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PKCS' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Common/Formats/Keys/PKCS.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PKCS1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Common/Formats/Keys/PKCS1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PKCS8' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Common/Formats/Keys/PKCS8.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Keys\PuTTY' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Common/Formats/Keys/PuTTY.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Common\Formats\Signature\Raw' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Common/Formats/Signature/Raw.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Common\PrivateKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Common/PrivateKey.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Common\PublicKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Common/PublicKey.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Common\StreamCipher' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Common/StreamCipher.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Common\SymmetricKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Common/SymmetricKey.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Common\Traits\Fingerprint' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Common/Traits/Fingerprint.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Common\Traits\PasswordProtected' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Common/Traits/PasswordProtected.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DES' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DES.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DH' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DH.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DH\Formats\Keys\PKCS1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DH/Formats/Keys/PKCS1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DH\Formats\Keys\PKCS8' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DH/Formats/Keys/PKCS8.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DH\Parameters' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DH/Parameters.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DH\PrivateKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DH/PrivateKey.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DH\PublicKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DH/PublicKey.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DSA' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DSA.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DSA\Formats\Keys\OpenSSH' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DSA/Formats/Keys/OpenSSH.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DSA\Formats\Keys\PKCS1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DSA/Formats/Keys/PKCS1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DSA\Formats\Keys\PKCS8' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DSA/Formats/Keys/PKCS8.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DSA\Formats\Keys\PuTTY' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DSA/Formats/Keys/PuTTY.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DSA\Formats\Keys\Raw' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DSA/Formats/Keys/Raw.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DSA\Formats\Keys\XML' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DSA/Formats/Keys/XML.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DSA\Formats\Signature\ASN1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DSA/Formats/Signature/ASN1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DSA\Formats\Signature\Raw' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DSA/Formats/Signature/Raw.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DSA\Formats\Signature\SSH2' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DSA/Formats/Signature/SSH2.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DSA\Parameters' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DSA/Parameters.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DSA\PrivateKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DSA/PrivateKey.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\DSA\PublicKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/DSA/PublicKey.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Base' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/BaseCurves/Base.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Binary' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/BaseCurves/Binary.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\KoblitzPrime' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/BaseCurves/KoblitzPrime.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Montgomery' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/BaseCurves/Montgomery.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\Prime' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/BaseCurves/Prime.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\BaseCurves\TwistedEdwards' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/BaseCurves/TwistedEdwards.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\Curve25519' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/Curve25519.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\Curve448' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/Curve448.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\Ed25519' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/Ed25519.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\Ed448' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/Ed448.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\brainpoolP160r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/brainpoolP160r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\brainpoolP160t1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/brainpoolP160t1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\brainpoolP192r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/brainpoolP192r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\brainpoolP192t1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/brainpoolP192t1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\brainpoolP224r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/brainpoolP224r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\brainpoolP224t1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/brainpoolP224t1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\brainpoolP256r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/brainpoolP256r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\brainpoolP256t1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/brainpoolP256t1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\brainpoolP320r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/brainpoolP320r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\brainpoolP320t1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/brainpoolP320t1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\brainpoolP384r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/brainpoolP384r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\brainpoolP384t1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/brainpoolP384t1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\brainpoolP512r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/brainpoolP512r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\brainpoolP512t1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/brainpoolP512t1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\nistb233' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/nistb233.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\nistb409' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/nistb409.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\nistk163' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/nistk163.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\nistk233' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/nistk233.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\nistk283' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/nistk283.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\nistk409' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/nistk409.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\nistp192' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/nistp192.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\nistp224' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/nistp224.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\nistp256' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/nistp256.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\nistp384' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/nistp384.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\nistp521' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/nistp521.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\nistt571' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/nistt571.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\prime192v1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/prime192v1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\prime192v2' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/prime192v2.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\prime192v3' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/prime192v3.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\prime239v1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/prime239v1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\prime239v2' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/prime239v2.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\prime239v3' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/prime239v3.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\prime256v1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/prime256v1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp112r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp112r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp112r2' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp112r2.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp128r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp128r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp128r2' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp128r2.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp160k1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp160k1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp160r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp160r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp160r2' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp160r2.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp192k1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp192k1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp192r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp192r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp224k1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp224k1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp224r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp224r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp256k1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp256k1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp256r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp256r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp384r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp384r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\secp521r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp521r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect113r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect113r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect113r2' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect113r2.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect131r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect131r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect131r2' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect131r2.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect163k1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect163k1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect163r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect163r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect163r2' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect163r2.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect193r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect193r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect193r2' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect193r2.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect233k1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect233k1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect233r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect233r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect239k1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect239k1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect283k1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect283k1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect283r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect283r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect409k1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect409k1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect409r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect409r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect571k1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect571k1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Curves\sect571r1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/sect571r1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\Common' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Keys/Common.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\JWK' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Keys/JWK.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\MontgomeryPrivate' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Keys/MontgomeryPrivate.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\MontgomeryPublic' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Keys/MontgomeryPublic.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\OpenSSH' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Keys/OpenSSH.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\PKCS1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Keys/PKCS1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\PKCS8' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Keys/PKCS8.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\PuTTY' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Keys/PuTTY.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\XML' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Keys/XML.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Keys\libsodium' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Keys/libsodium.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Signature\ASN1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Signature/ASN1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Signature\IEEE' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Signature/IEEE.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Signature\Raw' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Signature/Raw.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Formats\Signature\SSH2' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Signature/SSH2.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\Parameters' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/Parameters.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\PrivateKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/PrivateKey.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\EC\PublicKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/EC/PublicKey.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Hash' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Hash.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\PublicKeyLoader' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/PublicKeyLoader.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\RC2' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/RC2.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\RC4' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/RC4.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\RSA' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\RSA\Formats\Keys\JWK' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA/Formats/Keys/JWK.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\RSA\Formats\Keys\MSBLOB' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA/Formats/Keys/MSBLOB.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\RSA\Formats\Keys\OpenSSH' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA/Formats/Keys/OpenSSH.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\RSA\Formats\Keys\PKCS1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA/Formats/Keys/PKCS1.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\RSA\Formats\Keys\PKCS8' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA/Formats/Keys/PKCS8.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\RSA\Formats\Keys\PSS' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA/Formats/Keys/PSS.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\RSA\Formats\Keys\PuTTY' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA/Formats/Keys/PuTTY.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\RSA\Formats\Keys\Raw' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA/Formats/Keys/Raw.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\RSA\Formats\Keys\XML' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA/Formats/Keys/XML.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\RSA\PrivateKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA/PrivateKey.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\RSA\PublicKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA/PublicKey.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Random' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Random.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Rijndael' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Salsa20' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Salsa20.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\TripleDES' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php', 'ForminatorGoogleAddon\phpseclib3\Crypt\Twofish' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php', 'ForminatorGoogleAddon\phpseclib3\Exception\BadConfigurationException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/BadConfigurationException.php', 'ForminatorGoogleAddon\phpseclib3\Exception\BadDecryptionException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/BadDecryptionException.php', 'ForminatorGoogleAddon\phpseclib3\Exception\BadModeException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/BadModeException.php', 'ForminatorGoogleAddon\phpseclib3\Exception\ConnectionClosedException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/ConnectionClosedException.php', 'ForminatorGoogleAddon\phpseclib3\Exception\FileNotFoundException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/FileNotFoundException.php', 'ForminatorGoogleAddon\phpseclib3\Exception\InconsistentSetupException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/InconsistentSetupException.php', 'ForminatorGoogleAddon\phpseclib3\Exception\InsufficientSetupException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/InsufficientSetupException.php', 'ForminatorGoogleAddon\phpseclib3\Exception\InvalidPacketLengthException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/InvalidPacketLengthException.php', 'ForminatorGoogleAddon\phpseclib3\Exception\NoKeyLoadedException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/NoKeyLoadedException.php', 'ForminatorGoogleAddon\phpseclib3\Exception\NoSupportedAlgorithmsException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/NoSupportedAlgorithmsException.php', 'ForminatorGoogleAddon\phpseclib3\Exception\TimeoutException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/TimeoutException.php', 'ForminatorGoogleAddon\phpseclib3\Exception\UnableToConnectException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/UnableToConnectException.php', 'ForminatorGoogleAddon\phpseclib3\Exception\UnsupportedAlgorithmException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/UnsupportedAlgorithmException.php', 'ForminatorGoogleAddon\phpseclib3\Exception\UnsupportedCurveException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/UnsupportedCurveException.php', 'ForminatorGoogleAddon\phpseclib3\Exception\UnsupportedFormatException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/UnsupportedFormatException.php', 'ForminatorGoogleAddon\phpseclib3\Exception\UnsupportedOperationException' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Exception/UnsupportedOperationException.php', 'ForminatorGoogleAddon\phpseclib3\File\ANSI' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ANSI.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Element' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Element.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AccessDescription' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/AccessDescription.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AdministrationDomainName' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/AdministrationDomainName.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AlgorithmIdentifier' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/AlgorithmIdentifier.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AnotherName' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/AnotherName.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Attribute' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/Attribute.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AttributeType' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/AttributeType.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AttributeTypeAndValue' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/AttributeTypeAndValue.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AttributeValue' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/AttributeValue.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Attributes' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/Attributes.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AuthorityInfoAccessSyntax' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/AuthorityInfoAccessSyntax.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\AuthorityKeyIdentifier' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/AuthorityKeyIdentifier.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\BaseDistance' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/BaseDistance.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\BasicConstraints' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/BasicConstraints.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\BuiltInDomainDefinedAttribute' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/BuiltInDomainDefinedAttribute.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\BuiltInDomainDefinedAttributes' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/BuiltInDomainDefinedAttributes.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\BuiltInStandardAttributes' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/BuiltInStandardAttributes.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CPSuri' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/CPSuri.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CRLDistributionPoints' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/CRLDistributionPoints.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CRLNumber' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/CRLNumber.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CRLReason' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/CRLReason.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CertPolicyId' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/CertPolicyId.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Certificate' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/Certificate.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CertificateIssuer' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/CertificateIssuer.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CertificateList' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/CertificateList.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CertificatePolicies' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/CertificatePolicies.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CertificateSerialNumber' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/CertificateSerialNumber.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CertificationRequest' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/CertificationRequest.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CertificationRequestInfo' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/CertificationRequestInfo.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Characteristic_two' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/Characteristic_two.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\CountryName' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/CountryName.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Curve' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/Curve.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DHParameter' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/DHParameter.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DSAParams' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/DSAParams.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DSAPrivateKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/DSAPrivateKey.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DSAPublicKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/DSAPublicKey.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DigestInfo' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/DigestInfo.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DirectoryString' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/DirectoryString.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DisplayText' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/DisplayText.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DistributionPoint' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/DistributionPoint.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DistributionPointName' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/DistributionPointName.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\DssSigValue' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/DssSigValue.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\ECParameters' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/ECParameters.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\ECPoint' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/ECPoint.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\ECPrivateKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/ECPrivateKey.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\EDIPartyName' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/EDIPartyName.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\EcdsaSigValue' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/EcdsaSigValue.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\EncryptedData' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/EncryptedData.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\EncryptedPrivateKeyInfo' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/EncryptedPrivateKeyInfo.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\ExtKeyUsageSyntax' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/ExtKeyUsageSyntax.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Extension' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/Extension.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\ExtensionAttribute' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/ExtensionAttribute.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\ExtensionAttributes' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/ExtensionAttributes.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Extensions' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/Extensions.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\FieldElement' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/FieldElement.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\FieldID' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/FieldID.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralName' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/GeneralName.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralNames' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/GeneralNames.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralSubtree' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/GeneralSubtree.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\GeneralSubtrees' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/GeneralSubtrees.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\HashAlgorithm' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/HashAlgorithm.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\HoldInstructionCode' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/HoldInstructionCode.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\InvalidityDate' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/InvalidityDate.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\IssuerAltName' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/IssuerAltName.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\IssuingDistributionPoint' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/IssuingDistributionPoint.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\KeyIdentifier' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/KeyIdentifier.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\KeyPurposeId' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/KeyPurposeId.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\KeyUsage' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/KeyUsage.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\MaskGenAlgorithm' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/MaskGenAlgorithm.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Name' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/Name.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\NameConstraints' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/NameConstraints.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\NetworkAddress' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/NetworkAddress.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\NoticeReference' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/NoticeReference.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\NumericUserIdentifier' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/NumericUserIdentifier.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\ORAddress' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/ORAddress.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\OneAsymmetricKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/OneAsymmetricKey.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\OrganizationName' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/OrganizationName.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\OrganizationalUnitNames' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/OrganizationalUnitNames.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\OtherPrimeInfo' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/OtherPrimeInfo.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\OtherPrimeInfos' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/OtherPrimeInfos.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PBEParameter' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PBEParameter.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PBES2params' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PBES2params.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PBKDF2params' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PBKDF2params.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PBMAC1params' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PBMAC1params.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PKCS9String' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PKCS9String.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Pentanomial' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/Pentanomial.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PersonalName' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PersonalName.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PolicyInformation' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PolicyInformation.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PolicyMappings' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PolicyMappings.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PolicyQualifierId' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PolicyQualifierId.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PolicyQualifierInfo' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PolicyQualifierInfo.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PostalAddress' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PostalAddress.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Prime_p' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/Prime_p.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PrivateDomainName' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PrivateDomainName.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PrivateKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PrivateKey.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PrivateKeyInfo' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PrivateKeyInfo.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PrivateKeyUsagePeriod' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PrivateKeyUsagePeriod.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PublicKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PublicKey.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PublicKeyAndChallenge' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PublicKeyAndChallenge.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\PublicKeyInfo' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/PublicKeyInfo.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\RC2CBCParameter' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/RC2CBCParameter.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\RDNSequence' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/RDNSequence.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\RSAPrivateKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/RSAPrivateKey.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\RSAPublicKey' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/RSAPublicKey.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\RSASSA_PSS_params' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/RSASSA_PSS_params.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\ReasonFlags' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/ReasonFlags.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\RelativeDistinguishedName' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/RelativeDistinguishedName.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\RevokedCertificate' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/RevokedCertificate.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\SignedPublicKeyAndChallenge' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/SignedPublicKeyAndChallenge.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\SpecifiedECDomain' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/SpecifiedECDomain.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\SubjectAltName' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/SubjectAltName.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\SubjectDirectoryAttributes' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/SubjectDirectoryAttributes.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\SubjectInfoAccessSyntax' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/SubjectInfoAccessSyntax.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\SubjectPublicKeyInfo' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/SubjectPublicKeyInfo.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\TBSCertList' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/TBSCertList.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\TBSCertificate' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/TBSCertificate.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\TerminalIdentifier' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/TerminalIdentifier.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Time' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/Time.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Trinomial' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/Trinomial.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\UniqueIdentifier' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/UniqueIdentifier.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\UserNotice' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/UserNotice.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\Validity' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/Validity.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\netscape_ca_policy_url' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/netscape_ca_policy_url.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\netscape_cert_type' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/netscape_cert_type.php', 'ForminatorGoogleAddon\phpseclib3\File\ASN1\Maps\netscape_comment' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Maps/netscape_comment.php', 'ForminatorGoogleAddon\phpseclib3\File\X509' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/File/X509.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/BCMath.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath\Base' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/BCMath/Base.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath\BuiltIn' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/BCMath/BuiltIn.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath\DefaultEngine' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/BCMath/DefaultEngine.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath\OpenSSL' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/BCMath/OpenSSL.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath\Reductions\Barrett' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/BCMath/Reductions/Barrett.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\BCMath\Reductions\EvalBarrett' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/BCMath/Reductions/EvalBarrett.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\Engine' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/GMP.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\GMP\DefaultEngine' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/GMP/DefaultEngine.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\OpenSSL' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/OpenSSL.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP32' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP32.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP64' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP64.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Base' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\DefaultEngine' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/DefaultEngine.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Montgomery' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Montgomery.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\OpenSSL' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/OpenSSL.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Reductions\Barrett' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Barrett.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Reductions\Classic' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Classic.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Reductions\EvalBarrett' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/EvalBarrett.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Reductions\Montgomery' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Montgomery.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Reductions\MontgomeryMult' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/MontgomeryMult.php', 'ForminatorGoogleAddon\phpseclib3\Math\BigInteger\Engines\PHP\Reductions\PowerOfTwo' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/PowerOfTwo.php', 'ForminatorGoogleAddon\phpseclib3\Math\BinaryField' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BinaryField.php', 'ForminatorGoogleAddon\phpseclib3\Math\BinaryField\Integer' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/BinaryField/Integer.php', 'ForminatorGoogleAddon\phpseclib3\Math\Common\FiniteField' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/Common/FiniteField.php', 'ForminatorGoogleAddon\phpseclib3\Math\Common\FiniteField\Integer' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/Common/FiniteField/Integer.php', 'ForminatorGoogleAddon\phpseclib3\Math\PrimeField' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/PrimeField.php', 'ForminatorGoogleAddon\phpseclib3\Math\PrimeField\Integer' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Math/PrimeField/Integer.php', 'ForminatorGoogleAddon\phpseclib3\Net\SFTP' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Net/SFTP.php', 'ForminatorGoogleAddon\phpseclib3\Net\SFTP\Stream' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php', 'ForminatorGoogleAddon\phpseclib3\Net\SSH2' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/Net/SSH2.php', 'ForminatorGoogleAddon\phpseclib3\System\SSH\Agent' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php', 'ForminatorGoogleAddon\phpseclib3\System\SSH\Agent\Identity' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php', 'ForminatorGoogleAddon\phpseclib3\System\SSH\Common\Traits\ReadBytes' => __DIR__ . '/../..' . '/vendor-prefixed/phpseclib/phpseclib/phpseclib/System/SSH/Common/Traits/ReadBytes.php'); public static function getInitializer(\Composer\Autoload\ClassLoader $loader) { } } } namespace { /** * Class Forminator_Gutenberg */ class Forminator_Gutenberg { /** * Forminator_Gutenberg instance * * @var Forminator_Gutenberg|null */ private static $_instance = \null; /** * Get Instance * * @since 1.0 Gutenberg Integration * @return self|null */ public static function get_instance() { } /** * Initialize integration * * @since 1.0 Gutenberg Integration */ public static function init() { } /** * Automatically include blocks files * * @since 1.0 Gutenberg Integration */ public static function load_blocks() { } /** * Return Integration URL * * @since 1.0 Gutenberg Integration * * @return mixed */ public function get_plugin_url() { } /** * Return Integration DIR * * @since 1.0 Gutenberg Integration * * @return mixed */ public function get_plugin_dir() { } } /** * Forminator GFBlock Abstract. * * @package Forminator */ /** * Class Forminator_GFBlock_Abstract * Extend this class to create new gutenberg block * * @since 1.0 Gutenber Integration */ abstract class Forminator_GFBlock_Abstract { /** * Type will be used as identifier * * @since 1.0 Gutenber Integration * * @var string */ protected $_slug; /** * Get block type * * @since 1.0 Gutenber Integration * @return string */ final public function get_slug() { } /** * Initialize block * * @since 1.0 Gutenberg Integration */ public function init() { } /** * Register block type callback * Shouldn't be overridden on block class * * @since 1.0 Gutenberg Integration */ public function register_block() { } /** * Check if user has permissions to preview block. * * @since 1.50.3 * * @return bool */ public function check_preview_permissions() { } /** * Register REST API route for block preview. * * @since 1.0 Gutenberg Integration */ public function block_preview_api() { } /** * Print block preview markup * * @since 1.0 Gutenberg Integration * @param mixed $data Data. */ public function preview_block_markup($data) { } /** * Render block on front-end * Should be overriden in block class * * @since 1.0 Gutenberg Integration * @param array $properties Block properties. * * @return string */ public function render_block($properties = array()) { } /** * Preview form in the block * Should be overriden in block class * * @since 1.0 Gutenberg Integration * @param array $properties Block properties. * * @return string */ public function preview_block($properties = array()) { } /** * Enqueue assets ( scritps / styles ) * Should be overriden in block class * * @since 1.0 Gutenberg Integration */ public function load_assets() { } } /** * Forminator GFBlock Forms. * * @package Forminator */ /** * Class Forminator_GFBlock_Forms * * @since 1.0 Gutenber Integration */ class Forminator_GFBlock_Forms extends \Forminator_GFBlock_Abstract { /** * Forminator_GFBlock_Forms Instance * * @var self|null */ private static $_instance = \null; /** * Block identifier * * @since 1.0 Gutenber Integration * * @var string */ protected $_slug = 'forms'; /** * Get Instance * * @since 1.0 Gutenberg Integration * @return self|null */ public static function get_instance() { } /** * Forminator_GFBlock_Forms constructor. * * @since 1.0 Gutenberg Integration */ public function __construct() { } /** * Render block markup on front-end * * @since 1.0 Gutenberg Integration * @param array $properties Block properties. * * @return string */ public function render_block($properties = array()) { } /** * Preview form markup in block * * @since 1.0 Gutenberg Integration * @param array $properties Block properties. * * @return string */ public function preview_block($properties = array()) { } /** * Enqueue assets ( scritps / styles ) * Should be overriden in block class * * @since 1.0 Gutenberg Integration */ public function load_assets() { } /** * Return forms IDs and Names * * @since 1.0 Gutenberg Integration * @return array */ public function get_forms() { } /** * Localize * * @return string[] */ public function localize() { } } /** * Forminator GFBlock Polls. * * @package Forminator */ /** * Class Forminator_GFBlock_Polls * * @since 1.0 Gutenber Integration */ class Forminator_GFBlock_Polls extends \Forminator_GFBlock_Abstract { /** * Forminator_GFBlock_Polls Instance * * @var self|null */ private static $_instance = \null; /** * Block identifier * * @since 1.0 Gutenber Integration * * @var string */ protected $_slug = 'polls'; /** * Get Instance * * @since 1.0 Gutenberg Integration * @return self|null */ public static function get_instance() { } /** * Forminator_GFBlock_Forms constructor. * * @since 1.0 Gutenberg Integration */ public function __construct() { } /** * Render block markup on front-end * * @since 1.0 Gutenberg Integration * @param array $properties Block properties. * * @return string */ public function render_block($properties = array()) { } /** * Preview form markup in block * * @since 1.0 Gutenberg Integration * @param array $properties Block properties. * * @return string */ public function preview_block($properties = array()) { } /** * Enqueue assets ( scritps / styles ) * Should be overriden in block class * * @since 1.0 Gutenberg Integration */ public function load_assets() { } /** * Return forms IDs and Names * * @since 1.0 Gutenberg Integration * @return array */ public function get_forms() { } /** * Localize * * @return string[] */ public function localize() { } } /** * Forminator GFBlock Quizzes. * * @package Forminator */ /** * Class Forminator_GFBlock_Quizzes * * @since 1.0 Gutenber Integration */ class Forminator_GFBlock_Quizzes extends \Forminator_GFBlock_Abstract { /** * Forminator_GFBlock_Quizzes Instance * * @var self|null */ private static $_instance = \null; /** * Block identifier * * @since 1.0 Gutenber Integration * * @var string */ protected $_slug = 'quizzes'; /** * Get Instance * * @since 1.0 Gutenberg Integration * @return self|null */ public static function get_instance() { } /** * Forminator_GFBlock_Forms constructor. * * @since 1.0 Gutenberg Integration */ public function __construct() { } /** * Render block markup on front-end * * @since 1.0 Gutenberg Integration * @param array $properties Block properties. * * @return string */ public function render_block($properties = array()) { } /** * Preview form markup in block * * @since 1.0 Gutenberg Integration * @param array $properties Block properties. * * @return string */ public function preview_block($properties = array()) { } /** * Enqueue assets ( scritps / styles ) * Should be overriden in block class * * @since 1.0 Gutenberg Integration */ public function load_assets() { } /** * Print block preview markup * * @since 1.0 Gutenberg Integration * @param WP_REST_Request $data Request data. */ public function preview_block_markup($data) { } /** * Return forms IDs and Names * * @since 1.0 Gutenberg Integration * @return array */ public function get_forms() { } /** * Localize * * @return string[] */ public function localize() { } } /** * Forminator Hubspot form hooks * * @package Forminator */ /** * Class Forminator_Hubspot_Form_Hooks * * @since 1.0 HubSpot Integration */ class Forminator_Hubspot_Form_Hooks extends \Forminator_Integration_Form_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on send message to HubSpot * * @since 1.0 HubSpot Integration * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $form_entry_fields Form entry fields. * @param object $entry Entry instance. * * @return array `is_sent` true means its success send data to HubSpot, false otherwise. * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function get_status_on_contact_sync($connection_id, $submitted_data, $connection_settings, $form_entry_fields, $entry) { } /** * It will delete sent chat * * @since 1.0 HubSpot Integration * * @param Forminator_Form_Entry_Model $entry_model Form Entry Model. * @param array $addon_meta_data Addon meta data. * * @return bool */ public function on_before_delete_entry(\Forminator_Form_Entry_Model $entry_model, $addon_meta_data) { } } /** * Trait for common methods for Hubspot settings classes * * @since 1.30 * @package Hubspot Integration */ /** * Trait Forminator_Hubspot_Settings_Trait */ trait Forminator_Hubspot_Settings_Trait { /** * HubSpot Module Settings wizard * * @since 1.0 HubSpot Integration * @return array */ public function module_settings_wizards() { } /** * Migrate old list_id to new list_id if needed * * @since 1.52.0 * * @param array $settings Settings. * * @return mixed */ public function migrate_list_id($settings) { } /** * Get list id * * @param mixed $multi_id Multi id. * @return mixed */ public function get_list_id($multi_id) { } /** * Setup Connection Name * * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function map_fields($submitted_data) { } /** * Check if pick name step completed * * @since 1.0 HubSpot Integration * @param array $submitted_data Submitted data. * @return bool */ public function map_fields_is_completed($submitted_data) { } /** * Setup Create ticket * * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function create_ticket($submitted_data) { } /** * Check if setup list completed * * @since 1.0 HubSpot Integration * @param array $submitted_data Submitted data. * @return bool */ public function create_ticket_is_completed($submitted_data) { } } /** * Forminator Hubspot form settings * * @package Forminator */ /** * Class Forminator_Hubspot_Form_Settings * Handle how form settings displayed and saved * * @since 1.0 HubSpot Integration */ class Forminator_Hubspot_Form_Settings extends \Forminator_Integration_Form_Settings { use \Forminator_Hubspot_Settings_Trait; } /** * Forminator Hubspot Quiz hooks * * @package Forminator */ /** * Class Forminator_Hubspot_Quiz_Hooks * * @since 1.0 HubSpot Integration */ class Forminator_Hubspot_Quiz_Hooks extends \Forminator_Integration_Quiz_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on send message to HubSpot * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $current_entry_fields Form entry fields. * * @return array `is_sent` true means its success send data to HubSpot, false otherwise * @since 1.0 HubSpot Integration * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function get_status_on_contact_sync($connection_id, $submitted_data, $connection_settings, $current_entry_fields) { } /** * It will delete sent chat * * @since 1.0 HubSpot Integration * * @param Forminator_Form_Entry_Model $entry_model Form Entry Model. * @param array $addon_meta_data Addon meta data. * * @return bool * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function on_before_delete_entry(\Forminator_Form_Entry_Model $entry_model, $addon_meta_data) { } } /** * Forminator Hubspot Quiz Settings * * @package Forminator */ /** * Class Forminator_Hubspot_Quiz_Settings * Handle how quiz settings displayed and saved * * @since 1.0 HubSpot Integration */ class Forminator_Hubspot_Quiz_Settings extends \Forminator_Integration_Quiz_Settings { use \Forminator_Hubspot_Settings_Trait; } /** * Class Forminator_Hubspot * HubSpot Integration Main Class * * @since 1.0 HubSpot Integration */ final class Forminator_Hubspot extends \Forminator_Integration { /** * Forminator_Hubspot Instance * * @var self|null */ protected static $instance = \null; /** * Slug * * @var string */ protected $_slug = 'hubspot'; /** * Hubspot version * * @var string */ protected $_version = \FORMINATOR_ADDON_HUBSPOT_VERSION; /** * Min Forminator version * * @var string */ protected $_min_forminator_version = '1.1'; /** * Short title * * @var string */ protected $_short_title = 'HubSpot'; /** * Title * * @var string */ protected $_title = 'HubSpot'; /** * Token * * @var string */ private $_token = ''; /** * Error message * * @var string */ private $_auth_error_message = ''; const TARGET_TYPE_PUBLIC_CHANNEL = 'public_channel'; const TARGET_TYPE_PRIVATE_CHANNEL = 'private_channel'; const TARGET_TYPE_DIRECT_MESSAGE = 'direct_message'; /** * Position * * @var int */ protected $_position = 4; /** * Forminator_Hubspot constructor. * * @since 1.0 HubSpot Integration */ public function __construct() { } /** * Clear Database * * @param string $slug Slug. * @param object $addon Integration. */ public function clear_db($slug, $addon) { } /** * Override settings available, * * @since 1.0 HubSpot Integration * @return bool */ public function is_settings_available() { } /** * Allow multiple connection on one form * * @since 1.0 HubSpot Integration * @return bool */ public function is_allow_multi_on_form() { } /** * Settings wizard * * @since 1.0 HubSpot Integration * @return array */ public function settings_wizards() { } /** * Authorize Access wizard * * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function authorize_access() { } /** * Authorize access is completed * * @return bool */ public function authorize_access_is_completed() { } /** * Wait Authorize Access wizard * * @since 1.0 HubSpot Integration * @return array */ public function wait_authorize_access() { } /** * Authorized Callback * * @since 1.0 HubSpot Integration * @return bool */ public function is_authorized() { } /** * Get Access Token * * @since 1.0 HubSpot Integration * @return string */ public function get_client_access_token() { } /** * Register a page for redirect url of HubSpot auth * * @since 1.0 HubSpot Integration * * @return array */ public function register_integration_sections() { } /** * Flag if delete member on delete entry enabled * * Default is `true`, * which can be changed via `FORMINATOR_ADDON_HUBSPOT_ENABLE_DELETE_MEMBER` constant * * @return bool */ public static function is_enable_delete_member() { } /** * Prepare redirect URL to wpmudev.com * * @return string */ private static function prepare_redirect_url() { } /** * Get Auth Url * * @return string */ public function get_auth_url() { } /** * HubSpot Authorize Page * * @since 1.0 HubSpot Integration * * @param array $query_args Query Arguments. * * @return string * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function authorize_page_callback($query_args) { } /** * Get API Instance * * @param string|null $access_token Access token. * * @return Forminator_Hubspot_Wp_Api|null * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_api($access_token = \null) { } /** * Before get Setting Values * * @since 1.0 HubSpot Integration * * @param array $values Setting values. * * @return mixed */ public function before_get_settings_values($values) { } /** * Support Request Ajax * * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function hubspot_support_request() { } /** * Allow multiple connection on one quiz * * @since 1.6.1 * @return bool */ public function is_allow_multi_on_quiz() { } } /** * Forminator Hubspot API * * @package Forminator */ /** * Class Forminator_Hubspot_Wp_Api */ class Forminator_Hubspot_Wp_Api { const AUTHORIZE_URL = 'https://app.hubspot.com/oauth/authorize'; const CLIENT_ID = 'd4c00215-5579-414c-a831-95be7218239b'; /** * OAuth scopes * * @var string */ public static $oauth_scopes = 'tickets crm.lists.write crm.lists.read crm.objects.contacts.write crm.objects.contacts.read crm.schemas.contacts.write crm.schemas.contacts.read'; /** * Instances of hubspot api * * @var array */ private static $_instances = array(); /** * HubSpot endpoint * * @var string */ private $_endpoint = 'https://api.hubspot.com'; /** * Last data sent to hubspot * * @since 1.0 HubSpot Integration * @var array */ private $_last_data_sent = array(); /** * Last data received from hubspot * * @since 1.0 HubSpot Integration * @var array */ private $_last_data_received = array(); /** * Last URL requested * * @since 1.0 HubSpot Integration * @var string */ private $_last_url_request = ''; /** * Token * * @var string */ private $_token = ''; /** * Global Id * * @var string */ private $_global_id = ''; /** * Option name * * @var string */ private $option_name = 'forminator-hubspot-token'; /** * Forminator_Hubspot_Wp_Api constructor. * * @since 1.0 HubSpot Integration * * @param string $_token Token. * @param string $_global_id Global Id. * * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function __construct($_token, $_global_id) { } /** * Clear Database */ public function clear_db() { } /** * Get singleton * * @since 1.0 HubSpot Integration * * @param string $_token Token. * @param string $global_id Global Id. * * @return Forminator_Hubspot_Wp_Api|null * @throws Forminator_Integration_Exception Throws Integration Exception. */ public static function get_instance($_token, $global_id) { } /** * Add custom user agent on request * * @since 1.0 HubSpot Integration * * @param string $user_agent User Agent. * * @return string */ public function filter_user_agent($user_agent) { } /** * HTTP Request * * @since 1.0 HubSpot Integration * * @param string $verb `GET` `POST` `PUT` `DELETE` `PATCH`. * @param string $path Requested path. * @param array $args Arguments. * @param string $access_token Access token. * @param bool $json Is Json. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function request($verb, $path, $args, $access_token, $json = \false) { } /** * Get last data sent * * @since 1.0 HubSpot Integration * * @return array */ public function get_last_data_sent() { } /** * Get last data received * * @since 1.0 HubSpot Integration * * @return array */ public function get_last_data_received() { } /** * Get last data received * * @since 1.0 HubSpot Integration * * @return string */ public function get_last_url_request() { } /** * Get stored token data. * * @return array|null */ public function get_auth_token() { } /** * Update token data. * * @param array $token Token. * * @return void */ public function update_auth_token(array $token) { } /** * Is authorized * * @return array|bool|mixed|object */ public function is_authorized() { } /** * Rfresh access token * * @return array|mixed|object */ public function refresh_access_token() { } /** * Get token * * @param string $key Key. * * @return bool|mixed */ public function get_token($key) { } /** * Get the current token's information. * * @return array|mixed|object */ public function get_access_token_information() { } /** * Get access token * * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_access_token($args = array()) { } /** * Helper function to send authenticated Post request. * * @param string $verb Request type. * @param string $end_point Request URL. * @param array $query_args Arguments. * @param bool $json Is Json. * * @return array|mixed|object */ public function send_authenticated($verb, $end_point, $query_args = array(), $json = \false) { } /** * Get Contact list * * @param array $args Arguments. * * @return array|mixed|object */ public function get_contact_list($args = array()) { } /** * Get v3 list id by legacy list id * * @param mixed $legacy_list_id List Id. * @return array|mixed|object */ public function get_v3_list_id($legacy_list_id) { } /** * Add contact subscriber to HubSpot. * * @param array $data Contact Data. * * @return array|mixed|object */ public function add_update_contact($data) { } /** * Get contact by email. * * @param string $email Contact email. * * @return mixed */ public function get_contact($email) { } /** * Add contact subscriber to HubSpot. * * @param array $data Contact Data. * * @return array|mixed|object */ public function delete_contact($data) { } /** * Add contact to contact list. * * @param string $contact_id Contact id. * @param string $list_id List Id. * * @return array|mixed|object */ public function add_to_contact_list($contact_id, $list_id) { } /** * Get Pipeline list * * @param array $args Arguments. * * @return array|mixed|object */ public function get_pipeline($args = array()) { } /** * Add contact to contact list. * * @param array $ticket Tickets. * * @return array|mixed|object */ public function create_ticket($ticket) { } /** * Associate ticket with contact * * @param int $ticket_id Ticket Id. * @param int $contact_id Contact Id. * * @return array|mixed|object */ public function ticket_associate_contact($ticket_id, $contact_id) { } /** * Delete Tickets * * @param array $data Data to delete. * * @return array|mixed|object */ public function delete_ticket($data) { } /** * Get Properties list * * @param array $args Arguments. * * @return array|mixed|object */ public function get_properties($args = array()) { } /** * Get Property of field * * @param string $property Property. * @param string $field Field. * @param array $args Arguments. * * @return array|mixed|object */ public function get_property($property, $field, $args) { } } /** * Class Forminator_Mailchimp_Form_Hooks * * Hooks that used by Mailchimp Integration defined here * * @since 1.0 Mailchimp Integration */ class Forminator_Mailchimp_Form_Hooks extends \Forminator_Integration_Form_Hooks { /** * Flag of gpdr field checked on submit * * @since 1.0 Mailchimp Integration * * @var bool */ private $gdpr_is_checked = \true; /** * Render extra fields after all forms fields rendered * * @since 1.0 Mailchimp Integration */ public function on_after_render_form_fields() { } /** * Render GDPR Field - Experimental * * @since 1.0 Mailchimp Integration * * @param array $addon_setting_values Addon settings values. */ private function render_gdpr_field($addon_setting_values) { } /** * Helper Get form setting value with fixed var type * * @since 1.0 Mailchimp Integration * * @param array $form_settings Form settings. * @param string $key Key. * @param mixed $default_value Default value. * @param string $type Data type. * * @return int|mixed */ private static function get_form_setting_value_as($form_settings, $key, $default_value, $type = 'string') { } /** * Helper to convert value to expected var type * * @since 1.0 Mailchimp Integration * * @param mixed $value Value. * @param string $type Datatype. * * @return array|false|int|mixed|string */ private static function convert_value_to($value, $type) { } /** * Check GDPR field - Experimental * * @since 1.0 Mailchimp Integration * * @param array $submitted_data Submitted data. * * @return bool */ public function on_module_submit($submitted_data) { } /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array * @throws Forminator_Integration_Exception Integration Exception. */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Add additional data if needed. * * @param array $args Existed arguments. * @param array $addon_setting_values Integration settings. * @param bool $gdpr Is a GDPR field exist or not. * @return array */ private static function maybe_add_additional_data($args, $addon_setting_values, $gdpr) { } /** * Prepare GDPR fields for Mailchimp API * * @param array $gdpr_fields Saved GDPR fields. * @return array */ private static function prepare_marketing_permissions($gdpr_fields) { } /** * Add member status information * * @param array $sub_entries Sub-entries. * @param array $addon_data Integration meta data. * @return void */ public static function add_extra_entry_items(array &$sub_entries, array $addon_data) { } /** * It will delete members on mailchimp list * * @since 1.0 Mailchimp Integration * * @param Forminator_Form_Entry_Model $entry_model Form entry model. * @param array $addon_meta_data Addon meta data. * * @return bool */ public function on_before_delete_entry(\Forminator_Form_Entry_Model $entry_model, $addon_meta_data) { } /** * Get valid integration meta data * * @since 1.0 Mailchimp Integration * * @param array $addon_meta_data Addon meta data. * * @return array */ public static function get_valid_addon_meta_data_value($addon_meta_data) { } /** * Get DELETE member url form saved integration meta data * * @since 1.0 Mailchimp Integration * * @param array $addon_meta_data Addon meta data. * * @return string */ public static function get_delete_member_url_from_addon_meta_data($addon_meta_data) { } } /** * Trait for common methods for Mailchimp settings classes * * @since 1.30 * @package Mailchimp Integration */ /** * Trait Forminator_Mailchimp_Settings_Trait */ trait Forminator_Mailchimp_Settings_Trait { /** * Stores mailchimp group data * * @var array Groups */ protected $groups_data = array(); /** * Stores mailchimp GDPR data * * @var array */ protected $gdpr_data = array(); /** * Stores mailchimp tags data ( static segments ) * * @var array Tags */ protected $tags_data = array(); /** * For settings Wizard steps * * @since 1.0 Mailchimp Integration * @return array */ public function module_settings_wizards() { } /** * Choose Mail wizard * * @since 1.0 Mailchimp Integration * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. * @throws Forminator_Integration_Settings_Exception Throws Integration Settings Exception. */ public function choose_mail_list($submitted_data) { } /** * Get current data based on submitted or saved data * * @param array $current_data Default data. * @param array $submitted_data Submitted data. * @return array */ private function get_current_data($current_data, $submitted_data) { } /** * Check if it's submission a step. * * @param array $submitted_data Submitted data. * @param int $step Step. * @return boolean */ private static function is_submit($submitted_data, $step) { } /** * Choose Tags wizard * * @since 1.15.3 Mailchimp Integration * @param array $submitted_data Submitted data. * @return array */ public function choose_tags($submitted_data) { } /** * Choose Groups wizard * * @since 1.15.3 Mailchimp Integration * @param array $submitted_data Submitted data. * @return array */ public function choose_group($submitted_data) { } /** * Choose GDPR wizard * * @since 1.15.3 Mailchimp Integration * @param array $submitted_data Submitted data. * @return array */ public function choose_gdpr($submitted_data) { } /** * Returns Mailchimp group interests list * * @param array $data Data. * @return string */ public function get_group_interests($data) { } /** * Return an array of options used to display the settings of Group interests. * * @todo use $interest_id to show the selected values if set. This can be an array if group type is checkbox. * * @param string $type Group type. * @param array $interests Interests. * @param string $interest_id Interest ID. * @return array */ private function get_group_interest_options($type, $interests, $interest_id) { } /** * Return html of options used to display the settings of the 2nd step for tags. * * @since 1.15.3 * * @param array $selected_ids Selected Tag ID. * @return array */ private function get_second_step_options_tags($selected_ids) { } /** * Return html of options used to display the settings of the 3rd step for groups. * * @since 1.15.3 * * @param string $selected_id Selected group ID. * @return array */ private function get_third_step_options_groups($selected_id) { } /** * Return html of options used to display the settings of the 4rd step for GDPR. * * @since 1.15.3 * * @param string $selected_ids Selected GDRP ID. * @return string */ private function get_forth_step_options_gdpr($selected_ids) { } /** * Step mapping fields on wizard * * @since 1.0 Mailchimp Integration * @since 1.2 Refactor `hasBack` to `has_back` * @param array $submitted_data Submitted data. * @return array */ public function map_fields($submitted_data) { } /** * Get input of Map Fields * its table with html select options as input * * @since 1.0 Mailchimp Integration * * @param array $mailchimp_fields_list Field list. * @param array $current_data Current data. */ protected function get_input_map_fields($mailchimp_fields_list, $current_data) { } /** * Get mail List Name of submitted data * * @since 1.0 Mailchimp Integration * * @param array $mail_lists Mail lists. * @param array $submitted_data Submitted data. * * @return string */ private function get_choosen_mail_list_name($mail_lists, $submitted_data) { } /** * Set the tags of the given list. * * @param bool $force Optional. If true - don't use cache. * @since 1.15.3 */ private function set_tags($force = \false) { } /** * Set the GDPR fields that belong to the given list. * * @since 1.15.3 */ private function set_gdpr_fields() { } /** * Init the list groups. * * @param bool $force Optional. If true - don't use cache. * @since 1.15.3 */ private function set_groups($force = \false) { } /** * Calls the API to fetch remote interest options * * @return array */ private function get_interests() { } /** * Validate submitted data by user as expected by merge field on mailchimp mail list * * @since 1.0 Mailchimp Integration * * @param array $mailchimp_fields_list Mailchimp fields list. * @param array $post_data Post data. * * @return array current integration form settings * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function step_map_fields_validate($mailchimp_fields_list, $post_data) { } /** * Check if map fields is completed * * @since 1.0 Mailchimp Integration * @return bool */ public function step_map_fields_is_completed() { } /** * Check if mail list already selected completed * * @since 1.0 Mailchimp Integration * @return bool */ public function step_choose_mail_list_is_completed() { } /** * Return as if the step is indeed completed. * The second and third steps are optional, so no real validation is done here. * * @return boolean */ public function step_is_completed() { } } /** * Addon Mailchimp form settings. * * @package Forminator */ /** * Class Forminator_Mailchimp_Form_Settings * Form Settings Mailchimp Process * * @since 1.0 Mailchimp Integration */ class Forminator_Mailchimp_Form_Settings extends \Forminator_Integration_Form_Settings { use \Forminator_Mailchimp_Settings_Trait; } /** * Addon Mailchimp quiz hook. * * @package Forminator */ /** * Class Forminator_Mailchimp_Quiz_Hooks * * Hooks that used by Mailchimp Integration defined here * * @since 1.0 Mailchimp Integration */ class Forminator_Mailchimp_Quiz_Hooks extends \Forminator_Integration_Quiz_Hooks { /** * Flag of gpdr field checked on submit * * @since 1.0 Mailchimp Integration * * @var bool */ private $gdpr_is_checked = \true; /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Add additional data if needed. * * @param array $args Existed arguments. * @param array $addon_setting_values Integration settings. * @param bool $gdpr Is a GDPR field exist or not. * @return array */ private static function maybe_add_additional_data($args, $addon_setting_values, $gdpr) { } /** * Prepare GDPR fields for Mailchimp API * * @param array $gdpr_fields Saved GDPR fields. * @return array */ private static function prepare_marketing_permissions($gdpr_fields) { } /** * Add member status information * * @param array $sub_entries Sub-entries. * @param array $addon_data Integration meta data. * @return void */ public static function add_extra_entry_items(array &$sub_entries, array $addon_data) { } /** * It will delete members on mailchimp list * * @since 1.0 Mailchimp Integration * * @param Forminator_Form_Entry_Model $entry_model Form Entry Model. * @param array $addon_meta_data Addon meta data. * * @return bool */ public function on_before_delete_entry(\Forminator_Form_Entry_Model $entry_model, $addon_meta_data) { } /** * Get valid integration meta data * * @since 1.0 Mailchimp Integration * * @param array $addon_meta_data Addon meta data. * * @return array */ public static function get_valid_addon_meta_data_value($addon_meta_data) { } /** * Get DELETE member url form saved integration meta data * * @since 1.0 Mailchimp Integration * * @param array $addon_meta_data Addon meta data. * * @return string */ public static function get_delete_member_url_from_addon_meta_data($addon_meta_data) { } } /** * Addon Mailchimp quiz settings. * * @package Forminator */ /** * Class Forminator_Mailchimp_Quiz_Settings * Form Settings Mailchimp Process * * @since 1.0 Mailchimp Integration */ class Forminator_Mailchimp_Quiz_Settings extends \Forminator_Integration_Quiz_Settings { use \Forminator_Mailchimp_Settings_Trait; } /** * Class Forminator_Mailchimp * The class that defines mailchimp integration * * @since 1.0 Mailchimp Integration */ class Forminator_Mailchimp extends \Forminator_Integration { /** * Mailchimp Integration Instance * * @since 1.0 Mailchimp Integration * * @var self|null */ protected static $instance = \null; /** * Slug * * @since 1.0 Mailchimp Integration * @var string */ protected $_slug = 'mailchimp'; /** * Mailchimp version * * @since 1.0 Mailchimp Integration * @var string */ protected $_version = \FORMINATOR_ADDON_MAILCHIMP_VERSION; /** * Forminator min version * * @since 1.0 Mailchimp Integration * @var string */ protected $_min_forminator_version = '1.1'; /** * Short title * * @since 1.0 Mailchimp Integration * @var string */ protected $_short_title = 'Mailchimp'; /** * Title * * @since 1.0 Mailchimp Integration * @var string */ protected $_title = 'Mailchimp'; /** * Hold account information that currently connected * Will be saved to @see Forminator_Mailchimp::save_settings_values() * * @since 1.0 Mailchimp Integration * @var array */ private $_connected_account = array(); /** * Position * * @var int */ protected $_position = 2; /** * Sensitive key names that require encryption. * * @var array */ protected $_sensitive_keys = array('api_key'); /** * Forminator_Mailchimp constructor. * - Set dynamic translatable text(s) that will be displayed to end-user * - Set dynamic icons and images * * @since 1.0 Mailchimp Integration */ public function __construct() { } /** * Hook before save settings values * to include @see Forminator_Mailchimp::$_connected_account * for future reference * * @since 1.0 Mailchimp Integration * * @param array $values Settings. * * @return array */ public function before_save_settings_values($values) { } /** * Check if user already completed settings * * @since 1.0 Mailchimp Integration * @return bool */ public function is_authorized() { } /** * Return with true / false, you may update you setting update message too * * @see _update_settings_error_message * * @since 1.0 Mailchimp Integration * * @param string $api_key API Key. * * @return bool * @throws Forminator_Integration_Exception Throws Integration Exception. */ protected function validate_api_key($api_key) { } /** * Get API Instance * * @since 1.0 Mailchimp Integration * * @param string|null $api_key API Key. * * @return Forminator_Mailchimp_Wp_Api|null */ public function get_api($api_key = \null) { } /** * Get currently saved api key * * @since 1.0 Mailchimp Integration * * @param bool $decrypt Whether to decrypt the API key or not. * @return string|null */ private function get_api_key($decrypt = \false) { } /** * Build settings help on settings * * @since 1.0 Mailchimp Integration * @return string */ public function settings_help() { } /** * Settings description * * @return string */ public function settings_description() { } /** * Account info * * @return string */ public function settings_account() { } /** * Flag if delete member on delete entry enabled * * Default is `true`, * which can be changed via `FORMINATOR_ADDON_MAILCHIMP_ENABLE_DELETE_MEMBER` constant * * @return bool */ public static function is_enable_delete_member() { } /** * Flag to show full if GDPR feature enabled * GDPR is experimental feature on 1.0 version of this mailchimp integration * And disabled by default to enable it set @see FORMINATOR_ADDON_MAILCHIMP_ENABLE_GDPR to true in wp-config.php * Please bear in mind that currently its experimental, means not properly and thoroughly tested * * @since 1.0 Mailchimp Integration * @return bool */ public static function is_enable_gdpr() { } /** * Settings wizard * * @since 1.0 Mailchimp Integration * @return array */ public function settings_wizards() { } /** * Wizard of configure_api_key * * @since 1.0 Mailchimp Integration * * @param array $submitted_data Submitted data. * @param int $form_id Form Id. * * @return array */ public function configure_api_key($submitted_data, $form_id = 0) { } /** * AJAX load group interests */ public function ajax_group_interests() { } } /** * Forminator Addon Mailchimp API. * * @package Forminator */ /** * Class Forminator_Mailchimp_Wp_Api * Wrapper @see wp_remote_request() to be used to do request to mailchimp server * * @since 1.0 Mailchimp Integration */ class Forminator_Mailchimp_Wp_Api { /** * Mailchimp API instance * * @since 1.0 Mailchimp Integration * @var self|null */ private static $_instance = \null; /** * Endpoint of Mailchimp API * * @since 1.0 Mailchimp Integration * @var string */ private $_endpoint = 'https://{dc}.api.mailchimp.com/3.0/'; /** * API Key used to send request * * @since 1.0 Mailchimp Integration * @var string */ private $_api_key = ''; /** * Last data sent to mailchimp API * * @since 1.0 Mailchimp Integration * @var array */ private $_last_data_sent = array(); /** * Last data received from mailchimp API * * @since 1.0 Mailchimp Integration * @var array */ private $_last_data_received = array(); /** * Last URL requested * * @since 1.0 Mailchimp Integration * @var string */ private $_last_url_request = ''; /** * Forminator_Mailchimp_Wp_Api constructor. * * @since 1.0 Mailchimp Integration * * @param string $api_key API key. * * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function __construct($api_key) { } /** * Get singleton * * @since 1.0 Mailchimp Integration * * @param string|null $api_key API Key. * * @return Forminator_Mailchimp_Wp_Api|null */ public static function get_instance($api_key = \null) { } /** * Add extra info on user agent header used to send request * * @since 1.0 Mailchimp Integration * * @param string $user_agent User Agent. * * @return string */ public function filter_user_agent($user_agent) { } /** * HTTP Request * * @since 1.0 Mailchimp Integration * * @param string $verb `GET` `POST` `PUT` `DELETE` `PATCH`. * @param string $path Requested path. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function request($verb, $path, $args = array()) { } /** * Ping Mailchimp API to check if API key is valid * * @since 1.21.0 Mailchimp Integration * * @return array|mixed|object */ public function ping() { } /** * Get User Info for the current API KEY * * @since 1.0 Mailchimp Integration * * @param array $fields Fields. * * @return array|mixed|object */ public function get_info($fields = array()) { } /** * Get Mailchimp Lists * * @since 1.0 Mailchimp Integration * * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function get_lists($args) { } /** * Get all lists * * @param bool $force Use cahce or not. * @return array */ public function get_all_lists($force = \false) { } /** * Get List of merge fields * * @since 1.0 Mailchimp Integration * * @param string $list_id List Id. * @param string $args Arguments. * * @return array|mixed|object */ public function get_list_merge_fields($list_id, $args) { } /** * Add new Merge Field To List * * @since 1.0 Mailchimp Integration * * @param string $list_id List Id. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function add_merge_field_to_list($list_id, $args) { } /** * Get Created categories withing a list * * @since 1.0 Mailchimp Integration * * @param string $list_id List Id. * @param array $args Arguments. * * @return array|mixed|object */ public function get_list_categories($list_id, $args) { } /** * Get members by list ID * * @param string $list_id List ID. * @return array */ private function get_members($list_id) { } /** * Gets all the GDPR fields under a list * * @param string $list_id List ID. * @return array */ public function get_gdpr_fields($list_id) { } /** * Gets all the tags/static segments on a list * * @param string $list_id List ID. * @return array|mixed|object|WP_Error */ public function get_tags($list_id) { } /** * Get Created Interest Groups within a category * * @since 1.0 Mailchimp Integration * * @param string $list_id List Id. * @param string $category_id Category Id. * @param array $args Arguments. * * @return array|mixed|object */ public function get_category_interests($list_id, $category_id, $args) { } /** * Gets all the interests under a group list * * @param string $list_id List id. * @param string $category_id Category id. * @param int $count Count. * * @return array|mixed|object|WP_Error */ public function get_interests($list_id, $category_id, $count = 1000) { } /** * Get detail of member * * @since 1.0 Mailchimp Integration * * @param string $list_id List Id. * @param string $subscriber_hash The MD5 hash of the lowercase version of the list member’s email address. * @param array $args Arguments. * * @return array|mixed|object */ public function get_member($list_id, $subscriber_hash, $args) { } /** * Add Member to list * * @since 1.0 Mailchimp Integration * * @param string $list_id List Id. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function add_member_to_list($list_id, $args) { } /** * Add member if not available, or update member if exist * * @since 1.0 Mailchimp Integration * * @param string $list_id List Id. * @param string $subscriber_hash Subscriber hash. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function add_or_update_member($list_id, $subscriber_hash, $args) { } /** * Get detail of member * * @since 1.0 Mailchimp Integration * * @param string $list_id List Id. * @param string $subscriber_hash The MD5 hash of the lowercase version of the list member’s email address. * * @return array|mixed|object */ public function delete_member($list_id, $subscriber_hash) { } /** * Send `DELETE` request to URL * * Useful to interact with mailchimp schema _links. * * @since 1.0 Mailchimp Integration * * @param string $url href from _links response which will be converted to path. * * @return array|mixed|object */ public function delete_($url) { } /** * Get last data sent * * @since 1.0 Mailchimp Integration * * @return array */ public function get_last_data_sent() { } /** * Get last data received * * @since 1.0 Mailchimp Integration * * @return array */ public function get_last_data_received() { } /** * Get last data received * * @since 1.0 Mailchimp Integration * * @return string */ public function get_last_url_request() { } /** * Get current endpoint to send to Malchimp * * @since 1.0 Mailchimp Integration * @return string */ public function get_endpoint() { } } /** * Forminator Addon Mailerlite form hooks. * * @package Forminator */ /** * Class Forminator_Mailerlite_Form_Hooks * * Hooks that used by Mailerlite Integration defined here */ class Forminator_Mailerlite_Form_Hooks extends \Forminator_Integration_Form_Hooks { } /** * Trait for common methods for Mailerlite settings classes * * @since 1.30 * @package Mailerlite Integration */ /** * Trait Forminator_Mailerlite_Settings_Trait */ trait Forminator_Mailerlite_Settings_Trait { /** * For settings Wizard steps * * @return array */ public function module_settings_wizards() { } /** * Get mail list data * * @param array $submitted_data Submitted data. * @return array */ private function mail_list_data($submitted_data) { } /** * Choose Mail wizard * * @param array $submitted_data Submitted data. * * @return array */ public function choose_mail_list($submitted_data) { } /** * Save submitted settings * * @param array $submitted_data Submitted data. * @param string $list_name List name. */ private function save_settings($submitted_data, $list_name) { } /** * Get current data based on submitted or saved data * * @param array $current_data Default data. * @param array $submitted_data Submitted data. * @return array */ private function get_current_data($current_data, $submitted_data) { } /** * Get HTML for buttons on Choose List step. * * @param string $api_error API error. * @return array */ private function get_choose_list_buttons($api_error) { } /** * Get mail List Name of submitted data * * @param array $lists Lists. * @param array $submitted_data Submitted data. * * @return string */ private function get_choosen_mail_list_name($lists, $submitted_data) { } /** * Check if map fields is completed * * @return bool */ public function step_map_fields_is_completed() { } /** * Check if mail list already selected completed * * @return bool */ public function step_choose_mail_list_is_completed() { } } /** * Forminator Addon Mailerlite form settings. * * @package Forminator */ /** * Class Forminator_Mailerlite_Form_Settings * Form Settings Mailerlite Process */ class Forminator_Mailerlite_Form_Settings extends \Forminator_Integration_Form_Settings { use \Forminator_Mailerlite_Settings_Trait; } /** * Forminator Addon Mailerlite quiz hooks. * * @package Forminator */ /** * Class Forminator_Mailerlite_Quiz_Hooks * * Hooks that used by Mailerlite Integration defined here */ class Forminator_Mailerlite_Quiz_Hooks extends \Forminator_Integration_Quiz_Hooks { } /** * Forminator Addon Mailerlite quiz settings. * * @package Forminator */ /** * Class Forminator_Mailerlite_Quiz_Settings * Quiz Settings Mailerlite Process */ class Forminator_Mailerlite_Quiz_Settings extends \Forminator_Integration_Quiz_Settings { use \Forminator_Mailerlite_Settings_Trait; } /** * Forminator Addon Mailerlite. * * @package Forminator */ /** * Class Forminator_Mailerlite * The class that defines mailerlite integration */ class Forminator_Mailerlite extends \Forminator_Integration { /** * Mailerlite Integration Instance * * @var self|null */ protected static $instance = \null; /** * Slug * * @var string */ protected $_slug = 'mailerlite'; /** * Mailerlite version * * @var string */ protected $_version = \FORMINATOR_ADDON_MAILERLITE_VERSION; /** * Forminator minimum version * * @var string */ protected $_min_forminator_version = '1.30'; /** * Short title * * @var string */ protected $_short_title = 'MailerLite'; /** * Title * * @var string */ protected $_title = 'MailerLite'; /** * Position * * @var integer */ protected $_position = 4; /** * Sensitive key names that require encryption. * * @var array */ protected $_sensitive_keys = array('api_key'); /** * Forminator_Mailerlite constructor. * - Set dynamic translatable text(s) that will be displayed to end-user * - Set dynamic icons and images */ public function __construct() { } /** * Check if user already completed settings * * @return bool */ public function is_authorized() { } /** * Return with true / false, you may update you setting update message too * * @param string $api_key API key. * * @return bool */ protected function validate_api_keys($api_key) { } /** * Get API Instance * * @param string|null $api_key API key. * * @return Forminator_Mailerlite_Wp_Api|null */ public function get_api($api_key = \null) { } /** * Get currently saved api key * * @return string|null */ private function get_api_key() { } /** * Build settings help on settings * * @return string */ private function settings_help() { } /** * Settings description * * @return string */ private function settings_description() { } /** * Settings wizard * * @return array */ public function settings_wizards() { } /** * Wizard of configure_api_key * * @param array $submitted_data Submitted data. * * @return array */ public function configure_api_key($submitted_data) { } /** * Flag for check if has lead form integration connected to a quiz * by default it will check if last step of form settings already completed by user * * @param int $quiz_id Quiz Id. * * @return bool * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function is_quiz_lead_connected($quiz_id) { } } /** * Forminator Addon Mailerlite API. * * @package Forminator */ /** * Class Forminator_Mailerlite_Wp_Api * Wrapper @see wp_remote_request() to be used to do request to mailerlite server */ class Forminator_Mailerlite_Wp_Api { /** * Mailerlite API instance * * @var self|null */ private static $instance = \null; /** * Endpoint of Mailerlite API * * @var string */ private $endpoint = 'https://connect.mailerlite.com/api/'; /** * API Key used to send request * * @var string */ private $api_key = ''; /** * Last data sent to mailerlite API * * @var array */ private $last_data_sent = array(); /** * Last data received from mailerlite API * * @var array */ private $last_data_received = array(); /** * Last URL requested * * @var string */ private $last_url_request = ''; /** * Forminator_Mailerlite_Wp_Api constructor. * * @param string $api_key API Key. */ private function __construct($api_key) { } /** * Get singleton * * @param string $api_key API Key. * * @return Forminator_Mailerlite_Wp_Api */ public static function get_instance($api_key) { } /** * HTTP Request * * @param string $verb Request type. * @param string $path Request path. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function request($verb, $path, $args = array()) { } /** * Get User Info for the current API KEY * * @return array|mixed|object */ public function get_info() { } /** * Get Mailerlite Lists * * @param array $args Arguments. * * @return array|mixed|object */ public function get_lists($args) { } /** * Get all lists * * @param bool $force Use cahce or not. * @return array */ public function get_all_lists($force = \false) { } /** * Get List of contact_properties * * @return array */ public function get_contact_properties() { } /** * Add member if not available, or update member if exist * * @param string $list_id List ID. * @param string $email Email. * @param array $args Additional arguments. * * @return array|mixed|object */ public function add_or_update_member($list_id, $email, $args) { } /** * Get last data sent * * @return array */ public function get_last_data_sent() { } /** * Get last data received * * @return array */ public function get_last_data_received() { } /** * Get last data received * * @return string */ public function get_last_url_request() { } /** * Get current endpoint to send to Malchimp * * @return string */ public function get_endpoint() { } } /** * Forminator Addon Mailjet Form Hooks. * * @package Forminator */ /** * Class Forminator_Mailjet_Form_Hooks * * Hooks that used by Mailjet Integration defined here */ class Forminator_Mailjet_Form_Hooks extends \Forminator_Integration_Form_Hooks { /** * Return special integration args * * @param array $submitted_data Submitted data. * @param array $addon_setting_values Integration settings. * @return array */ protected function get_special_addon_args($submitted_data, $addon_setting_values) { } } /** * Trait for common methods for Mailjet settings classes * * @since 1.30 * @package Mailjet Integration */ /** * Trait Forminator_Mailjet_Settings_Trait */ trait Forminator_Mailjet_Settings_Trait { /** * For settings Wizard steps * * @return array */ public function module_settings_wizards() { } /** * Get mail list data * * @param array $submitted_data Submitted data. * @return array */ private function mail_list_data($submitted_data) { } /** * Choose Mail wizard * * @param array $submitted_data Submitted data. * * @return array */ public function choose_mail_list($submitted_data) { } /** * Save submitted settings * * @param array $submitted_data Submitted data. * @param string $list_name List name. */ private function save_settings($submitted_data, $list_name) { } /** * Get current data based on submitted or saved data * * @param array $current_data Default data. * @param array $submitted_data Submitted data. * @return array */ private function get_current_data($current_data, $submitted_data) { } /** * Get HTML for buttons on Choose List step. * * @param string $api_error API error. * @return array */ private function get_choose_list_buttons($api_error) { } /** * Get additional integration fields. * * @return array */ protected function get_additional_addon_fields() { } /** * Get mail List Name of submitted data * * @param array $lists Lists. * @param array $submitted_data Submitted data. * * @return string */ private function get_choosen_mail_list_name($lists, $submitted_data) { } /** * Check if map fields is completed * * @return bool */ public function step_map_fields_is_completed() { } /** * Check if mail list already selected completed * * @return bool */ public function step_choose_mail_list_is_completed() { } } /** * Forminator Addon Mailjet Form Settings. * * @package Forminator */ /** * Class Forminator_Mailjet_Form_Settings * Form Settings Mailjet Process */ class Forminator_Mailjet_Form_Settings extends \Forminator_Integration_Form_Settings { use \Forminator_Mailjet_Settings_Trait; } /** * Forminator Addon Mailjet Quiz Hooks. * * @package Forminator */ /** * Class Forminator_Mailjet_Quiz_Hooks * * Hooks that used by Mailjet Integration defined here */ class Forminator_Mailjet_Quiz_Hooks extends \Forminator_Integration_Quiz_Hooks { } /** * Forminator Addon Mailjet Quiz Settings. * * @package Forminator */ /** * Class Forminator_Mailjet_Quiz_Settings * Form Settings Mailjet Process */ class Forminator_Mailjet_Quiz_Settings extends \Forminator_Integration_Quiz_Settings { use \Forminator_Mailjet_Settings_Trait; } /** * Class Forminator_Mailjet * The class that defines mailjet integration */ class Forminator_Mailjet extends \Forminator_Integration { /** * Mailjet Integration Instance * * @var self|null */ protected static $instance = \null; /** * Slug * * @var string */ protected $_slug = 'mailjet'; /** * Mailjet version * * @var string */ protected $_version = \FORMINATOR_ADDON_MAILJET_VERSION; /** * Forminator minimum version * * @var string */ protected $_min_forminator_version = '1.28'; /** * Short title * * @var string */ protected $_short_title = 'Mailjet'; /** * Title * * @var string */ protected $_title = 'Mailjet'; /** * Hold account information that currently connected * Will be saved to @see Forminator_Mailjet::save_settings_values() * * @var array */ private $_connected_account = array(); /** * Position * * @var int */ protected $_position = 3; /** * Sensitive key names that require encryption. * * @var array */ protected $_sensitive_keys = array('secret_key'); /** * Forminator_Mailjet constructor. * - Set dynamic translatable text(s) that will be displayed to end-user * - Set dynamic icons and images */ public function __construct() { } /** * Hook before save settings values * to include @see Forminator_Mailjet::$_connected_account * for future reference * * @param array $values Values to save. * * @return array */ public function before_save_settings_values($values) { } /** * Check if user already completed settings * * @return bool */ public function is_authorized() { } /** * Return with true / false, you may update you setting update message too * * @param string $api_key API key. * @param string $secret_key Secret key. * * @return bool * @throws Forminator_Integration_Exception Throws Integration Exception. */ protected function validate_api_keys($api_key, $secret_key) { } /** * Get API Instance * * @param string|null $api_key API Key. * @param string|null $secret_key API secret Key. * * @return Forminator_Mailjet_Wp_Api|null */ public function get_api($api_key = \null, $secret_key = \null) { } /** * Get currently saved api key * * @return string|null */ private function get_api_key() { } /** * Get currently saved secret key * * @return string|null */ private function get_secret_key() { } /** * Build settings help on settings * * @return string */ public function settings_help() { } /** * Settings description * * @return string */ public function settings_description() { } /** * Connected account info * * @return string */ public function settings_account() { } /** * Settings wizard * * @return array */ public function settings_wizards() { } /** * Wizard of configure_api_key * * @param array $submitted_data Submitted data. * @param int $form_id Form Id. * * @return array */ public function configure_api_key($submitted_data, $form_id = 0) { } } /** * Forminator Addon Mailjet API. * * @package Forminator */ /** * Class Forminator_Mailjet_Wp_Api * Wrapper @see wp_remote_request() to be used to do request to mailjet server */ class Forminator_Mailjet_Wp_Api { /** * Mailjet API instance * * @var self|null */ private static $instance = \null; /** * Endpoint of Mailjet API * * @var string */ private $endpoint = 'https://api.mailjet.com/v3/REST/'; /** * API Key used to send request * * @var string */ private $api_key = ''; /** * Secret Key used to send request * * @var string */ private $secret_key = ''; /** * Last data sent to mailjet API * * @var array */ private $last_data_sent = array(); /** * Last data received from mailjet API * * @var array */ private $last_data_received = array(); /** * Last URL requested * * @var string */ private $last_url_request = ''; /** * Forminator_Mailjet_Wp_Api constructor. * * @param string $api_key API Key. * @param string $secret_key API Secret Key. * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function __construct($api_key, $secret_key) { } /** * Get singleton * * @param string $api_key API Key. * @param string $secret_key API Secret Key. * * @return Forminator_Mailjet_Wp_Api|null */ public static function get_instance($api_key, $secret_key) { } /** * HTTP Request * * @param string $verb HTTP Request type. * @param string $path Request path. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function request($verb, $path, $args = array()) { } /** * Recursively convert all the keys to lowercase * * @param array|object $arr Base variable. * @return array|object */ private static function array_change_key_case_recursive($arr) { } /** * Get User Info for the current API KEY * * @return array|mixed|object */ public function get_info() { } /** * Get Mailjet Lists * * @param array $args Arguments. * * @return array|mixed|object */ public function get_lists($args) { } /** * Get prepared array of Mailchimp lists * * @param bool $force Use cache or not. * @return array */ public function get_prepared_lists($force = \false) { } /** * Get all lists * * @param bool $force Use cahce or not. * @return array */ public function get_all_lists($force = \false) { } /** * Get List of contact_properties * * @return array */ public function get_contact_properties() { } /** * Add member if not available, or update member if exist * * @param string $list_id List ID. * @param string $email Email. * @param array $args Additional arguments. * * @return array|mixed|object */ public function add_or_update_member($list_id, $email, $args) { } /** * Get last data sent * * @return array */ public function get_last_data_sent() { } /** * Get last data received * * @return array */ public function get_last_data_received() { } /** * Get last data received * * @return string */ public function get_last_url_request() { } /** * Get current endpoint to send to Malchimp * * @return string */ public function get_endpoint() { } } /** * Forminator Addon Slack Form Hooks. * * @package Forminator */ /** * Class Forminator_Slack_Form_Hooks * * @since 1.0 Slack Integration */ class Forminator_Slack_Form_Hooks extends \Forminator_Integration_Form_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on send message to Slack * * @since 1.0 Slack Integration * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $form_entry_fields Form entry fields. * * @return array `is_sent` true means its success send data to Slack, false otherwise * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function get_status_on_send_message($connection_id, $submitted_data, $connection_settings, $form_entry_fields) { } /** * Get All Form Fields as attachments * * @since 1.0 Slack Integration * * @param array $submitted_data Submitted data. * @param array $form_entry_fields Form entry fields. * * @return array */ public function get_form_fields_as_attachments($submitted_data, $form_entry_fields) { } /** * It will delete sent chat * * @since 1.0 Slack Integration * * @param Forminator_Form_Entry_Model $entry_model Form Entry Model. * @param array $addon_meta_data Addon Meta Data. * * @return bool */ public function on_before_delete_entry(\Forminator_Form_Entry_Model $entry_model, $addon_meta_data) { } } /** * Trait for common methods for Slack settings classes * * @since 1.30 * @package Slack Integration */ /** * Trait Forminator_Slack_Settings_Trait */ trait Forminator_Slack_Settings_Trait { /** * Target array * * @var array */ public $target_types = array(); /** * Forminator_Slack_Form_Settings constructor. * * @since 1.0 Slack Integration * * @param Forminator_Integration $addon Forminator Integration Addon. * @param int $form_id Form Id. */ public function __construct(\Forminator_Integration $addon, $form_id) { } /** * Slack Module Settings wizard * * @since 1.0 Slack Integration * @return array */ public function module_settings_wizards() { } /** * Setup Connection Name * * @since 1.0 Slack Integration * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function pick_name($submitted_data) { } /** * Select Message Type * * @since 1.0 Slack Integration * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function select_type($submitted_data) { } /** * Check if select type completed * * @since 1.0 Slack Integration * @param array $submitted_data Submitted data. * @return bool */ public function select_type_is_completed($submitted_data) { } /** * Select Target * * @since 1.0 Slack Integration * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function select_target($submitted_data) { } /** * Check if select target completed * * @since 1.0 Slack Integration * @param array $submitted_data Submitted data. * @return bool */ public function select_target_is_completed($submitted_data) { } /** * Setup Message * * @since 1.0 Slack Integration * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function setup_message($submitted_data) { } /** * Check if setup message completed * * @since 1.0 Slack Integration * @param array $submitted_data Submitted data. * @return bool */ public function setup_message_is_completed($submitted_data) { } } /** * Forminator Addon Slack Form Settings. * * @package Forminator */ /** * Class Forminator_Slack_Form_Settings * Handle how form settings displayed and saved * * @since 1.0 Slack Integration */ class Forminator_Slack_Form_Settings extends \Forminator_Integration_Form_Settings { use \Forminator_Slack_Settings_Trait; } /** * Forminator Addon Slack Poll Hooks. * * @package Forminator */ /** * Class Forminator_Slack_Poll_Hooks * * @since 1.6.1 */ class Forminator_Slack_Poll_Hooks extends \Forminator_Integration_Poll_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on send message to Slack * * @since 1.6.1 * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $poll_entry_fields Poll entry fields. * * @return array `is_sent` true means its success send data to Slack, false otherwise * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function get_status_on_send_message($connection_id, $submitted_data, $connection_settings, $poll_entry_fields) { } /** * Get Poll Data as attachments * * @since 1.6.1 * * @param array $submitted_data Submitted data. * @param array $poll_entry_fields Poll entry fields. * * @return array */ public function get_poll_data_as_attachments($submitted_data, $poll_entry_fields) { } } /** * Forminator Addon Slack Poll Settings. * * @package Forminator */ /** * Class Forminator_Slack_Poll_Settings * Handle how poll settings displayed and saved * * @since 1.6.1 */ class Forminator_Slack_Poll_Settings extends \Forminator_Integration_Poll_Settings { use \Forminator_Slack_Settings_Trait; } /** * Forminator Addon Slack Quiz Hooks. * * @package Forminator */ /** * Class Forminator_Slack_Quiz_Hooks * * @since 1.6.2 */ class Forminator_Slack_Quiz_Hooks extends \Forminator_Integration_Quiz_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on send message to Slack * * @since 1.6.2 * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $quiz_entry_fields Quiz entry fields. * * @return array `is_sent` true means its success send data to Slack, false otherwise * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function get_status_on_send_message($connection_id, $submitted_data, $connection_settings, $quiz_entry_fields) { } /** * Get Quiz Data as attachments * * @since 1.6.2 * * @param array $submitted_data Submitted data. * @param array $quiz_entry_fields Quiz entry fields. * * @return array */ public function get_quiz_data_as_attachments($submitted_data, $quiz_entry_fields) { } /** * Get All Form Fields as attachments * * @since 1.0 Slack Integration * * @param array $submitted_data Submitted data. * @param array $form_entry_fields Form entry fields. * * @return array */ public function get_lead_form_fields_as_attachments($submitted_data, $form_entry_fields) { } } /** * Forminator Addon Slack Quiz Settings. * * @package Forminator */ /** * Class Forminator_Slack_Quiz_Settings * Handle how quiz settings displayed and saved * * @since 1.6.2 */ class Forminator_Slack_Quiz_Settings extends \Forminator_Integration_Quiz_Settings { use \Forminator_Slack_Settings_Trait; /** * Has lead * * @return bool */ public function has_lead() { } } /** * Class Forminator_Slack * Slack Integration Main Class * * @since 1.0 Slack Integration */ final class Forminator_Slack extends \Forminator_Integration { /** * Forminator_Slack Instance * * @var self|null */ protected static $instance = \null; /** * Slug * * @var string */ protected $_slug = 'slack'; /** * Slack version * * @var string */ protected $_version = \FORMINATOR_ADDON_SLACK_VERSION; /** * Forminator minimum version * * @var string */ protected $_min_forminator_version = '1.1'; /** * Short title * * @var string */ protected $_short_title = 'Slack'; /** * Title * * @var string */ protected $_title = 'Slack'; /** * Token * * @var string */ private $_token = ''; /** * Error message * * @var string */ private $_auth_error_message = ''; const TARGET_TYPE_PUBLIC_CHANNEL = 'public_channel'; const TARGET_TYPE_PRIVATE_CHANNEL = 'private_channel'; const TARGET_TYPE_DIRECT_MESSAGE = 'direct_message'; /** * Slack API * * @var null|Forminator_Slack_Wp_Api */ private static $_api = \null; /** * Position * * @var int */ protected $_position = 4; /** * Sensitive key names that require encryption. * * @var array */ protected $_sensitive_keys = array('client_secret'); /** * Forminator_Slack constructor. * * @since 1.0 Slack Integration */ public function __construct() { } /** * Override settings available, * * @since 1.0 Slack Integration * @return bool */ public function is_settings_available() { } /** * Flag to enable delete chat * * @since 1.0 Slack Integration * @return bool */ public static function enable_delete_chat() { } /** * Allow multiple connection on one form * * @since 1.0 Slack Integration * @return bool */ public function is_allow_multi_on_form() { } /** * Settings wizard * * @since 1.0 Slack Integration * @return array */ public function settings_wizards() { } /** * Authorize Access wizard * * @since 1.0 Slack Integration * * @param array $submitted_data Submitted Data. * * @return array */ public function setup_client_id($submitted_data) { } /** * Setup client id is complete * * @param array $submitted_data Submitted Data. * * @return bool */ public function setup_client_id_is_completed($submitted_data) { } /** * Authorize Access wizard * * @since 1.0 Slack Integration * @return array */ public function authorize_access() { } /** * Authorize access is completed. * * @return bool */ public function authorize_access_is_completed() { } /** * Wait Authorize Access wizard * * @since 1.0 Slack Integration * @return array */ public function wait_authorize_access() { } /** * Authorized Callback * * @since 1.0 Slack Integration * @return bool */ public function is_authorized() { } /** * Get Client ID * * @since 1.0 Slack Integration * @return string */ public function get_client_id() { } /** * Get Client secret * * @since 1.0 Slack Integration * @return string */ public function get_client_secret() { } /** * Get Access Token * * @since 1.0 Slack Integration * @return string */ public function get_client_access_token() { } /** * Get slack settings while app is being connected * * @since 1.18 Slack Integration * * @return array */ public function get_slack_settings() { } /** * Register a page for redirect url of Slack auth * * @since 1.0 Slack Integration * * @return array */ public function register_integration_sections() { } /** * Get Auth Url * * @return string */ public function get_auth_url() { } /** * Slack Authorize Page * * @since 1.0 Slack Integration * * @param array $query_args Arguments. * * @return string * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function authorize_page_callback($query_args) { } /** * Get API Instance * * @since 1.0 Slack Integration * * @param null|string $access_token Access token. * * @return Forminator_Slack_Wp_Api|null */ public function get_api($access_token = \null) { } /** * Before get Setting Values * * @since 1.0 Slack Integration * * @param array $values Setting to save. * * @return mixed */ public function before_get_settings_values($values) { } /** * Default filter for header * * Its add / change Authorization header * - on get access token it uses Basic realm of encoded client id and secret * - on web API request it uses Bearer realm of access token which default of @see Forminator_Slack_Wp_Api * * @since 1.0 Slack Integration * * @param array $headers Headers. * @param string $verb HTTP request type. * @param string $path Request path. * @param array $args Arguments. * * @return array */ public function default_filter_api_headers($headers, $verb, $path, $args) { } /** * Allow multiple connection on one poll * * @since 1.6.1 * @return bool */ public function is_allow_multi_on_poll() { } /** * Allow multiple connection on one quiz * * @since 1.6.1 * @return bool */ public function is_allow_multi_on_quiz() { } } /** * Forminator Slack API * * @package Forminator */ /** * Class Forminator_Slack_Wp_Api */ class Forminator_Slack_Wp_Api { const AUTHORIZE_URL = 'https://slack.com/oauth/authorize'; /** * OAuth scopes * * @var array */ public static $oauth_scopes = array('channels:read', 'channels:write', 'chat:write:bot', 'groups:read', 'groups:write', 'users:read'); /** * Instances of slack api * * @var array */ private static $_instances = array(); /** * Slack endpoint * * @var string */ private $_endpoint = 'https://slack.com/api'; /** * Last data sent to slack * * @since 1.0 Slack Integration * @var array */ private $_last_data_sent = array(); /** * Last data received from slack * * @since 1.0 Slack Integration * @var array */ private $_last_data_received = array(); /** * Last URL requested * * @since 1.0 Slack Integration * @var string */ private $_last_url_request = ''; /** * Token * * @var array */ private $_token = ''; /** * Forminator_Slack_Wp_Api constructor. * * @since 1.0 Slack Integration * * @param string $_token Token. * * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function __construct($_token) { } /** * Get singleton * * @since 1.0 Slack Integration * * @param string $_token Token. * * @return Forminator_Slack_Wp_Api|null */ public static function get_instance($_token) { } /** * Add custom user agent on request * * @since 1.0 Slack Integration * * @param string $user_agent User agent. * * @return string */ public function filter_user_agent($user_agent) { } /** * HTTP Request * * @since 1.0 Slack Integration * * @param string $verb HTTP Request type. * @param string $path Path. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function request($verb, $path, $args = array()) { } /** * Get access token * * @param string $code Request code. * @param string $redirect_uri Redirect URI. * @param array $args Arguments. * * @return array|mixed|object */ public function get_access_token($code, $redirect_uri, $args = array()) { } /** * Get Users / members List * * @since 1.0 Slack Integration * * @param array $args Arguments. * * @return array|mixed|object */ public function get_users_list($args = array()) { } /** * Get Public Channels List * * @since 1.0 Slack Integration * * @param array $args Arguments. * * @return array|mixed|object */ public function get_channels_list($args = array()) { } /** * Get Private Channels List * * @since 1.0 Slack Integration * * @param array $args Arguments. * * @return array|mixed|object */ public function get_groups_list($args = array()) { } /** * Send Message * * @since 1.0 Slack Integration * * @param string $channel Post Channel. * @param string $text Text. * @param array $args Arguments. * * @return array|mixed|object */ public function chat_post_message($channel, $text, $args = array()) { } /** * Delete Message * * @since 1.0 Slack Integration * * @param string $channel Channel. * @param string $chat_ts Chat ts. * @param array $args Arguments. * * @return array|mixed|object */ public function chat_delete($channel, $chat_ts, $args = array()) { } /** * Get last data sent * * @since 1.0 Slack Integration * * @return array */ public function get_last_data_sent() { } /** * Get last data received * * @since 1.0 Slack Integration * * @return array */ public function get_last_data_received() { } /** * Get last data received * * @since 1.0 Slack Integration * * @return string */ public function get_last_url_request() { } } /** * Forminator Trello form hooks * * @package Forminator */ /** * Class Forminator_Trello_Form_Hooks * * @since 1.0 Trello Integration */ class Forminator_Trello_Form_Hooks extends \Forminator_Integration_Form_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on create Trello card * * @since 1.0 Trello Integration * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $form_entry_fields Form entry fields. * @param object $entry Entry instance. * * @return array `is_sent` true means its success send data to Trello, false otherwise */ private function get_status_on_create_card($connection_id, $submitted_data, $connection_settings, $form_entry_fields, $entry) { } /** * Special Replacer `{all_fields}` to markdown with Trello Flavour */ private function all_fields_to_markdown() { } /** * Get Markdown for single field * * @since 1.0 Trello Integration * * @param string $type Field type. * @param string $label Field label. * @param string $value Field value. * * @return string */ public static function get_field_markdown($type, $label, $value) { } /** * It will delete card on trello list * * @since 1.0 Trello Integration * * @param Forminator_Form_Entry_Model $entry_model Form entry Model. * @param array $addon_meta_data Addon meta data. * * @return bool */ public function on_before_delete_entry(\Forminator_Form_Entry_Model $entry_model, $addon_meta_data) { } /** * Delete card hooked * * @since 1.0 Trello Integration * * @param string $card_id Card Id. * @param string $card_delete_mode Card delete mode. * @param array $addon_meta_datum Addon meta data. */ public function delete_card($card_id, $card_delete_mode, $addon_meta_datum) { } /** * Get uploads to be added as attachments * * @param array $fields Fields. */ private function get_uploads($fields) { } /** * Add attachments to created card * * @param mixed $api API. * @param array $uploads Uploads. */ private function add_attachments($api, $uploads) { } } /** * Trait for common methods for Trello settings classes * * @since 1.30 * @package Trello Integration */ /** * Trait Forminator_Trello_Settings_Trait */ trait Forminator_Trello_Settings_Trait { /** * Trello Module Settings wizard * * @since 1.0 Trello Integration * @return array */ public function module_settings_wizards(): array { } /** * Setup Name * * @since 1.0 Trello Integration * * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function setup_name($submitted_data) { } /** * Setup Board * * @since 1.0 Trello Integration * * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function setup_board($submitted_data) { } /** * Check if setup board is completed * * @since 1.0 Trello Integration * @param array $submitted_data Submitted data. * @return bool */ public function setup_board_is_completed($submitted_data) { } /** * Setup List on Board * * @since 1.0 Trello Integration * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function setup_list($submitted_data) { } /** * Setup Card * * @since 1.0 * * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function setup_card($submitted_data) { } /** * Check if card completed * * @since 1.0 Trello Integration * @param array $submitted_data Submitted data. * @return bool */ public function setup_card_is_completed($submitted_data) { } } /** * Forminator Trello form settings * * @package Forminator */ /** * Class Forminator_Trello_Form_Settings * Handle how form settings displayed and saved * * @since 1.0 Trello Integration */ class Forminator_Trello_Form_Settings extends \Forminator_Integration_Form_Settings { use \Forminator_Trello_Settings_Trait; } /** * Forminator Trello poll hooks * * @package Forminator */ /** * Class Forminator_Trello_Poll_Hooks * * @since 1.6.1 */ class Forminator_Trello_Poll_Hooks extends \Forminator_Integration_Poll_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on create Trello card * * @since 1.6.1 * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $current_entry_fields Form entry fields. * @param object $entry Entry instance. * * @return array `is_sent` true means its success send data to Trello, false otherwise */ private function get_status_on_create_card($connection_id, $submitted_data, $connection_settings, $current_entry_fields, $entry) { } /** * Special Replacer `{poll_name}` to markdown with Trello Flavour * * @since 1.6.2 * @return string */ private function poll_name_to_markdown() { } /** * Special Replacer `{poll_answer}` to markdown with Trello Flavour * * @since 1.6.1 * * @param array $submitted_data Submitted Data. * * @return string */ private function poll_answer_to_markdown($submitted_data) { } /** * Special Replacer `{poll_result}` to markdown with Trello Flavour * * @since 1.6.1 * * @param array $submitted_data Submitted data. * * @return string */ private function poll_result_to_markdown($submitted_data) { } /** * Special Replacer `{poll_answer}` to markdown with Trello Flavour * * @since 1.6.2 * * @param array $submitted_data Submitted data. * * @return string */ private function poll_answer_to_plain_text($submitted_data) { } /** * Special Replacer `{poll_result}` to markdown with Trello Flavour * * @since 1.6.2 * * @param array $submitted_data Submitted data. * * @return string */ private function poll_result_to_plain_text($submitted_data) { } } /** * Forminator Trello poll settings * * @package Forminator */ /** * Class Forminator_Trello_Poll_Settings * Handle how poll settings displayed and saved * * @since 1.6.1 */ class Forminator_Trello_Poll_Settings extends \Forminator_Integration_Poll_Settings { use \Forminator_Trello_Settings_Trait; } /** * Forminator Trello poll hooks * * @package Forminator */ /** * Class Forminator_Trello_Quiz_Hooks * * @since 1.6.2 */ class Forminator_Trello_Quiz_Hooks extends \Forminator_Integration_Quiz_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on create Trello card * * @since 1.6.2 * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $current_entry_fields Form entry fields. * @param null|object $entry Entry instance. * * @return array `is_sent` true means its success send data to Trello, false otherwise */ private function get_status_on_create_card($connection_id, $submitted_data, $connection_settings, $current_entry_fields, $entry = \null) { } /** * Special Replacer `{quiz_answer}` to markdown with Trello Flavour * * @param array $quiz_entry_fields Quiz entry fields. * * @return string */ private function quiz_answers_to_markdown($quiz_entry_fields) { } /** * Special Replacer `{quiz_result}` to markdown with Trello Flavour * * @since 1.6.2 * * @param array $quiz_entry_fields Quiz entry fields. * * @return string */ private function quiz_result_to_markdown($quiz_entry_fields) { } } /** * Forminator Trello poll settings * * @package Forminator */ /** * Class Forminator_Trello_Quiz_Settings * Handle how quiz settings displayed and saved * * @since 1.6.2 */ class Forminator_Trello_Quiz_Settings extends \Forminator_Integration_Quiz_Settings { use \Forminator_Trello_Settings_Trait; /** * Has lead * * @return bool */ public function has_lead() { } } /** * Class Forminator_Trello * Trello Integration Main Class * * @since 1.0 Trello Integration */ final class Forminator_Trello extends \Forminator_Integration { /** * Forminator_Trello Instance * * @var self|null */ protected static $instance = \null; /** * Slug * * @var string */ protected $_slug = 'trello'; /** * Trello version * * @var string */ protected $_version = \FORMINATOR_ADDON_TRELLO_VERSION; /** * Forminator minimum version * * @var string */ protected $_min_forminator_version = '1.1'; /** * Short title * * @var string */ protected $_short_title = 'Trello'; /** * Title * * @var string */ protected $_title = 'Trello'; /** * Position * * @var int */ protected $_position = 5; const CARD_DELETE_MODE_DELETE = 'delete'; const CARD_DELETE_MODE_CLOSED = 'closed'; /** * Card delete modes * * @var array */ private static $card_delete_modes = array(self::CARD_DELETE_MODE_DELETE, self::CARD_DELETE_MODE_CLOSED); /** * Connected Account Info * * @var array */ private $connected_account = array(); /** * Current Token * * @var string */ private $_token = ''; /** * API key * * @var string */ private $_app_key = ''; /** * Identifier * * @var string */ private $identifier = ''; /** * Sensitive key names that require encryption. * * @var array */ protected $_sensitive_keys = array('api_key'); /** * Forminator_Trello constructor. * * @since 1.0 Trello Integration */ public function __construct() { } /** * Override settings available, * * @since 1.0 Trello Integration * @return bool */ public function is_settings_available() { } /** * Flag enable delete card before delete entries * * Its disabled by default * * @since 1.0 Trello Integration * @return bool */ public static function is_enable_delete_card() { } /** * Get Delete mode for card * * Acceptable values : 'delete', 'closed' * default is 'delete' * * @see Forminator_Trello::is_enable_delete_card() * * @since 1.0 Trello Integration * @return string */ public static function get_card_delete_mode() { } /** * Allow multiple connection on one form * * @since 1.0 Trello Integration * @return bool */ public function is_allow_multi_on_form() { } /** * Get Trello APP key * * @see https://trello.com/app-key * * @since 1.0 Trello Integration * * @return string; */ public function get_app_key() { } /** * Settings wizard * * @since 1.0 Trello Integration * @return array */ public function settings_wizards() { } /** * Setup API key * * @param array $submitted_data Submitted data. * * @return array */ public function setup_api_key($submitted_data) { } /** * Setup API key is complete * * @param array $submitted_data Submitted data. * * @return bool */ public function setup_api_key_is_completed($submitted_data) { } /** * Authorize Access wizard * * @since 1.0 Trello Integration * @return array */ public function authorize_access() { } /** * Wait Authorize Access wizard * * @since 1.0 Trello Integration * @return array */ public function wait_authorize_access() { } /** * Authorized Callback * * @since 1.0 Trello Integration * @return bool */ public function is_authorized() { } /** * Pseudo step * * @since 1.0 Trello Integration * @return bool */ public function authorize_access_is_completed() { } /** * Get Connected Account * * @since 1.0 Trello Integration * * @return array */ public function get_connected_account() { } /** * Register a page for redirect url of trello auth * * @since 1.0 Trello Integration * * @return array */ public function register_integration_sections() { } /** * Trello Authorize Page * * @since 1.0 Trello Integration * * @param array $query_args Arguments. * * @return string * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function authorize_page_callback($query_args) { } /** * Get Trello Auth URL * * @since 1.1 Trello Integration * * @param string $return_url Return URL. * * @return string */ public function get_auth_url($return_url = '') { } /** * Validate token with trello API * * Using `members/me` * * @since 1.0 Trello Integration * * @param string $token Token. * @param string $api_key API key. * * @return bool|string * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function validate_token($token, $api_key) { } /** * Get API * * @param string|null $token Token. * @param string|null $api_key API Key. * * @return Forminator_Trello_Wp_Api */ public function get_api($token = \null, $api_key = \null) { } /** * Before get Setting Values * * @since 1.0 Slack Integration * * @param array $values Settings to save. * * @return mixed */ public function before_get_settings_values($values) { } /** * Revoke token on Trello before deactivate * * @since 1.0 Trello Integration * @return bool */ public function deactivate() { } /** * Get available card delete modes * * @since 1.0 Trello Integration * @return array */ public static function get_card_delete_modes() { } /** * Allow multiple connection on one poll * * @since 1.6.1 * @return bool */ public function is_allow_multi_on_poll() { } /** * Allow multiple connection on one quiz * * @since 1.6.2 * @return bool */ public function is_allow_multi_on_quiz() { } } /** * Forminator Trello API * * @package Forminator */ /** * Class Forminator_Trello_Wp_Api */ class Forminator_Trello_Wp_Api { /** * Trello API endpoint * * @var string */ private $_endpoint = 'https://trello.com/1/'; /** * Trello APP Key * * @var string */ private $_app_key = ''; /** * Trello user Token * * @var string */ private $_token = ''; /** * Last data sent to trello * * @since 1.0 Trello Integration * @var array */ private $_last_data_sent = array(); /** * Last data received from trello * * @since 1.0 Trello Integration * @var array */ private $_last_data_received = array(); /** * Last URL requested * * @since 1.0 Trello Integration * @var string */ private $_last_url_request = ''; /** * Forminator_Trello_Wp_Api constructor. * * @since 1.0 Trello Integration * * @param string $app_key App Key. * @param string $token Token. * * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function __construct($app_key, $token) { } /** * Add custom user agent on request * * @since 1.0 Trello Integration * * @param string $user_agent User Agent. * * @return string */ public function filter_user_agent($user_agent) { } /** * HTTP Request * * @since 1.0 Trello Integration * * @param string $verb HTTP Request type. * @param string $path Request path. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function request($verb, $path, $args = array()) { } /** * Send POST Request * * @since 1.0 Trello Integration * * @param string $path Request path. * @param array $args Arguments. * * @return array|mixed|object */ public function post_($path, $args = array()) { } /** * Send GET Request * * @since 1.0 Trello Integration * * @param string $path Request path. * @param array $args Arguments. * * @return array|mixed|object */ public function get_($path, $args = array()) { } /** * Send PUT Request * * @since 1.0 Trello Integration * * @param string $path Request path. * @param array $args Arguments. * * @return array|mixed|object */ public function put_($path, $args = array()) { } /** * Send DELETE Request * * @since 1.0 Trello Integration * * @param string $path Request path. * @param array $args Arguments. * * @return array|mixed|object */ public function delete_($path, $args = array()) { } /** * Get Boards * * @since 1.0 Trello Integration * * @param array $args Arguments. * * @return array|mixed|object */ public function get_boards($args = array()) { } /** * Get List * * @since 1.0 Trello Integration * * @param string $board_id Board Id. * @param array $args Arguments. * * @return array|mixed|object */ public function get_board_lists($board_id, $args = array()) { } /** * Get Members * * @since 1.0 Trello Integration * * @param string $board_id Board Id. * @param array $args Arguments. * * @return array|mixed|object */ public function get_board_members($board_id, $args = array()) { } /** * Get Members * * @since 1.0 Trello Integration * * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function create_card($args = array()) { } /** * Add Attachment * * @since 1.15.? Trello Integration * * @param string $card_id Card Id. * @param array $upload Attachment. * * @return array|mixed|object */ public function add_attachment($card_id, $upload) { } /** * Delete Card (not reversible) * * @since 1.0 Trello Integration * * @param string $card_id Card Id. * @param array $args Arguments. * * @return array|mixed|object */ public function delete_card($card_id, $args = array()) { } /** * Close card shortcut * * @since 1.0 Trello Integration * * @param string $card_id Card Id. * @param array $args Arguments. * * @return array|mixed|object */ public function close_card($card_id, $args = array()) { } /** * Update Card * * @since 1.0 Trello Integration * * @param string $card_id Card Id. * @param array $args Arguments. * * @return array|mixed|object */ public function update_card($card_id, $args = array()) { } /** * Get Labels * * @since 1.0 Trello Integration * * @param string $board_id Board Id. * @param array $args Arguments. * * @return array|mixed|object */ public function get_board_labels($board_id, $args = array()) { } /** * Get last data sent * * @since 1.0 Trello Integration * * @return array */ public function get_last_data_sent() { } /** * Get last data received * * @since 1.0 Trello Integration * * @return array */ public function get_last_data_received() { } /** * Get last data received * * @since 1.0 Trello Integration * * @return string */ public function get_last_url_request() { } /** * Get card ID * * @since 1.0 Trello Integration * * @return array */ public function get_card_id() { } } /** * Forminator Webhook form hooks * * @package Forminator */ /** * Class Forminator_Webhook_Form_Hooks */ class Forminator_Webhook_Form_Hooks extends \Forminator_Integration_Form_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on sending data towebhook * * @since 1.7 Add $form_entry_fields arg * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $form_entry_fields Form entry fields. * * @return array `is_sent` true means its success send data towebhook, false otherwise * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function get_status_on_send_data($connection_id, $submitted_data, $connection_settings, $form_entry_fields) { } } /** * Trait for common methods for Webhook settings classes * * @since 1.30 * @package Webhook Integration */ /** * Trait Forminator_Webhook_Settings_Trait */ trait Forminator_Webhook_Settings_Trait { /** * Webhook Settings wizard on Module * * @return array */ public function module_settings_wizards() { } /** * Sending test sample to webhook URL * Data sent will be used on webhook to map fields on their zap action * * @param array $submitted_data Submitted data. * @param Forminator_Integration_Settings_Exception $current_input_exception Integration settings exception. * * @throws Forminator_Integration_Settings_Exception Throws Integration Settings Exception. */ private function validate_and_send_sample($submitted_data, \Forminator_Integration_Settings_Exception $current_input_exception) { } /** * Setup webhook url * * @param array $submitted_data Submitted data. * @return array * @throws Forminator_Integration_Settings_Exception Throws Integration Settings Exception. */ public function setup_webhook_url($submitted_data) { } /** * Check if setup webhook url is completed * * @param array $submitted_data Submitted data. * @return bool */ public function setup_webhook_url_is_completed($submitted_data) { } /** * Prepare fake data to send to webhook during initialization the integration. * * @return array */ public function prepare_form_fields_data() { } } /** * Forminator Webhook form settings * * @package Forminator */ /** * Class Forminator_Webhook_Form_Settings * Handle how form settings displayed and saved */ class Forminator_Webhook_Form_Settings extends \Forminator_Integration_Form_Settings { use \Forminator_Webhook_Settings_Trait; /** * Setup webhook url * * @param array $submitted_data Submitted data. * * @return array */ public function setup_webhook_url($submitted_data) { } /** * Build seample data form current fields * * @return array */ private function build_form_sample_data() { } } /** * Forminator Webhook Poll Hooks * * @package Forminator */ /** * Class Forminator_Webhook_Poll_Hooks * * @since 1.6.1 */ class Forminator_Webhook_Poll_Hooks extends \Forminator_Integration_Poll_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on sending data towebhook * * @since 1.6.1 * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $current_entry_fields Form entry fields. * * @return array `is_sent` true means its success send data towebhook, false otherwise * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function get_status_on_send_data($connection_id, $submitted_data, $connection_settings, $current_entry_fields) { } } /** * Forminator Webhook Poll Settings * * @package Forminator */ /** * Class Forminator_Webhook_Poll_Settings * Handle how poll settings displayed and saved * * @since 1.6.1 */ class Forminator_Webhook_Poll_Settings extends \Forminator_Integration_Poll_Settings { use \Forminator_Webhook_Settings_Trait; /** * Build sample data form current fields * * @since 1.6.1 * * @return array */ private function build_form_sample_data() { } } /** * Forminator Webhook Quiz Hooks * * @package Forminator */ /** * Class Forminator_Webhook_Quiz_Hooks * * @since 1.6.2 */ class Forminator_Webhook_Quiz_Hooks extends \Forminator_Integration_Quiz_Hooks { /** * Return custom entry fields * * @param array $submitted_data Submitted data. * @param array $current_entry_fields Current entry fields. * @return array */ protected function custom_entry_fields($submitted_data, $current_entry_fields): array { } /** * Get status on sending data towebhook * * @since 1.6.2 * * @param string $connection_id Connection Id. * @param array $submitted_data Submitted data. * @param array $connection_settings Connection settings. * @param array $current_entry_fields Form entry fields. * * @return array `is_sent` true means its success send data towebhook, false otherwise * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function get_status_on_send_data($connection_id, $submitted_data, $connection_settings, $current_entry_fields) { } /** * Build sample data form current fields * * @since 1.6.2 * * @param array $quiz_entry_fields Quiz entry fields. * @param array $submitted_data Submitted data. * * @return array */ private function build_post_data($quiz_entry_fields, $submitted_data) { } } /** * Forminator Webhook Quiz Settings * * @package Forminator */ /** * Class Forminator_Webhook_Quiz_Settings * Handle how quiz settings displayed and saved * * @since 1.6.2 */ class Forminator_Webhook_Quiz_Settings extends \Forminator_Integration_Quiz_Settings { use \Forminator_Webhook_Settings_Trait; /** * Has lead * * @return bool */ public function has_lead() { } /** * Build sample data form current fields * * @since 1.6.2 * * @return array */ private function build_form_sample_data() { } } /** * Class Forminator_Webhook * Webhook Integration Main Class */ final class Forminator_Webhook extends \Forminator_Integration { /** * Forminator_Webhook Instance * * @var self|null */ protected static $instance = \null; /** * Slug * * @var string */ protected $_slug = 'webhook'; /** * Webhook version * * @var string */ protected $_version = \FORMINATOR_ADDON_WEBHOOK_VERSION; /** * Forminator minimum version * * @var string */ protected $_min_forminator_version = '1.1'; /** * Short title * * @var string */ protected $_short_title = 'Webhook'; /** * Title * * @var string */ protected $_title = 'Webhook'; /** * Documentation URL * * @var string */ protected $_documentation = 'https://wpmudev.com/docs/wpmu-dev-plugins/forminator/#webhook'; /** * Position * * @var int */ protected $_position = 0; /** * Forminator_Webhook constructor. */ public function __construct() { } /** * Setting apier Integration * * @return array */ public function settings_wizards() { } /** * Activate Webhook * * @param array $submitted_data Submitted data. * @param int $form_id Form Id. * * @return array * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function setup_connect($submitted_data, $form_id = 0) { } /** * Authorized Callback * * @return bool */ public function is_authorized() { } /** * Get Webhook API * * @param string $endpoint Endpoint. * * @return Forminator_Webhook_Wp_Api|null */ public function get_api($endpoint) { } /** * Allow multiple connection on one form * * @return bool */ public function is_allow_multi_on_form() { } /** * Allow multiple connection on one poll * * @since 1.6.1 * @return bool */ public function is_allow_multi_on_poll() { } /** * Allow multiple connection on one quiz * * @since 1.6.2 * @return bool */ public function is_allow_multi_on_quiz() { } /** * Check if more webhook connections can be added on a module. * * @since 1.54.0 * * @param string $module_type Module type (form, poll, quiz). * @return bool */ public function can_add_more_on_module($module_type) { } } /** * Forminator Addon Webhook API * * @package Forminator */ /** * Class Forminator_Webhook_Wp_Api */ class Forminator_Webhook_Wp_Api { /** * Instances ofwebhook api * key is md5(_endpoint) * * @var array */ private static $_instances = array(); /** * Webhook endpoint of static webhook * * @var string */ private $_endpoint = ''; /** * Last data sent towebhook * * @var array */ private $_last_data_sent = array(); /** * Last data received fromwebhook * * @var array */ private $_last_data_received = array(); /** * Last URL requested * * @var string */ private $_last_url_request = ''; /** * Forminator_Webhook_Wp_Api constructor. * * @param string $_endpoint Endpoint. * * @throws Forminator_Integration_Exception Throws Integration Exception. */ public function __construct($_endpoint) { } /** * Get singleton * * @param string $_endpoint Endpoint. * * @return Forminator_Webhook_Wp_Api|null */ public static function get_instance($_endpoint) { } /** * Add custom user agent on request * * @param string $user_agent User Agent. * * @return string */ public function filter_user_agent($user_agent) { } /** * HTTP Request * * @param string $verb HTTP Request type. * @param string $path Request path. * @param array $args Arguments. * * @return array|mixed|object * @throws Forminator_Integration_Exception Throws Integration Exception. */ private function request($verb, $path, $args = array()) { } /** * Send data to static webhookwebhook URL * * @param array $args Arguments. * add `is_test` => true to add `X-Hook-Test: true`. * * @return array|mixed|object */ public function post_($args) { } /** * Get last data sent * * @return array */ public function get_last_data_sent() { } /** * Get last data received * * @return array */ public function get_last_data_received() { } /** * Get last data received * * @return string */ public function get_last_url_request() { } } /** * Class Forminator_Admin_Module * * @since 1.7 */ abstract class Forminator_Import_Mediator { /** * Stored form data. * * @since 1.7 * @access public * @var array */ public $data = array(); /** * Insert form data * Override by child classes * * @param int $id Id. * * @since 1.7 * @return array Parsed form data */ public function import_form($id) { } /** * Replaces invalid tags with forminator tags * * @param string $mayhavetags Tag to replace. * @param array $tags Tags. * * @since 1.7 * @return string returns string with valid field tag format */ public function replace_invalid_tags($mayhavetags, $tags = array()) { } /** * Replace default tag * * @param string $tags Tag. * * @return string */ public function replace_default_tags($tags) { } /** * Default form fields * * @since 1.7 * * @return array */ public static function default_fields() { } /** * Return random number * * @since 1.7 * @return int random number */ public function random_wrapper_int() { } /** * Replaces cf7 tags with forminator tags * * @param string $type Field type. * * @since 1.7 * @return string returns string with valid field tag format */ public function get_thirdparty_field_type($type) { } /** * Tries the form import * * @param mixed $import_data Import data. * * @return array * @throws Exception Throws Exception. */ public function try_form_import($import_data) { } /** * Parses form data structure * * @param array $data Form data. * * @since 1.7 * @return array Parsed form data */ public function parse_import_data($data) { } } /** * Class Forminator_Admin_Page * * @since 1.0 */ abstract class Forminator_Admin_Page { /** * Current page ID * * @var number */ public $page_id = \null; /** * Current page slug * * @var string */ protected $page_slug = ''; /** * Path to view folder * * @var string */ protected $folder = ''; /** * Forminator_Admin_Page Constructor * * @since 1.0 * * @param string $page_slug Page slug. * @param string $folder Folder. * @param string $page_title Page title. * @param string $menu_title Menu title. * @param bool $parent_page Parent or not. * @param bool $render Render the page. */ public function __construct($page_slug, $folder, $page_title, $menu_title, $parent_page = \false, $render = \true) { } /** * Use that method instead of __construct * * @todo : deperecate this, since its not correct way to execute action on page, * instead this function will executed everywhere on all pages, * unless you are really wanna do that?! * * @since 1.0 */ public function init() { } /** * Hooks before content render * * @since 1.0 */ public function render_page_hooks() { } /** * Suppress WP admin notices. * * @return void */ public function suppress_wp_admin_notices() { } /** * Check if current page is edit page * * @return bool */ public function is_edit_page() { } /** * Add logo info in Forminator data. * * @param array $data Data. * * @return array */ public function add_forminator_data($data) { } /** * Return page slug * * @since 1.0 * @return string */ public function get_the_slug() { } /** * Called when page is loaded and content not rendered yet * * @since 1.0 */ public function before_render() { } /** * Trigger an action before this screen is rendered * * @since 1.0 */ public function trigger_before_render_action() { } /** * Add page screen hooks * * @since 1.0 */ public function add_page_hooks() { } /** * Remove Get parameters for Forminator notices * * @param string[] $vars An array of query variables to remove from a URL. * @return array */ public function remove_notice_params($vars) { } /** * Add page screen hooks * * @since 1.0 * * @param string $hook Hook name. */ public function enqueue_scripts($hook) { } /** * Init Admin scripts * * @since 1.0 * * @param string $hook Hook name. */ public function init_scripts($hook) { } /** * Render page header * * @since 1.0 */ protected function render_header() { } /** * Render page footer * * @since 1.0 */ protected function render_footer() { } /** * Render page container * * @since 1.0 */ public function render() { } /** * Show modal when hub connected successfully */ public static function hub_connected_successfully_modal() { } /** * Render actual page template * * @since 1.0 */ protected function render_page_content() { } /** * Load an admin template * * @since 1.0 * * @param string $path Template path. * @param array $args Arguments. * @param bool $echo_content Echo. * * @return string */ public function template($path, $args = array(), $echo_content = \true) { } /** * Check if template exist * * @since 1.0 * * @param string $path Template path. * * @return bool */ protected function template_exists($path) { } /** * Generates the admin body class required for WPMU DEV Shared UI * * @since 1.0.2 * @return string $sui_body_class */ public function get_sui_body_class() { } /** * Add admin body classes * * @since 1.0.2 * * @param string $classes Classes. * * @return string $classes */ public function admin_body_classes($classes) { } /** * Get admin page param * * @since 1.5.4 * @return string */ protected function get_admin_page() { } /** * Redirect to referer if available * * @since 1.6 * * @param string $fallback_redirect url if referer not found. * @param bool $to_referer Referer. */ protected function maybe_redirect_to_referer($fallback_redirect = '', $to_referer = \true) { } /** * Get css class used for box summary on admin page * * @since 1.6 * @return string */ public function get_box_summary_classes() { } /** * Get image url for summary box * * @since 1.6 * @return string */ public function get_box_summary_image_url() { } /** * Get inline style for box summary-image div * * @since 1.6 * @return string */ public function get_box_summary_image_style() { } /** * Show migration notice for stripe * * @return void */ public function show_stripe_migration_notice() { } /** * Show warning if frontend is loaded in https but the WordPress address url setting uses http only * * @since 1.15.1 */ public function show_css_warning() { } /** * Forminator icon svg image. * * @return string */ private function get_menu_icon() { } /** * Forminator modules */ public function populate_modules() { } /** * Modules form type * * @return array */ public function modules_form_type() { } /** * Get Form Model if current requested form_id available and matched form_type * * @return bool|Forminator_Base_Form_Model|null */ public function get_form_model() { } } /** * Class Forminator_Admin_Module_Edit_Page * * @since 1.14.10 */ abstract class Forminator_Admin_Module_Edit_Page extends \Forminator_Admin_Page { /** * Page number * * @var int */ protected static $page_number = 1; /** * Initialize * * @since 1.0 */ public function init() { } /** * Trigger before render */ public function before_render() { } /** * Count modules * * @param string $status Modules status. * @since 1.0 * @return int */ public function countModules($status = '') { } /** * Get modules * * @since 1.0 * @return array */ public function getModules() { } /** * Get modules for search * * @param null|string $search_keyword Search Keyword. * @param null|int $page_number Optional page number. Added in 1.52. * * @since 1.14.12 * @return array */ public static function get_searched_modules($search_keyword = \null, $page_number = 1) { } /** * Get slug for ajax search * * @param string|bool $slug Module slug. * * @since 1.14.12 * @return array */ public static function get_slug_ajax($slug = \false) { } /** * Has error on payment field * * @param mixed $module Module. * @param bool $is_stripe_connected Is stripe connected. * @return bool */ public static function has_payment_field_error($module, $is_stripe_connected) { } /** * Check if has error on registration form * * @param mixed $module Module. * @return bool */ public static function has_error_on_registration_form($module) { } /** * Check if module is editable by the current user. * * @since 1.52.0 * * @param array $module Module data array (may contain 'model' object or flat 'settings' array). * @return bool */ public static function is_module_editable($module) { } /** * Show the modules * * @param array $modules Modules. * @param string $module_slug Module slug. * @param string $preview_dialog Preview dialog. * @param string $preview_title Preview title. * @param string $export_dialog Export dialog. * @param string $post_type Post type. * @param string $soon Soon. * @param string $sql_month_start_date Start date. * @param string $wizard_page Wizard page. * @param string $search_keyword Search Keyword. * * @since 1.14.12 * @return mixed */ public static function show_modules($modules, $module_slug, $preview_dialog, $preview_title, $export_dialog, $post_type, $soon, $sql_month_start_date, $wizard_page, $search_keyword = \null) { } /** * Calculate rate * * @since 1.0 * * @param array $module Module. * * @return float|int */ public static function getRate($module) { } /** * Pagination * * @param bool $is_search Is search. * @param int $count Count. * * @since 1.0 */ public function pagination($is_search, $count) { } /** * Get models * * @since 1.0 * @since 1.6 add $limit * @param int $limit Limit. * @param null|string $search_keyword Optional Search Keyword.Added in 1.52. * * @return array */ public static function get_models($limit = \null, $search_keyword = \null) { } /** * Get slug when in search * * @since 1.14.12 * * @return string */ public static function get_slug_for_search() { } /** * Clone Module * * @since 1.6 * * @param int $id Module Id. */ public function clone_module($id) { } /** * Delete module * * @since 1.6 * * @param int $id Module Id. */ public static function delete_module($id) { } /** * Delete module CSS file * * @param int $id Module ID. */ private static function delete_css($id) { } /** * Delete module entries * * @since 1.6 * * @param int $id Module Id. */ public function delete_module_entries($id) { } /** * Export module * * @since 1.6 * * @param int $id Module Id. */ public function export_module($id) { } /** * Override scripts to be loaded * * @since 1.11 * * @param string $hook Hook name. */ public function enqueue_scripts($hook) { } /** * Process request * * @since 1.0 */ public function processRequest() { } /** * Process PDF actions * * @param string $action PDF action. * * @since 1.25 */ public function process_pdf_actions($action) { } /** * Update Module Status * * @since 1.6 * * @param int $id Module Id. * @param string $status Module status. */ public function update_module_status($id, $status) { } /** * Reset views data * * @since 1.6 * * @param int $id Module ID. */ public static function reset_module_views($id) { } } /** * Class Forminator_Admin_Module * * @since 1.0 */ abstract class Forminator_Admin_Module { /** * Pages * * @var array */ public $pages = array(); /** * Page * * @var string */ public $page = ''; /** * Edit page * * @var string */ public $page_edit = ''; /** * Page entries * * @var string */ public $page_entries = ''; /** * Directory * * @var string */ public $dir = ''; /** * Forminator_Admin_Module constructor. * * @since 1.0 */ public function __construct() { } /** * Init * * @since 1.0 */ public function init() { } /** * Attach admin pages * * @since 1.0 */ public function add_menu_pages() { } /** * Create module * * @since 1.0 */ public function create_module() { } /** * Hide pages from menu * * @since 1.0 */ public function hide_menu_pages() { } /** * Used to include files * * @since 1.0 */ public function includes() { } /** * Inject module options to JS * * @since 1.0 * @param mixed $data Data. * @return mixed */ public function add_js_defaults($data) { } /** * Inject l10n strings to JS * * @param mixed $strings Strings. * @since 1.0 * @return mixed */ public function add_l10n_strings($strings) { } /** * Is the admin page being viewed in edit mode * * @since 1.0 * @return mixed */ public static function is_edit() { } /** * Is the module admin dashboard page * * @since 1.0 * @return bool */ public function is_admin_home() { } /** * Is the module admin new/edit page * * @since 1.0 * @return bool */ public function is_admin_wizard() { } /** * Highlight parent page in sidebar * * @deprecated 1.1 No longer used because this function override prohibited WordPress global of $plugin_page * @since 1.0 * * @param mixed $file File. * * @return mixed */ public function highlight_admin_parent($file) { } /** * Prepare settings * * @param array $original_settings Sent settings. * @return array */ protected static function validate_settings($original_settings) { } /** * Highlight submenu on admin page * * @since 1.1 * * @param string $submenu_file Submenu file. * @param string $parent_file Parent file. * * @return string */ public function admin_submenu_file($submenu_file, $parent_file) { } /** * Import Form * * @param string $json JSON data to import. * @param string $name Module name. * @param string $slug Module type. * @param bool $change_recipients Change recipients. * @param bool $draft Draft status. * @param array $extra_args extra arguments. * * @throws Exception When import failed. */ public static function import_json(string $json, string $name, string $slug, bool $change_recipients, bool $draft = \false, array $extra_args = array()) { } /** * Change the recipients * * @since 1.18.0 * * @param mixed $data imported module data. * * @return array $data */ private static function change_recipients($data) { } /** * Apply user emails * * @since 1.18.0 * * @param string $data Email recipients. * @param string $current_user_email User email. * * @return array */ private static function apply_user_email($data, $current_user_email) { } } /** * Class Forminator_View_Page * * @since 1.0 */ abstract class Forminator_Admin_View_Page extends \Forminator_Admin_Page { /** * Current model * * @var object|bool */ protected $model = \false; /** * Current form id * * @var int */ protected $form_id = 0; /** * Fields * * @var array */ protected $fields = array(); /** * Visible Fields * * @var array */ protected $visible_fields = array(); /** * Number of checked fields * * @var int */ protected $checked_fields = 0; /** * Number of total fields * * @var int */ protected $total_fields = 0; /** * Error message if avail * * @var string */ protected $error_message = ''; /** * Total Entries * * @var int */ protected $total_entries = 0; /** * Per page * * @var int */ protected $per_page = 10; /** * Page number * * @var int */ protected $page_number = 1; /** * Page num * * @var int */ protected $pagenum = 1; /** * Filters to be used * * [key=>value] * ['search'=>'search term'] * * @since 1.5.4 * @var array */ public $filters = array(); /** * Order to be used * * [key=>order] * ['entry_date' => 'ASC'] * * @since 1.5.4 * @var array */ public $order = array(); /** * Entries * * @var array */ protected $entries = array(); /** * Total filtered Entries * * @since 1.5.4 * @var int */ protected $filtered_total_entries = 0; /** * Flag fields is currently filtered * * @since 1.5.4 * @var bool */ public $fields_is_filtered = \false; /** * Connected addons * * @var Forminator_Integration[] */ protected static $connected_addons = \null; /** * Registered addons * * @var Forminator_Integration[] */ protected static $registered_addons = \null; /** * Construct entries * * @noinspection PhpMissingParentConstructorInspection * * Construct Entries Renderer * * @since 1.0.5 * * @param string $folder Folder. */ protected function entries_construct($folder) { } /** * Get fields * * @since 1.0 * @return array */ public function get_fields() { } /** * Visible fields * * @since 1.0 * @return array */ public function get_visible_fields() { } /** * Checked field option * * @since 1.0 * * @param string $slug - the field slug. * * @return string */ public function checked_field($slug) { } /** * Get model name * * @since 1.0 * @return string */ public function get_model_name() { } /** * Fields header * * @since 1.0 */ public function fields_header() { } /** * The total entries * * @since 1.0 * @return int */ public function total_entries() { } /** * The total filtered entries * * @since 1.5.4 * @return int */ public function filtered_total_entries() { } /** * Get Entries * * @since 1.0 * @return array */ public function get_entries() { } /** * Get Page Number * * @since 1.0 * @return int */ public function get_page_number() { } /** * Get Per Page * * @since 1.0 * @return int */ public function get_per_page() { } /** * Pagination * * @since 1.0 */ public function paginate() { } /** * Bulk actions * * @since 1.0 * * @param string $position Position. * @param bool $is_registration For registration?. */ public function bulk_actions($position = 'top', $is_registration = \false) { } /** * Prepare results * * @since 1.0 */ public function prepare_results() { } /** * Called when page is loaded and content not rendered yet * * @since 1.0 */ public function before_render() { } /** * Parsing filters * * @since 1.5.4 */ protected function parse_filters() { } /** * Parsing order * * @since 1.5.4 */ protected function parse_order() { } /** * Executor of adding additional items on entry page * * @see self::on_render_entry() * @since 1.1 * * @param Forminator_Form_Entry_Model $entry_model Form entry model. * * @return array */ protected function attach_addon_on_render_entry(\Forminator_Form_Entry_Model $entry_model) { } /** * Flag whether box filter opened or nope * * @since 1.5.4 * @return bool */ protected function is_filter_box_enabled() { } /** * Get current error message * * @return string * * @since 1.5.2 */ public function error_message() { } /** * Get Globally registered Addons, avoid overhead for checking registered addons many times * * @return array|Forminator_Integration[] */ public function get_registered_addons() { } /** * Process request * * @since 1.0 */ public function process_request() { } /** * Action delete * * @param int $id ID. */ public function delete_action($id) { } /** * This view is unused from 1.5.4 on, using "forminator-entries" instead. */ protected function maybe_redirect() { } } /** * Class Forminator_Admin_Addons_Page * * @since 1.15 */ class Forminator_Admin_Addons_Page { /** * Plugin instance * * @since 1.11 * @access private * @var null */ private static $instance = \null; /** * Geolocation Project ID */ const GEOLOCATION_PID = 4276231; /** * Extension Pack Add-on Project ID */ const EXTENSION_PACK_PID = 4262971; // TODO: This should be replaced with actual PID when available. /** * Return the plugin instance * * @return Forminator_Admin_Addons_Page|null */ public static function get_instance() { } /** * Addons action ajax * * @param string $action Ajax action. */ public function addons_action_ajax($action) { } /** * Activate addon * * @param string $pid The Project ID. * @param bool $is_network Whether the addon is network activated. */ private function activate_addon($pid, $is_network) { } /** * Render addons content * * @param string $name Name. * @param string $pid The Project ID. * @param array $addons Addons. */ public function addons_render($name, $pid, $addons = array()) { } /** * Get addon * * @param string $pid The Project ID. * * @return array|false|object */ public function get_addons($pid) { } /** * Get addon value * * @param string $pid The Project ID. * @param string $key Key. * * @return string */ public function get_addon_value($pid, $key) { } /** * Get addon slug based on PID. * * @param string $pid The Project ID. * * @return string */ public static function get_addon_slug($pid) { } /** * Get addons html * * @param string $pid The Project ID. * * @return string */ public function addons_html($pid) { } /** * Get addon details cta * * @param string $pid The Project ID. * * @return string */ public function addon_details_cta($pid) { } /** * Renders a view file with static call. * * @since 1.0 * @since 4.2.0 Moved from Opt_In to this class. * * @param string $file Path to the view file. * @param array $params Array whose keys will be variable names when within the view file. * @param bool|false $return_value Whether to echo or return the contents. * @return string */ public function render_template($file, $params = array(), $return_value = \false) { } /** * Get addon by id * * @param string $pid The Project ID. * * @return false|object|stdClass */ public static function forminator_addon_by_pid($pid) { } /** * Replace the addon name, info, features from static addon. * To display the translated content. * * @since 1.31 * * @param mixed $project The addon object. * @return mixed */ private static function override_content_from_static_addons($project) { } /** * Get project details from WPMUDEV dashboard. * * @since 1.31 * * @param int $pid The Project ID. * @param bool $fetch_full Optional. If true, then even potentially * time-consuming preparation is done. * e.g. load changelog via API. * * @return object Details about the project. */ public static function get_project_info_from_wpmudev_dashboard($pid, $fetch_full = \false) { } /** * Get static addons * * @return stdClass[] */ public static function forminator_get_static_addons() { } } /** * Class Forminator_Admin_AJAX * * @since 1.0 */ class Forminator_Admin_AJAX { /** * Forminator_Admin_AJAX constructor. * * @since 1.0 */ public function __construct() { } /** * Save quizzes * * @since 1.0 * @since 1.1 change superglobal POST to `get_post_data` */ public function save_quiz() { } /** * Save poll * * @since 1.0 * @since 1.1 change superglobal POST to `get_post_data` */ public function save_poll_form() { } /** * Revert builder settings */ public static function revert_builder() { } /** * Save custom form fields * * @since 1.2 */ public function save_builder() { } /** * Save PDF * * @since 2.0 * @throws Exception When failed to create PDF. */ public function save_pdf() { } /** * Deleta a PDF * * @since 2.0 * @throws Exception When failed to delete PDF. */ public function delete_pdf() { } /** * Fetch PDF files * * @since 2.0 * @throws Exception When failed to fetch PDF. */ public function fetch_pdfs() { } /** * Save custom form settings * * @since 1.2 */ public function save_builder_settings() { } /** * Apply Appearance Preset ajax. */ public function apply_appearance_preset() { } /** * Merge Appearance settings * * @param array $settings Current Settings. * @param array $new_settings New Appearance settings. * * @return array */ private function merge_appearance_settings($settings, $new_settings) { } /** * Create Appearance Preset ajax. */ public function create_appearance_preset() { } /** * Delete Appearance Preset ajax. */ public function delete_appearance_preset() { } /** * Save Appearance Preset ajax. */ public function save_appearance_preset() { } /** * Save Appearance Preset * * @param string $id ID. * @param array $settings Settings. */ private static function save_preset($id, $settings) { } /** * Dismiss welcome message * * @since 1.0 */ public function dismiss_welcome() { } /** * Set encryption key */ public function set_encryption_key() { } /** * Get full path to wp-config.php file. * * @return string */ public static function get_wp_config_file_path(): string { } /** * Prepare new wp-config.php content * * @return string * @throws Exception Throws exception if failed to prepare new wp-config.php content. */ public static function prepare_new_wp_config() { } /** * Check if we can write to wp-config.php file * * @return bool */ public static function can_write_to_wp_config(): bool { } /** * Load google fonts * * @since 1.0.5 */ public function load_google_fonts() { } /** * Load reCaptcha settings * * @since 1.0 */ public function load_captcha() { } /** * Save reCaptcha popup data * * @since 1.0 */ public function save_captcha() { } /** * Load currency modal * * @since 1.0 */ public function load_currency() { } /** * Save reCaptcha popup data * * @since 1.0 */ public function save_currency() { } /** * Load entries pagination modal * * @since 1.0.2 */ public function load_pagination_entries() { } /** * Load reCaptcha preview * * @since 1.5.4 */ public function load_recaptcha_preview() { } /** * Load hCaptcha preview * * @since 1.15.? */ public function load_hcaptcha_preview() { } /** * Load Cloudflare Turnstile preview */ public function load_turnstile_preview() { } /** * Load listings pagination modal * * @since 1.0.2 */ public function load_pagination_listings() { } /** * Save listings pagination popup data * * @since 1.0.2 */ public function save_pagination_listings() { } /** * Load the email settings form * * @since 1.1 */ public function load_email_form() { } /** * Load the uninstall form * * @since 1.0.2 */ public function load_uninstall_form() { } /** * Save listings pagination popup data * * @since 1.0.2 */ public function save_uninstall_form() { } /** * Preview module * * @since 1.0 */ public function preview_module() { } /** * Load list of exports * * @since 1.0 */ public function load_exports() { } /** * Clear list of exports * * @since 1.0 */ public function clear_exports() { } /** * Search Emails * * @since 1.0.3 * @since 1.1 change superglobal POST to `get_post_data` */ public function search_emails() { } /** * Get superglobal POST data * * @param string $nonce_action action to validate. * @param array $sanitize_callbacks { * custom sanitize options, its assoc array * 'field_name_1' => 'function_to_call_1' function will called with `call_user_func_array`, * 'field_name_2' => 'function_to_call_2', * }. * @param string $permission_slug The slug that will be used to get the capability for checking. * * @return array * @since 1.1 */ protected function get_post_data($nonce_action = '', $sanitize_callbacks = array(), $permission_slug = '') { } /** * Load Privacy Settings * * @since 1.0.6 */ public function load_privacy_settings() { } /** * Save Privacy Settings * * @since 1.0.6 */ public function save_privacy_settings() { } /** * AJAX Reset tracking data */ public function reset_tracking_data() { } /** * Execute Import Form * * @since 1.5 */ public function save_import() { } /** * Create module from template * * @throws Exception When failed to create form template. */ public function create_module_from_template() { } /** * Import Form * * @param string $json JSON data to import. * @param string $slug Module type. * @param bool $change_recipients Change recipients. * @param bool $draft Draft status. * * @throws Exception When import failed. */ public function import_json(string $json, string $slug, bool $change_recipients, bool $draft = \false) { } /** * Get instance of thirdparty importer class * * @param string $type Import from. * * @since 1.5 */ public function importers($type) { } /** * Load Import Custom Form Popup * * @since 1.5 */ public function load_import_form_cf7() { } /** * Execute Contact Form 7 Import Form * * @since 1.5 */ public function save_import_form_cf7() { } /** * Load Import Custom Form Popup * * @since 1.5 */ public function load_import_form_ninja() { } /** * Execute Ninjaforms Import Form Save * * @since 1.5 */ public function save_import_form_ninja() { } /** * Load Import Custom Form Popup * * @since 1.5 */ public function load_import_form_gravity() { } /** * Execute Ninjaforms Import Form Save * * @since 1.5 */ public function save_import_form_gravity() { } /** * Load Export Module Popup * * @since 1.5 */ public function load_export() { } /** * Load Import Popup * * @since 1.5 */ public function load_import() { } /** * Save pagination data * * @since 1.6 */ public function save_pagination() { } /** * Save accessibility_settings * * @since 1.6.1 */ public function save_accessibility_settings() { } /** * Save dashboard * * @since 1.6.3 */ public function save_dashboard_settings() { } /** * Disconnect stripe * * @since 1.7 */ public function stripe_disconnect() { } /** * Disconnect PayPal * * @since 1.7 */ public function paypal_disconnect() { } /** * Handle stripe settings * * @since 1.7 */ public function stripe_update_page() { } /** * Handle PayPal settings * * @since 1.7 */ public function paypal_update_page() { } /** * Handle stripe settings * * @since 1.7 * @throws Forminator_Gateway_Exception When connection fails. */ public function stripe_settings_modal() { } /** * Handle PayPal settings * * @since 1.7.1 * @throws Forminator_Gateway_Exception When failed to connect. */ public function paypal_settings_modal() { } /** * Dismiss notice. Use dismiss_admin_notice method instead * * @since 1.9 */ public function dismiss_notice() { } /** * Toggle usage tracking * * @return void */ public function toggle_usage_tracking() { } /** * Dismiss admin notice. */ public function dismiss_admin_notice() { } /** * Dismiss notice * * @since 1.9 */ public function later_notice() { } /** * Promote free plan - Remind me later */ public function promote_remind_later() { } /** * Save general payments settings * * @since 1.7 */ public function save_payments() { } /** * Delete all poll submission * * @since 1.7.2 */ public function delete_poll_submissions() { } /** * Module search for all types * * @since 1.14.12 */ public function module_search() { } /** * Addons page action * * @return void */ public function addons_page_actions() { } /** * Filter report data * * @return void */ public function filter_report_data() { } /** * Search users from the add recipients modal. * * @since 1.20.0 */ public function search_users() { } /** * Get avatar for the recipients modal. * * @since 1.20.0 */ public function get_avatar() { } /** * Fetch reports by id * * @since 1.20.0 */ public function fetch_report() { } /** * Save Report. * * @since 1.20.0 */ public function save_report() { } /** * Update report status */ public function update_report_status() { } /** * Save permission. */ public function save_permissions() { } /** * Share Feedback to mixpanel. */ public function forminator_share_feedback() { } /** * Submit deactivation survey * * @return void */ public function submit_deactivation_survey() { } } /** * Forminator Admin Data * * @package Forminator */ /** * Class Forminator_Admin_Data * * @since 1.0 */ class Forminator_Admin_Data { /** * Forminator Instance * * @var Forminator|null */ public $core = \null; /** * Current Nonce * * @since 1.2 * @var string */ private $_nonce = ''; /** * Forminator_Admin_Data constructor. * * @since 1.0 */ public function __construct() { } /** * Combine Data and pass to JS * * @return array * @since 1.0 */ public function get_options_data() { } /** * Generate nonce * * @since 1.2 */ public function generate_nonce() { } /** * Get current generated nonce * * @return string * @since 1.2 */ public function get_nonce() { } /** * Return published pages * * @return array */ public static function get_pages() { } /** * Default Admin properties * * @return array * @since 1.0 */ public function admin_js_defaults() { } /** * Get form by field * * @param string $type Field type. * * @return array */ public function get_forms_by_field_type($type) { } /** * Print forms select * * @param string $method Method time. * * @return array * @since 1.0 */ public function get_modules($method) { } /** * Check MPDF extensions. * * @since 1.25 * * @return bool */ public function pdf_extensions_enabled() { } /** * Check if PDF addon is compatible. * * @since 1.51 * * @return bool */ public function is_pdf_addon_compatible() { } } /** * Class Forminator_Admin_L10n * * @since 1.0 */ class Forminator_Admin_L10n { /** * Forminator * * @var null|Forminator */ public $forminator = \null; /** * Forminator_Admin_L10n constructor */ public function __construct() { } /** * Get l10n strings * * @return array */ public function get_l10n_strings() { } /** * Default Admin properties * * @return array */ public function admin_l10n() { } /** * Maybe add notices to properties * * @param array $properties Properties. * * @return array */ private static function add_notice($properties) { } /** * All possible notices that can be shown after refreshing page * * @return array */ private static function get_notices_list() { } /** * Get short days names html escaped and translated * * @return array * @since 1.5.4 */ public static function get_short_days_names() { } /** * Get months names html escaped and translated * * @return array * @since 1.5.4 */ public static function get_months_names() { } /** * Return times frame for select box * * @return mixed * @since 1.20.0 */ private static function get_times() { } /** * Return time zone string. * * @return string * @since 3.1.1 */ private static function get_timezone_string() { } /** * Return months frame for select box * * @return mixed * @since 1.20.0 */ private static function get_months() { } } /** * Class Forminator_Admin * * @since 1.0 */ class Forminator_Admin { /** * Pages * * @var array */ public $pages = array(); /** * Forminator_Admin constructor. */ public function __construct() { } /** * Init deactivation scripts * * @return void */ public function deactivation_scripts() { } /** * Load Deactivation Survey Modal * * @return void */ public function load_deactivation_survey_modal() { } /** * Include required files * * @since 1.0 */ private function includes() { } /** * Initialize Dashboard page * * @since 1.0 */ public function add_dashboard_page() { } /** * Add Integrations page * * @since 1.1 */ public function add_integrations_page() { } /** * Initialize Integrations page * * @since 1.1 */ public function init_integrations_page() { } /** * Add Settings page * * @since 1.0 */ public function add_settings_page() { } /** * Initialize Settings page * * @since 1.0 */ public function init_settings_page() { } /** * Add Templates page * * @since 1.0 */ public function add_templates_page() { } /** * Initialize templates page * * @since 1.0 */ public function init_templates_page() { } /** * Add Entries page * * @since 1.0.5 */ public function add_entries_page() { } /** * Initialize Entries page * * @since 1.0.5 */ public function init_entries_page() { } /** * Add Forminator Pro page * * @since 1.0 */ public function add_upgrade_page() { } /** * Initialize Settings page * * @since 1.0 */ public function init_upgrade_page() { } /** * Add Add-ons page * * @since 1.15 */ public function add_addons_page() { } /** * Initialize Add-ons page * * @since 1.15 */ public function init_addons_page() { } /** * Add Reports page * * @since 1.18.0 */ public function add_reports_page() { } /** * Initialize Reports page * * @since 1.18.0 */ public function init_reports_page() { } /** * Check if we have any old Stripe form * * @return bool * @since 1.9 */ public function has_old_stripe_forms() { } /** * Displays an admin notice when the user is an active member and doesn't have Forminator Pro installed * Shown in forminator pages. Per user notification. */ public function show_pro_available_notice() { } /** * Enqueue scripts for Promote Free Plan notice */ public function promote_free_plan_scripts() { } /** * Displays Promote Free Plan notice */ public function promote_free_plan() { } /** * Displays an admin notice when Forminator version is 1.16.0 or higher and Stripe Addon version is less than 1.0.4 * Shown in forminator pages. Per user notification. */ public function check_stripe_addon_version() { } /** * Check if the given notification was dismissed. * * @param string $notification_name Notification slug. * * @return bool */ public static function was_notification_dismissed($notification_name) { } /** * Return true if Remind me later was clicked * * @return bool */ private static function maybe_remind_later() { } /** * Check if the current user is able to update plugins * * @return bool */ public static function user_can_update_plugins() { } /** * Show CF7 importer notice * * @since 1.11 */ public function show_cf7_importer_notice() { } /** * Show Stripe admin notice * * @since 1.9 */ public function show_stripe_updated_notice() { } /** * Show the Stripe Restricted API Key notice. * * @since 1.33 */ public function show_stripe_restricted_api_key_notice() { } /** * Has active integrations * * @return bool */ private function has_active_integrations() { } /** * Show admin notice for setting forminator encryption key * * @since 1.35.1 */ public function set_encryption_key_notice() { } /** * Show rating admin notice * * @since 1.10 */ public function show_rating_notice() { } /** * Show action links on the plugin screen. * * @param array $links Plugin Action links. * * @return mixed * @since 1.13 */ public function add_plugin_action_links($links) { } /** * Show row meta on the plugin screen. * * @param mixed $links Plugin Row Meta. * @param mixed $file Plugin Base file. * @param array $plugin_data Plugin data. * * @return array * @since 1.13 */ public function plugin_row_meta($links, $file, $plugin_data) { } /** * Show addons update notice */ public function show_addons_update_notice() { } /** * Show hosting promotion banner * * To test: * update_option( 'forminator_free_install_date', strtotime( '-31 days', current_time( 'timestamp' ) ) ); * update_option( 'forminator_hosting_banner_later', strtotime( '-8 days', current_time( 'timestamp' ) ) ); */ public function show_hosting_notice() { } /** * Upon user update, check if updated user is in permissions option. * * @param int|null $user_id User Id. */ public function maybe_update_permissions($user_id = \null) { } /** * Get error notice * * @param string $error Error message. It should be already escaped. * @return string */ public static function get_red_notice(string $error): string { } /** * Get success notice * * @param string $message Success message. It should be already escaped. * @return string */ public static function get_green_notice(string $message): string { } /** * Get SUI notice * * @param string $type Notice type. * @param string $message Message. It should be already escaped. * @return string */ public static function get_notice(string $type, string $message): string { } /** * Clear pages cache * * @param int|null $post_id Post ID. */ public static function clear_pages_cache(?int $post_id = \null) { } } /** * Class Forminator_Admin_Report_page * * @since 1.18.0 */ class Forminator_Admin_Report_Page { /** * Plugin instance * * @since 1.18.0 * @access private * @var null */ private static $instance = \null; /** * Return the plugin instance * * @return Forminator_Admin_Report_page|null */ public static function get_instance() { } /** * Forminator_Admin_Report_Page constructor. * * @since 1.0 */ public function __construct() { } /** * Process request * * @since 1.0 */ public function process_request() { } /** * Get Reports data * * @param int $form_id Form Id. * @param string $form_type Form type. * @param string $start_date Start date. * @param string $end_date End date. * @param string $range_type Range type. * * @return array */ public function forminator_report_data($form_id, $form_type, $start_date = '', $end_date = '', $range_type = '') { } /** * Get monthly average * * @param string $start_date Start date. * * @return mixed|void */ public static function forminator_montly_average($start_date) { } /** * Check payment * * @param int $form_id Form Id. * * @return bool */ public static function has_live_payments($form_id) { } /** * Check payment * * @param int $form_id Form Id. * * @return bool */ public static function has_payments($form_id) { } /** * Get module slug * * @param string $form_type Form type. * * @return string */ public function get_module_slug($form_type) { } /** * Report array * * @param array $reports Reports. * @param int $form_id Form Id. * @param string $form_type Form type. * * @return array[] */ public function forminator_report_array($reports, $form_id, $form_type = '') { } /** * Get payment report data * * @param int $form_id Form Id. * @param string $start_date Start date. * @param string $end_date End date. * @param string $previous_start Previous start date. * @param string $previous_end Previous end date. * * @return array */ public function forminator_payment_report_data($form_id, $start_date, $end_date, $previous_start, $previous_end) { } /** * Chart data * * @param int $form_id Form Id. * @param string $start_date Start date. * @param string $end_date End date. * * @return array */ public function forminator_report_chart_data($form_id, $start_date = '', $end_date = '') { } /** * Previous Time * * @param string $time Time. * @param string $start_date Start date. * @param string $end_date End date. * * @return false|string */ public function forminator_previous_time($time, $start_date, $end_date) { } /** * Difference_calculate * * @param int $selected Selected. * @param int $previous Previous. * * @return float|int */ public function forminator_difference_calculate($selected, $previous) { } /** * Get app link * * @param int $module_id Module Id. * @param string $module_type Module type. * * @return string|void */ public function get_app_link_module_id($module_id, $module_type) { } /** * Fetch Reports * * @return array|object|stdClass[]|null */ public function fetch_reports() { } /** * Get total forms * * @param string $module Module type. * * @return int */ public function get_total_forms($module) { } } /** * Class Forminator_Admin_Import_CF7 * * @since 1.11 */ class Forminator_Admin_Import_CF7 extends \Forminator_Import_Mediator { /** * Plugin instance * * @since 1.11 * @access private * @var null */ private static $instance = \null; /** * Return the plugin instance * * @since 1.11 * @return Forminator */ public static function get_instance() { } /** * Get label text from CF7 form HTML * * @param string $name Name. * @param string $form Form. * * @since 1.11 * @return string field label */ public function get_label_cf7($name, $form) { } /** * Insert form data * * @param int $id Form Id. * @param array $post_data Post Data. * * @return array|object */ public function import_form($id, $post_data = array()) { } /** * Handle select field specific options * * @since 1.11 * * @param array $field Field. * @param array $options Options. * @param array $messages Messages. * * @return mixed */ public function handle_select_field($field, $options, $messages) { } /** * Handle checkbox field specific options * * @since 1.11 * * @param array $field Field. * @param array $options Options. * @param array $messages Messages. * * @return mixed */ public function handle_checkbox_field($field, $options, $messages) { } /** * Handle text field specific options * * @since 1.11 * * @param array $field Field. * @param array $options Options. * @param array $messages Messages. * * @return mixed */ public function handle_text_field($field, $options, $messages) { } /** * Handle number field specific options * * @since 1.11 * * @param array $field Field. * @param array $options Options. * @param array $messages Messages. * * @return mixed */ public function handle_number_field($field, $options, $messages) { } /** * Handle GDPR field specific options * * @since 1.11 * * @param array $field Field. * @param array $options Options. * @param array $messages Messages. * * @return mixed */ public function handle_acceptance_field($field, $options, $messages) { } /** * Handle Date field specific options * * @since 1.11 * * @param array $field Field. * @param array $options Options. * @param array $messages Messages. * * @return mixed */ public function handle_date_field($field, $options, $messages) { } /** * Handle Phone field specific options * * @since 1.11 * * @param array $field Field. * @param array $options Options. * @param array $messages Messages. * * @return mixed */ public function handle_phone_field($field, $options, $messages) { } /** * Handle email field specific options * * @since 1.11 * * @param array $field Field. * @param array $options Options. * @param array $messages Messages. * * @return mixed */ public function handle_email_field($field, $options, $messages) { } /** * Handle Captcha field specific options * * @since 1.11 * * @param array $field Field. * @param array $options Options. * @param array $messages Messages. * @param string $form_html CF7 form markup. * * @return mixed */ public function handle_captcha_field($field, $options, $messages, $form_html = '') { } /** * Resolve recaptcha type from CF7 form signals. * * @since 1.53.1 * * @param array $field Field. * @param string $form_html CF7 form markup. * * @return string */ private function resolve_cf7_recaptcha_type($field, $form_html = '') { } /** * Check whether the CF7 form markup includes a recaptcha tag. * * @since 1.53.1 * * @param string $form_html CF7 form markup. * * @return bool */ private function has_cf7_recaptcha_tag($form_html) { } /** * Handle URL field specific options * * @since 1.11 * * @param array $field Field. * @param array $options Options. * @param array $messages Messages. * * @return mixed */ public function handle_url_field($field, $options, $messages) { } /** * Handle upload field specific options * * @since 1.11 * * @param array $field Field. * @param array $options Options. * @param array $messages Messages. * * @return mixed */ public function handle_upload_field($field, $options, $messages) { } /** * Convert limit to MB * * @since 1.11 * * @param int $limit Limit. * * @return float|string */ public function convert_limit_to_mb($limit) { } /** * Map a single CF7 file type token to Forminator extension key(s). * * Accepts category shorthands (image, audio, video, image/*), * specific MIME types (image/webp, audio/mpeg), bare extensions (jpg, mp3), * and MIME aliases (image/jpg). Unknown values are passed through as-is. * * @since 1.11 * * @param string $file File type token from CF7. * * @return array Forminator extension key(s). */ public function filter_filetypes($file) { } /** * Import flamingo * * @param int $id Post Id. * @param Forminator_Form_Entry_Model $entry Form entry model. * @param array $import Import. * @param array $meta Meta. */ public function import_flamingo($id, \Forminator_Form_Entry_Model $entry, $import, $meta) { } /** * Import cfdb7 * * @param int $id Form Id. * @param Forminator_Form_Entry_Model $entry Form entry model. * @param array $import Import. * @param array $meta Meta. */ public function import_cfdb7($id, \Forminator_Form_Entry_Model $entry, $import, $meta) { } /** * Import submission * * @param int $id Form Id. * @param Forminator_Form_Entry_Model $entry Form entry model. * @param array $import Import. * @param array $meta Meta. */ public function import_submissions($id, \Forminator_Form_Entry_Model $entry, $import, $meta) { } /** * Field data * * @param array $form_fields Form fields. * * @return array */ public function get_fields_data($form_fields) { } /** * Import global settings * * @param array $setting Global settings. */ public function import_global_settings($setting) { } /** * Decide if imported form should receive fallback v3 captcha field. * * @since 1.53.1 * * @param array $setting Global settings. * * @return bool */ private function should_add_v3_captcha_field($setting) { } /** * Import Advanced CF7 * * @param int $id Form Id. * @param Forminator_Form_Entry_Model $entry Form entry model. * @param array $import Import. * @param array $meta Meta. */ public function import_advanced_cf7($id, \Forminator_Form_Entry_Model $entry, $import, $meta) { } /** * Import Condition * * @param array $wpcf7cf_entries Form entries. * @param string $form_html Form HTML. * @param array $field Field. * @param array $field_data Field data. * * @return array */ public function import_conditional_field($wpcf7cf_entries, $form_html, $field, $field_data) { } } /** * Class Forminator_Admin_Import_Gravity * * @since 1.7 */ class Forminator_Admin_Import_Gravity extends \Forminator_Import_Mediator { /** * Plugin instance * * @since 1.7 * @access private * @var null */ private static $instance = \null; /** * Return the plugin instance * * @since 1.7 * @return Forminator */ public static function get_instance() { } /** * Insert form data * * @param int $id Form Id. * * @since 1.7 * @return array Form import message */ public function import_form($id) { } } /** * Class Forminator_Admin_Import_Ninja * * @since 1.7 */ class Forminator_Admin_Import_Ninja extends \Forminator_Import_Mediator { /** * Plugin instance * * @since 1.7 * @access private * @var null */ private static $instance = \null; /** * Return the plugin instance * * @since 1.7 * @return Forminator */ public static function get_instance() { } /** * Check in multipart exists * * @since 1.7 * @return bool */ public function ninja_multipart() { } /** * Insert pagination * * @param mixed $data The input array. * @param mixed $insert Array to add. * @param int|null $position Position. * @return mixed */ public function insert_pagination($data, $insert, $position) { } /** * Insert form data * * @param int $id Form id. * * @since 1.7 * @return array Form import message */ public function import_form($id) { } } /** * Class Forminator_Addons_Page * * @since 1.15 */ class Forminator_Addons_Page extends \Forminator_Admin_Page { /** * Fetch Add-ons data * * @return array */ public function get_addons_data() { } /** * Get addons by action * * @return array */ public function get_addons_by_action() { } } /** * Class Forminator_Dashboard_Page * * @since 1.0 */ class Forminator_Dashboard_Page extends \Forminator_Admin_Page { /** * Print Dashboard box * * @since 1.0 */ public function dashboard_create_screen() { } /** * Count modules * * @param string $status Status. * * @since 1.6 * @return int */ public function countModules($status = '') { } /** * Return all forms containing Stripe field * * @since 1.9 * * @return array */ public function stripeModules() { } /** * Override scripts to be loaded * * @since 1.11 * * @param string $hook Hook name. */ public function enqueue_scripts($hook) { } } /** * Class Forminator_Entries_Page * * @since 1.0.5 */ class Forminator_Entries_Page extends \Forminator_Admin_Page { /** * Merged default parameter with superglobal REQUEST * * @since 1.0.5 * @var array */ private $screen_params = array(); /** * HTML representative of entries page * * @since 1.0.5 * @var string */ private $entries_page = ''; /** * Current Form Model of requested entries * * @since 1.0.5 * @var null|Forminator_Base_Form_Model */ private $form_model = \null; /** * Populating Current Page Parameters * * @since 1.0.5 */ public function populate_screen_params() { } /** * Executed Action before render the page * * @since 1.0.5 */ public function before_render() { } /** * Get Form types based on available modules * * @since 1.0.5 * * @return mixed */ public function get_form_types() { } /** * Prepare Entries Page * * @since 1.0.5 */ private function prepare_entries_page() { } /** * Return rendered entries page * * @since 1.0.5 * * @return string */ public function render_entries() { } /** * Get available forms for given type. * * @since 1.52.0 * * @param string $form_type Form type. * * @return array */ public static function get_entries_forms($form_type) { } /** * Render Form switcher / select based on current form_type * * @param string $form_type Form type. * @param int $form_id Form Id. * @param array $forms Forms list to render. * * @since 1.0.5 */ public static function render_form_switcher($form_type = 'forminator_forms', $form_id = 0, $forms = array()) { } /** * Get current form type * * @since 1.0.5 * * @return mixed */ public function get_current_form_type() { } /** * Get current form id * * @since 1.0.5 * * @return mixed */ public function get_current_form_id() { } /** * Custom scripts that only used on submissions page * * @since 1.5.4 */ public function enqueue_entries_scripts() { } /** * Hook into forminator_l10n * * Allow to modify `daterangepicker` locale * * @param array $l10n locale. * * @return mixed */ public function add_l10n($l10n) { } /** * Override scripts to be loaded * * @since 1.11 * * @param string $hook Hook name. */ public function enqueue_scripts($hook) { } } /** * Class Forminator_Integrations_Page * * @since 1.1 */ class Forminator_Integrations_Page extends \Forminator_Admin_Page { /** * Addon list as array * * @var array */ public $addons_list = array(); /** * Connected addon list * * @var array */ public $addons_list_grouped_by_connected = array(); /** * Nonce * * @var string */ public $addon_nonce = ''; /** * Addon page * * @var array */ private $addon_page = array(); /** * Page action * * @var string */ public static $addon_nonce_page_action = 'forminator_addon_nonce_page'; /** * Executed Action before render the page * * @since 1.1 * @since 1.2 add extra section for addon */ public function before_render() { } /** * Add js data * * @param mixed $data Addon data to add. * @return mixed */ public function add_addons_js_data($data) { } /** * Render custom output of addon when validated * * @since 1.2 */ protected function render_page_content() { } /** * Render Addon title as header on addon page * * @since 1.2 */ public function render_header() { } /** * Show a notice when the site is running on WordPress Playground. * * @since 1.53.0 * * @return void */ public function show_playground_notice() { } /** * Nonce generation for addon page * * @since 1.2 * @return string */ public static function get_addon_page_nonce() { } /** * Validate required query arg for displaying addon page * * @since 1.2 * * @return bool */ public function validate_addon_page() { } } /** * Class Forminator_Reports_Page * * @since 1.18.0 */ class Forminator_Reports_Page extends \Forminator_Admin_Page { /** * Merged default parameter with superglobal REQUEST * * @since 1.18.0 * @var array */ private $screen_params = array(); /** * Current Form Model * * @var null|Forminator_Base_Form_Model */ private $form_model = \null; /** * Get Form types based on available modules * * @return mixed * @since 1.18.0 */ public function get_form_types() { } /** * Render Form switcher / select based on current form_type * * @param string $form_type Form type. * @param int $form_id Form Id. * * @since 1.18.0 */ public static function render_form_switcher($form_type = 'forminator_forms', $form_id = 0) { } /** * Executed Action before render the page * * @since 1.18.0 */ public function before_render() { } /** * Populating Current Page Parameters * * @since 1.18.0 */ public function populate_screen_params() { } /** * Prepare Reports Page * * @since 1.18.0 */ private function prepare_reports_page() { } /** * Get current form type * * @return mixed */ public function get_current_form_type() { } /** * Get current form id * * @return mixed */ public function get_current_form_id() { } /** * Custom scripts that only used on submissions page * * @since 1.18.0 */ public function enqueue_reports_scripts() { } /** * Daterange script */ public function forminator_daterange_script() { } /** * Chart script */ public function forminator_report_chart_script() { } /** * Hook into forminator_l10n * * Allow to modify `daterangepicker` locale * * @param array $l10n locale. * * @return mixed */ public function add_l10n($l10n) { } /** * Override scripts to be loaded * * @param string $hook Hook name. */ public function enqueue_scripts($hook) { } } /** * Class Forminator_Settings_Page * * @since 1.0 */ class Forminator_Settings_Page extends \Forminator_Admin_Page { /** * Addons data that will be sent to settings page * * @var array */ private $addons_data = array(); /** * Addon list * * @var array */ public $addons_list = array(); /** * Init * * @return void */ public function init() { } /** * Enqueue scripts * * @param string $hook Hook name. * @return void */ public function enqueue_scripts($hook) { } /** * Add select forms for creating new Appearance Preset * * @param array $data Data. * @return array */ public function change_forminator_data($data) { } /** * Add new item in presets list. * * @param string $id ID. * @param string $name Name. */ public static function save_preset_list($id, $name) { } /** * Get preset settings for apply to a form * * @param string $preset_id Preset ID. * @return array */ public static function get_preset($preset_id) { } /** * Get preset settings. * * @param string $id ID. * @return array */ private static function get_preset_settings($id) { } /** * Leave only Appearance settings * * @param array $all_settings All settings. * @return array */ public static function only_appearance_settings($all_settings) { } /** * Get Appearance Preset names * * @return array */ public static function get_preset_names() { } /** * Get Appearance preset selectbox HTML * * @return string */ public static function get_preset_selectbox() { } /** * Before render * * @return void */ public function before_render() { } /** * Prepare addons * * @return void */ private function prepare_addons() { } /** * Add js data * * @param mixed $data Data to add. * * @return mixed */ public function add_permissions_js_data($data) { } /** * Process request * * @return void */ public function process_request() { } } /** * Class Forminator_Templates_Page * * @since 1.0 */ class Forminator_Templates_Page extends \Forminator_Admin_Page { /** * Initialize templates page * * @return void */ public function init() { } /** * Enqueue scripts * * @param string $hook Hook name. * @return void */ public function enqueue_scripts($hook) { } /** * Add select forms for creating new Appearance Preset * * @param array $data Data. * * @return array */ public function change_forminator_data($data) { } /** * Before render * * @return void */ public function before_render() { } /** * Add js data * * @param mixed $data Data to add. * @return mixed */ public function add_permissions_js_data($data) { } } /** * Class Forminator * * Main class. Initialize plugin * * @since 1.0 */ class Forminator { /** * Plugin instance * * @var null */ private static $instance = \null; /** * Forminator_Core instance * * @var Forminator_Core */ public $forminator; /** * Forminator_Integration_Loader instance * * @var Forminator_Integration_Loader */ private $forminator_addon_loader; /** * Return the plugin instance * * @since 1.0 * @return Forminator */ public static function get_instance() { } /** * Forminator constructor. * * @since 1.0 */ public function __construct() { } /** * Called on plugin activation * * @since 1.3 */ public static function activation_hook() { } /** * Called on plugin deactivation * * @since 1.11 */ public static function deactivation_hook() { } /** * Called on admin_init * * Flush rewrite rules are not called directly on activation hook, because CPT are not initialized yet * * @since 1.3 */ public function initialize_admin() { } /** * Add manage_forminator custom capability * * @since 1.15 */ public function add_custom_cap() { } /** * Remove forminator_cache_bust query arg from frontend URLs. * * @since 1.54.0 * * @return void */ public function maybe_remove_cache_bust_query_arg() { } /** * Return status of Addon feature * * If this function return false, then addon functionality will be disabled * * @since 1.1 * * @return bool */ public static function is_addons_feature_enabled() { } /** * Return status of Import/export feature * * If this function return false, then Import/export functionality will be disabled * * @since 1.4 * @since 1.5 enabled by default * * @return bool */ public static function is_import_export_feature_enabled() { } /** * Return status of Import integrations feature * * If this function return false, then Import integrations functionality will be disabled * * @since 1.4 * * @return bool */ public static function is_import_integrations_feature_enabled() { } /** * Return status of Export integrations feature * * If this function return false, then Import integrations functionality will be disabled * * @since 1.4 * * @return bool */ public static function is_export_integrations_feature_enabled() { } /** * Return status of Internal Page Cache support * * @since 1.6.1 * @return bool */ public static function is_internal_page_cache_support_enabled() { } /** * Initiate Addons Helper and Register internal Addons * * This function will also trigger action `forminator_addons_loaded` * * @since 1.1 */ public function init_addons() { } /** * Load internal addons * * Load pre-packaged addons * * @since 1.1 */ public function load_forminator_addons() { } /** * Load plugin files * * @since 1.0 */ private function includes() { } /** * Add option with plugin install date * * @since 1.10 */ public static function set_free_installation_timestamp() { } /** * Set activation dates * * @since 1.51.0 * * @return void */ public static function set_activation_dates() { } /** * Get earliest form created date * * @since 1.51.0 * * @return string */ private static function get_earliest_form_creation_date() { } /** * Init the plugin * * @since 1.0 */ private function init() { } /** * Include Vendors * * @since 1.0 */ private function include_vendors() { } /** * Load language files * * @since 1.0 */ private function load_textdomain() { } /** * Check if Dash plugin installed and full membership * * @since 1.6 * @return bool */ public static function is_wpmudev_member() { } } /** * Class Forminator_Field * * @since 1.0 * Abstract class for fields * * @since 1.0.5 * @property array form_settings * @property array field * @property mixed|void autofill_settings * @property mixed|void advanced_settings * @property mixed|void markup */ abstract class Forminator_Field { /** * The field * * @var array */ public $field = array(); /** * The Form settings * * @var array */ public $form_settings = array(); /** * The name * * @var string */ public $name = ''; /** * The slug * * @var string */ public $slug = ''; /** * The category * * @var string */ public $category = 'standard'; /** * Type * * @var string */ public $type = ''; /** * Options * * @var array */ public $options = array(); /** * The settings * * @var array */ public $settings = array(); /** * The autofill settings * * @var array */ public $autofill_settings = array(); /** * The defaults * * @var array */ public $defaults = array(); /** * The hide advanced * * @var bool */ public $hide_advanced = \false; /** * The position * * @var int */ public $position = 99; /** * Is inout * * @var bool */ public $is_input = \false; /** * Has counter * * @var bool */ public $has_counter = \false; /** * Check if the input data for field is valid * * @var bool */ public $is_valid = \true; /** * Validation message * * @var array */ public $validation_message = array(); /** * Description position * * @var string */ public static $description_position = ''; /** * Activated Autofill Providers for this field based @see autofill_settings * * @since 1.0.5 * @var Forminator_Autofill_Provider_Abstract[] */ protected $activated_autofill_providers = array(); /** * Flag property value not exist * * Support backward compat, for non existent property from older forminator version * * @since 1.6 */ const FIELD_PROPERTY_VALUE_NOT_EXIST = 'FORMINATOR_PROPERTY_VALUE_NOT_EXIST'; /** * The icon * * @var string */ public $icon = 'sui-icon-element-radio'; /** * Is calculable * * @var bool */ public $is_calculable = \false; const FIELD_NOT_CALCULABLE = 'FIELD_NOT_CALCULABLE'; /** * Default error messages for required fields. * * @var array */ public static $default_required_messages = array(); /** * The Constructor */ public function __construct() { } /** * Admin init field * * @since 1.7 */ public function admin_init_field() { } /** * Return field name * * @since 1.0 * @return string */ public function get_name() { } /** * Return field slug * * @since 1.0 * @return string */ public function get_slug() { } /** * Get Category * * @return string */ public function get_category() { } /** * Return field settings * * @since 1.0 * @return array */ public function get_settings() { } /** * Create decimals pattern from decimals number * * @since 1.7 * @param integer $decimals Decimals. * @return mixed */ protected static function create_step_string($decimals = 2) { } /** * Return field property * * @since 1.0 * @since 1.6 add $data_type, to cast it * * @param string $property Property. * @param array $field Field. * @param string $fallback Fallback. * @param string $data_type data type to return. * * @return mixed */ public static function get_property($property, $field, $fallback = '', $data_type = \null) { } /** * Get options for radio and selectbox fields * * @param array $field Field settings. * @return array */ public static function get_options($field) { } /** * Get description position * * @param array $field Field settings. * @param array $settings Form Settings. * * @return string */ public static function get_description_position(array $field, array $settings): string { } /** * Markup * * @since 1.0 * * @param mixed $field Field. * @param Forminator_Render_Form $views_obj Forminator_Render_Form object. * * @return mixed */ public function markup( // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed // @noinspection PhpUnusedParameterInspection. $field, $views_obj ) { } /** * Defaults * * @since 1.0 * @return array */ public function defaults() { } /** * Return description * * @since 1.0 * * @param string $description Description. * @param string $get_id Id. * @param string $descr_position Description position. * * @return string */ public static function get_description($description, $get_id = '', $descr_position = 'above') { } /** * Escape description * * @param string $description Description. * @param string $field_id Field ID. * * @return string */ public static function esc_description($description, $field_id) { } /** * Return new input field * * @since 1.0 * * @param array $attr Attribute. * * @param string $label Label. * @param string $description Description. * @param bool $required Required. * @param string $descr_position Description position. * @param array $wrapper_input Wrapper Input. * * @return mixed */ public static function create_input($attr = array(), $label = '', $description = '', $required = \false, $descr_position = 'above', $wrapper_input = array()) { } /** * Return new textarea field * * @since 1.0 * * @param array $attr Field Attribute. * @param string $label Field Label. * @param string $description Field Description. * @param bool $required Required. * @param string $description_position Description Position. * * @return mixed */ public static function create_textarea($attr = array(), $label = '', $description = '', $required = \false, $description_position = 'above') { } /** * Return wp_editor_field * * @since 1.0.2 * * @param array $attr Field Attribute. * @param string $label Field Label. * @param string $description Field Description. * @param bool $required Required. * @param string $default_height Height. * @param integer $limit Limit. * @param bool $media_buttons Whether to show media buttons or not. * * @return mixed */ public static function create_wp_editor($attr = array(), $label = '', $description = '', $required = \false, $default_height = '140', $limit = 0, $media_buttons = \false) { } /** * Add Required attribute to wp_editor * * @since 1.0.2 * * @param string $editor_markup Editor markup. * * @return mixed */ public static function add_required_wp_editor($editor_markup) { } /** * Maybe add label if it's not empty * * @param string $label Field label. * @param string $id Field id. * @param bool $required Is field required or not. * @return string */ protected static function get_field_label($label, $id, $required) { } /** * Convert markdown to HTML. * * @param string $original_string Original string. * * @return string */ public static function convert_markdown(string $original_string): string { } /** * Get full field id * * @param string $element_id Field slug. * @return string */ protected static function get_field_id($element_id) { } /** * Return new select field * * @since 1.0 * * @param array $attr Field attribute. * @param string $label Field label. * @param array $options Field option. * @param string $value Field value. * @param string $description Field description. * @param bool $required Required. * @param string $descr_position Description position. * * @return mixed */ public static function create_select($attr = array(), $label = '', $options = array(), $value = '', $description = '', $required = \false, $descr_position = 'above') { } /** * Return new simple select field * * @since 1.0 * * @param array $attr Field Attribute. * @param array $options Field Options. * @param string $value Field Value. * @param string $description Field Description. * * @return mixed */ public static function create_simple_select($attr = array(), $options = array(), $value = '', $description = '') { } /** * Populate s for