From a60ce58ddd95623e407281b9d1324cde29f3dc67 Mon Sep 17 00:00:00 2001 From: Gitium Date: Sat, 27 Feb 2021 21:52:46 +0000 Subject: [PATCH] deleted plugin `wp_mail_smtp.php` --- .../wp-mail-smtp/assets/css/admin-bar.min.css | 1 - .../assets/css/admin-notifications.min.css | 1 - .../assets/css/smtp-about.min.css | 1 - .../assets/css/smtp-admin.min.css | 1 - .../assets/images/about/icon-full.svg | 1 - .../assets/images/about/icon-none.svg | 1 - .../assets/images/about/icon-partial.svg | 1 - .../assets/images/about/plugin-mi.png | Bin 7238 -> 0 bytes .../assets/images/about/plugin-om.png | Bin 46309 -> 0 bytes .../assets/images/about/plugin-rp.png | Bin 2190 -> 0 bytes .../assets/images/about/plugin-wpf.png | Bin 25007 -> 0 bytes .../wp-mail-smtp/assets/images/about/team.jpg | Bin 302513 -> 0 bytes .../assets/images/email/icon-check.png | Bin 2291 -> 0 bytes .../assets/images/email/signature.png | Bin 11399 -> 0 bytes .../images/email/wp-mail-smtp-whitelabel.png | Bin 14735 -> 0 bytes .../assets/images/email/wp-mail-smtp.png | Bin 24083 -> 0 bytes .../font-awesome/check-circle-solid-green.svg | 1 - .../exclamation-circle-regular-red.svg | 1 - .../exclamation-circle-solid-orange.svg | 1 - .../exclamation-circle-solid-red.svg | 1 - .../assets/images/loaders/loading-blue.svg | 1 - .../assets/images/loaders/loading-white.svg | 1 - .../assets/images/loaders/loading.svg | 1 - .../assets/images/logo-whitelabel.svg | 1 - .../wp-mail-smtp/assets/images/logo.svg | 1 - .../assets/images/logs/archive.png | Bin 28288 -> 0 bytes .../assets/images/logs/single.png | Bin 56323 -> 0 bytes .../wp-mail-smtp/assets/images/menu-icon.svg | 1 - .../wp-mail-smtp/assets/images/pro-badge.svg | 1 - .../assets/images/providers/aws.svg | 1 - .../assets/images/providers/google.svg | 1 - .../assets/images/providers/mailgun.svg | 1 - .../assets/images/providers/microsoft.svg | 1 - .../assets/images/providers/pepipost-smtp.png | Bin 3236 -> 0 bytes .../assets/images/providers/pepipost.png | Bin 13808 -> 0 bytes .../assets/images/providers/php.svg | 1 - .../assets/images/providers/sendgrid.svg | 1 - .../assets/images/providers/sendinblue.svg | 1 - .../assets/images/providers/smtp-com.svg | 1 - .../assets/images/providers/smtp.svg | 1 - .../assets/images/providers/zoho.svg | 1 - .../assets/images/recommended.svg | 1 - .../wp-mail-smtp/assets/js/smtp-about.js | 181 - .../wp-mail-smtp/assets/js/smtp-about.min.js | 1 - .../wp-mail-smtp/assets/js/smtp-admin.js | 400 -- .../wp-mail-smtp/assets/js/smtp-admin.min.js | 1 - .../assets/js/smtp-notifications.js | 185 - .../assets/js/smtp-notifications.min.js | 1 - .../assets/js/vendor/jquery.matchHeight.js | 388 -- .../js/vendor/jquery.matchHeight.min.js | 1 - .../assets/languages/wp-mail-smtp.pot | 2017 ------- .../assets/libs/jquery-confirm.min.css | 9 - .../assets/libs/jquery-confirm.min.js | 10 - wp-content/plugins/wp-mail-smtp/readme.txt | 486 -- .../wp-mail-smtp/src/Admin/AdminBarMenu.php | 164 - .../plugins/wp-mail-smtp/src/Admin/Area.php | 1057 ---- .../wp-mail-smtp/src/Admin/Education.php | 102 - .../wp-mail-smtp/src/Admin/Notifications.php | 492 -- .../wp-mail-smtp/src/Admin/PageAbstract.php | 89 - .../wp-mail-smtp/src/Admin/PageInterface.php | 45 - .../wp-mail-smtp/src/Admin/Pages/About.php | 758 --- .../wp-mail-smtp/src/Admin/Pages/AuthTab.php | 63 - .../src/Admin/Pages/ControlTab.php | 137 - .../wp-mail-smtp/src/Admin/Pages/Logs.php | 68 - .../wp-mail-smtp/src/Admin/Pages/LogsTab.php | 86 - .../wp-mail-smtp/src/Admin/Pages/MiscTab.php | 259 - .../src/Admin/Pages/SettingsTab.php | 608 -- .../wp-mail-smtp/src/Admin/Pages/TestTab.php | 1205 ---- .../src/Admin/PluginsInstallSkin.php | 55 - .../src/Admin/PluginsInstallUpgrader.php | 581 -- .../plugins/wp-mail-smtp/src/Admin/Review.php | 203 - .../plugins/wp-mail-smtp/src/Conflicts.php | 184 - wp-content/plugins/wp-mail-smtp/src/Core.php | 981 --- wp-content/plugins/wp-mail-smtp/src/Debug.php | 122 - wp-content/plugins/wp-mail-smtp/src/Geo.php | 164 - .../wp-mail-smtp/src/Helpers/Crypto.php | 162 - .../plugins/wp-mail-smtp/src/MailCatcher.php | 181 - .../wp-mail-smtp/src/MailCatcherInterface.php | 42 - .../wp-mail-smtp/src/MailCatcherV6.php | 161 - .../plugins/wp-mail-smtp/src/Migration.php | 401 -- .../plugins/wp-mail-smtp/src/Options.php | 1124 ---- .../plugins/wp-mail-smtp/src/Processor.php | 336 -- .../src/Providers/AmazonSES/Options.php | 44 - .../src/Providers/AuthAbstract.php | 151 - .../src/Providers/AuthInterface.php | 30 - .../wp-mail-smtp/src/Providers/Gmail/Auth.php | 354 -- .../src/Providers/Gmail/Mailer.php | 315 - .../src/Providers/Gmail/Options.php | 259 - .../wp-mail-smtp/src/Providers/Loader.php | 239 - .../src/Providers/Mail/Mailer.php | 49 - .../src/Providers/Mail/Options.php | 42 - .../src/Providers/MailerAbstract.php | 531 -- .../src/Providers/MailerInterface.php | 86 - .../src/Providers/Mailgun/Mailer.php | 490 -- .../src/Providers/Mailgun/Options.php | 161 - .../src/Providers/OptionsAbstract.php | 518 -- .../src/Providers/OptionsInterface.php | 71 - .../src/Providers/Outlook/Options.php | 44 - .../src/Providers/Pepipost/Mailer.php | 32 - .../src/Providers/Pepipost/Options.php | 29 - .../src/Providers/PepipostAPI/Mailer.php | 477 -- .../src/Providers/PepipostAPI/Options.php | 125 - .../src/Providers/SMTP/Mailer.php | 32 - .../src/Providers/SMTP/Options.php | 44 - .../src/Providers/SMTPcom/Mailer.php | 488 -- .../src/Providers/SMTPcom/Options.php | 150 - .../src/Providers/Sendgrid/Mailer.php | 412 -- .../src/Providers/Sendgrid/Options.php | 104 - .../src/Providers/Sendinblue/Api.php | 98 - .../src/Providers/Sendinblue/Mailer.php | 406 -- .../src/Providers/Sendinblue/Options.php | 127 - .../src/Providers/Zoho/Options.php | 46 - .../plugins/wp-mail-smtp/src/SiteHealth.php | 282 - .../plugins/wp-mail-smtp/src/Tasks/Meta.php | 529 -- .../plugins/wp-mail-smtp/src/Tasks/Task.php | 309 - .../plugins/wp-mail-smtp/src/Tasks/Tasks.php | 156 - .../plugins/wp-mail-smtp/src/Upgrade.php | 73 - .../src/UsageTracking/SendUsageTask.php | 125 - .../src/UsageTracking/UsageTracking.php | 250 - wp-content/plugins/wp-mail-smtp/src/WP.php | 305 - wp-content/plugins/wp-mail-smtp/uninstall.php | 190 - .../plugins/wp-mail-smtp/vendor/autoload.php | 7 - .../vendor/composer/ClassLoader.php | 445 -- .../vendor/composer/autoload_classmap.php | 538 -- .../vendor/composer/autoload_files.php | 19 - .../vendor/composer/autoload_namespaces.php | 9 - .../vendor/composer/autoload_psr4.php | 14 - .../vendor/composer/autoload_real.php | 73 - .../vendor/composer/autoload_static.php | 606 -- .../vendor/paragonie/random_compat/LICENSE | 22 - .../dist/random_compat.phar.pubkey | 5 - .../dist/random_compat.phar.pubkey.asc | 11 - .../random_compat/lib/byte_safe_strings.php | 195 - .../random_compat/lib/cast_to_int.php | 77 - .../random_compat/lib/error_polyfill.php | 49 - .../paragonie/random_compat/lib/random.php | 225 - .../lib/random_bytes_com_dotnet.php | 91 - .../lib/random_bytes_dev_urandom.php | 190 - .../lib/random_bytes_libsodium.php | 91 - .../lib/random_bytes_libsodium_legacy.php | 93 - .../random_compat/lib/random_bytes_mcrypt.php | 79 - .../random_compat/lib/random_int.php | 204 - .../random_compat/phpunit-autoload.php | 14 - .../vendor/paragonie/sodium_compat/LICENSE | 21 - .../paragonie/sodium_compat/autoload-fast.php | 4 - .../sodium_compat/autoload-pedantic.php | 6 - .../paragonie/sodium_compat/autoload-php7.php | 31 - .../sodium_compat/autoload-phpunit.php | 7 - .../paragonie/sodium_compat/autoload.php | 65 - .../paragonie/sodium_compat/lib/constants.php | 52 - .../sodium_compat/lib/namespaced.php | 48 - .../sodium_compat/lib/php72compat.php | 1366 ----- .../sodium_compat/lib/php72compat_const.php | 90 - .../sodium_compat/lib/sodium_compat.php | 826 --- .../sodium_compat/namespaced/Compat.php | 7 - .../sodium_compat/namespaced/Core/BLAKE2b.php | 7 - .../namespaced/Core/ChaCha20.php | 7 - .../namespaced/Core/ChaCha20/Ctx.php | 7 - .../namespaced/Core/ChaCha20/IetfCtx.php | 7 - .../namespaced/Core/Curve25519.php | 7 - .../namespaced/Core/Curve25519/Fe.php | 7 - .../namespaced/Core/Curve25519/Ge/Cached.php | 7 - .../namespaced/Core/Curve25519/Ge/P1p1.php | 7 - .../namespaced/Core/Curve25519/Ge/P2.php | 7 - .../namespaced/Core/Curve25519/Ge/P3.php | 7 - .../namespaced/Core/Curve25519/Ge/Precomp.php | 7 - .../namespaced/Core/Curve25519/H.php | 7 - .../sodium_compat/namespaced/Core/Ed25519.php | 7 - .../namespaced/Core/HChaCha20.php | 7 - .../namespaced/Core/HSalsa20.php | 7 - .../namespaced/Core/Poly1305.php | 7 - .../namespaced/Core/Poly1305/State.php | 7 - .../sodium_compat/namespaced/Core/Salsa20.php | 7 - .../sodium_compat/namespaced/Core/SipHash.php | 7 - .../sodium_compat/namespaced/Core/Util.php | 7 - .../sodium_compat/namespaced/Core/X25519.php | 7 - .../namespaced/Core/XChaCha20.php | 7 - .../namespaced/Core/Xsalsa20.php | 7 - .../sodium_compat/namespaced/Crypto.php | 7 - .../sodium_compat/namespaced/File.php | 7 - .../paragonie/sodium_compat/src/Compat.php | 3560 ----------- .../sodium_compat/src/Core/BLAKE2b.php | 789 --- .../sodium_compat/src/Core/Base64/Common.php | 213 - .../src/Core/Base64/Original.php | 248 - .../sodium_compat/src/Core/Base64/UrlSafe.php | 247 - .../sodium_compat/src/Core/ChaCha20.php | 395 -- .../sodium_compat/src/Core/ChaCha20/Ctx.php | 119 - .../src/Core/ChaCha20/IetfCtx.php | 38 - .../sodium_compat/src/Core/Curve25519.php | 3002 --------- .../sodium_compat/src/Core/Curve25519/Fe.php | 123 - .../src/Core/Curve25519/Ge/Cached.php | 65 - .../src/Core/Curve25519/Ge/P1p1.php | 64 - .../src/Core/Curve25519/Ge/P2.php | 54 - .../src/Core/Curve25519/Ge/P3.php | 65 - .../src/Core/Curve25519/Ge/Precomp.php | 54 - .../sodium_compat/src/Core/Curve25519/H.php | 1467 ----- .../sodium_compat/src/Core/Ed25519.php | 480 -- .../sodium_compat/src/Core/HChaCha20.php | 108 - .../sodium_compat/src/Core/HSalsa20.php | 96 - .../sodium_compat/src/Core/Poly1305.php | 63 - .../sodium_compat/src/Core/Poly1305/State.php | 445 -- .../sodium_compat/src/Core/Salsa20.php | 273 - .../src/Core/SecretStream/State.php | 163 - .../sodium_compat/src/Core/SipHash.php | 305 - .../paragonie/sodium_compat/src/Core/Util.php | 921 --- .../sodium_compat/src/Core/X25519.php | 327 - .../sodium_compat/src/Core/XChaCha20.php | 117 - .../sodium_compat/src/Core/XSalsa20.php | 57 - .../sodium_compat/src/Core32/BLAKE2b.php | 718 --- .../sodium_compat/src/Core32/ChaCha20.php | 400 -- .../sodium_compat/src/Core32/ChaCha20/Ctx.php | 126 - .../src/Core32/ChaCha20/IetfCtx.php | 39 - .../sodium_compat/src/Core32/Curve25519.php | 3196 ---------- .../src/Core32/Curve25519/Fe.php | 185 - .../src/Core32/Curve25519/Ge/Cached.php | 65 - .../src/Core32/Curve25519/Ge/P1p1.php | 67 - .../src/Core32/Curve25519/Ge/P2.php | 54 - .../src/Core32/Curve25519/Ge/P3.php | 65 - .../src/Core32/Curve25519/Ge/Precomp.php | 56 - .../sodium_compat/src/Core32/Curve25519/H.php | 1467 ----- .../sodium_compat/src/Core32/Ed25519.php | 481 -- .../sodium_compat/src/Core32/HChaCha20.php | 127 - .../sodium_compat/src/Core32/HSalsa20.php | 141 - .../sodium_compat/src/Core32/Int32.php | 871 --- .../sodium_compat/src/Core32/Int64.php | 1066 ---- .../sodium_compat/src/Core32/Poly1305.php | 63 - .../src/Core32/Poly1305/State.php | 451 -- .../sodium_compat/src/Core32/Salsa20.php | 306 - .../src/Core32/SecretStream/State.php | 163 - .../sodium_compat/src/Core32/SipHash.php | 238 - .../sodium_compat/src/Core32/Util.php | 13 - .../sodium_compat/src/Core32/X25519.php | 345 -- .../sodium_compat/src/Core32/XChaCha20.php | 64 - .../sodium_compat/src/Core32/XSalsa20.php | 57 - .../paragonie/sodium_compat/src/Crypto.php | 1655 ----- .../paragonie/sodium_compat/src/Crypto32.php | 1654 ----- .../paragonie/sodium_compat/src/File.php | 1565 ----- .../sodium_compat/src/PHP52/SplFixedArray.php | 187 - .../sodium_compat/src/SodiumException.php | 11 - .../vendor/ralouphie/getallheaders/LICENSE | 21 - .../getallheaders/src/getallheaders.php | 46 - .../action-scheduler/action-scheduler.php | 53 - .../classes/ActionScheduler_ActionClaim.php | 23 - .../classes/ActionScheduler_ActionFactory.php | 179 - .../classes/ActionScheduler_AdminView.php | 154 - ...tionScheduler_AsyncRequest_QueueRunner.php | 97 - .../classes/ActionScheduler_Compatibility.php | 99 - .../ActionScheduler_DataController.php | 187 - .../classes/ActionScheduler_DateTime.php | 76 - .../classes/ActionScheduler_Exception.php | 11 - .../ActionScheduler_FatalErrorMonitor.php | 55 - ...ActionScheduler_InvalidActionException.php | 47 - .../classes/ActionScheduler_ListTable.php | 612 -- .../classes/ActionScheduler_LogEntry.php | 67 - .../classes/ActionScheduler_NullLogEntry.php | 11 - .../classes/ActionScheduler_OptionLock.php | 49 - .../classes/ActionScheduler_QueueCleaner.php | 155 - .../classes/ActionScheduler_QueueRunner.php | 197 - .../classes/ActionScheduler_Versions.php | 62 - .../ActionScheduler_WPCommentCleaner.php | 115 - .../ActionScheduler_wcSystemStatus.php | 152 - .../ActionScheduler_WPCLI_QueueRunner.php | 197 - ...ctionScheduler_WPCLI_Scheduler_command.php | 158 - .../classes/WP_CLI/Migration_Command.php | 148 - .../classes/WP_CLI/ProgressBar.php | 119 - .../classes/abstracts/ActionScheduler.php | 304 - .../ActionScheduler_Abstract_ListTable.php | 674 --- .../ActionScheduler_Abstract_QueueRunner.php | 240 - ...onScheduler_Abstract_RecurringSchedule.php | 102 - .../ActionScheduler_Abstract_Schedule.php | 83 - .../ActionScheduler_Abstract_Schema.php | 135 - .../abstracts/ActionScheduler_Lock.php | 62 - .../abstracts/ActionScheduler_Logger.php | 176 - .../abstracts/ActionScheduler_Store.php | 345 -- .../ActionScheduler_TimezoneHelper.php | 152 - .../actions/ActionScheduler_Action.php | 75 - .../ActionScheduler_CanceledAction.php | 23 - .../ActionScheduler_FinishedAction.php | 16 - .../actions/ActionScheduler_NullAction.php | 16 - .../data-stores/ActionScheduler_DBLogger.php | 146 - .../data-stores/ActionScheduler_DBStore.php | 845 --- .../ActionScheduler_HybridStore.php | 426 -- .../ActionScheduler_wpCommentLogger.php | 240 - .../ActionScheduler_wpPostStore.php | 860 --- ...eduler_wpPostStore_PostStatusRegistrar.php | 58 - ...cheduler_wpPostStore_PostTypeRegistrar.php | 50 - ...cheduler_wpPostStore_TaxonomyRegistrar.php | 26 - .../classes/migration/ActionMigrator.php | 109 - .../ActionScheduler_DBStoreMigrator.php | 47 - .../classes/migration/BatchFetcher.php | 86 - .../classes/migration/Config.php | 168 - .../classes/migration/Controller.php | 206 - .../migration/DryRun_ActionMigrator.php | 28 - .../classes/migration/DryRun_LogMigrator.php | 23 - .../classes/migration/LogMigrator.php | 49 - .../classes/migration/Runner.php | 136 - .../classes/migration/Scheduler.php | 128 - .../ActionScheduler_CanceledSchedule.php | 57 - .../ActionScheduler_CronSchedule.php | 102 - .../ActionScheduler_IntervalSchedule.php | 81 - .../ActionScheduler_NullSchedule.php | 28 - .../schedules/ActionScheduler_Schedule.php | 18 - .../ActionScheduler_SimpleSchedule.php | 71 - .../schema/ActionScheduler_LoggerSchema.php | 47 - .../schema/ActionScheduler_StoreSchema.php | 83 - ...eduler_Abstract_QueueRunner_Deprecated.php | 27 - .../ActionScheduler_AdminView_Deprecated.php | 147 - .../ActionScheduler_Schedule_Deprecated.php | 29 - .../ActionScheduler_Store_Deprecated.php | 49 - .../action-scheduler/deprecated/functions.php | 126 - .../action-scheduler/functions.php | 275 - .../action-scheduler/lib/WP_Async_Request.php | 170 - .../lib/cron-expression/CronExpression.php | 318 - .../CronExpression_AbstractField.php | 100 - .../CronExpression_DayOfMonthField.php | 110 - .../CronExpression_DayOfWeekField.php | 124 - .../CronExpression_FieldFactory.php | 55 - .../CronExpression_FieldInterface.php | 39 - .../CronExpression_HoursField.php | 47 - .../CronExpression_MinutesField.php | 39 - .../CronExpression_MonthField.php | 55 - .../CronExpression_YearField.php | 43 - .../lib/cron-expression/LICENSE | 19 - .../woocommerce/action-scheduler/license.txt | 674 --- .../src/Google/Service/Gmail.php | 105 - .../Google/Service/Gmail/AutoForwarding.php | 49 - .../Gmail/BatchDeleteMessagesRequest.php | 32 - .../Gmail/BatchModifyMessagesRequest.php | 50 - .../src/Google/Service/Gmail/Delegate.php | 40 - .../src/Google/Service/Gmail/Draft.php | 47 - .../src/Google/Service/Gmail/Filter.php | 63 - .../src/Google/Service/Gmail/FilterAction.php | 50 - .../Google/Service/Gmail/FilterCriteria.php | 103 - .../Service/Gmail/ForwardingAddress.php | 40 - .../src/Google/Service/Gmail/History.php | 112 - .../Service/Gmail/HistoryLabelAdded.php | 48 - .../Service/Gmail/HistoryLabelRemoved.php | 48 - .../Service/Gmail/HistoryMessageAdded.php | 38 - .../Service/Gmail/HistoryMessageDeleted.php | 38 - .../src/Google/Service/Gmail/ImapSettings.php | 58 - .../src/Google/Service/Gmail/Label.php | 119 - .../src/Google/Service/Gmail/LabelColor.php | 40 - .../Google/Service/Gmail/LanguageSettings.php | 31 - .../Service/Gmail/ListDelegatesResponse.php | 39 - .../Service/Gmail/ListDraftsResponse.php | 57 - .../Service/Gmail/ListFiltersResponse.php | 39 - .../Gmail/ListForwardingAddressesResponse.php | 39 - .../Service/Gmail/ListHistoryResponse.php | 57 - .../Service/Gmail/ListLabelsResponse.php | 39 - .../Service/Gmail/ListMessagesResponse.php | 57 - .../Service/Gmail/ListSendAsResponse.php | 39 - .../Service/Gmail/ListSmimeInfoResponse.php | 39 - .../Service/Gmail/ListThreadsResponse.php | 57 - .../src/Google/Service/Gmail/Message.php | 111 - .../src/Google/Service/Gmail/MessagePart.php | 98 - .../Google/Service/Gmail/MessagePartBody.php | 49 - .../Service/Gmail/MessagePartHeader.php | 40 - .../Service/Gmail/ModifyMessageRequest.php | 41 - .../Service/Gmail/ModifyThreadRequest.php | 41 - .../src/Google/Service/Gmail/PopSettings.php | 40 - .../src/Google/Service/Gmail/Profile.php | 58 - .../Google/Service/Gmail/Resource/Users.php | 73 - .../Service/Gmail/Resource/UsersDrafts.php | 132 - .../Service/Gmail/Resource/UsersHistory.php | 63 - .../Service/Gmail/Resource/UsersLabels.php | 121 - .../Service/Gmail/Resource/UsersMessages.php | 232 - .../Resource/UsersMessagesAttachments.php | 46 - .../Service/Gmail/Resource/UsersSettings.php | 184 - .../Gmail/Resource/UsersSettingsDelegates.php | 109 - .../Gmail/Resource/UsersSettingsFilters.php | 89 - .../UsersSettingsForwardingAddresses.php | 97 - .../Gmail/Resource/UsersSettingsSendAs.php | 153 - .../Resource/UsersSettingsSendAsSmimeInfo.php | 117 - .../Service/Gmail/Resource/UsersThreads.php | 137 - .../src/Google/Service/Gmail/SendAs.php | 110 - .../src/Google/Service/Gmail/SmimeInfo.php | 85 - .../src/Google/Service/Gmail/SmtpMsa.php | 67 - .../src/Google/Service/Gmail/Thread.php | 66 - .../Google/Service/Gmail/VacationSettings.php | 94 - .../src/Google/Service/Gmail/WatchRequest.php | 50 - .../Google/Service/Gmail/WatchResponse.php | 40 - .../vendor_prefixed/google/apiclient/LICENSE | 203 - .../src/Google/AccessToken/Revoke.php | 64 - .../src/Google/AccessToken/Verify.php | 218 - .../Google/AuthHandler/AuthHandlerFactory.php | 49 - .../Google/AuthHandler/Guzzle5AuthHandler.php | 63 - .../Google/AuthHandler/Guzzle6AuthHandler.php | 72 - .../Google/AuthHandler/Guzzle7AuthHandler.php | 25 - .../google/apiclient/src/Google/Client.php | 977 --- .../apiclient/src/Google/Collection.php | 87 - .../google/apiclient/src/Google/Exception.php | 22 - .../apiclient/src/Google/Http/Batch.php | 188 - .../src/Google/Http/MediaFileUpload.php | 277 - .../google/apiclient/src/Google/Http/REST.php | 148 - .../google/apiclient/src/Google/Model.php | 292 - .../google/apiclient/src/Google/Service.php | 50 - .../src/Google/Service/Exception.php | 62 - .../apiclient/src/Google/Service/Resource.php | 212 - .../apiclient/src/Google/Task/Composer.php | 71 - .../apiclient/src/Google/Task/Exception.php | 22 - .../apiclient/src/Google/Task/Retryable.php | 26 - .../apiclient/src/Google/Task/Runner.php | 230 - .../src/Google/Utils/UriTemplate.php | 266 - .../google/apiclient/src/Google/autoload.php | 19 - .../vendor_prefixed/google/auth/LICENSE | 203 - .../vendor_prefixed/google/auth/autoload.php | 35 - .../google/auth/src/AccessToken.php | 388 -- .../src/ApplicationDefaultCredentials.php | 253 - .../src/Cache/InvalidArgumentException.php | 23 - .../google/auth/src/Cache/Item.php | 155 - .../auth/src/Cache/MemoryCacheItemPool.php | 130 - .../auth/src/Cache/SysVCacheItemPool.php | 198 - .../google/auth/src/CacheTrait.php | 72 - .../Credentials/AppIdentityCredentials.php | 200 - .../auth/src/Credentials/GCECredentials.php | 428 -- .../auth/src/Credentials/IAMCredentials.php | 77 - .../src/Credentials/InsecureCredentials.php | 64 - .../Credentials/ServiceAccountCredentials.php | 226 - .../ServiceAccountJwtAccessCredentials.php | 160 - .../Credentials/UserRefreshCredentials.php | 117 - .../google/auth/src/CredentialsLoader.php | 207 - .../google/auth/src/FetchAuthTokenCache.php | 201 - .../auth/src/FetchAuthTokenInterface.php | 52 - .../google/auth/src/GCECache.php | 78 - .../auth/src/GetQuotaProjectInterface.php | 32 - .../src/HttpHandler/Guzzle5HttpHandler.php | 90 - .../src/HttpHandler/Guzzle6HttpHandler.php | 59 - .../src/HttpHandler/Guzzle7HttpHandler.php | 22 - .../auth/src/HttpHandler/HttpClientCache.php | 51 - .../src/HttpHandler/HttpHandlerFactory.php | 51 - .../vendor_prefixed/google/auth/src/Iam.php | 78 - .../src/Middleware/AuthTokenMiddleware.php | 125 - .../ScopedAccessTokenMiddleware.php | 148 - .../auth/src/Middleware/SimpleMiddleware.php | 86 - .../google/auth/src/OAuth2.php | 1194 ---- .../auth/src/ProjectIdProviderInterface.php | 32 - .../auth/src/ServiceAccountSignerTrait.php | 53 - .../google/auth/src/SignBlobInterface.php | 43 - .../src/Subscriber/AuthTokenSubscriber.php | 120 - .../ScopedAccessTokenSubscriber.php | 154 - .../auth/src/Subscriber/SimpleSubscriber.php | 88 - .../auth/src/UpdateMetadataInterface.php | 36 - .../vendor_prefixed/guzzlehttp/guzzle/LICENSE | 19 - .../guzzlehttp/guzzle/src/Client.php | 424 -- .../guzzlehttp/guzzle/src/ClientInterface.php | 82 - .../guzzle/src/Cookie/CookieJar.php | 246 - .../guzzle/src/Cookie/CookieJarInterface.php | 76 - .../guzzle/src/Cookie/FileCookieJar.php | 84 - .../guzzle/src/Cookie/SessionCookieJar.php | 67 - .../guzzle/src/Cookie/SetCookie.php | 343 -- .../src/Exception/BadResponseException.php | 19 - .../guzzle/src/Exception/ClientException.php | 10 - .../guzzle/src/Exception/ConnectException.php | 31 - .../guzzle/src/Exception/GuzzleException.php | 23 - .../Exception/InvalidArgumentException.php | 7 - .../guzzle/src/Exception/RequestException.php | 147 - .../guzzle/src/Exception/SeekException.php | 25 - .../guzzle/src/Exception/ServerException.php | 10 - .../Exception/TooManyRedirectsException.php | 7 - .../src/Exception/TransferException.php | 7 - .../guzzle/src/Handler/CurlFactory.php | 436 -- .../src/Handler/CurlFactoryInterface.php | 26 - .../guzzle/src/Handler/CurlHandler.php | 39 - .../guzzle/src/Handler/CurlMultiHandler.php | 177 - .../guzzle/src/Handler/EasyHandle.php | 67 - .../guzzle/src/Handler/MockHandler.php | 157 - .../guzzlehttp/guzzle/src/Handler/Proxy.php | 46 - .../guzzle/src/Handler/StreamHandler.php | 377 -- .../guzzlehttp/guzzle/src/HandlerStack.php | 243 - .../guzzle/src/MessageFormatter.php | 156 - .../guzzlehttp/guzzle/src/Middleware.php | 221 - .../guzzlehttp/guzzle/src/Pool.php | 117 - .../guzzle/src/PrepareBodyMiddleware.php | 91 - .../guzzle/src/RedirectMiddleware.php | 177 - .../guzzlehttp/guzzle/src/RequestOptions.php | 235 - .../guzzlehttp/guzzle/src/RetryMiddleware.php | 99 - .../guzzlehttp/guzzle/src/TransferStats.php | 110 - .../guzzlehttp/guzzle/src/UriTemplate.php | 191 - .../guzzlehttp/guzzle/src/Utils.php | 82 - .../guzzlehttp/guzzle/src/functions.php | 294 - .../guzzle/src/functions_include.php | 8 - .../guzzlehttp/promises/LICENSE | 19 - .../promises/src/AggregateException.php | 14 - .../promises/src/CancellationException.php | 10 - .../guzzlehttp/promises/src/Coroutine.php | 151 - .../guzzlehttp/promises/src/Create.php | 75 - .../guzzlehttp/promises/src/Each.php | 66 - .../guzzlehttp/promises/src/EachPromise.php | 207 - .../promises/src/FulfilledPromise.php | 69 - .../guzzlehttp/promises/src/Is.php | 43 - .../guzzlehttp/promises/src/Promise.php | 237 - .../promises/src/PromiseInterface.php | 87 - .../promises/src/PromisorInterface.php | 16 - .../promises/src/RejectedPromise.php | 75 - .../promises/src/RejectionException.php | 40 - .../guzzlehttp/promises/src/TaskQueue.php | 62 - .../promises/src/TaskQueueInterface.php | 22 - .../guzzlehttp/promises/src/Utils.php | 237 - .../guzzlehttp/promises/src/functions.php | 334 -- .../promises/src/functions_include.php | 8 - .../vendor_prefixed/guzzlehttp/psr7/LICENSE | 19 - .../guzzlehttp/psr7/src/AppendStream.php | 203 - .../guzzlehttp/psr7/src/BufferStream.php | 116 - .../guzzlehttp/psr7/src/CachingStream.php | 115 - .../guzzlehttp/psr7/src/DroppingStream.php | 36 - .../guzzlehttp/psr7/src/FnStream.php | 133 - .../guzzlehttp/psr7/src/Header.php | 66 - .../guzzlehttp/psr7/src/InflateStream.php | 48 - .../guzzlehttp/psr7/src/LazyOpenStream.php | 35 - .../guzzlehttp/psr7/src/LimitStream.php | 128 - .../guzzlehttp/psr7/src/Message.php | 197 - .../guzzlehttp/psr7/src/MessageTrait.php | 171 - .../guzzlehttp/psr7/src/MimeType.php | 33 - .../guzzlehttp/psr7/src/MultipartStream.php | 123 - .../guzzlehttp/psr7/src/NoSeekStream.php | 20 - .../guzzlehttp/psr7/src/PumpStream.php | 141 - .../guzzlehttp/psr7/src/Query.php | 104 - .../guzzlehttp/psr7/src/Request.php | 120 - .../guzzlehttp/psr7/src/Response.php | 76 - .../guzzlehttp/psr7/src/Rfc7230.php | 18 - .../guzzlehttp/psr7/src/ServerRequest.php | 304 - .../guzzlehttp/psr7/src/Stream.php | 223 - .../psr7/src/StreamDecoratorTrait.php | 129 - .../guzzlehttp/psr7/src/StreamWrapper.php | 103 - .../guzzlehttp/psr7/src/UploadedFile.php | 252 - .../guzzlehttp/psr7/src/Uri.php | 598 -- .../guzzlehttp/psr7/src/UriNormalizer.php | 179 - .../guzzlehttp/psr7/src/UriResolver.php | 190 - .../guzzlehttp/psr7/src/Utils.php | 334 -- .../guzzlehttp/psr7/src/functions.php | 395 -- .../guzzlehttp/psr7/src/functions_include.php | 8 - .../vendor_prefixed/monolog/monolog/LICENSE | 19 - .../monolog/src/Monolog/ErrorHandler.php | 189 - .../Monolog/Formatter/ChromePHPFormatter.php | 56 - .../Monolog/Formatter/ElasticaFormatter.php | 78 - .../Monolog/Formatter/FlowdockFormatter.php | 84 - .../Monolog/Formatter/FluentdFormatter.php | 73 - .../Monolog/Formatter/FormatterInterface.php | 34 - .../Formatter/GelfMessageFormatter.php | 105 - .../src/Monolog/Formatter/HtmlFormatter.php | 119 - .../src/Monolog/Formatter/JsonFormatter.php | 179 - .../src/Monolog/Formatter/LineFormatter.php | 150 - .../src/Monolog/Formatter/LogglyFormatter.php | 44 - .../Monolog/Formatter/LogstashFormatter.php | 143 - .../Monolog/Formatter/MongoDBFormatter.php | 88 - .../Monolog/Formatter/NormalizerFormatter.php | 146 - .../src/Monolog/Formatter/ScalarFormatter.php | 43 - .../Monolog/Formatter/WildfireFormatter.php | 81 - .../src/Monolog/Handler/AbstractHandler.php | 172 - .../Handler/AbstractProcessingHandler.php | 59 - .../Monolog/Handler/AbstractSyslogHandler.php | 79 - .../src/Monolog/Handler/AmqpHandler.php | 109 - .../Monolog/Handler/BrowserConsoleHandler.php | 204 - .../src/Monolog/Handler/BufferHandler.php | 128 - .../src/Monolog/Handler/ChromePHPHandler.php | 171 - .../src/Monolog/Handler/CouchDBHandler.php | 50 - .../src/Monolog/Handler/CubeHandler.php | 123 - .../monolog/src/Monolog/Handler/Curl/Util.php | 42 - .../Monolog/Handler/DeduplicationHandler.php | 140 - .../Handler/DoctrineCouchDBHandler.php | 40 - .../src/Monolog/Handler/DynamoDbHandler.php | 91 - .../Monolog/Handler/ElasticSearchHandler.php | 117 - .../src/Monolog/Handler/ErrorLogHandler.php | 70 - .../src/Monolog/Handler/FilterHandler.php | 152 - .../ActivationStrategyInterface.php | 27 - .../ChannelLevelActivationStrategy.php | 54 - .../ErrorLevelActivationStrategy.php | 30 - .../Monolog/Handler/FingersCrossedHandler.php | 183 - .../src/Monolog/Handler/FirePHPHandler.php | 163 - .../src/Monolog/Handler/FleepHookHandler.php | 109 - .../src/Monolog/Handler/FlowdockHandler.php | 114 - .../Handler/FormattableHandlerInterface.php | 37 - .../Handler/FormattableHandlerTrait.php | 57 - .../src/Monolog/Handler/GelfHandler.php | 58 - .../src/Monolog/Handler/GroupHandler.php | 102 - .../src/Monolog/Handler/HandlerInterface.php | 82 - .../src/Monolog/Handler/HandlerWrapper.php | 103 - .../src/Monolog/Handler/HipChatHandler.php | 300 - .../src/Monolog/Handler/IFTTTHandler.php | 57 - .../src/Monolog/Handler/InsightOpsHandler.php | 54 - .../src/Monolog/Handler/LogEntriesHandler.php | 50 - .../src/Monolog/Handler/LogglyHandler.php | 82 - .../src/Monolog/Handler/MailHandler.php | 60 - .../src/Monolog/Handler/MandrillHandler.php | 56 - .../Handler/MissingExtensionException.php | 20 - .../src/Monolog/Handler/MongoDBHandler.php | 52 - .../Monolog/Handler/NativeMailerHandler.php | 161 - .../src/Monolog/Handler/NewRelicHandler.php | 179 - .../src/Monolog/Handler/NullHandler.php | 41 - .../src/Monolog/Handler/PHPConsoleHandler.php | 234 - .../Handler/ProcessableHandlerInterface.php | 38 - .../Handler/ProcessableHandlerTrait.php | 65 - .../src/Monolog/Handler/PsrHandler.php | 49 - .../src/Monolog/Handler/PushoverHandler.php | 135 - .../src/Monolog/Handler/RavenHandler.php | 197 - .../src/Monolog/Handler/RedisHandler.php | 87 - .../src/Monolog/Handler/RollbarHandler.php | 107 - .../Monolog/Handler/RotatingFileHandler.php | 151 - .../src/Monolog/Handler/SamplingHandler.php | 99 - .../src/Monolog/Handler/Slack/SlackRecord.php | 239 - .../src/Monolog/Handler/SlackHandler.php | 178 - .../Monolog/Handler/SlackWebhookHandler.php | 90 - .../src/Monolog/Handler/SlackbotHandler.php | 70 - .../src/Monolog/Handler/SocketHandler.php | 344 -- .../src/Monolog/Handler/StreamHandler.php | 160 - .../Monolog/Handler/SwiftMailerHandler.php | 97 - .../src/Monolog/Handler/SyslogHandler.php | 61 - .../Monolog/Handler/SyslogUdp/UdpSocket.php | 48 - .../src/Monolog/Handler/SyslogUdpHandler.php | 94 - .../src/Monolog/Handler/TestHandler.php | 159 - .../Handler/WhatFailureGroupHandler.php | 67 - .../Monolog/Handler/ZendMonitorHandler.php | 79 - .../monolog/monolog/src/Monolog/Logger.php | 692 --- .../src/Monolog/Processor/GitProcessor.php | 52 - .../Processor/IntrospectionProcessor.php | 84 - .../Processor/MemoryPeakUsageProcessor.php | 32 - .../src/Monolog/Processor/MemoryProcessor.php | 56 - .../Processor/MemoryUsageProcessor.php | 32 - .../Monolog/Processor/MercurialProcessor.php | 51 - .../Monolog/Processor/ProcessIdProcessor.php | 29 - .../Monolog/Processor/ProcessorInterface.php | 24 - .../Processor/PsrLogMessageProcessor.php | 45 - .../src/Monolog/Processor/TagProcessor.php | 38 - .../src/Monolog/Processor/UidProcessor.php | 49 - .../src/Monolog/Processor/WebProcessor.php | 95 - .../monolog/monolog/src/Monolog/Registry.php | 122 - .../src/Monolog/ResettableInterface.php | 30 - .../monolog/src/Monolog/SignalHandler.php | 100 - .../monolog/monolog/src/Monolog/Utils.php | 162 - .../phpseclib/phpseclib/LICENSE | 20 - .../phpseclib/phpseclib/Crypt/AES.php | 122 - .../phpseclib/phpseclib/Crypt/RSA.php | 2713 --------- .../phpseclib/phpseclib/Crypt/Random.php | 259 - .../phpseclib/phpseclib/Crypt/Rijndael.php | 983 --- .../phpseclib/phpseclib/Math/BigInteger.php | 3247 ---------- .../phpseclib/phpseclib/bootstrap.php | 15 - .../psr/cache/src/CacheException.php | 10 - .../psr/cache/src/CacheItemInterface.php | 100 - .../psr/cache/src/CacheItemPoolInterface.php | 129 - .../cache/src/InvalidArgumentException.php | 13 - .../vendor_prefixed/psr/http-message/LICENSE | 19 - .../psr/http-message/src/MessageInterface.php | 177 - .../psr/http-message/src/RequestInterface.php | 124 - .../http-message/src/ResponseInterface.php | 66 - .../src/ServerRequestInterface.php | 249 - .../psr/http-message/src/StreamInterface.php | 144 - .../src/UploadedFileInterface.php | 118 - .../psr/http-message/src/UriInterface.php | 309 - .../vendor_prefixed/psr/log/LICENSE | 19 - .../psr/log/Psr/Log/AbstractLogger.php | 121 - .../log/Psr/Log/InvalidArgumentException.php | 7 - .../psr/log/Psr/Log/LogLevel.php | 18 - .../psr/log/Psr/Log/LoggerAwareInterface.php | 18 - .../psr/log/Psr/Log/LoggerAwareTrait.php | 25 - .../psr/log/Psr/Log/LoggerInterface.php | 117 - .../psr/log/Psr/Log/LoggerTrait.php | 134 - .../psr/log/Psr/Log/NullLogger.php | 30 - .../api-v3-sdk/lib/Api/AccountApi.php | 272 - .../api-v3-sdk/lib/Api/AttributesApi.php | 847 --- .../api-v3-sdk/lib/Api/ContactsApi.php | 5339 ----------------- .../api-v3-sdk/lib/Api/EmailCampaignsApi.php | 2576 -------- .../api-v3-sdk/lib/Api/FoldersApi.php | 1268 ---- .../api-v3-sdk/lib/Api/ListsApi.php | 1905 ------ .../api-v3-sdk/lib/Api/ProcessApi.php | 494 -- .../api-v3-sdk/lib/Api/ResellerApi.php | 3217 ---------- .../api-v3-sdk/lib/Api/SMSCampaignsApi.php | 2002 ------ .../sendinblue/api-v3-sdk/lib/Api/SMTPApi.php | 3515 ----------- .../api-v3-sdk/lib/Api/SendersApi.php | 1207 ---- .../lib/Api/TransactionalSMSApi.php | 979 --- .../api-v3-sdk/lib/Api/WebhooksApi.php | 1030 ---- .../api-v3-sdk/lib/ApiException.php | 110 - .../api-v3-sdk/lib/Configuration.php | 386 -- .../api-v3-sdk/lib/HeaderSelector.php | 99 - .../lib/Model/AbTestCampaignResult.php | 405 -- .../api-v3-sdk/lib/Model/AddChildDomain.php | 254 - .../api-v3-sdk/lib/Model/AddContactToList.php | 254 - .../api-v3-sdk/lib/Model/AddCredits.php | 276 - .../api-v3-sdk/lib/Model/CreateAttribute.php | 321 - .../lib/Model/CreateAttributeEnumeration.php | 282 - .../api-v3-sdk/lib/Model/CreateChild.php | 402 -- .../api-v3-sdk/lib/Model/CreateContact.php | 386 -- .../api-v3-sdk/lib/Model/CreateDoiContact.php | 373 -- .../lib/Model/CreateEmailCampaign.php | 909 --- .../Model/CreateEmailCampaignRecipients.php | 277 - .../lib/Model/CreateEmailCampaignSender.php | 302 - .../api-v3-sdk/lib/Model/CreateList.php | 282 - .../api-v3-sdk/lib/Model/CreateModel.php | 257 - .../api-v3-sdk/lib/Model/CreateReseller.php | 279 - .../api-v3-sdk/lib/Model/CreateSender.php | 304 - .../api-v3-sdk/lib/Model/CreateSenderIps.php | 316 - .../lib/Model/CreateSenderModel.php | 301 - .../lib/Model/CreateSmsCampaign.php | 357 -- .../lib/Model/CreateSmsCampaignRecipients.php | 279 - .../api-v3-sdk/lib/Model/CreateSmtpEmail.php | 257 - .../lib/Model/CreateSmtpTemplate.php | 461 -- .../lib/Model/CreateSmtpTemplateSender.php | 302 - .../lib/Model/CreateUpdateContactModel.php | 254 - .../lib/Model/CreateUpdateFolder.php | 254 - .../api-v3-sdk/lib/Model/CreateWebhook.php | 374 -- .../api-v3-sdk/lib/Model/CreatedProcessId.php | 257 - .../lib/Model/DeleteHardbounces.php | 298 - .../lib/Model/EmailExportRecipients.php | 304 - .../api-v3-sdk/lib/Model/ErrorModel.php | 314 - .../api-v3-sdk/lib/Model/GetAccount.php | 429 -- .../Model/GetAccountMarketingAutomation.php | 279 - .../api-v3-sdk/lib/Model/GetAccountPlan.php | 413 -- .../api-v3-sdk/lib/Model/GetAccountRelay.php | 283 - .../lib/Model/GetAccountRelayData.php | 308 - .../lib/Model/GetAggregatedReport.php | 557 -- .../api-v3-sdk/lib/Model/GetAttributes.php | 257 - .../lib/Model/GetAttributesAttributes.php | 392 -- .../lib/Model/GetAttributesEnumeration.php | 282 - .../lib/Model/GetCampaignOverview.php | 572 -- .../lib/Model/GetCampaignRecipients.php | 282 - .../api-v3-sdk/lib/Model/GetCampaignStats.php | 526 -- .../Model/GetChildAccountCreationStatus.php | 257 - .../api-v3-sdk/lib/Model/GetChildDomain.php | 282 - .../api-v3-sdk/lib/Model/GetChildDomains.php | 232 - .../api-v3-sdk/lib/Model/GetChildInfo.php | 445 -- .../lib/Model/GetChildInfoApiKeys.php | 280 - .../lib/Model/GetChildInfoApiKeysV2.php | 282 - .../lib/Model/GetChildInfoApiKeysV3.php | 282 - .../lib/Model/GetChildInfoCredits.php | 277 - .../lib/Model/GetChildInfoStatistics.php | 299 - .../api-v3-sdk/lib/Model/GetChildrenList.php | 279 - .../api-v3-sdk/lib/Model/GetClient.php | 332 - .../lib/Model/GetContactCampaignStats.php | 409 -- .../Model/GetContactCampaignStatsClicked.php | 282 - .../Model/GetContactCampaignStatsOpened.php | 332 - ...tContactCampaignStatsTransacAttributes.php | 307 - ...GetContactCampaignStatsUnsubscriptions.php | 282 - .../lib/Model/GetContactDetails.php | 454 -- .../api-v3-sdk/lib/Model/GetContacts.php | 282 - .../lib/Model/GetDeviceBrowserStats.php | 332 - .../api-v3-sdk/lib/Model/GetEmailCampaign.php | 1004 ---- .../lib/Model/GetEmailCampaigns.php | 279 - .../lib/Model/GetEmailEventReport.php | 254 - .../lib/Model/GetEmailEventReportEvents.php | 493 -- .../lib/Model/GetExtendedCampaignOverview.php | 954 --- .../GetExtendedCampaignOverviewSender.php | 298 - .../lib/Model/GetExtendedCampaignStats.php | 432 -- .../lib/Model/GetExtendedClient.php | 357 -- .../lib/Model/GetExtendedClientAddress.php | 333 - .../lib/Model/GetExtendedContactDetails.php | 479 -- .../GetExtendedContactDetailsStatistics.php | 409 -- ...xtendedContactDetailsStatisticsClicked.php | 282 - ...tExtendedContactDetailsStatisticsLinks.php | 332 - ...edContactDetailsStatisticsMessagesSent.php | 282 - ...ExtendedContactDetailsStatisticsOpened.php | 332 - ...ontactDetailsStatisticsUnsubscriptions.php | 283 - ...ticsUnsubscriptionsAdminUnsubscription.php | 282 - ...sticsUnsubscriptionsUserUnsubscription.php | 307 - .../api-v3-sdk/lib/Model/GetExtendedList.php | 426 -- .../Model/GetExtendedListCampaignStats.php | 282 - .../api-v3-sdk/lib/Model/GetFolder.php | 357 -- .../api-v3-sdk/lib/Model/GetFolderLists.php | 282 - .../api-v3-sdk/lib/Model/GetFolders.php | 276 - .../sendinblue/api-v3-sdk/lib/Model/GetIp.php | 332 - .../api-v3-sdk/lib/Model/GetIpFromSender.php | 332 - .../api-v3-sdk/lib/Model/GetIps.php | 257 - .../api-v3-sdk/lib/Model/GetIpsFromSender.php | 257 - .../api-v3-sdk/lib/Model/GetList.php | 332 - .../api-v3-sdk/lib/Model/GetLists.php | 282 - .../api-v3-sdk/lib/Model/GetProcess.php | 349 -- .../api-v3-sdk/lib/Model/GetProcesses.php | 279 - .../api-v3-sdk/lib/Model/GetReports.php | 254 - .../lib/Model/GetReportsReports.php | 557 -- .../api-v3-sdk/lib/Model/GetSendersList.php | 254 - .../lib/Model/GetSendersListIps.php | 307 - .../lib/Model/GetSendersListSenders.php | 354 -- .../lib/Model/GetSharedTemplateUrl.php | 257 - .../api-v3-sdk/lib/Model/GetSmsCampaign.php | 505 -- .../lib/Model/GetSmsCampaignOverview.php | 455 -- .../lib/Model/GetSmsCampaignStats.php | 407 -- .../api-v3-sdk/lib/Model/GetSmsCampaigns.php | 279 - .../lib/Model/GetSmsEventReport.php | 254 - .../lib/Model/GetSmsEventReportEvents.php | 424 -- .../lib/Model/GetSmtpTemplateOverview.php | 554 -- .../Model/GetSmtpTemplateOverviewSender.php | 298 - .../api-v3-sdk/lib/Model/GetSmtpTemplates.php | 276 - .../api-v3-sdk/lib/Model/GetSsoToken.php | 257 - .../lib/Model/GetStatsByBrowser.php | 232 - .../api-v3-sdk/lib/Model/GetStatsByDevice.php | 320 - .../api-v3-sdk/lib/Model/GetStatsByDomain.php | 232 - .../Model/GetTransacAggregatedSmsReport.php | 482 -- .../lib/Model/GetTransacBlockedContacts.php | 276 - .../GetTransacBlockedContactsContacts.php | 332 - .../Model/GetTransacBlockedContactsReason.php | 300 - .../lib/Model/GetTransacEmailContent.php | 404 -- .../Model/GetTransacEmailContentEvents.php | 282 - .../lib/Model/GetTransacEmailsList.php | 254 - ...etTransacEmailsListTransactionalEmails.php | 423 -- .../lib/Model/GetTransacSmsReport.php | 254 - .../lib/Model/GetTransacSmsReportReports.php | 482 -- .../api-v3-sdk/lib/Model/GetWebhook.php | 426 -- .../api-v3-sdk/lib/Model/GetWebhooks.php | 257 - .../api-v3-sdk/lib/Model/ManageIp.php | 254 - .../api-v3-sdk/lib/Model/ModelInterface.php | 87 - .../api-v3-sdk/lib/Model/PostContactInfo.php | 257 - .../lib/Model/PostContactInfoContacts.php | 320 - .../api-v3-sdk/lib/Model/PostSendFailed.php | 348 -- .../lib/Model/PostSendSmsTestFailed.php | 326 - .../lib/Model/RemainingCreditModel.php | 282 - .../lib/Model/RemainingCreditModelChild.php | 283 - .../Model/RemainingCreditModelReseller.php | 282 - .../lib/Model/RemoveContactFromList.php | 276 - .../api-v3-sdk/lib/Model/RemoveCredits.php | 276 - .../lib/Model/RequestContactExport.php | 320 - ...equestContactExportCustomContactFilter.php | 430 -- .../lib/Model/RequestContactImport.php | 430 -- .../lib/Model/RequestContactImportNewList.php | 277 - .../lib/Model/RequestSMSRecipientExport.php | 302 - .../api-v3-sdk/lib/Model/SendEmail.php | 433 -- .../lib/Model/SendEmailAttachment.php | 288 - .../api-v3-sdk/lib/Model/SendReport.php | 302 - .../api-v3-sdk/lib/Model/SendReportEmail.php | 393 -- .../api-v3-sdk/lib/Model/SendSms.php | 348 -- .../api-v3-sdk/lib/Model/SendSmtpEmail.php | 521 -- .../lib/Model/SendSmtpEmailAttachment.php | 304 - .../api-v3-sdk/lib/Model/SendSmtpEmailBcc.php | 279 - .../api-v3-sdk/lib/Model/SendSmtpEmailCc.php | 279 - .../lib/Model/SendSmtpEmailReplyTo.php | 280 - .../lib/Model/SendSmtpEmailSender.php | 280 - .../api-v3-sdk/lib/Model/SendSmtpEmailTo.php | 279 - .../lib/Model/SendTemplateEmail.php | 257 - .../api-v3-sdk/lib/Model/SendTestEmail.php | 254 - .../api-v3-sdk/lib/Model/SendTestSms.php | 254 - .../api-v3-sdk/lib/Model/SendTransacSms.php | 398 -- .../api-v3-sdk/lib/Model/UpdateAttribute.php | 276 - .../lib/Model/UpdateAttributeEnumeration.php | 282 - .../lib/Model/UpdateCampaignStatus.php | 280 - .../api-v3-sdk/lib/Model/UpdateChild.php | 342 -- .../lib/Model/UpdateChildAccountStatus.php | 320 - .../lib/Model/UpdateChildDomain.php | 254 - .../api-v3-sdk/lib/Model/UpdateContact.php | 364 -- .../lib/Model/UpdateEmailCampaign.php | 903 --- .../Model/UpdateEmailCampaignRecipients.php | 277 - .../lib/Model/UpdateEmailCampaignSender.php | 299 - .../api-v3-sdk/lib/Model/UpdateList.php | 276 - .../api-v3-sdk/lib/Model/UpdateSender.php | 298 - .../lib/Model/UpdateSmsCampaign.php | 348 -- .../lib/Model/UpdateSmtpTemplate.php | 452 -- .../lib/Model/UpdateSmtpTemplateSender.php | 299 - .../api-v3-sdk/lib/Model/UpdateWebhook.php | 326 - .../lib/Model/UploadImageToGallery.php | 279 - .../api-v3-sdk/lib/ObjectSerializer.php | 302 - .../symfony/polyfill-intl-idn/Idn.php | 216 - .../symfony/polyfill-intl-idn/LICENSE | 19 - .../symfony/polyfill-intl-idn/bootstrap.php | 141 - .../symfony/polyfill-mbstring/LICENSE | 19 - .../symfony/polyfill-mbstring/Mbstring.php | 678 --- .../Resources/unidata/lowerCase.php | 5 - .../Resources/unidata/titleCaseRegexp.php | 6 - .../Resources/unidata/upperCase.php | 5 - .../symfony/polyfill-mbstring/bootstrap.php | 145 - .../symfony/polyfill-php72/LICENSE | 19 - .../symfony/polyfill-php72/Php72.php | 176 - .../symfony/polyfill-php72/bootstrap.php | 57 - .../plugins/wp-mail-smtp/wp-mail-smtp.php | 83 - .../plugins/wp-mail-smtp/wp_mail_smtp.php | 229 - 860 files changed, 199188 deletions(-) delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/css/admin-bar.min.css delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/css/admin-notifications.min.css delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/css/smtp-about.min.css delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/css/smtp-admin.min.css delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/about/icon-full.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/about/icon-none.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/about/icon-partial.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/about/plugin-mi.png delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/about/plugin-om.png delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/about/plugin-rp.png delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/about/plugin-wpf.png delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/about/team.jpg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/email/icon-check.png delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/email/signature.png delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/email/wp-mail-smtp-whitelabel.png delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/email/wp-mail-smtp.png delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/check-circle-solid-green.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/exclamation-circle-regular-red.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/exclamation-circle-solid-orange.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/exclamation-circle-solid-red.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/loaders/loading-blue.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/loaders/loading-white.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/loaders/loading.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/logo-whitelabel.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/logo.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/logs/archive.png delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/logs/single.png delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/menu-icon.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/pro-badge.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/providers/aws.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/providers/google.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/providers/mailgun.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/providers/microsoft.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/providers/pepipost-smtp.png delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/providers/pepipost.png delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/providers/php.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/providers/sendgrid.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/providers/sendinblue.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/providers/smtp-com.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/providers/smtp.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/providers/zoho.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/recommended.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/js/smtp-about.js delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/js/smtp-about.min.js delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/js/smtp-admin.js delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/js/smtp-admin.min.js delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/js/smtp-notifications.js delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/js/smtp-notifications.min.js delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/js/vendor/jquery.matchHeight.js delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/js/vendor/jquery.matchHeight.min.js delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/languages/wp-mail-smtp.pot delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/libs/jquery-confirm.min.css delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/libs/jquery-confirm.min.js delete mode 100644 wp-content/plugins/wp-mail-smtp/readme.txt delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/AdminBarMenu.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/Area.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/Education.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/Notifications.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/PageAbstract.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/PageInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/Pages/About.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/Pages/AuthTab.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/Pages/ControlTab.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/Pages/Logs.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/Pages/LogsTab.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/Pages/MiscTab.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/Pages/SettingsTab.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/Pages/TestTab.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/PluginsInstallSkin.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/PluginsInstallUpgrader.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Admin/Review.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Conflicts.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Core.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Debug.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Geo.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Helpers/Crypto.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/MailCatcher.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/MailCatcherInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/MailCatcherV6.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Migration.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Options.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Processor.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/AmazonSES/Options.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/AuthAbstract.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/AuthInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Gmail/Auth.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Gmail/Mailer.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Gmail/Options.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Loader.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Mail/Mailer.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Mail/Options.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/MailerAbstract.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/MailerInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Mailgun/Mailer.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Mailgun/Options.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/OptionsAbstract.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/OptionsInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Outlook/Options.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Pepipost/Mailer.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Pepipost/Options.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/PepipostAPI/Mailer.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/PepipostAPI/Options.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/SMTP/Mailer.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/SMTP/Options.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/SMTPcom/Mailer.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/SMTPcom/Options.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Sendgrid/Mailer.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Sendgrid/Options.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Sendinblue/Api.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Sendinblue/Mailer.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Sendinblue/Options.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/Zoho/Options.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/SiteHealth.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Tasks/Meta.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Tasks/Task.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Tasks/Tasks.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/Upgrade.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/UsageTracking/SendUsageTask.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/UsageTracking/UsageTracking.php delete mode 100644 wp-content/plugins/wp-mail-smtp/src/WP.php delete mode 100644 wp-content/plugins/wp-mail-smtp/uninstall.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/autoload.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/composer/ClassLoader.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_classmap.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_files.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_namespaces.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_psr4.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_real.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_static.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/byte_safe_strings.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/cast_to_int.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/error_polyfill.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_int.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/phpunit-autoload.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/autoload-fast.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/autoload-pedantic.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/autoload-php7.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/autoload-phpunit.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/autoload.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/lib/constants.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/lib/namespaced.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/lib/php72compat.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/lib/php72compat_const.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/lib/sodium_compat.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Compat.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/BLAKE2b.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/ChaCha20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/ChaCha20/Ctx.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/ChaCha20/IetfCtx.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/Curve25519.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/Curve25519/Fe.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/Curve25519/Ge/Cached.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/Curve25519/Ge/P1p1.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/Curve25519/Ge/P2.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/Curve25519/Ge/P3.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/Curve25519/Ge/Precomp.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/Curve25519/H.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/Ed25519.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/HChaCha20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/HSalsa20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/Poly1305.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/Poly1305/State.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/Salsa20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/SipHash.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/Util.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/X25519.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/XChaCha20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Core/Xsalsa20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/Crypto.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/namespaced/File.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Compat.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/BLAKE2b.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Base64/Common.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Base64/Original.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Base64/UrlSafe.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/ChaCha20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/ChaCha20/Ctx.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/ChaCha20/IetfCtx.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Fe.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/Cached.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/P1p1.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/P2.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/P3.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/Precomp.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/H.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Ed25519.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/HChaCha20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/HSalsa20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Poly1305.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Poly1305/State.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Salsa20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/SecretStream/State.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/SipHash.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Util.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/X25519.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/XChaCha20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/XSalsa20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/BLAKE2b.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/ChaCha20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/ChaCha20/Ctx.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/ChaCha20/IetfCtx.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Fe.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/Cached.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/P1p1.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/P2.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/P3.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/Precomp.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/H.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Ed25519.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/HChaCha20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/HSalsa20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Int32.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Int64.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Poly1305.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Poly1305/State.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Salsa20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/SecretStream/State.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/SipHash.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Util.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/X25519.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/XChaCha20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/XSalsa20.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Crypto.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Crypto32.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/File.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/PHP52/SplFixedArray.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/SodiumException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/ralouphie/getallheaders/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/ralouphie/getallheaders/src/getallheaders.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/action-scheduler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionClaim.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionFactory.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AdminView.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AsyncRequest_QueueRunner.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Compatibility.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DataController.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Exception.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_FatalErrorMonitor.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_InvalidActionException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ListTable.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_LogEntry.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_NullLogEntry.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_OptionLock.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueCleaner.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueRunner.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Versions.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_wcSystemStatus.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_QueueRunner.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_Scheduler_command.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/WP_CLI/Migration_Command.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/WP_CLI/ProgressBar.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_ListTable.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_QueueRunner.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_RecurringSchedule.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schedule.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schema.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Lock.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Logger.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Store.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_TimezoneHelper.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_Action.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_CanceledAction.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_FinishedAction.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_NullAction.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBLogger.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_HybridStore.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_PostStatusRegistrar.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_PostTypeRegistrar.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_TaxonomyRegistrar.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/ActionMigrator.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/ActionScheduler_DBStoreMigrator.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/BatchFetcher.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Config.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Controller.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/DryRun_ActionMigrator.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/DryRun_LogMigrator.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/LogMigrator.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Runner.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Scheduler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_CanceledSchedule.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_CronSchedule.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_IntervalSchedule.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_NullSchedule.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_Schedule.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_SimpleSchedule.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_LoggerSchema.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_StoreSchema.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Abstract_QueueRunner_Deprecated.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_AdminView_Deprecated.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Schedule_Deprecated.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Store_Deprecated.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/deprecated/functions.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/functions.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/WP_Async_Request.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_AbstractField.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_DayOfMonthField.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_DayOfWeekField.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_FieldFactory.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_FieldInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_HoursField.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_MinutesField.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_MonthField.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_YearField.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/license.txt delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/AutoForwarding.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/BatchDeleteMessagesRequest.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/BatchModifyMessagesRequest.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Delegate.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Draft.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Filter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/FilterAction.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/FilterCriteria.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ForwardingAddress.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/History.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryLabelAdded.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryLabelRemoved.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryMessageAdded.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryMessageDeleted.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ImapSettings.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Label.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/LabelColor.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/LanguageSettings.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListDelegatesResponse.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListDraftsResponse.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListFiltersResponse.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListForwardingAddressesResponse.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListHistoryResponse.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListLabelsResponse.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListMessagesResponse.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListSendAsResponse.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListSmimeInfoResponse.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListThreadsResponse.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Message.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePart.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePartBody.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePartHeader.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ModifyMessageRequest.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ModifyThreadRequest.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/PopSettings.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Profile.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/Users.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersDrafts.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersHistory.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersLabels.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessages.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessagesAttachments.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettings.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsDelegates.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsFilters.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsForwardingAddresses.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAs.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAsSmimeInfo.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersThreads.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SendAs.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SmimeInfo.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SmtpMsa.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Thread.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/VacationSettings.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/WatchRequest.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/WatchResponse.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AccessToken/Revoke.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AccessToken/Verify.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AuthHandler/AuthHandlerFactory.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AuthHandler/Guzzle5AuthHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AuthHandler/Guzzle6AuthHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AuthHandler/Guzzle7AuthHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Client.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Collection.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Exception.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Http/Batch.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Http/MediaFileUpload.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Http/REST.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Model.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Service.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Service/Exception.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Service/Resource.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Task/Composer.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Task/Exception.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Task/Retryable.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Task/Runner.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Utils/UriTemplate.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/autoload.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/autoload.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/AccessToken.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/ApplicationDefaultCredentials.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Cache/InvalidArgumentException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Cache/Item.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Cache/MemoryCacheItemPool.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Cache/SysVCacheItemPool.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/CacheTrait.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/AppIdentityCredentials.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/GCECredentials.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/IAMCredentials.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/InsecureCredentials.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/ServiceAccountCredentials.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/UserRefreshCredentials.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/CredentialsLoader.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/FetchAuthTokenCache.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/FetchAuthTokenInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/GCECache.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/GetQuotaProjectInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/HttpHandler/Guzzle5HttpHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/HttpHandler/Guzzle6HttpHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/HttpHandler/Guzzle7HttpHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/HttpHandler/HttpClientCache.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/HttpHandler/HttpHandlerFactory.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Iam.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Middleware/AuthTokenMiddleware.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Middleware/ScopedAccessTokenMiddleware.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Middleware/SimpleMiddleware.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/OAuth2.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/ProjectIdProviderInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/ServiceAccountSignerTrait.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/SignBlobInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Subscriber/AuthTokenSubscriber.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Subscriber/ScopedAccessTokenSubscriber.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Subscriber/SimpleSubscriber.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/UpdateMetadataInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Client.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/ClientInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJar.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SetCookie.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/BadResponseException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ClientException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ConnectException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/GuzzleException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/RequestException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/SeekException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ServerException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/TransferException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactory.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/EasyHandle.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/MockHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/Proxy.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/StreamHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/HandlerStack.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/MessageFormatter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Middleware.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Pool.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/RedirectMiddleware.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/RequestOptions.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/RetryMiddleware.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/TransferStats.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/UriTemplate.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Utils.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/functions.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/functions_include.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/AggregateException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/CancellationException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Coroutine.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Create.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Each.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/EachPromise.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/FulfilledPromise.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Is.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Promise.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/PromiseInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/PromisorInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/RejectedPromise.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/RejectionException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/TaskQueue.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/TaskQueueInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Utils.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/functions.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/functions_include.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/AppendStream.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/BufferStream.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/CachingStream.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/DroppingStream.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/FnStream.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Header.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/InflateStream.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/LazyOpenStream.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/LimitStream.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Message.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/MessageTrait.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/MimeType.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/MultipartStream.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/NoSeekStream.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/PumpStream.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Query.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Request.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Response.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Rfc7230.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/ServerRequest.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Stream.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/StreamDecoratorTrait.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/StreamWrapper.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/UploadedFile.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Uri.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/UriNormalizer.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/UriResolver.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Utils.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/functions.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/functions_include.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/ErrorHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LineFormatter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AmqpHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BufferHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CubeHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Curl/Util.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FilterHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GelfHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GroupHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HipChatHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogglyHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MailHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MandrillHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NullHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PsrHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PushoverHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RavenHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RedisHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RollbarHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SamplingHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SocketHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/StreamHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/TestHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Logger.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/GitProcessor.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/TagProcessor.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/UidProcessor.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/WebProcessor.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Registry.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/ResettableInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/SignalHandler.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Utils.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/AES.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Random.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/bootstrap.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/cache/src/CacheException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/cache/src/CacheItemInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/cache/src/CacheItemPoolInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/cache/src/InvalidArgumentException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/http-message/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/http-message/src/MessageInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/http-message/src/RequestInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/http-message/src/ResponseInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/http-message/src/ServerRequestInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/http-message/src/StreamInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/http-message/src/UploadedFileInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/http-message/src/UriInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/AbstractLogger.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/InvalidArgumentException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/LogLevel.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/LoggerAwareInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/LoggerAwareTrait.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/LoggerInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/LoggerTrait.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/NullLogger.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/AccountApi.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/AttributesApi.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ContactsApi.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/EmailCampaignsApi.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/FoldersApi.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ListsApi.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ProcessApi.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ResellerApi.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SMSCampaignsApi.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SMTPApi.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SendersApi.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/TransactionalSMSApi.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/WebhooksApi.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/ApiException.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Configuration.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/HeaderSelector.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AbTestCampaignResult.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddChildDomain.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddContactToList.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddCredits.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateAttribute.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateAttributeEnumeration.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateChild.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateContact.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateDoiContact.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaign.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignRecipients.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignSender.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateList.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateModel.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateReseller.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSender.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSenderIps.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSenderModel.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaign.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaignRecipients.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpEmail.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplate.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplateSender.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateUpdateContactModel.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateUpdateFolder.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateWebhook.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreatedProcessId.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/DeleteHardbounces.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/EmailExportRecipients.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ErrorModel.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccount.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountMarketingAutomation.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountPlan.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountRelay.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountRelayData.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAggregatedReport.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributes.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributesAttributes.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributesEnumeration.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignOverview.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignRecipients.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignStats.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildAccountCreationStatus.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildDomain.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildDomains.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfo.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeys.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV2.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV3.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoCredits.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoStatistics.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildrenList.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetClient.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStats.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsClicked.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsOpened.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsTransacAttributes.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsUnsubscriptions.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactDetails.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContacts.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetDeviceBrowserStats.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaign.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaigns.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReport.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReportEvents.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverview.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverviewSender.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignStats.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedClient.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedClientAddress.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetails.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatistics.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsClicked.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsLinks.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsMessagesSent.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsOpened.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptions.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedList.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedListCampaignStats.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolder.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolderLists.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolders.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIp.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIpFromSender.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIps.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIpsFromSender.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetList.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetLists.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetProcess.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetProcesses.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetReports.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetReportsReports.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersList.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersListIps.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersListSenders.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSharedTemplateUrl.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaign.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignOverview.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignStats.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaigns.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReport.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReportEvents.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverview.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverviewSender.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplates.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSsoToken.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByBrowser.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByDevice.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByDomain.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacAggregatedSmsReport.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContacts.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsContacts.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsReason.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContent.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContentEvents.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsList.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsListTransactionalEmails.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReport.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReportReports.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetWebhook.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetWebhooks.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ManageIp.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ModelInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostContactInfo.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostContactInfoContacts.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostSendFailed.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostSendSmsTestFailed.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModel.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelChild.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelReseller.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemoveContactFromList.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemoveCredits.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactExport.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactExportCustomContactFilter.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactImport.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactImportNewList.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestSMSRecipientExport.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendEmail.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendEmailAttachment.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendReport.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendReportEmail.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSms.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmail.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailAttachment.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailBcc.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailCc.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailReplyTo.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailSender.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailTo.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTemplateEmail.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTestEmail.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTestSms.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTransacSms.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateAttribute.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateAttributeEnumeration.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateCampaignStatus.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChild.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChildAccountStatus.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChildDomain.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateContact.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaign.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignRecipients.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignSender.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateList.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSender.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmsCampaign.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplate.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplateSender.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateWebhook.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UploadImageToGallery.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/ObjectSerializer.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-intl-idn/Idn.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-intl-idn/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-intl-idn/bootstrap.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/Mbstring.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/Resources/unidata/upperCase.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/bootstrap.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-php72/LICENSE delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-php72/Php72.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-php72/bootstrap.php delete mode 100644 wp-content/plugins/wp-mail-smtp/wp-mail-smtp.php delete mode 100644 wp-content/plugins/wp-mail-smtp/wp_mail_smtp.php diff --git a/wp-content/plugins/wp-mail-smtp/assets/css/admin-bar.min.css b/wp-content/plugins/wp-mail-smtp/assets/css/admin-bar.min.css deleted file mode 100644 index 8dbf2af..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/css/admin-bar.min.css +++ /dev/null @@ -1 +0,0 @@ -#wpadminbar .wp-mail-smtp-admin-bar-menu-notification-counter,#wpadminbar .wp-mail-smtp-admin-bar-menu-error{display:inline-block !important;vertical-align:top !important;box-sizing:border-box !important;margin:7px 0 0 2px !important;padding:0 5px !important;min-width:18px !important;height:18px !important;border-radius:9px !important;background-color:#ca4a1f !important;color:#fff !important;font-size:11px !important;line-height:1.6 !important;text-align:center !important}#wpadminbar .wp-mail-smtp-admin-bar-menu-notification-counter span,#wpadminbar .wp-mail-smtp-admin-bar-menu-error span{line-height:1 !important;font-size:11px !important} diff --git a/wp-content/plugins/wp-mail-smtp/assets/css/admin-notifications.min.css b/wp-content/plugins/wp-mail-smtp/assets/css/admin-notifications.min.css deleted file mode 100644 index faf09fb..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/css/admin-notifications.min.css +++ /dev/null @@ -1 +0,0 @@ -#wp-mail-smtp-notifications{position:relative;background:#FFFFFF 0 0 no-repeat padding-box;box-shadow:0 5px 15px #0000000D;border-radius:6px;opacity:1;min-height:48px;padding:15px 102px 15px 72px;margin:0 0 14px 0}#wp-mail-smtp-notifications *{box-sizing:border-box}#wp-mail-smtp-notifications .bell{position:absolute;top:15px;left:15px;width:42px;height:48px}#wp-mail-smtp-notifications .messages .message{display:none}#wp-mail-smtp-notifications .messages .message.current{display:block}#wp-mail-smtp-notifications .messages .message .title{font-weight:bold;font-size:17px;line-height:20px;margin:0;color:#444}#wp-mail-smtp-notifications .messages .message .content{font-weight:normal;font-size:13px;line-height:20px;margin:6px 0 40px 0}#wp-mail-smtp-notifications .messages .message .buttons{margin:-30px 80px 0 0}#wp-mail-smtp-notifications .messages .message .buttons a{margin:0 6px 0 0;padding:8px 10px;line-height:13px;font-size:13px;min-height:unset}#wp-mail-smtp-notifications .messages .message .buttons .button-secondary{border:1px solid #0071A1}#wp-mail-smtp-notifications .dismiss{position:absolute;top:15px;right:15px;width:16px;height:16px;color:#72777C;font-size:16px;cursor:pointer;text-align:center;vertical-align:middle;line-height:16px}#wp-mail-smtp-notifications .dismiss:hover{color:#dc3232}#wp-mail-smtp-notifications .navigation{position:absolute;bottom:15px;right:15px;width:63px;height:30px}#wp-mail-smtp-notifications .navigation a{display:block;width:30px;height:30px;border:1px solid #7E8993;border-radius:3px;font-size:8px;text-align:center;vertical-align:middle;line-height:30px;cursor:pointer;background-color:#ffffff;color:#41454A}#wp-mail-smtp-notifications .navigation a:hover{background-color:#f1f1f1}#wp-mail-smtp-notifications .navigation a .dashicons{margin-top:8px;font-size:12px}#wp-mail-smtp-notifications .navigation .prev{float:left}#wp-mail-smtp-notifications .navigation .next{float:right}#wp-mail-smtp-notifications .navigation .disabled{border-color:#dddddd;color:#A0A5AA;cursor:default}#wp-mail-smtp-notifications .navigation .disabled:hover{background-color:#ffffff}@media screen and (max-width: 768px){#wp-mail-smtp-notifications{padding:15px 15px 15px 72px}#wp-mail-smtp-notifications .messages .message .title{margin:0 30px 0 0}#wp-mail-smtp-notifications .messages .message .content{font-size:16px;line-height:24px}#wp-mail-smtp-notifications .messages .message .buttons{margin:-30px 80px 0 0}#wp-mail-smtp-notifications .messages .message .buttons a{margin:0;display:table}#wp-mail-smtp-notifications .messages .message .buttons .button-secondary{margin-top:6px}} diff --git a/wp-content/plugins/wp-mail-smtp/assets/css/smtp-about.min.css b/wp-content/plugins/wp-mail-smtp/assets/css/smtp-about.min.css deleted file mode 100644 index b8936a1..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/css/smtp-about.min.css +++ /dev/null @@ -1 +0,0 @@ -.wp-mail-smtp-page-about{padding:0 !important}.wp-mail-smtp-page-about *,.wp-mail-smtp-page-about *::before,.wp-mail-smtp-page-about *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins{padding:0 10px}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container{margin-left:-20px;margin-right:-20px}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-container{padding:0 10px;float:left;width:33.333333%;margin-bottom:20px}@media (max-width: 1249px){.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-container{width:50%}}@media (max-width: 781px){.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-container{width:100%;margin-bottom:20px}}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container h5{font-size:17px;font-weight:700}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item{background-color:#fff;border:1px solid #ddd;border-radius:3px;margin:0}@media (max-width: 781px){.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item{margin:0 0}}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item img{border:1px solid #eee;float:left;max-width:75px;padding:10px}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item img[src*="-mi"]{padding:13px}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item h5{margin:0 0 10px 100px;font-size:16px}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item p{margin:0 0 0 100px}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .details{padding:20px}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .actions{background-color:#f7f7f7;border-top:1px solid #ddd;padding:20px;position:relative}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .actions .msg{background-color:#f7f7f7;position:absolute;text-align:center;font-weight:600;top:0;left:0;height:100%;width:100%;z-index:99;padding:20px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;-ms-align-items:center;align-items:center;justify-content:center}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .actions .msg.success{color:#2a9b39}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .actions .msg.error{color:red}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .status{float:left;padding-top:8px}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .status .status-inactive{color:red}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .status .status-download{color:#666}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .status .status-active{color:#2a9b39}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button{float:right}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button{background:none;cursor:pointer;width:140px;text-align:center;display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;-webkit-appearance:none;border-radius:3px;border:1px solid #cccccc;background:#f7f7f7;box-shadow:0 1px 0 #cccccc;font-weight:normal}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button:hover,.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button:focus,.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button.loading{background:#fafafa;border-color:#999;color:#23282d}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button .fa{margin-right:8px}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button .fa.fa-spinner{margin-right:0}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button.button-primary{background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-shadow:0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button.button-primary:hover,.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button.button-primary:focus{background:#008ec2;border-color:#006799;color:#fff}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button.button-primary .fa-spinner{color:#fff}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button.button-secondary{color:#555;border-color:#cccccc;background:#f7f7f7;box-shadow:0 1px 0 #cccccc}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button.button-secondary:hover,.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button.button-secondary:focus{background:#fafafa;border-color:#999;color:#23282d}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button.status-active .fa{color:#2a9b39}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button.status-inactive .fa{color:red}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button.status-download .fa{color:#999}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button.loading .fa{color:#666}.wp-mail-smtp-page-about.wp-mail-smtp-tab-about-about .wp-mail-smtp-admin-about-plugins .plugins-container .plugin-item .action-button button.disabled{cursor:default}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section{margin:0 0 20px;padding:30px;background:#fff;border:1px solid #E5E6E6;line-height:2}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section h1,.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section h2,.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section h3,.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section h4,.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section h5{margin-top:0;padding-top:0;line-height:1.6}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section h2{font-size:24px}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section h3{font-size:18px;margin-bottom:30px;color:#23282C}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section ul,.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section p{font-size:16px}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section p{margin-bottom:20px}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section p.bigger{font-size:18px}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section p.smaller{font-size:14px}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section p:last-child{margin-bottom:0}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section hr{margin:30px 0}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section figure{margin:0}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section figure img{width:100%}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section figure figcaption{font-size:14px;color:#888888;margin-top:5px;text-align:center;line-height:initial}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section .wp-mail-smtp-admin-column-40{padding-left:15px}@media (max-width: 781px){.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section .wp-mail-smtp-admin-column-40{width:100%;padding-left:0;padding-top:20px}}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section .wp-mail-smtp-admin-column-60{padding-right:15px}@media (max-width: 781px){.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section .wp-mail-smtp-admin-column-60{width:100%;padding-right:0}}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section ul.list-plain{margin-top:0;margin-bottom:0}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section ul.list-plain li{margin-bottom:0}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section ul.list-features li .fa{color:#2a9b39;margin:0 8px 0 0}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section .fa-star{color:gold}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section .no-margin{margin:0 !important}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section .no-padding{padding:0 !important}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section .centered{text-align:center !important}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-hero{padding:0}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-hero .wp-mail-smtp-admin-about-section-hero-main,.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-hero .wp-mail-smtp-admin-about-section-hero-extra{padding:30px}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-hero .wp-mail-smtp-admin-about-section-hero-extra table{width:100%}@media (max-width: 781px){.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-hero .wp-mail-smtp-admin-about-section-hero-extra .wp-mail-smtp-admin-column-50{float:none;width:100%}}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-hero .wp-mail-smtp-admin-about-section-hero-main{background-color:#FAFAFA;border-bottom:1px solid #E5E6E6}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-hero .wp-mail-smtp-admin-about-section-hero-main.no-border{border-bottom:0}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-hero .wp-mail-smtp-admin-about-section-hero-main p{color:#666}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-hero h3.call-to-action{margin-bottom:-10px}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-hero span.price-off{color:#6AB255}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-squashed{margin-bottom:0}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-squashed:not(:last-of-type){border-bottom:0}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-post h2{margin-bottom:-10px}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-post h3{margin-bottom:15px}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-post p:last-of-type{margin-bottom:30px}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-post .wp-mail-smtp-admin-column-20{padding-right:20px;width:auto}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-post .wp-mail-smtp-admin-column-20 img{width:270px}@media (max-width: 781px){.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-post .wp-mail-smtp-admin-column-20{width:20%}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-post .wp-mail-smtp-admin-column-20 img{width:auto;max-width:100%}}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-post .wp-mail-smtp-admin-column-80{padding-left:20px;width:calc(100% - 20px - 270px)}@media (max-width: 781px){.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-post .wp-mail-smtp-admin-column-80{width:80%}}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-post .wp-mail-smtp-admin-about-section-post-link{padding:10px 15px;background-color:#DF7739;color:#fff;border-radius:3px;text-decoration:none;margin-top:15px;font-size:14px}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-post .wp-mail-smtp-admin-about-section-post-link:hover{background-color:#B85A1B}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-post .wp-mail-smtp-admin-about-section-post-link .fa{color:#EDBA9E;vertical-align:middle;margin-left:8px}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-table table{border-collapse:collapse}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-table table tr td{border-bottom:1px solid #E5E6E6;border-right:1px solid #E5E6E6;padding:30px}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-table table tr td:last-of-type{border-right:0}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-table table tr:last-child td{border-bottom:none}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-table table p{background-repeat:no-repeat;background-size:15px auto;background-position:0 6px;margin:0}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-table table p.features-full{padding-left:30px;background-image:url(../images/about/icon-full.svg)}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-table table p.features-none{padding-left:30px;background-image:url(../images/about/icon-none.svg)}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-table table p.features-partial{padding-left:30px;background-position:-3px 0;background-size:23px auto;background-image:url(../images/about/icon-partial.svg)}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-table .wp-mail-smtp-admin-about-section-hero-main{padding:0}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-table .wp-mail-smtp-admin-about-section-hero-main h3{padding:30px 30px 30px 60px}.wp-mail-smtp-page-about .wp-mail-smtp-admin-about-section-table .wp-mail-smtp-admin-about-section-hero-main .wp-mail-smtp-admin-column-33:first-child h3{padding:30px} diff --git a/wp-content/plugins/wp-mail-smtp/assets/css/smtp-admin.min.css b/wp-content/plugins/wp-mail-smtp/assets/css/smtp-admin.min.css deleted file mode 100644 index d42e207..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/css/smtp-admin.min.css +++ /dev/null @@ -1 +0,0 @@ -#wpcontent{padding-left:0 !important;position:relative}@media (max-width: 600px){#wpcontent{padding-top:46px}}@media (max-width: 600px){#wpbody{padding-top:0}}@-webkit-keyframes wp-mail-smtp-fade-in-stop-out{0%,100%{opacity:0}35%{opacity:1}65%{opacity:1}}@keyframes wp-mail-smtp-fade-in-stop-out{0%,100%{opacity:0}35%{opacity:1}65%{opacity:1}}body.toplevel_page_wp-mail-smtp div.jconfirm *,body.toplevel_page_wp-mail-smtp div.jconfirm *::before,body.toplevel_page_wp-mail-smtp div.jconfirm *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box-container div.jconfirm-box{border-radius:0;box-shadow:0 2px 6px rgba(0,0,0,0.2)}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box-container div.jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.4);top:8px;right:8px}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box-container div.jconfirm-box div.jconfirm-closeIcon:hover{color:rgba(0,0,0,0.8)}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-title-c{margin:0 0 26px 0 !important;padding:0 !important}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin:0 !important;color:#c4c4c4 !important;-webkit-transition:none !important;transition:none !important;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;font-size:45px !important}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-title-c .jconfirm-icon-c i:empty{display:none}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-title-c .jconfirm-icon-c svg{height:35px}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-title-c .jconfirm-title{display:block;color:#444}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-title-c .jconfirm-icon-c+span.jconfirm-title{margin-top:20px !important}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content-pane{margin-bottom:0;display:block}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:inherit}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content{font-size:16px;color:#777;line-height:1.4}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content.lite-upgrade p{font-size:18px;padding:0 20px}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content p{margin:0 0 20px;font-size:16px;line-height:1.5}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content p:last-of-type{margin:0}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content p.large{font-size:18px}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content p.small{font-size:14px}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content .already-purchased{font-size:12px;color:#ccc;text-decoration:none}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content .already-purchased:hover{text-decoration:underline}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content .wp-mail-smtp-btn{font-weight:bold;text-transform:uppercase;-webkit-transition:background .1s;transition:background .1s;padding:10px 20px;outline:none;display:inline-block;font-size:14px;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:4px;min-height:1em;-webkit-tap-highlight-color:transparent;border:0;background-image:none}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content .wp-mail-smtp-btn.with-loader{padding:12px 12px 7px}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content .wp-mail-smtp-providers-amazonses-txt-record{display:flex;justify-content:space-evenly;align-items:center}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content .wp-mail-smtp-providers-amazonses-txt-record-label{color:#444}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content .wp-mail-smtp-providers-amazonses-txt-record input[type="text"]{display:inline-block;width:340px;color:#777;background-color:#f8f8f8;border:1px solid #ddd;border-radius:3px;margin:0;padding:10px 0 10px 12px;font-size:16px;line-height:18px}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content .wp-mail-smtp-providers-amazonses-txt-record input[type="text"][readonly]{background-color:#f9f9f9}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content .wp-mail-smtp-providers-amazonses-txt-record input[type="text"]:focus{border-color:#bbb}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content .wp-mail-smtp-providers-amazonses-txt-record input[type="text"]:disabled{opacity:0.6}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content .wp-mail-smtp-providers-amazonses-txt-record button{padding:9px 11px;background-color:#fff;border:1px solid #ddd;border-radius:3px;cursor:pointer;outline:none}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content .wp-mail-smtp-providers-amazonses-txt-record button:hover{background-color:#ddd}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content .wp-mail-smtp-providers-amazonses-txt-record button:active{background-color:#aaa;border-color:#aaa}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-content .wp-mail-smtp-providers-amazonses-txt-record .dashicons-yes-alt{color:#46b450}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-buttons .already-purchased{display:block;font-size:12px;color:#aaa;text-decoration:none;padding-top:20px}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-buttons .already-purchased:hover{color:#999;text-decoration:underline}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box div.jconfirm-buttons .btn-hide{display:none}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box .discount-note{text-align:center;margin:30px 0 0}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box .discount-note p{background-color:#faffac;margin:0 -30px;padding:24px 60px 20px;font-size:15px;color:#4d4d4d;position:relative}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box .discount-note p:after{content:url(../images/font-awesome/check-circle-solid-green.svg);width:40px;height:40px;background-color:#fff;border-radius:50%;padding:5px 6px;position:absolute;top:-20px;right:50%;margin-right:-18px}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box .discount-note span{font-weight:700;color:#3abc01}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box .discount-note a{color:#aaa;display:block;margin-top:12px}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box input[type=text]{display:block;width:99%;border:1px solid #d6d6d6;padding:10px;box-shadow:none;margin:20px auto 0 auto}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box button.btn-confirm{background-color:#FF982D;color:#fff;outline:none}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box button.btn-confirm:hover{background-color:#f97f00;border-color:#f97f00}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box button,body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box button.btn-default{color:#666}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box button.wp-mail-smtp-btn-orange{color:#fff}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box button.btn-block{display:block;text-align:center;width:100%;margin:0 0 10px 0 !important}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box button.btn-normal-case{text-transform:none !important}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box .error{display:none;color:red}body.toplevel_page_wp-mail-smtp div.jconfirm div.jconfirm-box .wpforms-error{border:1px solid #ebccd1 !important}@media screen and (max-width: 1023px){#wp-mail-smtp-notice-bar{display:none !important}}#wp-mail-smtp-notice-bar{max-height:35px;position:relative;margin-bottom:-3px;transition:all .3s ease-out;overflow:hidden}#wp-mail-smtp-notice-bar.out{max-height:3px}#wp-mail-smtp-notice-bar .wp-mail-smtp-notice-bar-container{background-color:#DDDDDD;border-top:3px solid #FF982D;color:#777777;text-align:center;padding:7px}#wp-mail-smtp-notice-bar a{color:#FF982D}#wp-mail-smtp-notice-bar a:hover{color:#f97f00}#wp-mail-smtp-notice-bar .dismiss{position:absolute;top:0;right:0;border:none;padding:5px;margin-top:4px;background:0 0;color:#72777c;cursor:pointer}#wp-mail-smtp-notice-bar .dismiss:before{background:0 0;color:#72777c;content:"\f335";display:block;font:normal 20px/20px dashicons;speak:none;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased}#screen-meta-links .screen-meta-toggle{position:absolute;right:20px;top:auto}#screen-meta-links,#screen-meta{display:none}#wp-mail-smtp-header-temp{position:absolute;margin:0;top:-1px;left:20px;right:20px;z-index:99}#wp-mail-smtp-header{border-top:3px solid #FF982D;padding:20px}#wp-mail-smtp-header img{display:block;margin:0;max-width:242px}@media (max-width: 782px){#wp-mail-smtp-header img{max-width:200px}}#wp-mail-smtp{margin:0}#wp-mail-smtp .wp-mail-smtp-hide{display:none}#wp-mail-smtp .wp-mail-smtp-page-title{height:58px;background-color:#fff;font-size:14px;margin:0 0 20px 0;padding:0 20px}#wp-mail-smtp .wp-mail-smtp-page-title a.tab{border-bottom:2px solid #fff;box-shadow:none;color:#666;display:inline-block;margin-right:30px;padding:20px 0 18px 0;text-decoration:none}#wp-mail-smtp .wp-mail-smtp-page-title a.tab.active{border-bottom:2px solid #FF982D}#wp-mail-smtp .wp-mail-smtp-page-title a.tab:hover{border-color:#999}#wp-mail-smtp .wp-mail-smtp-page-title a.action{padding:5px;border:0;min-height:auto;color:#fff;margin:-10px 0 0 20px}#wp-mail-smtp .wp-mail-smtp-page-title .page-title{background-color:#fff;display:inline-block;font-size:23px;margin:0;padding:20px 20px 20px 0}#wp-mail-smtp .wp-mail-smtp-page-content{padding:0 20px}#wp-mail-smtp .wp-mail-smtp-page-content *,#wp-mail-smtp .wp-mail-smtp-page-content *::before,#wp-mail-smtp .wp-mail-smtp-page-content *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-clear:before{content:" ";display:table}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-clear:after{clear:both;content:" ";display:table}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row{border-bottom:1px solid #e4e4e4;padding:30px 0;font-size:14px;line-height:1.3}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row:first-of-type{padding-top:10px !important}@media (max-width: 781px){#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row{padding:20px 0}}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.inactive{display:none}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row .wp-mail-smtp-setting-mid-row-sep{background:#e4e4e4;height:1px;border:0;margin:15px 0}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.section-heading{padding:20px 0}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.section-heading.no-desc h2,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.section-heading.no-desc h4{margin:0}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.section-heading .wp-mail-smtp-setting-field{margin:0;max-width:1005px}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox input[type=checkbox]{float:left;margin:1px 0 0 0}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox input[type=checkbox]+label{margin:0 0 0 8px;vertical-align:baseline}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox .desc{margin:0 0 0 30px}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox input[type=checkbox]+label+.desc{margin:8px 0 0 0}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-text .wp-mail-smtp-setting-label,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-password .wp-mail-smtp-setting-label,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-number .wp-mail-smtp-setting-label,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-email .wp-mail-smtp-setting-label{padding-top:8px}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-select .wp-mail-smtp-setting-label{padding-top:8px}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-radio .wp-mail-smtp-setting-field input[type=radio]{margin:-3px 10px 0 0}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-radio .wp-mail-smtp-setting-field label{margin-right:30px;display:inline-block}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field label{vertical-align:middle;display:inline-block}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]{position:absolute;top:auto;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;white-space:nowrap}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]:checked+.wp-mail-smtp-setting-toggle-switch{background-color:#46B450}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]:checked+.wp-mail-smtp-setting-toggle-switch:before{-webkit-transform:translateX(16px);-ms-transform:translateX(16px);transform:translateX(16px)}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]:disabled:checked:hover+.wp-mail-smtp-setting-toggle-switch,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]:disabled:not(:checked):hover+.wp-mail-smtp-setting-toggle-switch{box-shadow:none}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]:disabled:not(:checked):hover+.wp-mail-smtp-setting-toggle-switch{background-color:#ddd}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]:disabled+.wp-mail-smtp-setting-toggle-switch{background-color:#ddd;cursor:default}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]:disabled:checked+.wp-mail-smtp-setting-toggle-switch{background-color:#a0daa5;cursor:default}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]:checked+.wp-mail-smtp-setting-toggle-switch+.wp-mail-smtp-setting-toggle-checked-label{display:inline-block}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]:checked+.wp-mail-smtp-setting-toggle-switch+.wp-mail-smtp-setting-toggle-checked-label+.wp-mail-smtp-setting-toggle-unchecked-label{display:none}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]:disabled+.wp-mail-smtp-setting-toggle-switch+.wp-mail-smtp-setting-toggle-checked-label,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]:disabled+.wp-mail-smtp-setting-toggle-switch+.wp-mail-smtp-setting-toggle-unchecked-label{color:#aaaaaa}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]:checked:hover+.wp-mail-smtp-setting-toggle-switch,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]:checked:focus+.wp-mail-smtp-setting-toggle-switch{box-shadow:0 0 0 1px #fff, 0 0 0 3px #46B450}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]:not(:checked):hover+.wp-mail-smtp-setting-toggle-switch,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field input[type=checkbox]:not(:checked):focus+.wp-mail-smtp-setting-toggle-switch{background-color:#999;box-shadow:0 0 0 1px #fff, 0 0 0 3px #999}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field .wp-mail-smtp-setting-toggle-unchecked-label,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field .wp-mail-smtp-setting-toggle-checked-label{text-transform:uppercase;font-weight:400;color:#777;font-size:13px}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field .wp-mail-smtp-setting-toggle-checked-label{display:none}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field .wp-mail-smtp-setting-toggle-switch{position:relative;cursor:pointer;background-color:#ccc;border-radius:15px;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;vertical-align:middle;display:inline-block;margin:0 5px 0 0;width:36px;height:20px}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-checkbox-toggle .wp-mail-smtp-setting-field .wp-mail-smtp-setting-toggle-switch:before{position:absolute;content:"";height:16px;width:16px;left:2px;top:2px;background-color:#fff;border-radius:50%;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-mailer{padding-bottom:20px}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-mailer .wp-mail-smtp-mailers .wp-mail-smtp-mailer{display:inline-block;width:140px;margin-right:12px;margin-bottom:12px;position:relative}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-mailer .wp-mail-smtp-mailers .wp-mail-smtp-mailer .wp-mail-smtp-mailer-image{background:#fff;text-align:center;border:2px solid #E5E5E5;border-radius:4px;cursor:pointer;height:76px;position:relative;margin-bottom:10px;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-mailer .wp-mail-smtp-mailers .wp-mail-smtp-mailer .wp-mail-smtp-mailer-image.is-recommended{background-image:url(../images/recommended.svg);background-repeat:no-repeat;background-size:60%;background-position:top right -2px}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-mailer .wp-mail-smtp-mailers .wp-mail-smtp-mailer .wp-mail-smtp-mailer-image img{max-width:90%;max-height:40px;display:block;position:relative;top:50%;left:50%;transform:translate(-50%, -50%);opacity:0.6;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-mailer .wp-mail-smtp-mailers .wp-mail-smtp-mailer.wp-mail-smtp-mailer-smtp .wp-mail-smtp-mailer-image img{max-height:30px}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-mailer .wp-mail-smtp-mailers .wp-mail-smtp-mailer.active .wp-mail-smtp-mailer-image{border-color:#FF982D}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-mailer .wp-mail-smtp-mailers .wp-mail-smtp-mailer.active .wp-mail-smtp-mailer-image img{opacity:1}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-mailer .wp-mail-smtp-mailers .wp-mail-smtp-mailer:hover .wp-mail-smtp-mailer-image{border-color:#ccc}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row.wp-mail-smtp-setting-row-mailer .wp-mail-smtp-mailers .wp-mail-smtp-mailer:hover .wp-mail-smtp-mailer-image img{opacity:1}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row h2,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row h4{color:#444;font-size:20px;font-weight:700;margin:0 0 6px 0}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row h2{margin-bottom:15px}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row h3{color:#444;font-size:24px;font-weight:600;margin:0 0 20px 0}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row p{margin:12px 0 0;font-size:14px;line-height:1.5em}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row p:first-of-type{margin:8px 0 0}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row p.desc{font-style:italic;color:#777}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row p.buttonned{margin-top:30px}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row p.inline-notice{margin:5px 0 15px;box-sizing:border-box;background:#fff;border-left:4px solid transparent;box-shadow:0 1px 1px 0 rgba(0,0,0,0.1)}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row p.inline-notice.inline-error{border-color:#dc3232;margin-bottom:5px;padding:10px}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row p.inline-notice.inline-edu-notice{border-color:#809EB0;line-height:1.5em;padding:10px}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row p.inline-notice a.wp-mail-smtp-mailer-notice-dismiss{float:right;color:#999DA1;margin:0 0 10px 10px;text-decoration:none}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row p.inline-notice a.wp-mail-smtp-mailer-notice-dismiss:hover{color:#666a6e}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row ul{margin:8px 0 0}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row ul.list li{margin-left:20px;list-style-type:disc}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row table.actions-list td,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row table.actions-list th{padding:5px 5px 5px 0;text-align:left}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row table.actions-list td.email{padding-right:2em}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row table.actions-list td.status{width:100px}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row table.actions-list td.actions a{border-bottom:1px solid;display:inline-block;margin-right:5px;text-decoration:none}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row table.actions-list td.actions a[class*=delete],#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row table.actions-list td.actions a[class*=error]{color:#a00}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row table.actions-list td.actions a[class*=delete]:hover,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row table.actions-list td.actions a[class*=delete]:active,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row table.actions-list td.actions a[class*=delete]:focus,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row table.actions-list td.actions a[class*=error]:hover,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row table.actions-list td.actions a[class*=error]:active,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row table.actions-list td.actions a[class*=error]:focus{color:#440000}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=text],#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=email],#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=number],#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=password],#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row select{background-color:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:none;color:#333;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px;line-height:1.3}@media (max-width: 959px){#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=text],#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=email],#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=number],#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=password],#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row select{width:300px}}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=text][readonly],#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=email][readonly],#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=number][readonly],#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=password][readonly],#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row select[readonly]{background-color:#f9f9f9}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=text].small-text,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=email].small-text,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=number].small-text,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=password].small-text,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row select.small-text{width:75px}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=text]:focus,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=email]:focus,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=number]:focus,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=password]:focus,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row select:focus{border:1px solid #016AAB;box-shadow:0 0 0 1px #016AAB;outline:none}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=text]:disabled,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=email]:disabled,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=number]:disabled,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=password]:disabled,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row select:disabled{opacity:0.6}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=checkbox]:focus,#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row input[type=radio]:focus{border:1px solid #016AAB;box-shadow:0 0 0 1px #016AAB;outline:none}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row .dashicons-yes-alt.wp-mail-smtp-animate{-webkit-animation:wp-mail-smtp-fade-in-stop-out 1s linear;animation:wp-mail-smtp-fade-in-stop-out 1s linear}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-row .dashicons-yes-alt.wp-mail-smtp-success{color:#46b450}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-label{display:block;float:left;width:205px;padding:0 20px 0 0}@media (max-width: 781px){#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-label{float:none;width:100%;padding-bottom:15px}}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-label label{display:block;font-weight:600}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-field{display:block;margin:0 0 0 205px;max-width:800px}@media (max-width: 781px){#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-setting-field{margin:0}}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-submit{margin:0;padding:25px 0}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-submit .help-text{margin-left:10px;vertical-align:middle}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-mailer-options .wp-mail-smtp-mailer-option .wp-mail-smtp-setting-row.section-heading{padding:20px 0 !important}#wp-mail-smtp .wp-mail-smtp-page-content .wp-mail-smtp-mailer-options .wp-mail-smtp-mailer-option blockquote{background:#E5E5E5;border-radius:4px;color:#666;font-size:14px;margin:20px 0;padding:15px;width:1005px}#wp-mail-smtp .wp-mail-smtp-page-content.wp-mail-smtp-page-general p{margin:0}#wp-mail-smtp .wp-mail-smtp-page-content .notice-inline{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);margin:5px 0 15px;padding:1px 12px}#wp-mail-smtp .wp-mail-smtp-page-content .notice-inline.notice-success{border-left-color:#46b450}#wp-mail-smtp .wp-mail-smtp-page-content .notice-inline.notice-warning{border-left-color:#ffb900}#wp-mail-smtp .wp-mail-smtp-page-content .notice-inline.notice-error{border-left-color:#dc3232}#wp-mail-smtp .wp-mail-smtp-page-content .notice-inline.notice-info{border-left-color:#00a0d2}#wp-mail-smtp .wp-mail-smtp-page-content .notice p,#wp-mail-smtp .wp-mail-smtp-page-content .notice-inline p{margin:0.5em 0;padding:2px}#wp-mail-smtp .wp-mail-smtp-page-content pre{white-space:pre-line}#wp-mail-smtp .wp-mail-smtp-page-content.active{display:block}#wp-mail-smtp .wp-mail-smtp-page-content .connected-as{margin-left:30px}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug{background-color:#fff;padding:25px 20px 1px 25px}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug h2{color:#444;margin:1.4em 0 0.8em;font-size:16px;font-weight:700}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug p{font-size:14px;color:#555;margin-bottom:1.1em}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug ul,#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug ol{font-size:14px;color:#555;margin:0 0 1.1em 1.8em}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug ul li,#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug ol li{margin:0 0 8px 0;line-height:1.5}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug ul li:last-of-type,#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug ol li:last-of-type{margin:0}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug ul li ul,#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug ol li ul{list-style-type:disc}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug a{color:#FF982D}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug a:hover{color:#f97f00}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug .dashicons-star-filled{color:#FF982D;width:16px;height:16px;font-size:16px;vertical-align:text-top}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug .price-off{color:green;font-weight:bold}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug .error-log-toggle{text-decoration:none;color:#444}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug .error-log-toggle:hover{color:#FF982D}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug .error-log-toggle .dashicons{font-size:15px;height:15px;width:15px;padding-top:3px;border:0;outline:0}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug .error-log{border-left:3px solid #ffb900;padding:0 0 0 20px;margin:0 0 10px 0;font-size:12px;display:none}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug .error-log pre{margin:0}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-debug .error-log-note{display:none}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner{background-color:#fff;padding:25px 20px;border:1px solid #dadada;margin:10px 0 0 0;position:relative}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner .wp-mail-smtp-pro-banner-dismiss{position:absolute;right:10px;top:10px}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner .wp-mail-smtp-pro-banner-dismiss button{background:none;border:none;color:#A9A9A9;cursor:pointer;margin:0;padding:0}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner h2{color:#444;margin-top:0;font-size:16px;font-weight:700}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner p{font-size:14px;color:#555;margin-bottom:1.1em}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner p:last-of-type{margin:0}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner .benefits{margin:0 0 16px 0;overflow:auto;max-width:1000px}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner .benefits ul{margin:0;padding:0;width:50%;float:left}@media (max-width: 600px){#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner .benefits ul{width:100%;float:none}}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner .benefits ul li{margin:0;padding:0 0 2px 16px;color:#555;font-size:14px;position:relative}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner .benefits ul li:before{content:'+';position:absolute;top:-1px;left:0}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner .benefits ul li.arrow-right:before{content:'→'}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner a{color:#FF982D}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner a:hover,#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner a:active,#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner a:focus{color:#f97f00}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner .stars{text-decoration:none}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner .stars .dashicons{width:16px;height:16px;font-size:16px;vertical-align:text-top}#wp-mail-smtp .wp-mail-smtp-page-content #wp-mail-smtp-pro-banner .price-off{color:green;font-weight:bold}#wp-mail-smtp .wp-mail-smtp-admin-columns>div[class*="-column-"]{float:left}#wp-mail-smtp .wp-mail-smtp-admin-columns .wp-mail-smtp-admin-column-20{width:20%}#wp-mail-smtp .wp-mail-smtp-admin-columns .wp-mail-smtp-admin-column-33{width:33.33333%}#wp-mail-smtp .wp-mail-smtp-admin-columns .wp-mail-smtp-admin-column-40{width:40%}#wp-mail-smtp .wp-mail-smtp-admin-columns .wp-mail-smtp-admin-column-50{width:50%}#wp-mail-smtp .wp-mail-smtp-admin-columns .wp-mail-smtp-admin-column-60{width:60%}#wp-mail-smtp .wp-mail-smtp-admin-columns .wp-mail-smtp-admin-column-80{width:80%}#wp-mail-smtp .wp-mail-smtp-admin-columns .wp-mail-smtp-admin-column-last{float:right !important}#wp-mail-smtp .wp-mail-smtp-admin-columns:after{content:"";display:table;clear:both}#wp-mail-smtp .wp-mail-smtp-page-upsell{display:flex;align-items:center;justify-content:center;height:auto;flex-direction:column}#wp-mail-smtp .wp-mail-smtp-page-upsell>*{width:800px}#wp-mail-smtp .wp-mail-smtp-page-upsell *,#wp-mail-smtp .wp-mail-smtp-page-upsell *::before,#wp-mail-smtp .wp-mail-smtp-page-upsell *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wp-mail-smtp .wp-mail-smtp-page-upsell h2{font-size:24px;color:#444444;text-align:center}#wp-mail-smtp .wp-mail-smtp-page-upsell h3{font-size:16px;font-weight:normal;color:#72777C;line-height:1.5em;margin-top:0;margin-bottom:6px;text-align:center}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-content .wp-mail-smtp-page-upsell-features{margin-bottom:40px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:stretch;align-content:flex-start}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-content .wp-mail-smtp-page-upsell-features .wp-mail-smtp-page-upsell-feature{display:flex;flex-direction:row;width:360px;align-items:flex-start;align-content:flex-start;margin-right:60px;margin-top:40px}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-content .wp-mail-smtp-page-upsell-features .wp-mail-smtp-page-upsell-feature:nth-of-type(1){margin-top:20px}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-content .wp-mail-smtp-page-upsell-features .wp-mail-smtp-page-upsell-feature:nth-of-type(2){margin-top:20px}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-content .wp-mail-smtp-page-upsell-features .wp-mail-smtp-page-upsell-feature:nth-of-type(even){margin-right:0}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-content .wp-mail-smtp-page-upsell-features .wp-mail-smtp-page-upsell-feature .wp-mail-smtp-page-upsell-feature-image{display:flex;align-items:center}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-content .wp-mail-smtp-page-upsell-features .wp-mail-smtp-page-upsell-feature .wp-mail-smtp-page-upsell-feature-image svg{height:64px;width:64px}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-content .wp-mail-smtp-page-upsell-features .wp-mail-smtp-page-upsell-feature .wp-mail-smtp-page-upsell-feature-image .st0{fill:#C3D0D7}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-content .wp-mail-smtp-page-upsell-features .wp-mail-smtp-page-upsell-feature .wp-mail-smtp-page-upsell-feature-image .st1{fill:#809DB0}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-content .wp-mail-smtp-page-upsell-features .wp-mail-smtp-page-upsell-feature .wp-mail-smtp-page-upsell-feature-content{margin-left:20px}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-content .wp-mail-smtp-page-upsell-features .wp-mail-smtp-page-upsell-feature .wp-mail-smtp-page-upsell-feature-content h4{font-size:15px;margin:0 0 0.5em}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-content .wp-mail-smtp-page-upsell-features .wp-mail-smtp-page-upsell-feature .wp-mail-smtp-page-upsell-feature-content p{color:#72777C;margin:0}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-images{margin-top:20px;margin-bottom:30px;text-align:center}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-images img{width:380px;height:auto;margin-right:30px;border:5px solid #fff;border-radius:5px;box-shadow:0 5px 15px rgba(0,0,0,0.1);float:left}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-images img:last-child{margin-right:0}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-button{text-align:center}#wp-mail-smtp .wp-mail-smtp-page-nw-product-edu h2{display:inline-block;vertical-align:middle}#wp-mail-smtp .wp-mail-smtp-page-nw-product-edu .badge{margin:0 0 2px 7px;vertical-align:middle;width:40px;height:17px}#wp-mail-smtp .wp-mail-smtp-page-nw-product-edu .wp-mail-smtp-setting-row-multisite{color:#9a9a9a}#wp-mail-smtp .wp-mail-smtp-page-nw-product-edu .wp-mail-smtp-setting-row-multisite p.desc{color:#bababa}#wp-mail-smtp .wp-mail-smtp-page-nw-product-edu .wp-mail-smtp-setting-row-multisite input[type=checkbox]:disabled{border-color:#aaa}#wp-mail-smtp .wp-mail-smtp-page-nw-product-edu .wp-mail-smtp-setting-row-no-setting{margin-top:30px}.wp-mail-smtp-btn{border:0;border-radius:3px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;text-shadow:none;box-shadow:none;outline:none}.wp-mail-smtp-btn .dashicons{font-size:16px;width:16px;height:16px}.wp-mail-smtp-btn:disabled{opacity:0.5;cursor:not-allowed}.wp-mail-smtp-btn.wp-mail-smtp-btn-md{font-size:13px;font-weight:600;padding:8px 12px;min-height:35px}.wp-mail-smtp-btn.wp-mail-smtp-btn-lg{font-size:16px;font-weight:600;padding:16px 28px}.wp-mail-smtp-btn.wp-mail-smtp-btn-orange{background-color:#FF982D;border-color:#FF982D;color:#fff}.wp-mail-smtp-btn.wp-mail-smtp-btn-orange:hover,.wp-mail-smtp-btn.wp-mail-smtp-btn-orange:active,.wp-mail-smtp-btn.wp-mail-smtp-btn-orange:focus{background-color:#f97f00;border-color:#f97f00}.wp-mail-smtp-btn.wp-mail-smtp-btn-orange:focus{box-shadow:0 0 0 1px #fff, 0 0 0 3px #f97f00}.wp-mail-smtp-btn.wp-mail-smtp-btn-red{background-color:#DC3232;border-color:#DC3232;color:#fff}.wp-mail-smtp-btn.wp-mail-smtp-btn-red:hover,.wp-mail-smtp-btn.wp-mail-smtp-btn-red:active,.wp-mail-smtp-btn.wp-mail-smtp-btn-red:focus{background-color:darkred;border-color:darkred}.wp-mail-smtp-btn.wp-mail-smtp-btn-red:focus{box-shadow:0 0 0 1px #fff, 0 0 0 3px darkred}.wp-mail-smtp-btn.wp-mail-smtp-btn-grey{background-color:#f5f5f5;border:1px solid #ccc;color:#666}.wp-mail-smtp-btn.wp-mail-smtp-btn-grey:hover,.wp-mail-smtp-btn.wp-mail-smtp-btn-grey:active,.wp-mail-smtp-btn.wp-mail-smtp-btn-grey:focus{background-color:#d7d7d7;border-color:#ccc;color:#444}.wp-mail-smtp-btn.wp-mail-smtp-btn-light-grey{background-color:#f5f5f5;border:1px solid #ccc;color:#666}.wp-mail-smtp-btn.wp-mail-smtp-btn-light-grey:hover,.wp-mail-smtp-btn.wp-mail-smtp-btn-light-grey:active,.wp-mail-smtp-btn.wp-mail-smtp-btn-light-grey:focus{background-color:#eee;color:#444}.wp-mail-smtp-btn.wp-mail-smtp-btn-blueish{background-color:#738e9e;border:1px solid #738e9e;color:#fff}.wp-mail-smtp-btn.wp-mail-smtp-btn-blueish:hover,.wp-mail-smtp-btn.wp-mail-smtp-btn-blueish:active,.wp-mail-smtp-btn.wp-mail-smtp-btn-blueish:focus{background-color:#395360;border-color:#395360;color:#fff}.wp-mail-smtp-btn.wp-mail-smtp-btn-blueish:focus{box-shadow:0 0 0 1px #fff, 0 0 0 3px #395360} diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/about/icon-full.svg b/wp-content/plugins/wp-mail-smtp/assets/images/about/icon-full.svg deleted file mode 100644 index 1ced70e..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/about/icon-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/about/icon-none.svg b/wp-content/plugins/wp-mail-smtp/assets/images/about/icon-none.svg deleted file mode 100644 index 9f06b39..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/about/icon-none.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/about/icon-partial.svg b/wp-content/plugins/wp-mail-smtp/assets/images/about/icon-partial.svg deleted file mode 100644 index 66de81d..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/about/icon-partial.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/about/plugin-mi.png b/wp-content/plugins/wp-mail-smtp/assets/images/about/plugin-mi.png deleted file mode 100644 index b9e4beddbd9127a4e240799110c56c5f3798c621..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7238 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

sR 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 G68b;gg3bc~ diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/about/plugin-rp.png b/wp-content/plugins/wp-mail-smtp/assets/images/about/plugin-rp.png deleted file mode 100644 index 2c85a21328e53f1e8470582456c89c707faebc49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2190 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 diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/about/team.jpg b/wp-content/plugins/wp-mail-smtp/assets/images/about/team.jpg deleted file mode 100644 index fae1b31e591634dd05a9d7fcf623a96d887abd0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302513 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⁡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 lqx1%Lxt4*;!#D4; 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

>X?JxSJ8(W)e#H##E%`$qaDz)BK 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 ~PHva(K8GUYQ>@2d_ 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 S@4>`#EK}H0{2T%apa0qC=a`!S diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/email/icon-check.png b/wp-content/plugins/wp-mail-smtp/assets/images/email/icon-check.png deleted file mode 100644 index aeeec4cda674e03521c9ca477466a12a070b336b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2291 zcmeHI`8(7LAN^X!SSz7x2F0Dh$c%NeC)>zwY#A=HjL8&kwo=*2wT8hUjeW|N#u!;9 zW6PDs61RoW3;|B?V1%-q~M8%FB zKOufnLQ?9~FVYaGjI7-0Gx7?*!r+QZ$_SOSsz{WYx`w8fHu{{7u7RPE@dZ;ei;Fh4 zcJ>aASXZ}8Ufw>J{rm&)geyVBYr!GEUk{6jjJg?p>rPBud_q$4-PE-7%&dDkd8C5E zqT>6dl(LGdYU;z<`i93(XmmzvTSw>eSzYJ; zy}7-!w|~fHz7Yce(44h}scZDq$b&s|S2xMQF&V;ph-ey*Y?vj<(q!7%=V7DSY>I zuB=zuekS-lqyJi>HPtOOeF~dO-&3=>rr|DR6RvyKDS~9g24~ht%-WM0~tbXC7kEvx+1#ER(FXw5{%7&Z<>?U>3er2zq$eudh!9^O(^8Q~4LBS-u#nxt%W=fad#m3# z%09gn@~Xm^tlC@#AJ=SuW&n3PWBc0yXUbf>Vmy2?86<+dTuXkSyJ_O z@S}F1Vp>lG&@3~oOQe>Na(-nY<6XwW%Sbne6j=JTnj!m7x3ZkewEEf@aBO}T*wWL^ zDbZqsn)r>TMMkBhpW1zZ>c*)q?LmmOE8G}oeUwDK9O`FjOK3_qM+TaigPRiRQFb6N z=?q9ZK!QdyT70tu(hiLbo3doy4khhVCRi=A(JmOjO1y}Sh>o6~_E_*$!YKL?6-Sf! z)4GVDwKgoJ|Cvx4ganNSuJ9DYy-JiAH*<;5I%ENSQ)4I*w?(oe1=V*2R07bt8TP;#0rrfeR{$G zYAf#2OekiI@#{a$lDLYy4uno!-lfFy88)SXm=)&ouhS-{a-2MHGjz-FiTaXk4x%+6 za}r}DSbp+}w{N9>)jiN$(s_hKe)ldYB(0nRO2*2c&fux3!}lVsEFsWBWDpNBBb8h4 zp#=C!M~w%6^zS_e1XuT@ucnLW-$2k~$;Ti%sates^7ZEw87DhfUy?g4f2Y#O~;9> z=*TGXkwW(&!&KDI6p2{q?ZbzY!mR0jM5qusI)Cjabj@{yPFJ||UiBiZ*FT>&Vg|YY z4vsS`%kExB4j!o8Mede(+nyg=VK!*Gw6SS+?>W?ZY_4SnNN7+79333_#9p=V%LZ&9 zkmwaM5t|qH=Bx_YLzj4bh8?&R)(S?Js8e6*}Z`SUNm^6Nr9QZ}5nGya?{fkHEfa8xd*qDaC z-`TG*;e&4U>Cs#yM9!7-5%~-}VdKJBjJ$1f*G6)>!4OknbIv6kArV-Ceap;WKzw4F zw!Y-QP!Okr0COA3na+9vdch&*;7vzk!=jBHB(VGIS MF%A|@X1+=P1J5hwp#T5? diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/email/signature.png b/wp-content/plugins/wp-mail-smtp/assets/images/email/signature.png deleted file mode 100644 index 2cc8db0971b04c016aefdda76a498b0a8b89de7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11399 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

j9h{xCqkUm^xItfi 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 diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/check-circle-solid-green.svg b/wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/check-circle-solid-green.svg deleted file mode 100644 index 765cc8d..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/check-circle-solid-green.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/exclamation-circle-regular-red.svg b/wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/exclamation-circle-regular-red.svg deleted file mode 100644 index f063fb5..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/exclamation-circle-regular-red.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/exclamation-circle-solid-orange.svg b/wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/exclamation-circle-solid-orange.svg deleted file mode 100644 index 95d713a..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/exclamation-circle-solid-orange.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/exclamation-circle-solid-red.svg b/wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/exclamation-circle-solid-red.svg deleted file mode 100644 index 70e91bc..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/font-awesome/exclamation-circle-solid-red.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/loaders/loading-blue.svg b/wp-content/plugins/wp-mail-smtp/assets/images/loaders/loading-blue.svg deleted file mode 100644 index 5519045..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/loaders/loading-blue.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/loaders/loading-white.svg b/wp-content/plugins/wp-mail-smtp/assets/images/loaders/loading-white.svg deleted file mode 100644 index ae6fe14..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/loaders/loading-white.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/loaders/loading.svg b/wp-content/plugins/wp-mail-smtp/assets/images/loaders/loading.svg deleted file mode 100644 index 0be46bd..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/loaders/loading.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/logo-whitelabel.svg b/wp-content/plugins/wp-mail-smtp/assets/images/logo-whitelabel.svg deleted file mode 100644 index 8cbda20..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/logo-whitelabel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/logo.svg b/wp-content/plugins/wp-mail-smtp/assets/images/logo.svg deleted file mode 100644 index 8ac5386..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/logs/archive.png b/wp-content/plugins/wp-mail-smtp/assets/images/logs/archive.png deleted file mode 100644 index 97a9772f052ba44c3e2f7ee9b5d464f8869eef84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28288 zcmbTdWl$X56F0i}B7wy8bkloDew~iBCubNB{uf(>F;m1pojB3;;l@0%871%8P!B{9~Twe*FCU z@$qqWb@lZ0^!obx`1tt#{(gIRdvkq#czAeud3kYhaeRDydV2cs@Njm1{_^s&xw(0J zbJI3C_~XY9$#388@9$+~Wx3_G_xAP_6cpCh*2Kld^YZehr)LZe4fXW&+}+*1Gb)XZ zjjO7v`uqFU)YN8YXA27pMMXu;YLx^91--nymX?;RtgKvIT$fi?5)u-EgM(w^;Es+S=mc5(HF?pFe+=msgaOmNGIjrlzI+`ST|{ zA_Dg_X>&)9pPzqyeSJq~XJ%FwEiLWI$q5V+YH~_SLt~?jjZJz+MnGWT!NEaPRFtEm zV`x~Iudgp5=@)x@drC@56m;yVsVM*)Qglqr_V%`nqVo0a4Yz=>hK5FWcX#jnxU;h} zIW;{A2?-4o+u-0}$MkSlSJxLhCU$8Jb8Fk4o*rclZ6PrU0xofS@t*yplau4&;ZZ{542;eCRaAYms_TZj>smS|Y;5%_ zf3$V=d;0o6m)VZ2O?7qm{>Wub_>;24$#r!7uz7NgoV{5H3L zuASMNTvpyZ-WOWjBB^JQ*-#E;m>JWtU|u-X(K{%t_Di!&e0bw{@n|)sFvmJ9%_T9k zQ$#dlV5PjLt!H3_-mhBL*e0-XrnIK1psn6Lxd`5-z%(Ff_FzgrsUsk-&elK7#KX^} z#kd+5uLKIZd4A8PUgKtKt8{!bC?_c(B&>OE>aeLfu*=~!TWfH;vv?*=)6UDidLsBw zhHbQ;ij_+v1LIa+o@;pA#mvm<*g)e-`4kY?xVq|Ydhkrt#2!XOZd-rekB}beDNh;>S?ta?D^mIa0GJDZ6BGXFymGoy zZMF)*>$;NVtdEJCd+aj&>vs$FjOr1WirSV|eT>a&Qbl!!Z;_V`A0QGMj3CPH%3ji4 ztDUWdl>bdOMLqgmsP0?bR@9??CM@7R6as*T0>XkpU49S%8Z;C?5ccwa%zL#SAnLx; z`u}LX|KCbL)Cb|v-hmMY;PVWBv<)?@D;+BeOcosh0tV{dtX&4yrr~$eqwoQrAA7?} z_lNZ{!T@`*S%^rp9VZRfSHn)`rCc@&6C?2Cyj8-lQahy~c0fzE9yq%#wUt$o_pPO^ z9j5?fFV+hQR8S6?7S9i`dwSu*^0hL-8{(EMkt*1Edw6Xtm0|s7BvK0zc{)8XwP+aJ zrIkvu8n*?uWPby1Ln@F`@hoTBwe!&$Z+_WQ?aBk{wEQ6A0%}ZY45&t}^HHX*KN2Uz ze?`fEK2sqXDq_lakgthKU>z|jA3tDsx*waQuhX#v>&Y@MjGynSzU81@8R0JPg^El$ z*88C3)mc?f);&iIkMYzzWyzA7a20!O<=TZQ6}*E63x~8-M@2^GVKMG2og5n`=a8!> z(qFpNaaN?EE3@M{TPEk|P@~vVW!<2r^f`QPD;+r()!Qjsxmyn~eU;-{X=WE5+H{a%_MX9nxowJ;+p|w`cd&5}!sJ&sx6k-dPd(wWMJBP)&ytNEpm4-#KK6 z+5ONi<=D8i5<(L1D#Wb4G1~4#a^868vhmPfN}@bO(C?ySiPHTEZnHljTTEyP^Dn2y zpH2+e<}JUz%kLKTb-W}MSGmlJ>I|~mUoIgZe1T1xAI-Qvs}{nXIR1}UO1$aX$u#5R zlDFeF&xKRR zbxa$26=U4h)_zuVRu1 z&r>%&Qcms!s&@U%$0tN_l@Q^feFKhot-Ns?y=D`3tJrg#`s>vNh0(tl9+yBE^D6Ilh(m;oOwW= z@5PwEVyb}bN7OIBc;^bsV>=j{`g2@J9w7(58udqI3D2zfl=Sa9vs05m7uw1F++cGe zNBALTD4%HC7?Vp;AY4lCki6cSErj8Y*Om~LjuNEQtg1?fXBYp@y(sv1O{1zy-3>Tm_wiEIN zKk9R%cNqrJ`aU9Qbxj$YauYK8<5n053l_iY!@b5MB9OCYUeD&m3B*$9Kz&#Fnm__4 zgd_IZ-C5T7kgc7{g@zltj3$^u7GRvV4nxI3QxgfMe@nzW&KD4iX44%WGz=kecXxWp z$aT@)kp-ZO&4_pDFnAAee5oZ|YL9xjOLt*oq^UeRJK=Np?e_&fZ3JE2o#G`?oW;Kl z;H17_^mS{KA>wp=1QnnNBYiz6Lv>fCq)9{&l%az5@4Hl40Qu^6(jpq$#35Ihpw~|y z_aB-n!9D@N^uez{JWYAHV(cHnSU#0&H$-j4GzDPBh3z}S+#kXD4=4a7av*Y{AqOJw z>NNrCS4Og6-^rsHKJVU~oGqZQ_Z0Sa0wcJo8tgs<#T$hjTeYZ7pj+Dve#UYIunD9S zzXR|T{NjZWQXYk8$ASd;EA|5|o2QRWF+>6@UDD$bhpP=^4O~7)n2Dh~>Z<69B<^TI z^o09RQ(jlbA)!f`4M-R&yV5OYHomw!*uo%$ErEt{y>QoTSAb2EIjrroBJHO6Pi7m6 zl+CZTV$s3iqo>cl=}070zIcVa#JKUh1Dqk?Y|22^oJ88lRo^8GMj#?M*Y(++$74fQ zyc(ycqjt;~X4C7#<3kOPdNS#N0KkZ*l_3+&`|A;$=12DjSmv}%;`ABW34{2B(!hudCdJt#S)V8U z`g$_4z1l;0-d2q>lSWGy4FEr1e)2-Plz`>}EkQ|nGF|W{$?lrc)$D8_>^@FN3wXE$ zyj#FDqLN-$y#zXHLcNTY6Lx%TDp$>O@^K|CK;|J8!;LMUDM|^_ls#Pxf z1%pNSbBDg!Y)yH;gnds%`VA{(fvo>8h4f`8aQ4ECE>ODf&t^OgID#H`><546H#=|p zjVffJ4z5kSqmkK};}N9;B(KHnNLik>Ll1Rexyz8IDYMFaxwA#*DpbjWqn{-)_JROz z{Xv2wKvmFQ9-l9N=86+5zEWNE=1GtunHMZSD*ez)B3Zj^;^X6Rh#y~yz%%_9bpH!a zUfLmRD58XbM+p}_7-9cVFp(zuKDq`dRT_@8bZyp$9)}_(Jtw=9oeMLv{O$Ye6!w$l zr%qq{3ZPt5`~ZPoU?(RZ>u-9NVMrz|m7Z9l6BK{JaG^H`>@k38^f&4fouqrzSCAl@ zwYl%yYYug=TjY%x2=@mp+;I^yz?JPfYf~OQ&k-vupin7!%!YbBqICkWy8tKOAi#+H zH+kI`Ou~z^tQyVRwYVGfUX(>#16Td;+wy47uIC>}SgLqaYL_2ynR0O}E2PJFc{opE zy;FRvVEW!O7AjwC_>pFCHO=TO6Q|=xtn|qxOCCE4FasAu0;h{-LllnmJ9kzOogz}V zmEQl_mlGAiLAb3Vx471n$5Qck6FFL>+Usa8JS%AL@kJe%-Z_qoEb)xNv9gqz(v*a7!r1qK z8X$(HcL6sO%{917PYc9NTKwd?UKX@lLnA2-%QDac?~2w|M~ATBOf~_ zCy+K|fh8RO2yV_eLz*mYzyH}Xe&Aa*He#a`9fthHpm=BHqVVE14(omj8|^U*v#{|D@t=9Mhv?zz1cL|R!*5O3gC4A3x~RsN_20@ z8k9^;XFYAOCZRBpNTL~HY#f`Ex1Lp~nhyAcuH6*_%gZKmPyv1r18EKuE|ME-!@03! z{tJX#lS`b=H=Z#N85c>91Sc;%%)aOBU+OBGTm&^Wfj;CYFDccnan_YEDJjXmEZdF#Wa*a zNUnRjgiTp?y+Gee1k5uTfrU#i)k*W4Nw_O3zRZfX2ez*|P1ir3rE|Y`+Ko0E@nd2P zB>p(0rHr9n_dgKv_3giOqoJbs`W5|p6%Q$wiNln@WUvYnUyKgRvpt8cOJfnpIP?;` zbd(kH+oMDsQ+Q0x`Z?fGoYI8q>t&atynw3;2vxgV4@He!@{HNqz)poP5E{}zqLJ2_ zOlkoJ&L)iG`%+x8KG2%)^Qp+{wA;NbrgqS7;}H+c;AcROKqEvACx_o-eN)@=P74_l z5B!C41D$=q5*rGRU;W0X`ZEG-uf;Wa(cjL!^(nb=0lZr73yH$P;_DX8VDo=($|7EX zi>U$!=eK)u-Ql8(t)ueZBdc4SD}qcW4r*LYV>n3S$w>F^%QYG=%F5L;=-ZUh4Torh zSt9ePL*M-o6mhXx{|ZBtgyBm?RZb8^NQLfmX@SU-rtU@f0MsjJAz)W5@HgzMy@Jwa zpUyf~_m!0-)-{4@7dwAg6p?NTIxOLi#9X^CQDq4D?tUs^d=n!t8$(u4s)=)bhhoa9K>wiw)R&X42F;cgx!doZN&F=JBDNaI z69M!kkEh(vv@pMxOL)=5fz^8%O1P5PX~TL2HkE+ky|9HJ=U7r|s++xpj|#q<#&n<~ zzx=Se-yp+o2?)#Ic2J~`HGr#!$yywrqJx+4W}A30V*aCl?7(Q)Sww>)jA~jlh3cHE zGHqD1u$SGCMZ^z?MlnN!>gUf5^~G6}=kX4J@f|BA6Hl18y#z0noBTzs?fl#})~KB4 zEFL{?oJE#Xuz!L#GH~z?cO_`E@rRV8T{HZNzU=MUz-4^pa{Nbr3Q4(30Fm#*le>_C z{h=wA8$iiw$hpo>gUR=FT!Jw5Ppi&L&eKmAQBvH~HQdla!c}j9t3PE#grNeX-6-z0OleZN~%1sDxh*``LS6AqpW3R><4 zFq)p<3q1Xu{&dcElEKO?wyYvDBHVJxrqZZZjm^lJg`FhJwIrNg5}-tWD=EA$UQf-M3l5j_AUdo|?hAKLy`MK) z9HybE0j;$}!B7iYruS^&Np*|9s)5;BL;PvkbUHC%@RwjDTlQYEJ>5$x(}MA&LOdZD zmPpMmHW_Y3b{homDjb)p=C_Kr&@3e zcoD~#YS4(Puz=D_je0=8znF%x&b*UYlL zeitg3QzI@yM_?tPi;XDmQ2oci0PS?%HTFkiTR8d9RJ@kYl7+nPu7D2O7mQg3B~j0! zHwyYV0IPk3;}TS#k$FuvSkkNAZH2whaO`$hotH1|tPztwwH!%~(8pwuLm`kpqgSMC zw0WQKxXa|(;6+J+Qv)Z9v+vVfel~=W&&_H%R%v_O?D5gB{Y6C@FBpdVy%h%;v2H~e zwWaw1?wQpiQRBBWyA{+GdP}_FbT%WI0@Abukj(z~I1GFBRQA?`)D+VQveE+Iyk`wtx3 zAEvE!wrQ#=rHz59O4M4YBqqG_oh6ttsr@IeNuTPcYxj-#nooeTlhe>SG8jZgCW32G z;<+2U`M?LqY1AAUCl8v0iT-kEb>ClP03QG>GzhpQ4E9Fw0T9DNJO5v1&UtV#?Cs6? z-4xt~{-1nEt^Vb72X=gO^FI#=_@C=P`?NTJKx8Z(Kmzd}!ux;da(LpcgB=~ghUjB2 zMLiL-Mz2(9%LFYJA0Jb`li(jdv$_OAlj4_#wMxnU3VZN6=+dMw! z9RJ4an=vL>i7*Jic_H9-^X3_~`wyM{|I(2TB9>4kj!Ia=L#f7*@w@y=$Kxz_oNGMn z^f>kifz}K#D>IQBP9evK%|RaKpG>7ZKg*nk+ut)Ks?cXGfLf-XAlRzHxh}l32Xf?v zp+b)~5y9xn9D|Gi^+Wnl^r&fZY+v-es8vd15uP;>SZF-G|0%#u5l@F8kRfBV{BqTS z-NqGWIWEXNFkYOnRleBt9bi$3d@ozx1_YCvCBZBYSkt)Wg^Qo}UX|15|D0iHh8}x7 z;~P>%74yq?3Y+H~aiv(ME&AfX5ySNrv5QWA{XL@s`J@4Jh&Q^^49*nzwzZz}WlZm3 zpytm+s+rnTWWXPsZxmcP%Pyc#@lC|$_H9~FW(w&DRi-9-0E2`PZgCU?WKOo$y$0Jm zoKhNDBS83{9S(qEo-UnP0?85<`jSEpYK{+v5RKtyb>%vrlqJ72X(u(71T~AVJvMDg zA%Z?*At*$cBg3D^%ssiSKGVs7N67(g&Dj6Vr$0WZHSR$btw|M)K{Wau5UF7;h^-{x z;sNd`5kyK#))JFy3p`P42%(Ys$rTF)`joQ4Hsmv;iPC2eeU<+@7^F{A9t!tr#tHAIJ!mheAf`B$r?gZ^(OB%f$TeZR`Y%S^t-FzJ_s2s9B@MKj+ z*|1$=F3pu074eORoEY>ec4M%uUdpEkDz7hXP&!)&T$KaWG%}6v-%mp%NY~=q>ZEt$ z$Swf&(#MFb`O|+IQk9WBeeEVa4*o)rw0WS^TALus z_sQ)DCfTz4{<2)|Es?q*f-*2vgh7DgQ!`?Y4=Wp&%3tOrm?8H^*j0Zon8?6pw6@|w z+UnWut8e>=DJ0iNnl0)FwdWRWfFI@R3A+lw&rkb*4Uyeekh@Y@qmZkg(Ln3`d8KNUlHlKJtNc8~aQf8z=K(Ga3R8$v{X{HMLfM(a%%-!7LAfLk`sGv z2qDDIPAzif5s6o?pEnl1EZMU_)FL1X=Pxd0mKzT=5vBd>6+D9{l!t&XO3)#qomMGE zN=mb3FM9mYzZ=n*Mwg2dOP4*jflr1P8?JGIy?}6`hIn5>1ehTP`+5a2;)*GZd;zQvvL#-@eh!J-ML@k;FV=-J9mhHq;+BilllOW z(~g76#a^A>e}KE+=i&8>@Gydp7*8N`Z%oPlCt5!uz3^#_n&Ic;7)!fvLjAr-%?cwZ z02x`2-~_0Pm*rDXW!F@FBFynG)GrG@d4=Bl^!Fj6RbFJdIOhI8{xE$m&}(SBb!XW6 z%m{bj^3zqDV1JvoEB zXduyWzEl_3{(${K?CfGA^lvKE6UajH*PAC1HByx(*bx25XT`Fm@6VLdyT_RHiCM8q zy0-Xk+sthhtSL%*MMKla*hMM+yV{Zw8rla+JdRP)xO&&!+KZ3(AVstZ7jabarPi?3 z6D5(}6k4BP#%gWh(6G3;TF=ZK`mx?bBXG>=JT1xGz(MY)0qU4Mfp0&LbGu|QG?8>^ zu`g82Vbl0tha&rt%=oVSdbtW{pm7rK(8IAnrqZwY%pay}7cYuxsoenfgZ?)vSFOD6P_+3bBv+Gry5ac=Z6*k*L758yhk7Og`P`{lft z*nHH%XCZhLfDF~cw`OA)jErgHawG%%3XQI%|9L3IFzdc4mfbSG#xE+93c=Yqsh{k7 z!yhO-8JMBObetRM`u zoUQ|e`@Ut5;!zbDbir10#^1j(rl4%fgoyj2A!13Y2>L`fFR%IE;oE$6D`gpYhb9$D zdxoxrArW7TMkSp0n3Ajkar>lJ+Ww-Rvu#ktZK!@PSw<=OE-B)~iF1iQOLLe0QVzu) zsl@5w=_J}-+WRY08HFbZ^46zHdhEKhdjTTVNLp>Uqg!;ukeBY=rpFabLB#Qf*3e(M z@A;vwBWRB7#Av%La+)PZz1vZ`age^r7b$CHe@7qc?{>XevJ&;n!9;+0WiRh$I@$FU zQlH?=he^2Wn4P5yg}7NGQ$s(6elsN=@t;7jT7*qWf}t35n>oT|gP18m)wEuB zd`Mc_jf~cRFxtz0fm;@(xtiKt$)h7$P%J_1#dk}Y9a+MM&AuMv)j~mQMWsP+(cy3C zpT$RW?=`x^+h?Es8VNo&TRe}dR+}B`)65&c{;JEVnhSy0yLnBlnl_IGZMWTDse~|; zCOPB8Kh5X#n%K3$hzhK}1J?yREO(hMNA~2W)da4ez%3r@mC<*i_Nq~^*Mc!RV3%N- zlVphhku*jy=>MErNMg7mbM>f(mLFWKIv2OT8;=a0m``pGB@3C%99u`2BDZ(-D1B!T zAe1Cnq)ZU>iFBjdNvK@9*Oq8dNJ^u;qG3H7{0p@@C+M#|SunUr5{(uq^!uA%Qw8A- zS={zGmBQs8ujsv7DgU%k(jXD5fQ%dPJ?sy%$eqjv%2r;%@>CFT!5ikD#!`6h)KpARPZi5jw`TUAZjXi52QQ`MSl|C5-Y3le z?-oMMq|uDs{@AKfZ7p01Q?vm!k%-GZ1X>9`4d$j0@?*ac0t@p^_F+CGAt9Gzs?8^y zrt$hu%q9A?I9{^%G?(G}nFc371!_yfLrim!K*Sb45&8S@4ZME6Vv{360`7wjbdffb zfIG_CvTIOTDvqT2283RZF8Gr>1f9}ez~*N;V7HNUw?GH zuyHbJfor1DTGGURqm0u@CDWoj{p$b&J*bxe#a;s5o>1;5CK&)_yBAr{6fhS<`s`ia zBgdnke|X)$ZdL1+XLI6$-%98`=Mp?#Po^x$?oBlrZHtTy%PbyAJ9go-7b_6FD}0k} z?su$BA z$brQ+Q38;e`XrYMJed8@o6o!a=tbb-WA9Xg+dG`Gn_3<3pZ)5QRXtFNPSRks9b#<5 zR{b7JDo#8g3qQ-PlbgYF_8$J+pj!tmY0sIvE(j?WC-oO=PISHo6*wEF787TrCN~n* zW(7D-l^9zuJW0N&Wf~+5R_6O|yMf4IqKbDG31KgG{ds1i&V)f7B)CeKsSg8naJ$*D zgP{wLC)2ze#(QkPY3Mt-B6P94sYj&yb9|d%W9J?up0q7DI@kxq0wVjjexYDUQ@njZ zFJ{E^x$YS$0`EzYrCB^!8m|%Fc_mD)eUZlYaU&+Wq=>B^L^ub~}%X~@c z;*r!SUOydD!@4c!BK8R#kqu6lmL6#>V0!QZUc@MMvDiQ?TTt|reef`lhnJ=r7$t#_n8&zV)^h_M>wtn)Z1z}J7 z!8PO@s(G>9YPu5{$VGAPQ27yK1!uTrc{rc+X8HCP_n~F+L$VQ&(_!B3dsZIFTd7MJ zv!ng+ym`b4aoxB^ZSqw1dMe*e^`@pR+9?R6C?R`K!)iKrZGAZtz;4=s-I3VRRhZ9?U`=L3Oc9AMEl~x&~a&#?!9cpW2bUR?Y+P4QIyF# zGrCbE=anH6D|)2zRHb00ldAs=Lo1@mP5W>0j{B}jHNqJh!l?~k-x)z0s50CNChy~p zuu|9UfdCvj;-uqwJ)E?;PT^meZ`zlMfoIv5iMz~PW1g`n@3r_%LC9chh@oF9e|V`4 z%S&m-iyiFst8=7OMl+x5I3)^(q%98=N|9*&HRTDx>qtz`0K+zw``WZ}tT*Fd6X?7jYsXE{DQC;aDdXg= zR-9mrt;6L`bD*VuY|IRn%KBqM80?Yw%ujb7|8*(AkPO>8jEH>e#(HTwRF#6l(aKn2 zV03zhmJ{CsU2W);xY2Xn#Mafo;PzqJ=(+s#5f0^{TPo|j|5xC;kG7NwLbQywm5~g9 zI(=4P5*xg3;h@#h&EBLKwyTk(x(J2e1O?o5e;zhZ6nwfRtQh=Ut_hU`VQwx24>D=0 zF@+72`=mK0rGA$CEO=oU@82hTZoCNpet!3-+W&W?|P6%#$C zTe-pcUeaAweAKr5L@7cxZ3H)=ob222O_Q}ZTXzu`1>{3v*n{$JL{IjAuWT2_S5w~< z48{fWk-gTPo{cEk{Y&)@G*LW`+?VR;czLFi%*!F9%!spR;m8pZMx!!W+$NQzaCFk8 zep!urGS=dj5UgN|$xZRCv3lk1t8DXecmK`=hmGu~{d<8S2Z(kjd@yaN=haGrwmU;* z+$@w>jDVf^tU;SJ2Z;>#B+PiTE81{qGAccVEKb8gweJ>>5q))h+Ug}6ab-hNsRgBL zciQgUz2^6f{Cg68iS(j?F}WTw#KBd&E9BquOKKfI7%Hy{E^LH?qghSsL^NixoHVyT zO%g86>auL0eko98m6;)&zx~y*b0~uLg>JQuE8HL(saxGNyJg-#Ai{9^_c+B^oXN24 zf(fG~!_HkmY>0tL{KUY$iiF42E58Kcfoc}NMied;k}@O`n$}d{7#SJ8oH8+<@8^CJ zP=%~#Q>&6)rV{D3xT253>jZD?r@W2btyKe~5vK_8Tn^0o+Dc&nJG@nFxz3p)TUD-e`MmUOIZ}&OhWVZ>(tXEe*a0=?48v*0+ zQrCdGVGTh_aKo7u=9x#sZEC1W_aCw&*T9{R{Y&}6m~uP7VyOn<59b=F&h^Rrm8Zl1 z<2?S66B2%?evD^ShOQz5R+gvAfZeVdx{oUa2^H`lbn{Bd64I#3*6wX;0)DyR^cI3S zXT-|>Vyu$f!lx-BQn4r1m0NOiQ#nBQhTvQ8uo&LZ&*_1g5kx?1fBj69*PCEF`wjSE z2T59wnHViBvG3}oXp1YHWVJAR(17ze zi+UJmf$l6D$}(si?vemba>aYAGJaw?IVVD_=YRuMa>P=1Of$#NsTb90OUMCtDl(_9o#41#Uukt$4b-%;5f?0Nc0>4N zZ&~&joC&mx&^nfkiZ_Ts(AkeOrA8@2&%zF7zL;X!neb zM9JltbauTyqwRi6$_LYd^Ja+!;Y#ca0vM#jsYO|3b7_(jiBnE`Z}`+1L#4<=cLKqC zFPVv|o8(?-(c2MPSOu7@E{MkBY#uJpl*3p*;F076vXLb{KL>=Qkf_u)xer$u!#eh` zCv{o#pXKyf^hAJb{fR}hqe0zd#cZ%gVY4l{QoXtH+R2SjR|IU1arOnF<+}Fia;VB4 zFwtm8=9V_ef|-PSzyQ=ha5FkTQ$F&bZ@Vy>{+v@PEC8J5$+W1<(lsf|Avf? z(PDzy`e>bYAlIR!OKeh7VVJ<3gi~RU7j(1|8j!J+Jj2C#6IzVK-_Lk&z&oE4i%_I9 zE1B<8v(xv0Jp#<>>RroClnxFoVoMMTlyf8z)S&Q}z^wJ zzvvWzZBac3X@T$^C?Z`}ZMfa0F|M!;H&eM68|k;}?|&ZlQ*W8H-HmRpmcy8uh#yRU zApv?}S#4)bB?En~$qss~0WOa4uym30gIgaa?q2{zk<&ylUb=~l;EEMW(Dy5PI9T)3 zuRKeDHI03j$xG}{xaeJFa+dO(Yt$mWD1d%}p24cWw!)sNkD^21k>``4Po7O{Zlt4H5tWY&r7Ka-&ua1fS55GQ7?q#Nsd*;NJYh7d4gH+w>_I6E$>CL<>Sze1;VthF<%}^p{<(vjW837lLZ?w@u9!a&hhKl|_{U z6RBhj%gw;Ue}CooyAL3a6A%Lv+k#Yu1y9i2v2WTn+gFRY+W&zACfIbp->IF{ZhJ&M zg9pDHPU4bS@~Q}_J6Q|5_{kxy)z5}KG^P+8WXll*R0m8@dIbHIaC@(RBRYP=K3uu( z+j_4Sx;FH&$13zT|J-!|kmX>@ZYd<`hrHa`{ zp^I5&ln}5v$Yy<+pUo?IzELb$87aB1$R;3n_-)$f6pcDtL})ESuXoC>ZZ`09KFmf~ zNme7VkZhSH+^`|P=I9C!q39%t_B}_Ul2;YwQ)v&ztY9Y7Tww~nk|n*d1vJ87`18H% z7MWXK$&CR_i7U>};bY=A(!c7ja@Eh*p6pp5ub-~MC&O><9R zK#eJ&D505#o0WfnHoknpEXt6nBJ;C`634_(<#H(r$?{@1cQ)<;9HqNYbQkT}LH|8d z=-+SH7QI|Xplsk2dsR4LtYaK2Mf5&;Ui3Xryq4~&i00c+BpsHYCW^PW@CWdIQwg55 z?j!^0*15Z;>jcu?g1X<>?RWxQbJQtTE8v_nZMN~TlQdg5Nz7(-cR-knu`(>gt$=>; zoocbNv4s-Zp&p%3q6$8zGLEv;Xs-!6)eZG%N8q_FIi0E;uoOE&=|~k><}s^Dg)N4Z zL{!1Xk^FF|IdIIn=jA8S$B)fre%rV5x6(dkwP!1ww)|Qxo2?<&bkvV}(K3=T*8OUTdsJ5ZwFNtM!hfGnwO?8;3;ph>z9X{|(fwW|QEV1mkC*LzFTseiW;F3_6PS zw;$Szj+H^}@1K_XUENT0rdv1tBAh~XJnJ=-FFQ+-MAU|Q{XFlKjyDmv;XUtfk+fox9Mgvz?mnmq~x}|2rw(xtf~Mbkx<$*R;r7n zKkrti4LY9pX1%~Z*r#AQt4PX6rW-deH&kkN&s4vequ6M_+N1oNP`N7K2&h~M-E6b_ zV5Q}=r^^n96h5l_e7w*KsOV}qyH0oDQ?u^+?R(2vx#IjX&z*h1hZSvpktyI_yT2SH z-qLF4dC`4*s`No+^L}m+43nYJnCbTh;Jvv;PuO`9@cb_H(izj+xTelm70BF3`_2$~ z#6ekic$iwwp*8901?eL$!+%6PQ~F?f{0EHR>Rm;h3yp~qqQGN<{JLTLbal%(psHaJ zr6PiZHGFe4_?a)DPwtS|!11KHGHP=J;9}e9{n{|gU z|LNBys%X8uVw=6Q(`;4IOZ>H=&If0qA(c_q@^Olf(R)1m6T*!~#C*H?bQRA=O%Gk0 z6*O|YWAPc}7FR%L9hXywu zPaGjYk=9ggXf}adS=EKVQv`gEqaV3es2Hnv?3J%02e$zwg#PFsgz2F)q0X70)3cwUS6N0+G?kW018;iVz+M`RWi|7Y_3W^q>nD6iz0B*^wxpqs)zK2JW{W-s?T_ zp3!JJ>~9qP!mcc{FDe(@%xSFSaQ=v#$+5bl)sRzeMP|YKEfxxX{)XLpU3gnQ1Q9$7L8!0K9j-@PyqNf|G4`s(?^xJ(1tV5|LtkYwD=KhX&i0>ShfP zTZFR^ZcSkWH3&{lE+9RZKPZ!jh0t!s_+73M zGN4_q_t5y^uJ?uo-bW$+T?i!i9yV`R!jClRRF&~=(D=`?^_a??t%kxRF%r;3eayNTQoPBf$8xWL~>P!>umk3D5>v=2F6GNCKHfV#C=<|-Of;lN@ z{`cSnCCt}J>$9sucC>BJL@t;9BEG@3DJ#4u148^xudq!ng5?9x(U(`RH6g!C2?5Vq;pjUaK^ zmt(&V8IF+{EoaPMyB)YfopZ%)ee5#9U*CfoQ92(FW=Y&{^#8OnYEmhIss7?S7wjj> z!@$r&`CC@Fj1gG14RkeR5dM{SEO>+~C$@2&U&AAY5kJPi7fio+rbYi5{I|QN zHu2tS>eh9Z1|YjPUKg+4knGnhhf%5!5K@5+jjs^%^qA7>bN@r$mlr;^y3RZ!+Y#vp z{%7w&#j^3rM4)VbKa5W#oc|PA(tO?N_SMX45@|`(HLth<6+X@9gQkqs*cw`8C;IAZ z6!Hchu)+G+Y&74~(r-_~s6UAdpq#{Lsj=?w9;06_Oc7J1i|$LlBZey~T}ggQFmo`2 z8emiUg?t$tD)3jg>r7$nr7QfjCRxsD;Z;5|Y*uU6;ePvYL*GFx9cK9go@Bm+>k))jkseVfAF(;PX`UrTbh z(0-C95ObyTc~*jPBan;aZcF**GQngoq3{b!_ki{{|LlmM>;mtpj?%_*s1RmiDD!9I zj;u$j#<9ADfGVfN4jyY$y>(-(#NW~3givG*8hdJ-{#dS-9UOk6Xd*8AYTX8^eAd?{ z5mb)L8no(`8>IC|>-H+x3M9Xn3e6=f(zs$LZpaQms>mf)vuCNgTBMka8I{NU_22pu zzf{?38=h$m-nK3GyB&O!X)QRIA<%cSZ^q5vp(7B@$xt1*_0$iWkK*5!WRl%L0(R)s5-#iYj5qZ*gNuXx<9SS@I$KtgC*z z4W#^4sUTu0!)FocZ|6|Oadu7uWt`G+i|9eOL7F8f#ewjJ5M{WPpXlR}cyHE6XWh?# zH%8J>KslcWXebRWsUeq^#Y#x!@&45zH%tg9ZUBWeqR2TQRV^J^UYfjtBxjJLAIN2TYw~z-Byiy>EP-ru=G)Fo}FjmbhQ;z=U;w1dkXS%p`PD~IE`uYW;9MjSO>qAi;F&a zbmdN|oB;xDSXoe(3gyzOu>BBO279kmV5aRxr$$ed%95OVnv=zQ58+S1AT4v;3>`}{ z5}*9Sdn|7;gqL&(JsH-EPu^CuSTz@PwIUIEAJ_!h(x~lnL*hgTu7=i@DwntUm|#VUxCJn#Z>UipV5ZdDa^F^O){q3di2_#s z965dI@k6gg+?D;7d5#{=71@TKLbC70JrSxLpL2FC+M@r#THfSan^?X0il_e7xidex z5)G|QF($I+Le0A~PPVR(D3gh~`F}+$=Xn>h zbyC^!oYG3kum}@}y~`Mf%|V~>8L##vdX-OJ`lKrG^c(5(#@d&nGzZ0qLE^G zJ_)^R^Z$tFDxAg<2>^XsH#!Lv!t~>{v z)-RL;PQ7VQqwN9DA}atrepm?)bhHKZB$Mtu@d|9gD#Ge8;BWfb0*)d4%+w?Nzp4rRhPx^`93yHwfsq>>X;KCOYUK*}i0l*u0*<^BaS*_8p|d z_%Ko)>)+;~P@Hu|<}vT&WH)AXF`KY+HD=7cl#nAHsYjdMkAvgihwKt&ZejKpMsAt| zY=`T-#3@1JO;4LqvirH9|NTz|0Rdrs{{Ifn^5By{o5tz>7i|x{katfn99^~lUDX=` z2EzLOH&mRaYRIk{;SGAVRa#;|v&4K3Ba)O85lMuh@ClBFg%bXRrSLP7Aio@(2De&7 zTT)WuIL#zi+?vvm>JjDPvukIjuXkX*indLlC?a+ClOwS{c;wd?hp{X;X0Dg83kU`-96R>hWbaMMu#@}&rXjiYMqZBgZ*2jxtW5#rfR%$V9E87=p}u444HQRKb@Ra zP#r+Gr4I*pCulfmaCbepySoH;2=4Cg65QQ_1$PMU?(XiA$$zJ6?tPi6sd?$H+Ev|; zU2CuX^%A%abN1W}UoG!c`4Qpfxzi>}wX1L~a35J|=@v!MuLk4jdoJn&c^St@Ae!+0 z+%G}=alNO5V${+au2_aes~bHQgN)5O>=_f~vW!?5*&XQ3{OzwhL;~g}%3w~SR=ZGG z^m)%rQd<;~n!uNI-|v}@O+u@!;9(t@nU|BSGy|W9 z+pOGHth51nB^Q(=3@{A>N1`NT8*`r_1egkx8Ra^}P27y3244-CLJHVF8^03{EJRaQ z+L0@38w1o6){?QId-^fvKPk7iixn=c0nzxqo^^}}WOZ)XgNlHs4US*RXdrBc1; znk_3cT6GOSU`Ya4;t^?_Q<`o^NhQ0tehBhHkp-|7DFgz0?}BVpCPF${lz*P^*Mj09 z+nm`-TB`0$Y&WC8h==Avv|i?@uPYPwo;3-}eh)}aFZiM{guo+pgB%BKFzKyNX< z{1%GMe;CDf3XR(9$%T;P_m~Fu@?9bd>{^RE?b3>0Zv+-Bq(6$KdYGlR*>G?ZQ(W`j`0mzIc4|YCw+3 z!6@r>&Layq+@6PecPnxb#bpM5QD3uA!Q(a4_^4y%CgWlcXM}C9@Yh2b*(}?5+Iafk z$7N-T`XVN;R z;!0r*>X-z51{rGrj;xPiNmz};OpFIA4ZMb%6WpWq@vaY)o1sW`$@XI<*J!3manX=L zwXj8ciaF+pa!xNU9qv5M6B!zxv6Tfi%&HSK>vlRTUNXO9E z!>@8oUj}0mqRZEhz4aF^-`9!#`0+(OO`U1$U(lF3h%*ld8)tLB{4m$W+c;OCk!r^V zpzdLkoqFK!m~TtLC2{$)WWv_-l$2i#t@`oqdZvvHZdAs_$a?{hIAGG%uhW4KUWhaO zruKG}Pe8r^Rc9klN?uzDw@BZ)%aLY^dY3KO9buHTnZ>><# z>sYRAJ=ErY(uNhU`nd(o+!wJTZ!s@rwq-U+D~t%XZvs!$@z(g{RxZ6lW1vqkA zv+);}ZxTi&^vLq0t}<8<_w4b90E82hH+`55`D{*bB6kll$^{{=W7QGWI=n-2VXBx> z6`MLUj}ZmTl(iXqI0JbC|8&)@P5n$d&nf}_W^<)>yXG8|v9sOM6RV2PO3vAj)s`1d zWER^1!@7Je%zV|UZX&BfRiTG})>{yJg+GwMA`@yE8d0QnENdOB{*quxq zG0oZ)n3IswW}#zWv=I29H3&ndKzrDct)mlx^$pkpwTHX_uAm6KFK8pi?Ea#euY3;f zX|l1}Fw5!ajS$HH+y{Wn)b28j7Uaa~mAq9Cq7MzEjT$fWQC@c$-3y?8=D}A$*nchE zhiwiry%JX;Z%Z}Pd}RXof~LqD93VS=DQ#4VKE|&%Rf>lSVa6CBXGq^8tOr~C?4gtA z(+eC3K7*gun2q)Vuhbg?UV{@gA)G=H&>{hlS>IVZd)$c^Nvp8zehcy0ZybKS9E{m_ z`@GzmJ3GRMtQ^3$7#WrrWO=E5zH4kf$y_>g9>YXu&4EIi+XdpWY%nsjW zx5Tj`q4X;@0Wp<{SMPn>g^#!%|( zXP7dSN{tI5Y77WQ+^XZ%OLw$mL(s5*?^zVv)LJ` z_O$i)mPi>rEg-!dq$Q_0YRgr&#jb)sg~>d%kFYYGXN030PY>h7>tkX)u`{`HZHV#P z$C2w?1a8!7w1Pgvx(W;OtW8L>njiwCD%;;H+#|hjXpUwSWX)w*T+-~3P-px^K;pK4 zQm3>PT*$vjkYwgFOPj$6^SU@0?PT>l?p58csWpwD<1CKUAK7ob0Y^OaoBG@MwHc*c zttqrH!vlY3)Pm7^KM^xs;rOMy;P|E*&E7vRGI#=sDMRENCz%qI0!w*k_9${XGH(4# zq2}494{n>PB_B_>~;-VBy zkp+Bn+w~rTcF111U&AH#i9&1)*UxTonaA4;V2yz_$zqu%qW#MY(KIfzVK7KH@(}xL zIBLK&UX)1twUuz`(SssYCTVa<)2ZMoHrLSpi*dx;oO}_Os{_M+9m3TN5%)GoV!OOm zk&sASOMP83-$RUdpj~Ljae(3iC{Cjv+_{#y^tnLMBM1~8#{A-2NbpPl+r)GDUrK&~ zdkw{&Xy7LooY)ygfedD3b*V<9fhz$P*Qv-C;jo!wx?^DVF8JQv`@{QG*pzpma0%OR zz>fY_g%?<(|LwQGGwW(%_lh1-bqlOoz-8;E_LFy#-tMZyLw{uZ>UV;vmAJ!;msySx z)1rz$f;AH_1O?O#uK2(7F;u-w<7t2l$S(Jsl`>!mF<5F#Y)=)UN!BSPAz|yR?Hchd za{tb%Cb9~fVh1C^3)5RUOUg)JD2J|Z9l09E!jc!;LeL~_pulNM=@)I|lc_IrzwUkL zp+R~4+|yX;RV#^i1-gJ;<8H+%L1~7jtKCI4FNbWiMh!gC_J@OizmdB>Ul*4qS{S># zgyPyOFUqwBwgR2EygYTD=pBNCMrfT5qm-O)yi_mha?OUE0{vRp#m8WLKf4F|n=@-QRd&f00EYMj9hJ#YVN|}Mc6s(_? z!O?9H7k@+y8Tz5F_^>Su`q#Gs1Hk`d3v2;q_(C%A!LY>1Y(>5nU%XEz)?Vnr7eO+l zfIo@;_Y{KRzt3E|flt=+oUT1naK?E}jB~?zMlb2|jg=?QmdL#1@oVX;O_%#^ zcHz$cM4PwMm3$is+5zX4pU>di)^VHL6-paPeEky)^k6O2#+&rzM!Sd|!oE*--rp3f zV}6PypSL-Mty=^=3mDMOA*EGgtQy%8Rjs}9FEjV-IGw@{C6lDCbgc=3vdd?=LgT@w zwT$qaxAnPfepvew*0a_X(U_Lu2@SNG>CVz^)7&d3J+p{q&|ZshcU=nSnH;zjzo4?zaGWs1vefj34+7xCC6TCdz2T z(5S5l$Q#hv*Kzd;tO}I1R+#;WRcA=9kk8Y+yCF|;D&8p)JYF)hU>9C^?-$o(nQO$x z&$zI7Tu85^j!G~wM@n5(tkS65gz%IXjz`i!<3(EiE8 zVby_ZSRaE{rC#c?PW`7z#GeFfh6X;Ji?VcPJSBIP8j9)jA|w(Jk?X|2mr$yW5L{yg_f_lo zZCO8s$e$bg(Rv0JC+N1f>_t;|7w5%G18u?0Ko9D6!L7nNKo*`vK`>rg*WcsIS?Qa? zYH3oH^TbhT4bHaEI) z-D8{N-{}4lDzoQOH=_lV#aCh1Ah%UQu=3H-hQsGT-TrXOGgHclaWBSxKDz;m`F>~Au|8o^b zLw=4X?u++Be$Y?muEC0tj;r^TQ{B8gAsZM{FNLWxzARgtVfyIwp?Xams}S3Ym$vm2 z{J~aUquSGYoiC|~*iH%t=hG9@g%hvY)u-H*_n7r&{?GvUS*~`c)&DzCmodJFZZEXK zI;m@e35J!4+75y*A&jIONWfBgL*yl3LrQ|OeGc7lBD_b_uDwog<+!U0#l?j-0L_)G zDy0Qq%ml%^{Zzonn?PWKe`g0H_7GtZGQ&$0`xejXubUBx4dytLdsUvdpCV36>7t&q z`4<4NZ2u&&5qln0ZRFALMBt!$B6TsRLPs0$NVhvCpT{)Z2(j=#dAe!z%oFVUjn7(aC#!R;2za9let+$o!Uebf0Z4Iss^n< z6Nd8Lid-gs37|^{ymO>@!yqP}DtZHG(*pLFj64;-Ppj0^XFYzbOguPp?Bzqp&_?J& zrShqoK@>%97HOiBMYV;%v;Tz6BI>k!kg_9VMvI@+w_&&XM;;sJmHtMJj>+|y2MVc%|bBxGnd*&hZ1<@E1kOS(o0A=h8b!!VCdc{ZK z{S1PoLsL-K$aio9(IbrGQA|L17wYz!1r5Cv zc6s^x3>4;!Bb-h>w$Z&-V7n;2IMxHcMY}xtktrzXOMoT=lasZ6jhmzk zwd;_K98s}p+C4K^l=E?#%>ftor*)7AJ=<@Dv9E?%Sy7OPL{;i}R)7tVwN?)k{eTG5 zdKC$;A?tf8?Cl@v-!&~Lw=0!rpols6o|l?|GKuxI%C-7Z|J$!J8wyW_c&}AAc^ap& z)8ji;<~BH^8-LH6HlQ;TZu-tEmRR#IP|byZBsdYQD^U!@0gNZev9g43?hO|htGVj3h}i=*KH629Z?A%m{Itwn=dJoLgw=ePT?;-DuRFa`j7Ga z(JR3DLe0)=tt9ySkn|^;T0#lRs_7yH_z{w~lo_05|IHaw!j~+&PicDVr@C3g-Nni| zT#N-fZq?P!8GgO#+U6y~9Z0Ru;9WTRD46vOq->u-&9TD%p^@61k>t}HzhVj~2UQ!*kkeQ6X!VCj(C#0F)J}mQElMKhKwN5YEE~W@K>itU4_iY_6O~#q5K5>U+ zXkt8YG1y5_3{T+ESf&QxR-zQ381P{D3xxUc)Bq zsi-so(nH-de`mV*j{MbNsa9W3aG98MEdvZ6g&JTG?sV>PWIk?ZU#`8RKPj@2amy7P zuDXk(j#?A;4_)qONqyQGK5OmZOrEo91^-SAq-{|>r=8=Vblk9Cezd@tdV~{jH5l>N z7P4_4>o8yYxrl&h_Kp~tE1p}T2`{#)hxc@Zvb}obe!hM0NUh7uXH4Dyd-_Qb@^rZY z>vXj_b-qv!-v2R zF>TGwcRlNM8`rs3%kdJ}Pl%*TrMaAYgL}^VB3ORw)w{3v63#+PHES2EQ^B?!!b8v3 zT;x;PUYBVZoSDBrUFQHJ-AGFU(h_z>Gp3|1>wL<|9hh=qZjb5dPOPt9MMHA%yU%5E zqu3Q6{hUYz8QX3_<)bcaAC+N_b|oK$0H~Y`_>hZ{5|cp_x&h)kVT}u-^*pYL6^@QN#>|AwP`VN0o%)P*~(E& zTrqv;sHtU@PCYs}Eo=G<>8s{y<``&{| zK@v&(f%yae9hji)_mN&}cYzK&w4~grsqUA<_xB^th6VC>WAn8}4}3^03xIU{I|(x2 z6dM|W2yF)7ESC>f@h@i|=fIPIXzkBN0K*TXt3E}tU;{{xGfS4GK}Vm>{h$jOhkG4${EHMn)Gu~y7O=X(sy2dSJlxRjTo&(u)W z!+K|?$zx;d!srJsmbA1mIa)0kuR5s03KJP%_bNuazWZ0o*0+h?YW%X@fDE`6VS#zn z-fB6tTi#A0xN%z-V}$B2Y9(%gQG1l6net1k1+jVd3`hlUZ)$(FQEmURkM}V*ltCT5 zLdlar)%Vkm?+LCto>0@29h+^^>BJI8i?-mh zdqpcol-cdX-XD?+hIyo3Va{Oi8gJ{JA9C1c_Oqb)^2Kh;4U#gg+~<^qk#B94u5-$~ndL-@(=ff9CqJeo>${s13lC1`%|4wk zH8}UTPb4FF)o9V7>9Sja_owZQ3b*`vnc?Z|Qrw^5`Tjf~G3+@B9@>wX_^e3FW3BD3BpcP1ZTww4%Ast+ZYkMO_6mg3-E_=x1L12Znav@@QIvx|! zu$)%O_Af`O{}twK1SPuc%_bvr5Dr#O7rdavwkW(B{LxX_bl4WZ@e|~?1d1UEN0F(N zPtM(THYn%UjG!b;C+#!AvS8%PZoLX$T?hmq-Zmu=`WiV+1Mg1sFuB&?GRWxB`!)cX-C-sDAqT{Wqe>$JOBwmV655N0EDN zz{y6cqJ({gm!0umEU)^?Nm%Uk^vb%8k+!?{uKnU1LWuyQzQ1FU->e+Vg4Qg537 zHA@+|z$5v!66WPNhGG%5HdRxw%(`BZ1DW)fT=O>@qR1P`tx|QtnrO8M7b>M_LXxs+ zQTjZ?LDzo8;jsF_w2%#I12<5{VjPBt z$9sdx>Ls^`HDP35yq$ska(sYHrT${`w@~1I!vyQ&VZL4b2>=e#OWY8c^S0gyfm)T# zL-1?)}tVVt$T`z_p4^Yjx+h{T-U7I)bTkz zs!HCap~!vPE1+#=SO#;Uz1Z4;WsG`??Il)1DkY zdQ*D5haBXM!{`6GfD0KG1I5h^yewh&vqCzQF;M^%>Zl0Q)Avy6e1YL!vC66EM0KxP zne5|0b1%@D%3CXq(PCJ}GvWe{6ZZD$lLBAXoyk`?UG9sLbY}sTvKA1yDD_xCRnwXr z5C^EShQYy1In@5kv116Ne{zf}uDitvUVDdICXu@7-0?TLy4dLNx@=i}}V8mAj;>uy9o3Y2i6cJF5*hXFQcB zx^ylz*vX~?F;pRRuE4vW+JajoZn$n_x9;{*$(~+j)kyutBy9y3qJY`q5CJ~;BkAR< zW`qq!=D^4HJ@;M+bK}`3PZZjP`xA|780117m!0!ZaakxvtwEooqWda{2M%3Hl5X~n&Po)x=E+Go0* z&r+w{X^&yif@+)KiA9gd;86}-WtHY?_-MLtIUkV%yctJYkLc4j<;GU|{q3|-2L3$& z>inn&-Mtp0C}_z+S0O%B#95*J^X=#W-#upnT8NMVednYj?ScXK=h^Npb%LY1?}Mw% z$8@{B3i`x>qVps_On$WiPqUbk_aT)|HQIYsimk|T zIxb{6WFsd2u5-lBEuv8E`mI++71V>!3wrk$8uRJgtmx0RhcwA{36N{F*3xP^;uHZ@ zuiDx0NXznuxGmap+}*RR2vQn}#YQ2>d4BR84oQHv0IIEw#ocTh!_h-@=9LZ=c)V3xi z=293K&=fO*UAdB7Ure(q$Y_7C>ORB9?BX;*5Y78!XAQi?Nze~*Ix#eR4{FN86A zc)XuhqIN%*;kC50wl8gpvijuav1c5>NUdlifB$ne6Vq?b#)I>wddIicKICVEmVh$F zo=NqtzxT27w&-lJ-jO}O@+iUo`^E3ews_F-lI5fj+uULH6Y_YL&SxDg1@in~b^kTL zRfjS9mVbOns!q`R9|0n`|AZpJ-L`BR20Hyib4cKjgbd+;B51gQJ!nv&Ag2Fo$v79q z4h`xb5`=+=!6`{bUUM?ATNQ+IKBi^0>&+R=)X$CG(bD=)$3sE=%TfAIcd$$wf0NkE zRAQ#;SR9$)qDKwI@?fg6RTlJ>_qfU|&S&ZsZ{%VXLW?9mAM$@&*OdPu*@3`-e|%4! z8>pXUOK?2OnJYywplIp4UhYbk5ATUw2@-(olM!;cg%(CyKm9}&vKR#YM;TaLt%z?K zfJ3bl9B4#a41qlK%MyPsNaMTg>8Sh72gZ>5(|K>!OgpS#AZ*BDv0cnq{^BP_Vg|g7 z|N9*uYQOjUjfCL3z_U%NMBJyuC7j7+afH?ady_Of??Ynbf7Oso#1%h8?@q6vZcj7} zeE!r;-5J5lh_#4ozN z+U9P{Q3F)VxAVo!7c=~^T_LCQX|(0XI)|$guuM0YFzOwVPbvqslqt1s@OX#eAGB`4 z;SFA%+}azv23eA++eIHGz2n(3&ZLiP{&~+|=!$ChAbWRP=MH?QL1S+z>+*iwL1grP zKEKnl<3)!s!HenH%6nPJ5yIzB(A~z7iD*xce3xXh{l0p1HH~(D%LM-qO{ZbF;f1oZ z@o+DU9NIaEOBZ8x<7K+py7>a>AvQt3#ph+Tzp}Lc=sAJ3dQDP|*AAunF6$oH%tOeg z9LZi`Rs5sfLlDmx z5N|`fh%H_cs}K|h7D-LZHE+hhU0cocF}<_BOz`6fv=I2a&l9g8u;h?+9QFZM@lF8y zqQ&G4Ra%}fCPQc7T&cj00$wVh?CbotN#cUkaba8InC;F&Jh_2Uvmj_5tKHDAC+9@|K>5knV0LQ$Vo zw@aHx1w{B_@~`g!y5+-sp$5#Ecfv=E~?jlk|-Bs@*bE z*%|xsp)&e4HXn1z!j2=7H;pPl=A=)CYFBO*h;O_i?o-;g_VL(UdT3_RhhFxqKQ?{( zMyu8T%P<_P3g)J$;b*tP*#Pen$d4zmtn2xjCmz*6@rRBEs#6l4V~S*C3jf7AK+*UY zGSfm_pL(<@Cz_;njZ>ZDP<#Vm$d(WpbSut}WHSHrvXEW0-Xx$VC>A;%wjb=xVt8Ws zqknf0$s`Ie#T|96E*kX{Vi0w1s4)wC%3~pV2w1c}V;XTv1kfFvIAF!D?*X7$|6^W8 zDY6B&_snc!@Ws?#$6GwK&-FiXW!a-Kf~oqXZ6RT@u=;4~QtAoVoaxAQFEHkLN0Q9n zu63VX27Z9m>lPP7kxzyOj@+IAqmmtn*4RdKi02e~Uf`j;Rb3c5@lbD+o~*^oeZ%Kj z6kd(E{0s_SOw&Eb#51t27;9(Bw7DPp=wCrH=i+p`0l6 z%8|&CWL9+RoTCe2Pyv>|9DKDvq%!O{y4nm-(-(z&hD0-Dz61~e>q}UoiZGAHUX46ab|@uhQ7Ng+>0Uu1-1U}=xeDXV;XJ|vg5`K8&Bwe3i$Z^6$jl# z!T4{s87_w`A!i~N;unE@5vO&{Jnf0*AavI132El$e~WD|Ogb^`_N4>yy-ctGg?bbf zvp08UvJsUc=!I|ess*#wIaiX4GfIwX#6Xk=q!no-J)R>#ZlEQ>EJ9f{@@1S~tK{F; zxJ8iRc<1Fb6IrMxR{g%a)h`qESbn-zdz>Gg&^X569@Ou6Pig@qDI!ae`9E+_SQZo}NlT7ihyPi<+SR|IpB6TiABc$i}`b5wyR^!gx2t~aSz3rQI z{IJ)}zAy+7SWmu`Ztkj%a6QpDdGxPtNgS#7N%74wP94!EC@e99VJ^6XLhT0^#(OVU?~z zeYC$lYB&0?msh6v#IJ|9gIVAbKNNCLB1sO&Ueo2W>Nuc>PODSEMz5kXmSlVb^oVMS zD~b{4I}FpxmVXexx;+ptl;cDfdX<%rT>Ilv*Owq?s&txh6Y6%K2knJ29$BUqIZ$^z zyW2(mo__bdZ)OtT7*i2={xq?Didw3f&u`fDIlv0Lm`Sq@%R@^bZ+PHID%%5P#cm4= zVyxV?1koA&5@vty0q&d}{R=~V+&ofviP2!xXYDt+K+auf#Ym%sgbRXsm zl5aQFTVeCqSBoYsFPsGaV!g|AZAvAfyyvDXplvDlLUy@Tj<{ z&LENq91PMSvd{Ifon6K-juM<_HtZ`gb`I28uL=^ks+RhXT3^l9V*|Sd(QM?YZO@sB zA5|f5$TDLCTNcfzw`}O|W42|P8r?GWk88hQxmCgxiZ3VR?E!2BhCgl;AOmXukpZ;6 z3Pu2n51w>gCdfA-4?jMmSTjQ>CU{u&vSqq_)ySh%?BYMj29TgkxSTQ)OQm(QXfX)h^?Bfis%|E&?BsnG&dfel_-H z%c|K~yo6|dkdQ5aP#1^-Wc?l|+q gIsPA=OX3X?bTYG&?a&$jA6YFWCNEkeY#8{z06M0ZegFUf diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/logs/single.png b/wp-content/plugins/wp-mail-smtp/assets/images/logs/single.png deleted file mode 100644 index b14cfbeb81776c7aeb4342a5778aa44caf4edbae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56323 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 SFCQ;tC|OCRFV*74f&T?a$N&`p diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/menu-icon.svg b/wp-content/plugins/wp-mail-smtp/assets/images/menu-icon.svg deleted file mode 100644 index b0ddb05..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/menu-icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/pro-badge.svg b/wp-content/plugins/wp-mail-smtp/assets/images/pro-badge.svg deleted file mode 100644 index c4d1fa4..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/pro-badge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/providers/aws.svg b/wp-content/plugins/wp-mail-smtp/assets/images/providers/aws.svg deleted file mode 100644 index 3c9979d..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/providers/aws.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/providers/google.svg b/wp-content/plugins/wp-mail-smtp/assets/images/providers/google.svg deleted file mode 100644 index 3b5294e..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/providers/google.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/providers/mailgun.svg b/wp-content/plugins/wp-mail-smtp/assets/images/providers/mailgun.svg deleted file mode 100644 index db84d95..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/providers/mailgun.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/providers/microsoft.svg b/wp-content/plugins/wp-mail-smtp/assets/images/providers/microsoft.svg deleted file mode 100644 index 45ebbda..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/providers/microsoft.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/providers/pepipost-smtp.png b/wp-content/plugins/wp-mail-smtp/assets/images/providers/pepipost-smtp.png deleted file mode 100644 index 6f67bcda68afd5887bd2f2486d7a1d89f79c27bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3236 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 Hts?#p9fcU; diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/providers/php.svg b/wp-content/plugins/wp-mail-smtp/assets/images/providers/php.svg deleted file mode 100644 index c4cb621..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/providers/php.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/providers/sendgrid.svg b/wp-content/plugins/wp-mail-smtp/assets/images/providers/sendgrid.svg deleted file mode 100644 index a0693d8..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/providers/sendgrid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/providers/sendinblue.svg b/wp-content/plugins/wp-mail-smtp/assets/images/providers/sendinblue.svg deleted file mode 100644 index 4e4adcc..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/providers/sendinblue.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/providers/smtp-com.svg b/wp-content/plugins/wp-mail-smtp/assets/images/providers/smtp-com.svg deleted file mode 100644 index fdfb5d1..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/providers/smtp-com.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/providers/smtp.svg b/wp-content/plugins/wp-mail-smtp/assets/images/providers/smtp.svg deleted file mode 100644 index 2f31c7e..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/providers/smtp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/providers/zoho.svg b/wp-content/plugins/wp-mail-smtp/assets/images/providers/zoho.svg deleted file mode 100644 index 4217c48..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/providers/zoho.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/recommended.svg b/wp-content/plugins/wp-mail-smtp/assets/images/recommended.svg deleted file mode 100644 index dc9871e..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/images/recommended.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/js/smtp-about.js b/wp-content/plugins/wp-mail-smtp/assets/js/smtp-about.js deleted file mode 100644 index a57c4af..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/js/smtp-about.js +++ /dev/null @@ -1,181 +0,0 @@ -/* eslint-disable no-prototype-builtins */ -/* global wp_mail_smtp_about */ -'use strict'; - -var WPMailSMTP = window.WPMailSMTP || {}; -WPMailSMTP.Admin = WPMailSMTP.Admin || {}; - -/** - * WP Mail SMTP Admin area About module. - * - * @since 1.5.0 - */ -WPMailSMTP.Admin.About = WPMailSMTP.Admin.About || ( function( document, window, $ ) { - - /** - * Public functions and properties. - * - * @since 1.5.0 - * - * @type {object} - */ - var app = { - - /** - * Start the engine. DOM is not ready yet, use only to init something. - * - * @since 1.5.0 - */ - init: function() { - - // Do that when DOM is ready. - $( document ).ready( app.ready ); - }, - - /** - * DOM is fully loaded. - * - * @since 1.5.0 - */ - ready: function() { - - app.pageHolder = $( '.wp-mail-smtp-page-about' ); - - app.bindActions(); - - $( '.wp-mail-smtp-page' ).trigger( 'WPMailSMTP.Admin.About.ready' ); - }, - - /** - * Process all generic actions/events, mostly custom that were fired by our API. - * - * @since 1.5.0 - */ - bindActions: function() { - - /* - * Make plugins description the same height. - */ - jQuery( '.wp-mail-smtp-admin-about-plugins .plugin-item .details' ).matchHeight(); - - /* - * Install/Active the plugins. - */ - $( document ).on( 'click', '.wp-mail-smtp-admin-about-plugins .plugin-item .action-button .button', function( e ) { - e.preventDefault(); - - var $btn = $( this ); - - if ( $btn.hasClass( 'disabled' ) || $btn.hasClass( 'loading' ) ) { - return false; - } - - var $plugin = $btn.closest( '.plugin-item' ), - plugin = $btn.attr( 'data-plugin' ), - task, - cssClass, - statusText, - buttonText, - successText; - - $btn.addClass( 'loading disabled' ); - $btn.text( wp_mail_smtp_about.plugin_processing ); - - if ( $btn.hasClass( 'status-inactive' ) ) { - - // Activate. - task = 'about_plugin_activate'; - cssClass = 'status-active button button-secondary disabled'; - statusText = wp_mail_smtp_about.plugin_active; - buttonText = wp_mail_smtp_about.plugin_activated; - - } else if ( $btn.hasClass( 'status-download' ) ) { - - // Install & Activate. - task = 'about_plugin_install'; - cssClass = 'status-active button disabled'; - statusText = wp_mail_smtp_about.plugin_active; - buttonText = wp_mail_smtp_about.plugin_activated; - - } else { - return; - } - - // Setup ajax POST data. - var data = { - action: 'wp_mail_smtp_ajax', - task: task, - nonce : wp_mail_smtp_about.nonce, - plugin: plugin - }; - - $.post( wp_mail_smtp_about.ajax_url, data, function( res ) { - var isInstallSuccessful; - - if ( res.success ) { - isInstallSuccessful = true; - if ( 'about_plugin_install' === task ) { - $btn.attr( 'data-plugin', res.data.basename ); - successText = res.data.msg; - if ( ! res.data.is_activated ) { - cssClass = 'button'; - statusText = wp_mail_smtp_about.plugin_inactive; - buttonText = wp_mail_smtp_about.plugin_activate; - } - } else { - successText = res.data; - } - $plugin.find( '.actions' ).append( '
' + successText + '
' ); - $plugin.find( 'span.status-label' ) - .removeClass( 'status-active status-inactive status-download' ) - .addClass( cssClass ) - .removeClass( 'button button-primary button-secondary disabled' ) - .text( statusText ); - $btn - .removeClass( 'status-active status-inactive status-download' ) - .removeClass( 'button button-primary button-secondary disabled' ) - .addClass( cssClass ).html( buttonText ); - } else { - isInstallSuccessful = false; - - if ( - res.hasOwnProperty( 'data' ) && - res.data.hasOwnProperty( 0 ) && - res.data[ 0 ].hasOwnProperty( 'code' ) && - res.data[ 0 ].code === 'download_failed' - ) { - - // Specific server-returned error. - $plugin.find( '.actions' ).append( '
' + wp_mail_smtp_about.plugin_install_error + '
' ); - } else { - - // Generic error. - $plugin.find( '.actions' ).append( '
' + res.data + '
' ); - } - - $btn.html( wp_mail_smtp_about.plugin_download_btn ); - } - - if ( ! isInstallSuccessful ) { - $btn.removeClass( 'disabled' ); - } - $btn.removeClass( 'loading' ); - - // Automatically clear plugin messages after 3 seconds. - setTimeout( function() { - $( '.plugin-item .msg' ).remove(); - }, 3000 ); - - } ).fail( function( xhr ) { - console.log( xhr.responseText ); - } ); - } ); - } - }; - - // Provide access to public functions/properties. - return app; -}( document, window, jQuery ) ); - -// Initialize. -WPMailSMTP.Admin.About.init(); diff --git a/wp-content/plugins/wp-mail-smtp/assets/js/smtp-about.min.js b/wp-content/plugins/wp-mail-smtp/assets/js/smtp-about.min.js deleted file mode 100644 index 797a3a5..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/js/smtp-about.min.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";var WPMailSMTP=window.WPMailSMTP||{};WPMailSMTP.Admin=WPMailSMTP.Admin||{},WPMailSMTP.Admin.About=WPMailSMTP.Admin.About||function(a,p){var t={init:function(){p(a).ready(t.ready)},ready:function(){t.pageHolder=p(".wp-mail-smtp-page-about"),t.bindActions(),p(".wp-mail-smtp-page").trigger("WPMailSMTP.Admin.About.ready")},bindActions:function(){jQuery(".wp-mail-smtp-admin-about-plugins .plugin-item .details").matchHeight(),p(a).on("click",".wp-mail-smtp-admin-about-plugins .plugin-item .action-button .button",function(a){a.preventDefault();var i=p(this);if(i.hasClass("disabled")||i.hasClass("loading"))return!1;var s,n,l,e,o,d=i.closest(".plugin-item"),t=i.attr("data-plugin");if(i.addClass("loading disabled"),i.text(wp_mail_smtp_about.plugin_processing),i.hasClass("status-inactive"))s="about_plugin_activate",n="status-active button button-secondary disabled",l=wp_mail_smtp_about.plugin_active,e=wp_mail_smtp_about.plugin_activated;else{if(!i.hasClass("status-download"))return;s="about_plugin_install",n="status-active button disabled",l=wp_mail_smtp_about.plugin_active,e=wp_mail_smtp_about.plugin_activated}var u={action:"wp_mail_smtp_ajax",task:s,nonce:wp_mail_smtp_about.nonce,plugin:t};p.post(wp_mail_smtp_about.ajax_url,u,function(a){var t;a.success?(t=!0,"about_plugin_install"===s?(i.attr("data-plugin",a.data.basename),o=a.data.msg,a.data.is_activated||(n="button",l=wp_mail_smtp_about.plugin_inactive,e=wp_mail_smtp_about.plugin_activate)):o=a.data,d.find(".actions").append('
'+o+"
"),d.find("span.status-label").removeClass("status-active status-inactive status-download").addClass(n).removeClass("button button-primary button-secondary disabled").text(l),i.removeClass("status-active status-inactive status-download").removeClass("button button-primary button-secondary disabled").addClass(n).html(e)):(t=!1,a.hasOwnProperty("data")&&a.data.hasOwnProperty(0)&&a.data[0].hasOwnProperty("code")&&"download_failed"===a.data[0].code?d.find(".actions").append('
'+wp_mail_smtp_about.plugin_install_error+"
"):d.find(".actions").append('
'+a.data+"
"),i.html(wp_mail_smtp_about.plugin_download_btn)),t||i.removeClass("disabled"),i.removeClass("loading"),setTimeout(function(){p(".plugin-item .msg").remove()},3e3)}).fail(function(a){console.log(a.responseText)})})}};return t}(document,(window,jQuery)),WPMailSMTP.Admin.About.init(); \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/js/smtp-admin.js b/wp-content/plugins/wp-mail-smtp/assets/js/smtp-admin.js deleted file mode 100644 index d42077a..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/js/smtp-admin.js +++ /dev/null @@ -1,400 +0,0 @@ -/* globals wp_mail_smtp, ajaxurl */ -'use strict'; - -var WPMailSMTP = window.WPMailSMTP || {}; -WPMailSMTP.Admin = WPMailSMTP.Admin || {}; - -/** - * WP Mail SMTP Admin area module. - * - * @since 1.6.0 - */ -WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || ( function( document, window, $ ) { - - /** - * Public functions and properties. - * - * @since 1.6.0 - * - * @type {object} - */ - var app = { - - /** - * State attribute showing if one of the plugin settings - * changed and was not yet saved. - * - * @since 1.9.0 - * - * @type {boolean} - */ - pluginSettingsChanged: false, - - /** - * Start the engine. DOM is not ready yet, use only to init something. - * - * @since 1.6.0 - */ - init: function() { - - // Do that when DOM is ready. - $( document ).ready( app.ready ); - }, - - /** - * DOM is fully loaded. - * - * @since 1.6.0 - */ - ready: function() { - - app.pageHolder = $( '.wp-mail-smtp-tab-settings' ); - - // If there are screen options we have to move them. - $( '#screen-meta-links, #screen-meta' ).prependTo( '#wp-mail-smtp-header-temp' ).show(); - - app.bindActions(); - }, - - /** - * Process all generic actions/events, mostly custom that were fired by our API. - * - * @since 1.6.0 - */ - bindActions: function() { - - // Mailer selection. - $( '.wp-mail-smtp-mailer-image', app.pageHolder ).click( function() { - $( this ).parents( '.wp-mail-smtp-mailer' ).find( 'input' ).trigger( 'click' ); - } ); - - $( '.wp-mail-smtp-mailer input', app.pageHolder ).click( function() { - var $input = $( this ); - - if ( $input.prop( 'disabled' ) ) { - - // Educational Popup. - if ( $input.hasClass( 'educate' ) ) { - app.education.upgradeMailer( $input ); - } - - return false; - } - - // Deselect the current mailer. - $( '.wp-mail-smtp-mailer', app.pageHolder ).removeClass( 'active' ); - - // Select the correct one. - $( this ).parents( '.wp-mail-smtp-mailer' ).addClass( 'active' ); - - // Hide all mailers options and display for a currently clicked one. - $( '.wp-mail-smtp-mailer-option', app.pageHolder ).addClass( 'hidden' ).removeClass( 'active' ); - $( '.wp-mail-smtp-mailer-option-' + $( this ).val(), app.pageHolder ).addClass( 'active' ).removeClass( 'hidden' ); - } ); - - app.mailers.smtp.bindActions(); - - // Dismiss Pro banner at the bottom of the page. - $( '#wp-mail-smtp-pro-banner-dismiss', app.pageHolder ).on( 'click', function() { - $.ajax( { - url: ajaxurl, - dataType: 'json', - type: 'POST', - data: { - action: 'wp_mail_smtp_ajax', - task: 'pro_banner_dismiss' - } - } ) - .always( function() { - $( '#wp-mail-smtp-pro-banner', app.pageHolder ).fadeOut( 'fast' ); - } ); - } ); - - // Dissmis educational notices for certain mailers. - $( '.js-wp-mail-smtp-mailer-notice-dismiss', app.pageHolder ).on( 'click', function( e ) { - e.preventDefault(); - - var $btn = $( this ), - $notice = $btn.parents( '.inline-notice' ); - - if ( $btn.hasClass( 'disabled' ) ) { - return false; - } - - $.ajax( { - url: ajaxurl, - dataType: 'json', - type: 'POST', - data: { - action: 'wp_mail_smtp_ajax', - task: 'notice_dismiss', - notice: $notice.data( 'notice' ), - mailer: $notice.data( 'mailer' ) - }, - beforeSend: function() { - $btn.addClass( 'disabled' ); - } - } ) - .always( function() { - $notice.fadeOut( 'fast', function() { - $btn.removeClass( 'disabled' ); - } ); - } ); - } ); - - // Show/hide debug output. - $( '#wp-mail-smtp-debug .error-log-toggle' ).on( 'click', function( e ) { - e.preventDefault(); - - $( '#wp-mail-smtp-debug .error-log-toggle' ).find( '.dashicons' ).toggleClass( 'dashicons-arrow-right-alt2 dashicons-arrow-down-alt2' ); - $( '#wp-mail-smtp-debug .error-log' ).slideToggle(); - $( '#wp-mail-smtp-debug .error-log-note' ).toggle(); - } ); - - // Remove mailer connection. - $( '.js-wp-mail-smtp-provider-remove', app.pageHolder ).on( 'click', function() { - return confirm( wp_mail_smtp.text_provider_remove ); - } ); - - // Copy input text to clipboard. - $( '.wp-mail-smtp-setting-copy', app.pageHolder ).click( function( e ) { - e.preventDefault(); - - var target = $( '#' + $( this ).data( 'source_id' ) ).get( 0 ); - - target.select(); - - document.execCommand( 'Copy' ); - - var $buttonIcon = $( this ).find( '.dashicons' ); - - $buttonIcon - .removeClass( 'dashicons-admin-page' ) - .addClass( 'dashicons-yes-alt wp-mail-smtp-success wp-mail-smtp-animate' ); - - setTimeout( - function() { - $buttonIcon - .removeClass( 'dashicons-yes-alt wp-mail-smtp-success wp-mail-smtp-animate' ) - .addClass( 'dashicons-admin-page' ); - }, - 1000 - ); - } ); - - // Notice bar: click on the dissmiss button. - $( '#wp-mail-smtp-notice-bar' ).on( 'click', '.dismiss', function() { - var $notice = $( this ).closest( '#wp-mail-smtp-notice-bar' ); - - $notice.addClass( 'out' ); - setTimeout( - function() { - $notice.remove(); - }, - 300 - ); - - $.post( - ajaxurl, - { - action: 'wp_mail_smtp_notice_bar_dismiss', - nonce: wp_mail_smtp.nonce, - } - ); - } ); - - app.triggerExitNotice(); - app.beforeSaveChecks(); - - // Register change event to show/hide plugin supported settings for currently selected mailer. - $( '.js-wp-mail-smtp-setting-mailer-radio-input', app.pageHolder ).on( 'change', this.processMailerSettingsOnChange ); - }, - - education: { - upgradeMailer: function( $input ) { - - $.alert( { - backgroundDismiss: true, - escapeKey: true, - animationBounce: 1, - theme: 'modern', - type: 'blue', - animateFromElement: false, - draggable: false, - closeIcon: true, - useBootstrap: false, - title: wp_mail_smtp.education.upgrade_title.replace( /%name%/g, $input.siblings( 'label' ).text().trim() ), - icon: '">
' + wp_mail_smtp.education.upgrade_icon_lock + '' + wp_mail_smtp.education.upgrade_bonus + wp_mail_smtp.education.upgrade_doc + '' ); - }, - buttons: { - confirm: { - text: wp_mail_smtp.education.upgrade_button, - btnClass: 'btn-confirm', - keys: [ 'enter' ], - action: function() { - window.open( wp_mail_smtp.education.upgrade_url + '&utm_content=' + encodeURI( $input.val() ), '_blank' ); - } - } - } - } ); - } - }, - - /** - * Individual mailers specific js code. - * - * @since 1.6.0 - */ - mailers: { - smtp: { - bindActions: function() { - - // Hide SMTP-specific user/pass when Auth disabled. - $( '#wp-mail-smtp-setting-smtp-auth' ).change( function() { - $( '#wp-mail-smtp-setting-row-smtp-user, #wp-mail-smtp-setting-row-smtp-pass' ).toggleClass( 'inactive' ); - } ); - - // Port default values based on encryption type. - $( '#wp-mail-smtp-setting-row-smtp-encryption input' ).change( function() { - - var $input = $( this ), - $smtpPort = $( '#wp-mail-smtp-setting-smtp-port', app.pageHolder ); - - if ( 'tls' === $input.val() ) { - $smtpPort.val( '587' ); - $( '#wp-mail-smtp-setting-row-smtp-autotls' ).addClass( 'inactive' ); - } else if ( 'ssl' === $input.val() ) { - $smtpPort.val( '465' ); - $( '#wp-mail-smtp-setting-row-smtp-autotls' ).removeClass( 'inactive' ); - } else { - $smtpPort.val( '25' ); - $( '#wp-mail-smtp-setting-row-smtp-autotls' ).removeClass( 'inactive' ); - } - } ); - } - } - }, - - /** - * Exit notice JS code when plugin settings are not saved. - * - * @since 1.9.0 - */ - triggerExitNotice: function() { - - var $settingPages = $( '.wp-mail-smtp-page-general:not( .wp-mail-smtp-tab-test )' ); - - // Display an exit notice, if settings are not saved. - $( window ).on( 'beforeunload', function() { - if ( app.pluginSettingsChanged ) { - return wp_mail_smtp.text_settings_not_saved; - } - } ); - - // Set settings changed attribute, if any input was changed. - $( ':input:not( #wp-mail-smtp-setting-license-key, .wp-mail-smtp-not-form-input )', $settingPages ).on( 'change', function() { - app.pluginSettingsChanged = true; - } ); - - // Clear the settings changed attribute, if the settings are about to be saved. - $( 'form', $settingPages ).on( 'submit', function() { - app.pluginSettingsChanged = false; - } ); - }, - - /** - * Perform any checks before the settings are saved. - * - * Checks: - * - warn users if they try to save the settings with the default (PHP) mailer selected. - * - * @since 2.1.0 - */ - beforeSaveChecks: function() { - - $( 'form', app.pageHolder ).on( 'submit', function() { - if ( $( '.wp-mail-smtp-mailer input:checked', app.pageHolder ).val() === 'mail' ) { - var $thisForm = $( this ); - - $.alert( { - backgroundDismiss: false, - escapeKey: false, - animationBounce: 1, - theme: 'modern', - type: 'orange', - animateFromElement: false, - draggable: false, - closeIcon: false, - useBootstrap: false, - icon: '">' + wp_mail_smtp.default_mailer_notice.icon_alt + ''+wp_mail_smtp.education.upgrade_icon_lock+''+wp_mail_smtp.education.upgrade_bonus+wp_mail_smtp.education.upgrade_doc+"")},buttons:{confirm:{text:wp_mail_smtp.education.upgrade_button,btnClass:"btn-confirm",keys:["enter"],action:function(){e.open(wp_mail_smtp.education.upgrade_url+"&utm_content="+encodeURI(t.val()),"_blank")}}}})}},mailers:{smtp:{bindActions:function(){a("#wp-mail-smtp-setting-smtp-auth").change(function(){a("#wp-mail-smtp-setting-row-smtp-user, #wp-mail-smtp-setting-row-smtp-pass").toggleClass("inactive")}),a("#wp-mail-smtp-setting-row-smtp-encryption input").change(function(){var t=a(this),e=a("#wp-mail-smtp-setting-smtp-port",s.pageHolder);"tls"===t.val()?(e.val("587"),a("#wp-mail-smtp-setting-row-smtp-autotls").addClass("inactive")):("ssl"===t.val()?e.val("465"):e.val("25"),a("#wp-mail-smtp-setting-row-smtp-autotls").removeClass("inactive"))})}}},triggerExitNotice:function(){var t=a(".wp-mail-smtp-page-general:not( .wp-mail-smtp-tab-test )");a(e).on("beforeunload",function(){if(s.pluginSettingsChanged)return wp_mail_smtp.text_settings_not_saved}),a(":input:not( #wp-mail-smtp-setting-license-key, .wp-mail-smtp-not-form-input )",t).on("change",function(){s.pluginSettingsChanged=!0}),a("form",t).on("submit",function(){s.pluginSettingsChanged=!1})},beforeSaveChecks:function(){a("form",s.pageHolder).on("submit",function(){if("mail"===a(".wp-mail-smtp-mailer input:checked",s.pageHolder).val()){var t=a(this);return a.alert({backgroundDismiss:!1,escapeKey:!1,animationBounce:1,theme:"modern",type:"orange",animateFromElement:!1,draggable:!1,closeIcon:!1,useBootstrap:!1,icon:'">'+wp_mail_smtp.default_mailer_notice.icon_alt+' 1 ) { - --count; - el.$adminBarCounter.html( '' + count + '' ); - } else { - el.$adminBarCounter.remove(); - } - - // Remove notification. - var $nextMessage = el.$nextMessage.length < 1 ? el.$prevMessage : el.$nextMessage; - - if ( $nextMessage.length === 0 ) { - el.$notifications.remove(); - } else { - el.$currentMessage.remove(); - $nextMessage.addClass( 'current' ); - app.updateNavigation(); - } - } ); - }, - - /** - * Click on the Next notification button. - * - * @since 2.3.0 - * - * @param {object} event Event object. - */ - navNext: function( event ) { - - if ( el.$nextButton.hasClass( 'disabled' ) ) { - return; - } - - el.$currentMessage.removeClass( 'current' ); - el.$nextMessage.addClass( 'current' ); - - app.updateNavigation(); - }, - - /** - * Click on the Previous notification button. - * - * @since 2.3.0 - * - * @param {object} event Event object. - */ - navPrev: function( event ) { - - if ( el.$prevButton.hasClass( 'disabled' ) ) { - return; - } - - el.$currentMessage.removeClass( 'current' ); - el.$prevMessage.addClass( 'current' ); - - app.updateNavigation(); - }, - - /** - * Update navigation buttons. - * - * @since 2.3.0 - */ - updateNavigation: function() { - - el.$currentMessage = el.$notifications.find( '.message.current' ); - el.$nextMessage = el.$currentMessage.next( '.message' ); - el.$prevMessage = el.$currentMessage.prev( '.message' ); - - if ( el.$nextMessage.length === 0 ) { - el.$nextButton.addClass( 'disabled' ); - } else { - el.$nextButton.removeClass( 'disabled' ); - } - - if ( el.$prevMessage.length === 0 ) { - el.$prevButton.addClass( 'disabled' ); - } else { - el.$prevButton.removeClass( 'disabled' ); - } - }, - }; - - return app; - -}( document, window, jQuery ) ); - -// Initialize. -WPMailSMTPAdminNotifications.init(); diff --git a/wp-content/plugins/wp-mail-smtp/assets/js/smtp-notifications.min.js b/wp-content/plugins/wp-mail-smtp/assets/js/smtp-notifications.min.js deleted file mode 100644 index 9113316..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/js/smtp-notifications.min.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";var WPMailSMTPAdminNotifications=window.WPMailSMTPAdminNotifications||function(e,t){var a={$notifications:t("#wp-mail-smtp-notifications"),$nextButton:t("#wp-mail-smtp-notifications .navigation .next"),$prevButton:t("#wp-mail-smtp-notifications .navigation .prev"),$adminBarCounter:t("#wp-admin-bar-wp-mail-smtp-menu .wp-mail-smtp-admin-bar-menu-notification-counter")},s={init:function(){t(e).ready(s.ready)},ready:function(){s.updateNavigation(),s.events()},events:function(){a.$notifications.on("click",".dismiss",s.dismiss).on("click",".next",s.navNext).on("click",".prev",s.navPrev)},dismiss:function(e){if(0!==a.$currentMessage.length){var n={action:"wp_mail_smtp_notification_dismiss",nonce:wp_mail_smtp.nonce,id:a.$currentMessage.data("message-id")};t.post(ajaxurl,n,function(e){if(e.success){var n=parseInt(a.$adminBarCounter.text(),10);1"+n+"")):a.$adminBarCounter.remove();var t=a.$nextMessage.length<1?a.$prevMessage:a.$nextMessage;0===t.length?a.$notifications.remove():(a.$currentMessage.remove(),t.addClass("current"),s.updateNavigation())}})}},navNext:function(e){a.$nextButton.hasClass("disabled")||(a.$currentMessage.removeClass("current"),a.$nextMessage.addClass("current"),s.updateNavigation())},navPrev:function(e){a.$prevButton.hasClass("disabled")||(a.$currentMessage.removeClass("current"),a.$prevMessage.addClass("current"),s.updateNavigation())},updateNavigation:function(){a.$currentMessage=a.$notifications.find(".message.current"),a.$nextMessage=a.$currentMessage.next(".message"),a.$prevMessage=a.$currentMessage.prev(".message"),0===a.$nextMessage.length?a.$nextButton.addClass("disabled"):a.$nextButton.removeClass("disabled"),0===a.$prevMessage.length?a.$prevButton.addClass("disabled"):a.$prevButton.removeClass("disabled")}};return s}(document,(window,jQuery));WPMailSMTPAdminNotifications.init(); \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/js/vendor/jquery.matchHeight.js b/wp-content/plugins/wp-mail-smtp/assets/js/vendor/jquery.matchHeight.js deleted file mode 100644 index 48925b5..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/js/vendor/jquery.matchHeight.js +++ /dev/null @@ -1,388 +0,0 @@ -/** -* jquery-match-height 0.7.2 by @liabru -* http://brm.io/jquery-match-height/ -* License: MIT -*/ - -;(function(factory) { // eslint-disable-line no-extra-semi - 'use strict'; - if (typeof define === 'function' && define.amd) { - // AMD - define(['jquery'], factory); - } else if (typeof module !== 'undefined' && module.exports) { - // CommonJS - module.exports = factory(require('jquery')); - } else { - // Global - factory(jQuery); - } -})(function($) { - /* - * internal - */ - - var _previousResizeWidth = -1, - _updateTimeout = -1; - - /* - * _parse - * value parse utility function - */ - - var _parse = function(value) { - // parse value and convert NaN to 0 - return parseFloat(value) || 0; - }; - - /* - * _rows - * utility function returns array of jQuery selections representing each row - * (as displayed after float wrapping applied by browser) - */ - - var _rows = function(elements) { - var tolerance = 1, - $elements = $(elements), - lastTop = null, - rows = []; - - // group elements by their top position - $elements.each(function(){ - var $that = $(this), - top = $that.offset().top - _parse($that.css('margin-top')), - lastRow = rows.length > 0 ? rows[rows.length - 1] : null; - - if (lastRow === null) { - // first item on the row, so just push it - rows.push($that); - } else { - // if the row top is the same, add to the row group - if (Math.floor(Math.abs(lastTop - top)) <= tolerance) { - rows[rows.length - 1] = lastRow.add($that); - } else { - // otherwise start a new row group - rows.push($that); - } - } - - // keep track of the last row top - lastTop = top; - }); - - return rows; - }; - - /* - * _parseOptions - * handle plugin options - */ - - var _parseOptions = function(options) { - var opts = { - byRow: true, - property: 'height', - target: null, - remove: false - }; - - if (typeof options === 'object') { - return $.extend(opts, options); - } - - if (typeof options === 'boolean') { - opts.byRow = options; - } else if (options === 'remove') { - opts.remove = true; - } - - return opts; - }; - - /* - * matchHeight - * plugin definition - */ - - var matchHeight = $.fn.matchHeight = function(options) { - var opts = _parseOptions(options); - - // handle remove - if (opts.remove) { - var that = this; - - // remove fixed height from all selected elements - this.css(opts.property, ''); - - // remove selected elements from all groups - $.each(matchHeight._groups, function(key, group) { - group.elements = group.elements.not(that); - }); - - // TODO: cleanup empty groups - - return this; - } - - if (this.length <= 1 && !opts.target) { - return this; - } - - // keep track of this group so we can re-apply later on load and resize events - matchHeight._groups.push({ - elements: this, - options: opts - }); - - // match each element's height to the tallest element in the selection - matchHeight._apply(this, opts); - - return this; - }; - - /* - * plugin global options - */ - - matchHeight.version = '0.7.2'; - matchHeight._groups = []; - matchHeight._throttle = 80; - matchHeight._maintainScroll = false; - matchHeight._beforeUpdate = null; - matchHeight._afterUpdate = null; - matchHeight._rows = _rows; - matchHeight._parse = _parse; - matchHeight._parseOptions = _parseOptions; - - /* - * matchHeight._apply - * apply matchHeight to given elements - */ - - matchHeight._apply = function(elements, options) { - var opts = _parseOptions(options), - $elements = $(elements), - rows = [$elements]; - - // take note of scroll position - var scrollTop = $(window).scrollTop(), - htmlHeight = $('html').outerHeight(true); - - // get hidden parents - var $hiddenParents = $elements.parents().filter(':hidden'); - - // cache the original inline style - $hiddenParents.each(function() { - var $that = $(this); - $that.data('style-cache', $that.attr('style')); - }); - - // temporarily must force hidden parents visible - $hiddenParents.css('display', 'block'); - - // get rows if using byRow, otherwise assume one row - if (opts.byRow && !opts.target) { - - // must first force an arbitrary equal height so floating elements break evenly - $elements.each(function() { - var $that = $(this), - display = $that.css('display'); - - // temporarily force a usable display value - if (display !== 'inline-block' && display !== 'flex' && display !== 'inline-flex') { - display = 'block'; - } - - // cache the original inline style - $that.data('style-cache', $that.attr('style')); - - $that.css({ - 'display': display, - 'padding-top': '0', - 'padding-bottom': '0', - 'margin-top': '0', - 'margin-bottom': '0', - 'border-top-width': '0', - 'border-bottom-width': '0', - 'height': '100px', - 'overflow': 'hidden' - }); - }); - - // get the array of rows (based on element top position) - rows = _rows($elements); - - // revert original inline styles - $elements.each(function() { - var $that = $(this); - $that.attr('style', $that.data('style-cache') || ''); - }); - } - - $.each(rows, function(key, row) { - var $row = $(row), - targetHeight = 0; - - if (!opts.target) { - // skip apply to rows with only one item - if (opts.byRow && $row.length <= 1) { - $row.css(opts.property, ''); - return; - } - - // iterate the row and find the max height - $row.each(function(){ - var $that = $(this), - style = $that.attr('style'), - display = $that.css('display'); - - // temporarily force a usable display value - if (display !== 'inline-block' && display !== 'flex' && display !== 'inline-flex') { - display = 'block'; - } - - // ensure we get the correct actual height (and not a previously set height value) - var css = { 'display': display }; - css[opts.property] = ''; - $that.css(css); - - // find the max height (including padding, but not margin) - if ($that.outerHeight(false) > targetHeight) { - targetHeight = $that.outerHeight(false); - } - - // revert styles - if (style) { - $that.attr('style', style); - } else { - $that.css('display', ''); - } - }); - } else { - // if target set, use the height of the target element - targetHeight = opts.target.outerHeight(false); - } - - // iterate the row and apply the height to all elements - $row.each(function(){ - var $that = $(this), - verticalPadding = 0; - - // don't apply to a target - if (opts.target && $that.is(opts.target)) { - return; - } - - // handle padding and border correctly (required when not using border-box) - if ($that.css('box-sizing') !== 'border-box') { - verticalPadding += _parse($that.css('border-top-width')) + _parse($that.css('border-bottom-width')); - verticalPadding += _parse($that.css('padding-top')) + _parse($that.css('padding-bottom')); - } - - // set the height (accounting for padding and border) - $that.css(opts.property, (targetHeight - verticalPadding) + 'px'); - }); - }); - - // revert hidden parents - $hiddenParents.each(function() { - var $that = $(this); - $that.attr('style', $that.data('style-cache') || null); - }); - - // restore scroll position if enabled - if (matchHeight._maintainScroll) { - $(window).scrollTop((scrollTop / htmlHeight) * $('html').outerHeight(true)); - } - - return this; - }; - - /* - * matchHeight._applyDataApi - * applies matchHeight to all elements with a data-match-height attribute - */ - - matchHeight._applyDataApi = function() { - var groups = {}; - - // generate groups by their groupId set by elements using data-match-height - $('[data-match-height], [data-mh]').each(function() { - var $this = $(this), - groupId = $this.attr('data-mh') || $this.attr('data-match-height'); - - if (groupId in groups) { - groups[groupId] = groups[groupId].add($this); - } else { - groups[groupId] = $this; - } - }); - - // apply matchHeight to each group - $.each(groups, function() { - this.matchHeight(true); - }); - }; - - /* - * matchHeight._update - * updates matchHeight on all current groups with their correct options - */ - - var _update = function(event) { - if (matchHeight._beforeUpdate) { - matchHeight._beforeUpdate(event, matchHeight._groups); - } - - $.each(matchHeight._groups, function() { - matchHeight._apply(this.elements, this.options); - }); - - if (matchHeight._afterUpdate) { - matchHeight._afterUpdate(event, matchHeight._groups); - } - }; - - matchHeight._update = function(throttle, event) { - // prevent update if fired from a resize event - // where the viewport width hasn't actually changed - // fixes an event looping bug in IE8 - if (event && event.type === 'resize') { - var windowWidth = $(window).width(); - if (windowWidth === _previousResizeWidth) { - return; - } - _previousResizeWidth = windowWidth; - } - - // throttle updates - if (!throttle) { - _update(event); - } else if (_updateTimeout === -1) { - _updateTimeout = setTimeout(function() { - _update(event); - _updateTimeout = -1; - }, matchHeight._throttle); - } - }; - - /* - * bind events - */ - - // apply on DOM ready event - $(matchHeight._applyDataApi); - - // use on or bind where supported - var on = $.fn.on ? 'on' : 'bind'; - - // update heights on load and resize events - $(window)[on]('load', function(event) { - matchHeight._update(false, event); - }); - - // throttled update heights on resize events - $(window)[on]('resize orientationchange', function(event) { - matchHeight._update(true, event); - }); - -}); diff --git a/wp-content/plugins/wp-mail-smtp/assets/js/vendor/jquery.matchHeight.min.js b/wp-content/plugins/wp-mail-smtp/assets/js/vendor/jquery.matchHeight.min.js deleted file mode 100644 index fc942dd..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/js/vendor/jquery.matchHeight.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(l){function c(t){return parseFloat(t)||0}function h(t){var e=l(t),n=null,a=[];return e.each(function(){var t=l(this),e=t.offset().top-c(t.css("margin-top")),o=0a&&(a=t.outerHeight(!1)),e?t.attr("style",e):t.css("display","")})}o.each(function(){var t=l(this),e=0;i.target&&t.is(i.target)||("border-box"!==t.css("box-sizing")&&(e+=c(t.css("border-top-width"))+c(t.css("border-bottom-width")),e+=c(t.css("padding-top"))+c(t.css("padding-bottom"))),t.css(i.property,a-e+"px"))})}),s.each(function(){var t=l(this);t.attr("style",t.data("style-cache")||null)}),d._maintainScroll&&l(window).scrollTop(a/r*l("html").outerHeight(!0)),this},d._applyDataApi=function(){var o={};l("[data-match-height], [data-mh]").each(function(){var t=l(this),e=t.attr("data-mh")||t.attr("data-match-height");o[e]=e in o?o[e].add(t):t}),l.each(o,function(){this.matchHeight(!0)})};function i(t){d._beforeUpdate&&d._beforeUpdate(t,d._groups),l.each(d._groups,function(){d._apply(this.elements,this.options)}),d._afterUpdate&&d._afterUpdate(t,d._groups)}d._update=function(t,e){if(e&&"resize"===e.type){var o=l(window).width();if(o===n)return;n=o}t?-1===a&&(a=setTimeout(function(){i(e),a=-1},d._throttle)):i(e)},l(d._applyDataApi);var t=l.fn.on?"on":"bind";l(window)[t]("load",function(t){d._update(!1,t)}),l(window)[t]("resize orientationchange",function(t){d._update(!0,t)})}); \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/languages/wp-mail-smtp.pot b/wp-content/plugins/wp-mail-smtp/assets/languages/wp-mail-smtp.pot deleted file mode 100644 index 6ea9f52..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/languages/wp-mail-smtp.pot +++ /dev/null @@ -1,2017 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: WP Mail SMTP 2.5.1\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-mail-smtp\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2020-10-28T07:52:42+00:00\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"X-Generator: WP-CLI 2.4.0\n" -"X-Domain: wp-mail-smtp\n" - -#. Plugin Name of the plugin -#: src/Admin/Area.php:206 -#: src/Admin/Area.php:207 -#: src/Admin/Area.php:252 -#: src/Admin/Area.php:253 -#: src/SiteHealth.php:40 -msgid "WP Mail SMTP" -msgstr "" - -#. Plugin URI of the plugin -msgid "https://wpmailsmtp.com/" -msgstr "" - -#. Description of the plugin -msgid "Reconfigures the wp_mail() function to use Gmail/Mailgun/SendGrid/SMTP instead of the default mail() and creates an options page to manage the settings." -msgstr "" - -#. Author of the plugin -msgid "WPForms" -msgstr "" - -#. Author URI of the plugin -msgid "https://wpforms.com/" -msgstr "" - -#. translators: %s - error code, returned by Google API. -#: src/Admin/Area.php:129 -msgid "There was an error while processing the authentication request: %s. Please try again." -msgstr "" - -#: src/Admin/Area.php:136 -msgid "There was an error while processing the authentication request. Please try again." -msgstr "" - -#: src/Admin/Area.php:143 -msgid "There was an error while processing the authentication request. Please make sure that you have Client ID and Client Secret both valid and saved." -msgstr "" - -#: src/Admin/Area.php:152 -msgid "You have successfully linked the current site with your Google API project. Now you can start sending emails through Gmail." -msgstr "" - -#. translators: %s - Mailer anchor link. -#: src/Admin/Area.php:183 -msgid "Thanks for using WP Mail SMTP! To complete the plugin setup and start sending emails, please select and configure your Mailer." -msgstr "" - -#: src/Admin/Area.php:217 -#: src/Admin/Area.php:218 -#: src/Admin/Area.php:956 -msgid "Settings" -msgstr "" - -#: src/Admin/Area.php:225 -#: src/Admin/Area.php:226 -#: src/Admin/Pages/About.php:653 -#: src/Admin/Pages/Logs.php:48 -#: src/Admin/Pages/LogsTab.php:30 -msgid "Email Log" -msgstr "" - -#: src/Admin/Area.php:235 -#: src/Admin/Area.php:236 -#: src/Admin/Pages/About.php:106 -msgid "About Us" -msgstr "" - -#: src/Admin/Area.php:280 -#: src/Admin/Area.php:286 -#: src/Admin/Pages/SettingsTab.php:37 -msgid "General" -msgstr "" - -#: src/Admin/Area.php:294 -msgid "Multisite" -msgstr "" - -#: src/Admin/Area.php:295 -msgid "Pro+ badge icon" -msgstr "" - -#: src/Admin/Area.php:298 -msgid "Simply enable network-wide settings and every site on your network will inherit the same SMTP settings. Save time and only configure your SMTP provider once." -msgstr "" - -#: src/Admin/Area.php:305 -msgid "Settings control" -msgstr "" - -#: src/Admin/Area.php:311 -msgid "Make the plugin settings global network-wide" -msgstr "" - -#: src/Admin/Area.php:315 -msgid "If disabled, each subsite of this multisite will have its own WP Mail SMTP settings page that has to be configured separately." -msgstr "" - -#: src/Admin/Area.php:317 -msgid "If enabled, these global settings will manage email sending for all subsites of this multisite." -msgstr "" - -#: src/Admin/Area.php:324 -#: src/Admin/Pages/ControlTab.php:119 -#: src/Admin/Pages/LogsTab.php:68 -msgid "Upgrade to WP Mail SMTP Pro" -msgstr "" - -#: src/Admin/Area.php:390 -msgid "Are you sure you want to reset the current provider connection? You will need to immediately create a new one to be able to send emails." -msgstr "" - -#: src/Admin/Area.php:391 -msgid "Changes that you made to the settings are not saved!" -msgstr "" - -#: src/Admin/Area.php:393 -msgid "Heads up!" -msgstr "" - -#: src/Admin/Area.php:395 -msgid "

The Default (PHP) mailer is currently selected, but is not recommended because in most cases it does not resolve email delivery issues.

Please consider selecting and configuring one of the other mailers.

" -msgstr "" - -#: src/Admin/Area.php:398 -#: src/Admin/PageAbstract.php:83 -msgid "Save Settings" -msgstr "" - -#: src/Admin/Area.php:399 -msgid "Cancel" -msgstr "" - -#: src/Admin/Area.php:400 -msgid "Warning icon" -msgstr "" - -#: src/Admin/Area.php:405 -msgid "%name% is a PRO Feature" -msgstr "" - -#: src/Admin/Area.php:406 -msgid "Upgrade to Pro" -msgstr "" - -#: src/Admin/Area.php:410 -msgid "Bonus: WP Mail SMTP users get $50 off regular price,
applied at checkout." -msgstr "" - -#: src/Admin/Area.php:419 -msgid "Already purchased?" -msgstr "" - -#: src/Admin/Area.php:488 -#: src/Admin/Area.php:495 -#: src/Admin/Pages/About.php:334 -msgid "Activate" -msgstr "" - -#: src/Admin/Area.php:489 -#: src/Admin/Pages/About.php:326 -msgid "Activated" -msgstr "" - -#: src/Admin/Area.php:490 -#: src/Admin/Pages/About.php:323 -msgid "Active" -msgstr "" - -#: src/Admin/Area.php:491 -#: src/Admin/Pages/About.php:331 -msgid "Inactive" -msgstr "" - -#: src/Admin/Area.php:492 -msgid "Processing..." -msgstr "" - -#: src/Admin/Area.php:493 -msgid "Could not install a plugin. Please download from WordPress.org and install manually." -msgstr "" - -#: src/Admin/Area.php:494 -msgid "Install and Activate" -msgstr "" - -#: src/Admin/Area.php:496 -msgid "Download" -msgstr "" - -#. translators: %1$s - WP.org link; %2$s - same WP.org link. -#: src/Admin/Area.php:558 -msgid "Please rate WP Mail SMTP ★★★★★ on WordPress.org to help us spread the word. Thank you from the WP Mail SMTP team!" -msgstr "" - -#: src/Admin/Area.php:897 -msgid "WP Mail SMTP Pro related message was successfully dismissed." -msgstr "" - -#: src/Admin/Area.php:916 -msgid "Educational notice for this mailer was successfully dismissed." -msgstr "" - -#: src/Admin/Area.php:955 -msgid "Go to WP Mail SMTP Settings page" -msgstr "" - -#: src/Admin/Area.php:962 -msgid "Go to WP Mail SMTP Lite vs Pro comparison page" -msgstr "" - -#: src/Admin/Area.php:963 -msgid "Premium Support" -msgstr "" - -#. translators: %s - WPMailSMTP.com Upgrade page URL. -#: src/Admin/Education.php:69 -msgid "You’re using WP Mail SMTP Lite. To unlock more features consider upgrading to Pro." -msgstr "" - -#: src/Admin/Education.php:80 -msgid "Dismiss this message." -msgstr "" - -#: src/Admin/Notifications.php:442 -msgid "Dismiss this message" -msgstr "" - -#: src/Admin/Notifications.php:445 -msgid "Previous message" -msgstr "" - -#: src/Admin/Notifications.php:446 -msgid "Next message" -msgstr "" - -#. translators: %s - plugin current license type. -#: src/Admin/Pages/About.php:99 -#: src/Admin/Pages/About.php:552 -msgid "%s vs Pro" -msgstr "" - -#: src/Admin/Pages/About.php:173 -msgid "Hello and welcome to WP Mail SMTP, the easiest and most popular WordPress SMTP plugin. We build software that helps your site reliably deliver emails every time." -msgstr "" - -#: src/Admin/Pages/About.php:177 -msgid "Email deliverability has been a well-documented problem for all WordPress websites. However as WPForms grew, we became more aware of this painful issue that affects our users and the larger WordPress community. So we decided to solve this problem and make a solution that's beginner friendly." -msgstr "" - -#: src/Admin/Pages/About.php:180 -msgid "Our goal is to make reliable email deliverability easy for WordPress." -msgstr "" - -#. translators: %1$s - WPForms URL, %2$s - WPBeginner URL, %3$s - OptinMonster URL, %4$s - MonsterInsights URL, %5$s - RafflePress URL -#: src/Admin/Pages/About.php:187 -msgid "WP Mail SMTP is brought to you by the same team that's behind the most user friendly WordPress forms, WPForms, the largest WordPress resource site, WPBeginner, the most popular lead-generation software, OptinMonster, the best WordPress analytics plugin, MonsterInsights, and the most powerful WordPress contest plugin, RafflePress." -msgstr "" - -#: src/Admin/Pages/About.php:205 -msgid "Yup, we know a thing or two about building awesome products that customers love." -msgstr "" - -#: src/Admin/Pages/About.php:211 -msgid "The WPForms Team photo" -msgstr "" - -#: src/Admin/Pages/About.php:213 -msgid "The WPForms Team" -msgstr "" - -#: src/Admin/Pages/About.php:262 -msgid "Plugin icon" -msgstr "" - -#. translators: %s - status HTML text. -#: src/Admin/Pages/About.php:276 -msgid "Status: %s" -msgstr "" - -#: src/Admin/Pages/About.php:342 -msgid "Not Installed" -msgstr "" - -#: src/Admin/Pages/About.php:345 -msgid "Install Plugin" -msgstr "" - -#: src/Admin/Pages/About.php:366 -msgid "MonsterInsights" -msgstr "" - -#: src/Admin/Pages/About.php:367 -#: src/Admin/Pages/About.php:373 -msgid "MonsterInsights makes it “effortless” to properly connect your WordPress site with Google Analytics, so you can start making data-driven decisions to grow your business." -msgstr "" - -#: src/Admin/Pages/About.php:372 -msgid "MonsterInsights Pro" -msgstr "" - -#: src/Admin/Pages/About.php:380 -msgid "OptinMonster" -msgstr "" - -#: src/Admin/Pages/About.php:381 -msgid "Our high-converting optin forms like Exit-Intent® popups, Fullscreen Welcome Mats, and Scroll boxes help you dramatically boost conversions and get more email subscribers." -msgstr "" - -#: src/Admin/Pages/About.php:387 -msgid "Contact Forms by WPForms" -msgstr "" - -#: src/Admin/Pages/About.php:388 -#: src/Admin/Pages/About.php:394 -msgid "The best WordPress contact form plugin. Drag & Drop online form builder that helps you create beautiful contact forms with just a few clicks." -msgstr "" - -#: src/Admin/Pages/About.php:393 -msgid "WPForms Pro" -msgstr "" - -#: src/Admin/Pages/About.php:401 -msgid "RafflePress" -msgstr "" - -#: src/Admin/Pages/About.php:402 -#: src/Admin/Pages/About.php:408 -msgid "Turn your visitors into brand ambassadors! Easily grow your email list, website traffic, and social media followers with powerful viral giveaways & contests." -msgstr "" - -#: src/Admin/Pages/About.php:407 -msgid "RafflePress Pro" -msgstr "" - -#: src/Admin/Pages/About.php:427 -msgid "Could not activate the plugin. Please activate it from the Plugins page." -msgstr "" - -#: src/Admin/Pages/About.php:439 -msgid "Plugin activated." -msgstr "" - -#: src/Admin/Pages/About.php:456 -msgid "Could not install the plugin." -msgstr "" - -#: src/Admin/Pages/About.php:517 -msgid "Plugin installed & activated." -msgstr "" - -#: src/Admin/Pages/About.php:525 -msgid "Plugin installed." -msgstr "" - -#: src/Admin/Pages/About.php:560 -msgid "Get the most out of WP Mail SMTP by upgrading to Pro and unlocking all of the powerful features." -msgstr "" - -#: src/Admin/Pages/About.php:569 -msgid "Feature" -msgstr "" - -#: src/Admin/Pages/About.php:579 -msgid "Pro" -msgstr "" - -#: src/Admin/Pages/About.php:620 -msgid "Get WP Mail SMTP Pro Today and Unlock all of these Powerful Features" -msgstr "" - -#: src/Admin/Pages/About.php:627 -msgid "Bonus: WP Mail SMTP Lite users get $50 off regular price, automatically applied at checkout." -msgstr "" - -#: src/Admin/Pages/About.php:654 -#: src/Admin/Pages/ControlTab.php:27 -msgid "Email Controls" -msgstr "" - -#: src/Admin/Pages/About.php:655 -msgid "Mailer Options" -msgstr "" - -#: src/Admin/Pages/About.php:656 -msgid "WordPress Multisite" -msgstr "" - -#: src/Admin/Pages/About.php:657 -msgid "Customer Support" -msgstr "" - -#: src/Admin/Pages/About.php:678 -msgid "Emails are not logged" -msgstr "" - -#: src/Admin/Pages/About.php:684 -msgid "Access to all Email Logging options right inside WordPress" -msgstr "" - -#: src/Admin/Pages/About.php:692 -msgid "No controls over whether default WordPress emails are sent" -msgstr "" - -#: src/Admin/Pages/About.php:698 -msgid "Complete Email Controls management for most default WordPress emails" -msgstr "" - -#: src/Admin/Pages/About.php:706 -msgid "Limited Mailers" -msgstr "" - -#: src/Admin/Pages/About.php:706 -msgid "Access is limited to standard mailer options only" -msgstr "" - -#: src/Admin/Pages/About.php:712 -msgid "Additional Mailer Options" -msgstr "" - -#: src/Admin/Pages/About.php:712 -msgid "Microsoft Outlook (with Office365 support), Amazon SES and Zoho Mail" -msgstr "" - -#: src/Admin/Pages/About.php:720 -msgid "No Global Network Settings" -msgstr "" - -#: src/Admin/Pages/About.php:726 -msgid "All Global Network Settings" -msgstr "" - -#: src/Admin/Pages/About.php:726 -msgid "Optionally configure settings at the network level or manage separately for each subsite" -msgstr "" - -#: src/Admin/Pages/About.php:734 -msgid "Limited Support" -msgstr "" - -#: src/Admin/Pages/About.php:740 -msgid "Priority Support" -msgstr "" - -#: src/Admin/Pages/ControlTab.php:48 -msgid "Comment Notifications" -msgstr "" - -#: src/Admin/Pages/ControlTab.php:49 -msgid "Manage emails sent when comments are published or awaiting moderation." -msgstr "" - -#: src/Admin/Pages/ControlTab.php:53 -msgid "Site Admin Email Change Notifications" -msgstr "" - -#: src/Admin/Pages/ControlTab.php:54 -msgid "Manage emails sent when site admin's account has been changed." -msgstr "" - -#: src/Admin/Pages/ControlTab.php:58 -msgid "User Change Notifications" -msgstr "" - -#: src/Admin/Pages/ControlTab.php:59 -msgid "Limit emails triggered by password changed/reset, email changed, and more." -msgstr "" - -#: src/Admin/Pages/ControlTab.php:63 -msgid "Personal Data Requests Notifications" -msgstr "" - -#: src/Admin/Pages/ControlTab.php:64 -msgid "Control emails for data requests and data removal actions." -msgstr "" - -#: src/Admin/Pages/ControlTab.php:68 -msgid "Automatic Update Notifications" -msgstr "" - -#: src/Admin/Pages/ControlTab.php:69 -msgid "Manage emails sent by the core automatic update process." -msgstr "" - -#: src/Admin/Pages/ControlTab.php:73 -msgid "New User Notifications" -msgstr "" - -#: src/Admin/Pages/ControlTab.php:74 -msgid "Toggle emails sent to both user and site administrator about new user accounts." -msgstr "" - -#: src/Admin/Pages/ControlTab.php:92 -msgid "Unlock Email Controls" -msgstr "" - -#: src/Admin/Pages/ControlTab.php:95 -msgid "Email Controls allows you to granularly manage emails sent by WordPress.
" -msgstr "" - -#: src/Admin/Pages/LogsTab.php:53 -msgid "Unlock Email Logging" -msgstr "" - -#: src/Admin/Pages/LogsTab.php:56 -msgid "Keep track of every email sent from your WordPress site with email logging.
" -msgstr "" - -#: src/Admin/Pages/LogsTab.php:57 -msgid "Troubleshoot sending issues, recover lost emails, and more!" -msgstr "" - -#: src/Admin/Pages/LogsTab.php:61 -msgid "Logs Archive Page Screenshot" -msgstr "" - -#: src/Admin/Pages/LogsTab.php:62 -msgid "Logs Single Page Screenshot" -msgstr "" - -#: src/Admin/Pages/MiscTab.php:25 -msgid "Misc" -msgstr "" - -#: src/Admin/Pages/MiscTab.php:57 -msgid "Do Not Send" -msgstr "" - -#: src/Admin/Pages/MiscTab.php:66 -msgid "Check this if you would like to stop sending all emails." -msgstr "" - -#: src/Admin/Pages/MiscTab.php:72 -msgid "Some plugins, like BuddyPress and Events Manager, are using their own email delivery solutions. By default, this option does not block their emails, as those plugins do not use default wp_mail() function to send emails." -msgstr "" - -#: src/Admin/Pages/MiscTab.php:80 -msgid "You will need to consult with their documentation to switch them to use default WordPress email delivery." -msgstr "" - -#: src/Admin/Pages/MiscTab.php:82 -msgid "Test emails are allowed to be sent, regardless of this option." -msgstr "" - -#. translators: %1$s - constant that was used; %2$s - file where it was used. -#: src/Admin/Pages/MiscTab.php:87 -#: src/Providers/OptionsAbstract.php:480 -msgid "The value of this field was set using a constant %1$s most likely inside %2$s of your WordPress installation." -msgstr "" - -#. translators: %s - The URL to the constants support article. -#: src/Admin/Pages/MiscTab.php:94 -msgid "Please read this support article if you want to enable this option using constants." -msgstr "" - -#: src/Admin/Pages/MiscTab.php:115 -msgid "Hide Announcements" -msgstr "" - -#: src/Admin/Pages/MiscTab.php:124 -msgid "Check this if you would like to hide plugin announcements and update details." -msgstr "" - -#: src/Admin/Pages/MiscTab.php:134 -msgid "Hide Email Delivery Errors" -msgstr "" - -#: src/Admin/Pages/MiscTab.php:150 -msgid "Check this if you would like to hide warnings alerting of email delivery errors." -msgstr "" - -#. translators: %s - filter that was used to disabled. -#: src/Admin/Pages/MiscTab.php:157 -msgid "Email Delivery Errors were disabled using a %s filter." -msgstr "" - -#: src/Admin/Pages/MiscTab.php:166 -msgid "This is not recommended and should only be done for staging or development sites." -msgstr "" - -#: src/Admin/Pages/MiscTab.php:181 -msgid "Uninstall WP Mail SMTP" -msgstr "" - -#: src/Admin/Pages/MiscTab.php:189 -msgid "Check this if you would like to remove ALL WP Mail SMTP data upon plugin deletion. All settings will be unrecoverable." -msgstr "" - -#: src/Admin/Pages/MiscTab.php:199 -msgid "Allow Usage Tracking" -msgstr "" - -#: src/Admin/Pages/MiscTab.php:207 -msgid "By allowing us to track usage data we can better help you because we know with which WordPress configurations, themes and plugins we should test." -msgstr "" - -#: src/Admin/Pages/MiscTab.php:255 -#: src/Admin/Pages/SettingsTab.php:604 -msgid "Settings were successfully saved." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:73 -msgid "License" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:76 -msgid "Your license key provides access to updates and support." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:84 -msgid "License Key" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:94 -msgid "Mail" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:101 -msgid "From Email" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:120 -msgid "Please first authorize the Gmail mailer below" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:134 -msgid "The email address which emails are sent from." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:135 -msgid "If you're using an email provider (Yahoo, Outlook.com, etc) this should be your email address for that account." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:138 -msgid "Please note that other plugins can change this, to prevent this use the setting below." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:158 -msgid "Force From Email" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:165 -msgid "Current provider will automatically force From Email to be the email address that you use to set up the connection below." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:167 -msgid "Gmail mailer will automatically force From Email to be the email address that you selected above." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:173 -msgid "If checked, the From Email setting above will be used for all emails, ignoring values set by other plugins." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:183 -msgid "From Name" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:195 -msgid "The name which emails are sent from." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:209 -msgid "Force From Name" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:214 -msgid "Current provider doesn't support setting and forcing From Name. Emails will be sent on behalf of the account name used to setup the connection below." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:218 -msgid "If checked, the From Name setting above will be used for all emails, ignoring values set by other plugins." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:228 -msgid "Return Path" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:237 -msgid "Set the return-path to match the From Email" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:241 -msgid "Return Path indicates where non-delivery receipts - or bounce messages - are to be sent." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:242 -msgid "If unchecked, bounce messages may be lost. Some providers may ignore this option." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:250 -msgid "Mailer" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:292 -msgid "Don't see what you're looking for?" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:294 -msgid "Suggest a Mailer" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:322 -msgid "Dismiss this notice" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:369 -msgid "You're using WP Mail SMTP Lite - no license needed. Enjoy!" -msgstr "" - -#. translators: %s - WPMailSMTP.com upgrade URL. -#: src/Admin/Pages/SettingsTab.php:375 -msgid "To unlock more features consider upgrading to PRO." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:394 -msgid "As a valued WP Mail SMTP Lite user you receive $50 off, automatically applied at checkout!" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:455 -msgid "Get WP Mail SMTP Pro and Unlock all the Powerful Features" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:459 -msgid "Thanks for being a loyal WP Mail SMTP user. Upgrade to WP Mail SMTP Pro to unlock more awesome features and experience why WP Mail SMTP is the most popular SMTP plugin." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:463 -msgid "We know that you will truly love WP Mail SMTP. It's used by over 1,000,000 websites." -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:466 -msgid "Pro Features:" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:470 -msgid "Manage Notifications - control which emails your site sends" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:471 -msgid "Email Logging - keep track of every email sent from your site" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:472 -msgid "Office 365 - send emails using your Office 365 account" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:473 -msgid "Amazon SES - harness the power of AWS" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:474 -msgid "Outlook.com - send emails using your Outlook.com account" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:475 -msgid "Access to our world class support team" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:478 -msgid "White Glove Setup - sit back and relax while we handle everything for you" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:479 -msgid "Install WP Mail SMTP Pro plugin" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:480 -msgid "Set up domain name verification (DNS)" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:481 -msgid "Configure Mailgun service" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:482 -msgid "Set up WP Mail SMTP Pro plugin" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:483 -msgid "Test and verify email delivery" -msgstr "" - -#. translators: %s - WPMailSMTP.com URL. -#: src/Admin/Pages/SettingsTab.php:491 -msgid "Get WP Mail SMTP Pro Today and Unlock all the Powerful Features »" -msgstr "" - -#: src/Admin/Pages/SettingsTab.php:509 -msgid "Bonus: WP Mail SMTP users get $50 off regular price, automatically applied at checkout." -msgstr "" - -#: src/Admin/Pages/TestTab.php:37 -msgid "Email Test" -msgstr "" - -#: src/Admin/Pages/TestTab.php:59 -msgid "Send a Test Email" -msgstr "" - -#: src/Admin/Pages/TestTab.php:66 -msgid "Send To" -msgstr "" - -#: src/Admin/Pages/TestTab.php:72 -msgid "Enter email address where test email will be sent." -msgstr "" - -#: src/Admin/Pages/TestTab.php:80 -msgid "HTML" -msgstr "" - -#: src/Admin/Pages/TestTab.php:86 -#: src/Providers/OptionsAbstract.php:276 -#: src/Providers/OptionsAbstract.php:298 -msgid "On" -msgstr "" - -#: src/Admin/Pages/TestTab.php:87 -#: src/Providers/OptionsAbstract.php:277 -#: src/Providers/OptionsAbstract.php:299 -msgid "Off" -msgstr "" - -#: src/Admin/Pages/TestTab.php:90 -msgid "Send this email in HTML or in plain text format." -msgstr "" - -#: src/Admin/Pages/TestTab.php:110 -msgid "You cannot send an email. Mailer is not properly configured. Please check your settings." -msgstr "" - -#: src/Admin/Pages/TestTab.php:114 -msgid "Send Email" -msgstr "" - -#: src/Admin/Pages/TestTab.php:142 -msgid "Test failed. Please use a valid email address and try to resend the test email." -msgstr "" - -#. translators: %s - email address a test email will be sent to. -#: src/Admin/Pages/TestTab.php:154 -#: src/Admin/Pages/TestTab.php:160 -msgid "Test email to %s" -msgstr "" - -#: src/Admin/Pages/TestTab.php:186 -msgid "Test plain text email was sent successfully!" -msgstr "" - -#. translators: %s - "HTML" in bold. -#: src/Admin/Pages/TestTab.php:190 -msgid "Test %s email was sent successfully! Please check your inbox to make sure it is delivered." -msgstr "" - -#: src/Admin/Pages/TestTab.php:510 -msgid "SSL certificate issue." -msgstr "" - -#: src/Admin/Pages/TestTab.php:511 -msgid "This means your web server cannot reliably make secure connections (make requests to HTTPS sites)." -msgstr "" - -#: src/Admin/Pages/TestTab.php:512 -#: src/Admin/Pages/TestTab.php:560 -msgid "Typically this error is returned when web server is not configured properly." -msgstr "" - -#: src/Admin/Pages/TestTab.php:515 -msgid "Contact your web hosting provider and inform them your site has an issue with SSL certificates." -msgstr "" - -#: src/Admin/Pages/TestTab.php:516 -#: src/Admin/Pages/TestTab.php:564 -msgid "The exact error you can provide them is in the Error log, available at the bottom of this page." -msgstr "" - -#: src/Admin/Pages/TestTab.php:517 -#: src/Admin/Pages/TestTab.php:565 -msgid "Ask them to resolve the issue then try again." -msgstr "" - -#: src/Admin/Pages/TestTab.php:528 -msgid "Could not connect to host." -msgstr "" - -#. translators: %s - SMTP host address. -#: src/Admin/Pages/TestTab.php:531 -#: src/Admin/Pages/TestTab.php:556 -#: src/Admin/Pages/TestTab.php:658 -msgid "This means your web server was unable to connect to %s." -msgstr "" - -#: src/Admin/Pages/TestTab.php:534 -#: src/Admin/Pages/TestTab.php:559 -#: src/Admin/Pages/TestTab.php:661 -msgid "This means your web server was unable to connect to the host server." -msgstr "" - -#: src/Admin/Pages/TestTab.php:535 -msgid "Typically this error is returned your web server is blocking the connections or the SMTP host denying the request." -msgstr "" - -#. translators: %s - SMTP host address. -#: src/Admin/Pages/TestTab.php:539 -msgid "Contact your web hosting provider and ask them to verify your server can connect to %s. Additionally, ask them if a firewall or security policy may be preventing the connection." -msgstr "" - -#: src/Admin/Pages/TestTab.php:542 -msgid "If using \"Other SMTP\" Mailer, triple check your SMTP settings including host address, email, and password." -msgstr "" - -#: src/Admin/Pages/TestTab.php:543 -msgid "If using \"Other SMTP\" Mailer, contact your SMTP host to confirm they are accepting outside connections with the settings you have configured (address, username, port, security, etc)." -msgstr "" - -#: src/Admin/Pages/TestTab.php:553 -msgid "Could not connect to your host." -msgstr "" - -#: src/Admin/Pages/TestTab.php:563 -msgid "Contact your web hosting provider and inform them you are having issues making outbound connections." -msgstr "" - -#: src/Admin/Pages/TestTab.php:575 -msgid "Could not authenticate your SMTP account." -msgstr "" - -#: src/Admin/Pages/TestTab.php:576 -msgid "This means we were able to connect to your SMTP host, but were not able to proceed using the email/password in the settings." -msgstr "" - -#: src/Admin/Pages/TestTab.php:577 -msgid "Typically this error is returned when the email or password is not correct or is not what the SMTP host is expecting." -msgstr "" - -#: src/Admin/Pages/TestTab.php:580 -msgid "Triple check your SMTP settings including host address, email, and password. If you have recently reset your password you will need to update the settings." -msgstr "" - -#: src/Admin/Pages/TestTab.php:581 -#: src/Admin/Pages/TestTab.php:686 -msgid "Contact your SMTP host to confirm you are using the correct username and password." -msgstr "" - -#: src/Admin/Pages/TestTab.php:582 -#: src/Admin/Pages/TestTab.php:687 -msgid "Verify with your SMTP host that your account has permissions to send emails using outside connections." -msgstr "" - -#: src/Admin/Pages/TestTab.php:592 -msgid "Error due to unsolicited and/or bulk e-mail." -msgstr "" - -#: src/Admin/Pages/TestTab.php:593 -msgid "This means the connection to your SMTP host was made successfully, but the host rejected the email." -msgstr "" - -#: src/Admin/Pages/TestTab.php:594 -msgid "Typically this error is returned when you are sending too many e-mails or e-mails that have been identified as spam." -msgstr "" - -#: src/Admin/Pages/TestTab.php:597 -msgid "Check the emails that are sending are sending individually. Example: email is not sending to 30 recipients. You can install any WordPress e-mail logging plugin to do that." -msgstr "" - -#: src/Admin/Pages/TestTab.php:598 -msgid "Contact your SMTP host to ask about sending/rate limits." -msgstr "" - -#: src/Admin/Pages/TestTab.php:599 -msgid "Verify with them your SMTP account is in good standing and your account has not been flagged." -msgstr "" - -#: src/Admin/Pages/TestTab.php:609 -msgid "Unauthenticated senders are not allowed." -msgstr "" - -#: src/Admin/Pages/TestTab.php:610 -msgid "This means the connection to your SMTP host was made successfully, but you should enable Authentication and provide correct Username and Password." -msgstr "" - -#: src/Admin/Pages/TestTab.php:613 -msgid "Go to WP Mail SMTP plugin Settings page." -msgstr "" - -#: src/Admin/Pages/TestTab.php:614 -msgid "Enable Authentication" -msgstr "" - -#: src/Admin/Pages/TestTab.php:615 -msgid "Enter correct SMTP Username (usually this is an email address) and Password in the appropriate fields." -msgstr "" - -#: src/Admin/Pages/TestTab.php:627 -msgid "Misconfigured server certificate." -msgstr "" - -#: src/Admin/Pages/TestTab.php:628 -msgid "This means OpenSSL on your server isn't able to verify the host certificate." -msgstr "" - -#: src/Admin/Pages/TestTab.php:629 -msgid "There are a few reasons why this is happening. It could be that the host certificate is misconfigured, or this server's OpenSSL is using an outdated CA bundle." -msgstr "" - -#: src/Admin/Pages/TestTab.php:632 -msgid "Verify that the host's SSL certificate is valid." -msgstr "" - -#. translators: %s - URL to the PHP openssl manual -#: src/Admin/Pages/TestTab.php:635 -msgid "Contact your hosting support, show them the \"full Error Log for debugging\" below and share this link with them." -msgstr "" - -#: src/Admin/Pages/TestTab.php:655 -msgid "Could not connect to the SMTP host." -msgstr "" - -#: src/Admin/Pages/TestTab.php:662 -#: src/Admin/Pages/TestTab.php:1050 -msgid "Typically this error is returned for one of the following reasons:" -msgstr "" - -#: src/Admin/Pages/TestTab.php:663 -msgid "SMTP settings are incorrect (wrong port, security setting, incorrect host)." -msgstr "" - -#: src/Admin/Pages/TestTab.php:664 -#: src/Admin/Pages/TestTab.php:1052 -msgid "Your web server is blocking the connection." -msgstr "" - -#: src/Admin/Pages/TestTab.php:665 -msgid "Your SMTP host is rejecting the connection." -msgstr "" - -#: src/Admin/Pages/TestTab.php:668 -msgid "Triple check your SMTP settings including host address, email, and password, port, and security." -msgstr "" - -#. translators: %1$s - SMTP host address, %2$s - SMTP port, %3$s - SMTP encryption. -#: src/Admin/Pages/TestTab.php:671 -msgid "Contact your web hosting provider and ask them to verify your server can connect to %1$s on port %2$s using %3$s encryption. Additionally, ask them if a firewall or security policy may be preventing the connection - many shared hosts block certain ports.
Note: this is the most common cause of this issue." -msgstr "" - -#: src/Admin/Pages/TestTab.php:684 -msgid "no" -msgstr "" - -#: src/Admin/Pages/TestTab.php:697 -#: src/Admin/Pages/TestTab.php:712 -#: src/Admin/Pages/TestTab.php:728 -msgid "Mailgun failed." -msgstr "" - -#: src/Admin/Pages/TestTab.php:698 -msgid "It seems that you forgot to activate your Mailgun account." -msgstr "" - -#: src/Admin/Pages/TestTab.php:701 -msgid "Check your inbox you used to create a Mailgun account. Click the activation link in an email from Mailgun." -msgstr "" - -#: src/Admin/Pages/TestTab.php:702 -msgid "If you do not see activation email, go to your Mailgun control panel and resend the activation email." -msgstr "" - -#: src/Admin/Pages/TestTab.php:713 -msgid "Typically this error is because there is an issue with your Mailgun settings, in many cases the API key." -msgstr "" - -#: src/Admin/Pages/TestTab.php:716 -msgid "Verify your API key is correct." -msgstr "" - -#: src/Admin/Pages/TestTab.php:717 -msgid "Go to your Mailgun account and view your API key." -msgstr "" - -#: src/Admin/Pages/TestTab.php:718 -msgid "Note that the API key includes the \"key\" prefix, so make sure that it is in the WP Mail SMTP Mailgun API setting." -msgstr "" - -#: src/Admin/Pages/TestTab.php:729 -msgid "Your Mailgun account does not have access to send emails." -msgstr "" - -#: src/Admin/Pages/TestTab.php:730 -msgid "Typically this error is because you have not set up and/or complete domain name verification for your Mailgun account." -msgstr "" - -#. translators: %s - Mailgun documentation URL. -#: src/Admin/Pages/TestTab.php:735 -msgid "Go to our how-to guide for setting up Mailgun with WP Mail SMTP." -msgstr "" - -#: src/Admin/Pages/TestTab.php:746 -msgid "Complete the steps in section \"2. Verify Your Domain\"." -msgstr "" - -#: src/Admin/Pages/TestTab.php:756 -#: src/Admin/Pages/TestTab.php:805 -#: src/Admin/Pages/TestTab.php:825 -#: src/Admin/Pages/TestTab.php:853 -#: src/Admin/Pages/TestTab.php:869 -#: src/Admin/Pages/TestTab.php:921 -#: src/Admin/Pages/TestTab.php:947 -msgid "Google API Error." -msgstr "" - -#: src/Admin/Pages/TestTab.php:757 -msgid "You have not properly configured Gmail mailer." -msgstr "" - -#: src/Admin/Pages/TestTab.php:758 -msgid "Make sure that you have clicked the \"Allow plugin to send emails using your Google account\" button under Gmail settings." -msgstr "" - -#: src/Admin/Pages/TestTab.php:761 -msgid "Go to plugin Settings page and click the \"Allow plugin to send emails using your Google account\" button." -msgstr "" - -#: src/Admin/Pages/TestTab.php:762 -msgid "After the click you should be redirected to a Gmail authorization screen, where you will be asked a permission to send emails on your behalf." -msgstr "" - -#: src/Admin/Pages/TestTab.php:763 -msgid "Please click \"Agree\", if you see that button. If not - you will need to enable less secure apps first:" -msgstr "" - -#. translators: %s - Google support article URL. -#: src/Admin/Pages/TestTab.php:768 -msgid "if you are using regular Gmail account, please read this article to proceed." -msgstr "" - -#. translators: %s - Google support article URL. -#: src/Admin/Pages/TestTab.php:783 -msgid "if you are using G Suite, please read this article to proceed." -msgstr "" - -#: src/Admin/Pages/TestTab.php:806 -msgid "Typically this error is because address the email was sent to is invalid or was empty." -msgstr "" - -#: src/Admin/Pages/TestTab.php:809 -msgid "Check the \"Send To\" email address used and confirm it is a valid email and was not empty." -msgstr "" - -#. translators: 1 - correct email address example. 2 - incorrect email address example. -#: src/Admin/Pages/TestTab.php:811 -msgid "It should be something like this: %1$s. These are incorrect values: %2$s." -msgstr "" - -#: src/Admin/Pages/TestTab.php:815 -msgid "Make sure that the generated email has a TO header, useful when you are responsible for email creation." -msgstr "" - -#: src/Admin/Pages/TestTab.php:826 -msgid "Unfortunately, this error can be due to many different reasons." -msgstr "" - -#. translators: %s - Blog article URL. -#: src/Admin/Pages/TestTab.php:829 -msgid "Please read this article to learn more about what can cause this error and follow the steps below." -msgstr "" - -#: src/Admin/Pages/TestTab.php:842 -#: src/Providers/Gmail/Mailer.php:270 -msgid "Go to WP Mail SMTP plugin settings page. Click the “Remove Connection” button." -msgstr "" - -#: src/Admin/Pages/TestTab.php:843 -#: src/Providers/Gmail/Mailer.php:271 -msgid "Then click the “Allow plugin to send emails using your Google account” button and re-enable access." -msgstr "" - -#: src/Admin/Pages/TestTab.php:854 -msgid "Authentication code that Google returned to you has already been used on your previous auth attempt." -msgstr "" - -#: src/Admin/Pages/TestTab.php:857 -msgid "Make sure that you are not trying to manually clean up the plugin options to retry the \"Allow...\" step." -msgstr "" - -#: src/Admin/Pages/TestTab.php:858 -msgid "Reinstall the plugin with clean plugin data turned on on Misc page. This will remove all the plugin options and you will be safe to retry." -msgstr "" - -#: src/Admin/Pages/TestTab.php:859 -msgid "Make sure there is no aggressive caching on site admin area pages or try to clean cache between attempts." -msgstr "" - -#: src/Admin/Pages/TestTab.php:870 -msgid "There are various reasons for that, please review the steps below." -msgstr "" - -#. translators: %s - Google G Suite Admin area URL. -#: src/Admin/Pages/TestTab.php:875 -msgid "Make sure that your G Suite trial period has not expired. You can check the status here." -msgstr "" - -#. translators: %s - Google G Suite Admin area URL. -#: src/Admin/Pages/TestTab.php:888 -msgid "Make sure that Gmail app in your G Suite is actually enabled. You can check that in Apps list in G Suite Admin area." -msgstr "" - -#. translators: %s - Google Developers Console URL. -#: src/Admin/Pages/TestTab.php:901 -msgid "Make sure that you have Gmail API enabled, and you can do that here." -msgstr "" - -#: src/Admin/Pages/TestTab.php:924 -#: src/Admin/Pages/TestTab.php:951 -msgid "Make sure that the used Client ID/Secret correspond to a proper project that has Gmail API enabled." -msgstr "" - -#. translators: %s - Gmail documentation URL. -#: src/Admin/Pages/TestTab.php:927 -msgid "Please follow our Gmail tutorial to be sure that all the correct project and data is applied." -msgstr "" - -#: src/Admin/Pages/TestTab.php:948 -msgid "You may have added a new API to a project" -msgstr "" - -#: src/Admin/Pages/TestTab.php:952 -msgid "Try to use a separate project for your emails, so the project has only 1 Gmail API in it enabled. You will need to remove the old project and create a new one from scratch." -msgstr "" - -#: src/Admin/Pages/TestTab.php:962 -msgid "SMTP.com API Error." -msgstr "" - -#: src/Admin/Pages/TestTab.php:963 -msgid "Your Sender Name option is incorrect." -msgstr "" - -#: src/Admin/Pages/TestTab.php:966 -msgid "Please make sure you entered an accurate Sender Name in WP Mail SMTP plugin settings." -msgstr "" - -#: src/Admin/Pages/TestTab.php:976 -msgid "GuzzleHttp requirements." -msgstr "" - -#: src/Admin/Pages/TestTab.php:977 -msgid "GuzzleHttp requires cURL, the allow_url_fopen ini setting, or a custom HTTP handler." -msgstr "" - -#: src/Admin/Pages/TestTab.php:980 -msgid "Edit your php.ini file on your hosting server." -msgstr "" - -#: src/Admin/Pages/TestTab.php:981 -msgid "(Recommended) Enable PHP extension: cURL, by adding \"extension=curl\" to the php.ini file (without the quotation marks) OR" -msgstr "" - -#: src/Admin/Pages/TestTab.php:982 -msgid "(If cURL can't be enabled on your hosting server) Enable PHP setting: allow_url_fopen, by adding \"allow_url_fopen = On\" to the php.ini file (without the quotation marks)" -msgstr "" - -#: src/Admin/Pages/TestTab.php:983 -msgid "If you don't know how to do the above we strongly suggest contacting your hosting support and provide them the \"full Error Log for debugging\" below and these steps. They should be able to fix this issue for you." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1005 -msgid "PCRE library issue" -msgstr "" - -#: src/Admin/Pages/TestTab.php:1006 -msgid "It looks like your server is running PHP version 7.4.x with an outdated PCRE library (libpcre2) that has a known issue with email address validation." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1007 -msgid "There is a known issue with PHP version 7.4.x, when using libpcre2 library version lower than 10.33." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1010 -msgid "Contact your web hosting provider and inform them you are having issues with libpcre2 library on PHP 7.4." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1011 -msgid "They should be able to resolve this issue for you." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1012 -msgid "For a quick fix, until your web hosting resolves this, you can downgrade to PHP version 7.3 on your server." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1048 -msgid "An issue was detected." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1049 -msgid "This means your test email was unable to be sent." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1051 -msgid "Plugin settings are incorrect (wrong SMTP settings, invalid Mailer configuration, etc)." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1053 -msgid "Your host is rejecting the connection." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1056 -msgid "Triple check the plugin settings, consider reconfiguring to make sure everything is correct (eg bad copy and paste)." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1058 -msgid "Contact your web hosting provider and ask them to verify your server can make outside connections. Additionally, ask them if a firewall or security policy may be preventing the connection - many shared hosts block certain ports.
Note: this is the most common cause of this issue." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1064 -msgid "Try using a different mailer." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1083 -msgid "There was a problem while sending the test email." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1093 -msgid "Recommended next steps:" -msgstr "" - -#: src/Admin/Pages/TestTab.php:1103 -msgid "Need support?" -msgstr "" - -#. translators: %s - WPMailSMTP.com account area link. -#: src/Admin/Pages/TestTab.php:1111 -msgid "As a WP Mail SMTP Pro user you have access to WP Mail SMTP priority support. Please log in to your WPMailSMTP.com account and submit a support ticket." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1128 -msgid "WP Mail SMTP is a free plugin, and the team behind WPForms maintains it to give back to the WordPress community." -msgstr "" - -#. translators: %s - WPMailSMTP.com URL. -#: src/Admin/Pages/TestTab.php:1135 -msgid "To access our world class support, please upgrade to WP Mail SMTP Pro. Along with getting expert support, you will also get Notification controls, Email Logging, and integrations for Amazon SES, Office 365, and Outlook.com." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1150 -msgid "Additionally, you can take advantage of our White Glove Setup. Sit back and relax while we handle everything for you! If you simply don't have time or maybe you feel a bit in over your head - we got you covered." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1156 -msgid "As a valued WP Mail SMTP user, you will get $50 off regular pricing, automatically applied at checkout!" -msgstr "" - -#. translators: %1$s - WP Mail SMTP support policy URL, %2$s - WP Mail SMTP support forum URL, %3$s - WPMailSMTP.com URL. -#: src/Admin/Pages/TestTab.php:1170 -msgid "Alternatively, we also offer limited support on the WordPress.org support forums. You can create a support thread there, but please understand that free support is not guaranteed and is limited to simple issues. If you have an urgent or complex issue, then please consider upgrading to WP Mail SMTP Pro to access our priority support ticket system." -msgstr "" - -#: src/Admin/Pages/TestTab.php:1191 -msgid "Click here to view the full Error Log for debugging" -msgstr "" - -#: src/Admin/Pages/TestTab.php:1200 -msgid "Please copy only the content of the error debug message above, identified with an orange left border, into the support forum topic if you experience any issues." -msgstr "" - -#: src/Admin/Review.php:119 -msgid "Are you enjoying WP Mail SMTP?" -msgstr "" - -#: src/Admin/Review.php:121 -msgid "Yes" -msgstr "" - -#: src/Admin/Review.php:122 -msgid "Not Really" -msgstr "" - -#: src/Admin/Review.php:126 -msgid "We're sorry to hear you aren't enjoying WP Mail SMTP. We would love a chance to improve. Could you take a minute and let us know what we can do better?" -msgstr "" - -#: src/Admin/Review.php:129 -msgid "Give Feedback" -msgstr "" - -#: src/Admin/Review.php:132 -msgid "No thanks" -msgstr "" - -#: src/Admin/Review.php:137 -msgid "That’s awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?" -msgstr "" - -#: src/Admin/Review.php:138 -msgid "~ Jared Atchison
Lead Developer, WP Mail SMTP" -msgstr "" - -#: src/Admin/Review.php:141 -msgid "Ok, you deserve it" -msgstr "" - -#: src/Admin/Review.php:143 -msgid "Nope, maybe later" -msgstr "" - -#: src/Admin/Review.php:144 -msgid "I already did" -msgstr "" - -#. translators: %1$s - Plugin name causing conflict; %2$s - Plugin name causing conflict. -#: src/Conflicts.php:159 -msgid "Heads up! WP Mail SMTP has detected %1$s is activated. Please deactivate %2$s to prevent conflicts." -msgstr "" - -#. translators: %1$s - WP Mail SMTP plugin name; %2$s - WPMailSMTP.com URL to a related doc. -#: src/Core.php:392 -msgid "Your site is running an outdated version of PHP that is no longer supported and may cause issues with %1$s. Read more for additional information." -msgstr "" - -#: src/Core.php:406 -msgid "Please Note: Support for PHP 5.5 will be discontinued in 2020. After this, if no further action is taken, WP Mail SMTP functionality will be disabled." -msgstr "" - -#. translators: %s - plugin name and its version. -#: src/Core.php:440 -msgid "EMAILING DISABLED: The %s is currently blocking all emails from being sent." -msgstr "" - -#. translators: %1$s - constant name; %2$s - constant value. -#: src/Core.php:451 -msgid "To send emails, change the value of the %1$s constant to %2$s." -msgstr "" - -#. translators: %s - plugin Misc settings page URL. -#: src/Core.php:462 -msgid "To send emails, go to plugin Misc settings and disable the \"Do Not Send\" option." -msgstr "" - -#. translators: %s - plugin name and its version. -#: src/Core.php:506 -msgid "EMAIL DELIVERY ERROR: the plugin %s logged this error during the last time it tried to send an email:" -msgstr "" - -#: src/Core.php:536 -msgid "Consider running an email test after fixing it." -msgstr "" - -#: src/Core.php:979 -msgid "Loading" -msgstr "" - -#. translators: %1$s - WP Mail SMTP, %2$s - error message. -#: src/Migration.php:137 -msgid "There was an error while upgrading the database. Please contact %1$s support with this information: %2$s." -msgstr "" - -#: src/Pro/Emails/Logs/Admin/SinglePage.php:171 -msgid "Error icon" -msgstr "" - -#: src/Pro/SiteHealth.php:58 -msgid "Is wpmailsmtp.com reachable?" -msgstr "" - -#: src/Providers/AmazonSES/Options.php:25 -msgid "Amazon SES" -msgstr "" - -#: src/Providers/AmazonSES/Options.php:39 -msgid "We're sorry, the Amazon SES mailer is not available on your plan. Please upgrade to the PRO plan to unlock all these awesome features." -msgstr "" - -#: src/Providers/Gmail/Auth.php:124 -msgid "Please make sure your Google Client ID and Secret in the plugin settings are valid. Save the settings and try the Authorization again." -msgstr "" - -#: src/Providers/Gmail/Auth.php:192 -msgid "There was an error while processing the Google authentication request. Please make sure that you have Client ID and Client Secret both valid and saved." -msgstr "" - -#: src/Providers/Gmail/Mailer.php:137 -msgid "The response object is invalid (missing getId method)." -msgstr "" - -#: src/Providers/Gmail/Mailer.php:142 -msgid "The email message ID is missing." -msgstr "" - -#: src/Providers/Gmail/Mailer.php:269 -msgid "Please re-grant Google app permissions!" -msgstr "" - -#: src/Providers/Gmail/Options.php:33 -msgid "Gmail" -msgstr "" - -#. translators: %s - URL to our Gmail doc. -#: src/Providers/Gmail/Options.php:36 -msgid "Send emails using your Gmail or G Suite (formerly Google Apps) account, all while keeping your login credentials safe. Other Google SMTP methods require enabling less secure apps in your account and entering your password. However, this integration uses the Google API to improve email delivery issues while keeping your site secure.

Read our Gmail documentation to learn how to configure Gmail or G Suite." -msgstr "" - -#: src/Providers/Gmail/Options.php:49 -msgid "The Gmail mailer works well for sites that send low numbers of emails. However, Gmail's API has rate limitations and a number of additional restrictions that can lead to challenges during setup. If you expect to send a high volume of emails, or if you find that your web host is not compatible with the Gmail API restrictions, then we recommend considering a different mailer option." -msgstr "" - -#: src/Providers/Gmail/Options.php:80 -msgid "Client ID" -msgstr "" - -#: src/Providers/Gmail/Options.php:95 -msgid "Client Secret" -msgstr "" - -#: src/Providers/Gmail/Options.php:117 -msgid "Authorized redirect URI" -msgstr "" - -#: src/Providers/Gmail/Options.php:125 -msgid "Copy URL to clipboard" -msgstr "" - -#: src/Providers/Gmail/Options.php:130 -msgid "Please copy this URL into the \"Authorized redirect URIs\" field of your Google web application." -msgstr "" - -#: src/Providers/Gmail/Options.php:139 -msgid "Authorization" -msgstr "" - -#: src/Providers/Gmail/Options.php:167 -msgid "Allow plugin to send emails using your Google account" -msgstr "" - -#: src/Providers/Gmail/Options.php:170 -msgid "Click the button above to confirm authorization." -msgstr "" - -#: src/Providers/Gmail/Options.php:176 -msgid "Remove Connection" -msgstr "" - -#. translators: %s - email address, as received from Google API. -#: src/Providers/Gmail/Options.php:185 -msgid "Connected as %s" -msgstr "" - -#. translators: %s - URL to Google Gmail alias documentation page. -#: src/Providers/Gmail/Options.php:195 -msgid "If you want to use a different From Email address you can set-up a Google email alias. Follow these instructions and then select the From Email at the top of this page." -msgstr "" - -#: src/Providers/Gmail/Options.php:209 -msgid "Removing the connection will give you an ability to redo the connection or link to another Google account." -msgstr "" - -#: src/Providers/Gmail/Options.php:217 -msgid "You need to save settings with Client ID and Client Secret before you can proceed." -msgstr "" - -#: src/Providers/Mail/Options.php:25 -msgid "Default (none)" -msgstr "" - -#: src/Providers/Mail/Options.php:37 -msgid "You currently have the native WordPress option selected. Please select any other Mailer option above to continue the setup." -msgstr "" - -#: src/Providers/Mailgun/Mailer.php:412 -msgid "Mailgun API request was successful, but it could not queue the email for delivery." -msgstr "" - -#: src/Providers/Mailgun/Mailer.php:413 -msgid "This could point to an incorrect Domain Name in the plugin settings." -msgstr "" - -#: src/Providers/Mailgun/Mailer.php:414 -msgid "Please check the WP Mail SMTP plugin settings and make sure the Mailgun Domain Name setting is correct." -msgstr "" - -#: src/Providers/Mailgun/Options.php:25 -msgid "Mailgun" -msgstr "" - -#. translators: %1$s - opening link tag; %2$s - closing link tag; %3$s - opening link tag; %4$s - closing link tag. -#: src/Providers/Mailgun/Options.php:29 -msgid "%1$sMailgun%2$s is one of the leading transactional email services trusted by over 150,000+ businesses. They provide 5,000 free emails per month for 3 months.

Read our %3$sMailgun documentation%4$s to learn how to configure Mailgun and improve your email deliverability." -msgstr "" - -#: src/Providers/Mailgun/Options.php:57 -msgid "Private API Key" -msgstr "" - -#. translators: %s - API key link. -#: src/Providers/Mailgun/Options.php:76 -msgid "Follow this link to get an API Key from Mailgun: %s." -msgstr "" - -#: src/Providers/Mailgun/Options.php:78 -msgid "Get a Private API Key" -msgstr "" - -#: src/Providers/Mailgun/Options.php:89 -msgid "Domain Name" -msgstr "" - -#. translators: %s - Domain Name link. -#: src/Providers/Mailgun/Options.php:101 -msgid "Follow this link to get a Domain Name from Mailgun: %s." -msgstr "" - -#: src/Providers/Mailgun/Options.php:103 -msgid "Get a Domain Name" -msgstr "" - -#: src/Providers/Mailgun/Options.php:114 -msgid "Region" -msgstr "" - -#: src/Providers/Mailgun/Options.php:124 -msgid "US" -msgstr "" - -#: src/Providers/Mailgun/Options.php:133 -msgid "EU" -msgstr "" - -#: src/Providers/Mailgun/Options.php:137 -msgid "Define which endpoint you want to use for sending messages." -msgstr "" - -#: src/Providers/Mailgun/Options.php:138 -msgid "If you are operating under EU laws, you may be required to use EU region." -msgstr "" - -#. translators: %s - URL to Mailgun.com page. -#: src/Providers/Mailgun/Options.php:143 -msgid "More information on Mailgun.com." -msgstr "" - -#: src/Providers/OptionsAbstract.php:198 -msgid "SMTP Host" -msgstr "" - -#: src/Providers/OptionsAbstract.php:212 -msgid "Encryption" -msgstr "" - -#: src/Providers/OptionsAbstract.php:222 -msgid "None" -msgstr "" - -#: src/Providers/OptionsAbstract.php:231 -msgid "SSL" -msgstr "" - -#: src/Providers/OptionsAbstract.php:240 -msgid "TLS" -msgstr "" - -#: src/Providers/OptionsAbstract.php:244 -msgid "For most servers TLS is the recommended option. If your SMTP provider offers both SSL and TLS options, we recommend using TLS." -msgstr "" - -#: src/Providers/OptionsAbstract.php:252 -msgid "SMTP Port" -msgstr "" - -#: src/Providers/OptionsAbstract.php:266 -msgid "Auto TLS" -msgstr "" - -#: src/Providers/OptionsAbstract.php:280 -msgid "By default TLS encryption is automatically used if the server supports it, which is recommended. In some cases, due to server misconfigurations, this can cause issues and may need to be disabled." -msgstr "" - -#: src/Providers/OptionsAbstract.php:288 -msgid "Authentication" -msgstr "" - -#: src/Providers/OptionsAbstract.php:307 -msgid "SMTP Username" -msgstr "" - -#: src/Providers/OptionsAbstract.php:321 -msgid "SMTP Password" -msgstr "" - -#. translators: %s - constant name: WPMS_SMTP_PASS. -#: src/Providers/OptionsAbstract.php:333 -msgid "To change the password you need to change the value of the constant there: %s" -msgstr "" - -#. translators: %1$s - wp-config.php file, %2$s - WPMS_ON constant name. -#: src/Providers/OptionsAbstract.php:341 -msgid "If you want to disable the use of constants, find in %1$s file the constant %2$s and turn if off:" -msgstr "" - -#: src/Providers/OptionsAbstract.php:351 -msgid "All the defined constants will stop working and you will be able to change all the values on this page." -msgstr "" - -#: src/Providers/OptionsAbstract.php:359 -msgid "The password is encrypted in the database, but for improved security we recommend using your site's WordPress configuration file to set your password." -msgstr "" - -#: src/Providers/OptionsAbstract.php:362 -msgid "Learn More" -msgstr "" - -#. translators: %1$s - Provider name; %2$s - PHP version required by Provider; %3$s - current PHP version. -#: src/Providers/OptionsAbstract.php:422 -msgid "%1$s requires PHP %2$s to work and does not support your current PHP version %3$s. Please contact your host and request a PHP upgrade to the latest one." -msgstr "" - -#: src/Providers/OptionsAbstract.php:429 -msgid "Meanwhile you can switch to some other mailers." -msgstr "" - -#. translators: %s - Provider name -#: src/Providers/OptionsAbstract.php:448 -msgid "%s requires an SSL certificate, and so is not currently compatible with your site. Please contact your host to request a SSL certificate, or check out WPBeginner's tutorial on how to set up SSL." -msgstr "" - -#: src/Providers/OptionsAbstract.php:461 -msgid "If you'd prefer not to set up SSL, or need an SMTP solution in the meantime, please select a different mailer option." -msgstr "" - -#: src/Providers/Outlook/Options.php:25 -msgid "Outlook" -msgstr "" - -#: src/Providers/Outlook/Options.php:39 -msgid "We're sorry, the Microsoft Outlook mailer is not available on your plan. Please upgrade to the PRO plan to unlock all these awesome features." -msgstr "" - -#: src/Providers/Pepipost/Options.php:25 -msgid "Pepipost SMTP" -msgstr "" - -#: src/Providers/PepipostAPI/Mailer.php:341 -msgid "General error" -msgstr "" - -#: src/Providers/PepipostAPI/Mailer.php:342 -msgid "Error" -msgstr "" - -#. translators: %1$s - URL to pepipost.com site. -#: src/Providers/PepipostAPI/Options.php:32 -msgid "Pepipost is a transactional email service. Every month Pepipost delivers over 8 billion emails from 20,000+ customers. Their mission is to reliably send emails in the most efficient way and at the most disruptive pricing ever. Pepipost provides users 30,000 free emails the first 30 days." -msgstr "" - -#. translators: %1$s - URL to wpmailsmtp.com doc. -#: src/Providers/PepipostAPI/Options.php:35 -msgid "Read our Pepipost documentation to learn how to configure Pepipost and improve your email deliverability." -msgstr "" - -#: src/Providers/PepipostAPI/Options.php:53 -msgid "Get Started with Pepipost" -msgstr "" - -#: src/Providers/PepipostAPI/Options.php:61 -msgid "Pepipost" -msgstr "" - -#: src/Providers/PepipostAPI/Options.php:94 -#: src/Providers/Sendgrid/Options.php:65 -#: src/Providers/Sendinblue/Options.php:96 -#: src/Providers/SMTPcom/Options.php:91 -msgid "API Key" -msgstr "" - -#. translators: %s - link to get an API Key. -#: src/Providers/PepipostAPI/Options.php:113 -#: src/Providers/Sendinblue/Options.php:115 -msgid "Follow this link to get an API Key: %s." -msgstr "" - -#: src/Providers/PepipostAPI/Options.php:115 -msgid "Get the API Key" -msgstr "" - -#: src/Providers/Sendgrid/Options.php:26 -msgid "SendGrid" -msgstr "" - -#. translators: %1$s - opening link tag; %2$s - closing link tag; %3$s - opening link tag; %4$s - closing link tag. -#: src/Providers/Sendgrid/Options.php:30 -msgid "%1$sSendGrid%2$s is one of the leading transactional email services, sending over 35 billion emails every month. They provide users 100 free emails per day.

Read our %3$sSendGrid documentation%4$s to learn how to set up SendGrid and improve your email deliverability." -msgstr "" - -#. translators: %s - API key link. -#: src/Providers/Sendgrid/Options.php:84 -msgid "Follow this link to get an API Key from SendGrid: %s." -msgstr "" - -#: src/Providers/Sendgrid/Options.php:86 -msgid "Create API Key" -msgstr "" - -#. translators: %s - SendGrid access level. -#: src/Providers/Sendgrid/Options.php:94 -msgid "To send emails you will need only a %s access level for this API key." -msgstr "" - -#. translators: %1$s - URL to sendinblue.com site. -#: src/Providers/Sendinblue/Options.php:32 -msgid "Sendinblue is our recommended transactional email service. Founded in 2012, they serve 80,000+ growing companies around the world and send over 30 million emails each day. They understand that transactional emails are the heart of your customer relationships. Their email deliverability experts are constantly at work optimizing the reliability and speed of their SMTP infrastructure. Sendinblue provides users 300 free emails per day." -msgstr "" - -#. translators: %2$s - URL to wpmailsmtp.com doc. -#: src/Providers/Sendinblue/Options.php:35 -msgid "Read our Sendinblue documentation to learn how to configure Sendinblue and improve your email deliverability." -msgstr "" - -#: src/Providers/Sendinblue/Options.php:54 -msgid "Get Sendinblue Now (Free)" -msgstr "" - -#: src/Providers/Sendinblue/Options.php:62 -msgid "Sendinblue" -msgstr "" - -#: src/Providers/Sendinblue/Options.php:117 -msgid "Get v3 API Key" -msgstr "" - -#: src/Providers/SMTP/Options.php:25 -msgid "Other SMTP" -msgstr "" - -#. translators: %s - URL to SMTP documentation. -#: src/Providers/SMTP/Options.php:29 -msgid "Use the SMTP details provided by your hosting provider or email service.

To see recommended settings for the popular services as well as troubleshooting tips, check out our SMTP documentation." -msgstr "" - -#: src/Providers/SMTPcom/Mailer.php:461 -msgid "Api Key:" -msgstr "" - -#: src/Providers/SMTPcom/Mailer.php:463 -msgid "Channel:" -msgstr "" - -#. translators: %s - URL to smtp.com site. -#: src/Providers/SMTPcom/Options.php:42 -msgid "SMTP.com is a recommended transactional email service. With a 22 years of track record of reliable email delivery, SMTP.com is a premiere solution for WordPress developers and website owners. SMTP.com has been around for almost as long as email itself. Their super simple integration interface makes it easy to get started while a powerful API and robust documentation make it a preferred choice among developers. Start a 30-day free trial with 50,000 emails." -msgstr "" - -#. translators: %s - URL to wpmailsmtp.com doc page for stmp.com. -#: src/Providers/SMTPcom/Options.php:50 -msgid "Read our SMTP.com documentation to learn how to configure SMTP.com and improve your email deliverability." -msgstr "" - -#: src/Providers/SMTPcom/Options.php:60 -msgid "Get Started with SMTP.com" -msgstr "" - -#: src/Providers/SMTPcom/Options.php:68 -msgid "SMTP.com" -msgstr "" - -#. translators: %s - API key link. -#: src/Providers/SMTPcom/Options.php:109 -msgid "Follow this link to get an API Key from SMTP.com: %s." -msgstr "" - -#: src/Providers/SMTPcom/Options.php:111 -msgid "Get API Key" -msgstr "" - -#: src/Providers/SMTPcom/Options.php:122 -msgid "Sender Name" -msgstr "" - -#. translators: %s - Channel/Sender Name link for smtp.com documentation. -#: src/Providers/SMTPcom/Options.php:138 -msgid "Follow this link to get a Sender Name from SMTP.com: %s." -msgstr "" - -#: src/Providers/SMTPcom/Options.php:140 -msgid "Get Sender Name" -msgstr "" - -#: src/Providers/Zoho/Options.php:25 -msgid "Zoho Mail" -msgstr "" - -#: src/Providers/Zoho/Options.php:41 -msgid "We're sorry, the Zoho Mail mailer is not available on your plan. Please upgrade to the PRO plan to unlock all these awesome features." -msgstr "" - -#: src/SiteHealth.php:67 -msgid "Is WP Mail SMTP mailer setup complete?" -msgstr "" - -#: src/SiteHealth.php:72 -msgid "Do WP Mail SMTP DB tables exist?" -msgstr "" - -#: src/SiteHealth.php:98 -msgid "Version" -msgstr "" - -#: src/SiteHealth.php:102 -msgid "License key type" -msgstr "" - -#: src/SiteHealth.php:106 -msgid "Debug" -msgstr "" - -#: src/SiteHealth.php:107 -msgid "No debug notices found." -msgstr "" - -#: src/SiteHealth.php:110 -msgid "DB tables" -msgstr "" - -#: src/SiteHealth.php:112 -msgid "No DB tables found." -msgstr "" - -#: src/SiteHealth.php:123 -msgid "Lite install date" -msgstr "" - -#: src/SiteHealth.php:140 -msgid "None selected" -msgstr "" - -#: src/SiteHealth.php:160 -msgid "Current mailer" -msgstr "" - -#: src/SiteHealth.php:165 -msgid "WP Mail SMTP mailer setup is complete" -msgstr "" - -#: src/SiteHealth.php:174 -msgid "The WP Mail SMTP plugin mailer setup is complete. You can send a test email, to make sure it's working properly." -msgstr "" - -#: src/SiteHealth.php:179 -msgid "Test email sending" -msgstr "" - -#: src/SiteHealth.php:187 -msgid "You currently have the default mailer selected, which means that you haven’t set up SMTP yet." -msgstr "" - -#: src/SiteHealth.php:192 -msgid "WP Mail SMTP mailer setup is incomplete" -msgstr "" - -#: src/SiteHealth.php:198 -msgid "The WP Mail SMTP plugin mailer setup is incomplete. Please click on the link below to access plugin settings and configure the mailer." -msgstr "" - -#: src/SiteHealth.php:203 -msgid "Configure mailer" -msgstr "" - -#: src/SiteHealth.php:220 -msgid "WP Mail SMTP DB tables are created" -msgstr "" - -#: src/SiteHealth.php:226 -msgid "WP Mail SMTP is using custom database tables for some of its features. In order to work properly, the custom tables should be created, and it looks like they exist in your database." -msgstr "" - -#: src/SiteHealth.php:234 -msgid "WP Mail SMTP DB tables check has failed" -msgstr "" - -#. translators: %s - the list of missing tables separated by comma. -#: src/SiteHealth.php:240 -msgid "Missing table: %s" -msgid_plural "Missing tables: %s" -msgstr[0] "" -msgstr[1] "" - -#: src/SiteHealth.php:243 -msgid "WP Mail SMTP is using custom database tables for some of its features. In order to work properly, the custom tables should be created, and it seems they are missing. Please try to re-install the WP Mail SMTP plugin. If this issue persists, please contact our support." -msgstr "" - -#. translators: %1$s - date, \a\t - specially escaped "at", %2$s - time. -#: src/WP.php:190 -msgid "%1$s \\a\\t %2$s" -msgstr "" - -#: wp_mail_smtp.php:137 -msgid "Please deactivate the free version of the WP Mail SMTP plugin before activating WP Mail SMTP Pro." -msgstr "" - -#. translators: %1$s - WPBeginner URL for recommended WordPress hosting. -#: wp_mail_smtp.php:165 -msgid "Your site is running an insecure version of PHP that is no longer supported. Please contact your web hosting provider to update your PHP version or switch to a recommended WordPress hosting company." -msgstr "" - -#. translators: %s - WPMailSMTP.com docs URL with more details. -#: wp_mail_smtp.php:182 -msgid "WP Mail SMTP plugin is disabled on your site until you fix the issue. Read more for additional information." -msgstr "" diff --git a/wp-content/plugins/wp-mail-smtp/assets/libs/jquery-confirm.min.css b/wp-content/plugins/wp-mail-smtp/assets/libs/jquery-confirm.min.css deleted file mode 100644 index b66d205..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/libs/jquery-confirm.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * jquery-confirm v3.3.4 (http://craftpip.github.io/jquery-confirm/) - * Author: boniface pereira - * Website: www.craftpip.com - * Contact: hey@craftpip.com - * - * Copyright 2013-2019 jquery-confirm - * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) - */@-webkit-keyframes jconfirm-spin{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes jconfirm-spin{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}body[class*=jconfirm-no-scroll-]{overflow:hidden!important}.jconfirm{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99999999;font-family:inherit;overflow:hidden}.jconfirm .jconfirm-bg{position:fixed;top:0;left:0;right:0;bottom:0;-webkit-transition:opacity .4s;transition:opacity .4s}.jconfirm .jconfirm-bg.jconfirm-bg-h{opacity:0!important}.jconfirm .jconfirm-scrollpane{-webkit-perspective:500px;perspective:500px;-webkit-perspective-origin:center;perspective-origin:center;display:table;width:100%;height:100%}.jconfirm .jconfirm-row{display:table-row;width:100%}.jconfirm .jconfirm-cell{display:table-cell;vertical-align:middle}.jconfirm .jconfirm-holder{max-height:100%;padding:50px 0}.jconfirm .jconfirm-box-container{-webkit-transition:-webkit-transform;transition:-webkit-transform;transition:transform;transition:transform,-webkit-transform}.jconfirm .jconfirm-box-container.jconfirm-no-transition{-webkit-transition:none!important;transition:none!important}.jconfirm .jconfirm-box{background:white;border-radius:4px;position:relative;outline:0;padding:15px 15px 0;overflow:hidden;margin-left:auto;margin-right:auto}@-webkit-keyframes type-blue{1%,100%{border-color:#3498db}50%{border-color:#5faee3}}@keyframes type-blue{1%,100%{border-color:#3498db}50%{border-color:#5faee3}}@-webkit-keyframes type-green{1%,100%{border-color:#2ecc71}50%{border-color:#54d98c}}@keyframes type-green{1%,100%{border-color:#2ecc71}50%{border-color:#54d98c}}@-webkit-keyframes type-red{1%,100%{border-color:#e74c3c}50%{border-color:#ed7669}}@keyframes type-red{1%,100%{border-color:#e74c3c}50%{border-color:#ed7669}}@-webkit-keyframes type-orange{1%,100%{border-color:#f1c40f}50%{border-color:#f4d03f}}@keyframes type-orange{1%,100%{border-color:#f1c40f}50%{border-color:#f4d03f}}@-webkit-keyframes type-purple{1%,100%{border-color:#9b59b6}50%{border-color:#b07cc6}}@keyframes type-purple{1%,100%{border-color:#9b59b6}50%{border-color:#b07cc6}}@-webkit-keyframes type-dark{1%,100%{border-color:#34495e}50%{border-color:#46627f}}@keyframes type-dark{1%,100%{border-color:#34495e}50%{border-color:#46627f}}.jconfirm .jconfirm-box.jconfirm-type-animated{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.jconfirm .jconfirm-box.jconfirm-type-blue{border-top:solid 7px #3498db;-webkit-animation-name:type-blue;animation-name:type-blue}.jconfirm .jconfirm-box.jconfirm-type-green{border-top:solid 7px #2ecc71;-webkit-animation-name:type-green;animation-name:type-green}.jconfirm .jconfirm-box.jconfirm-type-red{border-top:solid 7px #e74c3c;-webkit-animation-name:type-red;animation-name:type-red}.jconfirm .jconfirm-box.jconfirm-type-orange{border-top:solid 7px #f1c40f;-webkit-animation-name:type-orange;animation-name:type-orange}.jconfirm .jconfirm-box.jconfirm-type-purple{border-top:solid 7px #9b59b6;-webkit-animation-name:type-purple;animation-name:type-purple}.jconfirm .jconfirm-box.jconfirm-type-dark{border-top:solid 7px #34495e;-webkit-animation-name:type-dark;animation-name:type-dark}.jconfirm .jconfirm-box.loading{height:120px}.jconfirm .jconfirm-box.loading:before{content:'';position:absolute;left:0;background:white;right:0;top:0;bottom:0;border-radius:10px;z-index:1}.jconfirm .jconfirm-box.loading:after{opacity:.6;content:'';height:30px;width:30px;border:solid 3px transparent;position:absolute;left:50%;margin-left:-15px;border-radius:50%;-webkit-animation:jconfirm-spin 1s infinite linear;animation:jconfirm-spin 1s infinite linear;border-bottom-color:dodgerblue;top:50%;margin-top:-15px;z-index:2}.jconfirm .jconfirm-box div.jconfirm-closeIcon{height:20px;width:20px;position:absolute;top:10px;right:10px;cursor:pointer;opacity:.6;text-align:center;font-size:27px!important;line-height:14px!important;display:none;z-index:1}.jconfirm .jconfirm-box div.jconfirm-closeIcon:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-closeIcon .fa{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon .glyphicon{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon .zmdi{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon:hover{opacity:1}.jconfirm .jconfirm-box div.jconfirm-title-c{display:block;font-size:22px;line-height:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;padding-bottom:15px}.jconfirm .jconfirm-box div.jconfirm-title-c.jconfirm-hand{cursor:move}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{font-size:inherit;display:inline-block;vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c i{vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:inherit;font-family:inherit;display:inline-block;vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-content-pane{margin-bottom:15px;height:auto;-webkit-transition:height .4s ease-in;transition:height .4s ease-in;display:inline-block;width:100%;position:relative;overflow-x:hidden;overflow-y:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane.no-scroll{overflow-y:hidden}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar{width:3px}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-track{background:rgba(0,0,0,0.1)}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-thumb{background:#666;border-radius:3px}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content img{max-width:100%;height:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content:empty{display:none}.jconfirm .jconfirm-box .jconfirm-buttons{padding-bottom:11px}.jconfirm .jconfirm-box .jconfirm-buttons>button{margin-bottom:4px;margin-left:2px;margin-right:2px}.jconfirm .jconfirm-box .jconfirm-buttons button{display:inline-block;padding:6px 12px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:4px;min-height:1em;-webkit-transition:opacity .1s ease,background-color .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease,-webkit-box-shadow .1s ease;-webkit-tap-highlight-color:transparent;border:0;background-image:none}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue{background-color:#3498db;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue:hover{background-color:#2980b9;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green{background-color:#2ecc71;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green:hover{background-color:#27ae60;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red{background-color:#e74c3c;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red:hover{background-color:#c0392b;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange{background-color:#f1c40f;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange:hover{background-color:#f39c12;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default{background-color:#ecf0f1;color:#000;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default:hover{background-color:#bdc3c7;color:#000}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple{background-color:#9b59b6;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple:hover{background-color:#8e44ad;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark{background-color:#34495e;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark:hover{background-color:#2c3e50;color:#FFF}.jconfirm .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c{color:#e74c3c!important}.jconfirm .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c{color:#3498db!important}.jconfirm .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c{color:#2ecc71!important}.jconfirm .jconfirm-box.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c{color:#9b59b6!important}.jconfirm .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c{color:#f1c40f!important}.jconfirm .jconfirm-box.jconfirm-type-dark .jconfirm-title-c .jconfirm-icon-c{color:#34495e!important}.jconfirm .jconfirm-clear{clear:both}.jconfirm.jconfirm-rtl{direction:rtl}.jconfirm.jconfirm-rtl div.jconfirm-closeIcon{left:5px;right:auto}.jconfirm.jconfirm-white .jconfirm-bg,.jconfirm.jconfirm-light .jconfirm-bg{background-color:#444;opacity:.2}.jconfirm.jconfirm-white .jconfirm-box,.jconfirm.jconfirm-light .jconfirm-box{-webkit-box-shadow:0 2px 6px rgba(0,0,0,0.2);box-shadow:0 2px 6px rgba(0,0,0,0.2);border-radius:5px}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons{float:right}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button{text-transform:uppercase;font-size:14px;font-weight:bold;text-shadow:none}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default{-webkit-box-shadow:none;box-shadow:none;color:#333}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default:hover,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default:hover{background:#ddd}.jconfirm.jconfirm-white.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-light.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-black .jconfirm-bg,.jconfirm.jconfirm-dark .jconfirm-bg{background-color:darkslategray;opacity:.4}.jconfirm.jconfirm-black .jconfirm-box,.jconfirm.jconfirm-dark .jconfirm-box{-webkit-box-shadow:0 2px 6px rgba(0,0,0,0.2);box-shadow:0 2px 6px rgba(0,0,0,0.2);background:#444;border-radius:5px;color:white}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons{float:right}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button{border:0;background-image:none;text-transform:uppercase;font-size:14px;font-weight:bold;text-shadow:none;-webkit-transition:background .1s;transition:background .1s;color:white}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default{-webkit-box-shadow:none;box-shadow:none;color:#fff;background:0}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default:hover,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default:hover{background:#666}.jconfirm.jconfirm-black.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-dark.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm .jconfirm-box.hilight.jconfirm-hilight-shake{-webkit-animation:shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;animation:shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.jconfirm .jconfirm-box.hilight.jconfirm-hilight-glow{-webkit-animation:glow .82s cubic-bezier(0.36,0.07,0.19,0.97) both;animation:glow .82s cubic-bezier(0.36,0.07,0.19,0.97) both;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-webkit-keyframes shake{10%,90%{-webkit-transform:translate3d(-2px,0,0);transform:translate3d(-2px,0,0)}20%,80%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-8px,0,0);transform:translate3d(-8px,0,0)}40%,60%{-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}}@keyframes shake{10%,90%{-webkit-transform:translate3d(-2px,0,0);transform:translate3d(-2px,0,0)}20%,80%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-8px,0,0);transform:translate3d(-8px,0,0)}40%,60%{-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}}@-webkit-keyframes glow{0%,100%{-webkit-box-shadow:0 0 0 red;box-shadow:0 0 0 red}50%{-webkit-box-shadow:0 0 30px red;box-shadow:0 0 30px red}}@keyframes glow{0%,100%{-webkit-box-shadow:0 0 0 red;box-shadow:0 0 0 red}50%{-webkit-box-shadow:0 0 30px red;box-shadow:0 0 30px red}}.jconfirm{-webkit-perspective:400px;perspective:400px}.jconfirm .jconfirm-box{opacity:1;-webkit-transition-property:all;transition-property:all}.jconfirm .jconfirm-box.jconfirm-animation-top,.jconfirm .jconfirm-box.jconfirm-animation-left,.jconfirm .jconfirm-box.jconfirm-animation-right,.jconfirm .jconfirm-box.jconfirm-animation-bottom,.jconfirm .jconfirm-box.jconfirm-animation-opacity,.jconfirm .jconfirm-box.jconfirm-animation-zoom,.jconfirm .jconfirm-box.jconfirm-animation-scale,.jconfirm .jconfirm-box.jconfirm-animation-none,.jconfirm .jconfirm-box.jconfirm-animation-rotate,.jconfirm .jconfirm-box.jconfirm-animation-rotatex,.jconfirm .jconfirm-box.jconfirm-animation-rotatey,.jconfirm .jconfirm-box.jconfirm-animation-scaley,.jconfirm .jconfirm-box.jconfirm-animation-scalex{opacity:0}.jconfirm .jconfirm-box.jconfirm-animation-rotate{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.jconfirm .jconfirm-box.jconfirm-animation-rotatex{-webkit-transform:rotateX(90deg);transform:rotateX(90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotatexr{-webkit-transform:rotateX(-90deg);transform:rotateX(-90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotatey{-webkit-transform:rotatey(90deg);transform:rotatey(90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotateyr{-webkit-transform:rotatey(-90deg);transform:rotatey(-90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-scaley{-webkit-transform:scaley(1.5);transform:scaley(1.5);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-scalex{-webkit-transform:scalex(1.5);transform:scalex(1.5);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-top{-webkit-transform:translate(0px,-100px);transform:translate(0px,-100px)}.jconfirm .jconfirm-box.jconfirm-animation-left{-webkit-transform:translate(-100px,0px);transform:translate(-100px,0px)}.jconfirm .jconfirm-box.jconfirm-animation-right{-webkit-transform:translate(100px,0px);transform:translate(100px,0px)}.jconfirm .jconfirm-box.jconfirm-animation-bottom{-webkit-transform:translate(0px,100px);transform:translate(0px,100px)}.jconfirm .jconfirm-box.jconfirm-animation-zoom{-webkit-transform:scale(1.2);transform:scale(1.2)}.jconfirm .jconfirm-box.jconfirm-animation-scale{-webkit-transform:scale(0.5);transform:scale(0.5)}.jconfirm .jconfirm-box.jconfirm-animation-none{visibility:hidden}.jconfirm.jconfirm-supervan .jconfirm-bg{background-color:rgba(54,70,93,0.95)}.jconfirm.jconfirm-supervan .jconfirm-box{background-color:transparent}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-blue{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-green{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-red{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-orange{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-purple{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-dark{border:0}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-closeIcon{color:white}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c{text-align:center;color:white;font-size:28px;font-weight:normal}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c>*{padding-bottom:25px}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content-pane{margin-bottom:25px}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content{text-align:center;color:white}.jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons{text-align:center}.jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons button{font-size:16px;border-radius:2px;background:#303f53;text-shadow:none;border:0;color:white;padding:10px;min-width:100px}.jconfirm.jconfirm-supervan.jconfirm-rtl .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-material .jconfirm-bg{background-color:rgba(0,0,0,0.67)}.jconfirm.jconfirm-material .jconfirm-box{background-color:white;-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);padding:30px 25px 10px 25px}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:22px;font-weight:bold}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-content{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons{text-align:right}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons button{text-transform:uppercase;font-weight:500}.jconfirm.jconfirm-material.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-bootstrap .jconfirm-bg{background-color:rgba(0,0,0,0.21)}.jconfirm.jconfirm-bootstrap .jconfirm-box{background-color:white;-webkit-box-shadow:0 3px 8px 0 rgba(0,0,0,0.2);box-shadow:0 3px 8px 0 rgba(0,0,0,0.2);border:solid 1px rgba(0,0,0,0.4);padding:15px 0 0}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:22px;font-weight:bold;padding-left:15px;padding-right:15px}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-content{color:rgba(0,0,0,0.87);padding:0 15px}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons{text-align:right;padding:10px;margin:-5px 0 0;border-top:solid 1px #ddd;overflow:hidden;border-radius:0 0 4px 4px}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons button{font-weight:500}.jconfirm.jconfirm-bootstrap.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-modern .jconfirm-bg{background-color:slategray;opacity:.6}.jconfirm.jconfirm-modern .jconfirm-box{background-color:white;-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);padding:30px 30px 15px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87);top:15px;right:15px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:24px;font-weight:bold;text-align:center;margin-bottom:10px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{-webkit-transition:-webkit-transform .5s;transition:-webkit-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s;-webkit-transform:scale(0);transform:scale(0);display:block;margin-right:0;margin-left:0;margin-bottom:10px;font-size:69px;color:#aaa}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-content{text-align:center;font-size:15px;color:#777;margin-bottom:25px}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons{text-align:center}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button{font-weight:bold;text-transform:uppercase;-webkit-transition:background .1s;transition:background .1s;padding:10px 20px}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button+button{margin-left:4px}.jconfirm.jconfirm-modern.jconfirm-open .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transform:scale(1);transform:scale(1)} \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/libs/jquery-confirm.min.js b/wp-content/plugins/wp-mail-smtp/assets/libs/jquery-confirm.min.js deleted file mode 100644 index 2939dc6..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/libs/jquery-confirm.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * jquery-confirm v3.3.4 (http://craftpip.github.io/jquery-confirm/) - * Author: Boniface Pereira - * Website: www.craftpip.com - * Contact: hey@craftpip.com - * - * Copyright 2013-2019 jquery-confirm - * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) - */ -(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory);}else{if(typeof module==="object"&&module.exports){module.exports=function(root,jQuery){if(jQuery===undefined){if(typeof window!=="undefined"){jQuery=require("jquery");}else{jQuery=require("jquery")(root);}}factory(jQuery);return jQuery;};}else{factory(jQuery);}}}(function($){var w=window;$.fn.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}$(this).each(function(){var $this=$(this);if($this.attr("jc-attached")){console.warn("jConfirm has already been attached to this element ",$this[0]);return;}$this.on("click",function(e){e.preventDefault();var jcOption=$.extend({},options);if($this.attr("data-title")){jcOption.title=$this.attr("data-title");}if($this.attr("data-content")){jcOption.content=$this.attr("data-content");}if(typeof jcOption.buttons==="undefined"){jcOption.buttons={};}jcOption["$target"]=$this;if($this.attr("href")&&Object.keys(jcOption.buttons).length===0){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];jcOption.buttons=buttons;jcOption.buttons[firstBtn].action=function(){location.href=$this.attr("href");};}jcOption.closeIcon=false;var instance=$.confirm(jcOption);});$this.attr("jc-attached",true);});return $(this);};$.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons===false);if(typeof options.buttons!=="object"){options.buttons={};}if(Object.keys(options.buttons).length===0&&putDefaultButtons){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});options.buttons=buttons;}return w.jconfirm(options);};$.alert=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons===false);if(typeof options.buttons!=="object"){options.buttons={};}if(Object.keys(options.buttons).length===0&&putDefaultButtons){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];options.buttons[firstBtn]=buttons[firstBtn];}return w.jconfirm(options);};$.dialog=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false,closeIcon:function(){}};}options.buttons={};if(typeof options.closeIcon==="undefined"){options.closeIcon=function(){};}options.confirmKeys=[13];return w.jconfirm(options);};w.jconfirm=function(options){if(typeof options==="undefined"){options={};}var pluginOptions=$.extend(true,{},w.jconfirm.pluginDefaults);if(w.jconfirm.defaults){pluginOptions=$.extend(true,pluginOptions,w.jconfirm.defaults);}pluginOptions=$.extend(true,{},pluginOptions,options);var instance=new w.Jconfirm(pluginOptions);w.jconfirm.instances.push(instance);return instance;};w.Jconfirm=function(options){$.extend(this,options);this._init();};w.Jconfirm.prototype={_init:function(){var that=this;if(!w.jconfirm.instances.length){w.jconfirm.lastFocused=$("body").find(":focus");}this._id=Math.round(Math.random()*99999);this.contentParsed=$(document.createElement("div"));if(!this.lazyOpen){setTimeout(function(){that.open();},0);}},_buildHTML:function(){var that=this;this._parseAnimation(this.animation,"o");this._parseAnimation(this.closeAnimation,"c");this._parseBgDismissAnimation(this.backgroundDismissAnimation);this._parseColumnClass(this.columnClass);this._parseTheme(this.theme);this._parseType(this.type);var template=$(this.template);template.find(".jconfirm-box").addClass(this.animationParsed).addClass(this.backgroundDismissAnimationParsed).addClass(this.typeParsed);if(this.typeAnimated){template.find(".jconfirm-box").addClass("jconfirm-type-animated");}if(this.useBootstrap){template.find(".jc-bs3-row").addClass(this.bootstrapClasses.row);template.find(".jc-bs3-row").addClass("justify-content-md-center justify-content-sm-center justify-content-xs-center justify-content-lg-center");template.find(".jconfirm-box-container").addClass(this.columnClassParsed);if(this.containerFluid){template.find(".jc-bs3-container").addClass(this.bootstrapClasses.containerFluid);}else{template.find(".jc-bs3-container").addClass(this.bootstrapClasses.container);}}else{template.find(".jconfirm-box").css("width",this.boxWidth);}if(this.titleClass){template.find(".jconfirm-title-c").addClass(this.titleClass);}template.addClass(this.themeParsed);var ariaLabel="jconfirm-box"+this._id;template.find(".jconfirm-box").attr("aria-labelledby",ariaLabel).attr("tabindex",-1);template.find(".jconfirm-content").attr("id",ariaLabel);if(this.bgOpacity!==null){template.find(".jconfirm-bg").css("opacity",this.bgOpacity);}if(this.rtl){template.addClass("jconfirm-rtl");}this.$el=template.appendTo(this.container);this.$jconfirmBoxContainer=this.$el.find(".jconfirm-box-container");this.$jconfirmBox=this.$body=this.$el.find(".jconfirm-box");this.$jconfirmBg=this.$el.find(".jconfirm-bg");this.$title=this.$el.find(".jconfirm-title");this.$titleContainer=this.$el.find(".jconfirm-title-c");this.$content=this.$el.find("div.jconfirm-content");this.$contentPane=this.$el.find(".jconfirm-content-pane");this.$icon=this.$el.find(".jconfirm-icon-c");this.$closeIcon=this.$el.find(".jconfirm-closeIcon");this.$holder=this.$el.find(".jconfirm-holder");this.$btnc=this.$el.find(".jconfirm-buttons");this.$scrollPane=this.$el.find(".jconfirm-scrollpane");that.setStartingPoint();this._contentReady=$.Deferred();this._modalReady=$.Deferred();this.$holder.css({"padding-top":this.offsetTop,"padding-bottom":this.offsetBottom,});this.setTitle();this.setIcon();this._setButtons();this._parseContent();this.initDraggable();if(this.isAjax){this.showLoading(false);}$.when(this._contentReady,this._modalReady).then(function(){if(that.isAjaxLoading){setTimeout(function(){that.isAjaxLoading=false;that.setContent();that.setTitle();that.setIcon();setTimeout(function(){that.hideLoading(false);that._updateContentMaxHeight();},100);if(typeof that.onContentReady==="function"){that.onContentReady();}},50);}else{that._updateContentMaxHeight();that.setTitle();that.setIcon();if(typeof that.onContentReady==="function"){that.onContentReady();}}if(that.autoClose){that._startCountDown();}}).then(function(){that._watchContent();});if(this.animation==="none"){this.animationSpeed=1;this.animationBounce=1;}this.$body.css(this._getCSS(this.animationSpeed,this.animationBounce));this.$contentPane.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBg.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBoxContainer.css(this._getCSS(this.animationSpeed,1));},_typePrefix:"jconfirm-type-",typeParsed:"",_parseType:function(type){this.typeParsed=this._typePrefix+type;},setType:function(type){var oldClass=this.typeParsed;this._parseType(type);this.$jconfirmBox.removeClass(oldClass).addClass(this.typeParsed);},themeParsed:"",_themePrefix:"jconfirm-",setTheme:function(theme){var previous=this.theme;this.theme=theme||this.theme;this._parseTheme(this.theme);if(previous){this.$el.removeClass(previous);}this.$el.addClass(this.themeParsed);this.theme=theme;},_parseTheme:function(theme){var that=this;theme=theme.split(",");$.each(theme,function(k,a){if(a.indexOf(that._themePrefix)===-1){theme[k]=that._themePrefix+$.trim(a);}});this.themeParsed=theme.join(" ").toLowerCase();},backgroundDismissAnimationParsed:"",_bgDismissPrefix:"jconfirm-hilight-",_parseBgDismissAnimation:function(bgDismissAnimation){var animation=bgDismissAnimation.split(",");var that=this;$.each(animation,function(k,a){if(a.indexOf(that._bgDismissPrefix)===-1){animation[k]=that._bgDismissPrefix+$.trim(a);}});this.backgroundDismissAnimationParsed=animation.join(" ").toLowerCase();},animationParsed:"",closeAnimationParsed:"",_animationPrefix:"jconfirm-animation-",setAnimation:function(animation){this.animation=animation||this.animation;this._parseAnimation(this.animation,"o");},_parseAnimation:function(animation,which){which=which||"o";var animations=animation.split(",");var that=this;$.each(animations,function(k,a){if(a.indexOf(that._animationPrefix)===-1){animations[k]=that._animationPrefix+$.trim(a);}});var a_string=animations.join(" ").toLowerCase();if(which==="o"){this.animationParsed=a_string;}else{this.closeAnimationParsed=a_string;}return a_string;},setCloseAnimation:function(closeAnimation){this.closeAnimation=closeAnimation||this.closeAnimation;this._parseAnimation(this.closeAnimation,"c");},setAnimationSpeed:function(speed){this.animationSpeed=speed||this.animationSpeed;},columnClassParsed:"",setColumnClass:function(colClass){if(!this.useBootstrap){console.warn("cannot set columnClass, useBootstrap is set to false");return;}this.columnClass=colClass||this.columnClass;this._parseColumnClass(this.columnClass);this.$jconfirmBoxContainer.addClass(this.columnClassParsed);},_updateContentMaxHeight:function(){var height=$(window).height()-(this.$jconfirmBox.outerHeight()-this.$contentPane.outerHeight())-(this.offsetTop+this.offsetBottom);this.$contentPane.css({"max-height":height+"px"});},setBoxWidth:function(width){if(this.useBootstrap){console.warn("cannot set boxWidth, useBootstrap is set to true");return;}this.boxWidth=width;this.$jconfirmBox.css("width",width);},_parseColumnClass:function(colClass){colClass=colClass.toLowerCase();var p;switch(colClass){case"xl":case"xlarge":p="col-md-12";break;case"l":case"large":p="col-md-8 col-md-offset-2";break;case"m":case"medium":p="col-md-6 col-md-offset-3";break;case"s":case"small":p="col-md-4 col-md-offset-4";break;case"xs":case"xsmall":p="col-md-2 col-md-offset-5";break;default:p=colClass;}this.columnClassParsed=p;},initDraggable:function(){var that=this;var $t=this.$titleContainer;this.resetDrag();if(this.draggable){$t.on("mousedown",function(e){$t.addClass("jconfirm-hand");that.mouseX=e.clientX;that.mouseY=e.clientY;that.isDrag=true;});$(window).on("mousemove."+this._id,function(e){if(that.isDrag){that.movingX=e.clientX-that.mouseX+that.initialX;that.movingY=e.clientY-that.mouseY+that.initialY;that.setDrag();}});$(window).on("mouseup."+this._id,function(){$t.removeClass("jconfirm-hand");if(that.isDrag){that.isDrag=false;that.initialX=that.movingX;that.initialY=that.movingY;}});}},resetDrag:function(){this.isDrag=false;this.initialX=0;this.initialY=0;this.movingX=0;this.movingY=0;this.mouseX=0;this.mouseY=0;this.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");},setDrag:function(){if(!this.draggable){return;}this.alignMiddle=false;var boxWidth=this.$jconfirmBox.outerWidth();var boxHeight=this.$jconfirmBox.outerHeight();var windowWidth=$(window).width();var windowHeight=$(window).height();var that=this;var dragUpdate=1;if(that.movingX%dragUpdate===0||that.movingY%dragUpdate===0){if(that.dragWindowBorder){var leftDistance=(windowWidth/2)-boxWidth/2;var topDistance=(windowHeight/2)-boxHeight/2;topDistance-=that.dragWindowGap;leftDistance-=that.dragWindowGap;if(leftDistance+that.movingX<0){that.movingX=-leftDistance;}else{if(leftDistance-that.movingX<0){that.movingX=leftDistance;}}if(topDistance+that.movingY<0){that.movingY=-topDistance;}else{if(topDistance-that.movingY<0){that.movingY=topDistance;}}}that.$jconfirmBoxContainer.css("transform","translate("+that.movingX+"px, "+that.movingY+"px)");}},_scrollTop:function(){if(typeof pageYOffset!=="undefined"){return pageYOffset;}else{var B=document.body;var D=document.documentElement;D=(D.clientHeight)?D:B;return D.scrollTop;}},_watchContent:function(){var that=this;if(this._timer){clearInterval(this._timer);}var prevContentHeight=0;this._timer=setInterval(function(){if(that.smoothContent){var contentHeight=that.$content.outerHeight()||0;if(contentHeight!==prevContentHeight){prevContentHeight=contentHeight;}var wh=$(window).height();var total=that.offsetTop+that.offsetBottom+that.$jconfirmBox.height()-that.$contentPane.height()+that.$content.height();if(total').html(that.buttons[key].text).addClass(that.buttons[key].btnClass).prop("disabled",that.buttons[key].isDisabled).css("display",that.buttons[key].isHidden?"none":"").click(function(e){e.preventDefault();var res=that.buttons[key].action.apply(that,[that.buttons[key]]);that.onAction.apply(that,[key,that.buttons[key]]);that._stopCountDown();if(typeof res==="undefined"||res){that.close();}});that.buttons[key].el=button_element;that.buttons[key].setText=function(text){button_element.html(text);};that.buttons[key].addClass=function(className){button_element.addClass(className);};that.buttons[key].removeClass=function(className){button_element.removeClass(className);};that.buttons[key].disable=function(){that.buttons[key].isDisabled=true;button_element.prop("disabled",true);};that.buttons[key].enable=function(){that.buttons[key].isDisabled=false;button_element.prop("disabled",false);};that.buttons[key].show=function(){that.buttons[key].isHidden=false;button_element.css("display","");};that.buttons[key].hide=function(){that.buttons[key].isHidden=true;button_element.css("display","none");};that["$_"+key]=that["$$"+key]=button_element;that.$btnc.append(button_element);});if(total_buttons===0){this.$btnc.hide();}if(this.closeIcon===null&&total_buttons===0){this.closeIcon=true;}if(this.closeIcon){if(this.closeIconClass){var closeHtml='';this.$closeIcon.html(closeHtml);}this.$closeIcon.click(function(e){e.preventDefault();var buttonName=false;var shouldClose=false;var str;if(typeof that.closeIcon==="function"){str=that.closeIcon();}else{str=that.closeIcon;}if(typeof str==="string"&&typeof that.buttons[str]!=="undefined"){buttonName=str;shouldClose=false;}else{if(typeof str==="undefined"||!!(str)===true){shouldClose=true;}else{shouldClose=false;}}if(buttonName){var btnResponse=that.buttons[buttonName].action.apply(that);shouldClose=(typeof btnResponse==="undefined")||!!(btnResponse);}if(shouldClose){that.close();}});this.$closeIcon.show();}else{this.$closeIcon.hide();}},setTitle:function(string,force){force=force||false;if(typeof string!=="undefined"){if(typeof string==="string"){this.title=string;}else{if(typeof string==="function"){if(typeof string.promise==="function"){console.error("Promise was returned from title function, this is not supported.");}var response=string();if(typeof response==="string"){this.title=response;}else{this.title=false;}}else{this.title=false;}}}if(this.isAjaxLoading&&!force){return;}this.$title.html(this.title||"");this.updateTitleContainer();},setIcon:function(iconClass,force){force=force||false;if(typeof iconClass!=="undefined"){if(typeof iconClass==="string"){this.icon=iconClass;}else{if(typeof iconClass==="function"){var response=iconClass();if(typeof response==="string"){this.icon=response;}else{this.icon=false;}}else{this.icon=false;}}}if(this.isAjaxLoading&&!force){return;}this.$icon.html(this.icon?'':"");this.updateTitleContainer();},updateTitleContainer:function(){if(!this.title&&!this.icon){this.$titleContainer.hide();}else{this.$titleContainer.show();}},setContentPrepend:function(content,force){if(!content){return;}this.contentParsed.prepend(content);},setContentAppend:function(content){if(!content){return;}this.contentParsed.append(content);},setContent:function(content,force){force=!!force;var that=this;if(content){this.contentParsed.html("").append(content);}if(this.isAjaxLoading&&!force){return;}this.$content.html("");this.$content.append(this.contentParsed);setTimeout(function(){that.$body.find("input[autofocus]:visible:first").focus();},100);},loadingSpinner:false,showLoading:function(disableButtons){this.loadingSpinner=true;this.$jconfirmBox.addClass("loading");if(disableButtons){this.$btnc.find("button").prop("disabled",true);}},hideLoading:function(enableButtons){this.loadingSpinner=false;this.$jconfirmBox.removeClass("loading");if(enableButtons){this.$btnc.find("button").prop("disabled",false);}},ajaxResponse:false,contentParsed:"",isAjax:false,isAjaxLoading:false,_parseContent:function(){var that=this;var e=" ";if(typeof this.content==="function"){var res=this.content.apply(this);if(typeof res==="string"){this.content=res;}else{if(typeof res==="object"&&typeof res.always==="function"){this.isAjax=true;this.isAjaxLoading=true;res.always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});this.content=e;}else{this.content=e;}}}if(typeof this.content==="string"&&this.content.substr(0,4).toLowerCase()==="url:"){this.isAjax=true;this.isAjaxLoading=true;var u=this.content.substring(4,this.content.length);$.get(u).done(function(html){that.contentParsed.html(html);}).always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});}if(!this.content){this.content=e;}if(!this.isAjax){this.contentParsed.html(this.content);this.setContent();that._contentReady.resolve();}},_stopCountDown:function(){clearInterval(this.autoCloseInterval);if(this.$cd){this.$cd.remove();}},_startCountDown:function(){var that=this;var opt=this.autoClose.split("|");if(opt.length!==2){console.error("Invalid option for autoClose. example 'close|10000'");return false;}var button_key=opt[0];var time=parseInt(opt[1]);if(typeof this.buttons[button_key]==="undefined"){console.error("Invalid button key '"+button_key+"' for autoClose");return false;}var seconds=Math.ceil(time/1000);this.$cd=$(' ('+seconds+")").appendTo(this["$_"+button_key]);this.autoCloseInterval=setInterval(function(){that.$cd.html(" ("+(seconds-=1)+") ");if(seconds<=0){that["$$"+button_key].trigger("click");that._stopCountDown();}},1000);},_getKey:function(key){switch(key){case 192:return"tilde";case 13:return"enter";case 16:return"shift";case 9:return"tab";case 20:return"capslock";case 17:return"ctrl";case 91:return"win";case 18:return"alt";case 27:return"esc";case 32:return"space";}var initial=String.fromCharCode(key);if(/^[A-z0-9]+$/.test(initial)){return initial.toLowerCase();}else{return false;}},reactOnKey:function(e){var that=this;var a=$(".jconfirm");if(a.eq(a.length-1)[0]!==this.$el[0]){return false;}var key=e.which;if(this.$content.find(":input").is(":focus")&&/13|32/.test(key)){return false;}var keyChar=this._getKey(key);if(keyChar==="esc"&&this.escapeKey){if(this.escapeKey===true){this.$scrollPane.trigger("click");}else{if(typeof this.escapeKey==="string"||typeof this.escapeKey==="function"){var buttonKey;if(typeof this.escapeKey==="function"){buttonKey=this.escapeKey();}else{buttonKey=this.escapeKey;}if(buttonKey){if(typeof this.buttons[buttonKey]==="undefined"){console.warn("Invalid escapeKey, no buttons found with key "+buttonKey);}else{this["$_"+buttonKey].trigger("click");}}}}}$.each(this.buttons,function(key,button){if(button.keys.indexOf(keyChar)!==-1){that["$_"+key].trigger("click");}});},setDialogCenter:function(){console.info("setDialogCenter is deprecated, dialogs are centered with CSS3 tables");},_unwatchContent:function(){clearInterval(this._timer);},close:function(onClosePayload){var that=this;if(typeof this.onClose==="function"){this.onClose(onClosePayload);}this._unwatchContent();$(window).unbind("resize."+this._id);$(window).unbind("keyup."+this._id);$(window).unbind("jcKeyDown."+this._id);if(this.draggable){$(window).unbind("mousemove."+this._id);$(window).unbind("mouseup."+this._id);this.$titleContainer.unbind("mousedown");}that.$el.removeClass(that.loadedClass);$("body").removeClass("jconfirm-no-scroll-"+that._id);that.$jconfirmBoxContainer.removeClass("jconfirm-no-transition");setTimeout(function(){that.$body.addClass(that.closeAnimationParsed);that.$jconfirmBg.addClass("jconfirm-bg-h");var closeTimer=(that.closeAnimation==="none")?1:that.animationSpeed;setTimeout(function(){that.$el.remove();var l=w.jconfirm.instances;var i=w.jconfirm.instances.length-1;for(i;i>=0;i--){if(w.jconfirm.instances[i]._id===that._id){w.jconfirm.instances.splice(i,1);}}if(!w.jconfirm.instances.length){if(that.scrollToPreviousElement&&w.jconfirm.lastFocused&&w.jconfirm.lastFocused.length&&$.contains(document,w.jconfirm.lastFocused[0])){var $lf=w.jconfirm.lastFocused;if(that.scrollToPreviousElementAnimate){var st=$(window).scrollTop();var ot=w.jconfirm.lastFocused.offset().top;var wh=$(window).height();if(!(ot>st&&ot<(st+wh))){var scrollTo=(ot-Math.round((wh/3)));$("html, body").animate({scrollTop:scrollTo},that.animationSpeed,"swing",function(){$lf.focus();});}else{$lf.focus();}}else{$lf.focus();}w.jconfirm.lastFocused=false;}}if(typeof that.onDestroy==="function"){that.onDestroy();}},closeTimer*0.4);},50);return true;},open:function(){if(this.isOpen()){return false;}this._buildHTML();this._bindEvents();this._open();return true;},setStartingPoint:function(){var el=false;if(this.animateFromElement!==true&&this.animateFromElement){el=this.animateFromElement;w.jconfirm.lastClicked=false;}else{if(w.jconfirm.lastClicked&&this.animateFromElement===true){el=w.jconfirm.lastClicked;w.jconfirm.lastClicked=false;}else{return false;}}if(!el){return false;}var offset=el.offset();var iTop=el.outerHeight()/2;var iLeft=el.outerWidth()/2;iTop-=this.$jconfirmBox.outerHeight()/2;iLeft-=this.$jconfirmBox.outerWidth()/2;var sourceTop=offset.top+iTop;sourceTop=sourceTop-this._scrollTop();var sourceLeft=offset.left+iLeft;var wh=$(window).height()/2;var ww=$(window).width()/2;var targetH=wh-this.$jconfirmBox.outerHeight()/2;var targetW=ww-this.$jconfirmBox.outerWidth()/2;sourceTop-=targetH;sourceLeft-=targetW;if(Math.abs(sourceTop)>wh||Math.abs(sourceLeft)>ww){return false;}this.$jconfirmBoxContainer.css("transform","translate("+sourceLeft+"px, "+sourceTop+"px)");},_open:function(){var that=this;if(typeof that.onOpenBefore==="function"){that.onOpenBefore();}this.$body.removeClass(this.animationParsed);this.$jconfirmBg.removeClass("jconfirm-bg-h");this.$body.focus();that.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");setTimeout(function(){that.$body.css(that._getCSS(that.animationSpeed,1));that.$body.css({"transition-property":that.$body.css("transition-property")+", margin"});that.$jconfirmBoxContainer.addClass("jconfirm-no-transition");that._modalReady.resolve();if(typeof that.onOpen==="function"){that.onOpen();}that.$el.addClass(that.loadedClass);},this.animationSpeed);},loadedClass:"jconfirm-open",isClosed:function(){return !this.$el||this.$el.parent().length===0;},isOpen:function(){return !this.isClosed();},toggle:function(){if(!this.isOpen()){this.open();}else{this.close();}}};w.jconfirm.instances=[];w.jconfirm.lastFocused=false;w.jconfirm.pluginDefaults={template:'
',title:"Hello",titleClass:"",type:"default",typeAnimated:true,draggable:true,dragWindowGap:15,dragWindowBorder:true,animateFromElement:true,alignMiddle:true,smoothContent:true,content:"Are you sure to continue?",buttons:{},defaultButtons:{ok:{action:function(){}},close:{action:function(){}}},contentLoaded:function(){},icon:"",lazyOpen:false,bgOpacity:null,theme:"light",animation:"scale",closeAnimation:"scale",animationSpeed:400,animationBounce:1,escapeKey:true,rtl:false,container:"body",containerFluid:false,backgroundDismiss:false,backgroundDismissAnimation:"shake",autoClose:false,closeIcon:null,closeIconClass:false,watchInterval:100,columnClass:"col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1",boxWidth:"50%",scrollToPreviousElement:true,scrollToPreviousElementAnimate:true,useBootstrap:true,offsetTop:40,offsetBottom:40,bootstrapClasses:{container:"container",containerFluid:"container-fluid",row:"row"},onContentReady:function(){},onOpenBefore:function(){},onOpen:function(){},onClose:function(){},onDestroy:function(){},onAction:function(){}};var keyDown=false;$(window).on("keydown",function(e){if(!keyDown){var $target=$(e.target);var pass=false;if($target.closest(".jconfirm-box").length){pass=true;}if(pass){$(window).trigger("jcKeyDown");}keyDown=true;}});$(window).on("keyup",function(){keyDown=false;});w.jconfirm.lastClicked=false;$(document).on("mousedown","button, a, [jc-source]",function(){w.jconfirm.lastClicked=$(this);});})); \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/readme.txt b/wp-content/plugins/wp-mail-smtp/readme.txt deleted file mode 100644 index ece6a69..0000000 --- a/wp-content/plugins/wp-mail-smtp/readme.txt +++ /dev/null @@ -1,486 +0,0 @@ -=== WP Mail SMTP by WPForms === -Contributors: wpforms, jaredatch, smub, slaFFik -Tags: smtp, wp mail smtp, wordpress smtp, gmail smtp, sendgrid smtp, mailgun smtp, mail, mailer, phpmailer, wp_mail, email, mailgun, sengrid, gmail, sendinblue, wp smtp -Requires at least: 4.9 -Tested up to: 5.5 -Stable tag: 2.5.1 -Requires PHP: 5.5.0 - -Make email delivery easy for WordPress. Connect with SMTP, Gmail, Outlook, SendGrid, Mailgun, Zoho, SES, and more. - -== Description == - -### WordPress Mail SMTP Plugin - -Having problems with your WordPress site not sending emails? You're not alone. Over 1 million websites use WP Mail SMTP to send their emails reliably. - -Our goal is to make email deliverability easy and reliable. We want to ensure your emails reach the inbox. - -WP Mail SMTP fixes your email deliverability by reconfiguring WordPress to use a proper SMTP provider when sending emails. - -= What is SMTP? = - -SMTP (Simple Mail Transfer Protocol) is an industry standard for sending emails. Proper SMTP configuration helps increase email deliverability by using authentication. - -Popular email clients like Gmail, Yahoo, Office 365, and Zoho are in a constant battle with email spammers. One of the things they look at is if an email is originating from the location it claims to be originating from. - -If the proper authentication isn't there, then emails either go in the SPAM folder or worst, don't get delivered at all. - -This is a problem for a lot of WordPress sites because by default, WordPress uses the PHP mail function to send emails generated by WordPress or any contact form plugin like WPForms. - -The issue is that most WordPress hosting companies don't have their servers properly configured for sending PHP emails. - -The combination of two causes your WordPress emails to not get delivered. - -= How does WP Mail SMTP work? = - -WP Mail SMTP plugin easily resolves email delivery problems by improving and changing how your WordPress site sends email. We reconfigure the `wp_mail()` function to either use proper SMTP host credentials or leverage a built-in SMTP mail provider. - -When using one of our built-in SMTP mail provider integrations (recommended), emails are sent using the provider's direct API. This means even if your web host is blocking SMTP ports, your emails still send successfully. - -This helps you fix all WordPress not sending email issues. - -WP Mail SMTP plugin includes many different SMTP setup options: - -1. SMTP.com (Recommended) -2. Sendinblue SMTP (Recommended) -3. Mailgun SMTP -4. SendGrid SMTP -5. Gmail SMTP -6. Microsoft SMTP (Outlook.com and Office 365) [Pro] -7. Amazon SES SMTP [Pro] -8. Zoho Mail SMTP [Pro] -9. All Other SMTP - -For most options, you can specify the "from name" and "email address" for outgoing emails. - -Instead of having users use different SMTP plugins and workflows for different SMTP providers, we decided to bring it all in one. This is what makes WP Mail SMTP, the best SMTP solution for WordPress. - -= SMTP.COM = - -SMTP.com is a recommended transactional email service. - -With over 22 years of email delivery expertise, SMTP.com has been around for almost as long as email itself. They are known among internet providers as one of the most reliable senders on the internet. - -Their easy integration process lets you start sending emails in minutes and benefit from years of experience. SMTP.com provides users 50,000 free emails the first 30 days. - -Read our SMTP.com documentation for more details. - -= Sendinblue SMTP = - -Sendinblue is a recommended transactional email service. - -They serve 80,000+ growing companies around the world and send over 30 million emails each day. - -Their email deliverability experts are constantly at work optimizing the reliability and speed of their SMTP infrastructure. Sendinblue provides users 300 free emails per day. - -Read our Sendinblue documentation for more details. - -= Mailgun SMTP = - -Mailgun SMTP is a popular SMTP service provider that allows you to send large quantities of emails. They provide 5,000 free emails per month for 3 months. - -WP Mail SMTP plugin offers a native integration with MailGun. All you have to do is connect your Mailgun account, and you will improve your email deliverability. - -Read our Mailgun documentation for more details. - -= SendGrid SMTP = - -SendGrid has a free SMTP plan that you can use to send up to 100 emails per day. With our native SendGrid SMTP integration, you can easily and securely set up SendGrid SMTP on your WordPress site. - -Read our SendGrid documentation for more details. - -= Gmail SMTP = - -Often bloggers and small business owners don't want to use third-party SMTP services. Well you can use your Gmail or G Suite account for SMTP emails. - -This allows you to use your professional email address and improve email deliverability. - -Unlike other Gmail SMTP plugins, our Gmail SMTP option uses OAuth to authenticate your Google account, keeping your login information 100% secure. - -Read our Gmail documentation for more details. - -= Microsoft SMTP (Outlook.com and Office 365) = - -Many business use Outlook.com or Office 365 to their to power their email. For those users, the Microsoft mailer can be a great option. This integration allows you to use your existing Outlook.com or Office 365 account to send your emails reliably. - -= Amazon SES SMTP = - -Advanced or technical users can harness the power of Amazon AWS (Amazon Web Services) with the Amazon SES mailer. With this integration, you can send a high volume of emails at a very reasonable rate. - -Read our Amazon SES documentation for more details. - -= Zoho Mail SMTP = - -Send emails using your personal or business Zoho Mail account, all while keeping your login credentials safe. - -Read our Zoho Mail documentation for more details. - -= Other SMTP = - -WP Mail SMTP plugin also works with all major email services such as Gmail, Yahoo, Outlook, Microsoft Live, and any other email sending service that offers SMTP. - -You can set the following options: - -* Specify an SMTP host. -* Specify an SMTP port. -* Choose SSL / TLS encryption. -* Choose to use SMTP authentication or not. -* Specify an SMTP username and password. - -To see recommended settings for the popular services as well as troubleshooting tips, check out our SMTP documentation. - -We hope that you find WP Mail SMTP plugin helpful! - -### WP Mail SMTP PRO - -In addition to native Microsoft and Amazon SES integrations, WP Mail SMTP Pro provides access to many other powerful features and services. - -Click here to purchase WP Mail SMTP Pro now! - -= Email Log = - -Email Logging lets you log and view all emails sent from your site. Email logs are helpful for storing emails for your records, auditing outgoing emails, and debugging during site development. - -= Manage WordPress Emails and Notifications = - -The Manage Notification feature gives you full control over which email notifications WordPress sends. This means you can disable different WordPress notification emails. Don't want to receive emails when new users are created? No problem, turn it off. - -= Expert Support = - -We provide limited support for the WP Mail SMTP plugin on the WordPress.org forums. Access to our world class one-on-one email support is available to WP Mail SMTP Pro users. - -= White Glove Setup = - -Our White Glove Setup service is a great option that anyone can benefit from. Whether you don't have the time or maybe you feel a bit in over your head - we've got you covered. - -You can sit back and relax while we set up everything for you. White glove setup includes WP Mail SMTP plugin installation and setup, configuration adjustments to your DNS for proper email domain name verification, Mailgun setup, and final testing to confirm everything is passing with flying colors. - -### Security - -The WP Mail SMTP team takes security very seriously. Not only does the plugin follow all security best practices, but we have several options available to ensure your site is safe and secure. - -- Direct SMTP mailer integrations (recommended), such as SMTP.com, SendGrid and Mailgun, use the official provider APIs. This means you never enter your username or password in the plugin settings and these credentials are not stored in the database. Instead, we use tokens or API keys which are much more secure. - -- When using Other SMTP mailer, we provide the option to insert your password in your `wp-config.php` file, so it's not visible in your WordPress settings or saved in the database. - -### Credits - -WP Mail SMTP plugin was originally created by Callum Macdonald. It is now owned and maintained by the team behind WPForms - the best drag & drop form builder for WordPress. - -You can try the free version of WPForms plugin to see why it's the best in the market. - -### What's Next - -If you like this plugin, then consider checking out our other projects: - -* OptinMonster - Get More Email Subscribers with the most popular conversion optimization plugin for WordPress. -* MonsterInsights - See the Stats that Matter and Grow Your Business with Confidence. Best Google Analytics Plugin for WordPress. -* SeedProd - Jumpstart your website with the #1 Coming Soon & Maintenance Mode Plugin for WordPress. - -Visit WPBeginner to learn from our WordPress Tutorials and find out about other best WordPress plugins. - -== Installation == - -1. Install WP Mail SMTP by WPForms either via the WordPress.org plugin repository or by uploading the files to your server. (See instructions on how to install a WordPress plugin) -2. Activate WP Mail SMTP by WPForms. -3. Navigate to the Settings area of WP Mail SMTP in the WordPress admin. -4. Choose your SMTP option (Mailgun SMTP, SendGrid SMTP, Gmail SMTP, or Other SMTP) and follow the instructions to set it up. -5. Need more help? Get support with WP Mail SMTP PRO. - -== Frequently Asked Questions == - -= Can I use this plugin to send email via Gmail, G Suite, Outlook.com, Office 365, Hotmail, Yahoo, or AOL SMTP? = - -Yes! We have extensive documentation that covers setting up SMTP most popular email services. - -Read our docs to see the correct SMTP settings for each service. - -= Help! I need support or have an issue. = - -Please read our support policy for more information. - -Limited support is available for WP Mail SMTP users via WordPress.org support forums. - -Email support and set up assistance is available to WP Mail SMTP Pro users. - -= I found a bug, now what? = - -If you've stumbled upon a bug, the best place to report it is in the WP Mail SMTP GitHub repository. GitHub is where the plugin is actively developed, and posting there will get your issue quickly seen by our developers (myself and Slava). Once posted, we'll review your bug report and triage the bug. When creating an issue, the more details you can add to your report, the faster the bug can be solved. - -= Can you add feature x, y or z to the plugin? = - -Short answer: maybe. - -By all means please contact us to discuss features or options you'd like to see added to the plugin. We can't guarantee to add all of them, but we will consider all sensible requests. We can be contacted here: -https://wpmailsmtp.com/contact/ - -== Screenshots == - -1. WP Mail SMTP Settings page -2. List of mailers -3. Other SMTP settings -4. Email Test page -5. Email Log settings page (Pro) -6. Email Controls settings page (Pro) -7. Email Log archive page (Pro) -8. Email Log single page (Pro) - -== Changelog == - -= 2.5.1 - 2020-10-28 = -* The automatic updates issue with Gmail mailer token refresh. -* The 'wp-amil-smtp' typo in a plugin text-domain and a HTML class. - -= 2.5.0 - 2020-10-22 = -* Added: Other SMTP mailer password encryption/decryption. -* Changed: Gmail mailer suggested steps for `invalid_grant` error on the Settings > Email Test page. -* Changed: Gmail mailer redirect URI was changed to fix issues with `mod_security` or redirect blocking plugins/solutions. -* Fixed: Plugin options re-saving with unescaped magic quote characters. -* Fixed: SMTP.com mailer email delivery for certain SMTP servers if attachment's encoded string is too long. - -= 2.4.0 - 2020-09-17 = -* Added: Prefix all 3rd-party libraries to avoid compatibility issues with other plugins using different versions of the same libraries. -* Changed: Sendinblue SDK library version to 6.4. -* Changed: Google apiclient library version to 2.7. -* Changed: Improve plugin settings input and toggle focus states. -* Fixed: Hide admin bar menu when errors are present and the "Hide Email Delivery Errors" setting is enabled. -* Fixed: CSS sourcemaps warning messages in browser dev tools. -* Fixed: Action Scheduler tasks being registered too early and not getting assigned to the plugin group. -* Fixed: Admin bar CSS asset loading when the admin bar is not showing. -* Fixed: Fatal error on plugin uninstall if `ActionScheduler_QueueRunner::unhook_dispatch_async_request` method does not exist. -* Fixed: PHP Deprecated notice for `base_convert()` function usage in the Mailgun mailer. - -= 2.3.1 - 2020-08-20 = -* Added: A WP Mail SMTP admin bar menu if there is an email delivery error or notifications. -* Added: WordPress 5.5 compatibility. -* Changed: Improve copy button user experience for Gmail Authorized redirect URI option. -* Changed: Email delivery error admin notices are now displayed only on plugin pages. -* Changed: Improve plugin settings UI by hiding certain options if the mailer does not support them. -* Changed: Pepipost API mailer is no longer available for new installs. -* Fixed: WP Site Health check for missing DB tables. -* Fixed: PHP errors caused by Actions Scheduler library used inside the plugin. -* Fixed: PHP error on plugin settings and WP Site Health pages if the plugin mailer option is empty for some reason. - -= 2.2.1 - 2020-07-09 = -* Added: Gmail mailer now supports aliases. -* Added: Support both old PHPMailer v5 (WordPress <=5.4) and PHPMailer v6 (WordPress >=5.5). -* Changed: Pepipost mailer is now using the native API v5 instead of the SendGrid migration API. -* Fixed: Incorrect Mailgun Domain Name option was not showing an email delivery error. -* Fixed: Empty debug errors for the Sendinblue mailer are no more. -* Fixed: Properly compare From Email option value with a correct default email address from WP core. - -= 2.1.1 - 2020-06-08 = -* Changed: Remove current automatic default reply-to address and add WP filter `wp_mail_smtp_processor_set_default_reply_to` for setting default reply-to addresses. -* Changed: Improve description for several options with links to an article about how to properly use constants. -* Fixed: PHP parse error connected to Monolog library on PHP versions < 7.x. - -= 2.1.0 - 2020-06-04 = -* Added: Async/scheduled tasks management support. -* Added: New warning notification for selecting the "Default (none)" mailer and saving the plugin settings. -* Changed: Set the original From Email as Reply-To address if it was overwritten by the Force From Email option. -* Changed: The Force From Email option is now enabled by default, for new plugin installs. -* Changed: Reply-To header is now set when not provided, equals to From Name/Email. -* Fixed: Display a non-empty PHPMailer error when some non-SMTP mailers generate errors. -* Fixed: Display a more accurate message, when the "channel - not found" error is triggered by SMTP.com API. -* Fixed: Save and display debug errors for the "Other SMTP" mailer. -* Fixed: Improve the debug details for the "Invalid address (setFrom)" error in the Email Test tab. -* Fixed: Improve the debug details for SMTP CA verification fail, Gmail Guzzle requirements, and Gmail invalid grant errors. -* Fixed: Improve the uninstall cleanup procedure. - -= 2.0.1 - 2020-05-07 = -* Changed: Improved description of the "Do Not Send" plugin option. -* Fixed: Due to Pepipost API changes we now convert new lines so they are preserved in plain text emails. -* Fixed: Downgrade internal Guzzle dependency to 6.4 to temporarily fix compatibility issues with WordPress and Guzzle 6.5. Affects Gmail mailer. - -= 2.0.0 - 2020-04-27 = -* IMPORTANT: Support for PHP 5.2-5.4 has been discontinued. If you are running one of those versions, you MUST upgrade PHP before installing or upgrading to WP Mail SMTP v2.0. Failure to do that will disable WP Mail SMTP functionality. -* Added: new mailer - SMTP.com integration. -* Changed: Plugin filters that change the FROM Name/Email in emails are now always running last. -* Fixed: `false` value of the `WPMS_SMTP_AUTH`/`WPMS_SMTP_AUTOTLS` constants was not properly handled in UI. -* Fixed: various minor code and internal links improvements. - -= 1.9.0 - 2020-03-23 = -* Added: Add various Status tests and Info section on Tools > Site Health page. -* Added: Notify admin if there are unsaved changes in plugin admin area options. -* Fixed: Test email now has a proper bottom margin for better look. -* Changed: Update "About us" plugin page with relevant information. -* Changed: Save default WordPress FROM Email address when incorrect FROM Email address is saved by a user. - -= 1.8.1 - 2019-12-13 = -* Fixed: Revert Guzzle version to 6.4.1 because Sendinblue and Gmail mailers may experience issues under certain circumstances while sending emails (not all sites are affected). -* Fixed: Make compatible the WordPress PhpMailer class inline attachments management with the Sendgrid API. - -= 1.8.0 - 2019-12-12 = -* Added: New recommended mailer: Pepipost. -* Added: "Suggest a Mailer" link in a list of mailers to send us your ideas about new ones. -* Fixed: Sendgrid: Content ID for attachments missing. -* Changed: Timeout to HTTP requests (pepipost, sendgrid, mailgun), same as max_execution_time, to prevent fails when sending emails with big attachments. - -= 1.7.1 - 2019-11-11 = -* Fixed: Compatibility with WordPress 5.3. -* Fixed: `Processor::get_default_email()` always returns empty value when server incorrectly configured. - -= 1.7.0 - 2019-10-24 = -* Added: Add a new constant `WPMS_DO_NOT_SEND` to block email sending. -* Fixed: Default email (wordpress@example.com) rewriting in CLI mode. -* Fixed: Incorrect conflicts detection with certain plugins. -* Fixed: various typos in plugin settings. - -= 1.6.2 - 2019-09-02 = -* Fixed: Race condition when loading with certain plugins, that send emails very early. Makes email delivery more reliable. - -= 1.6.0 - 2019-08-21 = -* Added: New transactional mailer: Sendinblue. -* Added: Educate users to use transactional mailers for better deliverability. -* Added: New option and filter to disable admin area delivery error notices. -* Changed: Hide private API key saved in the DB for API based mailers using `input[type=password]`. -* Changed: Update links to various docs, pointing now to https://wpmailsmtp.com. - -= 1.5.2 - 2019-07-18 = -* Fixed: "Redirect URI mismatch" error for "Gmail" mailer when trying to re-authorize an account that was initially created with version < v1.5.0. -* Changed: Make "Authentication" setting in "Other SMTP" mailer ON by default for new users. -* Changed: Mailers docs links now point to wpmailsmtp.com own site. - -= 1.5.1 - 2019-07-12 = -* Fixed: Duplicated emails sent to the first recipient in a loop (and others not receiving their emails). - -= 1.5.0 - 2019-07-09 = -* Added: Loсo plugin support. -* Added: "About us" admin area page. -* Added: Display in debug output a possible conflicting plugin existence. -* Added: Lots of actions and filters to improve flexibility of the plugin. -* Changed: Plugin menu is now top level. -* Changed: Hide secrets/API keys in page DOM in plugin admin area. -* Changed: Do not save constant values into the database when plugin settings are saved. -* Changed: Lots of i18n improvements to support translation for both free and paid version of the plugin. -* Changed: Gmail mailer - allow to change From Name email header. -* Changed: Gmail mailer - display email used to create a connection. -* Changed: WordPress 4.9 is the minimum WordPress version we support. -* Fixed: X-Mailer header should be present in all emails. -* Fixed: PHP notices when migrating under certain circumstances from 0.x version of the plugin. -* Fixed: Options::get_group() now supports values set via constants. - -= 1.4.2 - 2019-03-23 = -* Changed: Tested up to WordPress 5.1.x. -* Changed: Removed TGMPA library. - -= 1.4.1 - 2018-12-03 = -* Fixed: correctly process backslashes in SMTP passwords defined via constants. -* Changed: allow to send a Test Email when Default (none) mailer is selected in plugin settings. - -= 1.4.0 - 2018-11-29 = -* Added: New option: Do Not Send - block emails from being sent. -* Added: New option: Send HTML or plain text emails when doing an Email Test. -* Added: New option: Mailgun region selection - US and EU (US is default to preserve compatibility). -* Fixed: Compatibility with WordPress 3.6+. -* Fixed: Compatibility with WordPress 5.0. -* Fixed: Constants usage is much more reliable now, works correctly on Multisite. Constants are global accross the whole network. -* Fixed: Preserve multipart emails when using Sendgrid/Mailgun mailers (were converted to HTML-only). -* Fixed: Security hardening. -* Changed: Prefill Email Test page From field with currently logged in user email. -* Changed: Update libraries: google/apiclient-services, google/auth, phpseclib/phpseclib and their dependecies. -* Changed: Display in debug output cURL version if Gmail mailing failed. -* Changed: Display in debug output OpenSSL version if it exists if Gmail/SMTP mailing failed. -* Changed: Display plugin version in dashboard error notice when emailing failed. -* Changed: Do not allow to send Test Email if mailer not configured properly. -* Changed: Notify in plugin admin area that Gmail doesn't allow to redefine From Name/Email etc. -* Changed: List all constants with descriptions in plugin main file: wp_mail_smtp.php. -* Changed: TGMPA: change descriptions from "Required" to "Recommended" (labels were incorrect). - -= 1.3.3 - 2018-07-05 = -* Fixed: Compatibility with other plugins, that are using Google Service or Google Client classes. -* Changed: Optimize code loading. - -= 1.3.2 - 2018-06-29 = -* Make sure that other plugins/themes are not conflicting with our TGMPA library. - -= 1.3.1 - 2018-06-29 = -* Fixed: Other SMTP: Clear new Debug messages about failed email delivery on next successful email sending. -* Fixed: Introduce conditional autoloader to workaround Gmail PHP 5.5 requirement and its library compatibility issues vs PHP 5.3+ minimum viable plugin version. - -= 1.3.0 - 2018-06-28 = -* Added: New option: force From Email rewrite regardless of the current value. -* Added: New option: force From Name rewrite regardless of the current value. -* Added: New option: remove all plugin data on plugin uninstall (when user deletes it). -* Added: Notify site admins in wp-admin area with a notice about last failed email delivery. Cleans up on successful delivery. -* Added: Notify site admins in wp-admin area with a notice about possible compatibility issues with other SMTP and email delivery plugins. -* Added: Improve User Debug Experience when doing Email Test - display helpful description and steps to fix the issue. -* Added: New users: provide default SMTP Port value for new users based on Encryption selection. -* Added: New users: notify about not configured plugin settings. -* Added: New users: Recommend free WPForms Lite plugin for those who don't have it. -* Added: SendGrid/Mailgun: provide support for multipart/alternative types of emails. -* Added: Gmail: new button to remove connection and to connect a new Google account. -* Fixed: Support plugin installation into /mu-plugins/ directory. -* Fixed: SendGrid: required text/plain part of email being the first one - fixes plain text emails not having links. -* Fixed: SendGrid and Mailgun: improperly sending plain text emails in html format. -* Fixed: SMTP Debug output was empty in some cases. -* Fixed: Compatibility with lots of other plugins that use Google Analytics library of different versions. -* Fixed: "client_id is empty" is no more a problem, should be fixed. -* Changed: For SendGrid and Mailgun allow using custom defined attachments names if present. Fallback to file name. -* Changed: Gmail: switch to a wider scope to prevent possible issues in certain circumstances. -* Changed: Remove whitespaces start/end of keys, secrets etc. -* Changed: Improved helpful description tests of various options. -* Changed: Improved plugin autoloading functionality. - -= 1.2.5 - 2017-02-05 = -* Fixed: `Return path` can't be turned off. -* Fixed: `Authentication` sometimes can't be turned off. -* Fixed: `Auto TLS` sometimes can't be turned off. -* Fixed: BCC support for Gmail was broken. -* Fixed: Debug output improved to handle SELinux and grsecurity. -* Fixed: Strip slashes from plugin settings (useful for `From Name` option). -* Fixed: Change the way sanitization is done to prevent accidental removal of useful data. -* Fixed: Plugin activation will not overwrite settings back to defaults. -* Fixed: Properly set `Auto TLS` option on plugin activation. -* Fixed: Providers autoloading improved for certain Windows-based installs. -* Fixed: Use the proper path to load translations from plugin's `/languages` directory. -* Changed: Do not autoload on each page request plugin settings from WordPress options table. -* Changed: Do not autoload Pepipost classes unless it's saved as active mailer in settings. - -= 1.2.4 - 2017-01-28 = -* Fixed: Improved escaping in debug reporting. - -= 1.2.3 - 2017-01-22 = -* Fixed: Gmail tokens were reset after clicking Save Settings. -* Fixed: Slight typo in Gmail success message. - -= 1.2.2 - 2017-12-27 = -* Fixed: Correctly handle Mailgun debug message for an incorrect api key. -* Fixed: Fatal error for Gmail and SMTP mailers with Nginx web-server (without Apache at all). -* Changed: Update X-Mailer emails header to show the real sender with a mailer and plugin version. - -= 1.2.1 - 2017-12-21 = -* Fixed: Failed SMTP connections generate fatal errors. - -= 1.2.0 - 2017-12-21 = -* Fixed: Decrease the factual minimum WordPress version from 3.9 to 3.6. -* Changed: Improve debug output for all mail providers. - -= 1.1.0 - 2017-12-18 = -* Added: New option "Auto TLS" for SMTP mailer. Default is enabled. Migration routine for all sites. -* Changed: Improve debug output - clear styles and context-aware content. -* Changed: Better exceptions handling for Google authentication process. -* Changed: Do not sanitize passwords, api keys etc - as they may contain special characters in certain order and sanitization will break those values. -* Changed: Improve wording of some helpful texts inside plugin admin area. -* Fixed: Do not include certain files in dependency libraries that are not used by Google mailer. This should stop flagging plugin by Wordfence and VaultPress. -* Fixed: Constants usage is working now, to define the SMTP password, for example. -* Fixed: Notice for default mailer. - -= 1.0.2 - 2017-12-12 = -* Fixed: PHPMailer using incorrect SMTPSecure value. - -= 1.0.1 - 2017-12-12 = -* Fixed: Global POST processing conflict. - -= 1.0.0 - 2017-12-12 = -* Added: Automatic migration tool to move options from older storage format to a new one. -* Added: Added Gmail & G Suite email provider integration - without your email and password. -* Added: Added SendGrid email provider integration - using the API key only. -* Added: Added Mailgun email provider integration - using the API key and configured domain only. -* Added: New compatibility mode - for PHP 5.2 old plugin will be loaded, for PHP 5.3 and higher - new version of admin area and new functionality. -* Changed: The new look of the admin area. -* Changed: SMTP password field now has "password" type. -* Changed: SMTP password field does not display real password at all when using constants in `wp-config.php` to define it. -* Changed: Escape properly all translations. -* Changed: More helpful test email content (with a mailer name). diff --git a/wp-content/plugins/wp-mail-smtp/src/Admin/AdminBarMenu.php b/wp-content/plugins/wp-mail-smtp/src/Admin/AdminBarMenu.php deleted file mode 100644 index 1f55b12..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Admin/AdminBarMenu.php +++ /dev/null @@ -1,164 +0,0 @@ -hooks(); - } - - /** - * Register hooks. - * - * @since 2.3.0 - */ - public function hooks() { - - add_action( 'wp_enqueue_scripts', [ $this, 'enqueues' ] ); - add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ] ); - add_action( 'admin_bar_menu', [ $this, 'register' ], 999 ); - } - - /** - * Check if current user has access to see admin bar menu. - * - * @since 2.3.0 - * - * @return bool - */ - public function has_access() { - - $access = false; - - if ( - is_user_logged_in() && - current_user_can( 'manage_options' ) - ) { - $access = true; - } - - return apply_filters( 'wp_mail_smtp_admin_adminbarmenu_has_access', $access ); - } - - /** - * Check if new notifications are available. - * - * @since 2.3.0 - * - * @return bool - */ - public function has_notifications() { - - return wp_mail_smtp()->get_notifications()->get_count(); - } - - /** - * Enqueue styles. - * - * @since 2.3.0 - */ - public function enqueues() { - - if ( ! is_admin_bar_showing() ) { - return; - } - - if ( ! $this->has_access() ) { - return; - } - - wp_enqueue_style( - 'wp-mail-smtp-admin-bar', - wp_mail_smtp()->assets_url . '/css/admin-bar.min.css', - [], - WPMS_PLUGIN_VER - ); - } - - /** - * Register and render admin menu bar. - * - * @since 2.3.0 - * - * @param \WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. - */ - public function register( \WP_Admin_Bar $wp_admin_bar ) { - - if ( - ! $this->has_access() || - ( - ( - empty( Debug::get_last() ) || - (bool) Options::init()->get( 'general', 'email_delivery_errors_hidden' ) - ) && - empty( $this->has_notifications() ) - ) - ) { - return; - } - - $items = apply_filters( - 'wp_mail_smtp_admin_adminbarmenu_register', - [ - 'main_menu', - ], - $wp_admin_bar - ); - - foreach ( $items as $item ) { - $this->{ $item }( $wp_admin_bar ); - - do_action( "wp_mail_smtp_admin_adminbarmenu_register_{$item}_after", $wp_admin_bar ); - } - } - - /** - * Render primary top-level admin menu bar item. - * - * @since 2.3.0 - * - * @param \WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. - */ - public function main_menu( \WP_Admin_Bar $wp_admin_bar ) { - - if ( - ! empty( Debug::get_last() ) && - ! (bool) Options::init()->get( 'general', 'email_delivery_errors_hidden' ) - ) { - $indicator = ' !'; - } elseif ( ! empty( $this->has_notifications() ) ) { - $count = $this->has_notifications() < 10 ? $this->has_notifications() : '!'; - $indicator = '
' . $count . '
'; - } - - if ( ! isset( $indicator ) ) { - return; - } - - $wp_admin_bar->add_menu( - [ - 'id' => 'wp-mail-smtp-menu', - 'title' => 'WP Mail SMTP' . $indicator, - 'href' => apply_filters( - 'wp_mail_smtp_admin_adminbarmenu_main_menu_href', - wp_mail_smtp()->get_admin()->get_admin_page_url() - ), - ] - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Admin/Area.php b/wp-content/plugins/wp-mail-smtp/src/Admin/Area.php deleted file mode 100644 index 7b3b17e..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Admin/Area.php +++ /dev/null @@ -1,1057 +0,0 @@ -hooks(); - } - - /** - * Assign all hooks to proper places. - * - * @since 1.0.0 - */ - protected function hooks() { - - // Add the Settings link to a plugin on Plugins page. - add_filter( 'plugin_action_links_' . plugin_basename( WPMS_PLUGIN_FILE ), [ $this, 'add_plugin_action_link' ], 10, 1 ); - - // Add the options page. - add_action( 'admin_menu', [ $this, 'add_admin_options_page' ] ); - - // Add WPMS network-wide setting page for product education. - add_action( 'network_admin_menu', [ $this, 'add_wpms_network_wide_setting_product_education_page' ] ); - - // Register on load Email Log admin menu hook. - add_action( 'load-wp-mail-smtp_page_wp-mail-smtp-logs', [ $this, 'maybe_redirect_email_log_menu_to_email_log_settings_tab' ] ); - - // Admin footer text. - add_filter( 'admin_footer_text', [ $this, 'get_admin_footer' ], 1, 2 ); - - // Enqueue admin area scripts and styles. - add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_assets' ] ); - - // Process the admin page forms actions. - add_action( 'admin_init', [ $this, 'process_actions' ] ); - - // Display custom notices based on the error/success codes. - add_action( 'admin_init', [ $this, 'display_custom_auth_notices' ] ); - - // Display notice instructing the user to complete plugin setup. - add_action( 'admin_init', [ $this, 'display_setup_notice' ] ); - - // Outputs the plugin admin header. - add_action( 'in_admin_header', [ $this, 'display_admin_header' ], 100 ); - - // Hide all unrelated to the plugin notices on the plugin admin pages. - add_action( 'admin_print_scripts', [ $this, 'hide_unrelated_notices' ] ); - - // Process all AJAX requests. - add_action( 'wp_ajax_wp_mail_smtp_ajax', [ $this, 'process_ajax' ] ); - - ( new Review() )->hooks(); - ( new Education() )->hooks(); - } - - /** - * Display custom notices based on the error/success codes. - * - * @since 1.0.0 - */ - public function display_custom_auth_notices() { - - $error = isset( $_GET['error'] ) ? sanitize_key( $_GET['error'] ) : ''; // phpcs:ignore - $success = isset( $_GET['success'] ) ? sanitize_key( $_GET['success'] ) : ''; // phpcs:ignore - - if ( empty( $error ) && empty( $success ) ) { - return; - } - - if ( ! current_user_can( 'manage_options' ) ) { - return; - } - - switch ( $error ) { - case 'google_access_denied': - WP::add_admin_notice( /* translators: %s - error code, returned by Google API. */ - sprintf( esc_html__( 'There was an error while processing the authentication request: %s. Please try again.', 'wp-mail-smtp' ), '' . $error . '' ), - WP::ADMIN_NOTICE_ERROR - ); - break; - - case 'google_no_code_scope': - WP::add_admin_notice( - esc_html__( 'There was an error while processing the authentication request. Please try again.', 'wp-mail-smtp' ), - WP::ADMIN_NOTICE_ERROR - ); - break; - - case 'google_no_clients': - WP::add_admin_notice( - esc_html__( 'There was an error while processing the authentication request. Please make sure that you have Client ID and Client Secret both valid and saved.', 'wp-mail-smtp' ), - WP::ADMIN_NOTICE_ERROR - ); - break; - } - - switch ( $success ) { - case 'google_site_linked': - WP::add_admin_notice( - esc_html__( 'You have successfully linked the current site with your Google API project. Now you can start sending emails through Gmail.', 'wp-mail-smtp' ), - WP::ADMIN_NOTICE_SUCCESS - ); - break; - } - } - - /** - * Display notice instructing the user to complete plugin setup. - * - * @since 1.3.0 - */ - public function display_setup_notice() { - - // Bail if we're not on a plugin page. - if ( ! $this->is_admin_page( 'general' ) ) { - return; - } - - $default_options = wp_json_encode( Options::get_defaults() ); - $current_options = wp_json_encode( Options::init()->get_all() ); - - // Check if the current settings are the same as the default settings. - if ( $current_options !== $default_options ) { - return; - } - - // Display notice informing user further action is needed. - WP::add_admin_notice( - sprintf( - wp_kses( /* translators: %s - Mailer anchor link. */ - __( 'Thanks for using WP Mail SMTP! To complete the plugin setup and start sending emails, please select and configure your Mailer.', 'wp-mail-smtp' ), - [ - 'a' => [ - 'href' => [], - ], - 'strong' => [], - ] - ), - wp_mail_smtp()->get_admin()->get_admin_page_url( self::SLUG . '#wp-mail-smtp-setting-row-mailer' ) - ), - WP::ADMIN_NOTICE_INFO - ); - } - - /** - * Add admin area menu item. - * - * @since 1.0.0 - * @since 1.5.0 Moved the menu to the top level. Added several more pages. - */ - public function add_admin_options_page() { - - $this->hook = \add_menu_page( - \esc_html__( 'WP Mail SMTP', 'wp-mail-smtp' ), - \esc_html__( 'WP Mail SMTP', 'wp-mail-smtp' ), - 'manage_options', - self::SLUG, - array( $this, 'display' ), - 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiM5ZWEzYTgiIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgdmlld0JveD0iMCAwIDQzIDM0Ij48cGF0aCBkPSJNMC4wMDcsMy41ODVWMjAuNDIxcTAsMy41ODYsMy43NTEsMy41ODVMMjAsMjRWMTlIMzBWMTQuMDE0bDAuOTkxLTFMMzQsMTNWMy41ODVRMzQsMCwzMC4yNDksMEgzLjc1OFEwLjAwNywwLC4wMDcsMy41ODVoMFpNMy41MjQsNi4xNTdhMS40OSwxLjQ5LDAsMCwxLS41MDgtMC45MzUsMS41ODEsMS41ODEsMCwwLDEsLjI3NC0xLjIwOCwxLjQ0OSwxLjQ0OSwwLDAsMSwxLjA5NC0uNjYzLDEuNzU2LDEuNzU2LDAsMCwxLDEuMjUuMzEybDExLjQwOSw3LjcxNkwyOC4zNzQsMy42NjNhMS45NiwxLjk2LDAsMCwxLDEuMjg5LS4zMTIsMS41NDYsMS41NDYsMCwwLDEsMS4wOTQuNjYzLDEuNCwxLjQsMCwwLDEsLjI3MywxLjIwOCwxLjY3LDEuNjcsMCwwLDEtLjU0Ny45MzVMMTcuMDQzLDE3LjIyNVoiLz48cGF0aCBkPSJNMjIsMjhIMzJsLTAuMDA5LDQuNjI0YTEuMTI2LDEuMTI2LDAsMCwwLDEuOTIyLjhsOC4yNS04LjIzNmExLjEyNiwxLjEyNiwwLDAsMCwwLTEuNTk0bC04LjI1LTguMjQxYTEuMTI2LDEuMTI2LDAsMCwwLTEuOTIyLjh2NC44NjZMMjIsMjF2N1oiLz48L3N2Zz4=', - 98 - ); - - \add_submenu_page( - self::SLUG, - $this->get_current_tab_title() . ' ‹ ' . \esc_html__( 'Settings', 'wp-mail-smtp' ), - \esc_html__( 'Settings', 'wp-mail-smtp' ), - 'manage_options', - self::SLUG, - array( $this, 'display' ) - ); - \add_submenu_page( - self::SLUG, - \esc_html__( 'Email Log', 'wp-mail-smtp' ), - \esc_html__( 'Email Log', 'wp-mail-smtp' ), - 'manage_options', - self::SLUG . '-logs', - array( $this, 'display' ) - ); - - if ( ! wp_mail_smtp()->is_white_labeled() ) { - \add_submenu_page( - self::SLUG, - \esc_html__( 'About Us', 'wp-mail-smtp' ), - \esc_html__( 'About Us', 'wp-mail-smtp' ), - 'manage_options', - self::SLUG . '-about', - array( $this, 'display' ) - ); - } - } - - /** - * Add network admin settings page for the WPMS product education. - * - * @since 2.5.0 - */ - public function add_wpms_network_wide_setting_product_education_page() { - - add_menu_page( - esc_html__( 'WP Mail SMTP', 'wp-mail-smtp' ), - esc_html__( 'WP Mail SMTP', 'wp-mail-smtp' ), - 'manage_options', - self::SLUG, - [ $this, 'display_network_product_education_page' ], - 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiM5ZWEzYTgiIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgdmlld0JveD0iMCAwIDQzIDM0Ij48cGF0aCBkPSJNMC4wMDcsMy41ODVWMjAuNDIxcTAsMy41ODYsMy43NTEsMy41ODVMMjAsMjRWMTlIMzBWMTQuMDE0bDAuOTkxLTFMMzQsMTNWMy41ODVRMzQsMCwzMC4yNDksMEgzLjc1OFEwLjAwNywwLC4wMDcsMy41ODVoMFpNMy41MjQsNi4xNTdhMS40OSwxLjQ5LDAsMCwxLS41MDgtMC45MzUsMS41ODEsMS41ODEsMCwwLDEsLjI3NC0xLjIwOCwxLjQ0OSwxLjQ0OSwwLDAsMSwxLjA5NC0uNjYzLDEuNzU2LDEuNzU2LDAsMCwxLDEuMjUuMzEybDExLjQwOSw3LjcxNkwyOC4zNzQsMy42NjNhMS45NiwxLjk2LDAsMCwxLDEuMjg5LS4zMTIsMS41NDYsMS41NDYsMCwwLDEsMS4wOTQuNjYzLDEuNCwxLjQsMCwwLDEsLjI3MywxLjIwOCwxLjY3LDEuNjcsMCwwLDEtLjU0Ny45MzVMMTcuMDQzLDE3LjIyNVoiLz48cGF0aCBkPSJNMjIsMjhIMzJsLTAuMDA5LDQuNjI0YTEuMTI2LDEuMTI2LDAsMCwwLDEuOTIyLjhsOC4yNS04LjIzNmExLjEyNiwxLjEyNiwwLDAsMCwwLTEuNTk0bC04LjI1LTguMjQxYTEuMTI2LDEuMTI2LDAsMCwwLTEuOTIyLjh2NC44NjZMMjIsMjF2N1oiLz48L3N2Zz4=', - 98 - ); - } - - /** - * HTML output for the network admin settings page (for the WPMS product education). - * - * @since 2.5.0 - */ - public function display_network_product_education_page() { - - // Skip if not on multisite and not on network admin site. - if ( ! is_multisite() || ! is_network_admin() ) { - return; - } - - ?> - -
-
-
- - - -
- -
-

- -

- - - - -
-
-

- <?php esc_attr_e( 'Pro+ badge icon', 'wp-mail-smtp' ); ?> -
-

- -

-
- - -
-
- -
-
- - - - -

- -
- -

-
-
- -
- - - -
- -
-
-
- - generate_display_logs_object(); - - if ( $logs instanceof \WPMailSMTP\Admin\Pages\Logs ) { - wp_safe_redirect( $logs->get_link() ); - exit; - } - } - - /** - * Enqueue admin area scripts and styles. - * - * @since 1.0.0 - * @since 1.5.0 Added new assets for new pages. - * @since 1.7.0 Added jQuery Confirm library css/js files. - * - * @param string $hook Current hook. - */ - public function enqueue_assets( $hook ) { - - if ( strpos( $hook, self::SLUG ) === false ) { - return; - } - - // General styles and js. - \wp_enqueue_style( - 'wp-mail-smtp-admin', - \wp_mail_smtp()->assets_url . '/css/smtp-admin.min.css', - false, - WPMS_PLUGIN_VER - ); - - \wp_enqueue_script( - 'wp-mail-smtp-admin', - \wp_mail_smtp()->assets_url . '/js/smtp-admin' . WP::asset_min() . '.js', - array( 'jquery' ), - WPMS_PLUGIN_VER, - false - ); - - \wp_localize_script( - 'wp-mail-smtp-admin', - 'wp_mail_smtp', - array( - 'text_provider_remove' => esc_html__( 'Are you sure you want to reset the current provider connection? You will need to immediately create a new one to be able to send emails.', 'wp-mail-smtp' ), - 'text_settings_not_saved' => esc_html__( 'Changes that you made to the settings are not saved!', 'wp-mail-smtp' ), - 'default_mailer_notice' => array( - 'title' => esc_html__( 'Heads up!', 'wp-mail-smtp' ), - 'content' => wp_kses( - __( '

The Default (PHP) mailer is currently selected, but is not recommended because in most cases it does not resolve email delivery issues.

Please consider selecting and configuring one of the other mailers.

', 'wp-mail-smtp' ), - [ 'p' => [] ] - ), - 'save_button' => esc_html__( 'Save Settings', 'wp-mail-smtp' ), - 'cancel_button' => esc_html__( 'Cancel', 'wp-mail-smtp' ), - 'icon_alt' => esc_html__( 'Warning icon', 'wp-mail-smtp' ), - ), - 'plugin_url' => wp_mail_smtp()->plugin_url, - 'education' => array( - 'upgrade_icon_lock' => '', - 'upgrade_title' => esc_html__( '%name% is a PRO Feature', 'wp-mail-smtp' ), - 'upgrade_button' => esc_html__( 'Upgrade to Pro', 'wp-mail-smtp' ), - 'upgrade_url' => add_query_arg( 'discount', 'SMTPLITEUPGRADE', wp_mail_smtp()->get_upgrade_link( '' ) ), - 'upgrade_bonus' => '

' . - wp_kses( - __( 'Bonus: WP Mail SMTP users get $50 off regular price,
applied at checkout.', 'wp-mail-smtp' ), - [ - 'strong' => [], - 'span' => [], - 'br' => [], - ] - ) - . '

', - 'upgrade_doc' => ' - ' . esc_html__( 'Already purchased?', 'wp-mail-smtp' ) . ' - ', - ), - 'all_mailers_supports' => wp_mail_smtp()->get_providers()->get_supports_all(), - 'nonce' => wp_create_nonce( 'wp-mail-smtp-admin' ), - ) - ); - - /* - * jQuery Confirm library v3.3.4. - */ - \wp_enqueue_style( - 'wp-mail-smtp-admin-jconfirm', - \wp_mail_smtp()->assets_url . '/libs/jquery-confirm.min.css', - array( 'wp-mail-smtp-admin' ), - '3.3.4' - ); - \wp_enqueue_script( - 'wp-mail-smtp-admin-jconfirm', - \wp_mail_smtp()->assets_url . '/libs/jquery-confirm.min.js', - array( 'wp-mail-smtp-admin' ), - '3.3.4', - false - ); - - /* - * Logs page. - */ - if ( $this->is_admin_page( 'logs' ) ) { - \wp_enqueue_style( - 'wp-mail-smtp-admin-logs', - apply_filters( 'wp_mail_smtp_admin_enqueue_assets_logs_css', '' ), - array( 'wp-mail-smtp-admin' ), - WPMS_PLUGIN_VER - ); - - \wp_enqueue_script( - 'wp-mail-smtp-admin-logs', - apply_filters( 'wp_mail_smtp_admin_enqueue_assets_logs_js', '' ), - array( 'wp-mail-smtp-admin' ), - WPMS_PLUGIN_VER, - false - ); - } - - /* - * About page. - */ - if ( $this->is_admin_page( 'about' ) ) { - - \wp_enqueue_style( - 'wp-mail-smtp-admin-about', - \wp_mail_smtp()->assets_url . '/css/smtp-about.min.css', - array( 'wp-mail-smtp-admin' ), - WPMS_PLUGIN_VER - ); - - \wp_enqueue_script( - 'wp-mail-smtp-admin-about', - \wp_mail_smtp()->assets_url . '/js/smtp-about' . WP::asset_min() . '.js', - array( 'wp-mail-smtp-admin' ), - '0.7.2', - false - ); - - $settings = array( - 'ajax_url' => \admin_url( 'admin-ajax.php' ), - 'nonce' => \wp_create_nonce( 'wp-mail-smtp-about' ), - // Strings. - 'plugin_activate' => \esc_html__( 'Activate', 'wp-mail-smtp' ), - 'plugin_activated' => \esc_html__( 'Activated', 'wp-mail-smtp' ), - 'plugin_active' => \esc_html__( 'Active', 'wp-mail-smtp' ), - 'plugin_inactive' => \esc_html__( 'Inactive', 'wp-mail-smtp' ), - 'plugin_processing' => \esc_html__( 'Processing...', 'wp-mail-smtp' ), - 'plugin_install_error' => \esc_html__( 'Could not install a plugin. Please download from WordPress.org and install manually.', 'wp-mail-smtp' ), - 'plugin_install_activate_btn' => \esc_html__( 'Install and Activate', 'wp-mail-smtp' ), - 'plugin_activate_btn' => \esc_html__( 'Activate', 'wp-mail-smtp' ), - 'plugin_download_btn' => \esc_html__( 'Download', 'wp-mail-smtp' ), - ); - - \wp_localize_script( - 'wp-mail-smtp-admin-about', - 'wp_mail_smtp_about', - $settings - ); - - \wp_enqueue_script( - 'wp-mail-smtp-admin-about-matchheight', - \wp_mail_smtp()->assets_url . '/js/vendor/jquery.matchHeight.min.js', - array( 'wp-mail-smtp-admin' ), - '0.7.2', - false - ); - } - - do_action( 'wp_mail_smtp_admin_area_enqueue_assets', $hook ); - } - - /** - * Outputs the plugin admin header. - * - * @since 1.0.0 - */ - public function display_admin_header() { - - // Bail if we're not on a plugin page. - if ( ! $this->is_admin_page() ) { - return; - } - - do_action( 'wp_mail_smtp_admin_header_before' ); - ?> - -
-
- - -
- - is_admin_page() ) { - $url = 'https://wordpress.org/support/plugin/wp-mail-smtp/reviews/?filter=5#new-post'; - - $text = sprintf( - wp_kses( - /* translators: %1$s - WP.org link; %2$s - same WP.org link. */ - __( 'Please rate WP Mail SMTP ★★★★★ on WordPress.org to help us spread the word. Thank you from the WP Mail SMTP team!', 'wp-mail-smtp' ), - array( - 'strong' => array(), - 'a' => array( - 'href' => array(), - 'target' => array(), - 'rel' => array(), - ), - ) - ), - $url, - $url - ); - } - - return $text; - } - - /** - * Display content of the admin area page. - * - * @since 1.0.0 - * @since 1.5.0 Rewrite to distinguish between General tabs and separate pages. - */ - public function display() { - - // Bail if we're not on a plugin page. - if ( ! $this->is_admin_page() ) { - return; - } - - $page = ! empty( $_GET['page'] ) ? \sanitize_key( $_GET['page'] ) : ''; // phpcs:ignore - ?> - -
- - - -
- display_tabs(); ?> -
- - generate_display_logs_object(); - - $is_archive = wp_mail_smtp()->is_pro() && wp_mail_smtp()->pro->get_logs()->is_archive(); - ?> - -
- display(); ?> -
- - - -
- display(); ?> -
- - -
- - - -
- get_pages() as $page_slug => $page ) : - $label = $page->get_label(); - if ( empty( $label ) ) { - continue; - } - $class = $page_slug === $this->get_current_tab() ? 'active' : ''; - ?> - - - - - - -
- -
-

- get_current_tab_title() ); ?> -

- - - - display_current_tab_content(); ?> -
- - get_pages(); - - if ( ! array_key_exists( $this->get_current_tab(), $pages ) ) { - return; - } - - $pages[ $this->get_current_tab() ]->display(); - } - - /** - * Get the current admin area tab. - * - * @since 1.0.0 - * - * @return string - */ - protected function get_current_tab() { - - $current = ''; - - if ( $this->is_admin_page( 'general' ) ) { - $current = ! empty( $_GET['tab'] ) ? sanitize_key( $_GET['tab'] ) : 'settings'; // phpcs:ignore - } - - return $current; - } - - /** - * Get the array of default registered tabs for General page admin area. - * - * @since 1.0.0 - * - * @return \WPMailSMTP\Admin\PageAbstract[] - */ - public function get_pages() { - - if ( empty( $this->pages ) ) { - $this->pages = array( - 'settings' => new Pages\SettingsTab(), - 'test' => new Pages\TestTab(), - 'logs' => new Pages\LogsTab(), - 'control' => new Pages\ControlTab(), - 'misc' => new Pages\MiscTab(), - 'auth' => new Pages\AuthTab(), - ); - } - - return apply_filters( 'wp_mail_smtp_admin_get_pages', $this->pages ); - } - - /** - * Get the current tab title. - * - * @since 1.0.0 - * - * @return string - */ - public function get_current_tab_title() { - - $pages = $this->get_pages(); - - if ( ! array_key_exists( $this->get_current_tab(), $pages ) ) { - return ''; - } - - return $pages[ $this->get_current_tab() ]->get_title(); - } - - /** - * Check whether we are on an admin page. - * - * @since 1.0.0 - * @since 1.5.0 Added support for new pages. - * - * @param array|string $slug ID(s) of a plugin page. Possible values: 'general', 'logs', 'about' or array of them. - * - * @return bool - */ - public function is_admin_page( $slug = array() ) { - - $cur_page = isset( $_GET['page'] ) ? sanitize_key( $_GET['page'] ) : ''; // phpcs:ignore - $check = self::SLUG; - $pages_equal = false; - - if ( is_string( $slug ) ) { - $slug = sanitize_key( $slug ); - - if ( - in_array( $slug, self::$pages_registered, true ) && - $slug !== 'general' - ) { - $check = self::SLUG . '-' . $slug; - } - - $pages_equal = $cur_page === $check; - } elseif ( is_array( $slug ) ) { - if ( empty( $slug ) ) { - $slug = array_map( function ( $v ) { - if ( $v === 'general' ) { - return Area::SLUG; - } - return Area::SLUG . '-' . $v; - }, self::$pages_registered ); - } else { - $slug = array_map( function ( $v ) { - if ( $v === 'general' ) { - return Area::SLUG; - } - return Area::SLUG . '-' . sanitize_key( $v ); - }, $slug ); - } - - $pages_equal = in_array( $cur_page, $slug, true ); - } - - return is_admin() && $pages_equal; - } - - /** - * Give ability to use either admin area option or a filter to hide error notices about failed email delivery. - * Filter has higher priority and overrides an option. - * - * @since 1.6.0 - * - * @return bool - */ - public function is_error_delivery_notice_enabled() { - - $is_hard_enabled = (bool) apply_filters( 'wp_mail_smtp_admin_is_error_delivery_notice_enabled', true ); - - // If someone changed the value to false using a filter - disable completely. - if ( ! $is_hard_enabled ) { - return false; - } - - return ! (bool) Options::init()->get( 'general', 'email_delivery_errors_hidden' ); - } - - /** - * All possible plugin forms manipulation will be done here. - * - * @since 1.0.0 - */ - public function process_actions() { - - // Bail if we're not on a plugin General page. - if ( ! $this->is_admin_page( 'general' ) ) { - return; - } - - $pages = $this->get_pages(); - - // Allow to process only own tabs. - if ( ! array_key_exists( $this->get_current_tab(), $pages ) ) { - return; - } - - // Process POST only if it exists. - if ( ! empty( $_POST ) ) { - if ( ! empty( $_POST['wp-mail-smtp'] ) ) { - $post = $_POST['wp-mail-smtp']; - } else { - $post = array(); - } - - $pages[ $this->get_current_tab() ]->process_post( $post ); - } - - // This won't do anything for most pages. - // Works for plugin page only, when GET params are allowed. - $pages[ $this->get_current_tab() ]->process_auth(); - } - - /** - * Process all AJAX requests. - * - * @since 1.3.0 - * @since 1.5.0 Added tasks to process plugins management. - */ - public function process_ajax() { - - $data = array(); - - // Only admins can fire these ajax requests. - if ( ! current_user_can( 'manage_options' ) ) { - wp_send_json_error( $data ); - } - - if ( empty( $_POST['task'] ) ) { // phpcs:ignore - wp_send_json_error( $data ); - } - - $task = sanitize_key( $_POST['task'] ); // phpcs:ignore - - switch ( $task ) { - case 'pro_banner_dismiss': - update_user_meta( get_current_user_id(), 'wp_mail_smtp_pro_banner_dismissed', true ); - $data['message'] = esc_html__( 'WP Mail SMTP Pro related message was successfully dismissed.', 'wp-mail-smtp' ); - break; - - case 'about_plugin_install': - Pages\About::ajax_plugin_install(); - break; - - case 'about_plugin_activate': - Pages\About::ajax_plugin_activate(); - break; - - case 'notice_dismiss': - $notice = sanitize_key( $_POST['notice'] ); // phpcs:ignore - $mailer = sanitize_key( $_POST['mailer'] ); // phpcs:ignore - if ( empty( $notice ) || empty( $mailer ) ) { - break; - } - - update_user_meta( get_current_user_id(), "wp_mail_smtp_notice_{$notice}_for_{$mailer}_dismissed", true ); - $data['message'] = esc_html__( 'Educational notice for this mailer was successfully dismissed.', 'wp-mail-smtp' ); - break; - - default: - // Allow custom tasks data processing being added here. - $data = apply_filters( 'wp_mail_smtp_admin_process_ajax_' . $task . '_data', $data ); - } - - // Final ability to rewrite all the data, just in case. - $data = (array) apply_filters( 'wp_mail_smtp_admin_process_ajax_data', $data, $task ); - - if ( empty( $data ) ) { - wp_send_json_error( $data ); - } - - wp_send_json_success( $data ); - } - - /** - * Add plugin action links on Plugins page (lite version only). - * - * @since 1.0.0 - * @since 1.5.0 Added a link to Email Log. - * @since 2.0.0 Adjusted links. Process only the Lite plugin. - * - * @param array $links Existing plugin action links. - * - * @return array - */ - public function add_plugin_action_link( $links ) { - - // Do not register lite plugin action links if on pro version. - if ( wp_mail_smtp()->is_pro() ) { - return $links; - } - - $custom['settings'] = sprintf( - '%s', - esc_url( $this->get_admin_page_url() ), - esc_attr__( 'Go to WP Mail SMTP Settings page', 'wp-mail-smtp' ), - esc_html__( 'Settings', 'wp-mail-smtp' ) - ); - - $custom['support'] = sprintf( - '%3$s', - esc_url( add_query_arg( 'tab','versus', $this->get_admin_page_url( Area::SLUG . '-about' ) ) ), - esc_attr__( 'Go to WP Mail SMTP Lite vs Pro comparison page', 'wp-mail-smtp' ), - esc_html__( 'Premium Support', 'wp-mail-smtp' ) - ); - - return array_merge( $custom, (array) $links ); - } - - /** - * Get plugin admin area page URL. - * - * @since 1.0.0 - * @since 1.5.0 URL is changed to support the top level position of the plugin admin area. - * - * @param string $page - * - * @return string - */ - public function get_admin_page_url( $page = '' ) { - - if ( empty( $page ) ) { - $page = self::SLUG; - } - - return add_query_arg( - 'page', - $page, - WP::admin_url( 'admin.php' ) - ); - } - - /** - * Remove all non-WP Mail SMTP plugin notices from plugin pages. - * - * @since 1.0.0 - */ - public function hide_unrelated_notices() { - - // Bail if we're not on our screen or page. - if ( empty( $_REQUEST['page'] ) || strpos( $_REQUEST['page'], self::SLUG ) === false ) { - return; - } - - global $wp_filter; - - if ( ! empty( $wp_filter['user_admin_notices']->callbacks ) && is_array( $wp_filter['user_admin_notices']->callbacks ) ) { - foreach ( $wp_filter['user_admin_notices']->callbacks as $priority => $hooks ) { - foreach ( $hooks as $name => $arr ) { - if ( is_object( $arr['function'] ) && $arr['function'] instanceof \Closure ) { - unset( $wp_filter['user_admin_notices']->callbacks[ $priority ][ $name ] ); - continue; - } - if ( ! empty( $arr['function'][0] ) && is_object( $arr['function'][0] ) && strpos( strtolower( get_class( $arr['function'][0] ) ), 'wpmailsmtp' ) !== false ) { - continue; - } - if ( ! empty( $name ) && strpos( strtolower( $name ), 'wpmailsmtp' ) === false ) { - unset( $wp_filter['user_admin_notices']->callbacks[ $priority ][ $name ] ); - } - } - } - } - - if ( ! empty( $wp_filter['admin_notices']->callbacks ) && is_array( $wp_filter['admin_notices']->callbacks ) ) { - foreach ( $wp_filter['admin_notices']->callbacks as $priority => $hooks ) { - foreach ( $hooks as $name => $arr ) { - if ( is_object( $arr['function'] ) && $arr['function'] instanceof \Closure ) { - unset( $wp_filter['admin_notices']->callbacks[ $priority ][ $name ] ); - continue; - } - if ( ! empty( $arr['function'][0] ) && is_object( $arr['function'][0] ) && strpos( strtolower( get_class( $arr['function'][0] ) ), 'wpmailsmtp' ) !== false ) { - continue; - } - if ( ! empty( $name ) && strpos( strtolower( $name ), 'wpmailsmtp' ) === false ) { - unset( $wp_filter['admin_notices']->callbacks[ $priority ][ $name ] ); - } - } - } - } - - if ( ! empty( $wp_filter['all_admin_notices']->callbacks ) && is_array( $wp_filter['all_admin_notices']->callbacks ) ) { - foreach ( $wp_filter['all_admin_notices']->callbacks as $priority => $hooks ) { - foreach ( $hooks as $name => $arr ) { - if ( is_object( $arr['function'] ) && $arr['function'] instanceof \Closure ) { - unset( $wp_filter['all_admin_notices']->callbacks[ $priority ][ $name ] ); - continue; - } - if ( ! empty( $arr['function'][0] ) && is_object( $arr['function'][0] ) && strpos( strtolower( get_class( $arr['function'][0] ) ), 'wpmailsmtp' ) !== false ) { - continue; - } - if ( ! empty( $name ) && strpos( strtolower( $name ), 'wpmailsmtp' ) === false ) { - unset( $wp_filter['all_admin_notices']->callbacks[ $priority ][ $name ] ); - } - } - } - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Admin/Education.php b/wp-content/plugins/wp-mail-smtp/src/Admin/Education.php deleted file mode 100644 index 16ff066..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Admin/Education.php +++ /dev/null @@ -1,102 +0,0 @@ -get_admin()->is_admin_page() ) { - return; - } - - $dismissed = get_user_meta( get_current_user_id(), self::DISMISS_NOTICE_BAR_KEY, true ); - - if ( ! empty( $dismissed ) ) { - return; - } - - printf( - '
-
- %s -
-
', - wp_kses( - sprintf( /* translators: %s - WPMailSMTP.com Upgrade page URL. */ - __( 'You’re using WP Mail SMTP Lite. To unlock more features consider upgrading to Pro.', 'wp-mail-smtp' ), - wp_mail_smtp()->get_upgrade_link( [ 'medium' => 'notice-bar' ] ) - ), - [ - 'a' => [ - 'href' => [], - 'rel' => [], - 'target' => [], - ], - ] - ), - esc_attr__( 'Dismiss this message.', 'wp-mail-smtp' ) - ); - } - - /** - * Ajax handler for dismissing notices. - * - * @since 2.3.0 - */ - public function notice_bar_ajax_dismiss() { - - // Run a security check. - check_ajax_referer( 'wp-mail-smtp-admin', 'nonce' ); - - // Check for permissions. - if ( ! current_user_can( 'manage_options' ) ) { - wp_send_json_error(); - } - - update_user_meta( get_current_user_id(), self::DISMISS_NOTICE_BAR_KEY, time() ); - wp_send_json_success(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Admin/Notifications.php b/wp-content/plugins/wp-mail-smtp/src/Admin/Notifications.php deleted file mode 100644 index 9dcb377..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Admin/Notifications.php +++ /dev/null @@ -1,492 +0,0 @@ -hooks(); - } - - /** - * Register hooks. - * - * @since 2.3.0 - */ - public function hooks() { - - add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_assets' ] ); - add_action( 'wp_mail_smtp_admin_pages_before_content', [ $this, 'output' ] ); - add_action( 'wp_mail_smtp_admin_notifications_update', [ $this, 'update' ] ); - add_action( 'wp_ajax_wp_mail_smtp_notification_dismiss', [ $this, 'dismiss' ] ); - } - - /** - * Check if user has access and is enabled. - * - * @since 2.3.0 - * - * @return bool - */ - public function has_access() { - - $access = false; - - if ( - current_user_can( 'manage_options' ) && - ! ( new Options() )->get( 'general', 'am_notifications_hidden' ) - ) { - $access = true; - } - - return apply_filters( 'wp_mail_smtp_admin_notifications_has_access', $access ); - } - - /** - * Get option value. - * - * @since 2.3.0 - * - * @param bool $cache Reference property cache if available. - * - * @return array - */ - public function get_option( $cache = true ) { - - if ( $this->option && $cache ) { - return $this->option; - } - - $option = get_option( self::OPTION_KEY, [] ); - - $this->option = [ - 'update' => ! empty( $option['update'] ) ? $option['update'] : 0, - 'events' => ! empty( $option['events'] ) ? $option['events'] : [], - 'feed' => ! empty( $option['feed'] ) ? $option['feed'] : [], - 'dismissed' => ! empty( $option['dismissed'] ) ? $option['dismissed'] : [], - ]; - - return $this->option; - } - - /** - * Fetch notifications from feed. - * - * @since 2.3.0 - * - * @return array - */ - protected function fetch_feed() { - - $response = wp_remote_get( self::SOURCE_URL ); - - if ( is_wp_error( $response ) ) { - return []; - } - - $body = wp_remote_retrieve_body( $response ); - - if ( empty( $body ) ) { - return []; - } - - return $this->verify( json_decode( $body, true ) ); - } - - /** - * Verify notification data before it is saved. - * - * @since 2.3.0 - * - * @param array $notifications Array of notification items to verify. - * - * @return array - */ - protected function verify( $notifications ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh - - $data = []; - - if ( ! is_array( $notifications ) || empty( $notifications ) ) { - return $data; - } - - $option = $this->get_option(); - - foreach ( $notifications as $notification ) { - - // The message and license should never be empty, if they are, ignore. - if ( empty( $notification['content'] ) || empty( $notification['type'] ) ) { - continue; - } - - // Ignore if license type does not match. - if ( ! in_array( wp_mail_smtp()->get_license_type(), $notification['type'], true ) ) { - continue; - } - - // Ignore if expired. - if ( ! empty( $notification['end'] ) && time() > strtotime( $notification['end'] ) ) { - continue; - } - - // Ignore if notification has already been dismissed. - if ( ! empty( $option['dismissed'] ) && in_array( $notification['id'], $option['dismissed'] ) ) { // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict - continue; - } - - // Ignore if notification existed before installing WPForms. - // Prevents bombarding the user with notifications after activation. - $activated = get_option( 'wp_mail_smtp_activated_time' ); - - if ( - ! empty( $activated ) && - ! empty( $notification['start'] ) && - $activated > strtotime( $notification['start'] ) - ) { - continue; - } - - $data[] = $notification; - } - - return $data; - } - - /** - * Verify saved notification data for active notifications. - * - * @since 2.3.0 - * - * @param array $notifications Array of notification items to verify. - * - * @return array - */ - protected function verify_active( $notifications ) { - - if ( ! is_array( $notifications ) || empty( $notifications ) ) { - return []; - } - - // Remove notifications that are not active. - foreach ( $notifications as $key => $notification ) { - if ( - ( ! empty( $notification['start'] ) && time() < strtotime( $notification['start'] ) ) || - ( ! empty( $notification['end'] ) && time() > strtotime( $notification['end'] ) ) - ) { - unset( $notifications[ $key ] ); - } - } - - return $notifications; - } - - /** - * Get notification data. - * - * @since 2.3.0 - * - * @return array - */ - public function get() { - - if ( ! $this->has_access() ) { - return []; - } - - $option = $this->get_option(); - - // Update notifications using async task. - if ( empty( $option['update'] ) || time() > $option['update'] + DAY_IN_SECONDS ) { - if ( empty( Tasks::is_scheduled( 'wp_mail_smtp_admin_notifications_update' ) ) ) { - - wp_mail_smtp()->get_tasks() - ->create( 'wp_mail_smtp_admin_notifications_update' ) - ->async() - ->params() - ->register(); - } - } - - $events = ! empty( $option['events'] ) ? $this->verify_active( $option['events'] ) : []; - $feed = ! empty( $option['feed'] ) ? $this->verify_active( $option['feed'] ) : []; - - return array_merge( $events, $feed ); - } - - /** - * Get notification count. - * - * @since 2.3.0 - * - * @return int - */ - public function get_count() { - - return count( $this->get() ); - } - - /** - * Add a manual notification event. - * - * @since 2.3.0 - * - * @param array $notification Notification data. - */ - public function add( $notification ) { - - if ( empty( $notification['id'] ) ) { - return; - } - - $option = $this->get_option(); - - if ( in_array( $notification['id'], $option['dismissed'] ) ) { // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict - return; - } - - foreach ( $option['events'] as $item ) { - if ( $item['id'] === $notification['id'] ) { - return; - } - } - - $notification = $this->verify( [ $notification ] ); - - update_option( - self::OPTION_KEY, - [ - 'update' => $option['update'], - 'feed' => $option['feed'], - 'events' => array_merge( $notification, $option['events'] ), - 'dismissed' => $option['dismissed'], - ] - ); - } - - /** - * Update notification data from feed. - * - * @since 2.3.0 - */ - public function update() { - - $feed = $this->fetch_feed(); - $option = $this->get_option(); - - update_option( - self::OPTION_KEY, - [ - 'update' => time(), - 'feed' => $feed, - 'events' => $option['events'], - 'dismissed' => $option['dismissed'], - ] - ); - } - - /** - * Admin area assets. - * - * @since 2.3.0 - * - * @param string $hook Hook suffix for the current admin page. - */ - public function enqueue_assets( $hook ) { - - if ( strpos( $hook, Area::SLUG ) === false ) { - return; - } - - if ( ! $this->has_access() ) { - return; - } - - $notifications = $this->get(); - - if ( empty( $notifications ) ) { - return; - } - - wp_enqueue_style( - 'wp-mail-smtp-admin-notifications', - wp_mail_smtp()->assets_url . '/css/admin-notifications.min.css', - [], - WPMS_PLUGIN_VER - ); - - wp_enqueue_script( - 'wp-mail-smtp-admin-notifications', - wp_mail_smtp()->assets_url . '/js/smtp-notifications' . WP::asset_min() . '.js', - [ 'jquery' ], - WPMS_PLUGIN_VER, - true - ); - } - - /** - * Output notifications. - * - * @since 2.3.0 - */ - public function output() { // phpcs:ignore Generic.Metrics.NestingLevel.MaxExceeded - - $notifications = $this->get(); - - if ( empty( $notifications ) ) { - return; - } - - $notifications_html = ''; - $current_class = ' current'; - $content_allowed_tags = [ - 'em' => [], - 'i' => [], - 'strong' => [], - 'span' => [ - 'style' => [], - ], - 'a' => [ - 'href' => [], - 'target' => [], - 'rel' => [], - ], - ]; - - foreach ( $notifications as $notification ) { - - // Buttons HTML. - $buttons_html = ''; - if ( ! empty( $notification['btns'] ) && is_array( $notification['btns'] ) ) { - foreach ( $notification['btns'] as $btn_type => $btn ) { - if ( empty( $btn['text'] ) ) { - continue; - } - $buttons_html .= sprintf( - '%4$s', - ! empty( $btn['url'] ) ? esc_url( $btn['url'] ) : '', - $btn_type === 'main' ? 'primary' : 'secondary', - ! empty( $btn['target'] ) && $btn['target'] === '_blank' ? ' target="_blank" rel="noopener noreferrer"' : '', - sanitize_text_field( $btn['text'] ) - ); - } - $buttons_html = ! empty( $buttons_html ) ? '
' . $buttons_html . '
' : ''; - } - - // Notification HTML. - $notifications_html .= sprintf( - '
-

%1$s

-

%2$s

- %3$s -
', - ! empty( $notification['title'] ) ? sanitize_text_field( $notification['title'] ) : '', - ! empty( $notification['content'] ) ? wp_kses( $notification['content'], $content_allowed_tags ) : '', - $buttons_html, - ! empty( $notification['id'] ) ? esc_attr( sanitize_text_field( $notification['id'] ) ) : 0, - $current_class - ); - - // Only first notification is current. - $current_class = ''; - } - ?> - -
- -
- -
- - - - - -
- -
-
- get_option(); - $type = is_numeric( $id ) ? 'feed' : 'events'; - - $option['dismissed'][] = $id; - $option['dismissed'] = array_unique( $option['dismissed'] ); - - // Remove notification. - if ( is_array( $option[ $type ] ) && ! empty( $option[ $type ] ) ) { - foreach ( $option[ $type ] as $key => $notification ) { - if ( $notification['id'] == $id ) { // phpcs:ignore WordPress.PHP.StrictComparisons - unset( $option[ $type ][ $key ] ); - break; - } - } - } - - update_option( self::OPTION_KEY, $option ); - - wp_send_json_success(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Admin/PageAbstract.php b/wp-content/plugins/wp-mail-smtp/src/Admin/PageAbstract.php deleted file mode 100644 index f1cecc8..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Admin/PageAbstract.php +++ /dev/null @@ -1,89 +0,0 @@ -slug, - WP::admin_url( 'admin.php?page=' . Area::SLUG ) - ) - ); - } - - /** - * Process tab form submission ($_POST ). - * - * @since 1.0.0 - * - * @param array $data $_POST data specific for the plugin. - */ - public function process_post( $data ) { - } - - /** - * Process tab & mailer specific Auth actions. - * - * @since 1.0.0 - */ - public function process_auth() { - } - - /** - * Print the nonce field for a specific tab. - * - * @since 1.0.0 - */ - public function wp_nonce_field() { - - wp_nonce_field( Area::SLUG . '-' . $this->slug ); - } - - /** - * Make sure that a user was referred from plugin admin page. - * To avoid security problems. - * - * @since 1.0.0 - */ - public function check_admin_referer() { - - check_admin_referer( Area::SLUG . '-' . $this->slug ); - } - - /** - * Save button to be reused on other tabs. - * - * @since 1.5.0 - */ - public function display_save_btn() { - - ?> - -

- -

- - get_defined_tab( $tab ), - WP::admin_url( 'admin.php?page=' . Area::SLUG . '-' . $this->slug ) - ); - } - - /** - * Get the current tab. - * - * @since 1.5.0 - * - * @return string Current tab. - */ - public function get_current_tab() { - - if ( empty( $_GET['tab'] ) ) { // phpcs:ignore - return $this->slug; - } - - return $this->get_defined_tab( $_GET['tab'] ); // phpcs:ignore - } - - /** - * Get the defined or default tab. - * - * @since 1.5.0 - * - * @param string $tab Tab to check. - * - * @return string Defined tab. Fallback to default one if it doesn't exist. - */ - protected function get_defined_tab( $tab ) { - - $tab = \sanitize_key( $tab ); - - return \in_array( $tab, $this->tabs, true ) ? $tab : $this->slug; - } - - /** - * Get label for a tab. - * Process only those that exists. - * Defaults to "About Us". - * - * @since 1.5.0 - * - * @param string $tab Tab to get label for. - * - * @return string - */ - public function get_label( $tab = '' ) { - - switch ( $this->get_defined_tab( $tab ) ) { - case 'versus': - $label = \sprintf( - /* translators: %s - plugin current license type. */ - \esc_html__( '%s vs Pro', 'wp-mail-smtp' ), - \ucfirst( \wp_mail_smtp()->get_license_type() ) - ); - break; - - case 'about': - default: - $label = \esc_html__( 'About Us', 'wp-mail-smtp' ); - break; - } - - return $label; - } - - /** - * @inheritdoc - */ - public function get_title() { - return $this->get_label( $this->get_current_tab() ); - } - - /** - * Display About page content based on the current tab. - * - * @since 1.5.0 - */ - public function display() { - ?> - -
- - get_label( 'about' ) ); ?> - - - get_license_type() === 'lite' ) : ?> - - get_label( 'versus' ) ); ?> - - -
- -
-

- get_label( $this->get_current_tab() ) ); ?> -

- - - - get_current_tab(); - - if ( \method_exists( $this, $callback ) ) { - $this->{$callback}(); - } else { - $this->display_about(); - } - ?> -
- - - -
- -
-

- -

- -

- -

-

- -

-

- WPForms, the largest WordPress resource site, WPBeginner, the most popular lead-generation software, OptinMonster, the best WordPress analytics plugin, MonsterInsights, and the most powerful WordPress contest plugin, RafflePress.', 'wp-mail-smtp' ), - array( - 'a' => array( - 'href' => array(), - 'rel' => array(), - 'target' => array(), - ), - ) - ), - 'https://wpforms.com/?utm_source=wpmailsmtpplugin&utm_medium=pluginaboutpage&utm_campaign=aboutwpmailsmtp', - 'https://www.wpbeginner.com/?utm_source=wpmailsmtpplugin&utm_medium=pluginaboutpage&utm_campaign=aboutwpmailsmtp', - 'https://optinmonster.com/?utm_source=wpmailsmtpplugin&utm_medium=pluginaboutpage&utm_campaign=aboutwpmailsmtp', - 'https://www.monsterinsights.com/?utm_source=wpmailsmtpplugin&utm_medium=pluginaboutpage&utm_campaign=aboutwpmailsmtp', - 'https://rafflepress.com/?utm_source=wpmailsmtpplugin&utm_medium=pluginaboutpage&utm_campaign=aboutwpmailsmtp' - ); - ?> -

-

- -

-
- -
-
- <?php esc_attr_e( 'The WPForms Team photo', 'wp-mail-smtp' ); ?> -
- -
-
-
- -
- - display_plugins(); - } - - /** - * Display the plugins section. - * - * @since 2.2.0 - */ - protected function display_plugins() { - ?> - -
-
- get_am_plugins() as $key => $plugin ) : - $is_url_external = false; - - $data = $this->get_about_plugins_data( $plugin ); - - if ( isset( $plugin['pro'] ) && \array_key_exists( $plugin['pro']['path'], \get_plugins() ) ) { - $is_url_external = true; - $plugin = $plugin['pro']; - - $data = array_merge( $data, $this->get_about_plugins_data( $plugin, true ) ); - } - - // Do not display a plugin which has to be installed and the user can't install it. - if ( ! current_user_can( 'install_plugins' ) && $data['status_class'] === 'status-download' ) { - continue; - } - - ?> -
-
-
- <?php esc_attr_e( 'Plugin icon', 'wp-mail-smtp' ); ?> -
- -
-

- -

-
-
-
- - ' . $data['status_text'] . '' - ); - ?> - -
-
- - - - -
-
-
-
- -
-
- - array( - 'path' => 'google-analytics-for-wordpress/googleanalytics.php', - 'icon' => \wp_mail_smtp()->assets_url . '/images/about/plugin-mi.png', - 'name' => \esc_html__( 'MonsterInsights', 'wp-mail-smtp' ), - 'desc' => \esc_html__( 'MonsterInsights makes it “effortless” to properly connect your WordPress site with Google Analytics, so you can start making data-driven decisions to grow your business.', 'wp-mail-smtp' ), - 'url' => 'https://downloads.wordpress.org/plugin/google-analytics-for-wordpress.zip', - 'pro' => array( - 'path' => 'google-analytics-premium/googleanalytics-premium.php', - 'icon' => \wp_mail_smtp()->assets_url . '/images/about/plugin-mi.png', - 'name' => \esc_html__( 'MonsterInsights Pro', 'wp-mail-smtp' ), - 'desc' => \esc_html__( 'MonsterInsights makes it “effortless” to properly connect your WordPress site with Google Analytics, so you can start making data-driven decisions to grow your business.', 'wp-mail-smtp' ), - 'url' => 'https://www.monsterinsights.com/?utm_source=WordPress&utm_medium=about&utm_campaign=smtp', - ), - ), - 'om' => array( - 'path' => 'optinmonster/optin-monster-wp-api.php', - 'icon' => \wp_mail_smtp()->assets_url . '/images/about/plugin-om.png', - 'name' => \esc_html__( 'OptinMonster', 'wp-mail-smtp' ), - 'desc' => \esc_html__( 'Our high-converting optin forms like Exit-Intent® popups, Fullscreen Welcome Mats, and Scroll boxes help you dramatically boost conversions and get more email subscribers.', 'wp-mail-smtp' ), - 'url' => 'https://downloads.wordpress.org/plugin/optinmonster.zip', - ), - 'wpforms' => array( - 'path' => 'wpforms-lite/wpforms.php', - 'icon' => \wp_mail_smtp()->assets_url . '/images/about/plugin-wpf.png', - 'name' => \esc_html__( 'Contact Forms by WPForms', 'wp-mail-smtp' ), - 'desc' => \esc_html__( 'The best WordPress contact form plugin. Drag & Drop online form builder that helps you create beautiful contact forms with just a few clicks.', 'wp-mail-smtp' ), - 'url' => 'https://downloads.wordpress.org/plugin/wpforms-lite.zip', - 'pro' => array( - 'path' => 'wpforms/wpforms.php', - 'icon' => \wp_mail_smtp()->assets_url . '/images/about/plugin-wpf.png', - 'name' => \esc_html__( 'WPForms Pro', 'wp-mail-smtp' ), - 'desc' => \esc_html__( 'The best WordPress contact form plugin. Drag & Drop online form builder that helps you create beautiful contact forms with just a few clicks.', 'wp-mail-smtp' ), - 'url' => 'https://wpforms.com/?utm_source=WordPress&utm_medium=about&utm_campaign=smtp', - ), - ), - 'rafflepress' => array( - 'path' => 'rafflepress/rafflepress.php', - 'icon' => \wp_mail_smtp()->assets_url . '/images/about/plugin-rp.png', - 'name' => \esc_html__( 'RafflePress', 'wp-mail-smtp' ), - 'desc' => \esc_html__( 'Turn your visitors into brand ambassadors! Easily grow your email list, website traffic, and social media followers with powerful viral giveaways & contests.', 'wp-mail-smtp' ), - 'url' => 'https://downloads.wordpress.org/plugin/rafflepress.zip', - 'pro' => array( - 'path' => 'rafflepress-pro/rafflepress-pro.php', - 'icon' => \wp_mail_smtp()->assets_url . '/images/about/plugin-rp.png', - 'name' => \esc_html__( 'RafflePress Pro', 'wp-mail-smtp' ), - 'desc' => \esc_html__( 'Turn your visitors into brand ambassadors! Easily grow your email list, website traffic, and social media followers with powerful viral giveaways & contests.', 'wp-mail-smtp' ), - 'url' => 'https://rafflepress.com/pricing/', - ), - ), - ); - - return $data; - } - - /** - * Active the given plugin. - * - * @since 1.5.0 - */ - public static function ajax_plugin_activate() { - - // Run a security check. - \check_ajax_referer( 'wp-mail-smtp-about', 'nonce' ); - - $error = \esc_html__( 'Could not activate the plugin. Please activate it from the Plugins page.', 'wp-mail-smtp' ); - - // Check for permissions. - if ( ! \current_user_can( 'activate_plugins' ) ) { - \wp_send_json_error( $error ); - } - - if ( isset( $_POST['plugin'] ) ) { - - $activate = \activate_plugins( $_POST['plugin'] ); // phpcs:ignore - - if ( ! \is_wp_error( $activate ) ) { - \wp_send_json_success( esc_html__( 'Plugin activated.', 'wp-mail-smtp' ) ); - } - } - - \wp_send_json_error( $error ); - } - - /** - * Install & activate the given plugin. - * - * @since 1.5.0 - */ - public static function ajax_plugin_install() { - - // Run a security check. - \check_ajax_referer( 'wp-mail-smtp-about', 'nonce' ); - - $error = \esc_html__( 'Could not install the plugin.', 'wp-mail-smtp' ); - - // Check for permissions. - if ( ! \current_user_can( 'install_plugins' ) ) { - \wp_send_json_error( $error ); - } - - if ( empty( $_POST['plugin'] ) ) { - \wp_send_json_error(); - } - - // Set the current screen to avoid undefined notices. - \set_current_screen( 'wp-mail-smtp_page_wp-mail-smtp-about' ); - - // Prepare variables. - $url = \esc_url_raw( - \add_query_arg( - array( - 'page' => 'wp-mail-smtp-about', - ), - \admin_url( 'admin.php' ) - ) - ); - - $creds = \request_filesystem_credentials( $url, '', false, false, null ); - - // Check for file system permissions. - if ( false === $creds ) { - \wp_send_json_error( $error ); - } - - if ( ! \WP_Filesystem( $creds ) ) { - \wp_send_json_error( $error ); - } - - // Do not allow WordPress to search/download translations, as this will break JS output. - \remove_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async_upgrade' ), 20 ); - - // Create the plugin upgrader with our custom skin. - $installer = new PluginsInstallUpgrader( new PluginsInstallSkin() ); - - // Error check. - if ( ! \method_exists( $installer, 'install' ) || empty( $_POST['plugin'] ) ) { - \wp_send_json_error( $error ); - } - - $installer->install( $_POST['plugin'] ); // phpcs:ignore - - // Flush the cache and return the newly installed plugin basename. - \wp_cache_flush(); - - if ( $installer->plugin_info() ) { - - $plugin_basename = $installer->plugin_info(); - - // Activate the plugin silently. - $activated = \activate_plugin( $plugin_basename ); - - if ( ! \is_wp_error( $activated ) ) { - \wp_send_json_success( - array( - 'msg' => \esc_html__( 'Plugin installed & activated.', 'wp-mail-smtp' ), - 'is_activated' => true, - 'basename' => $plugin_basename, - ) - ); - } else { - \wp_send_json_success( - array( - 'msg' => esc_html__( 'Plugin installed.', 'wp-mail-smtp' ), - 'is_activated' => false, - 'basename' => $plugin_basename, - ) - ); - } - } - - \wp_send_json_error( $error ); - } - - /** - * Display a "Lite vs Pro" tab content. - * - * @since 1.5.0 - */ - protected function display_versus() { - - $license = \wp_mail_smtp()->get_license_type(); - ?> - -
-

- - - -

- -

- -

-
- -
- -
-
-

- -

-
-
-

- -

-
-
-

- -

-
-
-
- - - get_license_features() as $slug => $name ) { - $current = $this->get_license_data( $slug, $license ); - $pro = $this->get_license_data( $slug, 'pro' ); - ?> - - - - - - -
-

-
-

- ', $current['text'] ); ?> -

-
-

- ', $pro['text'] ); ?> -

-
- -
- -
- - -
-
-

- - - -

- -

- $50 off regular price, automatically applied at checkout.', 'wp-mail-smtp' ), - array( - 'span' => array( - 'class' => array(), - ), - ) - ); - ?> -

-
-
- - - \esc_html__( 'Email Log', 'wp-mail-smtp' ), - 'control' => \esc_html__( 'Email Controls', 'wp-mail-smtp' ), - 'mailers' => \esc_html__( 'Mailer Options', 'wp-mail-smtp' ), - 'multisite' => \esc_html__( 'WordPress Multisite', 'wp-mail-smtp' ), - 'support' => \esc_html__( 'Customer Support', 'wp-mail-smtp' ), - ]; - } - - /** - * Get the array of data that compared the license data. - * - * @since 1.5.0 - * - * @param string $feature Feature name. - * @param string $license License type to get data for. - * - * @return array|false - */ - private function get_license_data( $feature, $license ) { - - $data = [ - 'log' => [ - 'lite' => [ - 'status' => 'none', - 'text' => [ - '' . esc_html__( 'Emails are not logged', 'wp-mail-smtp' ) . '', - ], - ], - 'pro' => [ - 'status' => 'full', - 'text' => [ - '' . esc_html__( 'Access to all Email Logging options right inside WordPress', 'wp-mail-smtp' ) . '', - ], - ], - ], - 'control' => [ - 'lite' => [ - 'status' => 'none', - 'text' => [ - '' . esc_html__( 'No controls over whether default WordPress emails are sent', 'wp-mail-smtp' ) . '', - ], - ], - 'pro' => [ - 'status' => 'full', - 'text' => [ - '' . esc_html__( 'Complete Email Controls management for most default WordPress emails', 'wp-mail-smtp' ) . '', - ], - ], - ], - 'mailers' => [ - 'lite' => [ - 'status' => 'none', - 'text' => [ - '' . esc_html__( 'Limited Mailers', 'wp-mail-smtp' ) . '
' . esc_html__( 'Access is limited to standard mailer options only', 'wp-mail-smtp' ), - ], - ], - 'pro' => [ - 'status' => 'full', - 'text' => [ - '' . esc_html__( 'Additional Mailer Options', 'wp-mail-smtp' ) . '
' . esc_html__( 'Microsoft Outlook (with Office365 support), Amazon SES and Zoho Mail', 'wp-mail-smtp' ), - ], - ], - ], - 'multisite' => [ - 'lite' => [ - 'status' => 'none', - 'text' => [ - '' . esc_html__( 'No Global Network Settings', 'wp-mail-smtp' ) . '', - ], - ], - 'pro' => [ - 'status' => 'full', - 'text' => [ - '' . esc_html__( 'All Global Network Settings', 'wp-mail-smtp' ) . '
' . esc_html__( 'Optionally configure settings at the network level or manage separately for each subsite', 'wp-mail-smtp' ), - ], - ], - ], - 'support' => [ - 'lite' => [ - 'status' => 'none', - 'text' => [ - '' . esc_html__( 'Limited Support', 'wp-mail-smtp' ) . '', - ], - ], - 'pro' => [ - 'status' => 'full', - 'text' => [ - '' . esc_html__( 'Priority Support', 'wp-mail-smtp' ) . '', - ], - ], - ], - ]; - - // Wrong feature? - if ( ! isset( $data[ $feature ] ) ) { - return false; - } - - // Wrong license type? - if ( ! isset( $data[ $feature ][ $license ] ) ) { - return false; - } - - return $data[ $feature ][ $license ]; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/AuthTab.php b/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/AuthTab.php deleted file mode 100644 index 9bda282..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/AuthTab.php +++ /dev/null @@ -1,63 +0,0 @@ -get_providers()->get_auth( Options::init()->get( 'mail', 'mailer' ) ); - - if ( - $auth && - $auth instanceof AuthAbstract && - method_exists( $auth, 'process' ) - ) { - $auth->process(); - } - } - - /** - * Return nothing, as we don't need this functionality. - * - * @since 1.0.0 - */ - public function get_label() { - return ''; - } - - /** - * Return nothing, as we don't need this functionality. - * - * @since 1.0.0 - */ - public function get_title() { - return ''; - } - - /** - * Do nothing, as we don't need this functionality. - * - * @since 1.0.0 - */ - public function display() { - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/ControlTab.php b/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/ControlTab.php deleted file mode 100644 index 1b105cb..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/ControlTab.php +++ /dev/null @@ -1,137 +0,0 @@ -get_label(); - } - - /** - * {@inheritdoc} - * - * @since 2.1.0 Replaced images with SVGs. - */ - public function display() { - - $features = [ - [ - 'svg' => '', - 'title' => esc_html__( 'Comment Notifications', 'wp-mail-smtp' ), - 'desc' => esc_html__( 'Manage emails sent when comments are published or awaiting moderation.', 'wp-mail-smtp' ), - ], - [ - 'svg' => '', - 'title' => esc_html__( 'Site Admin Email Change Notifications', 'wp-mail-smtp' ), - 'desc' => esc_html__( 'Manage emails sent when site admin\'s account has been changed.', 'wp-mail-smtp' ), - ], - [ - 'svg' => '', - 'title' => esc_html__( 'User Change Notifications', 'wp-mail-smtp' ), - 'desc' => esc_html__( 'Limit emails triggered by password changed/reset, email changed, and more.', 'wp-mail-smtp' ), - ], - [ - 'svg' => '', - 'title' => esc_html__( 'Personal Data Requests Notifications', 'wp-mail-smtp' ), - 'desc' => esc_html__( 'Control emails for data requests and data removal actions.', 'wp-mail-smtp' ), - ], - [ - 'svg' => '', - 'title' => esc_html__( 'Automatic Update Notifications', 'wp-mail-smtp' ), - 'desc' => esc_html__( 'Manage emails sent by the core automatic update process.', 'wp-mail-smtp' ), - ], - [ - 'svg' => '', - 'title' => esc_html__( 'New User Notifications', 'wp-mail-smtp' ), - 'desc' => esc_html__( 'Toggle emails sent to both user and site administrator about new user accounts.', 'wp-mail-smtp' ), - ], - ]; - - $allowed_svg_html = [ - 'svg' => [ - 'xmlns' => [], - 'focusable' => [], - 'viewbox' => [], - ], - 'path' => [ - 'class' => [], - 'd' => [], - ], - ]; - ?> - -
-

- -

- -

- -
- -
- -
-
- -
-
-

-

-
-
- -
- -
- -
- - - -
- -
- - slug, - WP::admin_url( 'admin.php?page=' . Area::SLUG ) - ); - } - - /** - * Link label of a tab. - * - * @since 1.5.0 - * - * @return string - */ - public function get_label() { - return esc_html__( 'Email Log', 'wp-mail-smtp' ); - } - - /** - * Title of a tab. - * - * @since 1.5.0 - * - * @return string - */ - public function get_title() { - return $this->get_label(); - } - - /** - * Tab content. - * - * @since 2.1.0 Moved the display content to the email log settings tab. - */ - public function display() {} -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/LogsTab.php b/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/LogsTab.php deleted file mode 100644 index a6dc9bc..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/LogsTab.php +++ /dev/null @@ -1,86 +0,0 @@ -get_label(); - } - - /** - * Display the upsell content for the Email Log feature. - * - * @since 1.6.0 - * @since 2.1.0 Moved the display content from the email log page (WP admin menu "Email Log" page). - */ - public function display() { - ?> - -
-

- -

-
- -

- -
- <?php esc_attr_e( 'Logs Archive Page Screenshot', 'wp-mail-smtp' ); ?> - <?php esc_attr_e( 'Logs Single Page Screenshot', 'wp-mail-smtp' ); ?> -
- -
- - - -
- -
- - get_label(); - } - - /** - * @inheritdoc - */ - public function display() { - - $options = new Options(); - ?> - -
- wp_nonce_field(); ?> - - -
-
-

get_title(); ?>

-
-
- - -
-
- -
-
- is_const_defined( 'general', 'do_not_send' ) ? 'disabled' : ''; ?> - get( 'general', 'do_not_send' ) ); ?> - > - -

- wp_mail() function to send emails.', 'wp-mail-smtp' ), - array( - 'code' => array(), - ) - ) - ); - ?> -
- -
- -
- is_const_defined( 'general', 'do_not_send' ) ) { - printf( /* translators: %1$s - constant that was used; %2$s - file where it was used. */ - esc_html__( 'The value of this field was set using a constant %1$s most likely inside %2$s of your WordPress installation.', 'wp-mail-smtp' ), - 'WPMS_DO_NOT_SEND', - 'wp-config.php' - ); - } else { - printf( - wp_kses( /* translators: %s - The URL to the constants support article. */ - __( 'Please read this support article if you want to enable this option using constants.', 'wp-mail-smtp' ), - [ - 'a' => [ - 'href' => [], - 'target' => [], - 'rel' => [], - ], - ] - ), - 'https://wpmailsmtp.com/docs/how-to-secure-smtp-settings-by-using-constants/' - ); - } - ?> -

-
-
- - -
-
- -
-
- get( 'general', 'am_notifications_hidden' ) ); ?> - id="wp-mail-smtp-setting-am_notifications_hidden" - > - -
-
- - -
-
- -
-
- get_admin()->is_error_delivery_notice_enabled(); - ?> - - - - get( 'general', 'email_delivery_errors_hidden' ) ); ?> - id="wp-mail-smtp-setting-email_delivery_errors_hidden"> - - - - - -

- wp_mail_smtp_admin_is_error_delivery_notice_enabled' - ); - ?> -

- -

- This is not recommended and should only be done for staging or development sites.', 'wp-mail-smtp' ), - array( - 'strong' => true, - ) - ); - ?> -

- -
-
- - -
-
- -
-
- get( 'general', 'uninstall' ) ); ?> - id="wp-mail-smtp-setting-uninstall"> - -
-
- - - -
-
- -
-
- get( 'general', UsageTracking::SETTINGS_SLUG ) ); ?> - id="wp-mail-smtp-setting-usage-tracking"> - -
-
- - - display_save_btn(); ?> - -
- - check_admin_referer(); - - $options = new Options(); - - // Unchecked checkboxes doesn't exist in $_POST, so we need to ensure we actually have them in data to save. - if ( empty( $data['general']['do_not_send'] ) ) { - $data['general']['do_not_send'] = false; - } - if ( empty( $data['general']['am_notifications_hidden'] ) ) { - $data['general']['am_notifications_hidden'] = false; - } - if ( empty( $data['general']['email_delivery_errors_hidden'] ) ) { - $data['general']['email_delivery_errors_hidden'] = false; - } - if ( empty( $data['general']['uninstall'] ) ) { - $data['general']['uninstall'] = false; - } - if ( empty( $data['general'][ UsageTracking::SETTINGS_SLUG ] ) ) { - $data['general'][ UsageTracking::SETTINGS_SLUG ] = false; - } - - // All the sanitization is done there. - $options->set( $data, false, false ); - - WP::add_admin_notice( - esc_html__( 'Settings were successfully saved.', 'wp-mail-smtp' ), - WP::ADMIN_NOTICE_SUCCESS - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/SettingsTab.php b/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/SettingsTab.php deleted file mode 100644 index b8a1f09..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/SettingsTab.php +++ /dev/null @@ -1,608 +0,0 @@ -get_label(); - } - - /** - * @inheritdoc - */ - public function display() { - - $options = new Options(); - $mailer = $options->get( 'mail', 'mailer' ); - - $disabled_email = in_array( $mailer, [ 'gmail', 'outlook', 'zoho' ], true ) ? 'disabled' : ''; - $disabled_name = 'outlook' === $mailer ? 'disabled' : ''; - - if ( empty( $mailer ) ) { - $mailer = 'mail'; - } - - $mailer_supported_settings = wp_mail_smtp()->get_providers()->get_options( $mailer )->get_supports(); - ?> - -
- wp_nonce_field(); ?> - - - - -
-
-

- -

- -

-
-
- - -
-
- -
-
- -
-
- - -
-
-

-
-
- - -
-
- -
-
-
- - is_const_defined( 'mail', 'from_email' ) || ! empty( $disabled_email ) ? 'disabled' : ''; ?> - id="wp-mail-smtp-setting-from_email" spellcheck="false" - placeholder="get_processor()->get_default_email() ); ?>"> - - is_clients_saved() ? $gmail_auth->get_user_possible_send_from_addresses() : []; - ?> - - - - - - - - - - -

-
- -

-

- -

- -
- -
- -
- - get( 'mail', 'from_email_force' ) ); ?> - is_const_defined( 'mail', 'from_email_force' ) || ! empty( $disabled_email ) ? 'disabled' : ''; ?> - id="wp-mail-smtp-setting-from_email_force"> - - - - - - - -

- -

- -

- -

- -
-
-
- - -
-
- -
-
-
- is_const_defined( 'mail', 'from_name' ) || ! empty( $disabled_name ) ? 'disabled' : ''; ?> - id="wp-mail-smtp-setting-from_name" spellcheck="false" - placeholder="get_processor()->get_default_name() ); ?>"> - - -

- -

- -
- -
- -
- get( 'mail', 'from_name_force' ) ); ?> - is_const_defined( 'mail', 'from_name_force' ) || ! empty( $disabled_name ) ? 'disabled' : ''; ?> - id="wp-mail-smtp-setting-from_name_force"> - - - - -

- -

- -

- -

- -
-
-
- - -
-
- -
-
- get( 'mail', 'return_path' ) ); ?> - is_const_defined( 'mail', 'return_path' ) ? 'disabled' : ''; ?> - id="wp-mail-smtp-setting-return_path"> - - - -

-
- -

-
-
- - -
-
- -
-
-
- - get_providers()->get_options_all() as $provider ) : ?> - -
- -
- <?php echo esc_attr( $provider->get_title() ); ?> -
- -
- is_disabled() ) : ?> - - - get_slug(), $mailer ); ?> - is_const_defined( 'mail', 'mailer' ) || $provider->is_disabled() ? 'disabled' : ''; ?> - /> - - -
-
- - -
- - -
-

- - - - -

-
-
-
- - -
- get_providers()->get_options_all() as $provider ) : ?> - get_description(); ?> -
- - -
-
- is_disabled() ) : ?> - display_options(); ?> - -

get_title(); ?>

- get_notice( 'educational' ); - $is_dismissed = (bool) get_user_meta( get_current_user_id(), "wp_mail_smtp_notice_educational_for_{$provider->get_slug()}_dismissed", true ); - if ( ! empty( $provider_edu_notice ) && ! $is_dismissed ) : - ?> -

- - - - - -

- - - -

- - -
-
- - display_options(); ?> -
- - - -
- - - - display_save_btn(); ?> - -
- - display_wpforms(); - $this->display_pro_banner(); - } - - /** - * License key text for a Lite version of the plugin. - * - * @since 1.5.0 - * - * @param Options $options - */ - public static function display_license_key_field_content( $options ) { - ?> - -

🙂

- -

- upgrading to PRO.', 'wp-mail-smtp' ), - array( - 'a' => array( - 'href' => array(), - 'class' => array(), - 'target' => array(), - 'rel' => array(), - ), - 'strong' => array(), - ) - ), - esc_url( wp_mail_smtp()->get_upgrade_link( 'general-license-key' ) ) - ); - ?> -

- -

- $50 off, automatically applied at checkout!', 'wp-mail-smtp' ), - array( - 'strong' => array(), - 'br' => array(), - ) - ); - ?> -

- - is_pro() ) { - return; - } - - $is_dismissed = get_user_meta( get_current_user_id(), 'wp_mail_smtp_pro_banner_dismissed', true ); - - // Do not display if user dismissed. - if ( (bool) $is_dismissed === true ) { - return; - } - ?> - -
- - - - - -

- -

- -

- -

- -

- -

- -

- -
-
    -
  • -
  • -
  • -
  • -
  • -
  • -
-
    -
  • -
  • -
  • -
  • -
  • -
  • -
-
- -

- Get WP Mail SMTP Pro Today and Unlock all the Powerful Features »', 'wp-mail-smtp' ), - array( - 'a' => array( - 'href' => array(), - 'target' => array(), - 'rel' => array(), - ), - 'strong' => array(), - ) - ), - esc_url( wp_mail_smtp()->get_upgrade_link( 'general-cta' ) ) - ); - ?> -

- -

- Bonus: WP Mail SMTP users get $50 off regular price, automatically applied at checkout.', 'wp-mail-smtp' ), - array( - 'strong' => array(), - 'span' => array( - 'class' => array(), - ), - ) - ); - ?> -

- -
- - check_admin_referer(); - - $options = new Options(); - $old_opt = $options->get_all(); - - // When checkbox is unchecked - it's not submitted at all, so we need to define its default false value. - if ( ! isset( $data['mail']['from_email_force'] ) ) { - $data['mail']['from_email_force'] = false; - } - if ( ! isset( $data['mail']['from_name_force'] ) ) { - $data['mail']['from_name_force'] = false; - } - if ( ! isset( $data['mail']['return_path'] ) ) { - $data['mail']['return_path'] = false; - } - if ( ! isset( $data['smtp']['autotls'] ) ) { - $data['smtp']['autotls'] = false; - } - if ( ! isset( $data['smtp']['auth'] ) ) { - $data['smtp']['auth'] = false; - } - - // When switching mailers. - if ( - ! empty( $old_opt['mail']['mailer'] ) && - ! empty( $data['mail']['mailer'] ) && - $old_opt['mail']['mailer'] !== $data['mail']['mailer'] - ) { - - // Remove all debug messages when switching mailers. - Debug::clear(); - - // Save correct from email address if Zoho or Outlook mailers are already configured. - if ( - in_array( $data['mail']['mailer'], [ 'zoho', 'outlook' ], true ) && - ! empty( $old_opt[ $data['mail']['mailer'] ]['user_details']['email'] ) - ) { - $data['mail']['from_email'] = $old_opt[ $data['mail']['mailer'] ]['user_details']['email']; - } - } - - $to_redirect = false; - - // Old and new Gmail client id/secret values are different - we need to invalidate tokens and scroll to Auth button. - if ( - $options->get( 'mail', 'mailer' ) === 'gmail' && - ! empty( $data['gmail']['client_id'] ) && - ! empty( $data['gmail']['client_secret'] ) && - ( - $options->get( 'gmail', 'client_id' ) !== $data['gmail']['client_id'] || - $options->get( 'gmail', 'client_secret' ) !== $data['gmail']['client_secret'] - ) - ) { - unset( $old_opt['gmail'] ); - - if ( - ! empty( $data['gmail']['client_id'] ) && - ! empty( $data['gmail']['client_secret'] ) - ) { - $to_redirect = true; - } - } - - $data = apply_filters( 'wp_mail_smtp_settings_tab_process_post', $data ); - - // All the sanitization is done in Options class. - $options->set( $data, false, false ); - - if ( $to_redirect ) { - wp_redirect( $_POST['_wp_http_referer'] . '#wp-mail-smtp-setting-row-gmail-authorize' ); - exit; - } - - WP::add_admin_notice( - esc_html__( 'Settings were successfully saved.', 'wp-mail-smtp' ), - WP::ADMIN_NOTICE_SUCCESS - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/TestTab.php b/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/TestTab.php deleted file mode 100644 index 1d467c7..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/TestTab.php +++ /dev/null @@ -1,1205 +0,0 @@ -get_label(); - } - - /** - * @inheritdoc - */ - public function display() { - ?> - -
- wp_nonce_field(); ?> - - -
-
-

-
-
- - -
-
- -
-
- -

- -

-
-
- - -
-
- -
-
- -

- -

-
-
- -

- get_providers()->get_mailer( - Options::init()->get( 'mail', 'mailer' ), - wp_mail_smtp()->get_processor()->get_phpmailer() - ); - - if ( ! $mailer || ! $mailer->is_mailer_complete() ) { - $btn = 'wp-mail-smtp-btn-red'; - $disabled = 'disabled'; - - $help_text = '' . esc_html__( 'You cannot send an email. Mailer is not properly configured. Please check your settings.', 'wp-mail-smtp' ) . ''; - } - ?> - - -

-
- - display_debug_details(); - } - - /** - * @inheritdoc - */ - public function process_post( $data ) { - - $this->check_admin_referer(); - - if ( ! empty( $data['test']['email'] ) ) { - $data['test']['email'] = filter_var( $data['test']['email'], FILTER_VALIDATE_EMAIL ); - } - - $is_html = true; - if ( empty( $data['test']['html'] ) ) { - $is_html = false; - } - - if ( empty( $data['test']['email'] ) ) { - WP::add_admin_notice( - esc_html__( 'Test failed. Please use a valid email address and try to resend the test email.', 'wp-mail-smtp' ), - WP::ADMIN_NOTICE_WARNING - ); - return; - } - - $phpmailer = wp_mail_smtp()->get_processor()->get_phpmailer(); - - // Set SMTPDebug level, default is 3 (commands + data + connection status). - $phpmailer->SMTPDebug = apply_filters( 'wp_mail_smtp_admin_test_email_smtp_debug', 3 ); - - /* translators: %s - email address a test email will be sent to. */ - $subject = 'WP Mail SMTP: ' . sprintf( esc_html__( 'Test email to %s', 'wp-mail-smtp' ), $data['test']['email'] ); - - if ( $is_html ) { - add_filter( 'wp_mail_content_type', array( __CLASS__, 'set_test_html_content_type' ) ); - - /* translators: %s - email address a test email will be sent to. */ - $subject = 'WP Mail SMTP: HTML ' . sprintf( esc_html__( 'Test email to %s', 'wp-mail-smtp' ), $data['test']['email'] ); - } - - // Start output buffering to grab smtp debugging output. - ob_start(); - - // Send the test mail. - $result = wp_mail( - $data['test']['email'], - $subject, - $this->get_email_message( $is_html ), - array( - 'X-Mailer-Type:WPMailSMTP/Admin/Test', - ) - ); - - $smtp_debug = ob_get_clean(); - - if ( $is_html ) { - remove_filter( 'wp_mail_content_type', array( __NAMESPACE__, 'set_test_html_content_type' ) ); - } - - /* - * Notify a user about the results. - */ - if ( $result ) { - $result_message = esc_html__( 'Test plain text email was sent successfully!', 'wp-mail-smtp' ); - if ( $is_html ) { - $result_message = sprintf( - /* translators: %s - "HTML" in bold. */ - esc_html__( 'Test %s email was sent successfully! Please check your inbox to make sure it is delivered.', 'wp-mail-smtp' ), - 'HTML' - ); - } - WP::add_admin_notice( - $result_message, - WP::ADMIN_NOTICE_SUCCESS - ); - } else { - // Grab the smtp debugging output. - $this->debug['smtp_debug'] = $smtp_debug; - $this->debug['smtp_error'] = wp_strip_all_tags( $phpmailer->ErrorInfo ); - $this->debug['error_log'] = $this->get_debug_messages( $phpmailer, $smtp_debug ); - } - } - - /** - * Get the email message that should be sent. - * - * @since 1.4.0 - * - * @param bool $is_html Whether to send an HTML email or plain text. - * - * @return string - */ - private function get_email_message( $is_html = true ) { - - // Default plain text version of the email. - $message = $this->get_email_message_text(); - - if ( $is_html ) { - $message = $this->get_email_message_html(); - } - - return $message; - } - - /** - * Get the HTML prepared message for test email. - * - * @since 1.4.0 - * - * @return string - */ - private function get_email_message_html() { - - ob_start(); - ?> - - - - - - - WP Mail SMTP Test Email - - - - - - - -
- - - - - - - - - - - - is_pro() ) : ?> - - - - -
- WP Mail SMTP Logo -
-
-

- Success -

-

- Congrats, test email was sent successfully! -

-

- Thank you for trying out WP Mail SMTP. We're on a mission to make sure that your emails actually get delivered. -

- is_pro() ) : ?> -

- If you find this free plugin useful, please consider giving WP Mail SMTP Pro a try! -

- -

- Signature -

-

- Jared Atchison
Lead Developer, WP Mail SMTP -

-
-
-
- Unlock More Features with WP Mail SMTP Pro -
-

- Email Logs and Notification Controls
- Amazon SES / Outlook.com / Office 365 integrations
- Access to our world class support team -

-

- WP Mail SMTP users get $50 off, automatically applied at checkout -

-
- - - - -
- - - - -
- - Upgrade to WP Mail SMTP Pro Today - -
-
-
-
-
- - - - is_pro() ) { - // WP Mail SMTP Pro paid installed. - $message = -'Congrats, test email was sent successfully! - -Thank you for trying out WP Mail SMTP. We are on a mission to make sure your emails actually get delivered. - -- Jared Atchison -Lead Developer, WP Mail SMTP'; - } else { - // Free WP Mail SMTP is installed. - $message = -'Congrats, test email was sent successfully! - -Thank you for trying out WP Mail SMTP. We are on a mission to make sure your emails actually get delivered. - -If you find this free plugin useful, please consider giving WP Mail SMTP Pro a try! - -https://wpmailsmtp.com/lite-upgrade/ - -Unlock More Features with WP Mail SMTP Pro: - -+ Email Logs and Notification Controls -+ Amazon SES / Outlook.com / Office 365 integrations -+ Access to our world class support team - -- Jared Atchison -Lead Developer, WP Mail SMTP'; - } - // phpcs:enable - - return $message; - } - - /** - * Set the HTML content type for a test email. - * - * @since 1.4.0 - * - * @return string - */ - public static function set_test_html_content_type() { - - return 'text/html'; - } - - /** - * Prepare debug information, that will help users to identify the error. - * - * @since 1.0.0 - * - * @param MailCatcherInterface $phpmailer The MailCatcher object. - * @param string $smtp_debug The SMTP debug message. - * - * @return string - */ - protected function get_debug_messages( $phpmailer, $smtp_debug ) { - - $options = new Options(); - $conflicts = new Conflicts(); - - $this->debug['mailer'] = $options->get( 'mail', 'mailer' ); - - /* - * Versions Debug. - */ - - $versions_text = 'Versions:
'; - - $versions_text .= 'WordPress: ' . get_bloginfo( 'version' ) . '
'; - $versions_text .= 'WordPress MS: ' . ( is_multisite() ? 'Yes' : 'No' ) . '
'; - $versions_text .= 'PHP: ' . PHP_VERSION . '
'; - $versions_text .= 'WP Mail SMTP: ' . WPMS_PLUGIN_VER . '
'; - - /* - * Mailer Debug. - */ - - $mailer_text = 'Params:
'; - - $mailer_text .= 'Mailer: ' . $this->debug['mailer'] . '
'; - $mailer_text .= 'Constants: ' . ( $options->is_const_enabled() ? 'Yes' : 'No' ) . '
'; - if ( $conflicts->is_detected() ) { - $mailer_text .= 'Conflicts: ' . esc_html( $conflicts->get_conflict_name() ) . '
'; - } - - // Display different debug info based on the mailer. - $mailer = wp_mail_smtp()->get_providers()->get_mailer( $this->debug['mailer'], $phpmailer ); - - if ( $mailer ) { - $mailer_text .= $mailer->get_debug_info(); - } - - $phpmailer_error = $phpmailer->ErrorInfo; // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase - - // Append any PHPMailer errors to the mailer debug (except SMTP mailer, which has the full error output below). - if ( - ! empty( $phpmailer_error ) && - ! $options->is_mailer_smtp() - ) { - $mailer_text .= '

PHPMailer Debug:
' . - wp_strip_all_tags( $phpmailer_error ) . - '
'; - } - - /* - * General Debug. - */ - - $debug_text = implode( '
', Debug::get() ); - Debug::clear(); - if ( ! empty( $debug_text ) ) { - $debug_text = '
Debug:
' . $debug_text . '
'; - } - - /* - * SMTP Debug. - */ - - $smtp_text = ''; - if ( $options->is_mailer_smtp() ) { - $smtp_text = 'SMTP Debug:
'; - if ( ! empty( $smtp_debug ) ) { - $smtp_text .= '
' . $smtp_debug . '
'; - } else { - $smtp_text .= '[empty]'; - } - } - - $errors = apply_filters( - 'wp_mail_smtp_admin_test_get_debug_messages', - array( - $versions_text, - $mailer_text, - $debug_text, - $smtp_text, - ) - ); - - return '
' . implode( '
', array_filter( $errors ) ) . '
'; - } - - /** - * Returns debug information for detection, processing, and display. - * - * @since 1.3.0 - * - * @return array - */ - protected function get_debug_details() { - - $options = new Options(); - $smtp_host = $options->get( 'smtp', 'host' ); - $smtp_port = $options->get( 'smtp', 'port' ); - $smtp_encryption = $options->get( 'smtp', 'encryption' ); - - $details = [ - // [any] - cURL error 60/77. - [ - 'mailer' => 'any', - 'errors' => [ - [ 'cURL error 60' ], - [ 'cURL error 77' ], - ], - 'description' => [ - '' . esc_html__( 'SSL certificate issue.', 'wp-mail-smtp' ) . '', - esc_html__( 'This means your web server cannot reliably make secure connections (make requests to HTTPS sites).', 'wp-mail-smtp' ), - esc_html__( 'Typically this error is returned when web server is not configured properly.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Contact your web hosting provider and inform them your site has an issue with SSL certificates.', 'wp-mail-smtp' ), - esc_html__( 'The exact error you can provide them is in the Error log, available at the bottom of this page.', 'wp-mail-smtp' ), - esc_html__( 'Ask them to resolve the issue then try again.', 'wp-mail-smtp' ), - ], - ], - // [any] - cURL error 6/7. - [ - 'mailer' => 'any', - 'errors' => [ - [ 'cURL error 6' ], - [ 'cURL error 7' ], - ], - 'description' => [ - '' . esc_html__( 'Could not connect to host.', 'wp-mail-smtp' ) . '', - ! empty( $smtp_host ) - ? sprintf( /* translators: %s - SMTP host address. */ - esc_html__( 'This means your web server was unable to connect to %s.', 'wp-mail-smtp' ), - $smtp_host - ) - : esc_html__( 'This means your web server was unable to connect to the host server.', 'wp-mail-smtp' ), - esc_html__( 'Typically this error is returned your web server is blocking the connections or the SMTP host denying the request.', 'wp-mail-smtp' ), - ], - 'steps' => [ - sprintf( /* translators: %s - SMTP host address. */ - esc_html__( 'Contact your web hosting provider and ask them to verify your server can connect to %s. Additionally, ask them if a firewall or security policy may be preventing the connection.', 'wp-mail-smtp' ), - $smtp_host - ), - esc_html__( 'If using "Other SMTP" Mailer, triple check your SMTP settings including host address, email, and password.', 'wp-mail-smtp' ), - esc_html__( 'If using "Other SMTP" Mailer, contact your SMTP host to confirm they are accepting outside connections with the settings you have configured (address, username, port, security, etc).', 'wp-mail-smtp' ), - ], - ], - // [any] - cURL error XX (other). - [ - 'mailer' => 'any', - 'errors' => [ - [ 'cURL error' ], - ], - 'description' => [ - '' . esc_html__( 'Could not connect to your host.', 'wp-mail-smtp' ) . '', - ! empty( $smtp_host ) - ? sprintf( /* translators: %s - SMTP host address. */ - esc_html__( 'This means your web server was unable to connect to %s.', 'wp-mail-smtp' ), - $smtp_host - ) - : esc_html__( 'This means your web server was unable to connect to the host server.', 'wp-mail-smtp' ), - esc_html__( 'Typically this error is returned when web server is not configured properly.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Contact your web hosting provider and inform them you are having issues making outbound connections.', 'wp-mail-smtp' ), - esc_html__( 'The exact error you can provide them is in the Error log, available at the bottom of this page.', 'wp-mail-smtp' ), - esc_html__( 'Ask them to resolve the issue then try again.', 'wp-mail-smtp' ), - ], - ], - // [smtp] - SMTP Error: Count not authenticate. - [ - 'mailer' => 'smtp', - 'errors' => [ - [ 'SMTP Error: Could not authenticate.' ], - ], - 'description' => [ - '' . esc_html__( 'Could not authenticate your SMTP account.', 'wp-mail-smtp' ) . '', - esc_html__( 'This means we were able to connect to your SMTP host, but were not able to proceed using the email/password in the settings.', 'wp-mail-smtp' ), - esc_html__( 'Typically this error is returned when the email or password is not correct or is not what the SMTP host is expecting.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Triple check your SMTP settings including host address, email, and password. If you have recently reset your password you will need to update the settings.', 'wp-mail-smtp' ), - esc_html__( 'Contact your SMTP host to confirm you are using the correct username and password.', 'wp-mail-smtp' ), - esc_html__( 'Verify with your SMTP host that your account has permissions to send emails using outside connections.', 'wp-mail-smtp' ), - ], - ], - // [smtp] - Sending bulk email, hitting rate limit. - [ - 'mailer' => 'smtp', - 'errors' => [ - [ 'We do not authorize the use of this system to transport unsolicited' ], - ], - 'description' => [ - '' . esc_html__( 'Error due to unsolicited and/or bulk e-mail.', 'wp-mail-smtp' ) . '', - esc_html__( 'This means the connection to your SMTP host was made successfully, but the host rejected the email.', 'wp-mail-smtp' ), - esc_html__( 'Typically this error is returned when you are sending too many e-mails or e-mails that have been identified as spam.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Check the emails that are sending are sending individually. Example: email is not sending to 30 recipients. You can install any WordPress e-mail logging plugin to do that.', 'wp-mail-smtp' ), - esc_html__( 'Contact your SMTP host to ask about sending/rate limits.', 'wp-mail-smtp' ), - esc_html__( 'Verify with them your SMTP account is in good standing and your account has not been flagged.', 'wp-mail-smtp' ), - ], - ], - // [smtp] - Unauthenticated senders not allowed. - [ - 'mailer' => 'smtp', - 'errors' => [ - [ 'Unauthenticated senders not allowed' ], - ], - 'description' => [ - '' . esc_html__( 'Unauthenticated senders are not allowed.', 'wp-mail-smtp' ) . '', - esc_html__( 'This means the connection to your SMTP host was made successfully, but you should enable Authentication and provide correct Username and Password.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Go to WP Mail SMTP plugin Settings page.', 'wp-mail-smtp' ), - esc_html__( 'Enable Authentication', 'wp-mail-smtp' ), - esc_html__( 'Enter correct SMTP Username (usually this is an email address) and Password in the appropriate fields.', 'wp-mail-smtp' ), - ], - ], - // [smtp] - certificate verify failed. - // Has to be defined before "SMTP connect() failed" error, since this is a more specific error, - // which contains the "SMTP connect() failed" error message as well. - [ - 'mailer' => 'smtp', - 'errors' => [ - [ 'certificate verify failed' ], - ], - 'description' => [ - '' . esc_html__( 'Misconfigured server certificate.', 'wp-mail-smtp' ) . '', - esc_html__( 'This means OpenSSL on your server isn\'t able to verify the host certificate.', 'wp-mail-smtp' ), - esc_html__( 'There are a few reasons why this is happening. It could be that the host certificate is misconfigured, or this server\'s OpenSSL is using an outdated CA bundle.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Verify that the host\'s SSL certificate is valid.', 'wp-mail-smtp' ), - sprintf( - wp_kses( /* translators: %s - URL to the PHP openssl manual */ - __( 'Contact your hosting support, show them the "full Error Log for debugging" below and share this link with them.', 'wp-mail-smtp' ), - [ - 'a' => [ - 'href' => [], - 'target' => [], - 'rel' => [], - ], - ] - ), - 'https://www.php.net/manual/en/migration56.openssl.php' - ), - ], - ], - // [smtp] - SMTP connect() failed. - [ - 'mailer' => 'smtp', - 'errors' => [ - [ 'SMTP connect() failed' ], - ], - 'description' => [ - '' . esc_html__( 'Could not connect to the SMTP host.', 'wp-mail-smtp' ) . '', - ! empty( $smtp_host ) - ? sprintf( /* translators: %s - SMTP host address. */ - esc_html__( 'This means your web server was unable to connect to %s.', 'wp-mail-smtp' ), - $smtp_host - ) - : esc_html__( 'This means your web server was unable to connect to the host server.', 'wp-mail-smtp' ), - esc_html__( 'Typically this error is returned for one of the following reasons:', 'wp-mail-smtp' ), - '-' . esc_html__( 'SMTP settings are incorrect (wrong port, security setting, incorrect host).', 'wp-mail-smtp' ) . '
' . - '-' . esc_html__( 'Your web server is blocking the connection.', 'wp-mail-smtp' ) . '
' . - '-' . esc_html__( 'Your SMTP host is rejecting the connection.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Triple check your SMTP settings including host address, email, and password, port, and security.', 'wp-mail-smtp' ), - sprintf( - wp_kses( /* translators: %1$s - SMTP host address, %2$s - SMTP port, %3$s - SMTP encryption. */ - __( 'Contact your web hosting provider and ask them to verify your server can connect to %1$s on port %2$s using %3$s encryption. Additionally, ask them if a firewall or security policy may be preventing the connection - many shared hosts block certain ports.
Note: this is the most common cause of this issue.', 'wp-mail-smtp' ), - [ - 'a' => [ - 'href' => [], - 'rel' => [], - 'target' => [], - ], - 'strong' => [], - 'br' => [], - ] - ), - $smtp_host, - $smtp_port, - 'none' === $smtp_encryption ? esc_html__( 'no', 'wp-mail-smtp' ) : $smtp_encryption - ), - esc_html__( 'Contact your SMTP host to confirm you are using the correct username and password.', 'wp-mail-smtp' ), - esc_html__( 'Verify with your SMTP host that your account has permissions to send emails using outside connections.', 'wp-mail-smtp' ), - ], - ], - // [mailgun] - Please activate your Mailgun account. - [ - 'mailer' => 'mailgun', - 'errors' => [ - [ 'Please activate your Mailgun account' ], - ], - 'description' => [ - '' . esc_html__( 'Mailgun failed.', 'wp-mail-smtp' ) . '', - esc_html__( 'It seems that you forgot to activate your Mailgun account.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Check your inbox you used to create a Mailgun account. Click the activation link in an email from Mailgun.', 'wp-mail-smtp' ), - esc_html__( 'If you do not see activation email, go to your Mailgun control panel and resend the activation email.', 'wp-mail-smtp' ), - ], - ], - // [mailgun] - Forbidden. - [ - 'mailer' => 'mailgun', - 'errors' => [ - [ 'Forbidden' ], - ], - 'description' => [ - '' . esc_html__( 'Mailgun failed.', 'wp-mail-smtp' ) . '', - esc_html__( 'Typically this error is because there is an issue with your Mailgun settings, in many cases the API key.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Verify your API key is correct.', 'wp-mail-smtp' ), - esc_html__( 'Go to your Mailgun account and view your API key.', 'wp-mail-smtp' ), - esc_html__( 'Note that the API key includes the "key" prefix, so make sure that it is in the WP Mail SMTP Mailgun API setting.', 'wp-mail-smtp' ), - ], - ], - // [mailgun] - Free accounts are for test purposes only. - [ - 'mailer' => 'mailgun', - 'errors' => [ - [ 'Free accounts are for test purposes only' ], - ], - 'description' => [ - '' . esc_html__( 'Mailgun failed.', 'wp-mail-smtp' ) . '', - esc_html__( 'Your Mailgun account does not have access to send emails.', 'wp-mail-smtp' ), - esc_html__( 'Typically this error is because you have not set up and/or complete domain name verification for your Mailgun account.', 'wp-mail-smtp' ), - ], - 'steps' => [ - sprintf( - wp_kses( /* translators: %s - Mailgun documentation URL. */ - __( 'Go to our how-to guide for setting up Mailgun with WP Mail SMTP.', 'wp-mail-smtp' ), - [ - 'a' => [ - 'href' => [], - 'rel' => [], - 'target' => [], - ], - ] - ), - 'https://wpmailsmtp.com/docs/how-to-set-up-the-mailgun-mailer-in-wp-mail-smtp/' - ), - esc_html__( 'Complete the steps in section "2. Verify Your Domain".', 'wp-mail-smtp' ), - ], - ], - // [gmail] - 401: Login Required. - [ - 'mailer' => 'gmail', - 'errors' => [ - [ '401', 'Login Required' ], - ], - 'description' => [ - '' . esc_html__( 'Google API Error.', 'wp-mail-smtp' ) . '', - esc_html__( 'You have not properly configured Gmail mailer.', 'wp-mail-smtp' ), - esc_html__( 'Make sure that you have clicked the "Allow plugin to send emails using your Google account" button under Gmail settings.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Go to plugin Settings page and click the "Allow plugin to send emails using your Google account" button.', 'wp-mail-smtp' ), - esc_html__( 'After the click you should be redirected to a Gmail authorization screen, where you will be asked a permission to send emails on your behalf.', 'wp-mail-smtp' ), - esc_html__( 'Please click "Agree", if you see that button. If not - you will need to enable less secure apps first:', 'wp-mail-smtp' ) - . '
    ' - . '
  • ' . - sprintf( - wp_kses( /* translators: %s - Google support article URL. */ - __( 'if you are using regular Gmail account, please read this article to proceed.', 'wp-mail-smtp' ), - [ - 'a' => [ - 'href' => [], - 'target' => [], - 'rel' => [], - ], - ] - ), - 'https://support.google.com/accounts/answer/6010255?hl=en' - ) - . '
  • ' - . '
  • ' . - sprintf( - wp_kses( /* translators: %s - Google support article URL. */ - __( 'if you are using G Suite, please read this article to proceed.', 'wp-mail-smtp' ), - [ - 'a' => [ - 'href' => [], - 'target' => [], - 'rel' => [], - ], - ] - ), - 'https://support.google.com/cloudidentity/answer/6260879?hl=en' - ) - . '
  • ' - . '
', - ], - ], - // [gmail] - 400: Recipient address required. - [ - 'mailer' => 'gmail', - 'errors' => [ - [ '400', 'Recipient address required' ], - ], - 'description' => [ - '' . esc_html__( 'Google API Error.', 'wp-mail-smtp' ) . '', - esc_html__( 'Typically this error is because address the email was sent to is invalid or was empty.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Check the "Send To" email address used and confirm it is a valid email and was not empty.', 'wp-mail-smtp' ), - sprintf( /* translators: 1 - correct email address example. 2 - incorrect email address example. */ - esc_html__( 'It should be something like this: %1$s. These are incorrect values: %2$s.', 'wp-mail-smtp' ), - 'info@example.com', - 'info@localhost, info@192.168.1.1' - ), - esc_html__( 'Make sure that the generated email has a TO header, useful when you are responsible for email creation.', 'wp-mail-smtp' ), - ], - ], - // [gmail] - Token has been expired or revoked. - [ - 'mailer' => 'gmail', - 'errors' => [ - [ 'invalid_grant', 'Token has been expired or revoked' ], - ], - 'description' => [ - '' . esc_html__( 'Google API Error.', 'wp-mail-smtp' ) . '', - esc_html__( 'Unfortunately, this error can be due to many different reasons.', 'wp-mail-smtp' ), - sprintf( - wp_kses( /* translators: %s - Blog article URL. */ - __( 'Please read this article to learn more about what can cause this error and follow the steps below.', 'wp-mail-smtp' ), - [ - 'a' => [ - 'href' => [], - 'target' => [], - 'rel' => [], - ], - ] - ), - 'https://blog.timekit.io/google-oauth-invalid-grant-nightmare-and-how-to-fix-it-9f4efaf1da35' - ), - ], - 'steps' => [ - esc_html__( 'Go to WP Mail SMTP plugin settings page. Click the “Remove Connection” button.', 'wp-mail-smtp' ), - esc_html__( 'Then click the “Allow plugin to send emails using your Google account” button and re-enable access.', 'wp-mail-smtp' ), - ], - ], - // [gmail] - Code was already redeemed. - [ - 'mailer' => 'gmail', - 'errors' => [ - [ 'invalid_grant', 'Code was already redeemed' ], - ], - 'description' => [ - '' . esc_html__( 'Google API Error.', 'wp-mail-smtp' ) . '', - esc_html__( 'Authentication code that Google returned to you has already been used on your previous auth attempt.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Make sure that you are not trying to manually clean up the plugin options to retry the "Allow..." step.', 'wp-mail-smtp' ), - esc_html__( 'Reinstall the plugin with clean plugin data turned on on Misc page. This will remove all the plugin options and you will be safe to retry.', 'wp-mail-smtp' ), - esc_html__( 'Make sure there is no aggressive caching on site admin area pages or try to clean cache between attempts.', 'wp-mail-smtp' ), - ], - ], - // [gmail] - 400: Mail service not enabled. - [ - 'mailer' => 'gmail', - 'errors' => [ - [ '400', 'Mail service not enabled' ], - ], - 'description' => [ - '' . esc_html__( 'Google API Error.', 'wp-mail-smtp' ) . '', - esc_html__( 'There are various reasons for that, please review the steps below.', 'wp-mail-smtp' ), - ], - 'steps' => [ - sprintf( - wp_kses( /* translators: %s - Google G Suite Admin area URL. */ - __( 'Make sure that your G Suite trial period has not expired. You can check the status here.', 'wp-mail-smtp' ), - [ - 'a' => [ - 'href' => [], - 'rel' => [], - 'target' => [], - ], - ] - ), - 'https://admin.google.com' - ), - sprintf( - wp_kses( /* translators: %s - Google G Suite Admin area URL. */ - __( 'Make sure that Gmail app in your G Suite is actually enabled. You can check that in Apps list in G Suite Admin area.', 'wp-mail-smtp' ), - [ - 'a' => [ - 'href' => [], - 'rel' => [], - 'target' => [], - ], - ] - ), - 'https://admin.google.com' - ), - sprintf( - wp_kses( /* translators: %s - Google Developers Console URL. */ - __( 'Make sure that you have Gmail API enabled, and you can do that here.', 'wp-mail-smtp' ), - [ - 'a' => [ - 'href' => [], - 'rel' => [], - 'target' => [], - ], - ] - ), - 'https://console.developers.google.com/' - ), - ], - ], - // [gmail] - 403: Project X is not found and cannot be used for API calls. - [ - 'mailer' => 'gmail', - 'errors' => [ - [ '403', 'is not found and cannot be used for API calls' ], - ], - 'description' => [ - '' . esc_html__( 'Google API Error.', 'wp-mail-smtp' ) . '', - ], - 'steps' => [ - esc_html__( 'Make sure that the used Client ID/Secret correspond to a proper project that has Gmail API enabled.', 'wp-mail-smtp' ), - sprintf( - wp_kses( /* translators: %s - Gmail documentation URL. */ - esc_html__( 'Please follow our Gmail tutorial to be sure that all the correct project and data is applied.', 'wp-mail-smtp' ), - [ - 'a' => [ - 'href' => [], - 'rel' => [], - 'target' => [], - ], - ] - ), - 'https://wpmailsmtp.com/docs/how-to-set-up-the-gmail-mailer-in-wp-mail-smtp/' - ), - ], - ], - // [gmail] - The OAuth client was disabled. - [ - 'mailer' => 'gmail', - 'errors' => [ - [ 'disabled_client', 'The OAuth client was disabled' ], - ], - 'description' => [ - '' . esc_html__( 'Google API Error.', 'wp-mail-smtp' ) . '', - esc_html__( 'You may have added a new API to a project', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Make sure that the used Client ID/Secret correspond to a proper project that has Gmail API enabled.', 'wp-mail-smtp' ), - esc_html__( 'Try to use a separate project for your emails, so the project has only 1 Gmail API in it enabled. You will need to remove the old project and create a new one from scratch.', 'wp-mail-smtp' ), - ], - ], - // [SMTP.com] - The "channel - not found" issue. - [ - 'mailer' => 'smtpcom', - 'errors' => [ - [ 'channel - not found' ], - ], - 'description' => [ - '' . esc_html__( 'SMTP.com API Error.', 'wp-mail-smtp' ) . '', - esc_html__( 'Your Sender Name option is incorrect.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Please make sure you entered an accurate Sender Name in WP Mail SMTP plugin settings.', 'wp-mail-smtp' ), - ], - ], - // [gmail] - GuzzleHttp requires cURL, the allow_url_fopen ini setting, or a custom HTTP handler. - [ - 'mailer' => 'gmail', - 'errors' => [ - [ 'GuzzleHttp requires cURL, the allow_url_fopen ini setting, or a custom HTTP handler' ], - ], - 'description' => [ - '' . esc_html__( 'GuzzleHttp requirements.', 'wp-mail-smtp' ) . '', - esc_html__( 'GuzzleHttp requires cURL, the allow_url_fopen ini setting, or a custom HTTP handler.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Edit your php.ini file on your hosting server.', 'wp-mail-smtp' ), - esc_html__( '(Recommended) Enable PHP extension: cURL, by adding "extension=curl" to the php.ini file (without the quotation marks) OR', 'wp-mail-smtp' ), - esc_html__( '(If cURL can\'t be enabled on your hosting server) Enable PHP setting: allow_url_fopen, by adding "allow_url_fopen = On" to the php.ini file (without the quotation marks)', 'wp-mail-smtp' ), - esc_html__( 'If you don\'t know how to do the above we strongly suggest contacting your hosting support and provide them the "full Error Log for debugging" below and these steps. They should be able to fix this issue for you.', 'wp-mail-smtp' ), - ], - ], - ]; - - /** - * [any] - PHP 7.4.x and PCRE library issues. - * - * @see https://wordpress.org/support/topic/cant-send-emails-using-php-7-4/ - */ - if ( - version_compare( phpversion(), '7.4', '>=' ) && - defined( 'PCRE_VERSION' ) && - version_compare( PCRE_VERSION, '10.0', '>' ) && - version_compare( PCRE_VERSION, '10.32', '<=' ) - ) { - $details[] = [ - 'mailer' => 'any', - 'errors' => [ - [ 'Invalid address: (setFrom)' ], - ], - 'description' => [ - '' . esc_html__( 'PCRE library issue', 'wp-mail-smtp' ) . '', - esc_html__( 'It looks like your server is running PHP version 7.4.x with an outdated PCRE library (libpcre2) that has a known issue with email address validation.', 'wp-mail-smtp' ), - esc_html__( 'There is a known issue with PHP version 7.4.x, when using libpcre2 library version lower than 10.33.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Contact your web hosting provider and inform them you are having issues with libpcre2 library on PHP 7.4.', 'wp-mail-smtp' ), - esc_html__( 'They should be able to resolve this issue for you.', 'wp-mail-smtp' ), - esc_html__( 'For a quick fix, until your web hosting resolves this, you can downgrade to PHP version 7.3 on your server.', 'wp-mail-smtp' ), - ], - ]; - } - - // Error detection logic. - foreach ( $details as $data ) { - - // Check for appropriate mailer. - if ( 'any' !== $data['mailer'] && $this->debug['mailer'] !== $data['mailer'] ) { - continue; - } - - $match = false; - - // Attempt to detect errors. - foreach ( $data['errors'] as $error_group ) { - foreach ( $error_group as $error_code => $error_message ) { - $match = ( false !== strpos( $this->debug['error_log'], $error_message ) || false !== strpos( $this->debug['error_log'], $error_message ) ); - if ( ! $match ) { - break; - } - } - if ( $match ) { - break; - } - } - - if ( $match ) { - return $data; - } - } - - // Return defaults. - return [ - 'description' => [ - '' . esc_html__( 'An issue was detected.', 'wp-mail-smtp' ) . '', - esc_html__( 'This means your test email was unable to be sent.', 'wp-mail-smtp' ), - esc_html__( 'Typically this error is returned for one of the following reasons:', 'wp-mail-smtp' ), - '- ' . esc_html__( 'Plugin settings are incorrect (wrong SMTP settings, invalid Mailer configuration, etc).', 'wp-mail-smtp' ) . '
' . - '- ' . esc_html__( 'Your web server is blocking the connection.', 'wp-mail-smtp' ) . '
' . - '- ' . esc_html__( 'Your host is rejecting the connection.', 'wp-mail-smtp' ), - ], - 'steps' => [ - esc_html__( 'Triple check the plugin settings, consider reconfiguring to make sure everything is correct (eg bad copy and paste).', 'wp-mail-smtp' ), - wp_kses( - __( 'Contact your web hosting provider and ask them to verify your server can make outside connections. Additionally, ask them if a firewall or security policy may be preventing the connection - many shared hosts block certain ports.
Note: this is the most common cause of this issue.', 'wp-mail-smtp' ), - [ - 'strong' => [], - 'br' => [], - ] - ), - esc_html__( 'Try using a different mailer.', 'wp-mail-smtp' ), - ], - ]; - } - - /** - * Displays all the various error and debug details. - * - * @since 1.3.0 - */ - protected function display_debug_details() { - - if ( empty( $this->debug ) ) { - return; - } - - $debug = $this->get_debug_details(); - ?> -
-

-
- -
- ' . $description . '

'; - } - ?> - -

- -
    - ' . $step . ''; - } - ?> -
- -

- - is_pro() ) : ?> - -

- submit a support ticket.', 'wp-mail-smtp' ), - array( - 'a' => array( - 'href' => array(), - 'rel' => array(), - 'target' => array(), - ), - ) - ), - 'https://wpmailsmtp.com/account/support/' - ); - ?> -

- - - -

- -

- -

- upgrade to WP Mail SMTP Pro. Along with getting expert support, you will also get Notification controls, Email Logging, and integrations for Amazon SES, Office 365, and Outlook.com.', 'wp-mail-smtp' ), - array( - 'a' => array( - 'href' => array(), - 'target' => array(), - 'rel' => array(), - ), - ) - ), - esc_url( wp_mail_smtp()->get_upgrade_link( 'email-test-fail' ) ) - ) - ?> -

- -

- -

- -

- $50 off regular pricing, automatically applied at checkout!', 'wp-mail-smtp' ), - array( - 'span' => array( - 'class' => array(), - ), - ) - ); - ?> -

- -

- limited support on the WordPress.org support forums. You can create a support thread there, but please understand that free support is not guaranteed and is limited to simple issues. If you have an urgent or complex issue, then please consider upgrading to WP Mail SMTP Pro to access our priority support ticket system.', 'wp-mail-smtp' ), - array( - 'a' => array( - 'href' => array(), - 'rel' => array(), - 'target' => array(), - ), - ) - ), - 'https://wordpress.org/support/topic/wp-mail-smtp-support-policy/', - 'https://wordpress.org/support/plugin/wp-mail-smtp/', - esc_url( wp_mail_smtp()->get_upgrade_link( 'email-test-fail' ) ) - ); - ?> -

- - - -

- - - - -

- -
- debug['error_log']; ?> -
- -

- -

-
- '', // Please always pass this. - 'destination' => '', // And this - 'clear_destination' => false, - 'abort_if_destination_exists' => true, // Abort if the Destination directory exists, Pass clear_destination as false please - 'clear_working' => true, - 'is_multi' => false, - 'hook_extra' => array(), // Pass any extra $hook_extra args here, this will be passed to any hooked filters. - ); - - $options = wp_parse_args( $options, $defaults ); - - /** - * Filters the package options before running an update. - * - * See also {@see 'upgrader_process_complete'}. - * - * @since 4.3.0 - * - * @param array $options { - * Options used by the upgrader. - * - * @type string $package Package for update. - * @type string $destination Update location. - * @type bool $clear_destination Clear the destination resource. - * @type bool $clear_working Clear the working resource. - * @type bool $abort_if_destination_exists Abort if the Destination directory exists. - * @type bool $is_multi Whether the upgrader is running multiple times. - * @type array $hook_extra { - * Extra hook arguments. - * - * @type string $action Type of action. Default 'update'. - * @type string $type Type of update process. Accepts 'plugin', 'theme', or 'core'. - * @type bool $bulk Whether the update process is a bulk update. Default true. - * @type string $plugin Path to the plugin file relative to the plugins directory. - * @type string $theme The stylesheet or template name of the theme. - * @type string $language_update_type The language pack update type. Accepts 'plugin', 'theme', - * or 'core'. - * @type object $language_update The language pack update offer. - * } - * } - */ - $options = apply_filters( 'upgrader_package_options', $options ); - - if ( ! $options['is_multi'] ) { // call $this->header separately if running multiple times - $this->skin->header(); - } - - // Connect to the Filesystem first. - $res = $this->fs_connect( array( WP_CONTENT_DIR, $options['destination'] ) ); - // Mainly for non-connected filesystem. - if ( ! $res ) { - if ( ! $options['is_multi'] ) { - $this->skin->footer(); - } - return false; - } - - $this->skin->before(); - - if ( is_wp_error( $res ) ) { - $this->skin->error( $res ); - $this->skin->after(); - if ( ! $options['is_multi'] ) { - $this->skin->footer(); - } - return $res; - } - - /* - * Download the package (Note, This just returns the filename - * of the file if the package is a local file) - */ - $download = $this->download_package( $options['package'], true ); - - // Allow for signature soft-fail. - // WARNING: This may be removed in the future. - if ( is_wp_error( $download ) && $download->get_error_data( 'softfail-filename' ) ) { - - // Don't output the 'no signature could be found' failure message for now. - if ( 'signature_verification_no_signature' != $download->get_error_code() || WP_DEBUG ) { - // Outout the failure error as a normal feedback, and not as an error: - //$this->skin->feedback( $download->get_error_message() ); - - // Report this failure back to WordPress.org for debugging purposes. - wp_version_check( - array( - 'signature_failure_code' => $download->get_error_code(), - 'signature_failure_data' => $download->get_error_data(), - ) - ); - } - - // Pretend this error didn't happen. - $download = $download->get_error_data( 'softfail-filename' ); - } - - if ( is_wp_error( $download ) ) { - $this->skin->error( $download ); - $this->skin->after(); - if ( ! $options['is_multi'] ) { - $this->skin->footer(); - } - return $download; - } - - $delete_package = ( $download != $options['package'] ); // Do not delete a "local" file - - // Unzips the file into a temporary directory. - $working_dir = $this->unpack_package( $download, $delete_package ); - if ( is_wp_error( $working_dir ) ) { - $this->skin->error( $working_dir ); - $this->skin->after(); - if ( ! $options['is_multi'] ) { - $this->skin->footer(); - } - return $working_dir; - } - - // With the given options, this installs it to the destination directory. - $result = $this->install_package( - array( - 'source' => $working_dir, - 'destination' => $options['destination'], - 'clear_destination' => $options['clear_destination'], - 'abort_if_destination_exists' => $options['abort_if_destination_exists'], - 'clear_working' => $options['clear_working'], - 'hook_extra' => $options['hook_extra'], - ) - ); - - $this->skin->set_result( $result ); - if ( is_wp_error( $result ) ) { - $this->skin->error( $result ); - //$this->skin->feedback( 'process_failed' ); - } else { - // Installation succeeded. - //$this->skin->feedback( 'process_success' ); - } - - $this->skin->after(); - - if ( ! $options['is_multi'] ) { - - /** - * Fires when the upgrader process is complete. - * - * See also {@see 'upgrader_package_options'}. - * - * @since 3.6.0 - * @since 3.7.0 Added to WP_Upgrader::run(). - * @since 4.6.0 `$translations` was added as a possible argument to `$hook_extra`. - * - * @param WP_Upgrader $this WP_Upgrader instance. In other contexts, $this, might be a - * Theme_Upgrader, Plugin_Upgrader, Core_Upgrade, or Language_Pack_Upgrader instance. - * @param array $hook_extra { - * Array of bulk item update data. - * - * @type string $action Type of action. Default 'update'. - * @type string $type Type of update process. Accepts 'plugin', 'theme', 'translation', or 'core'. - * @type bool $bulk Whether the update process is a bulk update. Default true. - * @type array $plugins Array of the basename paths of the plugins' main files. - * @type array $themes The theme slugs. - * @type array $translations { - * Array of translations update data. - * - * @type string $language The locale the translation is for. - * @type string $type Type of translation. Accepts 'plugin', 'theme', or 'core'. - * @type string $slug Text domain the translation is for. The slug of a theme/plugin or - * 'default' for core translations. - * @type string $version The version of a theme, plugin, or core. - * } - * } - */ - do_action( 'upgrader_process_complete', $this, $options['hook_extra'] ); - - $this->skin->footer(); - } - - return $result; - } - - /** - * Toggle maintenance mode for the site. - * - * Creates/deletes the maintenance file to enable/disable maintenance mode. - * - * @since 2.8.0 - * - * @global WP_Filesystem_Base $wp_filesystem Subclass - * - * @param bool $enable True to enable maintenance mode, false to disable. - */ - public function maintenance_mode( $enable = false ) { - global $wp_filesystem; - $file = $wp_filesystem->abspath() . '.maintenance'; - if ( $enable ) { - //$this->skin->feedback( 'maintenance_start' ); - // Create maintenance file to signal that we are upgrading - $maintenance_string = ''; - $wp_filesystem->delete( $file ); - $wp_filesystem->put_contents( $file, $maintenance_string, FS_CHMOD_FILE ); - } elseif ( ! $enable && $wp_filesystem->exists( $file ) ) { - //$this->skin->feedback( 'maintenance_end' ); - $wp_filesystem->delete( $file ); - } - } - - /** - * Download a package. - * - * @since 2.8.0 - * @since 5.5.0 Added the `$hook_extra` parameter. - * - * @param string $package The URI of the package. If this is the full path to an - * existing local file, it will be returned untouched. - * @param bool $check_signatures Whether to validate file signatures. Default false. - * @param array $hook_extra Extra arguments to pass to the filter hooks. Default empty array. - * - * @return string|WP_Error The full path to the downloaded package file, or a WP_Error object. - */ - public function download_package( $package, $check_signatures = false, $hook_extra = array() ) { - - /** - * Filters whether to return the package. - * - * @since 3.7.0 - * @since 5.5.0 Added the `$hook_extra` parameter. - * - * @param bool $reply Whether to bail without returning the package. - * Default false. - * @param string $package The package file name. - * @param WP_Upgrader $this The WP_Upgrader instance. - * @param array $hook_extra Extra arguments passed to hooked filters. - */ - $reply = apply_filters( 'upgrader_pre_download', false, $package, $this, $hook_extra ); - if ( false !== $reply ) { - return $reply; - } - - if ( ! preg_match( '!^(http|https|ftp)://!i', $package ) && file_exists( $package ) ) { //Local file or remote? - return $package; //must be a local file.. - } - - if ( empty( $package ) ) { - return new WP_Error( 'no_package', $this->strings['no_package'] ); - } - - //$this->skin->feedback( 'downloading_package', $package ); - - $download_file = download_url( $package, 300, $check_signatures ); - - if ( is_wp_error( $download_file ) && ! $download_file->get_error_data( 'softfail-filename' ) ) { - return new WP_Error( 'download_failed', $this->strings['download_failed'], $download_file->get_error_message() ); - } - - return $download_file; - } - - /** - * Unpack a compressed package file. - * - * @since 2.8.0 - * - * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass. - * - * @param string $package Full path to the package file. - * @param bool $delete_package Optional. Whether to delete the package file after attempting - * to unpack it. Default true. - * @return string|WP_Error The path to the unpacked contents, or a WP_Error on failure. - */ - public function unpack_package( $package, $delete_package = true ) { - global $wp_filesystem; - - //$this->skin->feedback( 'unpack_package' ); - - $upgrade_folder = $wp_filesystem->wp_content_dir() . 'upgrade/'; - - //Clean up contents of upgrade directory beforehand. - $upgrade_files = $wp_filesystem->dirlist( $upgrade_folder ); - if ( ! empty( $upgrade_files ) ) { - foreach ( $upgrade_files as $file ) { - $wp_filesystem->delete( $upgrade_folder . $file['name'], true ); - } - } - - // We need a working directory - Strip off any .tmp or .zip suffixes - $working_dir = $upgrade_folder . basename( basename( $package, '.tmp' ), '.zip' ); - - // Clean up working directory - if ( $wp_filesystem->is_dir( $working_dir ) ) { - $wp_filesystem->delete( $working_dir, true ); - } - - // Unzip package to working directory - $result = unzip_file( $package, $working_dir ); - - // Once extracted, delete the package if required. - if ( $delete_package ) { - unlink( $package ); - } - - if ( is_wp_error( $result ) ) { - $wp_filesystem->delete( $working_dir, true ); - if ( 'incompatible_archive' == $result->get_error_code() ) { - return new WP_Error( 'incompatible_archive', $this->strings['incompatible_archive'], $result->get_error_data() ); - } - return $result; - } - - return $working_dir; - } - - /** - * Install a package. - * - * Copies the contents of a package form a source directory, and installs them in - * a destination directory. Optionally removes the source. It can also optionally - * clear out the destination folder if it already exists. - * - * @since 2.8.0 - * - * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass. - * @global array $wp_theme_directories - * - * @param array|string $args { - * Optional. Array or string of arguments for installing a package. Default empty array. - * - * @type string $source Required path to the package source. Default empty. - * @type string $destination Required path to a folder to install the package in. - * Default empty. - * @type bool $clear_destination Whether to delete any files already in the destination - * folder. Default false. - * @type bool $clear_working Whether to delete the files form the working directory - * after copying to the destination. Default false. - * @type bool $abort_if_destination_exists Whether to abort the installation if - * the destination folder already exists. Default true. - * @type array $hook_extra Extra arguments to pass to the filter hooks called by - * WP_Upgrader::install_package(). Default empty array. - * } - * - * @return array|WP_Error The result (also stored in `WP_Upgrader::$result`), or a WP_Error on failure. - */ - public function install_package( $args = array() ) { - global $wp_filesystem, $wp_theme_directories; - - $defaults = array( - 'source' => '', // Please always pass this - 'destination' => '', // and this - 'clear_destination' => false, - 'clear_working' => false, - 'abort_if_destination_exists' => true, - 'hook_extra' => array(), - ); - - $args = wp_parse_args( $args, $defaults ); - - // These were previously extract()'d. - $source = $args['source']; - $destination = $args['destination']; - $clear_destination = $args['clear_destination']; - - set_time_limit( 300 ); - - if ( empty( $source ) || empty( $destination ) ) { - return new WP_Error( 'bad_request', $this->strings['bad_request'] ); - } - //$this->skin->feedback( 'installing_package' ); - - /** - * Filters the install response before the installation has started. - * - * Returning a truthy value, or one that could be evaluated as a WP_Error - * will effectively short-circuit the installation, returning that value - * instead. - * - * @since 2.8.0 - * - * @param bool|WP_Error $response Response. - * @param array $hook_extra Extra arguments passed to hooked filters. - */ - $res = apply_filters( 'upgrader_pre_install', true, $args['hook_extra'] ); - - if ( is_wp_error( $res ) ) { - return $res; - } - - //Retain the Original source and destinations - $remote_source = $args['source']; - $local_destination = $destination; - - $source_files = array_keys( $wp_filesystem->dirlist( $remote_source ) ); - $remote_destination = $wp_filesystem->find_folder( $local_destination ); - - //Locate which directory to copy to the new folder, This is based on the actual folder holding the files. - if ( 1 == count( $source_files ) && $wp_filesystem->is_dir( trailingslashit( $args['source'] ) . $source_files[0] . '/' ) ) { //Only one folder? Then we want its contents. - $source = trailingslashit( $args['source'] ) . trailingslashit( $source_files[0] ); - } elseif ( count( $source_files ) == 0 ) { - return new WP_Error( 'incompatible_archive_empty', $this->strings['incompatible_archive'], $this->strings['no_files'] ); // There are no files? - } else { // It's only a single file, the upgrader will use the folder name of this file as the destination folder. Folder name is based on zip filename. - $source = trailingslashit( $args['source'] ); - } - - /** - * Filters the source file location for the upgrade package. - * - * @since 2.8.0 - * @since 4.4.0 The $hook_extra parameter became available. - * - * @param string $source File source location. - * @param string $remote_source Remote file source location. - * @param WP_Upgrader $this WP_Upgrader instance. - * @param array $hook_extra Extra arguments passed to hooked filters. - */ - $source = apply_filters( 'upgrader_source_selection', $source, $remote_source, $this, $args['hook_extra'] ); - - if ( is_wp_error( $source ) ) { - return $source; - } - - // Has the source location changed? If so, we need a new source_files list. - if ( $source !== $remote_source ) { - $source_files = array_keys( $wp_filesystem->dirlist( $source ) ); - } - - /* - * Protection against deleting files in any important base directories. - * Theme_Upgrader & Plugin_Upgrader also trigger this, as they pass the - * destination directory (WP_PLUGIN_DIR / wp-content/themes) intending - * to copy the directory into the directory, whilst they pass the source - * as the actual files to copy. - */ - $protected_directories = array( ABSPATH, WP_CONTENT_DIR, WP_PLUGIN_DIR, WP_CONTENT_DIR . '/themes' ); - - if ( is_array( $wp_theme_directories ) ) { - $protected_directories = array_merge( $protected_directories, $wp_theme_directories ); - } - - if ( in_array( $destination, $protected_directories ) ) { - $remote_destination = trailingslashit( $remote_destination ) . trailingslashit( basename( $source ) ); - $destination = trailingslashit( $destination ) . trailingslashit( basename( $source ) ); - } - - if ( $clear_destination ) { - // We're going to clear the destination if there's something there. - //$this->skin->feedback( 'remove_old' ); - - $removed = $this->clear_destination( $remote_destination ); - - /** - * Filters whether the upgrader cleared the destination. - * - * @since 2.8.0 - * - * @param mixed $removed Whether the destination was cleared. true on success, WP_Error on failure - * @param string $local_destination The local package destination. - * @param string $remote_destination The remote package destination. - * @param array $hook_extra Extra arguments passed to hooked filters. - */ - $removed = apply_filters( 'upgrader_clear_destination', $removed, $local_destination, $remote_destination, $args['hook_extra'] ); - - if ( is_wp_error( $removed ) ) { - return $removed; - } - } elseif ( $args['abort_if_destination_exists'] && $wp_filesystem->exists( $remote_destination ) ) { - //If we're not clearing the destination folder and something exists there already, Bail. - //But first check to see if there are actually any files in the folder. - $_files = $wp_filesystem->dirlist( $remote_destination ); - if ( ! empty( $_files ) ) { - $wp_filesystem->delete( $remote_source, true ); //Clear out the source files. - return new WP_Error( 'folder_exists', $this->strings['folder_exists'], $remote_destination ); - } - } - - //Create destination if needed - if ( ! $wp_filesystem->exists( $remote_destination ) ) { - if ( ! $wp_filesystem->mkdir( $remote_destination, FS_CHMOD_DIR ) ) { - return new WP_Error( 'mkdir_failed_destination', $this->strings['mkdir_failed'], $remote_destination ); - } - } - // Copy new version of item into place. - $result = copy_dir( $source, $remote_destination ); - if ( is_wp_error( $result ) ) { - if ( $args['clear_working'] ) { - $wp_filesystem->delete( $remote_source, true ); - } - return $result; - } - - //Clear the Working folder? - if ( $args['clear_working'] ) { - $wp_filesystem->delete( $remote_source, true ); - } - - $destination_name = basename( str_replace( $local_destination, '', $destination ) ); - if ( '.' == $destination_name ) { - $destination_name = ''; - } - - $this->result = compact( 'source', 'source_files', 'destination', 'destination_name', 'local_destination', 'remote_destination', 'clear_destination' ); - - /** - * Filters the installation response after the installation has finished. - * - * @since 2.8.0 - * - * @param bool $response Installation response. - * @param array $hook_extra Extra arguments passed to hooked filters. - * @param array $result Installation result data. - */ - $res = apply_filters( 'upgrader_post_install', true, $args['hook_extra'], $this->result ); - - if ( is_wp_error( $res ) ) { - $this->result = $res; - return $res; - } - - //Bombard the calling function will all the info which we've just used. - return $this->result; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Admin/Review.php b/wp-content/plugins/wp-mail-smtp/src/Admin/Review.php deleted file mode 100644 index 0d1ba83..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Admin/Review.php +++ /dev/null @@ -1,203 +0,0 @@ - $time, - 'dismissed' => false, - ]; - update_option( self::NOTICE_OPTION, $review ); - } else { - // Check if it has been dismissed or not. - if ( isset( $review['dismissed'] ) && ! $review['dismissed'] ) { - $load = true; - } - } - - // If we cannot load, return early. - if ( ! $load ) { - return; - } - - $this->review(); - } - - /** - * Maybe show review request. - * - * @since 2.1.0 - */ - private function review() { - - // Get the currently selected mailer. - $mailer = Options::init()->get( 'mail', 'mailer' ); - - // Skip if no or the default mailer is selected. - if ( empty( $mailer ) || $mailer === 'mail' ) { - return; - } - - // Fetch when plugin was initially activated. - $activated = get_option( 'wp_mail_smtp_activated_time' ); - - // Skip if the plugin activated time is not set. - if ( empty( $activated ) ) { - return; - } - - // Check if mailer setup is complete. - $mailer_setup_complete = wp_mail_smtp() - ->get_providers() - ->get_mailer( $mailer, wp_mail_smtp()->get_processor()->get_phpmailer() ) - ->is_mailer_complete(); - - // Skip if the mailer is not set or the plugin is active for less then a defined number of days. - if ( ! $mailer_setup_complete || ( $activated + ( DAY_IN_SECONDS * self::WAIT_PERIOD ) ) > time() ) { - return; - } - - // We have a candidate! Output a review message. - ?> -
-
-

-

-
- -

-
- - -
- - blog_id ); - - update_option( self::NOTICE_OPTION, $review ); - - restore_current_blog(); - } - } - - wp_send_json_success(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Conflicts.php b/wp-content/plugins/wp-mail-smtp/src/Conflicts.php deleted file mode 100644 index aafc759..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Conflicts.php +++ /dev/null @@ -1,184 +0,0 @@ - array( - 'name' => 'Easy WP SMTP', - ), - 'postman_start' => array( - 'name' => 'Postman SMTP', - ), - 'post_start' => array( - 'name' => 'Post SMTP Mailer/Email Log', - ), - 'mail_bank' => array( - 'name' => 'WP Mail Bank', - ), - 'SMTP_MAILER' => array( - 'name' => 'SMTP Mailer', - 'class' => true, - ), - 'GMAIL_SMTP' => array( - 'name' => 'Gmail SMTP', - 'class' => true, - ), - 'WP_Email_Smtp' => array( - 'name' => 'WP Email SMTP', - 'class' => true, - ), - 'smtpmail_include' => array( - 'name' => 'SMTP Mail', - ), - 'bwssmtp_init' => array( - 'name' => 'SMTP by BestWebSoft', - ), - 'WPSendGrid_SMTP' => array( - 'name' => 'WP SendGrid SMTP', - 'class' => true, - ), - 'sar_friendly_smtp' => array( - 'name' => 'SAR Friendly SMTP', - ), - 'WPGmail_SMTP' => array( - 'name' => 'WP Gmail SMTP', - 'class' => true, - ), - 'st_smtp_check_config' => array( - 'name' => 'Cimy Swift SMTP', - ), - 'WP_Easy_SMTP' => array( - 'name' => 'WP Easy SMTP', - 'class' => true, - ), - 'WPMailgun_SMTP' => array( - 'name' => 'WP Mailgun SMTP', - 'class' => true, - ), - 'my_smtp_wp' => array( - 'name' => 'MY SMTP WP', - ), - 'mail_booster' => array( - 'name' => 'WP Mail Booster', - ), - 'Sendgrid_Settings' => array( - 'name' => 'SendGrid', - 'class' => true, - ), - 'WPMS_php_mailer' => array( - 'name' => 'WP Mail Smtp Mailer', - ), - 'WPAmazonSES_SMTP' => array( - 'name' => 'WP Amazon SES SMTP', - 'class' => true, - ), - 'Postmark_Mail' => array( - 'name' => 'Postmark for WordPress', - 'class' => true, - ), - 'Mailgun' => array( - 'name' => 'Mailgun', - 'class' => true, - ), - 'WPSparkPost\SparkPost' => array( - 'name' => 'SparkPost', - 'class' => true, - ), - 'WPYahoo_SMTP' => array( - 'name' => 'WP Yahoo SMTP', - 'class' => true, - ), - 'wpses_init' => array( - 'name' => 'WP SES', - 'class' => true, - ), - 'TSPHPMailer' => array( - 'name' => 'turboSMTP', - ), - 'WP_SMTP' => array( - 'name' => 'WP SMTP', - 'class' => true, - ), - ); - - /** - * @var array Conflict information. - */ - protected $conflict = array(); - - /** - * Whether we have a conflict with predefined list of plugins. - * - * @since 1.5.0 - * - * @return bool - */ - public function is_detected() { - - foreach ( self::$plugins as $callback => $plugin ) { - if ( ! empty( $plugin['class'] ) ) { - $detected = \class_exists( $callback, false ); - } else { - $detected = \function_exists( $callback ); - } - - if ( $detected ) { - $this->conflict = $plugin; - break; - } - } - - return ! empty( $this->conflict ); - } - - /** - * Add a warning admin message to a user about the conflicting plugin. - * - * @since 1.5.0 - */ - public function notify() { - - if ( empty( $this->conflict ) ) { - return; - } - - WP::add_admin_notice( - \sprintf( /* translators: %1$s - Plugin name causing conflict; %2$s - Plugin name causing conflict. */ - \esc_html__( 'Heads up! WP Mail SMTP has detected %1$s is activated. Please deactivate %2$s to prevent conflicts.', 'wp-mail-smtp' ), - $this->get_conflict_name(), - $this->get_conflict_name() - ), - WP::ADMIN_NOTICE_WARNING - ); - } - - /** - * Get the conflicting plugin name is any. - * - * @since 1.5.0 - * - * @return null|string - */ - public function get_conflict_name() { - - $name = null; - - if ( ! empty( $this->conflict['name'] ) ) { - $name = $this->conflict['name']; - } - - return $name; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Core.php b/wp-content/plugins/wp-mail-smtp/src/Core.php deleted file mode 100644 index b67ca93..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Core.php +++ /dev/null @@ -1,981 +0,0 @@ -pro->example(). - * - * @since 1.5.0 - * - * @var \WPMailSMTP\Pro\Pro - */ - public $pro; - - /** - * Core constructor. - * - * @since 1.0.0 - */ - public function __construct() { - - $this->plugin_url = rtrim( plugin_dir_url( __DIR__ ), '/\\' ); - $this->assets_url = $this->plugin_url . '/assets'; - $this->plugin_path = rtrim( plugin_dir_path( __DIR__ ), '/\\' ); - - if ( $this->is_not_loadable() ) { - add_action( 'admin_notices', 'wp_mail_smtp_insecure_php_version_notice' ); - - if ( WP::use_global_plugin_settings() ) { - add_action( 'network_admin_notices', 'wp_mail_smtp_insecure_php_version_notice' ); - } - - return; - } - - // Finally, load all the plugin. - $this->hooks(); - $this->init_early(); - } - - /** - * Currently used for Pro version only. - * - * @since 1.5.0 - * - * @return bool - */ - protected function is_not_loadable() { - - // Check the Pro. - if ( - is_readable( $this->plugin_path . '/src/Pro/Pro.php' ) && - ! $this->is_pro_allowed() - ) { - // So there is a Pro version, but its PHP version check failed. - return true; - } - - return false; - } - - /** - * Assign all hooks to proper places. - * - * @since 1.0.0 - */ - public function hooks() { - - // Force from_email_force to always return true if current mailer is Gmail. - if ( ( new Options() )->get( 'mail', 'mailer' ) === 'gmail' ) { - add_filter( 'wp_mail_smtp_options_get', [ $this, 'gmail_mailer_get_from_email_force' ], 1, 3 ); - } - - // Action Scheduler requires a special early loading procedure. - add_action( 'plugins_loaded', [ $this, 'load_action_scheduler' ], - 10 ); - - // Activation hook. - register_activation_hook( WPMS_PLUGIN_FILE, [ $this, 'activate' ] ); - - // Redefine PHPMailer. - add_action( 'plugins_loaded', [ $this, 'get_processor' ] ); - add_action( 'plugins_loaded', [ $this, 'replace_phpmailer' ] ); - - // Various notifications. - add_action( 'admin_init', [ $this, 'init_notifications' ] ); - - add_action( 'init', [ $this, 'init' ] ); - - // Initialize Action Scheduler tasks. - add_action( 'init', [ $this, 'get_tasks' ], 5 ); - - add_action( 'plugins_loaded', [ $this, 'get_pro' ] ); - add_action( 'plugins_loaded', [ $this, 'get_usage_tracking' ] ); - add_action( 'plugins_loaded', [ $this, 'get_admin_bar_menu' ] ); - add_action( 'plugins_loaded', [ $this, 'get_notifications' ] ); - } - - /** - * Initial plugin actions. - * - * @since 1.0.0 - */ - public function init() { - - // Load translations just in case. - load_plugin_textdomain( 'wp-mail-smtp', false, plugin_basename( wp_mail_smtp()->plugin_path ) . '/assets/languages' ); - - /* - * Constantly check in admin area, that we don't need to upgrade DB. - * Do not wait for the `admin_init` hook, because some actions are already done - * on `plugins_loaded`, so migration has to be done before. - * We should not fire this in AJAX requests. - */ - if ( WP::in_wp_admin() ) { - $this->get_migration(); - $this->get_upgrade(); - $this->detect_conflicts(); - } - - // In admin area, regardless of AJAX or not AJAX request. - if ( is_admin() ) { - $this->get_admin(); - $this->get_site_health()->init(); - } - - // Plugin admin area notices. Display to "admins" only. - if ( current_user_can( 'manage_options' ) ) { - add_action( 'admin_notices', array( '\WPMailSMTP\WP', 'display_admin_notices' ) ); - add_action( 'admin_notices', array( $this, 'display_general_notices' ) ); - - if ( WP::use_global_plugin_settings() ) { - add_action( 'network_admin_notices', array( '\WPMailSMTP\WP', 'display_admin_notices' ) ); - add_action( 'network_admin_notices', array( $this, 'display_general_notices' ) ); - } - } - } - - /** - * Whether the Pro part of the plugin is allowed to be loaded. - * - * @since 1.5.0 - * @since 1.6.0 Added a filter. - * - * @return bool - */ - protected function is_pro_allowed() { - - $is_allowed = true; - - if ( ! is_readable( $this->plugin_path . '/src/Pro/Pro.php' ) ) { - $is_allowed = false; - } - - if ( version_compare( phpversion(), '5.6', '<' ) ) { - $is_allowed = false; - } - - return apply_filters( 'wp_mail_smtp_core_is_pro_allowed', $is_allowed ); - } - - /** - * Get/Load the Pro code of the plugin if it exists. - * - * @since 1.6.2 - * - * @return \WPMailSMTP\Pro\Pro - */ - public function get_pro() { - - if ( ! $this->is_pro_allowed() ) { - return $this->pro; - } - - if ( ! $this->is_pro() ) { - $this->pro = new \WPMailSMTP\Pro\Pro(); - } - - return $this->pro; - } - - /** - * Get/Load the Tasks code of the plugin. - * - * @since 2.1.0 - * - * @return \WPMailSMTP\Tasks\Tasks - */ - public function get_tasks() { - - static $tasks; - - if ( ! isset( $tasks ) ) { - $tasks = apply_filters( 'wp_mail_smtp_core_get_tasks', new Tasks\Tasks() ); - $tasks->init(); - } - - return $tasks; - } - - /** - * This method allows to overwrite certain core WP functions, because it's fired: - * - after `muplugins_loaded` hook, - * - before WordPress own `wp-includes/pluggable.php` file include, - * - before `plugin_loaded` and `plugins_loaded` hooks. - * - * @since 1.5.0 - */ - protected function init_early() { - - $pro_files = $this->is_pro_allowed() ? \WPMailSMTP\Pro\Pro::PLUGGABLE_FILES : array(); - - $files = (array) apply_filters( 'wp_mail_smtp_core_init_early_include_files', $pro_files ); - - foreach ( $files as $file ) { - $path = $this->plugin_path . '/' . $file; - - if ( is_readable( $path ) ) { - /** @noinspection PhpIncludeInspection */ - include_once $path; - } - } - } - - /** - * Load the plugin core processor. - * - * @since 1.0.0 - * - * @return Processor - */ - public function get_processor() { - - static $processor; - - if ( ! isset( $processor ) ) { - $processor = apply_filters( 'wp_mail_smtp_core_get_processor', new Processor() ); - - if ( method_exists( $processor, 'hooks' ) ) { - $processor->hooks(); - } - } - - return $processor; - } - - /** - * Load the plugin admin area. - * - * @since 1.0.0 - * - * @return Admin\Area - */ - public function get_admin() { - - static $admin; - - if ( ! isset( $admin ) ) { - $admin = apply_filters( 'wp_mail_smtp_core_get_admin', new Admin\Area() ); - } - - return $admin; - } - - /** - * Load the plugin providers loader. - * - * @since 1.0.0 - * - * @return Providers\Loader - */ - public function get_providers() { - - static $providers; - - if ( ! isset( $providers ) ) { - $providers = apply_filters( 'wp_mail_smtp_core_get_providers', new Providers\Loader() ); - } - - return $providers; - } - - /** - * Load the plugin option migrator. - * - * @since 1.0.0 - * - * @return Migration - */ - public function get_migration() { - - static $migration; - - if ( ! isset( $migration ) ) { - $migration = apply_filters( 'wp_mail_smtp_core_get_migration', new Migration() ); - } - - return $migration; - } - - /** - * Load the plugin upgrader. - * - * @since 1.1.0 - * - * @return Upgrade - */ - public function get_upgrade() { - - static $upgrade; - - if ( ! isset( $upgrade ) ) { - $upgrade = apply_filters( 'wp_mail_smtp_core_get_upgrade', new Upgrade() ); - } - - return $upgrade; - } - - /** - * Get the plugin's WP Site Health object. - * - * @since 1.9.0 - * - * @return SiteHealth - */ - public function get_site_health() { - - static $site_health; - - if ( ! isset( $site_health ) ) { - $site_health = apply_filters( 'wp_mail_smtp_core_get_site_health', new SiteHealth() ); - } - - return $site_health; - } - - /** - * Display various notifications to a user - * - * @since 1.0.0 - */ - public function init_notifications() { - - // Old PHP version notification. - if ( - version_compare( phpversion(), '5.6', '<' ) && - is_super_admin() && - ( - isset( $GLOBALS['pagenow'] ) && - $GLOBALS['pagenow'] === 'index.php' - ) - ) { - WP::add_admin_notice( - sprintf( - wp_kses( /* translators: %1$s - WP Mail SMTP plugin name; %2$s - WPMailSMTP.com URL to a related doc. */ - __( 'Your site is running an outdated version of PHP that is no longer supported and may cause issues with %1$s. Read more for additional information.', 'wp-mail-smtp' ), - array( - 'a' => array( - 'href' => array(), - 'target' => array(), - 'rel' => array(), - ), - ) - ), - 'WP Mail SMTP', - 'https://wpmailsmtp.com/docs/supported-php-versions-for-wp-mail-smtp/' - ) . - '

' . - wp_kses( - __( 'Please Note: Support for PHP 5.5 will be discontinued in 2020. After this, if no further action is taken, WP Mail SMTP functionality will be disabled.', 'wp-mail-smtp' ), - array( - 'strong' => array(), - 'em' => array(), - ) - ) . - '', - WP::ADMIN_NOTICE_ERROR, - false - ); - } - - // Awesome Motive Notifications. - if ( Options::init()->get( 'general', 'am_notifications_hidden' ) ) { - return; - } - } - - /** - * Display all debug mail-delivery related notices. - * - * @since 1.3.0 - * @since 1.6.0 Added a filter that allows to hide debug errors. - */ - public static function display_general_notices() { - - if ( wp_mail_smtp()->is_blocked() ) { - ?> - -
-

- EMAILING DISABLED: The %s is currently blocking all emails from being sent.', 'wp-mail-smtp' ), - array( - 'strong' => true, - ) - ), - esc_html( 'WP Mail SMTP v' . WPMS_PLUGIN_VER ) - ); - - if ( Options::init()->is_const_defined( 'general', 'do_not_send' ) ) { - $notices[] = sprintf( - wp_kses( /* translators: %1$s - constant name; %2$s - constant value. */ - __( 'To send emails, change the value of the %1$s constant to %2$s.', 'wp-mail-smtp' ), - array( - 'code' => true, - ) - ), - 'WPMS_DO_NOT_SEND', - 'false' - ); - } else { - $notices[] = sprintf( - wp_kses( /* translators: %s - plugin Misc settings page URL. */ - __( 'To send emails, go to plugin Misc settings and disable the "Do Not Send" option.', 'wp-mail-smtp' ), - array( - 'a' => array( - 'href' => true, - ), - ) - ), - esc_url( add_query_arg( 'tab', 'misc', wp_mail_smtp()->get_admin()->get_admin_page_url() ) ) - ); - } - - echo implode( ' ', $notices ); - ?> -

-
- - get_admin()->is_error_delivery_notice_enabled() ) { - $screen = get_current_screen(); - - // Skip the error notice if not on plugin page. - if ( - is_object( $screen ) && - strpos( $screen->id, 'page_wp-mail-smtp' ) === false - ) { - return; - } - - $notice = apply_filters( - 'wp_mail_smtp_core_display_general_notices_email_delivery_error_notice', - Debug::get_last() - ); - - if ( ! empty( $notice ) ) { - ?> - -
-

- EMAIL DELIVERY ERROR: the plugin %s logged this error during the last time it tried to send an email:', 'wp-mail-smtp' ), - array( - 'strong' => array(), - ) - ), - esc_html( 'WP Mail SMTP v' . WPMS_PLUGIN_VER ) - ); - ?> -

- -
-
-
- -

- get_admin()->is_admin_page() ) { - printf( - wp_kses( /* translators: %s - plugin admin page URL. */ - __( 'Please review your WP Mail SMTP settings in plugin admin area.' ) . ' ', - array( - 'a' => array( - 'href' => array(), - ), - ) - ), - esc_url( wp_mail_smtp()->get_admin()->get_admin_page_url() ) - ); - } - - esc_html_e( 'Consider running an email test after fixing it.', 'wp-mail-smtp' ); - ?> -

-
- - is_detected() ) { - $conflicts->notify(); - } - } - - /** - * Init the \PHPMailer replacement. - * - * @since 1.0.0 - * - * @return MailCatcherInterface - */ - public function replace_phpmailer() { - - global $phpmailer; - - return $this->replace_w_fake_phpmailer( $phpmailer ); - } - - /** - * Overwrite default PhpMailer with our MailCatcher. - * - * @since 1.0.0 - * @since 1.5.0 Throw external PhpMailer exceptions, inherits default WP behavior. - * - * @param null $obj PhpMailer object to override with own implementation. - * - * @return MailCatcherInterface - */ - protected function replace_w_fake_phpmailer( &$obj = null ) { - - $obj = $this->generate_mail_catcher( true ); - - return $obj; - } - - /** - * What to do on plugin activation. - * - * @since 1.0.0 - * @since 2.0.0 Changed from general `plugin_activate` hook to this plugin specific activation hook. - */ - public function activate() { - - // Store the plugin version when initial install occurred. - add_option( 'wp_mail_smtp_initial_version', WPMS_PLUGIN_VER, '', false ); - - // Store the plugin version activated to reference with upgrades. - update_option( 'wp_mail_smtp_version', WPMS_PLUGIN_VER, false ); - - // Save default options, only once. - Options::init()->set( Options::get_defaults(), true ); - - /** - * Store the timestamp of first plugin activation. - * - * @since 2.1.0 - */ - add_option( 'wp_mail_smtp_activated_time', time(), '', false ); - - /** - * Store the timestamp of the first plugin activation by license type. - * - * @since 2.3.0 - */ - $license_type = is_readable( $this->plugin_path . '/src/Pro/Pro.php' ) ? 'pro' : 'lite'; - $activated = get_option( 'wp_mail_smtp_activated', [] ); - - if ( empty( $activated[ $license_type ] ) ) { - $activated[ $license_type ] = time(); - update_option( 'wp_mail_smtp_activated', $activated ); - } - } - - /** - * Whether this is a Pro version of a plugin. - * - * @since 1.5.0 - * - * @return bool - */ - public function is_pro() { - - return apply_filters( 'wp_mail_smtp_core_is_pro', ! empty( $this->pro ) ); - } - - /** - * Get the current license type. - * - * @since 1.5.0 - * - * @return string Default value: lite. - */ - public function get_license_type() { - - $type = Options::init()->get( 'license', 'type' ); - - if ( empty( $type ) ) { - $type = 'lite'; - } - - return strtolower( $type ); - } - - /** - * Get the current license key. - * - * @since 1.5.0 - * - * @return string - */ - public function get_license_key() { - - $key = Options::init()->get( 'license', 'key' ); - - if ( empty( $key ) ) { - $key = ''; - } - - return $key; - } - - /** - * Upgrade link used within the various admin pages. - * - * @since 1.5.0 - * @since 1.5.1 Support all UTM params. - * - * @param array|string $utm Array of UTM params, or if string provided - utm_content URL parameter. - * - * @return string - */ - public function get_upgrade_link( $utm ) { - - // Defaults. - $source = 'WordPress'; - $medium = 'plugin-settings'; - $campaign = 'liteplugin'; - $content = 'general'; - - if ( is_array( $utm ) ) { - if ( isset( $utm['source'] ) ) { - $source = $utm['source']; - } - if ( isset( $utm['medium'] ) ) { - $medium = $utm['medium']; - } - if ( isset( $utm['campaign'] ) ) { - $campaign = $utm['campaign']; - } - if ( isset( $utm['content'] ) ) { - $content = $utm['content']; - } - } elseif ( is_string( $utm ) ) { - $content = $utm; - } - - $url = 'https://wpmailsmtp.com/lite-upgrade/?utm_source=' . esc_attr( $source ) . '&utm_medium=' . esc_attr( $medium ) . '&utm_campaign=' . esc_attr( $campaign ); - - if ( ! empty( $content ) ) { - $url .= '&utm_content=' . esc_attr( $content ); - } - - return apply_filters( 'wp_mail_smtp_core_get_upgrade_link', $url ); - } - - /** - * Whether the emailing functionality is blocked, with either an option or a constatnt. - * - * @since 1.7.0 - * - * @return bool - */ - public function is_blocked() { - - return (bool) Options::init()->get( 'general', 'do_not_send' ); - } - - /** - * Whether the white-labeling is enabled. - * White-labeling disables the plugin "About us" page, it replaces any plugin marketing texts or images with - * white label ones. - * - * @since 2.0.0 - * - * @return bool - */ - public function is_white_labeled() { - - return (bool) apply_filters( 'wp_mail_smtp_is_white_labeled', false ); - } - - /** - * Require the action scheduler in an early plugins_loaded hook (-10). - * - * @see https://actionscheduler.org/usage/#load-order - * - * @since 2.1.0 - */ - public function load_action_scheduler() { - - require_once $this->plugin_path . '/vendor/woocommerce/action-scheduler/action-scheduler.php'; - } - - /** - * Get the list of all custom DB tables that should be present in the DB. - * - * @since 2.1.2 - * - * @return array List of table names. - */ - public function get_custom_db_tables() { - - $tables = [ - \WPMailSMTP\Tasks\Meta::get_table_name(), - ]; - - return apply_filters( 'wp_mail_smtp_core_get_custom_db_tables', $tables ); - } - - /** - * Generate the correct MailCatcher object based on the PHPMailer version used in WP. - * - * Also conditionally require the needed class files. - * - * @see https://make.wordpress.org/core/2020/07/01/external-library-updates-in-wordpress-5-5-call-for-testing/ - * - * @since 2.2.0 - * - * @param bool $exceptions True if external exceptions should be thrown. - * - * @return MailCatcherInterface - */ - public function generate_mail_catcher( $exceptions = null ) { - - if ( version_compare( get_bloginfo( 'version' ), '5.5-alpha', '<' ) ) { - if ( ! class_exists( '\PHPMailer', false ) ) { - require_once ABSPATH . WPINC . '/class-phpmailer.php'; - } - - $mail_catcher = new MailCatcher( $exceptions ); - } else { - if ( ! class_exists( '\PHPMailer\PHPMailer\PHPMailer', false ) ) { - require_once ABSPATH . WPINC . '/PHPMailer/PHPMailer.php'; - } - - if ( ! class_exists( '\PHPMailer\PHPMailer\Exception', false ) ) { - require_once ABSPATH . WPINC . '/PHPMailer/Exception.php'; - } - - if ( ! class_exists( '\PHPMailer\PHPMailer\SMTP', false ) ) { - require_once ABSPATH . WPINC . '/PHPMailer/SMTP.php'; - } - - $mail_catcher = new MailCatcherV6( $exceptions ); - } - - return $mail_catcher; - } - - /** - * Check if the passed object is a valid PHPMailer object. - * - * @since 2.2.0 - * - * @param object $phpmailer A potential PHPMailer object to be tested. - * - * @return bool - */ - public function is_valid_phpmailer( $phpmailer ) { - - return $phpmailer instanceof MailCatcherInterface || - $phpmailer instanceof \PHPMailer || - $phpmailer instanceof \PHPMailer\PHPMailer\PHPMailer; - } - - /** - * Force the `mail.from_email_force` plugin option to always return true if the current saved mailer is Gmail. - * Alters the plugin options retrieving via the Options::get method. - * - * The gmail mailer check is performed when this filter is added. - * - * @since 2.2.0 - * - * @param mixed $value The value of the plugin option that is being retrieved via Options::get method. - * @param string $group The group of the plugin option that is being retrieved via Options::get method. - * @param string $key The key of the plugin option that is being retrieved via Options::get method. - * - * @return mixed - */ - public function gmail_mailer_get_from_email_force( $value, $group, $key ) { - - if ( $group === 'mail' && $key === 'from_email_force' ) { - $value = true; - } - - return $value; - } - - /** - * Load the plugin admin bar menu and initialize it. - * - * @since 2.3.0 - * - * @return AdminBarMenu - */ - public function get_admin_bar_menu() { - - static $admin_bar_menu; - - if ( ! isset( $admin_bar_menu ) ) { - $admin_bar_menu = apply_filters( - 'wp_mail_smtp_core_get_admin_bar_menu', - new AdminBarMenu() - ); - - if ( method_exists( $admin_bar_menu, 'init' ) ) { - $admin_bar_menu->init(); - } - } - - return $admin_bar_menu; - } - - /** - * Load the plugin usage tracking. - * - * @since 2.3.0 - * - * @return UsageTracking - */ - public function get_usage_tracking() { - - static $usage_tracking; - - if ( ! isset( $usage_tracking ) ) { - $usage_tracking = apply_filters( 'wp_mail_smtp_core_get_usage_tracking', new UsageTracking() ); - - if ( method_exists( $usage_tracking, 'load' ) ) { - $usage_tracking->load(); - } - } - - return $usage_tracking; - } - - /** - * Load the plugin admin notifications functionality and initializes it. - * - * @since 2.3.0 - * - * @return Notifications - */ - public function get_notifications() { - - static $notifications; - - if ( ! isset( $notifications ) ) { - $notifications = apply_filters( - 'wp_mail_smtp_core_get_notifications', - new Notifications() - ); - - if ( method_exists( $notifications, 'init' ) ) { - $notifications->init(); - } - } - - return $notifications; - } - - /** - * Prepare the HTML output for a plugin loader/spinner. - * - * @since 2.4.0 - * - * @param string $color The color of the loader ('', 'blue' or 'white'), where '' is default orange. - * @param string $size The size of the loader ('lg', 'md', 'sm'). - * - * @return string - */ - public function prepare_loader( $color = '', $size = 'md' ) { - - $svg_name = 'loading'; - - if ( in_array( $color, [ 'blue', 'white' ], true ) ) { - $svg_name .= '-' . $color; - } - - if ( ! in_array( $size, [ 'lg', 'md', 'sm' ], true ) ) { - $size = 'md'; - } - - return '' . esc_html__( 'Loading', 'wp-mail-smtp' ) . ''; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Debug.php b/wp-content/plugins/wp-mail-smtp/src/Debug.php deleted file mode 100644 index 9eddfb9..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Debug.php +++ /dev/null @@ -1,122 +0,0 @@ - $e->getMessage() ); - * $debug = Debug::get(); // array - * $debug = Debug::get_last(); // string - * - * @since 1.2.0 - */ -class Debug { - - /** - * Key for options table where all messages will be saved to. - */ - const OPTION_KEY = 'wp_mail_smtp_debug'; - - /** - * Save unique debug message to a debug log. - * Adds one more to a list, at the end. - * - * @since 1.2.0 - * - * @param mixed $message - */ - public static function set( $message ) { - - if ( empty( $message ) ) { - return; - } - - if ( ! is_string( $message ) ) { - $message = wp_json_encode( $message ); - } else { - $message = wp_strip_all_tags( $message, false ); - } - - $all = self::get(); - - array_push( $all, $message ); - - update_option( self::OPTION_KEY, array_unique( $all ), false ); - } - - /** - * Remove all messages for a debug log. - * - * @since 1.2.0 - */ - public static function clear() { - update_option( self::OPTION_KEY, array(), false ); - } - - /** - * Retrieve all messages from a debug log. - * - * @since 1.2.0 - * - * @return array - */ - public static function get() { - - $all = get_option( self::OPTION_KEY, array() ); - - if ( ! is_array( $all ) ) { - $all = (array) $all; - } - - return $all; - } - - /** - * Get the last message that was saved to a debug log. - * - * @since 1.2.0 - * - * @return string - */ - public static function get_last() { - - $all = self::get(); - - if ( ! empty( $all ) && is_array( $all ) ) { - return (string) end( $all ); - } - - return ''; - } - - /** - * Get the proper variable content output to debug. - * - * @since 1.2.0 - * - * @param mixed $var - * - * @return string - */ - public static function pvar( $var = '' ) { - - ob_start(); - - echo ''; - - if ( is_bool( $var ) || empty( $var ) ) { - var_dump( $var ); - } else { - print_r( $var ); - } - - echo ''; - - $output = ob_get_clean(); - - return str_replace( array( "\r\n", "\r", "\n" ), '', $output ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Geo.php b/wp-content/plugins/wp-mail-smtp/src/Geo.php deleted file mode 100644 index 5d953f1..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Geo.php +++ /dev/null @@ -1,164 +0,0 @@ - sanitize_text_field( $request['latitude'] ), - 'longitude' => sanitize_text_field( $request['longitude'] ), - 'city' => isset( $request['city'] ) ? sanitize_text_field( $request['city'] ) : '', - 'region' => isset( $request['region_name'] ) ? sanitize_text_field( $request['region_name'] ) : '', - 'country' => isset( $request['country_iso'] ) ? sanitize_text_field( $request['country_iso'] ) : '', - 'postal' => isset( $request['zip_code'] ) ? sanitize_text_field( $request['zip_code'] ) : '', - ]; - - return $data; - } - } - - $request = wp_remote_get( 'https://ipapi.co/' . $ip . '/json' ); - - if ( ! is_wp_error( $request ) ) { - - $request = json_decode( wp_remote_retrieve_body( $request ), true ); - - if ( ! empty( $request['latitude'] ) && ! empty( $request['longitude'] ) ) { - - $data = [ - 'latitude' => sanitize_text_field( $request['latitude'] ), - 'longitude' => sanitize_text_field( $request['longitude'] ), - 'city' => isset( $request['city'] ) ? sanitize_text_field( $request['city'] ) : '', - 'region' => isset( $request['region'] ) ? sanitize_text_field( $request['region'] ) : '', - 'country' => isset( $request['country'] ) ? sanitize_text_field( $request['country'] ) : '', - 'postal' => isset( $request['postal'] ) ? sanitize_text_field( $request['postal'] ) : '', - ]; - - return $data; - } - } - - $request = wp_remote_get( 'https://tools.keycdn.com/geo.json?host=' . $ip ); - - if ( ! is_wp_error( $request ) ) { - - $request = json_decode( wp_remote_retrieve_body( $request ), true ); - - if ( ! empty( $request['data']['geo']['latitude'] ) && ! empty( $request['data']['geo']['longitude'] ) ) { - - $data = [ - 'latitude' => sanitize_text_field( $request['data']['geo']['latitude'] ), - 'longitude' => sanitize_text_field( $request['data']['geo']['longitude'] ), - 'city' => isset( $request['data']['geo']['city'] ) ? sanitize_text_field( $request['data']['geo']['city'] ) : '', - 'region' => isset( $request['data']['geo']['region_name'] ) ? sanitize_text_field( $request['data']['geo']['region_name'] ) : '', - 'country' => isset( $request['data']['geo']['country_code'] ) ? sanitize_text_field( $request['data']['geo']['country_code'] ) : '', - 'postal' => isset( $request['data']['geo']['postal_code'] ) ? sanitize_text_field( $request['data']['geo']['postal_code'] ) : '', - ]; - - return $data; - } - } - - return []; - } - - /** - * This routine calculates the distance between two points (given the latitude/longitude of those points). - * Definitions: South latitudes are negative, east longitudes are positive. - * - * @see https://www.geodatasource.com/developers/php - * - * @since 1.5.0 - * - * @param float $lat1 Latitude of point 1 (in decimal degrees). - * @param float $lon1 Longitude of point 1 (in decimal degrees). - * @param float $lat2 Latitude of point 2 (in decimal degrees). - * @param float $lon2 Longitude of point 2 (in decimal degrees). - * @param string $unit Supported values: M, K, N. Miles by default. - * - * @return float|int - */ - public static function get_distance_between( $lat1, $lon1, $lat2, $lon2, $unit = 'M' ) { - - if ( ( $lat1 === $lat2 ) && ( $lon1 === $lon2 ) ) { - return 0; - } - - $theta = $lon1 - $lon2; - $dist = sin( deg2rad( $lat1 ) ) * sin( deg2rad( $lat2 ) ) + cos( deg2rad( $lat1 ) ) * cos( deg2rad( $lat2 ) ) * cos( deg2rad( $theta ) ); - $dist = acos( $dist ); - $dist = rad2deg( $dist ); - $miles = $dist * 60 * 1.1515; - $unit = strtoupper( $unit ); - - if ( $unit === 'K' ) { - return ( $miles * 1.609344 ); - } elseif ( $unit === 'N' ) { - return ( $miles * 0.8684 ); - } - - return $miles; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Helpers/Crypto.php b/wp-content/plugins/wp-mail-smtp/src/Helpers/Crypto.php deleted file mode 100644 index 41545dc..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Helpers/Crypto.php +++ /dev/null @@ -1,162 +0,0 @@ -=' ) && ! function_exists( 'sodium_crypto_box' ) ) { - require_once dirname( WPMS_PLUGIN_FILE ) . '/vendor/paragonie/sodium_compat/autoload.php'; -} - -/** - * Class for encryption functionality. - * - * @since 2.5.0 - * - * @link https://www.php.net/manual/en/intro.sodium.php - */ -class Crypto { - - /** - * Get a secret key for encrypt/decrypt. - * - * @since 2.5.0 - * - * @param bool $create Should the key be created, if it does not exist yet. - * - * @return string|bool - */ - public static function get_secret_key( $create = false ) { - - if ( defined( 'WPMS_CRYPTO_KEY' ) ) { - return WPMS_CRYPTO_KEY; - } - - $secret_key = get_option( 'wp_mail_smtp_mail_key' ); - - // If we already have the secret, send it back. - if ( false !== $secret_key ) { - return base64_decode( $secret_key ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode - } - - if ( $create ) { - // We don't have a secret, so let's generate one. - try { - $secret_key = sodium_crypto_secretbox_keygen(); // phpcs:ignore - } catch ( \Exception $e ) { - $secret_key = wp_generate_password( SODIUM_CRYPTO_SECRETBOX_KEYBYTES ); // phpcs:ignore - } - - add_option( 'wp_mail_smtp_mail_key', base64_encode( $secret_key ) ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode - - return $secret_key; - } - - return false; - } - - /** - * Encrypt a message. - * - * @since 2.5.0 - * - * @param string $message Message to encrypt. - * @param string $key Encryption key. - * - * @return string - * @throws \Exception The exception object. - */ - public static function encrypt( $message, $key = '' ) { - - if ( apply_filters( 'wp_mail_smtp_helpers_crypto_stop', false ) ) { - return $message; - } - - // Create a nonce for this operation. It will be stored and recovered in the message itself. - $nonce = random_bytes( SODIUM_CRYPTO_SECRETBOX_NONCEBYTES ); // phpcs:ignore - - if ( empty( $key ) ) { - $key = self::get_secret_key( true ); - } - - // Encrypt message and combine with nonce. - $cipher = base64_encode( // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode - $nonce . - sodium_crypto_secretbox( // phpcs:ignore - $message, - $nonce, - $key - ) - ); - - try { - sodium_memzero( $message ); // phpcs:ignore - sodium_memzero( $key ); // phpcs:ignore - } catch ( \Exception $e ) { - return $cipher; - } - - return $cipher; - } - - /** - * Decrypt a message. - * Returns encrypted message on any failure and the decrypted message on success. - * - * @since 2.5.0 - * - * @param string $encrypted Encrypted message. - * @param string $key Encryption key. - * - * @return string - * @throws \Exception The exception object. - */ - public static function decrypt( $encrypted, $key = '' ) { - - if ( apply_filters( 'wp_mail_smtp_helpers_crypto_stop', false ) ) { - return $encrypted; - } - - // Unpack base64 message. - $decoded = base64_decode( $encrypted ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode - - if ( false === $decoded ) { - return $encrypted; - } - - if ( mb_strlen( $decoded, '8bit' ) < ( SODIUM_CRYPTO_SECRETBOX_NONCEBYTES + SODIUM_CRYPTO_SECRETBOX_MACBYTES ) ) { // phpcs:ignore - return $encrypted; - } - - // Pull nonce and ciphertext out of unpacked message. - $nonce = mb_substr( $decoded, 0, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES, '8bit' ); // phpcs:ignore - $ciphertext = mb_substr( $decoded, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES, null, '8bit' ); // phpcs:ignore - - $key = empty( $key ) ? self::get_secret_key() : $key; - - if ( empty( $key ) ) { - return $encrypted; - } - - // Decrypt it. - $message = sodium_crypto_secretbox_open( // phpcs:ignore - $ciphertext, - $nonce, - $key - ); - - // Check for decryption failures. - if ( false === $message ) { - return $encrypted; - } - - try { - sodium_memzero( $ciphertext ); // phpcs:ignore - sodium_memzero( $key ); // phpcs:ignore - } catch ( \Exception $e ) { - return $message; - } - - return $message; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/MailCatcher.php b/wp-content/plugins/wp-mail-smtp/src/MailCatcher.php deleted file mode 100644 index d644bf1..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/MailCatcher.php +++ /dev/null @@ -1,181 +0,0 @@ -get( 'mail', 'mailer' ) ); - - $is_emailing_blocked = false; - - if ( wp_mail_smtp()->is_blocked() ) { - $is_emailing_blocked = true; - } - - // Always allow a test email - check for the specific header. - foreach ( (array) $this->getCustomHeaders() as $header ) { - if ( - ! empty( $header[0] ) && - ! empty( $header[1] ) && - $header[0] === 'X-Mailer-Type' && - trim( $header[1] ) === 'WPMailSMTP/Admin/Test' - ) { - $is_emailing_blocked = false; - } - }; - - // Do not send emails if admin desired that. - if ( $is_emailing_blocked ) { - return false; - } - - // Define a custom header, that will be used to identify the plugin and the mailer. - $this->XMailer = 'WPMailSMTP/Mailer/' . $mail_mailer . ' ' . WPMS_PLUGIN_VER; - - // Use the default PHPMailer, as we inject our settings there for certain providers. - if ( - $mail_mailer === 'mail' || - $mail_mailer === 'smtp' || - $mail_mailer === 'pepipost' - ) { - try { - // Allow to hook early to catch any early failed emails. - do_action( 'wp_mail_smtp_mailcatcher_smtp_pre_send_before', $this ); - - // Prepare all the headers. - if ( ! $this->preSend() ) { - return false; - } - - // Allow to hook after all the preparation before the actual sending. - do_action( 'wp_mail_smtp_mailcatcher_smtp_send_before', $this ); - - return $this->postSend(); - } catch ( \phpmailerException $e ) { - $this->mailHeader = ''; - $this->setError( $e->getMessage() ); - - // Set the debug error, but not for default PHP mailer. - if ( $mail_mailer !== 'mail' ) { - Debug::set( - 'Mailer: ' . esc_html( wp_mail_smtp()->get_providers()->get_options( $mail_mailer )->get_title() ) . PHP_EOL . - $e->getMessage() - ); - } - - if ( $this->exceptions ) { - throw $e; - } - - return false; - } - } - - // We need this so that the \PHPMailer class will correctly prepare all the headers. - $this->Mailer = 'mail'; - - // Prepare everything (including the message) for sending. - if ( ! $this->preSend() ) { - return false; - } - - $mailer = wp_mail_smtp()->get_providers()->get_mailer( $mail_mailer, $this ); - - if ( ! $mailer ) { - return false; - } - - if ( ! $mailer->is_php_compatible() ) { - return false; - } - - /* - * Send the actual email. - * We reuse everything, that was preprocessed for usage in \PHPMailer. - */ - $mailer->send(); - - $is_sent = $mailer->is_email_sent(); - - // Allow to perform any actions with the data. - do_action( 'wp_mail_smtp_mailcatcher_send_after', $mailer, $this ); - - return $is_sent; - } - - /** - * Returns all custom headers. - * In older versions of \PHPMailer class this method didn't exist. - * As we support WordPress 3.6+ - we need to make sure this method is always present. - * - * @since 1.5.0 - * - * @return array - */ - public function getCustomHeaders() { - - return $this->CustomHeader; - } - - /** - * Get the PHPMailer line ending. - * - * @since 2.2.0 - * - * @return string - */ - public function get_line_ending() { - - return $this->LE; // phpcs:ignore - } - - /** - * Create a unique ID to use for multipart email boundaries. - * - * @since 2.4.0 - * - * @return string - */ - public function generate_id() { - - return $this->generateId(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/MailCatcherInterface.php b/wp-content/plugins/wp-mail-smtp/src/MailCatcherInterface.php deleted file mode 100644 index b2fd531..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/MailCatcherInterface.php +++ /dev/null @@ -1,42 +0,0 @@ -get( 'mail', 'mailer' ) ); - - $is_emailing_blocked = false; - - if ( wp_mail_smtp()->is_blocked() ) { - $is_emailing_blocked = true; - } - - // Always allow a test email - check for the specific header. - foreach ( (array) $this->getCustomHeaders() as $header ) { - if ( - ! empty( $header[0] ) && - ! empty( $header[1] ) && - $header[0] === 'X-Mailer-Type' && - trim( $header[1] ) === 'WPMailSMTP/Admin/Test' - ) { - $is_emailing_blocked = false; - } - }; - - // Do not send emails if admin desired that. - if ( $is_emailing_blocked ) { - return false; - } - - // Define a custom header, that will be used to identify the plugin and the mailer. - $this->XMailer = 'WPMailSMTP/Mailer/' . $mail_mailer . ' ' . WPMS_PLUGIN_VER; // phpcs:ignore - - // Use the default PHPMailer, as we inject our settings there for certain providers. - if ( - $mail_mailer === 'mail' || - $mail_mailer === 'smtp' || - $mail_mailer === 'pepipost' - ) { - try { - // Allow to hook early to catch any early failed emails. - do_action( 'wp_mail_smtp_mailcatcher_smtp_pre_send_before', $this ); - - // Prepare all the headers. - if ( ! $this->preSend() ) { - return false; - } - - // Allow to hook after all the preparation before the actual sending. - do_action( 'wp_mail_smtp_mailcatcher_smtp_send_before', $this ); - - return $this->postSend(); - } catch ( \PHPMailer\PHPMailer\Exception $e ) { - $this->mailHeader = ''; // phpcs:ignore - $this->setError( $e->getMessage() ); - - // Set the debug error, but not for default PHP mailer. - if ( $mail_mailer !== 'mail' ) { - Debug::set( - 'Mailer: ' . esc_html( wp_mail_smtp()->get_providers()->get_options( $mail_mailer )->get_title() ) . PHP_EOL . - $e->getMessage() - ); - } - - if ( $this->exceptions ) { - throw $e; - } - - return false; - } - } - - // We need this so that the PHPMailer class will correctly prepare all the headers. - $this->Mailer = 'mail'; // phpcs:ignore - - // Prepare everything (including the message) for sending. - if ( ! $this->preSend() ) { - return false; - } - - $mailer = wp_mail_smtp()->get_providers()->get_mailer( $mail_mailer, $this ); - - if ( ! $mailer ) { - return false; - } - - if ( ! $mailer->is_php_compatible() ) { - return false; - } - - /* - * Send the actual email. - * We reuse everything, that was preprocessed for usage in PHPMailer. - */ - $mailer->send(); - - $is_sent = $mailer->is_email_sent(); - - // Allow to perform any actions with the data. - do_action( 'wp_mail_smtp_mailcatcher_send_after', $mailer, $this ); - - return $is_sent; - } - - /** - * Get the PHPMailer line ending. - * - * @since 2.2.0 - * - * @return string - */ - public function get_line_ending() { - - return static::$LE; // phpcs:ignore - } - - /** - * Create a unique ID to use for multipart email boundaries. - * - * @since 2.4.0 - * - * @return string - */ - public function generate_id() { - - return $this->generateId(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Migration.php b/wp-content/plugins/wp-mail-smtp/src/Migration.php deleted file mode 100644 index fc56e8e..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Migration.php +++ /dev/null @@ -1,401 +0,0 @@ -cur_ver = self::get_cur_version(); - - $this->maybe_migrate(); - } - - /** - * Static on purpose, to get current migration version without __construct() and validation. - * - * @since 2.1.0 - * - * @return int - */ - public static function get_cur_version() { - - return (int) get_option( self::OPTION_NAME, 0 ); - } - - /** - * Run the migration if needed. - * - * @since 2.1.0 - */ - protected function maybe_migrate() { - - if ( ! is_admin() ) { - return; - } - - if ( version_compare( $this->cur_ver, self::VERSION, '<' ) ) { - $this->run( self::VERSION ); - } - } - - /** - * Actual migration launcher. - * - * @since 2.1.0 - * - * @param int $version The version of migration to run. - */ - protected function run( $version ) { - - $function_version = (int) $version; - - if ( method_exists( $this, 'migrate_to_' . $function_version ) ) { - $this->{'migrate_to_' . $function_version}(); - } else { - $message = sprintf( /* translators: %1$s - WP Mail SMTP, %2$s - error message. */ - esc_html__( 'There was an error while upgrading the database. Please contact %1$s support with this information: %2$s.', 'wp-mail-smtp' ), - 'WP Mail SMTP', - 'migration from v' . self::get_cur_version() . ' to v' . self::VERSION . ' failed. Plugin version: v' . WPMS_PLUGIN_VER . '' - ); - - WP::add_admin_notice( $message, WP::ADMIN_NOTICE_ERROR ); - } - } - - /** - * Update migration version in options table. - * - * @since 2.1.0 - * - * @param int $version Migration version. - */ - protected function update_db_ver( $version ) { - - if ( empty( $version ) ) { - $version = self::VERSION; - } - - // Autoload it, because this value is checked all the time - // and no need to request it separately from all autoloaded options. - update_option( self::OPTION_NAME, $version, true ); - } - - /** - * Prevent running the same migration twice. - * Run migration only when required. - * - * @since 2.1.0 - * - * @param string $version The version of migration to check for potential execution. - */ - protected function maybe_required_older_migrations( $version ) { - - if ( version_compare( $this->cur_ver, $version, '<' ) ) { - $this->run( $version ); - } - } - - /** - * Migration from 0.x to 1.0.0. - * Move separate plugin WP options to one main plugin WP option setting. - * - * @since 2.1.0 - */ - private function migrate_to_1() { - - if ( $this->is_migrated() ) { - return; - } - - $this->old_values = $this->get_old_values(); - $this->new_values = $this->get_converted_options(); - - Options::init()->set( $this->new_values, true ); - - $this->update_db_ver( 1 ); - } - - /** - * Migration from 1.x to 2.1.0. - * Create Tasks\Meta table, if it does not exist. - * - * @since 2.1.0 - */ - private function migrate_to_2() { - - $this->maybe_required_older_migrations( 1 ); - - $meta = new Meta(); - - // Create the table if it doesn't exist. - if ( $meta && ! $meta->table_exists() ) { - $meta->create_table(); - } - - $this->update_db_ver( 2 ); - } - - /** - * Whether we already migrated or not. - * - * @since 1.0.0 - * - * @return bool - */ - protected function is_migrated() { - - $is_migrated = false; - $new_values = get_option( Options::META_KEY, array() ); - - if ( ! empty( $new_values ) ) { - $is_migrated = true; - } - - return $is_migrated; - } - - /** - * Get all old values from DB. - * - * @since 1.0.0 - * - * @return array - */ - protected function get_old_values() { - - $old_values = array(); - - foreach ( $this->old_keys as $old_key ) { - $value = get_option( $old_key, '' ); - - if ( ! empty( $value ) ) { - $old_values[ $old_key ] = $value; - } - } - - return $old_values; - } - - /** - * Convert old values from key=>value to a multidimensional array of data. - * - * @since 1.0.0 - */ - protected function get_converted_options() { - - $converted = array(); - - foreach ( $this->old_keys as $old_key ) { - - $old_value = isset( $this->old_values[ $old_key ] ) ? $this->old_values[ $old_key ] : ''; - - switch ( $old_key ) { - case 'pepipost_user': - case 'pepipost_pass': - case 'pepipost_port': - case 'pepipost_ssl': - // Do not migrate pepipost options if it's not activated at the moment. - if ( isset( $this->old_values['mailer'] ) && $this->old_values['mailer'] === 'pepipost' ) { - $shortcut = explode( '_', $old_key ); - - if ( $old_key === 'pepipost_ssl' ) { - $converted[ $shortcut[0] ]['encryption'] = $old_value; - } else { - $converted[ $shortcut[0] ][ $shortcut[1] ] = $old_value; - } - } - break; - - case 'smtp_host': - case 'smtp_port': - case 'smtp_ssl': - case 'smtp_auth': - case 'smtp_user': - case 'smtp_pass': - $shortcut = explode( '_', $old_key ); - - if ( $old_key === 'smtp_ssl' ) { - $converted[ $shortcut[0] ]['encryption'] = $old_value; - } elseif ( $old_key === 'smtp_auth' ) { - $converted[ $shortcut[0] ][ $shortcut[1] ] = ( $old_value === 'true' ? 'yes' : 'no' ); - } else { - $converted[ $shortcut[0] ][ $shortcut[1] ] = $old_value; - } - - break; - - case 'mail_from': - $converted['mail']['from_email'] = $old_value; - break; - case 'mail_from_name': - $converted['mail']['from_name'] = $old_value; - break; - case 'mail_set_return_path': - $converted['mail']['return_path'] = ( $old_value === 'true' ); - break; - case 'mailer': - $converted['mail']['mailer'] = ! empty( $old_value ) ? $old_value : 'mail'; - break; - case 'wp_mail_smtp_am_notifications_hidden': - $converted['general']['am_notifications_hidden'] = ( isset( $old_value ) && $old_value === 'true' ); - break; - } - } - - $converted = $this->get_converted_constants_options( $converted ); - - return $converted; - } - - /** - * Some users use constants in wp-config.php to define values. - * We need to prioritize them and reapply data to options. - * Use only those that are actually defined. - * - * @since 1.0.0 - * - * @param array $converted - * - * @return array - */ - protected function get_converted_constants_options( $converted ) { - - // Are we configured via constants? - if ( ! defined( 'WPMS_ON' ) || ! WPMS_ON ) { - return $converted; - } - - /* - * Mail settings. - */ - if ( defined( 'WPMS_MAIL_FROM' ) ) { - $converted['mail']['from_email'] = WPMS_MAIL_FROM; - } - if ( defined( 'WPMS_MAIL_FROM_NAME' ) ) { - $converted['mail']['from_name'] = WPMS_MAIL_FROM_NAME; - } - if ( defined( 'WPMS_MAILER' ) ) { - $converted['mail']['mailer'] = WPMS_MAILER; - } - if ( defined( 'WPMS_SET_RETURN_PATH' ) ) { - $converted['mail']['return_path'] = WPMS_SET_RETURN_PATH; - } - - /* - * SMTP settings. - */ - if ( defined( 'WPMS_SMTP_HOST' ) ) { - $converted['smtp']['host'] = WPMS_SMTP_HOST; - } - if ( defined( 'WPMS_SMTP_PORT' ) ) { - $converted['smtp']['port'] = WPMS_SMTP_PORT; - } - if ( defined( 'WPMS_SSL' ) ) { - $converted['smtp']['ssl'] = WPMS_SSL; - } - if ( defined( 'WPMS_SMTP_AUTH' ) ) { - $converted['smtp']['auth'] = WPMS_SMTP_AUTH; - } - if ( defined( 'WPMS_SMTP_USER' ) ) { - $converted['smtp']['user'] = WPMS_SMTP_USER; - } - if ( defined( 'WPMS_SMTP_PASS' ) ) { - $converted['smtp']['pass'] = WPMS_SMTP_PASS; - } - - return $converted; - } - - /** - * Delete all old values that are stored separately each. - * - * @since 1.0.0 - */ - protected function clean_deprecated_data() { - - foreach ( $this->old_keys as $old_key ) { - delete_option( $old_key ); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Options.php b/wp-content/plugins/wp-mail-smtp/src/Options.php deleted file mode 100644 index f55a676..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Options.php +++ /dev/null @@ -1,1124 +0,0 @@ - [ - 'from_name', - 'from_email', - 'mailer', - 'return_path', - 'from_name_force', - 'from_email_force', - ], - 'smtp' => [ - 'host', - 'port', - 'encryption', - 'autotls', - 'auth', - 'user', - 'pass', - ], - 'gmail' => [ - 'client_id', - 'client_secret', - ], - 'outlook' => [ - 'client_id', - 'client_secret', - ], - 'zoho' => [ - 'domain', - 'client_id', - 'client_secret', - ], - 'amazonses' => [ - 'client_id', - 'client_secret', - 'region', - ], - 'mailgun' => [ - 'api_key', - 'domain', - 'region', - ], - 'sendgrid' => [ - 'api_key', - ], - 'smtpcom' => [ - 'api_key', - 'channel', - ], - 'sendinblue' => [ - 'api_key', - ], - 'pepipostapi' => [ - 'api_key', - ], - 'pepipost' => [ - 'host', - 'port', - 'encryption', - 'auth', - 'user', - 'pass', - ], - 'license' => [ - 'key', - ], - ]; - - /** - * That's where plugin options are saved in wp_options table. - * - * @since 1.0.0 - * - * @var string - */ - const META_KEY = 'wp_mail_smtp'; - - /** - * All the plugin options. - * - * @since 1.0.0 - * - * @var array - */ - private $_options = array(); - - /** - * Init the Options class. - * TODO: add a flag to process without retrieving const values. - * - * @since 1.0.0 - */ - public function __construct() { - $this->populate_options(); - } - - /** - * Initialize all the options, used for chaining. - * - * One-liner: - * Options::init()->get('smtp', 'host'); - * Options::init()->is_mailer_active( 'pepipost' ); - * - * Or multiple-usage: - * $options = new Options(); - * $options->get('smtp', 'host'); - * - * @since 1.0.0 - * - * @return Options - */ - public static function init() { - - static $instance; - - if ( ! $instance ) { - $instance = new self(); - } - - return $instance; - } - - /** - * Default options that are saved on plugin activation. - * - * @since 1.3.0 - * @since 2.1.0 Set the Force from email to "on" by default. - * - * @return array - */ - public static function get_defaults() { - - return array( - 'mail' => array( - 'from_email' => get_option( 'admin_email' ), - 'from_name' => get_bloginfo( 'name' ), - 'mailer' => 'mail', - 'return_path' => false, - 'from_email_force' => true, - 'from_name_force' => false, - ), - 'smtp' => array( - 'autotls' => true, - 'auth' => true, - ), - ); - } - - /** - * Retrieve all options of the plugin. - * - * @since 1.0.0 - * @since 2.2.0 Added the filter. - */ - protected function populate_options() { - - $this->_options = apply_filters( 'wp_mail_smtp_populate_options', get_option( self::META_KEY, [] ) ); - } - - /** - * Get all the options. - * - * Options::init()->get_all(); - * - * @since 1.0.0 - * - * @return array - */ - public function get_all() { - - $options = $this->_options; - - foreach ( $options as $group => $g_value ) { - foreach ( $g_value as $key => $value ) { - $options[ $group ][ $key ] = $this->get( $group, $key ); - } - } - - return apply_filters( 'wp_mail_smtp_options_get_all', $options ); - } - - /** - * Get all the options for a group. - * - * Options::init()->get_group('smtp') - will return the array of options for the group, including defaults and constants. - * - * @since 1.0.0 - * @since 1.5.0 Process values through the get() method which is aware of constants. - * - * @param string $group - * - * @return array - */ - public function get_group( $group ) { - - // Just to feel safe. - $group = sanitize_key( $group ); - - /* - * Get the values saved in DB. - * If plugin is configured with constants right from the start - this will not have all the values. - */ - $options = isset( $this->_options[ $group ] ) ? $this->_options[ $group ] : array(); - - // We need to process certain constants-aware options through actual constants. - if ( isset( self::$map[ $group ] ) ) { - foreach ( self::$map[ $group ] as $key ) { - $options[ $key ] = $this->get( $group, $key ); - } - } - - return apply_filters( 'wp_mail_smtp_options_get_group', $options, $group ); - } - - /** - * Get options by a group and a key. - * - * Options::init()->get( 'smtp', 'host' ) - will return only SMTP 'host' option. - * - * @since 1.0.0 - * @since 2.5.0 Added $strip_slashes method parameter. - * - * @param string $group The option group. - * @param string $key The option key. - * @param bool $strip_slashes If the slashes should be stripped from string values. - * - * @return mixed|null Null if value doesn't exist anywhere: in constants, in DB, in a map. So it's completely custom or a typo. - */ - public function get( $group, $key, $strip_slashes = true ) { - - // Just to feel safe. - $group = sanitize_key( $group ); - $key = sanitize_key( $key ); - $value = null; - - // Get the const value if we have one. - $value = $this->get_const_value( $group, $key, $value ); - - // We don't have a const value. - if ( $value === null ) { - // Ordinary database or default values. - if ( isset( $this->_options[ $group ] ) ) { - // Get the options key of a group. - if ( isset( $this->_options[ $group ][ $key ] ) ) { - $value = $this->get_existing_option_value( $group, $key ); - } else { - $value = $this->postprocess_key_defaults( $group, $key ); - } - } else { - /* - * Fallback to default if it doesn't exist in a map. - * Allow to retrieve only values from a map. - */ - if ( - isset( self::$map[ $group ] ) && - in_array( $key, self::$map[ $group ], true ) - ) { - $value = $this->postprocess_key_defaults( $group, $key ); - } - } - } - - // Conditionally strip slashes only from values saved in DB. Constants should be processed as is. - if ( $strip_slashes && is_string( $value ) && ! $this->is_const_defined( $group, $key ) ) { - $value = stripslashes( $value ); - } - - return apply_filters( 'wp_mail_smtp_options_get', $value, $group, $key ); - } - - /** - * Get the existing cached option value. - * - * @since 2.5.0 - * - * @param string $group The options group. - * @param string $key The options key. - * - * @return mixed - */ - private function get_existing_option_value( $group, $key ) { - - if ( $group === 'smtp' && $key === 'pass' ) { - try { - return Crypto::decrypt( $this->_options[ $group ][ $key ] ); - } catch ( \Exception $e ) { - return $this->_options[ $group ][ $key ]; - } - } - - return $this->_options[ $group ][ $key ]; - } - - /** - * Some options may be non-empty by default, - * so we need to postprocess them to convert. - * - * @since 1.0.0 - * @since 1.4.0 Added Mailgun:region. - * @since 1.5.0 Added Outlook/AmazonSES, license key support. - * - * @param string $group - * @param string $key - * - * @return mixed - */ - protected function postprocess_key_defaults( $group, $key ) { - - $value = ''; - - switch ( $key ) { - case 'from_email_force': - case 'from_name_force': - case 'return_path': - $value = $group === 'mail' ? false : true; - break; - - case 'mailer': - $value = 'mail'; - break; - - case 'encryption': - $value = in_array( $group, array( 'smtp', 'pepipost' ), true ) ? 'none' : $value; - break; - - case 'region': - $value = $group === 'mailgun' ? 'US' : $value; - break; - - case 'auth': - case 'autotls': - $value = in_array( $group, array( 'smtp', 'pepipost' ), true ) ? false : true; - break; - - case 'pass': - $value = $this->get_const_value( $group, $key, $value ); - break; - - case 'type': - $value = $group === 'license' ? 'lite' : ''; - break; - } - - return apply_filters( 'wp_mail_smtp_options_postprocess_key_defaults', $value, $group, $key ); - } - - /** - * Process the options values through the constants check. - * If we have defined associated constant - use it instead of a DB value. - * Backward compatibility is hard. - * General section of options won't have constants, so we are omitting those checks and just return default value. - * - * @since 1.0.0 - * @since 1.4.0 Added WPMS_MAILGUN_REGION. - * @since 1.5.0 Added Outlook/AmazonSES, license key support. - * @since 1.6.0 Added Sendinblue. - * @since 1.7.0 Added Do Not Send. - * @since 1.8.0 Added Pepipost API. - * - * @param string $group - * @param string $key - * @param mixed $value - * - * @return mixed - */ - protected function get_const_value( $group, $key, $value ) { - - if ( ! $this->is_const_enabled() ) { - return $value; - } - - $return = null; - - switch ( $group ) { - case 'mail': - switch ( $key ) { - case 'from_name': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_MAIL_FROM_NAME : $value; - break; - case 'from_email': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_MAIL_FROM : $value; - break; - case 'mailer': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_MAILER : $value; - break; - case 'return_path': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_SET_RETURN_PATH : $value; - break; - case 'from_name_force': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_MAIL_FROM_NAME_FORCE : $value; - break; - case 'from_email_force': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_MAIL_FROM_FORCE : $value; - break; - } - - break; - - case 'smtp': - switch ( $key ) { - case 'host': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_SMTP_HOST : $value; - break; - case 'port': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_SMTP_PORT : $value; - break; - case 'encryption': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? ( WPMS_SSL === '' ? 'none' : WPMS_SSL ) : $value; - break; - case 'auth': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? (bool) WPMS_SMTP_AUTH : $value; - break; - case 'autotls': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? (bool) WPMS_SMTP_AUTOTLS : $value; - break; - case 'user': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_SMTP_USER : $value; - break; - case 'pass': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_SMTP_PASS : $value; - break; - } - - break; - - case 'gmail': - switch ( $key ) { - case 'client_id': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_GMAIL_CLIENT_ID : $value; - break; - case 'client_secret': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_GMAIL_CLIENT_SECRET : $value; - break; - } - - break; - - case 'outlook': - switch ( $key ) { - case 'client_id': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_OUTLOOK_CLIENT_ID : $value; - break; - case 'client_secret': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_OUTLOOK_CLIENT_SECRET : $value; - break; - } - - break; - - case 'zoho': - switch ( $key ) { - case 'domain': - /** No inspection comment @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_ZOHO_DOMAIN : $value; - break; - case 'client_id': - /** No inspection comment @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_ZOHO_CLIENT_ID : $value; - break; - case 'client_secret': - /** No inspection comment @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_ZOHO_CLIENT_SECRET : $value; - break; - } - - break; - - case 'amazonses': - switch ( $key ) { - case 'client_id': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_AMAZONSES_CLIENT_ID : $value; - break; - case 'client_secret': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_AMAZONSES_CLIENT_SECRET : $value; - break; - case 'region': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_AMAZONSES_REGION : $value; - break; - } - - break; - - case 'mailgun': - switch ( $key ) { - case 'api_key': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_MAILGUN_API_KEY : $value; - break; - case 'domain': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_MAILGUN_DOMAIN : $value; - break; - case 'region': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_MAILGUN_REGION : $value; - break; - } - - break; - - case 'sendgrid': - switch ( $key ) { - case 'api_key': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_SENDGRID_API_KEY : $value; - break; - } - - break; - - case 'smtpcom': - switch ( $key ) { - case 'api_key': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_SMTPCOM_API_KEY : $value; - break; - case 'channel': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_SMTPCOM_CHANNEL : $value; - break; - } - - break; - - case 'sendinblue': - switch ( $key ) { - case 'api_key': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_SENDINBLUE_API_KEY : $value; - break; - } - - break; - - case 'pepipostapi': - switch ( $key ) { - case 'api_key': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_PEPIPOST_API_KEY : $value; - break; - } - - break; - - case 'license': - switch ( $key ) { - case 'key': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_LICENSE_KEY : $value; - break; - } - - break; - - case 'general': - switch ( $key ) { - case 'do_not_send': - /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_DO_NOT_SEND : $value; - break; - } - - break; - - default: - // Always return the default value if nothing from above matches the request. - $return = $value; - } - - return apply_filters( 'wp_mail_smtp_options_get_const_value', $return, $group, $key, $value ); - } - - /** - * Whether constants redefinition is enabled or not. - * - * @since 1.0.0 - * @since 1.5.0 Added filter to redefine the value. - * - * @return bool - */ - public function is_const_enabled() { - - $return = defined( 'WPMS_ON' ) && WPMS_ON === true; - - return apply_filters( 'wp_mail_smtp_options_is_const_enabled', $return ); - } - - /** - * We need this check to reuse later in admin area, - * to distinguish settings fields that were redefined, - * and display them differently. - * - * @since 1.0.0 - * @since 1.5.0 Added a filter, Outlook/AmazonSES, license key support. - * @since 1.6.0 Added Sendinblue. - * @since 1.7.0 Added Do Not Send. - * @since 1.8.0 Added Pepipost API. - * - * @param string $group - * @param string $key - * - * @return bool - */ - public function is_const_defined( $group, $key ) { - - if ( ! $this->is_const_enabled() ) { - return false; - } - - // Just to feel safe. - $group = sanitize_key( $group ); - $key = sanitize_key( $key ); - $return = false; - - switch ( $group ) { - case 'mail': - switch ( $key ) { - case 'from_name': - $return = defined( 'WPMS_MAIL_FROM_NAME' ) && WPMS_MAIL_FROM_NAME; - break; - case 'from_email': - $return = defined( 'WPMS_MAIL_FROM' ) && WPMS_MAIL_FROM; - break; - case 'mailer': - $return = defined( 'WPMS_MAILER' ) && WPMS_MAILER; - break; - case 'return_path': - $return = defined( 'WPMS_SET_RETURN_PATH' ) && ( WPMS_SET_RETURN_PATH === 'true' || WPMS_SET_RETURN_PATH === true ); - break; - case 'from_name_force': - $return = defined( 'WPMS_MAIL_FROM_NAME_FORCE' ) && ( WPMS_MAIL_FROM_NAME_FORCE === 'true' || WPMS_MAIL_FROM_NAME_FORCE === true ); - break; - case 'from_email_force': - $return = defined( 'WPMS_MAIL_FROM_FORCE' ) && ( WPMS_MAIL_FROM_FORCE === 'true' || WPMS_MAIL_FROM_FORCE === true ); - break; - } - - break; - - case 'smtp': - switch ( $key ) { - case 'host': - $return = defined( 'WPMS_SMTP_HOST' ) && WPMS_SMTP_HOST; - break; - case 'port': - $return = defined( 'WPMS_SMTP_PORT' ) && WPMS_SMTP_PORT; - break; - case 'encryption': - $return = defined( 'WPMS_SSL' ); - break; - case 'auth': - $return = defined( 'WPMS_SMTP_AUTH' ); - break; - case 'autotls': - $return = defined( 'WPMS_SMTP_AUTOTLS' ); - break; - case 'user': - $return = defined( 'WPMS_SMTP_USER' ) && WPMS_SMTP_USER; - break; - case 'pass': - $return = defined( 'WPMS_SMTP_PASS' ) && WPMS_SMTP_PASS; - break; - } - - break; - - case 'gmail': - switch ( $key ) { - case 'client_id': - $return = defined( 'WPMS_GMAIL_CLIENT_ID' ) && WPMS_GMAIL_CLIENT_ID; - break; - case 'client_secret': - $return = defined( 'WPMS_GMAIL_CLIENT_SECRET' ) && WPMS_GMAIL_CLIENT_SECRET; - break; - } - - break; - - case 'outlook': - switch ( $key ) { - case 'client_id': - $return = defined( 'WPMS_OUTLOOK_CLIENT_ID' ) && WPMS_OUTLOOK_CLIENT_ID; - break; - case 'client_secret': - $return = defined( 'WPMS_OUTLOOK_CLIENT_SECRET' ) && WPMS_OUTLOOK_CLIENT_SECRET; - break; - } - - break; - - case 'zoho': - switch ( $key ) { - case 'domain': - $return = defined( 'WPMS_ZOHO_DOMAIN' ) && WPMS_ZOHO_DOMAIN; - break; - case 'client_id': - $return = defined( 'WPMS_ZOHO_CLIENT_ID' ) && WPMS_ZOHO_CLIENT_ID; - break; - case 'client_secret': - $return = defined( 'WPMS_ZOHO_CLIENT_SECRET' ) && WPMS_ZOHO_CLIENT_SECRET; - break; - } - - break; - - case 'amazonses': - switch ( $key ) { - case 'client_id': - $return = defined( 'WPMS_AMAZONSES_CLIENT_ID' ) && WPMS_AMAZONSES_CLIENT_ID; - break; - case 'client_secret': - $return = defined( 'WPMS_AMAZONSES_CLIENT_SECRET' ) && WPMS_AMAZONSES_CLIENT_SECRET; - break; - case 'region': - $return = defined( 'WPMS_AMAZONSES_REGION' ) && WPMS_AMAZONSES_REGION; - break; - } - - break; - - case 'mailgun': - switch ( $key ) { - case 'api_key': - $return = defined( 'WPMS_MAILGUN_API_KEY' ) && WPMS_MAILGUN_API_KEY; - break; - case 'domain': - $return = defined( 'WPMS_MAILGUN_DOMAIN' ) && WPMS_MAILGUN_DOMAIN; - break; - case 'region': - $return = defined( 'WPMS_MAILGUN_REGION' ) && WPMS_MAILGUN_REGION; - break; - } - - break; - - case 'sendgrid': - switch ( $key ) { - case 'api_key': - $return = defined( 'WPMS_SENDGRID_API_KEY' ) && WPMS_SENDGRID_API_KEY; - break; - } - - break; - - case 'smtpcom': - switch ( $key ) { - case 'api_key': - $return = defined( 'WPMS_SMTPCOM_API_KEY' ) && WPMS_SMTPCOM_API_KEY; - break; - case 'channel': - $return = defined( 'WPMS_SMTPCOM_CHANNEL' ) && WPMS_SMTPCOM_CHANNEL; - break; - } - - break; - - case 'sendinblue': - switch ( $key ) { - case 'api_key': - $return = defined( 'WPMS_SENDINBLUE_API_KEY' ) && WPMS_SENDINBLUE_API_KEY; - break; - } - - break; - - case 'pepipostapi': - switch ( $key ) { - case 'api_key': - $return = defined( 'WPMS_PEPIPOST_API_KEY' ) && WPMS_PEPIPOST_API_KEY; - break; - } - - break; - - case 'license': - switch ( $key ) { - case 'key': - $return = defined( 'WPMS_LICENSE_KEY' ) && WPMS_LICENSE_KEY; - break; - } - - break; - - case 'general': - switch ( $key ) { - case 'do_not_send': - /** @noinspection PhpUndefinedConstantInspection */ - $return = defined( 'WPMS_DO_NOT_SEND' ) && WPMS_DO_NOT_SEND; - break; - } - - break; - } - - return apply_filters( 'wp_mail_smtp_options_is_const_defined', $return, $group, $key ); - } - - /** - * Set plugin options, all at once. - * - * @since 1.0.0 - * @since 1.3.0 Added $once argument to save options only if they don't exist already. - * @since 1.4.0 Added Mailgun:region. - * @since 1.5.0 Added Outlook/AmazonSES, Email Log. Stop saving const values into DB. - * @since 2.5.0 Added $overwrite_existing method parameter. - * - * @param array $options Plugin options to save. - * @param bool $once Whether to update existing options or to add these options only once. - * @param bool $overwrite_existing Whether to overwrite existing settings or merge these passed options with existing ones. - */ - public function set( $options, $once = false, $overwrite_existing = true ) { - - // Merge existing settings with new values. - if ( ! $overwrite_existing ) { - $options = self::array_merge_recursive( $this->get_all_raw(), $options ); - } - - $options = $this->process_generic_options( $options ); - $options = $this->process_mailer_specific_options( $options ); - $options = apply_filters( 'wp_mail_smtp_options_set', $options ); - - // Whether to update existing options or to add these options only once if they don't exist yet. - if ( $once ) { - add_option( self::META_KEY, $options, '', 'no' ); // Do not autoload these options. - } else { - update_option( self::META_KEY, $options, 'no' ); - } - - // Now we need to re-cache values. - $this->populate_options(); - - do_action( 'wp_mail_smtp_options_set_after', $options ); - } - - /** - * Process the generic plugin options. - * - * @since 2.5.0 - * - * @param array $options The options array. - * - * @return array - */ - private function process_generic_options( $options ) { // phpcs:ignore - - foreach ( (array) $options as $group => $keys ) { - foreach ( $keys as $option_name => $option_value ) { - switch ( $group ) { - case 'mail': - switch ( $option_name ) { - case 'from_name': - case 'mailer': - $options[ $group ][ $option_name ] = sanitize_text_field( $option_value ); - break; - case 'from_email': - if ( filter_var( $option_value, FILTER_VALIDATE_EMAIL ) ) { - $options[ $group ][ $option_name ] = sanitize_email( $option_value ); - } else { - $options[ $group ][ $option_name ] = sanitize_email( - wp_mail_smtp()->get_processor()->get_default_email() - ); - } - break; - case 'return_path': - case 'from_name_force': - case 'from_email_force': - $options[ $group ][ $option_name ] = (bool) $option_value; - break; - } - break; - - case 'general': - switch ( $option_name ) { - case 'do_not_send': - case 'am_notifications_hidden': - case 'email_delivery_errors_hidden': - case 'uninstall': - case UsageTracking::SETTINGS_SLUG: - $options[ $group ][ $option_name ] = (bool) $option_value; - break; - } - } - } - } - - return $options; - } - - /** - * Process mailers-specific plugin options. - * - * @since 2.5.0 - * - * @param array $options The options array. - * - * @return array - */ - private function process_mailer_specific_options( $options ) { // phpcs:ignore - - if ( - ! empty( $options['mail']['mailer'] ) && - isset( $options[ $options['mail']['mailer'] ] ) && - in_array( $options['mail']['mailer'], [ 'pepipost', 'pepipostapi', 'smtp', 'sendgrid', 'smtpcom', 'sendinblue', 'mailgun', 'gmail', 'outlook', 'zoho' ], true ) - ) { - - $mailer = $options['mail']['mailer']; - - foreach ( $options[ $mailer ] as $option_name => $option_value ) { - switch ( $option_name ) { - case 'host': // smtp. - case 'user': // smtp. - case 'encryption': // smtp. - case 'region': // mailgun/amazonses. - $options[ $mailer ][ $option_name ] = $this->is_const_defined( $mailer, $option_name ) ? '' : sanitize_text_field( $option_value ); - break; // smtp. - case 'port': - $options[ $mailer ][ $option_name ] = $this->is_const_defined( $mailer, $option_name ) ? 25 : (int) $option_value; - break; - case 'auth': // smtp. - case 'autotls': // smtp. - $option_value = (bool) $option_value; - - $options[ $mailer ][ $option_name ] = $this->is_const_defined( $mailer, $option_name ) ? false : $option_value; - break; - - case 'pass': // smtp. - // Do not process as they may contain certain special characters, but allow to be overwritten using constants. - $option_value = trim( (string) $option_value ); - $options[ $mailer ][ $option_name ] = $this->is_const_defined( $mailer, $option_name ) ? '' : $option_value; - - if ( $mailer === 'smtp' && ! $this->is_const_defined( 'smtp', 'pass' ) ) { - try { - $options[ $mailer ][ $option_name ] = Crypto::encrypt( $option_value ); - } catch ( \Exception $e ) {} // phpcs:ignore - } - break; - - case 'api_key': // mailgun/sendgrid/sendinblue/pepipostapi/smtpcom. - case 'domain': // mailgun/zoho. - case 'client_id': // gmail/outlook/amazonses/zoho. - case 'client_secret': // gmail/outlook/amazonses/zoho. - case 'auth_code': // gmail/outlook. - case 'channel': // smtpcom. - $options[ $mailer ][ $option_name ] = $this->is_const_defined( $mailer, $option_name ) ? '' : sanitize_text_field( $option_value ); - break; - - case 'access_token': // gmail/outlook/zoho, is an array. - case 'user_details': // outlook/zoho, is an array. - // These options don't support constants. - $options[ $mailer ][ $option_name ] = $option_value; - break; - } - } - } - - return $options; - } - - /** - * Merge recursively, including a proper substitution of values in sub-arrays when keys are the same. - * It's more like array_merge() and array_merge_recursive() combined. - * - * @since 1.0.0 - * - * @return array - */ - public static function array_merge_recursive() { - - $arrays = func_get_args(); - - if ( count( $arrays ) < 2 ) { - return isset( $arrays[0] ) ? $arrays[0] : array(); - } - - $merged = array(); - - while ( $arrays ) { - $array = array_shift( $arrays ); - - if ( ! is_array( $array ) ) { - return array(); - } - - if ( empty( $array ) ) { - continue; - } - - foreach ( $array as $key => $value ) { - if ( is_string( $key ) ) { - if ( - is_array( $value ) && - array_key_exists( $key, $merged ) && - is_array( $merged[ $key ] ) - ) { - $merged[ $key ] = call_user_func( __METHOD__, $merged[ $key ], $value ); - } else { - $merged[ $key ] = $value; - } - } else { - $merged[] = $value; - } - } - } - - return $merged; - } - - /** - * Check whether the site is using Pepipost SMTP or not. - * - * @deprecated 2.4.0 - * - * @since 1.0.0 - * - * @return bool - */ - public function is_pepipost_active() { - - _deprecated_function( - __METHOD__, - '2.4.0', - 'WPMailSMTP\Options::is_mailer_active()' - ); - - return apply_filters( 'wp_mail_smtp_options_is_pepipost_active', $this->is_mailer_active( 'pepipost' ) ); - } - - /** - * Check whether the site is using provided mailer or not. - * - * @since 2.3.0 - * - * @param string $mailer The mailer slug. - * - * @return bool - */ - public function is_mailer_active( $mailer ) { - - $mailer = sanitize_key( $mailer ); - - return apply_filters( - "wp_mail_smtp_options_is_mailer_active_{$mailer}", - $this->get( 'mail', 'mailer' ) === $mailer - ); - } - - /** - * Check whether the site is using Pepipost/SMTP as a mailer or not. - * - * @since 1.1.0 - * - * @return bool - */ - public function is_mailer_smtp() { - return apply_filters( 'wp_mail_smtp_options_is_mailer_smtp', in_array( $this->get( 'mail', 'mailer' ), array( 'pepipost', 'smtp' ), true ) ); - } - - /** - * Get all the options, but without stripping the slashes. - * - * @since 2.5.0 - * - * @return array - */ - public function get_all_raw() { - - $options = $this->_options; - - foreach ( $options as $group => $g_value ) { - foreach ( $g_value as $key => $value ) { - $options[ $group ][ $key ] = $this->get( $group, $key, false ); - } - } - - return $options; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Processor.php b/wp-content/plugins/wp-mail-smtp/src/Processor.php deleted file mode 100644 index adec2fd..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Processor.php +++ /dev/null @@ -1,336 +0,0 @@ -get( 'mail', 'mailer' ); - - // Check that mailer is not blank, and if mailer=smtp, host is not blank. - if ( - ! $mailer || - ( 'smtp' === $mailer && ! $options->get( 'smtp', 'host' ) ) - ) { - return; - } - - // If the mailer is pepipost, make sure we have a username and password. - if ( - 'pepipost' === $mailer && - ( ! $options->get( 'pepipost', 'user' ) && ! $options->get( 'pepipost', 'pass' ) ) - ) { - return; - } - - // Set the mailer type as per config above, this overrides the already called isMail method. - // It's basically always 'smtp'. - $phpmailer->Mailer = $mailer; - - // Set the Sender (return-path) if required. - if ( $options->get( 'mail', 'return_path' ) ) { - $phpmailer->Sender = $phpmailer->From; - } - - // Set the SMTPSecure value, if set to none, leave this blank. Possible values: 'ssl', 'tls', ''. - if ( 'none' === $options->get( $mailer, 'encryption' ) ) { - $phpmailer->SMTPSecure = ''; - } else { - $phpmailer->SMTPSecure = $options->get( $mailer, 'encryption' ); - } - - // Check if user has disabled SMTPAutoTLS. - if ( $options->get( $mailer, 'encryption' ) !== 'tls' && ! $options->get( $mailer, 'autotls' ) ) { - $phpmailer->SMTPAutoTLS = false; - } - - // Check if original WP from email can be set as the reply_to attribute. - if ( $this->allow_setting_original_from_email_to_reply_to( $phpmailer->getReplyToAddresses(), $mailer ) ) { - $phpmailer->addReplyTo( $this->wp_mail_from ); - } - - // If we're sending via SMTP, set the host. - if ( 'smtp' === $mailer ) { - // Set the other options. - $phpmailer->Host = $options->get( $mailer, 'host' ); - $phpmailer->Port = $options->get( $mailer, 'port' ); - - // If we're using smtp auth, set the username & password. - if ( $options->get( $mailer, 'auth' ) ) { - $phpmailer->SMTPAuth = true; - $phpmailer->Username = $options->get( $mailer, 'user' ); - $phpmailer->Password = $options->get( $mailer, 'pass' ); - } - } elseif ( 'pepipost' === $mailer ) { - // Set the Pepipost settings for BC. - $phpmailer->Mailer = 'smtp'; - $phpmailer->Host = 'smtp.pepipost.com'; - $phpmailer->Port = $options->get( $mailer, 'port' ); - $phpmailer->SMTPSecure = $options->get( $mailer, 'encryption' ) === 'none' ? '' : $options->get( $mailer, 'encryption' ); - $phpmailer->SMTPAuth = true; - $phpmailer->Username = $options->get( $mailer, 'user' ); - $phpmailer->Password = $options->get( $mailer, 'pass' ); - } - - // Maybe set default reply-to header. - $this->set_default_reply_to( $phpmailer ); - - // You can add your own options here. - // See the phpmailer documentation for more info: https://github.com/PHPMailer/PHPMailer/tree/5.2-stable. - /** @noinspection PhpUnusedLocalVariableInspection It's passed by reference. */ - $phpmailer = apply_filters( 'wp_mail_smtp_custom_options', $phpmailer ); - } - - /** - * Check if it's allowed to set the original WP from email to the reply_to field. - * - * @since 2.1.0 - * - * @param array $reply_to Array of currently set reply to emails. - * @param string $mailer The slug of current mailer. - * - * @return bool - */ - protected function allow_setting_original_from_email_to_reply_to( $reply_to, $mailer ) { - - $options = new Options(); - $forced = $options->get( 'mail', 'from_email_force' ); - $from_email = $options->get( 'mail', 'from_email' ); - - if ( ! empty( $reply_to ) || empty( $this->wp_mail_from ) ) { - return false; - } - - if ( $mailer === 'gmail' ) { - $forced = true; - } elseif ( in_array( $mailer, [ 'outlook', 'zoho' ], true ) ) { - $sender = $options->get( $mailer, 'user_details' ); - $from_email = ! empty( $sender['email'] ) ? $sender['email'] : ''; - $forced = true; - } - - if ( - $from_email === $this->wp_mail_from || - ! $forced - ) { - return false; - } - - return true; - } - - /** - * This method will be called every time 'smtp' and 'mail' mailers will be used to send emails. - * - * @since 1.3.0 - * @since 1.5.0 Added a do_action() to be able to hook into. - * - * @param bool $is_sent - * @param array $to - * @param array $cc - * @param array $bcc - * @param string $subject - * @param string $body - * @param string $from - */ - public static function send_callback( $is_sent, $to, $cc, $bcc, $subject, $body, $from ) { - - if ( ! $is_sent ) { - // Add mailer to the beginning and save to display later. - Debug::set( - 'Mailer: ' . esc_html( wp_mail_smtp()->get_providers()->get_options( Options::init()->get( 'mail', 'mailer' ) )->get_title() ) . "\r\n" . - 'PHPMailer was able to connect to SMTP server but failed while trying to send an email.' - ); - } else { - Debug::clear(); - } - - do_action( 'wp_mail_smtp_mailcatcher_smtp_send_after', $is_sent, $to, $cc, $bcc, $subject, $body, $from ); - } - - /** - * Modify the email address that is used for sending emails. - * - * @since 1.0.0 - * @since 1.3.0 Forcing email rewrite if option is selected. - * @since 1.7.0 Default email may be empty, so pay attention to that as well. - * - * @param string $wp_email The email address passed by the filter. - * - * @return string - */ - public function filter_mail_from_email( $wp_email ) { - - $options = new Options(); - $forced = $options->get( 'mail', 'from_email_force' ); - $from_email = $options->get( 'mail', 'from_email' ); - $def_email = WP::get_default_email(); - - // Save the "original" set WP email from address for later use. - if ( $wp_email !== $def_email ) { - $this->wp_mail_from = filter_var( $wp_email, FILTER_VALIDATE_EMAIL ); - } - - // Return FROM EMAIL if forced in settings. - if ( $forced & ! empty( $from_email ) ) { - return $from_email; - } - - // If the FROM EMAIL is not the default, return it unchanged. - if ( ! empty( $def_email ) && $wp_email !== $def_email ) { - return $wp_email; - } - - return ! empty( $from_email ) ? $from_email : $wp_email; - } - - /** - * Modify the sender name that is used for sending emails. - * - * @since 1.0.0 - * @since 1.3.0 Forcing name rewrite if option is selected. - * - * @param string $name - * - * @return string - */ - public function filter_mail_from_name( $name ) { - - $options = new Options(); - $force = $options->get( 'mail', 'from_name_force' ); - - // If the FROM NAME is not the default and not forced, return it unchanged. - if ( ! $force && $name !== $this->get_default_name() ) { - return $name; - } - - $name = $options->get( 'mail', 'from_name' ); - - return $name; - } - - /** - * Get the default email address based on domain name. - * - * @since 1.0.0 - * @since 1.7.0 May return an empty string. - * - * @return string Empty string when we aren't able to get the site domain (CLI, misconfigured server etc). - */ - public function get_default_email() { - - $server_name = Geo::get_site_domain(); - - if ( empty( $server_name ) ) { - return ''; - } - - // Get rid of www. - $sitename = strtolower( $server_name ); - if ( substr( $sitename, 0, 4 ) === 'www.' ) { - $sitename = substr( $sitename, 4 ); - } - - return 'wordpress@' . $sitename; - } - - /** - * Get the default email FROM NAME generated by WordPress. - * - * @since 1.3.0 - * - * @return string - */ - public function get_default_name() { - return 'WordPress'; - } - - /** - * Get or create the phpmailer. - * - * @since 1.9.0 - * - * @return MailCatcherInterface - */ - public function get_phpmailer() { - - global $phpmailer; - - // Make sure the PHPMailer class has been instantiated. - if ( ! is_object( $phpmailer ) || ! is_a( $phpmailer, 'PHPMailer' ) ) { - $phpmailer = wp_mail_smtp()->generate_mail_catcher( true ); // phpcs:ignore - } - - return $phpmailer; - } - - /** - * Set the default reply_to header, if: - * - no other reply_to headers are already set and, - * - the default reply_to address filter `wp_mail_smtp_processor_default_reply_to_addresses` is configured. - * - * @since 2.1.1 - * - * @param MailCatcherInterface $phpmailer The PHPMailer object. - */ - private function set_default_reply_to( $phpmailer ) { - - if ( ! empty( $phpmailer->getReplyToAddresses() ) ) { - return; - } - - $default_reply_to_emails = apply_filters( 'wp_mail_smtp_processor_set_default_reply_to', '' ); - - if ( empty( $default_reply_to_emails ) ) { - return; - } - - foreach ( explode( ',', $default_reply_to_emails ) as $email ) { - $email = trim( $email ); - - if ( filter_var( $email, FILTER_VALIDATE_EMAIL ) ) { - $phpmailer->addReplyTo( $email ); - } - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/AmazonSES/Options.php b/wp-content/plugins/wp-mail-smtp/src/Providers/AmazonSES/Options.php deleted file mode 100644 index 25c49a4..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/AmazonSES/Options.php +++ /dev/null @@ -1,44 +0,0 @@ - wp_mail_smtp()->assets_url . '/images/providers/aws.svg', - 'slug' => 'amazonses', - 'title' => esc_html__( 'Amazon SES', 'wp-mail-smtp' ), - 'disabled' => true, - ) - ); - } - - /** - * @inheritdoc - */ - public function display_options() { - - ?> - -

- -

- - plugin_path . '/vendor/autoload.php'; - } - - /** - * Get the url, that users will be redirected back to finish the OAuth process. - * - * @since 1.0.0 - * - * @return string - */ - public static function get_plugin_auth_url() { - - return add_query_arg( 'tab', 'auth', wp_mail_smtp()->get_admin()->get_admin_page_url() ); - } - - /** - * Update auth code in our DB. - * - * @since 1.0.0 - * - * @param string $code - */ - protected function update_auth_code( $code ) { - - $options = new PluginOptions(); - $all = $options->get_all(); - - // To save in DB. - $all[ $this->mailer_slug ]['auth_code'] = $code; - - // To save in currently retrieved options array. - $this->options['auth_code'] = $code; - - // NOTE: These options need to be saved by overwriting all options, because WP automatic updates can cause an issue: GH #575! - $options->set( $all, false, true ); - } - - /** - * Update access token in our DB. - * - * @since 1.0.0 - * - * @param mixed $token - */ - protected function update_access_token( $token ) { - - $options = new PluginOptions(); - $all = $options->get_all(); - - // To save in DB. - $all[ $this->mailer_slug ]['access_token'] = $token; - - // To save in currently retrieved options array. - $this->options['access_token'] = $token; - - // NOTE: These options need to be saved by overwriting all options, because WP automatic updates can cause an issue: GH #575! - $options->set( $all, false, true ); - } - - /** - * Update refresh token in our DB. - * - * @since 1.0.0 - * - * @param mixed $token - */ - protected function update_refresh_token( $token ) { - - $options = new PluginOptions(); - $all = $options->get_all(); - - // To save in DB. - $all[ $this->mailer_slug ]['refresh_token'] = $token; - - // To save in currently retrieved options array. - $this->options['refresh_token'] = $token; - - // NOTE: These options need to be saved by overwriting all options, because WP automatic updates can cause an issue: GH #575! - $options->set( $all, false, true ); - } - - /** - * @inheritdoc - */ - public function is_clients_saved() { - - return ! empty( $this->options['client_id'] ) && ! empty( $this->options['client_secret'] ); - } - - /** - * @inheritdoc - */ - public function is_auth_required() { - - return empty( $this->options['access_token'] ) || empty( $this->options['refresh_token'] ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/AuthInterface.php b/wp-content/plugins/wp-mail-smtp/src/Providers/AuthInterface.php deleted file mode 100644 index 9802c85..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/AuthInterface.php +++ /dev/null @@ -1,30 +0,0 @@ -mailer_slug = $options->get( 'mail', 'mailer' ); - - if ( $this->mailer_slug !== Options::SLUG ) { - return; - } - - $this->options = $options->get_group( $this->mailer_slug ); - - if ( $this->is_clients_saved() ) { - - $this->include_vendor_lib(); - - $this->client = $this->get_client(); - } - } - - /** - * Get the url, that users will be redirected back to finish the OAuth process. - * - * @since 1.5.2 Returned to the old, pre-1.5, structure of the link to preserve BC. - * - * @return string - */ - public static function get_plugin_auth_url() { - - return apply_filters( - 'wp_mail_smtp_gmail_get_plugin_auth_url', - add_query_arg( - array( - 'page' => Area::SLUG, - 'tab' => 'auth', - ), - admin_url( 'options-general.php' ) - ) - ); - } - - /** - * Init and get the Google Client object. - * - * @since 1.0.0 - * @since 1.5.0 Add ability to apply custom options to the client via a filter. - * - * @return Google_Client - */ - public function get_client() { - - // Doesn't load client twice + gives ability to overwrite. - if ( ! empty( $this->client ) ) { - return $this->client; - } - - $this->include_vendor_lib(); - - $client = new Google_Client( - array( - 'client_id' => $this->options['client_id'], - 'client_secret' => $this->options['client_secret'], - 'redirect_uris' => array( - self::get_oauth_redirect_url(), - ), - ) - ); - $client->setApplicationName( 'WP Mail SMTP v' . WPMS_PLUGIN_VER ); - $client->setAccessType( 'offline' ); - $client->setApprovalPrompt( 'force' ); - $client->setIncludeGrantedScopes( true ); - // We request only the sending capability, as it's what we only need to do. - $client->setScopes( array( Google_Service_Gmail::MAIL_GOOGLE_COM ) ); - $client->setRedirectUri( self::get_oauth_redirect_url() ); - $client->setState( self::get_plugin_auth_url() ); - - // Apply custom options to the client. - $client = apply_filters( 'wp_mail_smtp_providers_gmail_auth_get_client_custom_options', $client ); - - if ( - $this->is_auth_required() && - ! empty( $this->options['auth_code'] ) - ) { - try { - $creds = $client->fetchAccessTokenWithAuthCode( $this->options['auth_code'] ); - } catch ( \Exception $e ) { - $creds['error'] = $e->getMessage(); - } - - // Bail if we have an error. - if ( ! empty( $creds['error'] ) ) { - if ( $creds['error'] === 'invalid_client' ) { - $creds['error'] .= PHP_EOL . esc_html__( 'Please make sure your Google Client ID and Secret in the plugin settings are valid. Save the settings and try the Authorization again.' , 'wp-mail-smtp' ); - } - - Debug::set( - 'Mailer: Gmail' . "\r\n" . - $creds['error'] - ); - - return $client; - } else { - Debug::clear(); - } - - $this->update_access_token( $client->getAccessToken() ); - $this->update_refresh_token( $client->getRefreshToken() ); - } - - if ( ! empty( $this->options['access_token'] ) ) { - $client->setAccessToken( $this->options['access_token'] ); - } - - // Refresh the token if it's expired. - if ( $client->isAccessTokenExpired() ) { - $refresh = $client->getRefreshToken(); - if ( empty( $refresh ) && isset( $this->options['refresh_token'] ) ) { - $refresh = $this->options['refresh_token']; - } - - if ( ! empty( $refresh ) ) { - try { - $creds = $client->fetchAccessTokenWithRefreshToken( $refresh ); - } catch ( \Exception $e ) { - $creds['error'] = $e->getMessage(); - Debug::set( - 'Mailer: Gmail' . "\r\n" . - $e->getMessage() - ); - } - - // Bail if we have an error. - if ( ! empty( $creds['error'] ) ) { - return $client; - } - - $this->update_access_token( $client->getAccessToken() ); - $this->update_refresh_token( $client->getRefreshToken() ); - } - } - - return $client; - } - - /** - * Get the auth code from the $_GET and save it. - * Redirect user back to settings with an error message, if failed. - * - * @since 1.0.0 - */ - public function process() { - - if ( ! ( isset( $_GET['tab'] ) && $_GET['tab'] === 'auth' ) ) { // phpcs:ignore - wp_safe_redirect( wp_mail_smtp()->get_admin()->get_admin_page_url() ); - exit; - } - - // We can't process without saved client_id/secret. - if ( ! $this->is_clients_saved() ) { - Debug::set( - esc_html__( 'There was an error while processing the Google authentication request. Please make sure that you have Client ID and Client Secret both valid and saved.', 'wp-mail-smtp' ) - ); - wp_safe_redirect( - add_query_arg( - 'error', - 'google_no_clients', - wp_mail_smtp()->get_admin()->get_admin_page_url() - ) - ); - exit; - } - - $this->include_vendor_lib(); - - $code = ''; - $scope = ''; - $error = ''; - - if ( isset( $_GET['error'] ) ) { // phpcs:ignore - $error = sanitize_key( $_GET['error'] ); // phpcs:ignore - } - - // In case of any error: display a message to a user. - if ( ! empty( $error ) ) { - wp_safe_redirect( - add_query_arg( - 'error', - 'google_' . $error, - wp_mail_smtp()->get_admin()->get_admin_page_url() - ) - ); - exit; - } - - if ( isset( $_GET['code'] ) ) { // phpcs:ignore - $code = urldecode( $_GET['code'] ); // phpcs:ignore - } - if ( isset( $_GET['scope'] ) ) { // phpcs:ignore - $scope = urldecode( base64_decode( $_GET['scope'] ) ); // phpcs:ignore - } - - // Let's try to get the access token. - if ( - ! empty( $code ) && - ( - $scope === Google_Service_Gmail::MAIL_GOOGLE_COM . ' ' . Google_Service_Gmail::GMAIL_SEND || - $scope === Google_Service_Gmail::GMAIL_SEND . ' ' . Google_Service_Gmail::MAIL_GOOGLE_COM || - $scope === Google_Service_Gmail::GMAIL_SEND || - $scope === Google_Service_Gmail::MAIL_GOOGLE_COM - ) - ) { - // Save the auth code. So Google_Client can reuse it to retrieve the access token. - $this->update_auth_code( $code ); - } else { - wp_safe_redirect( - add_query_arg( - 'error', - 'google_no_code_scope', - wp_mail_smtp()->get_admin()->get_admin_page_url() - ) - ); - exit; - } - - wp_safe_redirect( - add_query_arg( - 'success', - 'google_site_linked', - wp_mail_smtp()->get_admin()->get_admin_page_url() - ) - ); - exit; - } - - /** - * Get the auth URL used to proceed to Provider to request access to send emails. - * - * @since 1.0.0 - * - * @return string - */ - public function get_auth_url() { - - if ( - ! empty( $this->client ) && - class_exists( 'WPMailSMTP\Vendor\Google_Client', false ) && - $this->client instanceof Google_Client - ) { - return filter_var( $this->client->createAuthUrl(), FILTER_SANITIZE_URL ); - } - - return '#'; - } - - /** - * Get user information (like email etc) that is associated with the current connection. - * - * @since 1.5.0 - * - * @return array - */ - public function get_user_info() { - - $gmail = new Google_Service_Gmail( $this->get_client() ); - - try { - $email = $gmail->users->getProfile( 'me' )->getEmailAddress(); - } catch ( \Exception $e ) { - $email = ''; - } - - return array( 'email' => $email ); - } - - /** - * Get the registered email addresses that the user can use as the "from email". - * - * @since 2.2.0 - * - * @return array The list of possible from email addresses. - */ - public function get_user_possible_send_from_addresses() { - - if ( isset( $this->aliases ) ) { - return $this->aliases; - } - - $gmail = new Google_Service_Gmail( $this->get_client() ); - - try { - $response = $gmail->users_settings_sendAs->listUsersSettingsSendAs( 'me' ); // phpcs:ignore - - // phpcs:disable - $this->aliases = array_map( - function( $sendAsObject ) { - return $sendAsObject['sendAsEmail']; - }, - (array) $response->getSendAs() - ); - // phpcs:enable - - } catch ( \Exception $exception ) { - $this->aliases = []; - } - - return $this->aliases; - } - - /** - * Get the Google oAuth 2.0 redirect URL. - * - * This is the URL that Google will redirect after the access to the Gmail account is granted or rejected. - * The below endpoint will then redirect back to the user's WP site (to self::get_plugin_auth_url() URL). - * - * @since 2.5.0 - * - * @return string - */ - public static function get_oauth_redirect_url() { - - return 'https://connect.wpmailsmtp.com/google/'; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/Gmail/Mailer.php b/wp-content/plugins/wp-mail-smtp/src/Providers/Gmail/Mailer.php deleted file mode 100644 index e202d8c..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/Gmail/Mailer.php +++ /dev/null @@ -1,315 +0,0 @@ -is_php_compatible() ) { - return; - } - } - - /** - * Re-use the MailCatcher class methods and properties. - * - * @since 1.2.0 - * - * @param MailCatcherInterface $phpmailer The MailCatcher object. - */ - public function process_phpmailer( $phpmailer ) { - - // Make sure that we have access to PHPMailer class methods. - if ( ! wp_mail_smtp()->is_valid_phpmailer( $phpmailer ) ) { - return; - } - - $this->phpmailer = $phpmailer; - } - - /** - * Use Google API Services to send emails. - * - * @since 1.0.0 - */ - public function send() { - - // Include the Google library. - require_once wp_mail_smtp()->plugin_path . '/vendor/autoload.php'; - - $auth = new Auth(); - $message = new Google_Service_Gmail_Message(); - - // Set the authorized Gmail email address as the "from email" if the set email is not on the list of aliases. - $possible_from_emails = $auth->get_user_possible_send_from_addresses(); - - if ( ! in_array( $this->phpmailer->From, $possible_from_emails, true ) ) { - $user_info = $auth->get_user_info(); - - if ( ! empty( $user_info['email'] ) ) { - $this->phpmailer->From = $user_info['email']; - $this->phpmailer->Sender = $user_info['email']; - } - } - - try { - // Prepare a message for sending if any changes happened above. - $this->phpmailer->preSend(); - - // Get the raw MIME email using MailCatcher data. We need to make base64URL-safe string. - $base64 = str_replace( - [ '+', '/', '=' ], - [ '-', '_', '' ], - base64_encode( $this->phpmailer->getSentMIMEMessage() ) //phpcs:ignore - ); - - $message->setRaw( $base64 ); - - $service = new Google_Service_Gmail( $auth->get_client() ); - $response = $service->users_messages->send( 'me', $message ); - - $this->process_response( $response ); - } catch ( \Exception $e ) { - $this->error_message = $e->getMessage(); - - Debug::set( - 'Mailer: Gmail' . "\r\n" . - $this->process_exception_message( $e->getMessage() ) - ); - - return; - } - } - - /** - * Save response from the API to use it later. - * - * @since 1.0.0 - * @since 1.5.0 Added action "wp_mail_smtp_providers_gmail_mailer_process_response" with $response. - * - * @param Google_Service_Gmail_Message $response Instance of Gmail response. - */ - protected function process_response( $response ) { - - $this->response = $response; - - if ( ! method_exists( $this->response, 'getId' ) ) { - $this->error_message = esc_html__( 'The response object is invalid (missing getId method).', 'wp-mail-smtp' ); - } else { - $message_id = $this->response->getId(); - - if ( empty( $message_id ) ) { - $this->error_message = esc_html__( 'The email message ID is missing.', 'wp-mail-smtp' ); - } - } - - do_action( 'wp_mail_smtp_providers_gmail_mailer_process_response', $this->response, $this->phpmailer ); - } - - /** - * Check whether the email was sent. - * - * @since 1.0.0 - * - * @return bool - */ - public function is_email_sent() { - - $is_sent = false; - - if ( method_exists( $this->response, 'getId' ) ) { - $message_id = $this->response->getId(); - if ( ! empty( $message_id ) ) { - $is_sent = true; - } - } - - // Clear debug messages if email is successfully sent. - if ( $is_sent ) { - Debug::clear(); - } - - return $is_sent; - } - - /** - * This method is relevant to SMTP and Pepipost. - * All other custom mailers should override it with own information. - * - * @since 1.2.0 - * - * @return string - */ - public function get_debug_info() { - - $gmail_text = array(); - - $options = new \WPMailSMTP\Options(); - $gmail = $options->get_group( 'gmail' ); - $curl_ver = 'No'; - if ( function_exists( 'curl_version' ) ) { - $curl = curl_version(); // phpcs:ignore - $curl_ver = $curl['version']; - } - - $gmail_text[] = 'Client ID/Secret: ' . ( ! empty( $gmail['client_id'] ) && ! empty( $gmail['client_secret'] ) ? 'Yes' : 'No' ); - $gmail_text[] = 'Auth Code: ' . ( ! empty( $gmail['auth_code'] ) ? 'Yes' : 'No' ); - $gmail_text[] = 'Access Token: ' . ( ! empty( $gmail['access_token'] ) ? 'Yes' : 'No' ); - - $gmail_text[] = '
Server:'; - - $gmail_text[] = 'OpenSSL: ' . ( extension_loaded( 'openssl' ) && defined( 'OPENSSL_VERSION_TEXT' ) ? OPENSSL_VERSION_TEXT : 'No' ); - $gmail_text[] = 'PHP.allow_url_fopen: ' . ( ini_get( 'allow_url_fopen' ) ? 'Yes' : 'No' ); - $gmail_text[] = 'PHP.stream_socket_client(): ' . ( function_exists( 'stream_socket_client' ) ? 'Yes' : 'No' ); - $gmail_text[] = 'PHP.fsockopen(): ' . ( function_exists( 'fsockopen' ) ? 'Yes' : 'No' ); - $gmail_text[] = 'PHP.curl_version(): ' . $curl_ver; // phpcs:ignore - if ( function_exists( 'apache_get_modules' ) ) { - $modules = apache_get_modules(); - $gmail_text[] = 'Apache.mod_security: ' . ( in_array( 'mod_security', $modules, true ) || in_array( 'mod_security2', $modules, true ) ? 'Yes' : 'No' ); - } - if ( function_exists( 'selinux_is_enabled' ) ) { - $gmail_text[] = 'OS.SELinux: ' . ( selinux_is_enabled() ? 'Yes' : 'No' ); - } - if ( function_exists( 'grsecurity_is_enabled' ) ) { - $gmail_text[] = 'OS.grsecurity: ' . ( grsecurity_is_enabled() ? 'Yes' : 'No' ); - } - - return implode( '
', $gmail_text ); - } - - /** - * Whether the mailer has all its settings correctly set up and saved. - * - * @since 1.4.0 - * - * @return bool - */ - public function is_mailer_complete() { - - if ( ! $this->is_php_compatible() ) { - return false; - } - - $auth = new Auth(); - - if ( - $auth->is_clients_saved() && - ! $auth->is_auth_required() - ) { - return true; - } - - return false; - } - - /** - * Process the exception message and append additional explanation to it. - * - * @since 2.1.0 - * - * @param mixed $message A string or an object with strings. - * - * @return string - */ - protected function process_exception_message( $message ) { - - // Transform the passed message to a string. - if ( ! is_string( $message ) ) { - $message = wp_json_encode( $message ); - } else { - $message = wp_strip_all_tags( $message, false ); - } - - // Define known errors, that we will scan the message with. - $known_errors = array( - array( - 'errors' => array( - 'invalid_grant', - ), - 'explanation' => esc_html__( 'Please re-grant Google app permissions!', 'wp-mail-smtp' ) . ' ' . PHP_EOL . - esc_html__( 'Go to WP Mail SMTP plugin settings page. Click the “Remove Connection” button.', 'wp-mail-smtp' ) . ' ' . PHP_EOL . - esc_html__( 'Then click the “Allow plugin to send emails using your Google account” button and re-enable access.', 'wp-mail-smtp' ), - ), - ); - - // Check if we get a match and append the explanation to the original message. - foreach ( $known_errors as $error ) { - foreach ( $error['errors'] as $error_fragment ) { - if ( false !== strpos( $message, $error_fragment ) ) { - return $message . PHP_EOL . $error['explanation']; - } - } - } - - // If we get no match we return the original message (as a string). - return $message; - } - - /** - * Get the default email addresses for the reply to email parameter. - * - * @deprecated 2.1.1 - * - * @since 2.1.0 - * @since 2.1.1 Not used anymore. - * - * @return array - */ - public function default_reply_to_addresses() { - - _deprecated_function( __CLASS__ . '::' . __METHOD__, '2.1.1 of WP Mail SMTP plugin' ); - - $gmail_creds = ( new Auth() )->get_user_info(); - - if ( empty( $gmail_creds['email'] ) ) { - return []; - } - - return [ - $gmail_creds['email'] => [ - $gmail_creds['email'], - '', - ], - ]; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/Gmail/Options.php b/wp-content/plugins/wp-mail-smtp/src/Providers/Gmail/Options.php deleted file mode 100644 index cd51b2b..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/Gmail/Options.php +++ /dev/null @@ -1,259 +0,0 @@ - wp_mail_smtp()->assets_url . '/images/providers/google.svg', - 'slug' => self::SLUG, - 'title' => esc_html__( 'Gmail', 'wp-mail-smtp' ), - 'description' => sprintf( - wp_kses( /* translators: %s - URL to our Gmail doc. */ - __( 'Send emails using your Gmail or G Suite (formerly Google Apps) account, all while keeping your login credentials safe. Other Google SMTP methods require enabling less secure apps in your account and entering your password. However, this integration uses the Google API to improve email delivery issues while keeping your site secure.

Read our Gmail documentation to learn how to configure Gmail or G Suite.', 'wp-mail-smtp' ), - [ - 'br' => [], - 'a' => [ - 'href' => [], - 'rel' => [], - 'target' => [], - ], - ] - ), - 'https://wpmailsmtp.com/docs/how-to-set-up-the-gmail-mailer-in-wp-mail-smtp/' - ), - 'notices' => [ - 'educational' => esc_html__( 'The Gmail mailer works well for sites that send low numbers of emails. However, Gmail\'s API has rate limitations and a number of additional restrictions that can lead to challenges during setup. If you expect to send a high volume of emails, or if you find that your web host is not compatible with the Gmail API restrictions, then we recommend considering a different mailer option.', 'wp-mail-smtp' ), - ], - 'php' => '5.5', - 'supports' => [ - 'from_email' => true, - 'from_name' => true, - 'return_path' => false, - 'from_email_force' => true, - 'from_name_force' => true, - ], - ] - ); - } - - /** - * @inheritdoc - */ - public function display_options() { - - // Do not display options if PHP version is not correct. - if ( ! $this->is_php_correct() ) { - $this->display_php_warning(); - - return; - } - ?> - - -
-
- -
-
- options->is_const_defined( $this->get_slug(), 'client_id' ) ? 'disabled' : ''; ?> - id="wp-mail-smtp-setting-get_slug() ); ?>-client_id" spellcheck="false" - /> -
-
- - -
-
- -
-
- options->is_const_defined( $this->get_slug(), 'client_secret' ) ) : ?> - - display_const_set_message( 'WPMS_GMAIL_CLIENT_SECRET' ); ?> - - - -
-
- - -
-
- -
-
- - -

- -

-
-
- - -
-
- -
-
- display_auth_setting_action(); ?> -
-
- - process_provider_remove(); - - $auth = new Auth(); - ?> - - is_clients_saved() ) : ?> - - is_auth_required() ) : ?> - - - - -

- -

- - - - - - - - get_user_info(); - - if ( ! empty( $user['email'] ) ) { - printf( - /* translators: %s - email address, as received from Google API. */ - esc_html__( 'Connected as %s', 'wp-mail-smtp' ), - '' . esc_html( $user['email'] ) . '' - ); - } - ?> - -

- Follow these instructions and then select the From Email at the top of this page.', 'wp-mail-smtp' ), - [ - 'a' => [ - 'href' => [], - 'rel' => [], - 'target' => [], - ], - ] - ), - 'https://support.google.com/a/answer/33327' - ); - ?> -

-

- -

- - - - - -

- -

- - get( 'mail', 'mailer' ) !== $this->get_slug() ) { - return; - } - - $old_opt = $options->get_all_raw(); - - foreach ( $old_opt[ $this->get_slug() ] as $key => $value ) { - // Unset everything except Client ID and Secret. - if ( ! in_array( $key, array( 'client_id', 'client_secret' ), true ) ) { - unset( $old_opt[ $this->get_slug() ][ $key ] ); - } - } - - $options->set( $old_opt ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/Loader.php b/wp-content/plugins/wp-mail-smtp/src/Providers/Loader.php deleted file mode 100644 index 42b767b..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/Loader.php +++ /dev/null @@ -1,239 +0,0 @@ - 'WPMailSMTP\Providers\Mail\\', - 'smtpcom' => 'WPMailSMTP\Providers\SMTPcom\\', - 'sendinblue' => 'WPMailSMTP\Providers\Sendinblue\\', - 'pepipostapi' => 'WPMailSMTP\Providers\PepipostAPI\\', - 'mailgun' => 'WPMailSMTP\Providers\Mailgun\\', - 'sendgrid' => 'WPMailSMTP\Providers\Sendgrid\\', - 'amazonses' => 'WPMailSMTP\Providers\AmazonSES\\', - 'gmail' => 'WPMailSMTP\Providers\Gmail\\', - 'outlook' => 'WPMailSMTP\Providers\Outlook\\', - 'zoho' => 'WPMailSMTP\Providers\Zoho\\', - 'smtp' => 'WPMailSMTP\Providers\SMTP\\', - 'pepipost' => 'WPMailSMTP\Providers\Pepipost\\', - ); - - /** - * @since 1.0.0 - * - * @var MailCatcherInterface - */ - private $phpmailer; - - /** - * Get all the supported providers. - * - * @since 1.0.0 - * - * @return array - */ - public function get_providers() { - - if ( ! Options::init()->is_mailer_active( 'pepipost' ) ) { - unset( $this->providers['pepipost'] ); - } - - if ( ! Options::init()->is_mailer_active( 'pepipostapi' ) ) { - unset( $this->providers['pepipostapi'] ); - } - - return apply_filters( 'wp_mail_smtp_providers_loader_get_providers', $this->providers ); - } - - /** - * Get a single provider FQN-path based on its name. - * - * @since 1.0.0 - * - * @param string $provider - * - * @return string|null - */ - public function get_provider_path( $provider ) { - - $provider = sanitize_key( $provider ); - - $providers = $this->get_providers(); - - return apply_filters( - 'wp_mail_smtp_providers_loader_get_provider_path', - isset( $providers[ $provider ] ) ? $providers[ $provider ] : null, - $provider - ); - } - - /** - * Get the provider options, if exists. - * - * @since 1.0.0 - * - * @param string $provider - * - * @return OptionsAbstract|null - */ - public function get_options( $provider ) { - - return $this->get_entity( $provider, 'Options' ); - } - - /** - * Get all options of all providers. - * - * @since 1.0.0 - * - * @return OptionsAbstract[] - */ - public function get_options_all() { - - $options = array(); - - foreach ( $this->get_providers() as $provider => $path ) { - - $option = $this->get_options( $provider ); - - if ( ! $option instanceof OptionsAbstract ) { - continue; - } - - $slug = $option->get_slug(); - $title = $option->get_title(); - - if ( empty( $title ) || empty( $slug ) ) { - continue; - } - - $options[] = $option; - } - - return apply_filters( 'wp_mail_smtp_providers_loader_get_providers_all', $options ); - } - - /** - * Get the provider mailer, if exists. - * - * @since 1.0.0 - * - * @param string $provider The provider name. - * @param MailCatcherInterface $phpmailer The MailCatcher object. - * - * @return MailerAbstract|null - */ - public function get_mailer( $provider, $phpmailer ) { - - if ( wp_mail_smtp()->is_valid_phpmailer( $phpmailer ) ) { - $this->phpmailer = $phpmailer; - } - - return $this->get_entity( $provider, 'Mailer' ); - } - - /** - * Get the provider auth, if exists. - * - * @param string $provider - * - * @return AuthAbstract|null - */ - public function get_auth( $provider ) { - - return $this->get_entity( $provider, 'Auth' ); - } - - /** - * Get a generic entity based on the request. - * - * @uses \ReflectionClass - * - * @since 1.0.0 - * - * @param string $provider - * @param string $request - * - * @return OptionsAbstract|MailerAbstract|AuthAbstract|null - */ - protected function get_entity( $provider, $request ) { - - $provider = sanitize_key( $provider ); - $request = sanitize_text_field( $request ); - $path = $this->get_provider_path( $provider ); - $entity = null; - - if ( empty( $path ) ) { - return $entity; - } - - try { - $reflection = new \ReflectionClass( $path . $request ); - - if ( file_exists( $reflection->getFileName() ) ) { - $class = $path . $request; - if ( $this->phpmailer ) { - $entity = new $class( $this->phpmailer ); - } else { - $entity = new $class(); - } - } - } - catch ( \Exception $e ) { - Debug::set( "There was a problem while retrieving {$request} for {$provider}: {$e->getMessage()}" ); - $entity = null; - } - - return apply_filters( 'wp_mail_smtp_providers_loader_get_entity', $entity, $provider, $request ); - } - - /** - * Get supports options for all mailers. - * - * @since 2.3.0 - * - * @return array - */ - public function get_supports_all() { - - $supports = []; - - foreach ( $this->get_providers() as $provider => $path ) { - $option = $this->get_options( $provider ); - - if ( ! $option instanceof OptionsAbstract ) { - continue; - } - - $mailer_slug = $option->get_slug(); - $mailer_supports = $option->get_supports(); - - if ( empty( $mailer_slug ) || empty( $mailer_supports ) ) { - continue; - } - - $supports[ $mailer_slug ] = $mailer_supports; - } - - return apply_filters( 'wp_mail_smtp_providers_loader_get_supports_all', $supports ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/Mail/Mailer.php b/wp-content/plugins/wp-mail-smtp/src/Providers/Mail/Mailer.php deleted file mode 100644 index 51654bf..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/Mail/Mailer.php +++ /dev/null @@ -1,49 +0,0 @@ -Server:'; - - $disabled_functions = ini_get( 'disable_functions' ); - $disabled = (array) explode( ',', trim( $disabled_functions ) ); - - $mail_text[] = 'PHP.mail(): ' . ( in_array( 'mail', $disabled, true ) || ! function_exists( 'mail' ) ? 'No' : 'Yes' ); - if ( function_exists( 'apache_get_modules' ) ) { - $modules = apache_get_modules(); - $mail_text[] = 'Apache.mod_security: ' . ( in_array( 'mod_security', $modules, true ) || in_array( 'mod_security2', $modules, true ) ? 'Yes' : 'No' ); - } - if ( function_exists( 'selinux_is_enabled' ) ) { - $mail_text[] = 'OS.SELinux: ' . ( selinux_is_enabled() ? 'Yes' : 'No' ); - } - if ( function_exists( 'grsecurity_is_enabled' ) ) { - $mail_text[] = 'OS.grsecurity: ' . ( grsecurity_is_enabled() ? 'Yes' : 'No' ); - } - - return implode( '
', $mail_text ); - } - - /** - * @inheritdoc - */ - public function is_mailer_complete() { - - return true; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/Mail/Options.php b/wp-content/plugins/wp-mail-smtp/src/Providers/Mail/Options.php deleted file mode 100644 index 2cfc04c..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/Mail/Options.php +++ /dev/null @@ -1,42 +0,0 @@ - wp_mail_smtp()->assets_url . '/images/providers/php.svg', - 'slug' => 'mail', - 'title' => esc_html__( 'Default (none)', 'wp-mail-smtp' ), - ) - ); - } - - /** - * @inheritdoc - */ - public function display_options() { - ?> - -
- -
- - options = new Options(); - $this->mailer = $this->options->get( 'mail', 'mailer' ); - - // Only non-SMTP mailers need URL and extra processing for PHPMailer class. - if ( ! $this->options->is_mailer_smtp() && empty( $this->url ) ) { - return; - } - - $this->process_phpmailer( $phpmailer ); - } - - /** - * Re-use the MailCatcher class methods and properties. - * - * @since 1.0.0 - * - * @param MailCatcherInterface $phpmailer The MailCatcher object. - */ - public function process_phpmailer( $phpmailer ) { - - // Make sure that we have access to PHPMailer class methods. - if ( ! wp_mail_smtp()->is_valid_phpmailer( $phpmailer ) ) { - return; - } - - $this->phpmailer = $phpmailer; - - // Prevent working with those methods, as they are not needed for SMTP-like mailers. - if ( $this->options->is_mailer_smtp() ) { - return; - } - - $this->set_headers( $this->phpmailer->getCustomHeaders() ); - $this->set_from( $this->phpmailer->From, $this->phpmailer->FromName ); - $this->set_recipients( - array( - 'to' => $this->phpmailer->getToAddresses(), - 'cc' => $this->phpmailer->getCcAddresses(), - 'bcc' => $this->phpmailer->getBccAddresses(), - ) - ); - $this->set_subject( $this->phpmailer->Subject ); - if ( $this->phpmailer->ContentType === 'text/plain' ) { - $this->set_content( $this->phpmailer->Body ); - } else { - $this->set_content( - array( - 'text' => $this->phpmailer->AltBody, - 'html' => $this->phpmailer->Body, - ) - ); - } - $this->set_return_path( $this->phpmailer->From ); - $this->set_reply_to( $this->phpmailer->getReplyToAddresses() ); - - /* - * In some cases we will need to modify the internal structure - * of the body content, if attachments are present. - * So lets make this call the last one. - */ - $this->set_attachments( $this->phpmailer->getAttachments() ); - } - - /** - * Set the email headers. - * - * @since 1.0.0 - * - * @param array $headers List of key=>value pairs. - */ - public function set_headers( $headers ) { - - foreach ( $headers as $header ) { - $name = isset( $header[0] ) ? $header[0] : false; - $value = isset( $header[1] ) ? $header[1] : false; - - if ( empty( $name ) || empty( $value ) ) { - continue; - } - - $this->set_header( $name, $value ); - } - } - - /** - * Set individual header key=>value pair for the email. - * - * @since 1.0.0 - * - * @param string $name - * @param string $value - */ - public function set_header( $name, $value ) { - - $name = sanitize_text_field( $name ); - - $this->headers[ $name ] = WP::sanitize_value( $value ); - } - - /** - * Set email subject. - * - * @since 1.0.0 - * - * @param string $subject - */ - public function set_subject( $subject ) { - - $this->set_body_param( - array( - 'subject' => $subject, - ) - ); - } - - /** - * Set the request params, that goes to the body of the HTTP request. - * - * @since 1.0.0 - * - * @param array $param Key=>value of what should be sent to a 3rd party API. - * - * @internal param array $params - */ - protected function set_body_param( $param ) { - - $this->body = Options::array_merge_recursive( $this->body, $param ); - } - - /** - * Get the email body. - * - * @since 1.0.0 - * - * @return string|array - */ - public function get_body() { - - return apply_filters( 'wp_mail_smtp_providers_mailer_get_body', $this->body, $this->mailer ); - } - - /** - * Get the email headers. - * - * @since 1.0.0 - * - * @return array - */ - public function get_headers() { - - return apply_filters( 'wp_mail_smtp_providers_mailer_get_headers', $this->headers, $this->mailer ); - } - - /** - * Send the email. - * - * @since 1.0.0 - * @since 1.8.0 Added timeout for requests, same as max_execution_time. - */ - public function send() { - - $timeout = (int) ini_get( 'max_execution_time' ); - - $params = Options::array_merge_recursive( - $this->get_default_params(), - array( - 'headers' => $this->get_headers(), - 'body' => $this->get_body(), - 'timeout' => $timeout ? $timeout : 30, - ) - ); - - $response = wp_safe_remote_post( $this->url, $params ); - - $this->process_response( $response ); - } - - /** - * We might need to do something after the email was sent to the API. - * In this method we preprocess the response from the API. - * - * @since 1.0.0 - * - * @param mixed $response - */ - protected function process_response( $response ) { - - if ( is_wp_error( $response ) ) { - // Save the error text. - $errors = $response->get_error_messages(); - foreach ( $errors as $error ) { - $this->error_message .= $error . PHP_EOL; - } - - return; - } - - if ( isset( $response['body'] ) && WP::is_json( $response['body'] ) ) { - $response['body'] = \json_decode( $response['body'] ); - } - - $this->response = $response; - } - - /** - * Get the default params, required for wp_safe_remote_post(). - * - * @since 1.0.0 - * - * @return array - */ - protected function get_default_params() { - - return apply_filters( - 'wp_mail_smtp_providers_mailer_get_default_params', - array( - 'timeout' => 15, - 'httpversion' => '1.1', - 'blocking' => true, - ), - $this->mailer - ); - } - - /** - * Whether the email is sent or not. - * We basically check the response code from a request to provider. - * Might not be 100% correct, not guarantees that email is delivered. - * - * @since 1.0.0 - * - * @return bool - */ - public function is_email_sent() { - - $is_sent = false; - - if ( wp_remote_retrieve_response_code( $this->response ) === $this->email_sent_code ) { - $is_sent = true; - } else { - $error = $this->get_response_error(); - - if ( ! empty( $error ) ) { - // Add mailer to the beginning and save to display later. - $message = 'Mailer: ' . esc_html( wp_mail_smtp()->get_providers()->get_options( $this->mailer )->get_title() ) . "\r\n"; - - $conflicts = new Conflicts(); - if ( $conflicts->is_detected() ) { - $message .= 'Conflicts: ' . esc_html( $conflicts->get_conflict_name() ) . "\r\n"; - } - - Debug::set( $message . $error ); - } - } - - // Clear debug messages if email is successfully sent. - if ( $is_sent ) { - Debug::clear(); - } - - return apply_filters( 'wp_mail_smtp_providers_mailer_is_email_sent', $is_sent, $this->mailer ); - } - - /** - * The error message when email sending failed. - * Should be overwritten when appropriate. - * - * @since 1.2.0 - * @since 2.5.0 Return a non-empty error_message attribute. - * - * @return string - */ - public function get_response_error() { - - return ! empty( $this->error_message ) ? $this->error_message : ''; - } - - /** - * Whether the mailer supports the current PHP version or not. - * - * @since 1.0.0 - * - * @return bool - */ - public function is_php_compatible() { - - $options = wp_mail_smtp()->get_providers()->get_options( $this->mailer ); - - return version_compare( phpversion(), $options->get_php_version(), '>=' ); - } - - /** - * This method is relevant to SMTP and Pepipost. - * All other custom mailers should override it with own information. - * - * @since 1.2.0 - * - * @return string - */ - public function get_debug_info() { - - global $phpmailer; - - $smtp_text = array(); - - // Mail mailer has nothing to return. - if ( $this->options->is_mailer_smtp() ) { - // phpcs:disable - $smtp_text[] = 'ErrorInfo: ' . make_clickable( wp_strip_all_tags( $phpmailer->ErrorInfo ) ); - $smtp_text[] = 'Host: ' . $phpmailer->Host; - $smtp_text[] = 'Port: ' . $phpmailer->Port; - $smtp_text[] = 'SMTPSecure: ' . Debug::pvar( $phpmailer->SMTPSecure ); - $smtp_text[] = 'SMTPAutoTLS: ' . Debug::pvar( $phpmailer->SMTPAutoTLS ); - $smtp_text[] = 'SMTPAuth: ' . Debug::pvar( $phpmailer->SMTPAuth ); - if ( ! empty( $phpmailer->SMTPOptions ) ) { - $smtp_text[] = 'SMTPOptions: ' . wp_json_encode( $phpmailer->SMTPOptions ) . ''; - } - // phpcs:enable - } - - $smtp_text[] = '
Server:'; - $smtp_text[] = 'OpenSSL: ' . ( extension_loaded( 'openssl' ) && defined( 'OPENSSL_VERSION_TEXT' ) ? OPENSSL_VERSION_TEXT : 'No' ); - if ( function_exists( 'apache_get_modules' ) ) { - $modules = apache_get_modules(); - $smtp_text[] = 'Apache.mod_security: ' . ( in_array( 'mod_security', $modules, true ) || in_array( 'mod_security2', $modules, true ) ? 'Yes' : 'No' ); - } - if ( function_exists( 'selinux_is_enabled' ) ) { - $smtp_text[] = 'OS.SELinux: ' . ( selinux_is_enabled() ? 'Yes' : 'No' ); - } - if ( function_exists( 'grsecurity_is_enabled' ) ) { - $smtp_text[] = 'OS.grsecurity: ' . ( grsecurity_is_enabled() ? 'Yes' : 'No' ); - } - - return implode( '
', $smtp_text ); - } - - /** - * Get the email addresses for the reply to email parameter. - * - * @deprecated 2.1.1 - * - * @since 2.1.0 - * @since 2.1.1 Not used anymore. - * - * @return array - */ - public function get_reply_to_addresses() { - - _deprecated_function( __CLASS__ . '::' . __METHOD__, '2.1.1 of WP Mail SMTP plugin' ); - - $reply_to = $this->phpmailer->getReplyToAddresses(); - - // Return the passed reply to addresses, if defined. - if ( ! empty( $reply_to ) ) { - return $reply_to; - } - - // Return the default reply to addresses. - return apply_filters( - 'wp_mail_smtp_providers_mailer_default_reply_to_addresses', - $this->default_reply_to_addresses() - ); - } - - /** - * Get the default email addresses for the reply to email parameter. - * - * @deprecated 2.1.1 - * - * @since 2.1.0 - * @since 2.1.1 Not used anymore. - * - * @return array - */ - public function default_reply_to_addresses() { - - _deprecated_function( __CLASS__ . '::' . __METHOD__, '2.1.1 of WP Mail SMTP plugin' ); - - return [ - $this->phpmailer->From => [ - $this->phpmailer->From, - $this->phpmailer->FromName, - ], - ]; - } - - /** - * Should the email sent by this mailer have its "sent status" verified via its API? - * - * @since 2.5.0 - * - * @return bool - */ - public function should_verify_sent_status() { - - return $this->verify_sent_status; - } - - /** - * Verify the "sent status" of the provided email log ID. - * The actual verification background task is triggered in the below action hook. - * - * @since 2.5.0 - * - * @param int $email_log_id The ID of the email log. - */ - public function verify_sent_status( $email_log_id ) { - - if ( ! $this->should_verify_sent_status() ) { - return; - } - - do_action( 'wp_mail_smtp_providers_mailer_verify_sent_status', $email_log_id, $this ); - } - - /** - * Get the name/slug of the current mailer. - * - * @since 2.5.0 - * - * @return string - */ - public function get_mailer_name() { - - return $this->mailer; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/MailerInterface.php b/wp-content/plugins/wp-mail-smtp/src/Providers/MailerInterface.php deleted file mode 100644 index 6205b4d..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/MailerInterface.php +++ /dev/null @@ -1,86 +0,0 @@ -url = self::API_BASE_US; - - // We want to prefill everything from MailCatcher class, which extends PHPMailer. - parent::__construct( $phpmailer ); - - // We have a special API URL to query in case of EU region. - if ( 'EU' === $this->options->get( $this->mailer, 'region' ) ) { - $this->url = self::API_BASE_EU; - } - - /* - * Append the url with a domain, - * to avoid passing the domain name as a query parameter with all requests. - */ - $this->url .= sanitize_text_field( $this->options->get( $this->mailer, 'domain' ) . '/messages' ); - - $this->set_header( 'Authorization', 'Basic ' . base64_encode( 'api:' . $this->options->get( $this->mailer, 'api_key' ) ) ); - } - - /** - * @inheritdoc - */ - public function set_from( $email, $name = '' ) { - - if ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) { - return; - } - - if ( ! empty( $name ) ) { - $this->set_body_param( - array( - 'from' => $name . ' <' . $email . '>', - ) - ); - } else { - $this->set_body_param( - array( - 'from' => $email, - ) - ); - } - } - - /** - * @inheritdoc - */ - public function set_recipients( $recipients ) { - - if ( empty( $recipients ) ) { - return; - } - - $default = array( 'to', 'cc', 'bcc' ); - - foreach ( $recipients as $kind => $emails ) { - if ( - ! in_array( $kind, $default, true ) || - empty( $emails ) || - ! is_array( $emails ) - ) { - continue; - } - - $data = array(); - - foreach ( $emails as $email ) { - $addr = isset( $email[0] ) ? $email[0] : false; - $name = isset( $email[1] ) ? $email[1] : false; - - if ( ! filter_var( $addr, FILTER_VALIDATE_EMAIL ) ) { - continue; - } - - if ( ! empty( $name ) ) { - $data[] = $name . ' <' . $addr . '>'; - } else { - $data[] = $addr; - } - } - - if ( ! empty( $data ) ) { - $this->set_body_param( - array( - $kind => implode( ', ', $data ), - ) - ); - } - } - } - - /** - * @inheritdoc - */ - public function set_content( $content ) { - - if ( is_array( $content ) ) { - - $default = array( 'text', 'html' ); - - foreach ( $content as $type => $mail ) { - if ( - ! in_array( $type, $default, true ) || - empty( $mail ) - ) { - continue; - } - - $this->set_body_param( - array( - $type => $mail, - ) - ); - } - } else { - - $type = 'html'; - - if ( $this->phpmailer->ContentType === 'text/plain' ) { - $type = 'text'; - } - - if ( ! empty( $content ) ) { - $this->set_body_param( - array( - $type => $content, - ) - ); - } - } - } - - /** - * Redefine the way custom headers are process for this mailer - they should be in body. - * - * @since 1.5.0 - * - * @param array $headers - */ - public function set_headers( $headers ) { - - foreach ( $headers as $header ) { - $name = isset( $header[0] ) ? $header[0] : false; - $value = isset( $header[1] ) ? $header[1] : false; - - $this->set_body_header( $name, $value ); - } - - // Add custom PHPMailer-specific header. - $this->set_body_header( 'X-Mailer', 'WPMailSMTP/Mailer/' . $this->mailer . ' ' . WPMS_PLUGIN_VER ); - } - - /** - * This mailer supports email-related custom headers inside a body of the message with a special prefix "h:". - * - * @since 1.5.0 - */ - public function set_body_header( $name, $value ) { - - $name = sanitize_text_field( $name ); - - $this->set_body_param( - array( - 'h:' . $name => WP::sanitize_value( $value ), - ) - ); - } - - /** - * It's the last one, so we can modify the whole body. - * - * @since 1.0.0 - * - * @param array $attachments The array of attachments data. - */ - public function set_attachments( $attachments ) { - - if ( empty( $attachments ) ) { - return; - } - - $payload = ''; - $data = array(); - - foreach ( $attachments as $attachment ) { - $file = false; - - /* - * We are not using WP_Filesystem API as we can't reliably work with it. - * It is not always available, same as credentials for FTP. - */ - try { - if ( is_file( $attachment[0] ) && is_readable( $attachment[0] ) ) { - $file = file_get_contents( $attachment[0] ); - } - } catch ( \Exception $e ) { - $file = false; - } - - if ( $file === false ) { - continue; - } - - $data[] = array( - 'content' => $file, - 'name' => $attachment[2], - ); - } - - if ( ! empty( $data ) ) { - - // First, generate a boundary for the multipart message. - $boundary = $this->phpmailer->generate_id(); - - // Iterate through pre-built params and build a payload. - foreach ( $this->body as $key => $value ) { - if ( is_array( $value ) ) { - foreach ( $value as $child_key => $child_value ) { - $payload .= '--' . $boundary; - $payload .= "\r\n"; - $payload .= 'Content-Disposition: form-data; name="' . $key . "\"\r\n\r\n"; - $payload .= $child_value; - $payload .= "\r\n"; - } - } else { - $payload .= '--' . $boundary; - $payload .= "\r\n"; - $payload .= 'Content-Disposition: form-data; name="' . $key . '"' . "\r\n\r\n"; - $payload .= $value; - $payload .= "\r\n"; - } - } - - // Now iterate through our attachments, and add them too. - foreach ( $data as $key => $attachment ) { - $payload .= '--' . $boundary; - $payload .= "\r\n"; - $payload .= 'Content-Disposition: form-data; name="attachment[' . $key . ']"; filename="' . $attachment['name'] . '"' . "\r\n\r\n"; - $payload .= $attachment['content']; - $payload .= "\r\n"; - } - - $payload .= '--' . $boundary . '--'; - - // Redefine the body the "dirty way". - $this->body = $payload; - - $this->set_header( 'Content-Type', 'multipart/form-data; boundary=' . $boundary ); - } - } - - /** - * @inheritdoc - */ - public function set_reply_to( $reply_to ) { - - if ( empty( $reply_to ) ) { - return; - } - - $data = array(); - - foreach ( $reply_to as $key => $emails ) { - if ( - empty( $emails ) || - ! is_array( $emails ) - ) { - continue; - } - - $addr = isset( $emails[0] ) ? $emails[0] : false; - $name = isset( $emails[1] ) ? $emails[1] : false; - - if ( ! filter_var( $addr, FILTER_VALIDATE_EMAIL ) ) { - continue; - } - - if ( ! empty( $name ) ) { - $data[] = $name . ' <' . $addr . '>'; - } else { - $data[] = $addr; - } - } - - if ( ! empty( $data ) ) { - $this->set_body_param( - array( - 'h:Reply-To' => implode( ',', $data ), - ) - ); - } - } - - /** - * @inheritdoc - */ - public function set_return_path( $email ) { - - if ( - $this->options->get( 'mail', 'return_path' ) !== true || - ! filter_var( $email, FILTER_VALIDATE_EMAIL ) - ) { - return; - } - - $this->set_body_param( - array( - 'sender' => $email, - ) - ); - } - - /** - * We might need to do something after the email was sent to the API. - * In this method we preprocess the response from the API. - * - * @since 2.5.0 - * - * @param mixed $response Response data. - */ - protected function process_response( $response ) { - - parent::process_response( $response ); - - if ( - ! is_wp_error( $response ) && - ! empty( $this->response['body']->id ) - ) { - $this->phpmailer->MessageID = $this->response['body']->id; - $this->verify_sent_status = true; - } - } - - /** - * Whether the email is sent or not. - * We basically check the response code from a request to provider. - * Might not be 100% correct, not guarantees that email is delivered. - * - * In Mailgun's case it looks like we have to check if the response body has the message ID. - * All successful API responses should have `id` key in the response body. - * - * @since 2.2.0 - * - * @return bool - */ - public function is_email_sent() { - - $is_sent = parent::is_email_sent(); - - if ( - $is_sent && - isset( $this->response['body'] ) && - ! array_key_exists( 'id', (array) $this->response['body'] ) - ) { - $message = 'Mailer: Mailgun' . PHP_EOL . - esc_html__( 'Mailgun API request was successful, but it could not queue the email for delivery.', 'wp-mail-smtp' ) . PHP_EOL . - esc_html__( 'This could point to an incorrect Domain Name in the plugin settings.', 'wp-mail-smtp' ) . PHP_EOL . - esc_html__( 'Please check the WP Mail SMTP plugin settings and make sure the Mailgun Domain Name setting is correct.', 'wp-mail-smtp' ); - - $this->error_message = $message; - - Debug::set( $message ); - - return false; - } - - return $is_sent; - } - - /** - * Get a Mailgun-specific response with a helpful error. - * - * @since 1.2.0 - * - * @return string - */ - public function get_response_error() { - - $body = (array) wp_remote_retrieve_body( $this->response ); - - $error_text = array(); - - if ( ! empty( $body['message'] ) ) { - if ( is_string( $body['message'] ) ) { - $error_text[] = $body['message']; - } else { - $error_text[] = \json_encode( $body['message'] ); - } - } elseif ( ! empty( $this->error_message ) ) { - $error_text[] = $this->error_message; - } elseif ( ! empty( $body[0] ) ) { - if ( is_string( $body[0] ) ) { - $error_text[] = $body[0]; - } else { - $error_text[] = \json_encode( $body[0] ); - } - } - - return implode( '
', array_map( 'esc_textarea', $error_text ) ); - } - - /** - * @inheritdoc - */ - public function get_debug_info() { - - $mg_text = array(); - - $options = new \WPMailSMTP\Options(); - $mailgun = $options->get_group( 'mailgun' ); - - $mg_text[] = 'Api Key / Domain: ' . ( ! empty( $mailgun['api_key'] ) && ! empty( $mailgun['domain'] ) ? 'Yes' : 'No' ); - - return implode( '
', $mg_text ); - } - - /** - * @inheritdoc - */ - public function is_mailer_complete() { - - $options = $this->options->get_group( $this->mailer ); - - // API key is the only required option. - if ( - ! empty( $options['api_key'] ) && - ! empty( $options['domain'] ) - ) { - return true; - } - - return false; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/Mailgun/Options.php b/wp-content/plugins/wp-mail-smtp/src/Providers/Mailgun/Options.php deleted file mode 100644 index 2619487..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/Mailgun/Options.php +++ /dev/null @@ -1,161 +0,0 @@ - wp_mail_smtp()->assets_url . '/images/providers/mailgun.svg', - 'slug' => 'mailgun', - 'title' => esc_html__( 'Mailgun', 'wp-mail-smtp' ), - 'description' => sprintf( - wp_kses( - /* translators: %1$s - opening link tag; %2$s - closing link tag; %3$s - opening link tag; %4$s - closing link tag. */ - __( '%1$sMailgun%2$s is one of the leading transactional email services trusted by over 150,000+ businesses. They provide 5,000 free emails per month for 3 months.

Read our %3$sMailgun documentation%4$s to learn how to configure Mailgun and improve your email deliverability.', 'wp-mail-smtp' ), - array( - 'br' => array(), - 'a' => array( - 'href' => array(), - 'rel' => array(), - 'target' => array(), - ), - ) - ), - '', - '', - '', - '' - ), - ) - ); - } - - /** - * @inheritdoc - */ - public function display_options() { - ?> - - -
-
- -
-
- options->is_const_defined( $this->get_slug(), 'api_key' ) ) : ?> - - display_const_set_message( 'WPMS_MAILGUN_API_KEY' ); ?> - - - -

- ' . - esc_html__( 'Get a Private API Key', 'wp-mail-smtp' ) . - '' - ); - ?> -

-
-
- - -
-
- -
-
- options->is_const_defined( $this->get_slug(), 'domain' ) ? 'disabled' : ''; ?> - id="wp-mail-smtp-setting-get_slug() ); ?>-domain" spellcheck="false" - /> -

- ' . - esc_html__( 'Get a Domain Name', 'wp-mail-smtp' ) . - '' - ); - ?> -

-
-
- - -
-
- -
-
- - - - - -

-
- - More information on Mailgun.com.', 'wp-mail-smtp' ), - array( - 'a' => array( - 'href' => array(), - 'rel' => array(), - 'target' => array(), - ), - ) - ), - 'https://www.mailgun.com/regions' - ); - ?> -

-
-
- - slug = sanitize_key( $params['slug'] ); - $this->title = sanitize_text_field( $params['title'] ); - - if ( ! empty( $params['description'] ) ) { - $this->description = wp_kses_post( $params['description'] ); - } - - if ( ! empty( $params['notices'] ) ) { - foreach ( (array) $params['notices'] as $key => $notice ) { - $key = sanitize_key( $key ); - if ( empty( $key ) ) { - continue; - } - - $notice = wp_kses( - $notice, - array( - 'br' => true, - 'strong' => true, - 'em' => true, - 'a' => array( - 'href' => true, - 'rel' => true, - 'target' => true, - ), - ) - ); - if ( empty( $notice ) ) { - continue; - } - - $this->notices[ $key ] = $notice; - } - } - - if ( isset( $params['recommended'] ) ) { - $this->recommended = (bool) $params['recommended']; - } - if ( isset( $params['disabled'] ) ) { - $this->disabled = (bool) $params['disabled']; - } - - if ( ! empty( $params['php'] ) ) { - $this->php = sanitize_text_field( $params['php'] ); - } - - if ( ! empty( $params['logo_url'] ) ) { - $this->logo_url = esc_url_raw( $params['logo_url'] ); - } - - $this->supports = ( ! empty( $params['supports'] ) ) ? $params['supports'] : $this->get_supports_defaults(); - - $this->options = new Options(); - } - - /** - * @inheritdoc - */ - public function get_logo_url() { - return apply_filters( 'wp_mail_smtp_providers_provider_get_logo_url', $this->logo_url, $this ); - } - - /** - * @inheritdoc - */ - public function get_slug() { - return apply_filters( 'wp_mail_smtp_providers_provider_get_slug', $this->slug, $this ); - } - - /** - * @inheritdoc - */ - public function get_title() { - return apply_filters( 'wp_mail_smtp_providers_provider_get_title', $this->title, $this ); - } - - /** - * @inheritdoc - */ - public function get_description() { - return apply_filters( 'wp_mail_smtp_providers_provider_get_description', $this->description, $this ); - } - - /** - * Some mailers may display a notice above its options. - * - * @since 1.6.0 - * - * @param string $type - * - * @return string - */ - public function get_notice( $type ) { - - $type = sanitize_key( $type ); - - return apply_filters( 'wp_mail_smtp_providers_provider_get_notice', isset( $this->notices[ $type ] ) ? $this->notices[ $type ] : '', $this ); - } - - /** - * @inheritdoc - */ - public function get_php_version() { - return apply_filters( 'wp_mail_smtp_providers_provider_get_php_version', $this->php, $this ); - } - - /** - * @inheritdoc - */ - public function display_options() { - ?> - - -
-
- -
-
- options->is_const_defined( $this->get_slug(), 'host' ) ? 'disabled' : ''; ?> - id="wp-mail-smtp-setting-get_slug() ); ?>-host" spellcheck="false" - /> -
-
- - -
-
- -
-
- - - - - - - -

- -

-
-
- - -
-
- -
-
- options->is_const_defined( $this->get_slug(), 'port' ) ? 'disabled' : ''; ?> - id="wp-mail-smtp-setting-get_slug() ); ?>-port" class="small-text" spellcheck="false" - /> -
-
- - -
-
- -
-
- -

- -

-
-
- - -
-
- -
-
- -
-
- - -
-
- -
-
- options->is_const_defined( $this->get_slug(), 'user' ) ? 'disabled' : ''; ?> - id="wp-mail-smtp-setting-get_slug() ); ?>-user" spellcheck="false" autocomplete="new-password" - /> -
-
- - -
-
- -
-
- options->is_const_defined( $this->get_slug(), 'pass' ) ) : ?> - - - display_const_set_message( 'WPMS_SMTP_PASS' ); ?> - -

- define( \'WPMS_SMTP_PASS\', \'your_old_password\' );' - ); - ?> -
- wp-config.php', - 'WPMS_ON' - ); - ?> -

-
-						define( 'WPMS_ON', false );
-					
-

- -

- - -

- -
- - - -

- -
-
- - recommended, $this ); - } - - /** - * Whether this mailer is disabled or not. - * Used for displaying Pro mailers inside Lite plugin. - * - * @since 1.7.0 - * - * @return bool - */ - public function is_disabled() { - - return (bool) apply_filters( 'wp_mail_smtp_providers_provider_is_disabled', $this->disabled, $this ); - } - - /** - * Check whether we can use this provider based on the PHP version. - * Valid for those, that use SDK. - * - * @since 1.0.0 - * - * @return bool - */ - public function is_php_correct() { - return version_compare( phpversion(), $this->php, '>=' ); - } - - /** - * Display a helpful message to those users, that are using an outdated version of PHP, - * which is not supported by the currently selected Provider. - * - * @since 1.0.0 - */ - protected function display_php_warning() { - ?> - -
- get_title() ), - esc_html( $this->php ), - esc_html( phpversion() ) - ); - ?> -
- -
- - - -
- WPBeginner\'s tutorial on how to set up SSL.', 'wp-mail-smtp' ), - [ - 'a' => [ - 'href' => [], - 'target' => [], - ], - ] - ), - esc_html( $this->get_title() ) - ); - ?> -
-
- -
- - - -

- ' . esc_attr( $constant ) . '', - 'wp-config.php' - ); - ?> -

- - true, - 'from_name' => true, - 'return_path' => true, - 'from_email_force' => true, - 'from_name_force' => true, - ]; - } - - /** - * Get the mailer supported settings. - * - * @since 2.3.0 - * - * @return array - */ - public function get_supports() { - return apply_filters( 'wp_mail_smtp_providers_provider_get_supports', $this->supports, $this ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/OptionsInterface.php b/wp-content/plugins/wp-mail-smtp/src/Providers/OptionsInterface.php deleted file mode 100644 index 235d094..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/OptionsInterface.php +++ /dev/null @@ -1,71 +0,0 @@ - wp_mail_smtp()->assets_url . '/images/providers/microsoft.svg', - 'slug' => 'outlook', - 'title' => esc_html__( 'Outlook', 'wp-mail-smtp' ), - 'disabled' => true, - ) - ); - } - - /** - * @inheritdoc - */ - public function display_options() { - - ?> - -

- -

- - options->get_group( $this->mailer ); - - // Host and Port are the only really required options. - if ( - ! empty( $options['host'] ) && - ! empty( $options['port'] ) - ) { - return true; - } - - return false; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/Pepipost/Options.php b/wp-content/plugins/wp-mail-smtp/src/Providers/Pepipost/Options.php deleted file mode 100644 index e886ce3..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/Pepipost/Options.php +++ /dev/null @@ -1,29 +0,0 @@ - wp_mail_smtp()->assets_url . '/images/providers/pepipost-smtp.png', - 'slug' => 'pepipost', - 'title' => esc_html__( 'Pepipost SMTP', 'wp-mail-smtp' ), - ) - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/PepipostAPI/Mailer.php b/wp-content/plugins/wp-mail-smtp/src/Providers/PepipostAPI/Mailer.php deleted file mode 100644 index 780865d..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/PepipostAPI/Mailer.php +++ /dev/null @@ -1,477 +0,0 @@ -set_header( 'api_key', $this->options->get( $this->mailer, 'api_key' ) ); - $this->set_header( 'content-type', 'application/json' ); - } - - /** - * Redefine the way email body is returned. - * By default we are sending an array of data. - * Pepipost requires a JSON, so we encode the body. - * - * @since 1.8.0 - * - * @return string - */ - public function get_body() { - - $body = parent::get_body(); - - return wp_json_encode( $body ); - } - - /** - * Set the FROM header of the email. - * - * @since 1.8.0 - * @since 2.2.0 Changed the attribute names (API v5 changes). - * - * @param string $email From mail. - * @param string $name From name. - */ - public function set_from( $email, $name = '' ) { - - if ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) { - return; - } - - $from['email'] = $email; - - if ( ! empty( $name ) ) { - $from['name'] = $name; - } - - $this->set_body_param( - [ - 'from' => $from, - ] - ); - } - - /** - * Set the names/emails of people who will receive the email. - * - * @since 1.8.0 - * @since 2.2.0 change the attribute names (API v5 changes). - * - * @param array $recipients List of recipients: cc/bcc/to. - */ - public function set_recipients( $recipients ) { - - if ( empty( $recipients ) ) { - return; - } - - $data = []; - - if ( ! empty( $recipients['to'] ) ) { - $data['to'] = $this->prepare_list_of_to_emails( $recipients['to'] ); - } - - if ( ! empty( $recipients['cc'] ) ) { - $data['cc'] = $this->prepare_list_of_emails( $recipients['cc'] ); - } - - if ( ! empty( $recipients['bcc'] ) ) { - $data['bcc'] = $this->prepare_list_of_emails( $recipients['bcc'] ); - } - - $this->set_body_personalizations( $data ); - } - - /** - * Set the email content. - * Pepipost API only supports HTML emails, so we have to replace new lines in plain text emails with
. - * - * @since 1.8.0 - * @since 2.2.0 Change the way the content is prepared (API v5 changes). - * - * @param array|string $content Email content. - */ - public function set_content( $content ) { - - if ( empty( $content ) ) { - return; - } - - $html = ''; - - if ( ! is_array( $content ) ) { - $html = $content; - - if ( $this->phpmailer->ContentType === 'text/plain' ) { - $html = nl2br( $html ); - } - } else { - - if ( ! empty( $content['html'] ) ) { - $html = $content['html']; - } elseif ( ! empty( $content['text'] ) ) { - $html = nl2br( $content['text'] ); - } - } - - $this->set_body_param( - [ - 'content' => [ - [ - 'type' => 'html', - 'value' => $html, - ], - ], - ] - ); - } - - /** - * Redefine the way custom headers are processed for this mailer - they should be in body (personalizations). - * - * @since 1.8.0 - * @since 2.2.0 Change the way the headers are processed (API v5 changes). - * - * @param array $headers The email headers to be applied. - */ - public function set_headers( $headers ) { - - $valid_headers = []; - - foreach ( $headers as $header ) { - $name = isset( $header[0] ) ? $header[0] : false; - $value = isset( $header[1] ) ? $header[1] : false; - - $valid_headers[ $name ] = WP::sanitize_value( $value ); - } - - // Add custom PHPMailer-specific header. - $valid_headers['X-Mailer'] = WP::sanitize_value( 'WPMailSMTP/Mailer/' . $this->mailer . ' ' . WPMS_PLUGIN_VER ); - - if ( ! empty( $valid_headers ) ) { - $this->set_body_personalizations( [ 'headers' => $valid_headers ] ); - } - } - - /** - * Pepipost API accepts an array of files content in body, so we will include all files and send. - * Doesn't handle exceeding the limits etc, as this will be reported by the API response. - * - * @since 1.8.0 - * @since 2.2.0 Change the way the attachments are processed (API v5 changes). - * - * @param array $attachments The list of attachments data. - */ - public function set_attachments( $attachments ) { - - if ( empty( $attachments ) ) { - return; - } - - $data = $this->prepare_attachments( $attachments ); - - if ( ! empty( $data ) ) { - $this->set_body_param( - [ - 'attachments' => $data, - ] - ); - } - } - - /** - * Prepare the attachments data for Pepipost API. - * - * @since 2.2.0 - * - * @param array $attachments Array of attachments. - * - * @return array - */ - protected function prepare_attachments( $attachments ) { - - $data = []; - - foreach ( $attachments as $attachment ) { - $file = false; - - /* - * We are not using WP_Filesystem API as we can't reliably work with it. - * It is not always available, same as credentials for FTP. - */ - try { - if ( is_file( $attachment[0] ) && is_readable( $attachment[0] ) ) { - $file = file_get_contents( $attachment[0] ); // phpcs:ignore - } - } catch ( \Exception $e ) { - $file = false; - } - - if ( $file === false ) { - continue; - } - - $data[] = [ - 'content' => base64_encode( $file ), // phpcs:ignore - 'name' => $attachment[2], - ]; - } - - return $data; - } - - /** - * Set the reply-to property of the email. - * Pepipost API only supports one reply_to email, so we take the first one and discard the rest. - * - * @since 1.8.0 - * @since 2.2.0 Change the way the reply_to is processed (API v5 changes). - * - * @param array $reply_to Name/email for reply-to feature. - */ - public function set_reply_to( $reply_to ) { - - if ( empty( $reply_to ) ) { - return; - } - - $email_array = array_shift( $reply_to ); - - if ( empty( $email_array[0] ) ) { - return; - } - - $email = $email_array[0]; - - if ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) { - return; - } - - if ( ! empty( $email ) ) { - $this->set_body_param( - [ - 'reply_to' => $email, - ] - ); - } - } - - /** - * Pepipost API doesn't support sender or return_path params. - * So we do nothing. - * - * @since 1.8.0 - * - * @param string $from_email The from email address. - */ - public function set_return_path( $from_email ) {} - - /** - * Get a Pepipost-specific response with a helpful error. - * - * @see https://developers.pepipost.com/email-api/email-api/sendemail#responses - * - * @since 1.8.0 - * @since 2.2.0 Change the way the response error message is processed (API v5 changes). - * - * @return string - */ - public function get_response_error() { - - $body = (array) wp_remote_retrieve_body( $this->response ); - - $error = ! empty( $body['error'] ) ? $body['error'] : ''; - $info = ! empty( $body['info'] ) ? $body['info'] : ''; - $message = ''; - - if ( ! empty( $this->error_message ) ) { - $message = $this->error_message; - } elseif ( is_string( $error ) ) { - $message = $error . ( ( ! empty( $info ) ) ? ' - ' . $info : '' ); - } elseif ( is_array( $error ) ) { - $message = ''; - - foreach ( $error as $item ) { - $message .= sprintf( - '%1$s (%2$s - %3$s)', - ! empty( $item->description ) ? $item->description : esc_html__( 'General error', 'wp-mail-smtp' ), - ! empty( $item->message ) ? $item->message : esc_html__( 'Error', 'wp-mail-smtp' ), - ! empty( $item->field ) ? $item->field : '' - ) . PHP_EOL; - } - } - - return $message; - } - - /** - * Get mailer debug information, that is helpful during support. - * - * @since 1.8.0 - * - * @return string - */ - public function get_debug_info() { - - $sendgrid_text[] = 'Api Key: ' . ( $this->is_mailer_complete() ? 'Yes' : 'No' ); - - return implode( '
', $sendgrid_text ); - } - - /** - * Whether the mailer has all its settings correctly set up and saved. - * - * @since 1.8.0 - * - * @return bool - */ - public function is_mailer_complete() { - - $options = $this->options->get_group( $this->mailer ); - - // API key is the only required option. - if ( ! empty( $options['api_key'] ) ) { - return true; - } - - return false; - } - - /** - * A special set method for Pepipost API "personalizations" attribute. - * We are sending one email at a time, so we should set just the first - * personalization item. - * - * Mainly used in set_headers and set_recipients. - * - * @see https://developers.pepipost.com/email-api/email-api/sendemail - * - * @since 2.2.0 - * - * @param array $data The personalizations array of data (array of arrays). - */ - private function set_body_personalizations( $data ) { - - if ( empty( $data ) ) { - return; - } - - if ( ! empty( $this->body['personalizations'][0] ) ) { - $this->body['personalizations'][0] = PluginOptions::array_merge_recursive( - $this->body['personalizations'][0], - $data - ); - } else { - $this->set_body_param( - [ - 'personalizations' => [ - $data, - ], - ] - ); - } - } - - /** - * Prepare list of emails by filtering valid emails first. - * - * @since 2.2.0 - * - * @param array $items A 2D array of email and name pair items (0 = email, 1 = name). - * - * @return array 2D array with 'email' keys. - */ - private function prepare_list_of_emails( $items ) { - - $valid_emails = array_filter( - array_column( $items, 0 ), - function ( $email ) { - return filter_var( $email, FILTER_VALIDATE_EMAIL ); - } - ); - - return array_map( - function( $email ) { - return [ 'email' => $email ]; - }, - $valid_emails - ); - } - - /** - * Prepare list of TO emails by filtering valid emails first - * and returning array of arrays (email, name). - * - * @since 2.2.0 - * - * @param array $items A 2D array of email and name pair items (0 = email, 1 = name). - * - * @return array 2D array with 'email' and optional 'name' attributes. - */ - private function prepare_list_of_to_emails( $items ) { - - $data = []; - - foreach ( $items as $item ) { - $email = filter_var( $item[0], FILTER_VALIDATE_EMAIL ); - - if ( empty( $email ) ) { - continue; - } - - $pair['email'] = $email; - - if ( ! empty( $item[1] ) ) { - $pair['name'] = $item[1]; - } - - $data[] = $pair; - } - - return $data; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/PepipostAPI/Options.php b/wp-content/plugins/wp-mail-smtp/src/Providers/PepipostAPI/Options.php deleted file mode 100644 index 4268894..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/PepipostAPI/Options.php +++ /dev/null @@ -1,125 +0,0 @@ -Pepipost is a transactional email service. Every month Pepipost delivers over 8 billion emails from 20,000+ customers. Their mission is to reliably send emails in the most efficient way and at the most disruptive pricing ever. Pepipost provides users 30,000 free emails the first 30 days.', 'wp-mail-smtp' ) . - '

' . - /* translators: %1$s - URL to wpmailsmtp.com doc. */ - __( 'Read our Pepipost documentation to learn how to configure Pepipost and improve your email deliverability.', 'wp-mail-smtp' ), - array( - 'br' => true, - 'a' => array( - 'href' => true, - 'rel' => true, - 'target' => true, - ), - ) - ), - 'https://wpmailsmtp.com/go/pepipost/', - 'https://wpmailsmtp.com/docs/how-to-set-up-the-pepipost-mailer-in-wp-mail-smtp' - ); - - $api_key = PluginOptions::init()->get( self::SLUG, 'api_key' ); - - if ( empty( $api_key ) ) { - $description .= '

' . - esc_html__( 'Get Started with Pepipost', 'wp-mail-smtp' ) . - '

'; - } - - parent::__construct( - [ - 'logo_url' => wp_mail_smtp()->assets_url . '/images/providers/pepipost.png', - 'slug' => self::SLUG, - 'title' => esc_html__( 'Pepipost', 'wp-mail-smtp' ), - 'description' => $description, - 'php' => '5.3', - 'supports' => [ - 'from_email' => true, - 'from_name' => true, - 'return_path' => false, - 'from_email_force' => true, - 'from_name_force' => true, - ], - ] - ); - } - - /** - * Output the mailer provider options. - * - * @since 1.8.0 - */ - public function display_options() { - - // Do not display options if PHP version is not correct. - if ( ! $this->is_php_correct() ) { - $this->display_php_warning(); - - return; - } - ?> - - -
-
- -
-
- options->is_const_defined( $this->get_slug(), 'api_key' ) ) : ?> - - display_const_set_message( 'WPMS_PEPIPOST_API_KEY' ); ?> - - - - -

- ' . - esc_html__( 'Get the API Key', 'wp-mail-smtp' ) . - '' - ); - ?> -

-
-
- - options->get_group( $this->mailer ); - - // Host and Port are the only really required options. - if ( - ! empty( $options['host'] ) && - ! empty( $options['port'] ) - ) { - return true; - } - - return false; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/SMTP/Options.php b/wp-content/plugins/wp-mail-smtp/src/Providers/SMTP/Options.php deleted file mode 100644 index d74a204..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/SMTP/Options.php +++ /dev/null @@ -1,44 +0,0 @@ - wp_mail_smtp()->assets_url . '/images/providers/smtp.svg', - 'slug' => 'smtp', - 'title' => esc_html__( 'Other SMTP', 'wp-mail-smtp' ), - 'description' => sprintf( - wp_kses( - /* translators: %s - URL to SMTP documentation. */ - __( 'Use the SMTP details provided by your hosting provider or email service.

To see recommended settings for the popular services as well as troubleshooting tips, check out our SMTP documentation.', 'wp-mail-smtp' ), - array( - 'br' => array(), - 'a' => array( - 'href' => array(), - 'rel' => array(), - 'target' => array(), - ), - ) - ), - 'https://wpmailsmtp.com/docs/how-to-set-up-the-other-smtp-mailer-in-wp-mail-smtp/' - ), - ) - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/SMTPcom/Mailer.php b/wp-content/plugins/wp-mail-smtp/src/Providers/SMTPcom/Mailer.php deleted file mode 100644 index 3f49dc7..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/SMTPcom/Mailer.php +++ /dev/null @@ -1,488 +0,0 @@ -set_header( 'Authorization', 'Bearer ' . $this->options->get( $this->mailer, 'api_key' ) ); - $this->set_header( 'Accept', 'application/json' ); - $this->set_header( 'content-type', 'application/json' ); - - // Set mailer specific body parameters. - $this->set_body_param( - array( - 'channel' => $this->options->get( $this->mailer, 'channel' ), - ) - ); - } - - /** - * Redefine the way email body is returned. - * By default we are sending an array of data. - * SMTP.com requires a JSON, so we encode the body. - * - * @since 2.0.0 - */ - public function get_body() { - - $body = parent::get_body(); - - return wp_json_encode( $body ); - } - - /** - * Define the FROM (name and email). - * - * @since 2.0.0 - * - * @param string $email From Email address. - * @param string $name From Name. - */ - public function set_from( $email, $name = '' ) { - - if ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) { - return; - } - - $from['address'] = $email; - - if ( ! empty( $name ) ) { - $from['name'] = $name; - } - - $this->set_body_param( - array( - 'originator' => array( - 'from' => $from, - ), - ) - ); - } - - /** - * Define the CC/BCC/TO (with names and emails). - * - * @since 2.0.0 - * - * @param array $recipients - */ - public function set_recipients( $recipients ) { - - if ( empty( $recipients ) ) { - return; - } - - // Allow only these recipient types. - $allowed_types = array( 'to', 'cc', 'bcc' ); - $data = array(); - - foreach ( $recipients as $type => $emails ) { - if ( - ! in_array( $type, $allowed_types, true ) || - empty( $emails ) || - ! is_array( $emails ) - ) { - continue; - } - - $data[ $type ] = array(); - - // Iterate over all emails for each type. - // There might be multiple cc/to/bcc emails. - foreach ( $emails as $email ) { - $holder = array(); - $address = isset( $email[0] ) ? $email[0] : false; - $name = isset( $email[1] ) ? $email[1] : false; - - if ( ! filter_var( $address, FILTER_VALIDATE_EMAIL ) ) { - continue; - } - - $holder['address'] = $address; - if ( ! empty( $name ) ) { - $holder['name'] = $name; - } - - array_push( $data[ $type ], $holder ); - } - } - - if ( ! empty( $data ) ) { - $this->set_body_param( - array( - 'recipients' => $data, - ) - ); - } - } - - /** - * Set the email content. - * - * @since 2.0.0 - * - * @param array|string $content String when text/plain, array otherwise. - */ - public function set_content( $content ) { - - if ( empty( $content ) ) { - return; - } - - $parts = array(); - - if ( is_array( $content ) ) { - $allowed = array( 'text', 'html' ); - - foreach ( $content as $type => $body ) { - if ( - ! in_array( $type, $allowed, true ) || - empty( $body ) - ) { - continue; - } - - $content_type = 'text/plain'; - $content_value = $body; - - if ( $type === 'html' ) { - $content_type = 'text/html'; - } - - $parts[] = array( - 'type' => $content_type, - 'content' => $content_value, - 'charset' => $this->phpmailer->CharSet, - 'encoding' => $this->phpmailer->Encoding, - ); - } - } else { - $content_type = 'text/html'; - $content_value = $content; - - if ( $this->phpmailer->ContentType === 'text/plain' ) { - $content_type = 'text/plain'; - } - - $parts[] = array( - 'type' => $content_type, - 'content' => $content_value, - 'charset' => $this->phpmailer->CharSet, - 'encoding' => $this->phpmailer->Encoding, - ); - } - - $this->set_body_param( - array( - 'body' => array( - 'parts' => $parts, - ), - ) - ); - } - - /** - * Redefine the way custom headers are processed for this mailer - they should be in body. - * - * @since 2.0.0 - * - * @param array $headers - */ - public function set_headers( $headers ) { - - foreach ( $headers as $header ) { - $name = isset( $header[0] ) ? $header[0] : false; - $value = isset( $header[1] ) ? $header[1] : false; - - $this->set_body_header( $name, $value ); - } - - // Add custom PHPMailer-specific header. - $this->set_body_header( 'X-Mailer', 'WPMailSMTP/Mailer/' . $this->mailer . ' ' . WPMS_PLUGIN_VER ); - } - - /** - * This mailer supports email-related custom headers inside a body of the message. - * - * @since 2.0.0 - * - * @param string $name - * @param string $value - */ - public function set_body_header( $name, $value ) { - - $name = sanitize_text_field( $name ); - if ( empty( $name ) ) { - return; - } - - $headers = isset( $this->body['custom_headers'] ) ? (array) $this->body['custom_headers'] : array(); - - $headers[ $name ] = WP::sanitize_value( $value ); - - $this->set_body_param( - array( - 'custom_headers' => $headers, - ) - ); - } - - /** - * SMTP.com accepts an array of attachments in body.attachments section of the JSON payload. - * - * @since 2.0.0 - * - * @param array $attachments - */ - public function set_attachments( $attachments ) { - - if ( empty( $attachments ) ) { - return; - } - - $data = array(); - - foreach ( $attachments as $attachment ) { - $file = false; - - /* - * We are not using WP_Filesystem API as we can't reliably work with it. - * It is not always available, same as credentials for FTP. - */ - try { - if ( is_file( $attachment[0] ) && is_readable( $attachment[0] ) ) { - $file = file_get_contents( $attachment[0] ); // phpcs:ignore - } - } - catch ( \Exception $e ) { - $file = false; - } - - if ( $file === false ) { - continue; - } - - $filetype = str_replace( ';', '', trim( $attachment[4] ) ); - - $data[] = array( - 'content' => chunk_split( base64_encode( $file ) ), // phpcs:ignore - 'type' => $filetype, - 'encoding' => 'base64', - 'filename' => empty( $attachment[2] ) ? 'file-' . wp_hash( microtime() ) . '.' . $filetype : trim( $attachment[2] ), - 'disposition' => in_array( $attachment[6], array( 'inline', 'attachment' ), true ) ? $attachment[6] : 'attachment', // either inline or attachment. - 'cid' => empty( $attachment[7] ) ? '' : trim( (string) $attachment[7] ), - ); - } - - if ( ! empty( $data ) ) { - $this->set_body_param( - array( - 'body' => array( - 'attachments' => $data, - ), - ) - ); - } - } - - /** - * Set Reply-To part of the message. - * - * @since 2.0.0 - * - * @param array $reply_to - */ - public function set_reply_to( $reply_to ) { - - if ( empty( $reply_to ) ) { - return; - } - - $data = array(); - - foreach ( $reply_to as $key => $emails ) { - if ( - empty( $emails ) || - ! is_array( $emails ) - ) { - continue; - } - - $address = isset( $emails[0] ) ? $emails[0] : false; - $name = isset( $emails[1] ) ? $emails[1] : false; - - if ( ! filter_var( $address, FILTER_VALIDATE_EMAIL ) ) { - continue; - } - - $data['address'] = $address; - if ( ! empty( $name ) ) { - $data['name'] = $name; - } - - // Let the first valid email from the passed $reply_to serve as the reply_to parameter in STMP.com API. - // Only one email address and name is allowed in the `reply_to` parameter in the SMTP.com API payload. - break; - } - - if ( ! empty( $data ) ) { - $this->set_body_param( - array( - 'originator' => array( - 'reply_to' => $data, - ), - ) - ); - } - } - - /** - * SMTP.com doesn't support return_path params. - * So we do nothing. - * - * @since 2.0.0 - * - * @param string $from_email - */ - public function set_return_path( $from_email ) {} - - /** - * We might need to do something after the email was sent to the API. - * In this method we preprocess the response from the API. - * - * @since 2.5.0 - * - * @param mixed $response Response data. - */ - protected function process_response( $response ) { - - parent::process_response( $response ); - - if ( - ! is_wp_error( $response ) && - ! empty( $this->response['body']->data->message ) - ) { - preg_match( '/msg_id: (.*)/', $this->response['body']->data->message, $output ); - - if ( ! empty( $output[1] ) ) { - $this->phpmailer->addCustomHeader( 'X-Msg-ID', $output[1] ); - $this->verify_sent_status = true; - } - } - } - - /** - * Get a SMTP.com-specific response with a helpful error. - * - * SMTP.com API error response (non 200 error code responses) is: - * { - * "status": "fail", - * "data": { - * "error_key": "short error message", - * } - * } - * - * It's good to combine the error_key and the message together for the best error explanation. - * - * @since 2.0.0 - * - * @return string - */ - public function get_response_error() { - - $body = (array) wp_remote_retrieve_body( $this->response ); - - $error_text = array(); - - if ( ! empty( $body['data'] ) ) { - foreach ( (array) $body['data'] as $error_key => $error_message ) { - $error_text[] = $error_key . ' - ' . $error_message; - } - } elseif ( ! empty( $this->error_message ) ) { - $error_text[] = $this->error_message; - } - - return implode( PHP_EOL, array_map( 'esc_textarea', $error_text ) ); - } - - /** - * Get mailer debug information, that is helpful during support. - * - * @since 2.0.0 - * - * @return string - */ - public function get_debug_info() { - - $options = $this->options->get_group( $this->mailer ); - - $text[] = '' . esc_html__( 'Api Key:', 'wp-mail-smtp' ) . ' ' . - ( ! empty( $options['api_key'] ) ? 'Yes' : 'No' ); - $text[] = '' . esc_html__( 'Channel:', 'wp-mail-smtp' ) . ' ' . - ( ! empty( $options['channel'] ) ? 'Yes' : 'No' ); - - return implode( '
', $text ); - } - - /** - * Whether the mailer has all its settings correctly set up and saved. - * - * This mailer is configured when `api_key` and `channel` settings are defined. - * - * @since 2.0.0 - * - * @return bool - */ - public function is_mailer_complete() { - - $options = $this->options->get_group( $this->mailer ); - - if ( ! empty( $options['api_key'] ) && ! empty( $options['channel'] ) ) { - return true; - } - - return false; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/SMTPcom/Options.php b/wp-content/plugins/wp-mail-smtp/src/Providers/SMTPcom/Options.php deleted file mode 100644 index 5629bf0..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/SMTPcom/Options.php +++ /dev/null @@ -1,150 +0,0 @@ - array(), - 'br' => array(), - 'a' => array( - 'href' => array(), - 'rel' => array(), - 'target' => array(), - ), - ); - - $description = sprintf( - wp_kses( /* translators: %s - URL to smtp.com site. */ - __( 'SMTP.com is a recommended transactional email service. With a 22 years of track record of reliable email delivery, SMTP.com is a premiere solution for WordPress developers and website owners. SMTP.com has been around for almost as long as email itself. Their super simple integration interface makes it easy to get started while a powerful API and robust documentation make it a preferred choice among developers. Start a 30-day free trial with 50,000 emails.', 'wp-mail-smtp' ), - $allowed_kses_html - ), - 'https://wpmailsmtp.com/go/smtp/' - ); - $description .= '

'; - $description .= sprintf( - wp_kses( /* translators: %s - URL to wpmailsmtp.com doc page for stmp.com. */ - __( 'Read our SMTP.com documentation to learn how to configure SMTP.com and improve your email deliverability.', 'wp-mail-smtp' ), - $allowed_kses_html - ), - 'https://wpmailsmtp.com/docs/how-to-set-up-the-smtp-com-mailer-in-wp-mail-smtp' - ); - - $mailer_options = PluginOptions::init()->get_group( self::SLUG ); - - if ( empty( $mailer_options['api_key'] ) && empty( $mailer_options['channel'] ) ) { - $description .= '

' . - esc_html__( 'Get Started with SMTP.com', 'wp-mail-smtp' ) . - '

'; - } - - parent::__construct( - [ - 'logo_url' => wp_mail_smtp()->assets_url . '/images/providers/smtp-com.svg', - 'slug' => self::SLUG, - 'title' => esc_html__( 'SMTP.com', 'wp-mail-smtp' ), - 'description' => $description, - 'recommended' => true, - 'supports' => [ - 'from_email' => true, - 'from_name' => true, - 'return_path' => false, - 'from_email_force' => true, - 'from_name_force' => true, - ], - ] - ); - } - - /** - * @inheritdoc - */ - public function display_options() { - ?> - - -
-
- -
-
- options->is_const_defined( $this->get_slug(), 'api_key' ) ) : ?> - - display_const_set_message( 'WPMS_SMTPCOM_API_KEY' ); ?> - - - -

- ' . - esc_html__( 'Get API Key', 'wp-mail-smtp' ) . - '' - ); - ?> -

-
-
- - -
-
- -
-
- options->is_const_defined( $this->get_slug(), 'channel' ) ? 'disabled' : ''; ?> - id="wp-mail-smtp-setting-get_slug() ); ?>-channel" spellcheck="false" - /> - options->is_const_defined( $this->get_slug(), 'channel' ) ) { - $this->display_const_set_message( 'WPMS_SMTPCOM_CHANNEL' ); - } - ?> -

- ' . - esc_html__( 'Get Sender Name', 'wp-mail-smtp' ) . - '' - ); - ?> -

-
-
- - set_header( 'Authorization', 'Bearer ' . $this->options->get( $this->mailer, 'api_key' ) ); - $this->set_header( 'content-type', 'application/json' ); - } - - /** - * Redefine the way email body is returned. - * By default we are sending an array of data. - * SendGrid requires a JSON, so we encode the body. - * - * @since 1.0.0 - */ - public function get_body() { - - $body = parent::get_body(); - - return wp_json_encode( $body ); - } - - /** - * @inheritdoc - */ - public function set_from( $email, $name = '' ) { - - if ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) { - return; - } - - $from['email'] = $email; - - if ( ! empty( $name ) ) { - $from['name'] = $name; - } - - $this->set_body_param( - array( - 'from' => $from, - ) - ); - } - - /** - * @inheritdoc - */ - public function set_recipients( $recipients ) { - - if ( empty( $recipients ) ) { - return; - } - - // Allow for now only these recipient types. - $default = array( 'to', 'cc', 'bcc' ); - $data = array(); - - foreach ( $recipients as $type => $emails ) { - if ( - ! in_array( $type, $default, true ) || - empty( $emails ) || - ! is_array( $emails ) - ) { - continue; - } - - $data[ $type ] = array(); - - // Iterate over all emails for each type. - // There might be multiple cc/to/bcc emails. - foreach ( $emails as $email ) { - $holder = array(); - $addr = isset( $email[0] ) ? $email[0] : false; - $name = isset( $email[1] ) ? $email[1] : false; - - if ( ! filter_var( $addr, FILTER_VALIDATE_EMAIL ) ) { - continue; - } - - $holder['email'] = $addr; - if ( ! empty( $name ) ) { - $holder['name'] = $name; - } - - array_push( $data[ $type ], $holder ); - } - } - - if ( ! empty( $data ) ) { - $this->set_body_param( - array( - 'personalizations' => array( $data ), - ) - ); - } - } - - /** - * @inheritdoc - */ - public function set_content( $content ) { - - if ( empty( $content ) ) { - return; - } - - if ( is_array( $content ) ) { - - $default = array( 'text', 'html' ); - $data = array(); - - foreach ( $content as $type => $body ) { - if ( - ! in_array( $type, $default, true ) || - empty( $body ) - ) { - continue; - } - - $content_type = 'text/plain'; - $content_value = $body; - - if ( $type === 'html' ) { - $content_type = 'text/html'; - } - - $data[] = array( - 'type' => $content_type, - 'value' => $content_value, - ); - } - - $this->set_body_param( - array( - 'content' => $data, - ) - ); - } else { - $data['type'] = 'text/html'; - $data['value'] = $content; - - if ( $this->phpmailer->ContentType === 'text/plain' ) { - $data['type'] = 'text/plain'; - } - - $this->set_body_param( - array( - 'content' => array( $data ), - ) - ); - } - } - - /** - * Redefine the way custom headers are processed for this mailer - they should be in body. - * - * @since 1.5.0 - * - * @param array $headers - */ - public function set_headers( $headers ) { - - foreach ( $headers as $header ) { - $name = isset( $header[0] ) ? $header[0] : false; - $value = isset( $header[1] ) ? $header[1] : false; - - $this->set_body_header( $name, $value ); - } - - // Add custom PHPMailer-specific header. - $this->set_body_header( 'X-Mailer', 'WPMailSMTP/Mailer/' . $this->mailer . ' ' . WPMS_PLUGIN_VER ); - } - - /** - * This mailer supports email-related custom headers inside a body of the message. - * - * @since 1.5.0 - * - * @param string $name - * @param string $value - */ - public function set_body_header( $name, $value ) { - - $name = sanitize_text_field( $name ); - if ( empty( $name ) ) { - return; - } - - $headers = isset( $this->body['headers'] ) ? (array) $this->body['headers'] : array(); - - $headers[ $name ] = WP::sanitize_value( $value ); - - $this->set_body_param( - array( - 'headers' => $headers, - ) - ); - } - - /** - * SendGrid accepts an array of files content in body, so we will include all files and send. - * Doesn't handle exceeding the limits etc, as this is done and reported by SendGrid API. - * - * @since 1.0.0 - * - * @param array $attachments - */ - public function set_attachments( $attachments ) { - - if ( empty( $attachments ) ) { - return; - } - - $data = array(); - - foreach ( $attachments as $attachment ) { - $file = false; - - /* - * We are not using WP_Filesystem API as we can't reliably work with it. - * It is not always available, same as credentials for FTP. - */ - try { - if ( is_file( $attachment[0] ) && is_readable( $attachment[0] ) ) { - $file = file_get_contents( $attachment[0] ); // phpcs:ignore - } - } - catch ( \Exception $e ) { - $file = false; - } - - if ( $file === false ) { - continue; - } - - $filetype = str_replace( ';', '', trim( $attachment[4] ) ); - - $data[] = array( - 'content' => base64_encode( $file ), // string, 1 character. - 'type' => $filetype, // string, no ;, no CRLF. - 'filename' => empty( $attachment[2] ) ? 'file-' . wp_hash( microtime() ) . '.' . $filetype : trim( $attachment[2] ), // required string, no CRLF. - 'disposition' => in_array( $attachment[6], array( 'inline', 'attachment' ), true ) ? $attachment[6] : 'attachment', // either inline or attachment. - 'content_id' => empty( $attachment[7] ) ? '' : trim( (string) $attachment[7] ), // string, no CRLF. - ); - } - - if ( ! empty( $data ) ) { - $this->set_body_param( - array( - 'attachments' => $data, - ) - ); - } - } - - /** - * @inheritdoc - */ - public function set_reply_to( $reply_to ) { - - if ( empty( $reply_to ) ) { - return; - } - - $data = array(); - - foreach ( $reply_to as $key => $emails ) { - if ( - empty( $emails ) || - ! is_array( $emails ) - ) { - continue; - } - - $addr = isset( $emails[0] ) ? $emails[0] : false; - $name = isset( $emails[1] ) ? $emails[1] : false; - - if ( ! filter_var( $addr, FILTER_VALIDATE_EMAIL ) ) { - continue; - } - - $data['email'] = $addr; - if ( ! empty( $name ) ) { - $data['name'] = $name; - } - } - - if ( ! empty( $data ) ) { - $this->set_body_param( - array( - 'reply_to' => $data, - ) - ); - } - } - - /** - * SendGrid doesn't support sender or return_path params. - * So we do nothing. - * - * @since 1.0.0 - * - * @param string $from_email - */ - public function set_return_path( $from_email ) {} - - /** - * Get a SendGrid-specific response with a helpful error. - * - * @since 1.2.0 - * - * @return string - */ - public function get_response_error() { // phpcs:ignore - - $body = (array) wp_remote_retrieve_body( $this->response ); - - $error_text = array(); - - if ( ! empty( $body['errors'] ) ) { - foreach ( $body['errors'] as $error ) { - if ( property_exists( $error, 'message' ) ) { - // Prepare additional information from SendGrid API. - $extra = ''; - if ( property_exists( $error, 'field' ) && ! empty( $error->field ) ) { - $extra .= $error->field . '; '; - } - if ( property_exists( $error, 'help' ) && ! empty( $error->help ) ) { - $extra .= $error->help; - } - - // Assign both the main message and perhaps extra information, if exists. - $error_text[] = $error->message . ( ! empty( $extra ) ? ' - ' . $extra : '' ); - } - } - } elseif ( ! empty( $this->error_message ) ) { - $error_text[] = $this->error_message; - } - - return implode( '
', array_map( 'esc_textarea', $error_text ) ); - } - - /** - * Get mailer debug information, that is helpful during support. - * - * @since 1.2.0 - * - * @return string - */ - public function get_debug_info() { - - $sendgrid_text[] = 'Api Key: ' . ( $this->is_mailer_complete() ? 'Yes' : 'No' ); - - return implode( '
', $sendgrid_text ); - } - - /** - * @inheritdoc - */ - public function is_mailer_complete() { - - $options = $this->options->get_group( $this->mailer ); - - // API key is the only required option. - if ( ! empty( $options['api_key'] ) ) { - return true; - } - - return false; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/Sendgrid/Options.php b/wp-content/plugins/wp-mail-smtp/src/Providers/Sendgrid/Options.php deleted file mode 100644 index f6d3152..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/Sendgrid/Options.php +++ /dev/null @@ -1,104 +0,0 @@ - wp_mail_smtp()->assets_url . '/images/providers/sendgrid.svg', - 'slug' => 'sendgrid', - 'title' => esc_html__( 'SendGrid', 'wp-mail-smtp' ), - 'description' => sprintf( - wp_kses( - /* translators: %1$s - opening link tag; %2$s - closing link tag; %3$s - opening link tag; %4$s - closing link tag. */ - __( '%1$sSendGrid%2$s is one of the leading transactional email services, sending over 35 billion emails every month. They provide users 100 free emails per day.

Read our %3$sSendGrid documentation%4$s to learn how to set up SendGrid and improve your email deliverability.', 'wp-mail-smtp' ), - [ - 'br' => [], - 'a' => [ - 'href' => [], - 'rel' => [], - 'target' => [], - ], - ] - ), - '', - '', - '', - '' - ), - 'supports' => [ - 'from_email' => true, - 'from_name' => true, - 'return_path' => false, - 'from_email_force' => true, - 'from_name_force' => true, - ], - ] - ); - } - - /** - * @inheritdoc - */ - public function display_options() { - ?> - - -
-
- -
-
- options->is_const_defined( $this->get_slug(), 'api_key' ) ) : ?> - - display_const_set_message( 'WPMS_SENDGRID_API_KEY' ); ?> - - - -

- ' . - esc_html__( 'Create API Key', 'wp-mail-smtp' ) . - '' - ); - ?> -
- Mail Send' - ); - ?> -

-
-
- - options = \WPMailSMTP\Options::init()->get_group( Options::SLUG ); - } - - /** - * Configure API key authorization: api-key. - * - * @since 1.6.0 - * - * @return Configuration - */ - protected function get_api_config() { - - return Configuration::getDefaultConfiguration()->setApiKey( 'api-key', isset( $this->options['api_key'] ) ? $this->options['api_key'] : '' ); - } - - /** - * Get the mailer client instance for Account API. - * - * @since 1.6.0 - */ - public function get_account_client() { - - // Include the library. - require_once wp_mail_smtp()->plugin_path . '/vendor/autoload.php'; - - return new AccountApi( null, $this->get_api_config() ); - } - - /** - * Get the mailer client instance for Sender API. - * - * @since 1.6.0 - */ - public function get_sender_client() { - - // Include the library. - require_once wp_mail_smtp()->plugin_path . '/vendor/autoload.php'; - - return new SendersApi( null, $this->get_api_config() ); - } - - /** - * Get the mailer client instance for SMTP API. - * - * @since 1.6.0 - */ - public function get_smtp_client() { - - // Include the library. - require_once wp_mail_smtp()->plugin_path . '/vendor/autoload.php'; - - return new SMTPApi( null, $this->get_api_config() ); - } - - /** - * Whether the mailer is ready to be used in API calls. - * - * @since 1.6.0 - * - * @return bool - */ - public function is_ready() { - - return ! empty( $this->options['api_key'] ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/Sendinblue/Mailer.php b/wp-content/plugins/wp-mail-smtp/src/Providers/Sendinblue/Mailer.php deleted file mode 100644 index 8c7ec02..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/Sendinblue/Mailer.php +++ /dev/null @@ -1,406 +0,0 @@ -is_php_compatible() ) { - return; - } - } - - /** - * @inheritDoc - * - * @since 1.6.0 - */ - public function set_header( $name, $value ) { - - $name = sanitize_text_field( $name ); - - $this->body['headers'][ $name ] = WP::sanitize_value( $value ); - } - - /** - * Set the From information for an email. - * - * @since 1.6.0 - * - * @param string $email - * @param string $name - */ - public function set_from( $email, $name ) { - - if ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) { - return; - } - - $this->body['sender'] = array( - 'email' => $email, - 'name' => ! empty( $name ) ? WP::sanitize_value( $name ) : '', - ); - } - - /** - * Set email recipients: to, cc, bcc. - * - * @since 1.6.0 - * - * @param array $recipients - */ - public function set_recipients( $recipients ) { - - if ( empty( $recipients ) ) { - return; - } - - // Allow for now only these recipient types. - $default = array( 'to', 'cc', 'bcc' ); - $data = array(); - - foreach ( $recipients as $type => $emails ) { - - if ( - ! in_array( $type, $default, true ) || - empty( $emails ) || - ! is_array( $emails ) - ) { - continue; - } - - $data[ $type ] = array(); - - // Iterate over all emails for each type. - // There might be multiple cc/to/bcc emails. - foreach ( $emails as $email ) { - $holder = array(); - $addr = isset( $email[0] ) ? $email[0] : false; - $name = isset( $email[1] ) ? $email[1] : false; - - if ( ! filter_var( $addr, FILTER_VALIDATE_EMAIL ) ) { - continue; - } - - $holder['email'] = $addr; - if ( ! empty( $name ) ) { - $holder['name'] = $name; - } - - array_push( $data[ $type ], $holder ); - } - } - - foreach ( $data as $type => $type_recipients ) { - $this->body[ $type ] = $type_recipients; - } - } - - /** - * @inheritDoc - * - * @since 1.6.0 - */ - public function set_subject( $subject ) { - - $this->body['subject'] = $subject; - } - - /** - * Set email content. - * - * @since 1.6.0 - * - * @param string|array $content - */ - public function set_content( $content ) { - - if ( empty( $content ) ) { - return; - } - - if ( is_array( $content ) ) { - - if ( ! empty( $content['text'] ) ) { - $this->body['textContent'] = $content['text']; - } - - if ( ! empty( $content['html'] ) ) { - $this->body['htmlContent'] = $content['html']; - } - } else { - if ( $this->phpmailer->ContentType === 'text/plain' ) { - $this->body['textContent'] = $content; - } else { - $this->body['htmlContent'] = $content; - } - } - } - - /** - * Doesn't support this. - * - * @since 1.6.0 - * - * @param string $email - */ - public function set_return_path( $email ) { - - } - - /** - * Set the Reply To headers if not set already. - * - * @since 1.6.0 - * - * @param array $emails - */ - public function set_reply_to( $emails ) { - - if ( empty( $emails ) ) { - return; - } - - $data = array(); - - foreach ( $emails as $user ) { - $holder = array(); - $addr = isset( $user[0] ) ? $user[0] : false; - $name = isset( $user[1] ) ? $user[1] : false; - - if ( ! filter_var( $addr, FILTER_VALIDATE_EMAIL ) ) { - continue; - } - - $holder['email'] = $addr; - if ( ! empty( $name ) ) { - $holder['name'] = $name; - } - - $data[] = $holder; - } - - if ( ! empty( $data ) ) { - $this->body['replyTo'] = $data[0]; - } - } - - /** - * Set attachments for an email. - * - * @since 1.6.0 - * - * @param array $attachments - */ - public function set_attachments( $attachments ) { - - if ( empty( $attachments ) ) { - return; - } - - foreach ( $attachments as $attachment ) { - $file = false; - - /* - * We are not using WP_Filesystem API as we can't reliably work with it. - * It is not always available, same as credentials for FTP. - */ - try { - if ( is_file( $attachment[0] ) && is_readable( $attachment[0] ) ) { - $ext = pathinfo( $attachment[0], PATHINFO_EXTENSION ); - - if ( in_array( $ext, $this->allowed_attach_ext, true ) ) { - $file = file_get_contents( $attachment[0] ); // phpcs:ignore - } - } - } - catch ( \Exception $e ) { - $file = false; - } - - if ( $file === false ) { - continue; - } - - $this->body['attachment'][] = array( - 'name' => $attachment[2], - 'content' => base64_encode( $file ), - ); - } - } - - /** - * @inheritDoc - * - * @since 1.6.0 - * - * @return SendSmtpEmail - */ - public function get_body() { - - return new SendSmtpEmail( $this->body ); - } - - /** - * Use a library to send emails. - * - * @since 1.6.0 - */ - public function send() { - - try { - $api = new Api(); - - $response = $api->get_smtp_client()->sendTransacEmail( $this->get_body() ); - - $this->process_response( $response ); - } catch ( ApiException $e ) { - $error = json_decode( $e->getResponseBody() ); - - if ( json_last_error() === JSON_ERROR_NONE && ! empty( $error ) ) { - $message = '[' . sanitize_key( $error->code ) . ']: ' . esc_html( $error->message ); - } else { - $message = $e->getMessage(); - } - - $this->error_message = $message; - - Debug::set( 'Mailer: Sendinblue' . PHP_EOL . $message ); - } catch ( \Exception $e ) { - $this->error_message = $e->getMessage(); - - Debug::set( 'Mailer: Sendinblue' . PHP_EOL . $e->getMessage() ); - - return; - } - } - - /** - * Save response from the API to use it later. - * All the actually response processing is done in send() method, - * because SendinBlue throws exception if any error occurs. - * - * @since 1.6.0 - * - * @param CreateSmtpEmail $response The Sendinblue Email object. - */ - protected function process_response( $response ) { - - $this->response = $response; - - if ( - is_a( $response, 'WPMailSMTP\Vendor\SendinBlue\Client\Model\CreateSmtpEmail' ) && - method_exists( $response, 'getMessageId' ) - ) { - $this->phpmailer->MessageID = $response->getMessageId(); - $this->verify_sent_status = true; - } - } - - /** - * Check whether the email was sent. - * - * @since 1.6.0 - * - * @return bool - */ - public function is_email_sent() { - - $is_sent = false; - - if ( $this->response instanceof CreateSmtpEmail ) { - $is_sent = $this->response->valid(); - } - - // Clear debug messages if email is successfully sent. - if ( $is_sent ) { - Debug::clear(); - } - - return $is_sent; - } - - /** - * @inheritdoc - * - * @since 1.6.0 - */ - public function get_debug_info() { - - $mailjet_text[] = 'API Key: ' . ( $this->is_mailer_complete() ? 'Yes' : 'No' ); - - return implode( '
', $mailjet_text ); - } - - /** - * @inheritdoc - * - * @since 1.6.0 - */ - public function is_mailer_complete() { - - $options = $this->options->get_group( $this->mailer ); - - // API key is the only required option. - if ( ! empty( $options['api_key'] ) ) { - return true; - } - - return false; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/Sendinblue/Options.php b/wp-content/plugins/wp-mail-smtp/src/Providers/Sendinblue/Options.php deleted file mode 100644 index 5ee71c2..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/Sendinblue/Options.php +++ /dev/null @@ -1,127 +0,0 @@ -Sendinblue is our recommended transactional email service. Founded in 2012, they serve 80,000+ growing companies around the world and send over 30 million emails each day. They understand that transactional emails are the heart of your customer relationships. Their email deliverability experts are constantly at work optimizing the reliability and speed of their SMTP infrastructure. Sendinblue provides users 300 free emails per day.', 'wp-mail-smtp' ) . - '

' . - /* translators: %2$s - URL to wpmailsmtp.com doc. */ - __( 'Read our Sendinblue documentation to learn how to configure Sendinblue and improve your email deliverability.', 'wp-mail-smtp' ), - [ - 'strong' => true, - 'br' => true, - 'a' => [ - 'href' => true, - 'rel' => true, - 'target' => true, - ], - ] - ), - 'https://wpmailsmtp.com/go/sendinblue/', - 'https://wpmailsmtp.com/docs/how-to-set-up-the-sendinblue-mailer-in-wp-mail-smtp' - ); - - $api_key = PluginOptions::init()->get( self::SLUG, 'api_key' ); - - if ( empty( $api_key ) ) { - $description .= '

' . - esc_html__( 'Get Sendinblue Now (Free)', 'wp-mail-smtp' ) . - '

'; - } - - parent::__construct( - [ - 'logo_url' => wp_mail_smtp()->assets_url . '/images/providers/sendinblue.svg', - 'slug' => self::SLUG, - 'title' => esc_html__( 'Sendinblue', 'wp-mail-smtp' ), - 'php' => '5.6', - 'description' => $description, - 'supports' => [ - 'from_email' => true, - 'from_name' => true, - 'return_path' => false, - 'from_email_force' => true, - 'from_name_force' => true, - ], - 'recommended' => true, - ] - ); - } - - /** - * Output the mailer provider options. - * - * @since 1.6.0 - */ - public function display_options() { - - // Do not display options if PHP version is not correct. - if ( ! $this->is_php_correct() ) { - $this->display_php_warning(); - - return; - } - ?> - - -
-
- -
-
- options->is_const_defined( $this->get_slug(), 'api_key' ) ) : ?> - - display_const_set_message( 'WPMS_SENDINBLUE_API_KEY' ); ?> - - - - -

- ' . - esc_html__( 'Get v3 API Key', 'wp-mail-smtp' ) . - '' - ); - ?> -

-
-
- - wp_mail_smtp()->assets_url . '/images/providers/zoho.svg', - 'slug' => 'zoho', - 'title' => esc_html__( 'Zoho Mail', 'wp-mail-smtp' ), - 'disabled' => true, - ) - ); - } - - /** - * {@inheritdoc} - * - * @since 2.3.0 - */ - public function display_options() { - - ?> - -

- -

- - esc_html__( 'Is WP Mail SMTP mailer setup complete?', 'wp-mail-smtp' ), - 'test' => array( $this, 'mailer_setup_complete_test' ), - ); - - $tests['direct']['wp_mail_smtp_db_tables_exist'] = array( - 'label' => esc_html__( 'Do WP Mail SMTP DB tables exist?', 'wp-mail-smtp' ), - 'test' => [ $this, 'db_tables_test' ], - ); - - return $tests; - } - - /** - * Register plugin WP Site Health debug information. - * This will be displayed in the "Info" tab of the WP Site Health page. - * - * @since 1.9.0 - * - * @param array $debug_info Array of existing debug information. - * - * @return array - */ - public function register_debug_information( $debug_info ) { - - $debug_notices = Debug::get(); - $db_tables = $this->get_db_tables( 'existing' ); - - $debug_info[ self::DEBUG_INFO_SLUG ] = [ - 'label' => $this->get_label(), - 'fields' => [ - 'version' => [ - 'label' => esc_html__( 'Version', 'wp-mail-smtp' ), - 'value' => WPMS_PLUGIN_VER, - ], - 'license_key_type' => [ - 'label' => esc_html__( 'License key type', 'wp-mail-smtp' ), - 'value' => wp_mail_smtp()->get_license_type(), - ], - 'debug' => [ - 'label' => esc_html__( 'Debug', 'wp-mail-smtp' ), - 'value' => ! empty( $debug_notices ) ? implode( '. ', $debug_notices ) : esc_html__( 'No debug notices found.', 'wp-mail-smtp' ), - ], - 'db_tables' => [ - 'label' => esc_html__( 'DB tables', 'wp-mail-smtp' ), - 'value' => ! empty( $db_tables ) ? - implode( ', ', $db_tables ) : esc_html__( 'No DB tables found.', 'wp-mail-smtp' ), - ], - ], - ]; - - // Install date. - $activated = get_option( 'wp_mail_smtp_activated', [] ); - if ( ! empty( $activated['lite'] ) ) { - $date = $activated['lite'] + ( get_option( 'gmt_offset' ) * 3600 ); - - $debug_info[ self::DEBUG_INFO_SLUG ]['fields']['lite_install_date'] = [ - 'label' => esc_html__( 'Lite install date', 'wp-mail-smtp' ), - 'value' => date_i18n( esc_html__( 'M j, Y @ g:ia' ), $date ), - ]; - } - - return $debug_info; - } - - /** - * Perform the WP site health test for checking, if the mailer setup is complete. - * - * @since 1.9.0 - */ - public function mailer_setup_complete_test() { - - $mailer = Options::init()->get( 'mail', 'mailer' ); - $mailer_complete = false; - $mailer_title = esc_html__( 'None selected', 'wp-mail-smtp' ); - - if ( ! empty( $mailer ) ) { - $mailer_complete = wp_mail_smtp() - ->get_providers() - ->get_mailer( - $mailer, - wp_mail_smtp()->get_processor()->get_phpmailer() - )->is_mailer_complete(); - - $mailer_title = wp_mail_smtp()->get_providers()->get_options( $mailer )->get_title(); - } - - // The default mailer should be considered as a non-complete mailer. - if ( $mailer === 'mail' ) { - $mailer_complete = false; - } - - $mailer_text = sprintf( - '%s: %s', - esc_html__( 'Current mailer', 'wp-mail-smtp' ), - esc_html( $mailer_title ) - ); - - $result = array( - 'label' => esc_html__( 'WP Mail SMTP mailer setup is complete', 'wp-mail-smtp' ), - 'status' => 'good', - 'badge' => array( - 'label' => $this->get_label(), - 'color' => self::BADGE_COLOR, - ), - 'description' => sprintf( - '

%s

%s

', - $mailer_text, - esc_html__( 'The WP Mail SMTP plugin mailer setup is complete. You can send a test email, to make sure it\'s working properly.', 'wp-mail-smtp' ) - ), - 'actions' => sprintf( - '

%s

', - esc_url( add_query_arg( 'tab', 'test', wp_mail_smtp()->get_admin()->get_admin_page_url() ) ), - esc_html__( 'Test email sending', 'wp-mail-smtp' ) - ), - 'test' => 'wp_mail_smtp_mailer_setup_complete', - ); - - if ( $mailer === 'mail' ) { - $mailer_text .= sprintf( /* translators: %s - explanation why default mailer is not a valid mailer option. */ - '

%s

', - esc_html__( 'You currently have the default mailer selected, which means that you haven’t set up SMTP yet.', 'wp-mail-smtp' ) - ); - } - - if ( $mailer_complete === false ) { - $result['label'] = esc_html__( 'WP Mail SMTP mailer setup is incomplete', 'wp-mail-smtp' ); - $result['status'] = 'recommended'; - $result['badge']['color'] = 'orange'; - $result['description'] = sprintf( - '

%s

%s

', - $mailer_text, - esc_html__( 'The WP Mail SMTP plugin mailer setup is incomplete. Please click on the link below to access plugin settings and configure the mailer.', 'wp-mail-smtp' ) - ); - $result['actions'] = sprintf( - '

%s

', - esc_url( wp_mail_smtp()->get_admin()->get_admin_page_url() ), - esc_html__( 'Configure mailer', 'wp-mail-smtp' ) - ); - } - - return $result; - } - - /** - * Perform the test for checking if all custom plugin DB tables exist. - * - * @since 2.1.2 - * - * @return array - */ - public function db_tables_test() { - - $result = array( - 'label' => esc_html__( 'WP Mail SMTP DB tables are created', 'wp-mail-smtp' ), - 'status' => 'good', - 'badge' => array( - 'label' => $this->get_label(), - 'color' => self::BADGE_COLOR, - ), - 'description' => esc_html__( 'WP Mail SMTP is using custom database tables for some of its features. In order to work properly, the custom tables should be created, and it looks like they exist in your database.', 'wp-mail-smtp' ), - 'actions' => '', - 'test' => 'wp_mail_smtp_db_tables_exist', - ); - - $missing_tables = $this->get_db_tables( 'missing' ); - - if ( ! empty( $missing_tables ) ) { - $result['label'] = esc_html__( 'WP Mail SMTP DB tables check has failed', 'wp-mail-smtp' ); - $result['status'] = 'critical'; - $result['badge']['color'] = 'red'; - $result['description'] = sprintf( - '

%s

%s

', - sprintf( /* translators: %s - the list of missing tables separated by comma. */ - esc_html( _n( 'Missing table: %s', 'Missing tables: %s', count( $missing_tables ), 'wp-mail-smtp' ) ), - esc_html( implode( ', ', $missing_tables ) ) - ), - esc_html__( 'WP Mail SMTP is using custom database tables for some of its features. In order to work properly, the custom tables should be created, and it seems they are missing. Please try to re-install the WP Mail SMTP plugin. If this issue persists, please contact our support.', 'wp-mail-smtp' ) - ); - } - - return $result; - } - - /** - * Check DB: - * - if any required plugin DB table is missing, - * - which of the required plugin DB tables exist. - * - * @since 2.1.2 - * - * @param string $check Which type of tables to return: 'missing' or 'existing'. - * - * @return array Missing or existing tables. - */ - private function get_db_tables( $check = 'missing' ) { - - global $wpdb; - - $tables = wp_mail_smtp()->get_custom_db_tables(); - - $missing_tables = []; - $existing_tables = []; - - foreach ( $tables as $table ) { - $db_result = $wpdb->get_var( $wpdb->prepare( 'SHOW TABLES LIKE %s', $table ) ); // phpcs:ignore - - if ( strtolower( $db_result ) !== strtolower( $table ) ) { - $missing_tables[] = $table; - } else { - $existing_tables[] = $table; - } - } - - return ( $check === 'existing' ) ? $existing_tables : $missing_tables; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Tasks/Meta.php b/wp-content/plugins/wp-mail-smtp/src/Tasks/Meta.php deleted file mode 100644 index 0f3f0db..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Tasks/Meta.php +++ /dev/null @@ -1,529 +0,0 @@ -191 chars in JSON to AS, - * so we need to store them somewhere (and clean from time to time). - * - * @since 2.1.0 - */ -class Meta { - - /** - * Database table name. - * - * @since 2.1.0 - * - * @var string - */ - public $table_name; - - /** - * Database version. - * - * @since 2.1.0 - * - * @var string - */ - public $version; - - /** - * Primary key (unique field) for the database table. - * - * @since 2.1.0 - * - * @var string - */ - public $primary_key = 'id'; - - /** - * Database type identifier. - * - * @since 2.1.0 - * - * @var string - */ - public $type = 'tasks_meta'; - - /** - * Primary class constructor. - * - * @since 2.1.0 - */ - public function __construct() { - - $this->table_name = self::get_table_name(); - } - - /** - * Get the DB table name. - * - * @since 2.1.0 - * - * @return string - */ - public static function get_table_name() { - - global $wpdb; - - return $wpdb->prefix . 'wpmailsmtp_tasks_meta'; - } - - /** - * Get table columns. - * - * @since 2.1.0 - */ - public function get_columns() { - - return array( - 'id' => '%d', - 'action' => '%s', - 'data' => '%s', - 'date' => '%s', - ); - } - - /** - * Default column values. - * - * @since 2.1.0 - * - * @return array - */ - public function get_column_defaults() { - - return array( - 'action' => '', - 'data' => '', - 'date' => gmdate( 'Y-m-d H:i:s' ), - ); - } - - /** - * Retrieve a row from the database based on a given row ID. - * - * @since 2.1.0 - * - * @param int $row_id Row ID. - * - * @return null|object - */ - private function get_from_db( $row_id ) { - - global $wpdb; - - // phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching - return $wpdb->get_row( - $wpdb->prepare( - "SELECT * FROM {$this->table_name} WHERE {$this->primary_key} = %s LIMIT 1;", // phpcs:ignore - $row_id - ) - ); - } - - /** - * Retrieve a row based on column and row ID. - * - * @since 2.1.0 - * - * @param string $column Column name. - * @param int|string $row_id Row ID. - * - * @return object|null|bool Database query result, object or null on failure. - */ - public function get_by( $column, $row_id ) { - - global $wpdb; - - if ( empty( $row_id ) || ! array_key_exists( $column, $this->get_columns() ) ) { - return false; - } - - // phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching - return $wpdb->get_row( - $wpdb->prepare( - "SELECT * FROM $this->table_name WHERE $column = '%s' LIMIT 1;", // phpcs:ignore - $row_id - ) - ); - } - - /** - * Retrieve a value based on column name and row ID. - * - * @since 2.1.0 - * - * @param string $column Column name. - * @param int|string $row_id Row ID. - * - * @return string|null Database query result (as string), or null on failure. - */ - public function get_column( $column, $row_id ) { - - global $wpdb; - - if ( empty( $row_id ) || ! array_key_exists( $column, $this->get_columns() ) ) { - return false; - } - - // phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching - return $wpdb->get_var( - $wpdb->prepare( - "SELECT $column FROM $this->table_name WHERE $this->primary_key = '%s' LIMIT 1;", // phpcs:ignore - $row_id - ) - ); - } - - /** - * Retrieve one column value based on another given column and matching value. - * - * @since 2.1.0 - * - * @param string $column Column name. - * @param string $column_where Column to match against in the WHERE clause. - * @param string $column_value Value to match to the column in the WHERE clause. - * - * @return string|null Database query result (as string), or null on failure. - */ - public function get_column_by( $column, $column_where, $column_value ) { - - global $wpdb; - - if ( empty( $column ) || empty( $column_where ) || empty( $column_value ) || ! array_key_exists( $column, $this->get_columns() ) ) { - return false; - } - - // phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching - return $wpdb->get_var( - $wpdb->prepare( - "SELECT $column FROM $this->table_name WHERE $column_where = %s LIMIT 1;", // phpcs:ignore - $column_value - ) - ); - } - - /** - * Insert a new record into the database. - * - * @since 2.1.0 - * - * @param array $data Column data. - * @param string $type Optional. Data type context. - * - * @return int ID for the newly inserted record. 0 otherwise. - */ - private function add_to_db( $data, $type = '' ) { - - global $wpdb; - - // Set default values. - $data = wp_parse_args( $data, $this->get_column_defaults() ); - - do_action( 'wp_mail_smtp_pre_insert_' . $type, $data ); - - // Initialise column format array. - $column_formats = $this->get_columns(); - - // Force fields to lower case. - $data = array_change_key_case( $data ); - - // White list columns. - $data = array_intersect_key( $data, $column_formats ); - - // Reorder $column_formats to match the order of columns given in $data. - $data_keys = array_keys( $data ); - $column_formats = array_merge( array_flip( $data_keys ), $column_formats ); - - $wpdb->insert( $this->table_name, $data, $column_formats ); - - do_action( 'wp_mail_smtp_post_insert_' . $type, $wpdb->insert_id, $data ); - - return $wpdb->insert_id; - } - - /** - * Update an existing record in the database. - * - * @since 2.1.0 - * - * @param int|string $row_id Row ID for the record being updated. - * @param array $data Optional. Array of columns and associated data to update. Default empty array. - * @param string $where Optional. Column to match against in the WHERE clause. If empty, $primary_key - * will be used. Default empty. - * @param string $type Optional. Data type context, e.g. 'affiliate', 'creative', etc. Default empty. - * - * @return bool False if the record could not be updated, true otherwise. - */ - public function update( $row_id, $data = array(), $where = '', $type = '' ) { - - global $wpdb; - - // Row ID must be a positive integer. - $row_id = absint( $row_id ); - - if ( empty( $row_id ) ) { - return false; - } - - if ( empty( $where ) ) { - $where = $this->primary_key; - } - - do_action( 'wp_mail_smtp_pre_update_' . $type, $data ); - - // Initialise column format array. - $column_formats = $this->get_columns(); - - // Force fields to lower case. - $data = array_change_key_case( $data ); - - // White list columns. - $data = array_intersect_key( $data, $column_formats ); - - // Reorder $column_formats to match the order of columns given in $data. - $data_keys = array_keys( $data ); - $column_formats = array_merge( array_flip( $data_keys ), $column_formats ); - - // phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching - if ( false === $wpdb->update( $this->table_name, $data, array( $where => $row_id ), $column_formats ) ) { - return false; - } - - do_action( 'wp_mail_smtp_post_update_' . $type, $data ); - - return true; - } - - /** - * Delete a record from the database. - * - * @since 2.1.0 - * - * @param int|string $row_id Row ID. - * - * @return bool False if the record could not be deleted, true otherwise. - */ - public function delete( $row_id = 0 ) { - - global $wpdb; - - // Row ID must be positive integer. - $row_id = absint( $row_id ); - - if ( empty( $row_id ) ) { - return false; - } - - do_action( 'wp_mail_smtp_pre_delete', $row_id ); - do_action( 'wp_mail_smtp_pre_delete_' . $this->type, $row_id ); - - // phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching - if ( false === $wpdb->query( $wpdb->prepare( "DELETE FROM {$this->table_name} WHERE {$this->primary_key} = %d", $row_id ) ) ) { // phpcs:ignore - return false; - } - - do_action( 'wp_mail_smtp_post_delete', $row_id ); - do_action( 'wp_mail_smtp_post_delete_' . $this->type, $row_id ); - - return true; - } - - /** - * Delete a record from the database by column. - * - * @since 2.1.0 - * - * @param string $column Column name. - * @param int|string $column_value Column value. - * - * @return bool False if the record could not be deleted, true otherwise. - */ - public function delete_by( $column, $column_value ) { - - global $wpdb; - - if ( empty( $column ) || empty( $column_value ) || ! array_key_exists( $column, $this->get_columns() ) ) { - return false; - } - - do_action( 'wp_mail_smtp_pre_delete', $column_value ); - do_action( 'wp_mail_smtp_pre_delete_' . $this->type, $column_value ); - - // phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching - if ( false === $wpdb->query( $wpdb->prepare( "DELETE FROM {$this->table_name} WHERE $column = %s", $column_value ) ) ) { // phpcs:ignore - return false; - } - - do_action( 'wp_mail_smtp_post_delete', $column_value ); - do_action( 'wp_mail_smtp_post_delete_' . $this->type, $column_value ); - - return true; - } - - /** - * Check if the given table exists. - * - * @since 2.1.0 - * - * @param string $table The table name. Defaults to the child class table name. - * - * @return string|null If the table name exists. - */ - public function table_exists( $table = '' ) { - - global $wpdb; - - if ( ! empty( $table ) ) { - $table = sanitize_text_field( $table ); - } else { - $table = $this->table_name; - } - - // phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching - $db_result = $wpdb->get_var( $wpdb->prepare( 'SHOW TABLES LIKE %s', $table ) ); - - return strtolower( $db_result ) === strtolower( $table ); - } - - /** - * Create custom entry meta database table. - * Used in migration. - * - * @since 2.1.0 - */ - public function create_table() { - - global $wpdb; - - require_once ABSPATH . 'wp-admin/includes/upgrade.php'; - - $charset_collate = ''; - - if ( ! empty( $wpdb->charset ) ) { - $charset_collate .= "DEFAULT CHARACTER SET {$wpdb->charset}"; - } - if ( ! empty( $wpdb->collate ) ) { - $charset_collate .= " COLLATE {$wpdb->collate}"; - } - - $sql = "CREATE TABLE {$this->table_name} ( - id bigint(20) NOT NULL AUTO_INCREMENT, - action varchar(255) NOT NULL, - data longtext NOT NULL, - date datetime NOT NULL, - PRIMARY KEY (id) - ) {$charset_collate};"; - - dbDelta( $sql ); - } - - /** - * Remove queue records for a defined period of time in the past. - * Calling this method will remove queue records that are older than $period seconds. - * - * @since 2.1.0 - * - * @param string $action Action that should be cleaned up. - * @param int $interval Number of seconds from now. - * - * @return int Number of removed tasks meta records. - */ - public function clean_by( $action, $interval ) { - - global $wpdb; - - if ( empty( $action ) || empty( $interval ) ) { - return 0; - } - - $table = self::get_table_name(); - $action = sanitize_key( $action ); - $date = gmdate( 'Y-m-d H:i:s', time() - (int) $interval ); - - // phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching - return (int) $wpdb->query( - $wpdb->prepare( - "DELETE FROM `$table` WHERE action = %s AND date < %s", // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared - $action, - $date - ) - ); - } - - /** - * Inserts a new record into the database. - * - * @since 2.1.0 - * - * @param array $data Column data. - * @param string $type Optional. Data type context. - * - * @return int ID for the newly inserted record. 0 otherwise. - */ - public function add( $data, $type = '' ) { - - if ( empty( $data['action'] ) || ! is_string( $data['action'] ) ) { - return 0; - } - - $data['action'] = sanitize_key( $data['action'] ); - - if ( isset( $data['data'] ) ) { - $string = wp_json_encode( $data['data'] ); - - if ( $string === false ) { - $string = ''; - } - - /* - * We are encoding the string representation of all the data - * to make sure that nothing can harm the database. - * This is not an encryption, and we need this data later as is, - * so we are using one of the fastest way to do that. - * This data is removed from DB on a daily basis. - */ - // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode - $data['data'] = base64_encode( $string ); - } - - if ( empty( $type ) ) { - $type = $this->type; - } - - return $this->add_to_db( $data, $type ); - } - - /** - * Retrieve a row from the database based on a given row ID. - * - * @since 2.1.0} - * - * @param int $meta_id Meta ID. - * - * @return null|object - */ - public function get( $meta_id ) { - - $meta = $this->get_from_db( $meta_id ); - - if ( empty( $meta ) || empty( $meta->data ) ) { - return $meta; - } - - // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode - $decoded = base64_decode( $meta->data ); - - if ( $decoded === false || ! is_string( $decoded ) ) { - $meta->data = ''; - } else { - $meta->data = json_decode( $decoded, true ); - } - - return $meta; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Tasks/Task.php b/wp-content/plugins/wp-mail-smtp/src/Tasks/Task.php deleted file mode 100644 index 910089d..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Tasks/Task.php +++ /dev/null @@ -1,309 +0,0 @@ -action = sanitize_key( $action ); - - if ( empty( $this->action ) ) { - throw new \UnexpectedValueException( 'Task action cannot be empty.' ); - } - } - - /** - * Define the type of the task as async. - * - * @since 2.1.0 - * - * @return Task - */ - public function async() { - - $this->type = self::TYPE_ASYNC; - - return $this; - } - - /** - * Define the type of the task as recurring. - * - * @since 2.1.0 - * - * @param int $timestamp When the first instance of the job will run. - * @param int $interval How long to wait between runs. - * - * @return Task - */ - public function recurring( $timestamp, $interval ) { - - $this->type = self::TYPE_RECURRING; - $this->timestamp = (int) $timestamp; - $this->interval = (int) $interval; - - return $this; - } - - /** - * Define the type of the task as one-time. - * - * @since 2.1.0 - * - * @param int $timestamp When the first instance of the job will run. - * - * @return Task - */ - public function once( $timestamp ) { - - $this->type = self::TYPE_ONCE; - $this->timestamp = (int) $timestamp; - - return $this; - } - - /** - * Pass any number of params that should be saved to Meta table. - * - * @since 2.1.0 - * - * @return Task - */ - public function params() { - - $this->params = func_get_args(); - - return $this; - } - - /** - * Register the action. - * Should be the final call in a chain. - * - * @since 2.1.0 - * - * @return null|string Action ID. - */ - public function register() { - - $action_id = null; - - // No processing if ActionScheduler is not usable. - if ( ! Tasks::is_usable() ) { - return $action_id; - } - - // Save data to tasks meta table. - $task_meta = new Meta(); - $this->meta_id = $task_meta->add( - [ - 'action' => $this->action, - 'data' => isset( $this->params ) ? $this->params : [], - ] - ); - - if ( empty( $this->meta_id ) ) { - return $action_id; - } - - // Prevent 500 errors when Action Scheduler tables don't exist. - try { - switch ( $this->type ) { - case self::TYPE_ASYNC: - $action_id = $this->register_async(); - break; - - case self::TYPE_RECURRING: - $action_id = $this->register_recurring(); - break; - - case self::TYPE_ONCE: - $action_id = $this->register_once(); - break; - } - } catch ( \RuntimeException $exception ) { - $action_id = null; - } - - return $action_id; - } - - /** - * Register the async task. - * - * @since 2.1.0 - * - * @return null|string Action ID. - */ - protected function register_async() { - - if ( ! function_exists( 'as_enqueue_async_action' ) ) { - return null; - } - - return as_enqueue_async_action( - $this->action, - [ 'tasks_meta_id' => $this->meta_id ], - Tasks::GROUP - ); - } - - /** - * Register the recurring task. - * - * @since 2.1.0 - * - * @return null|string Action ID. - */ - protected function register_recurring() { - - if ( ! function_exists( 'as_schedule_recurring_action' ) ) { - return null; - } - - return as_schedule_recurring_action( - $this->timestamp, - $this->interval, - $this->action, - [ 'tasks_meta_id' => $this->meta_id ], - Tasks::GROUP - ); - } - - /** - * Register the one-time task. - * - * @since 2.1.0 - * - * @return null|string Action ID. - */ - protected function register_once() { - - if ( ! function_exists( 'as_schedule_single_action' ) ) { - return null; - } - - return as_schedule_single_action( - $this->timestamp, - $this->action, - [ 'tasks_meta_id' => $this->meta_id ], - Tasks::GROUP - ); - } - - /** - * Cancel all occurrences of this task. - * - * @since 2.1.0 - * - * @return null|bool|string Null if no matching action found, - * false if AS library is missing, - * string of the scheduled action ID if a scheduled action was found and unscheduled. - */ - public function cancel() { - - // Exit if AS function does not exist. - if ( ! function_exists( 'as_unschedule_all_actions' ) ) { - return false; - } - - return as_unschedule_all_actions( $this->action ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Tasks/Tasks.php b/wp-content/plugins/wp-mail-smtp/src/Tasks/Tasks.php deleted file mode 100644 index 8692aa5..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Tasks/Tasks.php +++ /dev/null @@ -1,156 +0,0 @@ -get_tasks() as $task ) { - if ( ! is_subclass_of( $task, '\WPMailSMTP\Tasks\Task' ) ) { - continue; - } - - $new_task = new $task(); - - // Run the init method, if a task has one defined. - if ( method_exists( $new_task, 'init' ) ) { - $new_task->init(); - } - } - } - - /** - * Get the list of default scheduled tasks. - * Tasks, that are fired under certain specific circumstances - * (like sending emails) are not listed here. - * - * @since 2.1.0 - * - * @return Task[] List of tasks classes. - */ - public function get_tasks() { - - return apply_filters( 'wp_mail_smtp_tasks_get_tasks', array() ); - } - - /** - * Hide Action Scheduler admin area when not in debug mode. - * - * @since 2.1.0 - */ - public function admin_hide_as_menu() { - - // Filter to redefine that WP Mail SMTP hides Tools > Action Scheduler menu item. - if ( apply_filters( 'wp_mail_smtp_tasks_admin_hide_as_menu', true ) ) { - remove_submenu_page( 'tools.php', 'action-scheduler' ); - } - } - - /** - * Create a new task. - * Used for "inline" tasks, that require additional information - * from the plugin runtime before they can be scheduled. - * - * Example: - * wp_mail_smtp()->get( 'tasks' ) - * ->create( 'i_am_the_dude' ) - * ->async() - * ->params( 'The Big Lebowski', 1998 ) - * ->register(); - * - * This `i_am_the_dude` action will be later processed as: - * add_action( 'i_am_the_dude', 'thats_what_you_call_me' ); - * - * @since 2.1.0 - * - * @param string $action Action that will be used as a hook. - * - * @return \WPMailSMTP\Tasks\Task - */ - public function create( $action ) { - - return new Task( $action ); - } - - /** - * Cancel all the AS actions for a group. - * - * @since 2.1.0 - * - * @param string $group Group to cancel all actions for. - */ - public function cancel_all( $group = '' ) { - - if ( empty( $group ) ) { - $group = self::GROUP; - } else { - $group = sanitize_key( $group ); - } - - if ( class_exists( 'ActionScheduler_DBStore' ) ) { - \ActionScheduler_DBStore::instance()->cancel_actions_by_group( $group ); - } - } - - /** - * Whether ActionScheduler thinks that it has migrated or not. - * - * @since 2.1.0 - * - * @return bool - */ - public static function is_usable() { - - // No tasks if ActionScheduler wasn't loaded. - if ( ! class_exists( 'ActionScheduler_DataController' ) ) { - return false; - } - - return \ActionScheduler_DataController::is_migration_complete(); - } - - /** - * Whether task has been scheduled and is pending. - * - * @since 2.1.0 - * - * @param string $hook Hook to check for. - * - * @return bool - */ - public static function is_scheduled( $hook ) { - - if ( ! function_exists( 'as_next_scheduled_action' ) ) { - return false; - } - - return as_next_scheduled_action( $hook ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/Upgrade.php b/wp-content/plugins/wp-mail-smtp/src/Upgrade.php deleted file mode 100644 index c97238e..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/Upgrade.php +++ /dev/null @@ -1,73 +0,0 @@ -upgrades(); - - if ( empty( $upgrades ) ) { - return; - } - - // Run any available upgrades. - foreach ( $upgrades as $upgrade ) { - $this->{$upgrade}(); - } - - // Update version post upgrade(s). - update_option( 'wp_mail_smtp_version', WPMS_PLUGIN_VER ); - } - - /** - * Whether we need to perform an upgrade. - * - * @since 1.1.0 - * - * @return array - */ - protected function upgrades() { - - $version = get_option( 'wp_mail_smtp_version' ); - $upgrades = array(); - - // Version 1.1.0 upgrade; prior to this the option was not available. - if ( empty( $version ) ) { - $upgrades[] = 'v110_upgrade'; - } - - return $upgrades; - } - - /** - * Upgrade routine for v1.1.0. - * - * Set SMTPAutoTLS to true. - * - * @since 1.1.0 - */ - public function v110_upgrade() { - - // Enable SMTPAutoTLS option. - $values = [ - 'smtp' => [ - 'autotls' => true, - ], - ]; - - Options::init()->set( $values, false, false ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/UsageTracking/SendUsageTask.php b/wp-content/plugins/wp-mail-smtp/src/UsageTracking/SendUsageTask.php deleted file mode 100644 index c735597..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/UsageTracking/SendUsageTask.php +++ /dev/null @@ -1,125 +0,0 @@ -recurring( $this->generate_start_date(), WEEK_IN_SECONDS ) - ->register(); - } - - /** - * Randomly pick a timestamp - * which is not more than 1 week in the future - * starting from next sunday. - * - * @since 2.3.0 - * - * @return int - */ - private function generate_start_date() { - - $tracking = []; - - $tracking['days'] = wp_rand( 0, 6 ) * DAY_IN_SECONDS; - $tracking['hours'] = wp_rand( 0, 23 ) * HOUR_IN_SECONDS; - $tracking['minutes'] = wp_rand( 0, 59 ) * MINUTE_IN_SECONDS; - $tracking['seconds'] = wp_rand( 0, 59 ); - - return strtotime( 'next sunday' ) + array_sum( $tracking ); - } - - /** - * Send the actual data in a POST request. - * This will be executed in a separate process via Action Scheduler. - * - * @since 2.3.0 - */ - public function process() { - - $last_run = get_option( self::LAST_RUN ); - - // Make sure we do not run it more than once a day. - if ( - $last_run !== false && - ( time() - $last_run ) < DAY_IN_SECONDS - ) { - return; - } - - // Send data to the usage tracking API. - $ut = new UsageTracking(); - - wp_remote_post( - self::TRACK_URL, - [ - 'timeout' => 5, - 'redirection' => 5, - 'httpversion' => '1.1', - 'blocking' => true, - 'body' => $ut->get_data(), - 'user-agent' => $ut->get_user_agent(), - ] - ); - - // Update the last run option to the current timestamp. - update_option( self::LAST_RUN, time() ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/UsageTracking/UsageTracking.php b/wp-content/plugins/wp-mail-smtp/src/UsageTracking/UsageTracking.php deleted file mode 100644 index 292ff88..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/UsageTracking/UsageTracking.php +++ /dev/null @@ -1,250 +0,0 @@ -get( 'general', self::SETTINGS_SLUG ) - ); - } - - /** - * Load usage tracking functionality. - * - * @since 2.3.0 - */ - public function load() { - - // Check if loading the usage tracking functionality is allowed. - if ( ! (bool) apply_filters( 'wp_mail_smtp_usage_tracking_load_allowed', true ) ) { - return; - } - - // Deregister the action if option is disabled. - add_action( - 'wp_mail_smtp_options_set_after', - function () { - - if ( ! $this->is_enabled() ) { - ( new SendUsageTask() )->cancel(); - } - } - ); - - // Register the action handler only if enabled. - if ( $this->is_enabled() ) { - add_filter( - 'wp_mail_smtp_tasks_get_tasks', - static function ( $tasks ) { - $tasks[] = SendUsageTask::class; - - return $tasks; - } - ); - } - } - - /** - * Get the User Agent string that will be sent to the API. - * - * @since 2.3.0 - * - * @return string - */ - public function get_user_agent() { - - return 'WPMailSMTP/' . WPMS_PLUGIN_VER . '; ' . get_bloginfo( 'url' ); - } - - /** - * Get data for sending to the server. - * - * @since 2.3.0 - * - * @return array - */ - public function get_data() { - - global $wpdb; - - $theme_data = wp_get_theme(); - $activated_dates = get_option( 'wp_mail_smtp_activated', [] ); - $options = Options::init(); - $mailer = wp_mail_smtp()->get_providers()->get_mailer( - $options->get( 'mail', 'mailer' ), - wp_mail_smtp()->get_processor()->get_phpmailer() - ); - - $data = [ - // Generic data (environment). - 'url' => home_url(), - 'php_version' => PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION, - 'wp_version' => get_bloginfo( 'version' ), - 'mysql_version' => $wpdb->db_version(), - 'server_version' => isset( $_SERVER['SERVER_SOFTWARE'] ) ? sanitize_text_field( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) ) : '', - 'is_ssl' => is_ssl(), - 'is_multisite' => is_multisite(), - 'sites_count' => $this->get_sites_total(), - 'active_plugins' => $this->get_active_plugins(), - 'theme_name' => $theme_data->name, - 'theme_version' => $theme_data->version, - 'locale' => get_locale(), - 'timezone_offset' => $this->get_timezone_offset(), - // WP Mail SMTP - specific data. - 'wp_mail_smtp_version' => WPMS_PLUGIN_VER, - 'wp_mail_smtp_license_key' => wp_mail_smtp()->get_license_key(), - 'wp_mail_smtp_license_type' => wp_mail_smtp()->get_license_type(), - 'wp_mail_smtp_is_pro' => wp_mail_smtp()->is_pro(), - 'wp_mail_smtp_activated' => get_option( 'wp_mail_smtp_activated_time', 0 ), - 'wp_mail_smtp_lite_installed_date' => $this->get_installed( $activated_dates, 'lite' ), - 'wp_mail_smtp_pro_installed_date' => $this->get_installed( $activated_dates, 'pro' ), - 'wp_mail_smtp_mailer' => $options->get( 'mail', 'mailer' ), - 'wp_mail_smtp_from_email_force' => (bool) $options->get( 'mail', 'from_email_force' ), - 'wp_mail_smtp_from_name_force' => (bool) $options->get( 'mail', 'from_name_force' ), - 'wp_mail_smtp_return_path' => (bool) $options->get( 'mail', 'return_path' ), - 'wp_mail_smtp_do_not_send' => (bool) $options->get( 'general', 'do_not_send' ), - 'wp_mail_smtp_is_white_labeled' => wp_mail_smtp()->is_white_labeled(), - 'wp_mail_smtp_is_const_enabled' => (bool) $options->is_const_enabled(), - 'wp_mail_smtp_conflicts_is_detected' => ( new Conflicts() )->is_detected(), - 'wp_mail_smtp_is_mailer_complete' => empty( $mailer ) ? false : $mailer->is_mailer_complete(), - ]; - - if ( 'smtp' === $options->get( 'mail', 'mailer' ) ) { - $data['wp_mail_smtp_other_smtp_host'] = $options->get( 'smtp', 'host' ); - $data['wp_mail_smtp_other_smtp_encryption'] = $options->get( 'smtp', 'encryption' ); - $data['wp_mail_smtp_other_smtp_port'] = $options->get( 'smtp', 'port' ); - $data['wp_mail_smtp_other_smtp_auth'] = (bool) $options->get( 'smtp', 'auth' ); - $data['wp_mail_smtp_other_smtp_autotls'] = (bool) $options->get( 'smtp', 'autotls' ); - } - - if ( is_multisite() ) { - $data['wp_mail_smtp_multisite_network_wide'] = WP::use_global_plugin_settings(); - } - - return apply_filters( 'wp_mail_smtp_usage_tracking_get_data', $data ); - } - - /** - * Get timezone offset. - * We use `wp_timezone_string()` when it's available (WP 5.3+), - * otherwise fallback to the same code, copy-pasted. - * - * @since 2.3.0 - * - * @return string - */ - private function get_timezone_offset() { - - // It was added in WordPress 5.3. - if ( function_exists( 'wp_timezone_string' ) ) { - return wp_timezone_string(); - } - - /* - * The code below is basically a copy-paste from that function. - */ - - $timezone_string = get_option( 'timezone_string' ); - - if ( $timezone_string ) { - return $timezone_string; - } - - $offset = (float) get_option( 'gmt_offset' ); - $hours = (int) $offset; - $minutes = ( $offset - $hours ); - - $sign = ( $offset < 0 ) ? '-' : '+'; - $abs_hour = abs( $hours ); - $abs_mins = abs( $minutes * 60 ); - - return sprintf( '%s%02d:%02d', $sign, $abs_hour, $abs_mins ); - } - - /** - * Get the list of active plugins. - * - * @since 2.3.0 - * - * @return array - */ - private function get_active_plugins() { - - if ( ! function_exists( 'get_plugins' ) ) { - include ABSPATH . '/wp-admin/includes/plugin.php'; - } - - $active_plugins = []; - - foreach ( get_mu_plugins() as $path => $plugin ) { - $active_plugins[ $path ] = isset( $plugin['Version'] ) ? $plugin['Version'] : 'Not Set'; - } - - foreach ( get_plugins() as $path => $plugin ) { - if ( is_plugin_active( $path ) ) { - $active_plugins[ $path ] = isset( $plugin['Version'] ) ? $plugin['Version'] : 'Not Set'; - } - } - - return $active_plugins; - } - - /** - * Installed date. - * - * @since 2.3.0 - * - * @param array $activated_dates Input array with dates. - * @param string $key Input key what you want to get. - * - * @return mixed - */ - private function get_installed( $activated_dates, $key ) { - - if ( ! empty( $activated_dates[ $key ] ) ) { - return $activated_dates[ $key ]; - } - - return false; - } - - /** - * Total number of sites. - * - * @since 2.3.0 - * - * @return int - */ - private function get_sites_total() { - - return function_exists( 'get_blog_count' ) ? (int) get_blog_count() : 1; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/src/WP.php b/wp-content/plugins/wp-mail-smtp/src/WP.php deleted file mode 100644 index 2a6cf44..0000000 --- a/wp-content/plugins/wp-mail-smtp/src/WP.php +++ /dev/null @@ -1,305 +0,0 @@ - $message, - 'class' => $class, - 'is_dismissible' => (bool) $is_dismissible, - ); - } - - /** - * Display all notices. - * - * @since 1.0.0 - * @since 1.5.0 Allow the notice to be dismissible, remove the id attribute, which is not unique. - */ - public static function display_admin_notices() { - - foreach ( (array) self::$admin_notices as $notice ) : - $dismissible = $notice['is_dismissible'] ? 'is-dismissible' : ''; - ?> - -
-

- -

-
- - ` for non-HTML tags. - * - * @since 1.5.0 - * - * @param string $value String we want to sanitize. - * - * @return string - */ - public static function sanitize_value( $value ) { - - // Remove HTML tags. - $filtered = wp_strip_all_tags( $value, false ); - // Remove multi-lines/tabs. - $filtered = preg_replace( '/[\r\n\t ]+/', ' ', $filtered ); - // Remove whitespaces. - $filtered = trim( $filtered ); - - // Remove octets. - $found = false; - while ( preg_match( '/%[a-f0-9]{2}/i', $filtered, $match ) ) { - $filtered = str_replace( $match[0], '', $filtered ); - $found = true; - } - - if ( $found ) { - // Strip out the whitespace that may now exist after removing the octets. - $filtered = trim( preg_replace( '/ +/', ' ', $filtered ) ); - } - - return $filtered; - } - - /** - * Get default email address. - * - * This is the same code as used in WP core for getting the default email address. - * - * @see https://github.com/WordPress/WordPress/blob/master/wp-includes/pluggable.php#L332 - * - * @since 2.2.0 - * @since 2.3.0 In WP 5.5 the core code changed and is now using `network_home_url`. - * - * @return string - */ - public static function get_default_email() { - - if ( version_compare( get_bloginfo( 'version' ), '5.5-alpha', '<' ) ) { - $sitename = strtolower( $_SERVER['SERVER_NAME'] ); // phpcs:ignore - } else { - $sitename = wp_parse_url( network_home_url(), PHP_URL_HOST ); - } - - if ( 'www.' === substr( $sitename, 0, 4 ) ) { - $sitename = substr( $sitename, 4 ); - } - - return 'wordpress@' . $sitename; - } - - /** - * Wrapper for the WP `admin_url` method that should be used in the plugin. - * - * We can filter into it, to maybe call `network_admin_url` for multisite support. - * - * @since 2.2.0 - * - * @param string $path Optional path relative to the admin URL. - * @param string $scheme The scheme to use. Default is 'admin', which obeys force_ssl_admin() and is_ssl(). - * 'http' or 'https' can be passed to force those schemes. - * - * @return string Admin URL link with optional path appended. - */ - public static function admin_url( $path = '', $scheme = 'admin' ) { - - return apply_filters( 'wp_mail_smtp_admin_url', \admin_url( $path, $scheme ), $path, $scheme ); - } - - /** - * Check if the global plugin option in a multisite should be used. - * If the global plugin option "multisite" is set and true. - * - * @since 2.2.0 - * - * @return bool - */ - public static function use_global_plugin_settings() { - - if ( ! is_multisite() ) { - return false; - } - - $main_site_options = get_blog_option( get_main_site_id(), Options::META_KEY, [] ); - - return ! empty( $main_site_options['general']['network_wide'] ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/uninstall.php b/wp-content/plugins/wp-mail-smtp/uninstall.php deleted file mode 100644 index fa17e9e..0000000 --- a/wp-content/plugins/wp-mail-smtp/uninstall.php +++ /dev/null @@ -1,190 +0,0 @@ - [ 'amn_smtp' ], - 'post_status' => 'any', - 'numberposts' => - 1, - 'fields' => 'ids', -]; - -/** - * Disable Action Schedule Queue Runner, to prevent a fatal error on the shutdown WP hook. - */ -if ( class_exists( 'ActionScheduler_QueueRunner' ) ) { - $as_queue_runner = \ActionScheduler_QueueRunner::instance(); - - if ( method_exists( $as_queue_runner, 'unhook_dispatch_async_request' ) ) { - $as_queue_runner->unhook_dispatch_async_request(); - } -} - -// WP MS uninstall process. -if ( is_multisite() ) { - $main_site_settings = get_blog_option( get_main_site_id(), 'wp_mail_smtp', [] ); - $network_wide = ! empty( $main_site_settings['general']['network_wide'] ); - $network_uninstall = ! empty( $main_site_settings['general']['uninstall'] ); - - $sites = get_sites(); - - foreach ( $sites as $site ) { - $settings = get_blog_option( $site->blog_id, 'wp_mail_smtp', [] ); - - // Confirm network site admin has decided to remove all data, otherwise skip. - if ( - ( $network_wide && ! $network_uninstall ) || - ( ! $network_wide && empty( $settings['general']['uninstall'] ) ) - ) { - continue; - } - - /* - * Delete network site plugin options. - */ - foreach ( $options as $option ) { - delete_blog_option( $site->blog_id, $option ); - } - - // Switch to the current network site. - switch_to_blog( $site->blog_id ); - - // Delete plugin settings. - $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'wp\_mail\_smtp%'" ); // phpcs:ignore WordPress.DB - - // Delete plugin user meta. - $wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key LIKE 'wp\_mail\_smtp\_%'" ); // phpcs:ignore WordPress.DB - - // Remove any transients we've left behind. - $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_transient\_wp\_mail\_smtp\_%'" ); // phpcs:ignore WordPress.DB - $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_site\_transient\_wp\_mail\_smtp\_%'" ); // phpcs:ignore WordPress.DB - $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_transient\_timeout\_wp\_mail\_smtp\_%'" ); // phpcs:ignore WordPress.DB - $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_site\_transient\_timeout\_wp\_mail\_smtp\_%'" ); // phpcs:ignore WordPress.DB - - /* - * Delete network site product announcements. - */ - $announcements = get_posts( $am_announcement_params ); - - if ( ! empty( $announcements ) ) { - foreach ( $announcements as $announcement ) { - wp_delete_post( $announcement, true ); - } - } - - /* - * Delete network site Logs for Pro plugin only. - */ - if ( - function_exists( 'wp_mail_smtp' ) && - is_readable( wp_mail_smtp()->plugin_path . '/src/Pro/Pro.php' ) - ) { - $table = \WPMailSMTP\Pro\Emails\Logs\Logs::get_table_name(); - $wpdb->query( "DROP TABLE IF EXISTS $table;" ); // phpcs:ignore WordPress.DB - } - - /* - * Drop all Action Scheduler data and unschedule all plugin ActionScheduler actions. - */ - ( new \WPMailSMTP\Tasks\Tasks() )->cancel_all(); - - $meta_table = \WPMailSMTP\Tasks\Meta::get_table_name(); - $wpdb->query( "DROP TABLE IF EXISTS $meta_table;" ); // phpcs:ignore WordPress.DB - - // Restore the current network site back to the original one. - restore_current_blog(); - } -} else { // Non WP MS uninstall process (for normal WP installs). - - // Confirm user has decided to remove all data, otherwise stop. - $settings = get_option( 'wp_mail_smtp', [] ); - if ( empty( $settings['general']['uninstall'] ) ) { - return; - } - - /* - * Delete plugin options. - */ - foreach ( $options as $option ) { - delete_option( $option ); - } - - // Delete plugin settings. - $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'wp\_mail\_smtp%'" ); // phpcs:ignore WordPress.DB - - // Delete plugin user meta. - $wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key LIKE 'wp\_mail\_smtp\_%'" ); // phpcs:ignore WordPress.DB - - // Remove any transients we've left behind. - $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_transient\_wp\_mail\_smtp\_%'" ); // phpcs:ignore WordPress.DB - $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_site\_transient\_wp\_mail\_smtp\_%'" ); // phpcs:ignore WordPress.DB - $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_transient\_timeout\_wp\_mail\_smtp\_%'" ); // phpcs:ignore WordPress.DB - $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_site\_transient\_timeout\_wp\_mail\_smtp\_%'" ); // phpcs:ignore WordPress.DB - - /* - * Remove product announcements. - */ - $announcements = get_posts( $am_announcement_params ); - if ( ! empty( $announcements ) ) { - foreach ( $announcements as $announcement ) { - wp_delete_post( $announcement, true ); - } - } - - /* - * Logs for Pro plugin only. - */ - if ( - function_exists( 'wp_mail_smtp' ) && - is_readable( wp_mail_smtp()->plugin_path . '/src/Pro/Pro.php' ) - ) { - $table = \WPMailSMTP\Pro\Emails\Logs\Logs::get_table_name(); - $wpdb->query( "DROP TABLE IF EXISTS $table;" ); // phpcs:ignore WordPress.DB - } - - /* - * Drop all Action Scheduler data and unschedule all plugin ActionScheduler actions. - */ - ( new \WPMailSMTP\Tasks\Tasks() )->cancel_all(); - - $meta_table = \WPMailSMTP\Tasks\Meta::get_table_name(); - $wpdb->query( "DROP TABLE IF EXISTS $meta_table;" ); // phpcs:ignore WordPress.DB -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/autoload.php b/wp-content/plugins/wp-mail-smtp/vendor/autoload.php deleted file mode 100644 index 3e1e79e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/autoload.php +++ /dev/null @@ -1,7 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer\Autoload; - -/** - * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. - * - * $loader = new \Composer\Autoload\ClassLoader(); - * - * // register classes with namespaces - * $loader->add('Symfony\Component', __DIR__.'/component'); - * $loader->add('Symfony', __DIR__.'/framework'); - * - * // activate the autoloader - * $loader->register(); - * - * // to enable searching the include path (eg. for PEAR packages) - * $loader->setUseIncludePath(true); - * - * In this example, if you try to use a class in the Symfony\Component - * namespace or one of its children (Symfony\Component\Console for instance), - * the autoloader will first look for the class under the component/ - * directory, and it will then fallback to the framework/ directory if not - * found before giving up. - * - * This class is loosely based on the Symfony UniversalClassLoader. - * - * @author Fabien Potencier - * @author Jordi Boggiano - * @see http://www.php-fig.org/psr/psr-0/ - * @see http://www.php-fig.org/psr/psr-4/ - */ -class ClassLoader -{ - // PSR-4 - private $prefixLengthsPsr4 = array(); - private $prefixDirsPsr4 = array(); - private $fallbackDirsPsr4 = array(); - - // PSR-0 - private $prefixesPsr0 = array(); - private $fallbackDirsPsr0 = array(); - - private $useIncludePath = false; - private $classMap = array(); - private $classMapAuthoritative = false; - private $missingClasses = array(); - private $apcuPrefix; - - public function getPrefixes() - { - if (!empty($this->prefixesPsr0)) { - return call_user_func_array('array_merge', $this->prefixesPsr0); - } - - return array(); - } - - public function getPrefixesPsr4() - { - return $this->prefixDirsPsr4; - } - - public function getFallbackDirs() - { - return $this->fallbackDirsPsr0; - } - - public function getFallbackDirsPsr4() - { - return $this->fallbackDirsPsr4; - } - - public function getClassMap() - { - return $this->classMap; - } - - /** - * @param array $classMap Class to filename map - */ - public function addClassMap(array $classMap) - { - if ($this->classMap) { - $this->classMap = array_merge($this->classMap, $classMap); - } else { - $this->classMap = $classMap; - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, either - * appending or prepending to the ones previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories - */ - public function add($prefix, $paths, $prepend = false) - { - if (!$prefix) { - if ($prepend) { - $this->fallbackDirsPsr0 = array_merge( - (array) $paths, - $this->fallbackDirsPsr0 - ); - } else { - $this->fallbackDirsPsr0 = array_merge( - $this->fallbackDirsPsr0, - (array) $paths - ); - } - - return; - } - - $first = $prefix[0]; - if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = (array) $paths; - - return; - } - if ($prepend) { - $this->prefixesPsr0[$first][$prefix] = array_merge( - (array) $paths, - $this->prefixesPsr0[$first][$prefix] - ); - } else { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $this->prefixesPsr0[$first][$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, either - * appending or prepending to the ones previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories - * - * @throws \InvalidArgumentException - */ - public function addPsr4($prefix, $paths, $prepend = false) - { - if (!$prefix) { - // Register directories for the root namespace. - if ($prepend) { - $this->fallbackDirsPsr4 = array_merge( - (array) $paths, - $this->fallbackDirsPsr4 - ); - } else { - $this->fallbackDirsPsr4 = array_merge( - $this->fallbackDirsPsr4, - (array) $paths - ); - } - } elseif (!isset($this->prefixDirsPsr4[$prefix])) { - // Register directories for a new namespace. - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } elseif ($prepend) { - // Prepend directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - (array) $paths, - $this->prefixDirsPsr4[$prefix] - ); - } else { - // Append directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $this->prefixDirsPsr4[$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, - * replacing any others previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 base directories - */ - public function set($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr0 = (array) $paths; - } else { - $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, - * replacing any others previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * - * @throws \InvalidArgumentException - */ - public function setPsr4($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr4 = (array) $paths; - } else { - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } - } - - /** - * Turns on searching the include path for class files. - * - * @param bool $useIncludePath - */ - public function setUseIncludePath($useIncludePath) - { - $this->useIncludePath = $useIncludePath; - } - - /** - * Can be used to check if the autoloader uses the include path to check - * for classes. - * - * @return bool - */ - public function getUseIncludePath() - { - return $this->useIncludePath; - } - - /** - * Turns off searching the prefix and fallback directories for classes - * that have not been registered with the class map. - * - * @param bool $classMapAuthoritative - */ - public function setClassMapAuthoritative($classMapAuthoritative) - { - $this->classMapAuthoritative = $classMapAuthoritative; - } - - /** - * Should class lookup fail if not found in the current class map? - * - * @return bool - */ - public function isClassMapAuthoritative() - { - return $this->classMapAuthoritative; - } - - /** - * APCu prefix to use to cache found/not-found classes, if the extension is enabled. - * - * @param string|null $apcuPrefix - */ - public function setApcuPrefix($apcuPrefix) - { - $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; - } - - /** - * The APCu prefix in use, or null if APCu caching is not enabled. - * - * @return string|null - */ - public function getApcuPrefix() - { - return $this->apcuPrefix; - } - - /** - * Registers this instance as an autoloader. - * - * @param bool $prepend Whether to prepend the autoloader or not - */ - public function register($prepend = false) - { - spl_autoload_register(array($this, 'loadClass'), true, $prepend); - } - - /** - * Unregisters this instance as an autoloader. - */ - public function unregister() - { - spl_autoload_unregister(array($this, 'loadClass')); - } - - /** - * Loads the given class or interface. - * - * @param string $class The name of the class - * @return bool|null True if loaded, null otherwise - */ - public function loadClass($class) - { - if ($file = $this->findFile($class)) { - includeFile($file); - - return true; - } - } - - /** - * Finds the path to the file where the class is defined. - * - * @param string $class The name of the class - * - * @return string|false The path if found, false otherwise - */ - public function findFile($class) - { - // class map lookup - if (isset($this->classMap[$class])) { - return $this->classMap[$class]; - } - if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { - return false; - } - if (null !== $this->apcuPrefix) { - $file = apcu_fetch($this->apcuPrefix.$class, $hit); - if ($hit) { - return $file; - } - } - - $file = $this->findFileWithExtension($class, '.php'); - - // Search for Hack files if we are running on HHVM - if (false === $file && defined('HHVM_VERSION')) { - $file = $this->findFileWithExtension($class, '.hh'); - } - - if (null !== $this->apcuPrefix) { - apcu_add($this->apcuPrefix.$class, $file); - } - - if (false === $file) { - // Remember that this class does not exist. - $this->missingClasses[$class] = true; - } - - return $file; - } - - private function findFileWithExtension($class, $ext) - { - // PSR-4 lookup - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; - - $first = $class[0]; - if (isset($this->prefixLengthsPsr4[$first])) { - $subPath = $class; - while (false !== $lastPos = strrpos($subPath, '\\')) { - $subPath = substr($subPath, 0, $lastPos); - $search = $subPath . '\\'; - if (isset($this->prefixDirsPsr4[$search])) { - $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); - foreach ($this->prefixDirsPsr4[$search] as $dir) { - if (file_exists($file = $dir . $pathEnd)) { - return $file; - } - } - } - } - } - - // PSR-4 fallback dirs - foreach ($this->fallbackDirsPsr4 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { - return $file; - } - } - - // PSR-0 lookup - if (false !== $pos = strrpos($class, '\\')) { - // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); - } else { - // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; - } - - if (isset($this->prefixesPsr0[$first])) { - foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { - if (0 === strpos($class, $prefix)) { - foreach ($dirs as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - } - } - } - - // PSR-0 fallback dirs - foreach ($this->fallbackDirsPsr0 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - - // PSR-0 include paths. - if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { - return $file; - } - - return false; - } -} - -/** - * Scope isolated include. - * - * Prevents access to $this/self from included files. - */ -function includeFile($file) -{ - include $file; -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_classmap.php b/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_classmap.php deleted file mode 100644 index f08ccbe..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_classmap.php +++ /dev/null @@ -1,538 +0,0 @@ - $baseDir . '/vendor_prefixed/google/auth/src/AccessToken.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\ApplicationDefaultCredentials' => $baseDir . '/vendor_prefixed/google/auth/src/ApplicationDefaultCredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\CacheTrait' => $baseDir . '/vendor_prefixed/google/auth/src/CacheTrait.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Cache\\InvalidArgumentException' => $baseDir . '/vendor_prefixed/google/auth/src/Cache/InvalidArgumentException.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Cache\\Item' => $baseDir . '/vendor_prefixed/google/auth/src/Cache/Item.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Cache\\MemoryCacheItemPool' => $baseDir . '/vendor_prefixed/google/auth/src/Cache/MemoryCacheItemPool.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Cache\\SysVCacheItemPool' => $baseDir . '/vendor_prefixed/google/auth/src/Cache/SysVCacheItemPool.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\CredentialsLoader' => $baseDir . '/vendor_prefixed/google/auth/src/CredentialsLoader.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Credentials\\AppIdentityCredentials' => $baseDir . '/vendor_prefixed/google/auth/src/Credentials/AppIdentityCredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Credentials\\GCECredentials' => $baseDir . '/vendor_prefixed/google/auth/src/Credentials/GCECredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Credentials\\IAMCredentials' => $baseDir . '/vendor_prefixed/google/auth/src/Credentials/IAMCredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Credentials\\InsecureCredentials' => $baseDir . '/vendor_prefixed/google/auth/src/Credentials/InsecureCredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Credentials\\ServiceAccountCredentials' => $baseDir . '/vendor_prefixed/google/auth/src/Credentials/ServiceAccountCredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Credentials\\ServiceAccountJwtAccessCredentials' => $baseDir . '/vendor_prefixed/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Credentials\\UserRefreshCredentials' => $baseDir . '/vendor_prefixed/google/auth/src/Credentials/UserRefreshCredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\FetchAuthTokenCache' => $baseDir . '/vendor_prefixed/google/auth/src/FetchAuthTokenCache.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\FetchAuthTokenInterface' => $baseDir . '/vendor_prefixed/google/auth/src/FetchAuthTokenInterface.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\GCECache' => $baseDir . '/vendor_prefixed/google/auth/src/GCECache.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\GetQuotaProjectInterface' => $baseDir . '/vendor_prefixed/google/auth/src/GetQuotaProjectInterface.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\HttpHandler\\Guzzle5HttpHandler' => $baseDir . '/vendor_prefixed/google/auth/src/HttpHandler/Guzzle5HttpHandler.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\HttpHandler\\Guzzle6HttpHandler' => $baseDir . '/vendor_prefixed/google/auth/src/HttpHandler/Guzzle6HttpHandler.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\HttpHandler\\Guzzle7HttpHandler' => $baseDir . '/vendor_prefixed/google/auth/src/HttpHandler/Guzzle7HttpHandler.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\HttpHandler\\HttpClientCache' => $baseDir . '/vendor_prefixed/google/auth/src/HttpHandler/HttpClientCache.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\HttpHandler\\HttpHandlerFactory' => $baseDir . '/vendor_prefixed/google/auth/src/HttpHandler/HttpHandlerFactory.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Iam' => $baseDir . '/vendor_prefixed/google/auth/src/Iam.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Middleware\\AuthTokenMiddleware' => $baseDir . '/vendor_prefixed/google/auth/src/Middleware/AuthTokenMiddleware.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Middleware\\ScopedAccessTokenMiddleware' => $baseDir . '/vendor_prefixed/google/auth/src/Middleware/ScopedAccessTokenMiddleware.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Middleware\\SimpleMiddleware' => $baseDir . '/vendor_prefixed/google/auth/src/Middleware/SimpleMiddleware.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\OAuth2' => $baseDir . '/vendor_prefixed/google/auth/src/OAuth2.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\ProjectIdProviderInterface' => $baseDir . '/vendor_prefixed/google/auth/src/ProjectIdProviderInterface.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\ServiceAccountSignerTrait' => $baseDir . '/vendor_prefixed/google/auth/src/ServiceAccountSignerTrait.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\SignBlobInterface' => $baseDir . '/vendor_prefixed/google/auth/src/SignBlobInterface.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Subscriber\\AuthTokenSubscriber' => $baseDir . '/vendor_prefixed/google/auth/src/Subscriber/AuthTokenSubscriber.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Subscriber\\ScopedAccessTokenSubscriber' => $baseDir . '/vendor_prefixed/google/auth/src/Subscriber/ScopedAccessTokenSubscriber.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Subscriber\\SimpleSubscriber' => $baseDir . '/vendor_prefixed/google/auth/src/Subscriber/SimpleSubscriber.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\UpdateMetadataInterface' => $baseDir . '/vendor_prefixed/google/auth/src/UpdateMetadataInterface.php', - 'WPMailSMTP\\Vendor\\Google_AccessToken_Revoke' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/AccessToken/Revoke.php', - 'WPMailSMTP\\Vendor\\Google_AccessToken_Verify' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/AccessToken/Verify.php', - 'WPMailSMTP\\Vendor\\Google_AuthHandler_AuthHandlerFactory' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/AuthHandler/AuthHandlerFactory.php', - 'WPMailSMTP\\Vendor\\Google_AuthHandler_Guzzle5AuthHandler' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/AuthHandler/Guzzle5AuthHandler.php', - 'WPMailSMTP\\Vendor\\Google_AuthHandler_Guzzle6AuthHandler' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/AuthHandler/Guzzle6AuthHandler.php', - 'WPMailSMTP\\Vendor\\Google_AuthHandler_Guzzle7AuthHandler' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/AuthHandler/Guzzle7AuthHandler.php', - 'WPMailSMTP\\Vendor\\Google_Client' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/Client.php', - 'WPMailSMTP\\Vendor\\Google_Collection' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/Collection.php', - 'WPMailSMTP\\Vendor\\Google_Exception' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/Exception.php', - 'WPMailSMTP\\Vendor\\Google_Http_Batch' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/Http/Batch.php', - 'WPMailSMTP\\Vendor\\Google_Http_MediaFileUpload' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/Http/MediaFileUpload.php', - 'WPMailSMTP\\Vendor\\Google_Http_REST' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/Http/REST.php', - 'WPMailSMTP\\Vendor\\Google_Model' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/Model.php', - 'WPMailSMTP\\Vendor\\Google_Service' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/Service.php', - 'WPMailSMTP\\Vendor\\Google_Service_Exception' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/Service/Exception.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_AutoForwarding' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/AutoForwarding.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_BatchDeleteMessagesRequest' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/BatchDeleteMessagesRequest.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_BatchModifyMessagesRequest' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/BatchModifyMessagesRequest.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Delegate' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Delegate.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Draft' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Draft.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Filter' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Filter.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_FilterAction' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/FilterAction.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_FilterCriteria' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/FilterCriteria.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ForwardingAddress' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ForwardingAddress.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_History' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/History.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_HistoryLabelAdded' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryLabelAdded.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_HistoryLabelRemoved' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryLabelRemoved.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_HistoryMessageAdded' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryMessageAdded.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_HistoryMessageDeleted' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryMessageDeleted.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ImapSettings' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ImapSettings.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Label' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Label.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_LabelColor' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/LabelColor.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_LanguageSettings' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/LanguageSettings.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListDelegatesResponse' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListDelegatesResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListDraftsResponse' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListDraftsResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListFiltersResponse' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListFiltersResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListForwardingAddressesResponse' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListForwardingAddressesResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListHistoryResponse' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListHistoryResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListLabelsResponse' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListLabelsResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListMessagesResponse' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListMessagesResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListSendAsResponse' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListSendAsResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListSmimeInfoResponse' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListSmimeInfoResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListThreadsResponse' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListThreadsResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Message' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Message.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_MessagePart' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePart.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_MessagePartBody' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePartBody.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_MessagePartHeader' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePartHeader.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ModifyMessageRequest' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ModifyMessageRequest.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ModifyThreadRequest' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ModifyThreadRequest.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_PopSettings' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/PopSettings.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Profile' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Profile.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_Users' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/Users.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersDrafts' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersDrafts.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersHistory' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersHistory.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersLabels' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersLabels.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersMessages' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessages.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersMessagesAttachments' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessagesAttachments.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersSettings' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettings.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersSettingsDelegates' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsDelegates.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersSettingsFilters' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsFilters.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersSettingsForwardingAddresses' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsForwardingAddresses.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersSettingsSendAs' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAs.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersSettingsSendAsSmimeInfo' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAsSmimeInfo.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersThreads' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersThreads.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_SendAs' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SendAs.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_SmimeInfo' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SmimeInfo.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_SmtpMsa' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SmtpMsa.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Thread' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Thread.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_VacationSettings' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/VacationSettings.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_WatchRequest' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/WatchRequest.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_WatchResponse' => $baseDir . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/WatchResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Resource' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/Service/Resource.php', - 'WPMailSMTP\\Vendor\\Google_Task_Composer' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/Task/Composer.php', - 'WPMailSMTP\\Vendor\\Google_Task_Exception' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/Task/Exception.php', - 'WPMailSMTP\\Vendor\\Google_Task_Retryable' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/Task/Retryable.php', - 'WPMailSMTP\\Vendor\\Google_Task_Runner' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/Task/Runner.php', - 'WPMailSMTP\\Vendor\\Google_Utils_UriTemplate' => $baseDir . '/vendor_prefixed/google/apiclient/src/Google/Utils/UriTemplate.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Client' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Client.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\ClientInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/ClientInterface.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Cookie\\CookieJar' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJar.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Cookie\\CookieJarInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Cookie\\FileCookieJar' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Cookie\\SessionCookieJar' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Cookie\\SetCookie' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SetCookie.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\BadResponseException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/BadResponseException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\ClientException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ClientException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\ConnectException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ConnectException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\GuzzleException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/GuzzleException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\InvalidArgumentException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\RequestException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/RequestException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\SeekException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/SeekException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\ServerException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ServerException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\TooManyRedirectsException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\TransferException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/TransferException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\HandlerStack' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/HandlerStack.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\CurlFactory' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactory.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\CurlFactoryInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\CurlHandler' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlHandler.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\CurlMultiHandler' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\EasyHandle' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/EasyHandle.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\MockHandler' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/MockHandler.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\Proxy' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/Proxy.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\StreamHandler' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/StreamHandler.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\MessageFormatter' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/MessageFormatter.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Middleware' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Middleware.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Pool' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Pool.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\PrepareBodyMiddleware' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\AggregateException' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/AggregateException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\CancellationException' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/CancellationException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\Coroutine' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/Coroutine.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\Create' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/Create.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\Each' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/Each.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\EachPromise' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/EachPromise.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\FulfilledPromise' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/FulfilledPromise.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\Is' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/Is.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\Promise' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/Promise.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\PromiseInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/PromiseInterface.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\PromisorInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/PromisorInterface.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\RejectedPromise' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/RejectedPromise.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\RejectionException' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/RejectionException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\TaskQueue' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/TaskQueue.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\TaskQueueInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/TaskQueueInterface.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\Utils' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/Utils.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\AppendStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/AppendStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\BufferStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/BufferStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\CachingStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/CachingStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\DroppingStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/DroppingStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\FnStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/FnStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Header' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Header.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\InflateStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/InflateStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\LazyOpenStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/LazyOpenStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\LimitStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/LimitStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Message' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Message.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\MessageTrait' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/MessageTrait.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\MimeType' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/MimeType.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\MultipartStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/MultipartStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\NoSeekStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/NoSeekStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\PumpStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/PumpStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Query' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Query.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Request' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Request.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Response' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Response.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Rfc7230' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Rfc7230.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\ServerRequest' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/ServerRequest.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Stream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Stream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\StreamDecoratorTrait' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/StreamDecoratorTrait.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\StreamWrapper' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/StreamWrapper.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\UploadedFile' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/UploadedFile.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Uri' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Uri.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\UriNormalizer' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/UriNormalizer.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\UriResolver' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/UriResolver.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Utils' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Utils.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\RedirectMiddleware' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/RedirectMiddleware.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\RequestOptions' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/RequestOptions.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\RetryMiddleware' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/RetryMiddleware.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\TransferStats' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/TransferStats.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\UriTemplate' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/UriTemplate.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Utils' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Utils.php', - 'WPMailSMTP\\Vendor\\Monolog\\ErrorHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/ErrorHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\ChromePHPFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\ElasticaFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\FlowdockFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\FluentdFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\FormatterInterface' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\GelfMessageFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\HtmlFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\JsonFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\LineFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LineFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\LogglyFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\LogstashFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\MongoDBFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\NormalizerFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\ScalarFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\WildfireFormatter' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\AbstractHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\AbstractProcessingHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\AbstractSyslogHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\AmqpHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AmqpHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\BrowserConsoleHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\BufferHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BufferHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\ChromePHPHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\CouchDBHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\CubeHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CubeHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\Curl\\Util' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Curl/Util.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\DeduplicationHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\DoctrineCouchDBHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\DynamoDbHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\ElasticSearchHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\ErrorLogHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FilterHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FilterHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FingersCrossedHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FingersCrossed\\ActivationStrategyInterface' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FingersCrossed\\ChannelLevelActivationStrategy' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FirePHPHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FleepHookHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FlowdockHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FormattableHandlerInterface' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FormattableHandlerTrait' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\GelfHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GelfHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\GroupHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GroupHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\HandlerInterface' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerInterface.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\HandlerWrapper' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\HipChatHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HipChatHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\IFTTTHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\InsightOpsHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\LogEntriesHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\LogglyHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogglyHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\MailHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MailHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\MandrillHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MandrillHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\MissingExtensionException' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\MongoDBHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\NativeMailerHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\NewRelicHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\NullHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NullHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\PHPConsoleHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\ProcessableHandlerInterface' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\ProcessableHandlerTrait' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\PsrHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PsrHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\PushoverHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PushoverHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\RavenHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RavenHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\RedisHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RedisHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\RollbarHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RollbarHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\RotatingFileHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SamplingHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SamplingHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SlackHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SlackWebhookHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\Slack\\SlackRecord' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SlackbotHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SocketHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SocketHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\StreamHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/StreamHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SwiftMailerHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SyslogHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SyslogUdpHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SyslogUdp\\UdpSocket' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\TestHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/TestHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\WhatFailureGroupHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\ZendMonitorHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Logger' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Logger.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\GitProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/GitProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\IntrospectionProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\MemoryPeakUsageProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\MemoryProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\MemoryUsageProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\MercurialProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\ProcessIdProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\ProcessorInterface' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\PsrLogMessageProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\TagProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/TagProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\UidProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/UidProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\WebProcessor' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/WebProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Registry' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Registry.php', - 'WPMailSMTP\\Vendor\\Monolog\\ResettableInterface' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/ResettableInterface.php', - 'WPMailSMTP\\Vendor\\Monolog\\SignalHandler' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/SignalHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Utils' => $baseDir . '/vendor_prefixed/monolog/monolog/src/Monolog/Utils.php', - 'WPMailSMTP\\Vendor\\Psr\\Cache\\CacheException' => $baseDir . '/vendor_prefixed/psr/cache/src/CacheException.php', - 'WPMailSMTP\\Vendor\\Psr\\Cache\\CacheItemInterface' => $baseDir . '/vendor_prefixed/psr/cache/src/CacheItemInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Cache\\CacheItemPoolInterface' => $baseDir . '/vendor_prefixed/psr/cache/src/CacheItemPoolInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Cache\\InvalidArgumentException' => $baseDir . '/vendor_prefixed/psr/cache/src/InvalidArgumentException.php', - 'WPMailSMTP\\Vendor\\Psr\\Http\\Message\\MessageInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/MessageInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Http\\Message\\RequestInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/RequestInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Http\\Message\\ResponseInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/ResponseInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Http\\Message\\ServerRequestInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/ServerRequestInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Http\\Message\\StreamInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/StreamInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Http\\Message\\UploadedFileInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/UploadedFileInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Http\\Message\\UriInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/UriInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\AbstractLogger' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/AbstractLogger.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\InvalidArgumentException' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/InvalidArgumentException.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\LogLevel' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/LogLevel.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\LoggerAwareInterface' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/LoggerAwareInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\LoggerAwareTrait' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/LoggerAwareTrait.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\LoggerInterface' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/LoggerInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\LoggerTrait' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/LoggerTrait.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\NullLogger' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/NullLogger.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\Test\\DummyTest' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/Test/DummyTest.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\Test\\LoggerInterfaceTest' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\Test\\TestLogger' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/Test/TestLogger.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\ApiException' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/ApiException.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\AccountApi' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/AccountApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\AttributesApi' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/AttributesApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\ContactsApi' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ContactsApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\EmailCampaignsApi' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/EmailCampaignsApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\FoldersApi' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/FoldersApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\ListsApi' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ListsApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\ProcessApi' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ProcessApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\ResellerApi' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ResellerApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\SMSCampaignsApi' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SMSCampaignsApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\SMTPApi' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SMTPApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\SendersApi' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SendersApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\TransactionalSMSApi' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/TransactionalSMSApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\WebhooksApi' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/WebhooksApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Configuration' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Configuration.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\HeaderSelector' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/HeaderSelector.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\AbTestCampaignResult' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AbTestCampaignResult.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\AddChildDomain' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddChildDomain.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\AddContactToList' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddContactToList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\AddCredits' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddCredits.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateAttribute' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateAttribute.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateAttributeEnumeration' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateAttributeEnumeration.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateChild' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateChild.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateContact' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateContact.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateDoiContact' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateDoiContact.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateEmailCampaign' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaign.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateEmailCampaignRecipients' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignRecipients.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateEmailCampaignSender' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateList' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateModel.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateReseller' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateReseller.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSender' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSenderIps' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSenderIps.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSenderModel' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSenderModel.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmsCampaign' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaign.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmsCampaignRecipients' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaignRecipients.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmtpEmail' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpEmail.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmtpTemplate' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplate.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmtpTemplateSender' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplateSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateUpdateContactModel' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateUpdateContactModel.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateUpdateFolder' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateUpdateFolder.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateWebhook' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateWebhook.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreatedProcessId' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreatedProcessId.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\DeleteHardbounces' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/DeleteHardbounces.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\EmailExportRecipients' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/EmailExportRecipients.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ErrorModel.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccount' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccount.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccountMarketingAutomation' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountMarketingAutomation.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccountPlan' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountPlan.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccountRelay' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountRelay.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccountRelayData' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountRelayData.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAggregatedReport' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAggregatedReport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAttributes' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributes.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAttributesAttributes' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributesAttributes.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAttributesEnumeration' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributesEnumeration.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetCampaignOverview' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignOverview.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetCampaignRecipients' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignRecipients.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetCampaignStats' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignStats.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildAccountCreationStatus' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildAccountCreationStatus.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildDomain' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildDomain.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildDomains' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildDomains.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfo' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfo.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfoApiKeys' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeys.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfoApiKeysV2' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV2.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfoApiKeysV3' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV3.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfoCredits' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoCredits.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfoStatistics' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoStatistics.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildrenList' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildrenList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetClient' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetClient.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStats' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStats.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStatsClicked' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsClicked.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStatsOpened' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsOpened.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStatsTransacAttributes' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsTransacAttributes.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStatsUnsubscriptions' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsUnsubscriptions.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactDetails' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactDetails.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContacts' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContacts.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetDeviceBrowserStats' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetDeviceBrowserStats.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailCampaign' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaign.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailCampaigns' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaigns.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailEventReport' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailEventReportEvents' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReportEvents.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedCampaignOverview' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverview.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedCampaignOverviewSender' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverviewSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedCampaignStats' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignStats.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedClient' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedClient.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedClientAddress' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedClientAddress.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetails' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetails.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatistics' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatistics.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsClicked' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsClicked.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsLinks' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsLinks.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsMessagesSent' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsMessagesSent.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsOpened' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsOpened.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsUnsubscriptions' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptions.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedList' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedListCampaignStats' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedListCampaignStats.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolder' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolder.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolderLists' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolderLists.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolders' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolders.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIp' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIp.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIpFromSender' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIpFromSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIps' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIps.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIpsFromSender' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIpsFromSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetList' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetLists' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetLists.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetProcess' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetProcess.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetProcesses' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetProcesses.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetReports' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetReports.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetReportsReports' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetReportsReports.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSendersList' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSendersListIps' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersListIps.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSendersListSenders' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersListSenders.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSharedTemplateUrl' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSharedTemplateUrl.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsCampaign' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaign.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsCampaignOverview' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignOverview.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsCampaignStats' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignStats.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsCampaigns' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaigns.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsEventReport' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsEventReportEvents' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReportEvents.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmtpTemplateOverview' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverview.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmtpTemplateOverviewSender' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverviewSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmtpTemplates' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplates.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSsoToken' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSsoToken.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetStatsByBrowser' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByBrowser.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetStatsByDevice' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByDevice.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetStatsByDomain' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByDomain.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacAggregatedSmsReport' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacAggregatedSmsReport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacBlockedContacts' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContacts.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacBlockedContactsContacts' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsContacts.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacBlockedContactsReason' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsReason.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailContent' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContent.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailContentEvents' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContentEvents.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailsList' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailsListTransactionalEmails' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsListTransactionalEmails.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacSmsReport' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacSmsReportReports' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReportReports.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetWebhook' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetWebhook.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetWebhooks' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetWebhooks.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ManageIp' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ManageIp.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ModelInterface' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ModelInterface.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfo' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostContactInfo.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfoContacts' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostContactInfoContacts.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostSendFailed' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostSendFailed.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostSendSmsTestFailed' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostSendSmsTestFailed.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemainingCreditModel' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModel.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemainingCreditModelChild' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelChild.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemainingCreditModelReseller' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelReseller.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemoveContactFromList' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemoveContactFromList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemoveCredits' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemoveCredits.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RequestContactExport' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactExport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RequestContactExportCustomContactFilter' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactExportCustomContactFilter.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RequestContactImport' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactImport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RequestContactImportNewList' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactImportNewList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RequestSMSRecipientExport' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestSMSRecipientExport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendEmail' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendEmail.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendEmailAttachment' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendEmailAttachment.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendReport' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendReport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendReportEmail' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendReportEmail.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSms' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSms.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmail' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmail.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailAttachment' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailAttachment.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailBcc' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailBcc.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailCc' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailCc.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailReplyTo' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailReplyTo.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailSender' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailTo' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailTo.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendTemplateEmail' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTemplateEmail.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendTestEmail' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTestEmail.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendTestSms' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTestSms.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendTransacSms' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTransacSms.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateAttribute' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateAttribute.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateAttributeEnumeration' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateAttributeEnumeration.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateCampaignStatus' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateCampaignStatus.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateChild' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChild.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateChildAccountStatus' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChildAccountStatus.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateChildDomain' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChildDomain.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateContact' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateContact.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateEmailCampaign' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaign.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateEmailCampaignRecipients' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignRecipients.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateEmailCampaignSender' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateList' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateSender' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateSmsCampaign' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmsCampaign.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateSmtpTemplate' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplate.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateSmtpTemplateSender' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplateSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateWebhook' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateWebhook.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UploadImageToGallery' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UploadImageToGallery.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\ObjectSerializer' => $baseDir . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/ObjectSerializer.php', - 'WPMailSMTP\\Vendor\\Symfony\\Polyfill\\Intl\\Idn\\Idn' => $baseDir . '/vendor_prefixed/symfony/polyfill-intl-idn/Idn.php', - 'WPMailSMTP\\Vendor\\Symfony\\Polyfill\\Mbstring\\Mbstring' => $baseDir . '/vendor_prefixed/symfony/polyfill-mbstring/Mbstring.php', - 'WPMailSMTP\\Vendor\\Symfony\\Polyfill\\Php72\\Php72' => $baseDir . '/vendor_prefixed/symfony/polyfill-php72/Php72.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\AES' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/AES.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\Base' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Base.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\Blowfish' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\DES' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/DES.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\Hash' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Hash.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\RC2' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/RC2.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\RC4' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/RC4.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\RSA' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\Random' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Random.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\Rijndael' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\TripleDES' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\Twofish' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php', - 'WPMailSMTP\\Vendor\\phpseclib\\File\\ANSI' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/File/ANSI.php', - 'WPMailSMTP\\Vendor\\phpseclib\\File\\ASN1' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/File/ASN1.php', - 'WPMailSMTP\\Vendor\\phpseclib\\File\\ASN1\\Element' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Element.php', - 'WPMailSMTP\\Vendor\\phpseclib\\File\\X509' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/File/X509.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Math\\BigInteger' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Net\\SCP' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Net/SCP.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Net\\SFTP' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Net/SFTP.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Net\\SFTP\\Stream' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Net\\SSH1' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Net/SSH1.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Net\\SSH2' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Net/SSH2.php', - 'WPMailSMTP\\Vendor\\phpseclib\\System\\SSH\\Agent' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php', - 'WPMailSMTP\\Vendor\\phpseclib\\System\\SSH\\Agent\\Identity' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php', -); diff --git a/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_files.php b/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_files.php deleted file mode 100644 index 1d1ce74..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_files.php +++ /dev/null @@ -1,19 +0,0 @@ - $vendorDir . '/paragonie/random_compat/lib/random.php', - '3109cb1a231dcd04bee1f9f620d46975' => $vendorDir . '/paragonie/sodium_compat/autoload.php', - '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', - '840b8504e40a63aaa679ca25c0b2a1cc' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/functions_include.php', - 'e3e111437f37e10e6bcab5eacc08fb6f' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/functions_include.php', - '2bb094e40611cb5eccea789f32aff634' => $baseDir . '/vendor_prefixed/symfony/polyfill-mbstring/bootstrap.php', - '1fd84176824b5a44e7bd8da85eca7e14' => $baseDir . '/vendor_prefixed/symfony/polyfill-php72/bootstrap.php', - '606299e0d90ec13f1e6b53164b8387df' => $baseDir . '/vendor_prefixed/symfony/polyfill-intl-idn/bootstrap.php', - '6fe0d6ea1deb6acc74bbe64573a83e1c' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/functions_include.php', - '3ed0dcebed83aa26dfe4c549d730cf2e' => $baseDir . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/bootstrap.php', -); diff --git a/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_namespaces.php b/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_namespaces.php deleted file mode 100644 index b7fc012..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_namespaces.php +++ /dev/null @@ -1,9 +0,0 @@ - array($vendorDir . '/wikimedia/composer-merge-plugin/src'), - 'WPMailSMTP\\' => array($baseDir . '/src'), - 'InstituteWeb\\ComposerScripts\\' => array($vendorDir . '/instituteweb/composer-scripts/src'), - 'Firebase\\JWT\\' => array($vendorDir . '/firebase/php-jwt/src'), - 'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'), -); diff --git a/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_real.php b/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_real.php deleted file mode 100644 index 6de7294..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_real.php +++ /dev/null @@ -1,73 +0,0 @@ -= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require_once __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInit43034736f284196d23971ba5470288b6::getInitializer($loader)); - } else { - $map = require __DIR__ . '/autoload_namespaces.php'; - foreach ($map as $namespace => $path) { - $loader->set($namespace, $path); - } - - $map = require __DIR__ . '/autoload_psr4.php'; - foreach ($map as $namespace => $path) { - $loader->setPsr4($namespace, $path); - } - - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } - - $loader->register(true); - - if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit43034736f284196d23971ba5470288b6::$files; - } else { - $includeFiles = require __DIR__ . '/autoload_files.php'; - } - foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire43034736f284196d23971ba5470288b6($fileIdentifier, $file); - } - - return $loader; - } -} - -function composerRequire43034736f284196d23971ba5470288b6($fileIdentifier, $file) -{ - if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { - require $file; - - $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_static.php b/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_static.php deleted file mode 100644 index 9fed5a3..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_static.php +++ /dev/null @@ -1,606 +0,0 @@ - __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php', - '3109cb1a231dcd04bee1f9f620d46975' => __DIR__ . '/..' . '/paragonie/sodium_compat/autoload.php', - '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', - '840b8504e40a63aaa679ca25c0b2a1cc' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/functions_include.php', - 'e3e111437f37e10e6bcab5eacc08fb6f' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/functions_include.php', - '2bb094e40611cb5eccea789f32aff634' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/polyfill-mbstring/bootstrap.php', - '1fd84176824b5a44e7bd8da85eca7e14' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/polyfill-php72/bootstrap.php', - '606299e0d90ec13f1e6b53164b8387df' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/polyfill-intl-idn/bootstrap.php', - '6fe0d6ea1deb6acc74bbe64573a83e1c' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/functions_include.php', - '3ed0dcebed83aa26dfe4c549d730cf2e' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/bootstrap.php', - ); - - public static $prefixLengthsPsr4 = array ( - 'W' => - array ( - 'Wikimedia\\Composer\\' => 19, - 'WPMailSMTP\\' => 11, - ), - 'I' => - array ( - 'InstituteWeb\\ComposerScripts\\' => 29, - ), - 'F' => - array ( - 'Firebase\\JWT\\' => 13, - ), - 'C' => - array ( - 'Composer\\Installers\\' => 20, - ), - ); - - public static $prefixDirsPsr4 = array ( - 'Wikimedia\\Composer\\' => - array ( - 0 => __DIR__ . '/..' . '/wikimedia/composer-merge-plugin/src', - ), - 'WPMailSMTP\\' => - array ( - 0 => __DIR__ . '/../..' . '/src', - ), - 'InstituteWeb\\ComposerScripts\\' => - array ( - 0 => __DIR__ . '/..' . '/instituteweb/composer-scripts/src', - ), - 'Firebase\\JWT\\' => - array ( - 0 => __DIR__ . '/..' . '/firebase/php-jwt/src', - ), - 'Composer\\Installers\\' => - array ( - 0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers', - ), - ); - - public static $classMap = array ( - 'WPMailSMTP\\Vendor\\Google\\Auth\\AccessToken' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/AccessToken.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\ApplicationDefaultCredentials' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/ApplicationDefaultCredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\CacheTrait' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/CacheTrait.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Cache\\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Cache/InvalidArgumentException.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Cache\\Item' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Cache/Item.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Cache\\MemoryCacheItemPool' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Cache/MemoryCacheItemPool.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Cache\\SysVCacheItemPool' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Cache/SysVCacheItemPool.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\CredentialsLoader' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/CredentialsLoader.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Credentials\\AppIdentityCredentials' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Credentials/AppIdentityCredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Credentials\\GCECredentials' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Credentials/GCECredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Credentials\\IAMCredentials' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Credentials/IAMCredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Credentials\\InsecureCredentials' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Credentials/InsecureCredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Credentials\\ServiceAccountCredentials' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Credentials/ServiceAccountCredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Credentials\\ServiceAccountJwtAccessCredentials' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Credentials\\UserRefreshCredentials' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Credentials/UserRefreshCredentials.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\FetchAuthTokenCache' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/FetchAuthTokenCache.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\FetchAuthTokenInterface' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/FetchAuthTokenInterface.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\GCECache' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/GCECache.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\GetQuotaProjectInterface' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/GetQuotaProjectInterface.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\HttpHandler\\Guzzle5HttpHandler' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/HttpHandler/Guzzle5HttpHandler.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\HttpHandler\\Guzzle6HttpHandler' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/HttpHandler/Guzzle6HttpHandler.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\HttpHandler\\Guzzle7HttpHandler' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/HttpHandler/Guzzle7HttpHandler.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\HttpHandler\\HttpClientCache' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/HttpHandler/HttpClientCache.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\HttpHandler\\HttpHandlerFactory' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/HttpHandler/HttpHandlerFactory.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Iam' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Iam.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Middleware\\AuthTokenMiddleware' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Middleware/AuthTokenMiddleware.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Middleware\\ScopedAccessTokenMiddleware' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Middleware/ScopedAccessTokenMiddleware.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Middleware\\SimpleMiddleware' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Middleware/SimpleMiddleware.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\OAuth2' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/OAuth2.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\ProjectIdProviderInterface' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/ProjectIdProviderInterface.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\ServiceAccountSignerTrait' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/ServiceAccountSignerTrait.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\SignBlobInterface' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/SignBlobInterface.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Subscriber\\AuthTokenSubscriber' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Subscriber/AuthTokenSubscriber.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Subscriber\\ScopedAccessTokenSubscriber' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Subscriber/ScopedAccessTokenSubscriber.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\Subscriber\\SimpleSubscriber' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/Subscriber/SimpleSubscriber.php', - 'WPMailSMTP\\Vendor\\Google\\Auth\\UpdateMetadataInterface' => __DIR__ . '/../..' . '/vendor_prefixed/google/auth/src/UpdateMetadataInterface.php', - 'WPMailSMTP\\Vendor\\Google_AccessToken_Revoke' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/AccessToken/Revoke.php', - 'WPMailSMTP\\Vendor\\Google_AccessToken_Verify' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/AccessToken/Verify.php', - 'WPMailSMTP\\Vendor\\Google_AuthHandler_AuthHandlerFactory' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/AuthHandler/AuthHandlerFactory.php', - 'WPMailSMTP\\Vendor\\Google_AuthHandler_Guzzle5AuthHandler' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/AuthHandler/Guzzle5AuthHandler.php', - 'WPMailSMTP\\Vendor\\Google_AuthHandler_Guzzle6AuthHandler' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/AuthHandler/Guzzle6AuthHandler.php', - 'WPMailSMTP\\Vendor\\Google_AuthHandler_Guzzle7AuthHandler' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/AuthHandler/Guzzle7AuthHandler.php', - 'WPMailSMTP\\Vendor\\Google_Client' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/Client.php', - 'WPMailSMTP\\Vendor\\Google_Collection' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/Collection.php', - 'WPMailSMTP\\Vendor\\Google_Exception' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/Exception.php', - 'WPMailSMTP\\Vendor\\Google_Http_Batch' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/Http/Batch.php', - 'WPMailSMTP\\Vendor\\Google_Http_MediaFileUpload' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/Http/MediaFileUpload.php', - 'WPMailSMTP\\Vendor\\Google_Http_REST' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/Http/REST.php', - 'WPMailSMTP\\Vendor\\Google_Model' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/Model.php', - 'WPMailSMTP\\Vendor\\Google_Service' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/Service.php', - 'WPMailSMTP\\Vendor\\Google_Service_Exception' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/Service/Exception.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_AutoForwarding' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/AutoForwarding.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_BatchDeleteMessagesRequest' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/BatchDeleteMessagesRequest.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_BatchModifyMessagesRequest' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/BatchModifyMessagesRequest.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Delegate' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Delegate.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Draft' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Draft.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Filter' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Filter.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_FilterAction' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/FilterAction.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_FilterCriteria' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/FilterCriteria.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ForwardingAddress' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ForwardingAddress.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_History' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/History.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_HistoryLabelAdded' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryLabelAdded.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_HistoryLabelRemoved' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryLabelRemoved.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_HistoryMessageAdded' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryMessageAdded.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_HistoryMessageDeleted' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryMessageDeleted.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ImapSettings' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ImapSettings.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Label' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Label.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_LabelColor' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/LabelColor.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_LanguageSettings' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/LanguageSettings.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListDelegatesResponse' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListDelegatesResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListDraftsResponse' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListDraftsResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListFiltersResponse' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListFiltersResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListForwardingAddressesResponse' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListForwardingAddressesResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListHistoryResponse' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListHistoryResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListLabelsResponse' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListLabelsResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListMessagesResponse' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListMessagesResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListSendAsResponse' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListSendAsResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListSmimeInfoResponse' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListSmimeInfoResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ListThreadsResponse' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListThreadsResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Message' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Message.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_MessagePart' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePart.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_MessagePartBody' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePartBody.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_MessagePartHeader' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePartHeader.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ModifyMessageRequest' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ModifyMessageRequest.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_ModifyThreadRequest' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ModifyThreadRequest.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_PopSettings' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/PopSettings.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Profile' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Profile.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_Users' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/Users.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersDrafts' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersDrafts.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersHistory' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersHistory.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersLabels' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersLabels.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersMessages' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessages.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersMessagesAttachments' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessagesAttachments.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersSettings' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettings.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersSettingsDelegates' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsDelegates.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersSettingsFilters' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsFilters.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersSettingsForwardingAddresses' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsForwardingAddresses.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersSettingsSendAs' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAs.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersSettingsSendAsSmimeInfo' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAsSmimeInfo.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Resource_UsersThreads' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersThreads.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_SendAs' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SendAs.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_SmimeInfo' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SmimeInfo.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_SmtpMsa' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SmtpMsa.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_Thread' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Thread.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_VacationSettings' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/VacationSettings.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_WatchRequest' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/WatchRequest.php', - 'WPMailSMTP\\Vendor\\Google_Service_Gmail_WatchResponse' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/WatchResponse.php', - 'WPMailSMTP\\Vendor\\Google_Service_Resource' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/Service/Resource.php', - 'WPMailSMTP\\Vendor\\Google_Task_Composer' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/Task/Composer.php', - 'WPMailSMTP\\Vendor\\Google_Task_Exception' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/Task/Exception.php', - 'WPMailSMTP\\Vendor\\Google_Task_Retryable' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/Task/Retryable.php', - 'WPMailSMTP\\Vendor\\Google_Task_Runner' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/Task/Runner.php', - 'WPMailSMTP\\Vendor\\Google_Utils_UriTemplate' => __DIR__ . '/../..' . '/vendor_prefixed/google/apiclient/src/Google/Utils/UriTemplate.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Client' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Client.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\ClientInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/ClientInterface.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Cookie\\CookieJar' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJar.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Cookie\\CookieJarInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Cookie\\FileCookieJar' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Cookie\\SessionCookieJar' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Cookie\\SetCookie' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SetCookie.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\BadResponseException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/BadResponseException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\ClientException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ClientException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\ConnectException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ConnectException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\GuzzleException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/GuzzleException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\RequestException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/RequestException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\SeekException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/SeekException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\ServerException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ServerException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\TooManyRedirectsException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Exception\\TransferException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/TransferException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\HandlerStack' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/HandlerStack.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\CurlFactory' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactory.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\CurlFactoryInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\CurlHandler' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlHandler.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\CurlMultiHandler' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\EasyHandle' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/EasyHandle.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\MockHandler' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/MockHandler.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\Proxy' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/Proxy.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Handler\\StreamHandler' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/StreamHandler.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\MessageFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/MessageFormatter.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Middleware' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Middleware.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Pool' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Pool.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\PrepareBodyMiddleware' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\AggregateException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/AggregateException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\CancellationException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/CancellationException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\Coroutine' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/Coroutine.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\Create' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/Create.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\Each' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/Each.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\EachPromise' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/EachPromise.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\FulfilledPromise' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/FulfilledPromise.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\Is' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/Is.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\Promise' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/Promise.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\PromiseInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/PromiseInterface.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\PromisorInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/PromisorInterface.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\RejectedPromise' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/RejectedPromise.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\RejectionException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/RejectionException.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\TaskQueue' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/TaskQueue.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\TaskQueueInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/TaskQueueInterface.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\Utils' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/Utils.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\AppendStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/AppendStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\BufferStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/BufferStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\CachingStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/CachingStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\DroppingStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/DroppingStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\FnStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/FnStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Header' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Header.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\InflateStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/InflateStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\LazyOpenStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/LazyOpenStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\LimitStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/LimitStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Message' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Message.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\MessageTrait' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/MessageTrait.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\MimeType' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/MimeType.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\MultipartStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/MultipartStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\NoSeekStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/NoSeekStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\PumpStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/PumpStream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Query' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Query.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Request' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Request.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Response' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Response.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Rfc7230' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Rfc7230.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\ServerRequest' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/ServerRequest.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Stream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Stream.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\StreamDecoratorTrait' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/StreamDecoratorTrait.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\StreamWrapper' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/StreamWrapper.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\UploadedFile' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/UploadedFile.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Uri' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Uri.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\UriNormalizer' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/UriNormalizer.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\UriResolver' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/UriResolver.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Psr7\\Utils' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Utils.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\RedirectMiddleware' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/RedirectMiddleware.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\RequestOptions' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/RequestOptions.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\RetryMiddleware' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/RetryMiddleware.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\TransferStats' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/TransferStats.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\UriTemplate' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/UriTemplate.php', - 'WPMailSMTP\\Vendor\\GuzzleHttp\\Utils' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Utils.php', - 'WPMailSMTP\\Vendor\\Monolog\\ErrorHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/ErrorHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\ChromePHPFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\ElasticaFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\FlowdockFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\FluentdFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\FormatterInterface' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\GelfMessageFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\HtmlFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\JsonFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\LineFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LineFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\LogglyFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\LogstashFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\MongoDBFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\NormalizerFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\ScalarFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Formatter\\WildfireFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\AbstractHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\AbstractProcessingHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\AbstractSyslogHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\AmqpHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AmqpHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\BrowserConsoleHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\BufferHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BufferHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\ChromePHPHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\CouchDBHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\CubeHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CubeHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\Curl\\Util' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Curl/Util.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\DeduplicationHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\DoctrineCouchDBHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\DynamoDbHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\ElasticSearchHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\ErrorLogHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FilterHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FilterHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FingersCrossedHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FingersCrossed\\ActivationStrategyInterface' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FingersCrossed\\ChannelLevelActivationStrategy' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FirePHPHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FleepHookHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FlowdockHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FormattableHandlerInterface' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\FormattableHandlerTrait' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\GelfHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GelfHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\GroupHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GroupHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\HandlerInterface' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerInterface.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\HandlerWrapper' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\HipChatHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HipChatHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\IFTTTHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\InsightOpsHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\LogEntriesHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\LogglyHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogglyHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\MailHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MailHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\MandrillHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MandrillHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\MissingExtensionException' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\MongoDBHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\NativeMailerHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\NewRelicHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\NullHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NullHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\PHPConsoleHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\ProcessableHandlerInterface' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\ProcessableHandlerTrait' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\PsrHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PsrHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\PushoverHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PushoverHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\RavenHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RavenHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\RedisHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RedisHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\RollbarHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RollbarHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\RotatingFileHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SamplingHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SamplingHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SlackHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SlackWebhookHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\Slack\\SlackRecord' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SlackbotHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SocketHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SocketHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\StreamHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/StreamHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SwiftMailerHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SyslogHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SyslogUdpHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\SyslogUdp\\UdpSocket' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\TestHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/TestHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\WhatFailureGroupHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Handler\\ZendMonitorHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Logger' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Logger.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\GitProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/GitProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\IntrospectionProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\MemoryPeakUsageProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\MemoryProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\MemoryUsageProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\MercurialProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\ProcessIdProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\ProcessorInterface' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\PsrLogMessageProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\TagProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/TagProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\UidProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/UidProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Processor\\WebProcessor' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Processor/WebProcessor.php', - 'WPMailSMTP\\Vendor\\Monolog\\Registry' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Registry.php', - 'WPMailSMTP\\Vendor\\Monolog\\ResettableInterface' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/ResettableInterface.php', - 'WPMailSMTP\\Vendor\\Monolog\\SignalHandler' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/SignalHandler.php', - 'WPMailSMTP\\Vendor\\Monolog\\Utils' => __DIR__ . '/../..' . '/vendor_prefixed/monolog/monolog/src/Monolog/Utils.php', - 'WPMailSMTP\\Vendor\\Psr\\Cache\\CacheException' => __DIR__ . '/../..' . '/vendor_prefixed/psr/cache/src/CacheException.php', - 'WPMailSMTP\\Vendor\\Psr\\Cache\\CacheItemInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/cache/src/CacheItemInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Cache\\CacheItemPoolInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/cache/src/CacheItemPoolInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Cache\\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor_prefixed/psr/cache/src/InvalidArgumentException.php', - 'WPMailSMTP\\Vendor\\Psr\\Http\\Message\\MessageInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/MessageInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Http\\Message\\RequestInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/RequestInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Http\\Message\\ResponseInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/ResponseInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Http\\Message\\ServerRequestInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/ServerRequestInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Http\\Message\\StreamInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/StreamInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Http\\Message\\UploadedFileInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/UploadedFileInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Http\\Message\\UriInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/UriInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\AbstractLogger' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/AbstractLogger.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/InvalidArgumentException.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\LogLevel' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/LogLevel.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/LoggerAwareInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/LoggerAwareTrait.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\LoggerInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/LoggerInterface.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\LoggerTrait' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/LoggerTrait.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\NullLogger' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/NullLogger.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\Test\\DummyTest' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/Test/DummyTest.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'WPMailSMTP\\Vendor\\Psr\\Log\\Test\\TestLogger' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/Test/TestLogger.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\ApiException' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/ApiException.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\AccountApi' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/AccountApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\AttributesApi' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/AttributesApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\ContactsApi' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ContactsApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\EmailCampaignsApi' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/EmailCampaignsApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\FoldersApi' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/FoldersApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\ListsApi' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ListsApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\ProcessApi' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ProcessApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\ResellerApi' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ResellerApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\SMSCampaignsApi' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SMSCampaignsApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\SMTPApi' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SMTPApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\SendersApi' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SendersApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\TransactionalSMSApi' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/TransactionalSMSApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Api\\WebhooksApi' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/WebhooksApi.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Configuration' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Configuration.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\HeaderSelector' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/HeaderSelector.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\AbTestCampaignResult' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AbTestCampaignResult.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\AddChildDomain' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddChildDomain.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\AddContactToList' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddContactToList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\AddCredits' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddCredits.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateAttribute' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateAttribute.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateAttributeEnumeration' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateAttributeEnumeration.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateChild' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateChild.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateContact' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateContact.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateDoiContact' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateDoiContact.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateEmailCampaign' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaign.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateEmailCampaignRecipients' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignRecipients.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateEmailCampaignSender' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateList' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateModel.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateReseller' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateReseller.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSender' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSenderIps' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSenderIps.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSenderModel' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSenderModel.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmsCampaign' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaign.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmsCampaignRecipients' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaignRecipients.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmtpEmail' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpEmail.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmtpTemplate' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplate.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmtpTemplateSender' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplateSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateUpdateContactModel' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateUpdateContactModel.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateUpdateFolder' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateUpdateFolder.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateWebhook' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateWebhook.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreatedProcessId' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreatedProcessId.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\DeleteHardbounces' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/DeleteHardbounces.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\EmailExportRecipients' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/EmailExportRecipients.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ErrorModel.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccount' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccount.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccountMarketingAutomation' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountMarketingAutomation.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccountPlan' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountPlan.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccountRelay' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountRelay.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccountRelayData' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountRelayData.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAggregatedReport' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAggregatedReport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAttributes' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributes.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAttributesAttributes' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributesAttributes.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAttributesEnumeration' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributesEnumeration.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetCampaignOverview' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignOverview.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetCampaignRecipients' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignRecipients.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetCampaignStats' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignStats.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildAccountCreationStatus' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildAccountCreationStatus.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildDomain' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildDomain.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildDomains' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildDomains.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfo' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfo.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfoApiKeys' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeys.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfoApiKeysV2' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV2.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfoApiKeysV3' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV3.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfoCredits' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoCredits.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfoStatistics' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoStatistics.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildrenList' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildrenList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetClient' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetClient.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStats' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStats.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStatsClicked' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsClicked.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStatsOpened' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsOpened.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStatsTransacAttributes' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsTransacAttributes.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStatsUnsubscriptions' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsUnsubscriptions.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactDetails' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactDetails.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContacts' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContacts.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetDeviceBrowserStats' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetDeviceBrowserStats.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailCampaign' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaign.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailCampaigns' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaigns.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailEventReport' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailEventReportEvents' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReportEvents.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedCampaignOverview' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverview.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedCampaignOverviewSender' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverviewSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedCampaignStats' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignStats.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedClient' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedClient.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedClientAddress' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedClientAddress.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetails' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetails.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatistics' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatistics.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsClicked' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsClicked.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsLinks' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsLinks.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsMessagesSent' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsMessagesSent.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsOpened' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsOpened.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsUnsubscriptions' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptions.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedList' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedListCampaignStats' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedListCampaignStats.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolder' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolder.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolderLists' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolderLists.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolders' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolders.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIp' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIp.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIpFromSender' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIpFromSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIps' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIps.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIpsFromSender' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIpsFromSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetList' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetLists' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetLists.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetProcess' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetProcess.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetProcesses' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetProcesses.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetReports' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetReports.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetReportsReports' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetReportsReports.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSendersList' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSendersListIps' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersListIps.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSendersListSenders' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersListSenders.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSharedTemplateUrl' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSharedTemplateUrl.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsCampaign' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaign.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsCampaignOverview' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignOverview.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsCampaignStats' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignStats.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsCampaigns' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaigns.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsEventReport' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsEventReportEvents' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReportEvents.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmtpTemplateOverview' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverview.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmtpTemplateOverviewSender' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverviewSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmtpTemplates' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplates.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSsoToken' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSsoToken.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetStatsByBrowser' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByBrowser.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetStatsByDevice' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByDevice.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetStatsByDomain' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByDomain.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacAggregatedSmsReport' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacAggregatedSmsReport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacBlockedContacts' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContacts.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacBlockedContactsContacts' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsContacts.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacBlockedContactsReason' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsReason.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailContent' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContent.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailContentEvents' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContentEvents.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailsList' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailsListTransactionalEmails' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsListTransactionalEmails.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacSmsReport' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacSmsReportReports' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReportReports.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetWebhook' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetWebhook.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetWebhooks' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetWebhooks.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ManageIp' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ManageIp.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ModelInterface' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ModelInterface.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfo' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostContactInfo.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfoContacts' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostContactInfoContacts.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostSendFailed' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostSendFailed.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostSendSmsTestFailed' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostSendSmsTestFailed.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemainingCreditModel' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModel.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemainingCreditModelChild' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelChild.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemainingCreditModelReseller' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelReseller.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemoveContactFromList' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemoveContactFromList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemoveCredits' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemoveCredits.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RequestContactExport' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactExport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RequestContactExportCustomContactFilter' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactExportCustomContactFilter.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RequestContactImport' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactImport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RequestContactImportNewList' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactImportNewList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RequestSMSRecipientExport' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestSMSRecipientExport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendEmail' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendEmail.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendEmailAttachment' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendEmailAttachment.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendReport' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendReport.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendReportEmail' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendReportEmail.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSms' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSms.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmail' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmail.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailAttachment' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailAttachment.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailBcc' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailBcc.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailCc' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailCc.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailReplyTo' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailReplyTo.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailSender' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailTo' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailTo.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendTemplateEmail' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTemplateEmail.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendTestEmail' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTestEmail.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendTestSms' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTestSms.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendTransacSms' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTransacSms.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateAttribute' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateAttribute.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateAttributeEnumeration' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateAttributeEnumeration.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateCampaignStatus' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateCampaignStatus.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateChild' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChild.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateChildAccountStatus' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChildAccountStatus.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateChildDomain' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChildDomain.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateContact' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateContact.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateEmailCampaign' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaign.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateEmailCampaignRecipients' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignRecipients.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateEmailCampaignSender' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateList' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateList.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateSender' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateSmsCampaign' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmsCampaign.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateSmtpTemplate' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplate.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateSmtpTemplateSender' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplateSender.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateWebhook' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateWebhook.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UploadImageToGallery' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UploadImageToGallery.php', - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\ObjectSerializer' => __DIR__ . '/../..' . '/vendor_prefixed/sendinblue/api-v3-sdk/lib/ObjectSerializer.php', - 'WPMailSMTP\\Vendor\\Symfony\\Polyfill\\Intl\\Idn\\Idn' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/polyfill-intl-idn/Idn.php', - 'WPMailSMTP\\Vendor\\Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/polyfill-mbstring/Mbstring.php', - 'WPMailSMTP\\Vendor\\Symfony\\Polyfill\\Php72\\Php72' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/polyfill-php72/Php72.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\AES' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/AES.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\Base' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Base.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\Blowfish' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\DES' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/DES.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\Hash' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Hash.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\RC2' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/RC2.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\RC4' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/RC4.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\RSA' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\Random' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Random.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\Rijndael' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\TripleDES' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\Twofish' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php', - 'WPMailSMTP\\Vendor\\phpseclib\\File\\ANSI' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/File/ANSI.php', - 'WPMailSMTP\\Vendor\\phpseclib\\File\\ASN1' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/File/ASN1.php', - 'WPMailSMTP\\Vendor\\phpseclib\\File\\ASN1\\Element' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/File/ASN1/Element.php', - 'WPMailSMTP\\Vendor\\phpseclib\\File\\X509' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/File/X509.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Math\\BigInteger' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Net\\SCP' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Net/SCP.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Net\\SFTP' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Net/SFTP.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Net\\SFTP\\Stream' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Net\\SSH1' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Net/SSH1.php', - 'WPMailSMTP\\Vendor\\phpseclib\\Net\\SSH2' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/Net/SSH2.php', - 'WPMailSMTP\\Vendor\\phpseclib\\System\\SSH\\Agent' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php', - 'WPMailSMTP\\Vendor\\phpseclib\\System\\SSH\\Agent\\Identity' => __DIR__ . '/../..' . '/vendor_prefixed/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php', - ); - - public static function getInitializer(ClassLoader $loader) - { - return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit43034736f284196d23971ba5470288b6::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit43034736f284196d23971ba5470288b6::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit43034736f284196d23971ba5470288b6::$classMap; - - }, null, ClassLoader::class); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/LICENSE b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/LICENSE deleted file mode 100644 index 45c7017..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Paragon Initiative Enterprises - -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. - diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey deleted file mode 100644 index eb50ebf..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PUBLIC KEY----- -MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEEd+wCqJDrx5B4OldM0dQE0ZMX+lx1ZWm -pui0SUqD4G29L3NGsz9UhJ/0HjBdbnkhIK5xviT0X5vtjacF6ajgcCArbTB+ds+p -+h7Q084NuSuIpNb6YPfoUFgC/CL9kAoc ------END PUBLIC KEY----- diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc deleted file mode 100644 index 6a1d7f3..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.22 (MingW32) - -iQEcBAABAgAGBQJWtW1hAAoJEGuXocKCZATaJf0H+wbZGgskK1dcRTsuVJl9IWip -QwGw/qIKI280SD6/ckoUMxKDCJiFuPR14zmqnS36k7N5UNPnpdTJTS8T11jttSpg -1LCmgpbEIpgaTah+cELDqFCav99fS+bEiAL5lWDAHBTE/XPjGVCqeehyPYref4IW -NDBIEsvnHPHPLsn6X5jq4+Yj5oUixgxaMPiR+bcO4Sh+RzOVB6i2D0upWfRXBFXA -NNnsg9/zjvoC7ZW73y9uSH+dPJTt/Vgfeiv52/v41XliyzbUyLalf02GNPY+9goV -JHG1ulEEBJOCiUD9cE1PUIJwHA/HqyhHIvV350YoEFiHl8iSwm7SiZu5kPjaq74= -=B6+8 ------END PGP SIGNATURE----- diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/byte_safe_strings.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/byte_safe_strings.php deleted file mode 100644 index ef24488..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/byte_safe_strings.php +++ /dev/null @@ -1,195 +0,0 @@ - RandomCompat_strlen($binary_string)) { - return ''; - } - - return (string) mb_substr( - (string) $binary_string, - (int) $start, - (int) $length, - '8bit' - ); - } - - } else { - - /** - * substr() implementation that isn't brittle to mbstring.func_overload - * - * This version just uses the default substr() - * - * @param string $binary_string - * @param int $start - * @param int|null $length (optional) - * - * @throws TypeError - * - * @return string - */ - function RandomCompat_substr($binary_string, $start, $length = null) - { - if (!is_string($binary_string)) { - throw new TypeError( - 'RandomCompat_substr(): First argument should be a string' - ); - } - - if (!is_int($start)) { - throw new TypeError( - 'RandomCompat_substr(): Second argument should be an integer' - ); - } - - if ($length !== null) { - if (!is_int($length)) { - throw new TypeError( - 'RandomCompat_substr(): Third argument should be an integer, or omitted' - ); - } - - return (string) substr( - (string )$binary_string, - (int) $start, - (int) $length - ); - } - - return (string) substr( - (string) $binary_string, - (int) $start - ); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/cast_to_int.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/cast_to_int.php deleted file mode 100644 index 1b1bbfe..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/cast_to_int.php +++ /dev/null @@ -1,77 +0,0 @@ - operators might accidentally let a float - * through. - * - * @param int|float $number The number we want to convert to an int - * @param bool $fail_open Set to true to not throw an exception - * - * @return float|int - * @psalm-suppress InvalidReturnType - * - * @throws TypeError - */ - function RandomCompat_intval($number, $fail_open = false) - { - if (is_int($number) || is_float($number)) { - $number += 0; - } elseif (is_numeric($number)) { - /** @psalm-suppress InvalidOperand */ - $number += 0; - } - /** @var int|float $number */ - - if ( - is_float($number) - && - $number > ~PHP_INT_MAX - && - $number < PHP_INT_MAX - ) { - $number = (int) $number; - } - - if (is_int($number)) { - return (int) $number; - } elseif (!$fail_open) { - throw new TypeError( - 'Expected an integer.' - ); - } - return $number; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/error_polyfill.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/error_polyfill.php deleted file mode 100644 index c02c5c8..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/error_polyfill.php +++ /dev/null @@ -1,49 +0,0 @@ -= 70000) { - return; -} - -if (!defined('RANDOM_COMPAT_READ_BUFFER')) { - define('RANDOM_COMPAT_READ_BUFFER', 8); -} - -$RandomCompatDIR = dirname(__FILE__); - -require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'byte_safe_strings.php'; -require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'cast_to_int.php'; -require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'error_polyfill.php'; - -if (!is_callable('random_bytes')) { - /** - * PHP 5.2.0 - 5.6.x way to implement random_bytes() - * - * We use conditional statements here to define the function in accordance - * to the operating environment. It's a micro-optimization. - * - * In order of preference: - * 1. Use libsodium if available. - * 2. fread() /dev/urandom if available (never on Windows) - * 3. mcrypt_create_iv($bytes, MCRYPT_DEV_URANDOM) - * 4. COM('CAPICOM.Utilities.1')->GetRandom() - * - * See RATIONALE.md for our reasoning behind this particular order - */ - if (extension_loaded('libsodium')) { - // See random_bytes_libsodium.php - if (PHP_VERSION_ID >= 50300 && is_callable('\\Sodium\\randombytes_buf')) { - require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'random_bytes_libsodium.php'; - } elseif (method_exists('Sodium', 'randombytes_buf')) { - require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'random_bytes_libsodium_legacy.php'; - } - } - - /** - * Reading directly from /dev/urandom: - */ - if (DIRECTORY_SEPARATOR === '/') { - // DIRECTORY_SEPARATOR === '/' on Unix-like OSes -- this is a fast - // way to exclude Windows. - $RandomCompatUrandom = true; - $RandomCompat_basedir = ini_get('open_basedir'); - - if (!empty($RandomCompat_basedir)) { - $RandomCompat_open_basedir = explode( - PATH_SEPARATOR, - strtolower($RandomCompat_basedir) - ); - $RandomCompatUrandom = (array() !== array_intersect( - array('/dev', '/dev/', '/dev/urandom'), - $RandomCompat_open_basedir - )); - $RandomCompat_open_basedir = null; - } - - if ( - !is_callable('random_bytes') - && - $RandomCompatUrandom - && - @is_readable('/dev/urandom') - ) { - // Error suppression on is_readable() in case of an open_basedir - // or safe_mode failure. All we care about is whether or not we - // can read it at this point. If the PHP environment is going to - // panic over trying to see if the file can be read in the first - // place, that is not helpful to us here. - - // See random_bytes_dev_urandom.php - require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'random_bytes_dev_urandom.php'; - } - // Unset variables after use - $RandomCompat_basedir = null; - } else { - $RandomCompatUrandom = false; - } - - /** - * mcrypt_create_iv() - * - * We only want to use mcypt_create_iv() if: - * - * - random_bytes() hasn't already been defined - * - the mcrypt extensions is loaded - * - One of these two conditions is true: - * - We're on Windows (DIRECTORY_SEPARATOR !== '/') - * - We're not on Windows and /dev/urandom is readabale - * (i.e. we're not in a chroot jail) - * - Special case: - * - If we're not on Windows, but the PHP version is between - * 5.6.10 and 5.6.12, we don't want to use mcrypt. It will - * hang indefinitely. This is bad. - * - If we're on Windows, we want to use PHP >= 5.3.7 or else - * we get insufficient entropy errors. - */ - if ( - !is_callable('random_bytes') - && - // Windows on PHP < 5.3.7 is broken, but non-Windows is not known to be. - (DIRECTORY_SEPARATOR === '/' || PHP_VERSION_ID >= 50307) - && - // Prevent this code from hanging indefinitely on non-Windows; - // see https://bugs.php.net/bug.php?id=69833 - ( - DIRECTORY_SEPARATOR !== '/' || - (PHP_VERSION_ID <= 50609 || PHP_VERSION_ID >= 50613) - ) - && - extension_loaded('mcrypt') - ) { - // See random_bytes_mcrypt.php - require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'random_bytes_mcrypt.php'; - } - $RandomCompatUrandom = null; - - /** - * This is a Windows-specific fallback, for when the mcrypt extension - * isn't loaded. - */ - if ( - !is_callable('random_bytes') - && - extension_loaded('com_dotnet') - && - class_exists('COM') - ) { - $RandomCompat_disabled_classes = preg_split( - '#\s*,\s*#', - strtolower(ini_get('disable_classes')) - ); - - if (!in_array('com', $RandomCompat_disabled_classes)) { - try { - $RandomCompatCOMtest = new COM('CAPICOM.Utilities.1'); - if (method_exists($RandomCompatCOMtest, 'GetRandom')) { - // See random_bytes_com_dotnet.php - require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'random_bytes_com_dotnet.php'; - } - } catch (com_exception $e) { - // Don't try to use it. - } - } - $RandomCompat_disabled_classes = null; - $RandomCompatCOMtest = null; - } - - /** - * throw new Exception - */ - if (!is_callable('random_bytes')) { - /** - * We don't have any more options, so let's throw an exception right now - * and hope the developer won't let it fail silently. - * - * @param mixed $length - * @psalm-suppress InvalidReturnType - * @throws Exception - * @return string - */ - function random_bytes($length) - { - unset($length); // Suppress "variable not used" warnings. - throw new Exception( - 'There is no suitable CSPRNG installed on your system' - ); - return ''; - } - } -} - -if (!is_callable('random_int')) { - require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'random_int.php'; -} - -$RandomCompatDIR = null; diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php deleted file mode 100644 index 537d02b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php +++ /dev/null @@ -1,91 +0,0 @@ -GetRandom($bytes, 0)); - if (RandomCompat_strlen($buf) >= $bytes) { - /** - * Return our random entropy buffer here: - */ - return (string) RandomCompat_substr($buf, 0, $bytes); - } - ++$execCount; - } while ($execCount < $bytes); - - /** - * If we reach here, PHP has failed us. - */ - throw new Exception( - 'Could not gather sufficient random data' - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php deleted file mode 100644 index c4e31cc..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php +++ /dev/null @@ -1,190 +0,0 @@ - $st */ - $st = fstat($fp); - if (($st['mode'] & 0170000) !== 020000) { - fclose($fp); - $fp = false; - } - } - } - - if (is_resource($fp)) { - /** - * stream_set_read_buffer() does not exist in HHVM - * - * If we don't set the stream's read buffer to 0, PHP will - * internally buffer 8192 bytes, which can waste entropy - * - * stream_set_read_buffer returns 0 on success - */ - if (is_callable('stream_set_read_buffer')) { - stream_set_read_buffer($fp, RANDOM_COMPAT_READ_BUFFER); - } - if (is_callable('stream_set_chunk_size')) { - stream_set_chunk_size($fp, RANDOM_COMPAT_READ_BUFFER); - } - } - } - - try { - /** @var int $bytes */ - $bytes = RandomCompat_intval($bytes); - } catch (TypeError $ex) { - throw new TypeError( - 'random_bytes(): $bytes must be an integer' - ); - } - - if ($bytes < 1) { - throw new Error( - 'Length must be greater than 0' - ); - } - - /** - * This if() block only runs if we managed to open a file handle - * - * It does not belong in an else {} block, because the above - * if (empty($fp)) line is logic that should only be run once per - * page load. - */ - if (is_resource($fp)) { - /** - * @var int - */ - $remaining = $bytes; - - /** - * @var string|bool - */ - $buf = ''; - - /** - * We use fread() in a loop to protect against partial reads - */ - do { - /** - * @var string|bool - */ - $read = fread($fp, $remaining); - if (!is_string($read)) { - /** - * We cannot safely read from the file. Exit the - * do-while loop and trigger the exception condition - * - * @var string|bool - */ - $buf = false; - break; - } - /** - * Decrease the number of bytes returned from remaining - */ - $remaining -= RandomCompat_strlen($read); - /** - * @var string $buf - */ - $buf .= $read; - } while ($remaining > 0); - - /** - * Is our result valid? - * @var string|bool $buf - */ - if (is_string($buf)) { - if (RandomCompat_strlen($buf) === $bytes) { - /** - * Return our random entropy buffer here: - */ - return $buf; - } - } - } - - /** - * If we reach here, PHP has failed us. - */ - throw new Exception( - 'Error reading from source device' - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php deleted file mode 100644 index 2e56290..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php +++ /dev/null @@ -1,91 +0,0 @@ - 2147483647) { - $buf = ''; - for ($i = 0; $i < $bytes; $i += 1073741824) { - $n = ($bytes - $i) > 1073741824 - ? 1073741824 - : $bytes - $i; - $buf .= \Sodium\randombytes_buf($n); - } - } else { - /** @var string|bool $buf */ - $buf = \Sodium\randombytes_buf($bytes); - } - - if (is_string($buf)) { - if (RandomCompat_strlen($buf) === $bytes) { - return $buf; - } - } - - /** - * If we reach here, PHP has failed us. - */ - throw new Exception( - 'Could not gather sufficient random data' - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php deleted file mode 100644 index f78b219..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php +++ /dev/null @@ -1,93 +0,0 @@ - 2147483647) { - for ($i = 0; $i < $bytes; $i += 1073741824) { - $n = ($bytes - $i) > 1073741824 - ? 1073741824 - : $bytes - $i; - $buf .= Sodium::randombytes_buf((int) $n); - } - } else { - $buf .= Sodium::randombytes_buf((int) $bytes); - } - - if (is_string($buf)) { - if (RandomCompat_strlen($buf) === $bytes) { - return $buf; - } - } - - /** - * If we reach here, PHP has failed us. - */ - throw new Exception( - 'Could not gather sufficient random data' - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php deleted file mode 100644 index 0b13fa7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php +++ /dev/null @@ -1,79 +0,0 @@ - operators might accidentally let a float - * through. - */ - - try { - /** @var int $min */ - $min = RandomCompat_intval($min); - } catch (TypeError $ex) { - throw new TypeError( - 'random_int(): $min must be an integer' - ); - } - - try { - /** @var int $max */ - $max = RandomCompat_intval($max); - } catch (TypeError $ex) { - throw new TypeError( - 'random_int(): $max must be an integer' - ); - } - - /** - * Now that we've verified our weak typing system has given us an integer, - * let's validate the logic then we can move forward with generating random - * integers along a given range. - */ - if ($min > $max) { - throw new Error( - 'Minimum value must be less than or equal to the maximum value' - ); - } - - if ($max === $min) { - return (int) $min; - } - - /** - * Initialize variables to 0 - * - * We want to store: - * $bytes => the number of random bytes we need - * $mask => an integer bitmask (for use with the &) operator - * so we can minimize the number of discards - */ - $attempts = $bits = $bytes = $mask = $valueShift = 0; - /** @var int $attempts */ - /** @var int $bits */ - /** @var int $bytes */ - /** @var int $mask */ - /** @var int $valueShift */ - - /** - * At this point, $range is a positive number greater than 0. It might - * overflow, however, if $max - $min > PHP_INT_MAX. PHP will cast it to - * a float and we will lose some precision. - * - * @var int|float $range - */ - $range = $max - $min; - - /** - * Test for integer overflow: - */ - if (!is_int($range)) { - - /** - * Still safely calculate wider ranges. - * Provided by @CodesInChaos, @oittaa - * - * @ref https://gist.github.com/CodesInChaos/03f9ea0b58e8b2b8d435 - * - * We use ~0 as a mask in this case because it generates all 1s - * - * @ref https://eval.in/400356 (32-bit) - * @ref http://3v4l.org/XX9r5 (64-bit) - */ - $bytes = PHP_INT_SIZE; - /** @var int $mask */ - $mask = ~0; - - } else { - - /** - * $bits is effectively ceil(log($range, 2)) without dealing with - * type juggling - */ - while ($range > 0) { - if ($bits % 8 === 0) { - ++$bytes; - } - ++$bits; - $range >>= 1; - /** @var int $mask */ - $mask = $mask << 1 | 1; - } - $valueShift = $min; - } - - /** @var int $val */ - $val = 0; - /** - * Now that we have our parameters set up, let's begin generating - * random integers until one falls between $min and $max - */ - /** @psalm-suppress RedundantCondition */ - do { - /** - * The rejection probability is at most 0.5, so this corresponds - * to a failure probability of 2^-128 for a working RNG - */ - if ($attempts > 128) { - throw new Exception( - 'random_int: RNG is broken - too many rejections' - ); - } - - /** - * Let's grab the necessary number of random bytes - */ - $randomByteString = random_bytes($bytes); - - /** - * Let's turn $randomByteString into an integer - * - * This uses bitwise operators (<< and |) to build an integer - * out of the values extracted from ord() - * - * Example: [9F] | [6D] | [32] | [0C] => - * 159 + 27904 + 3276800 + 201326592 => - * 204631455 - */ - $val &= 0; - for ($i = 0; $i < $bytes; ++$i) { - $val |= ord($randomByteString[$i]) << ($i * 8); - } - /** @var int $val */ - - /** - * Apply mask - */ - $val &= $mask; - $val += $valueShift; - - ++$attempts; - /** - * If $val overflows to a floating point number, - * ... or is larger than $max, - * ... or smaller than $min, - * then try again. - */ - } while (!is_int($val) || $val > $max || $val < $min); - - return (int) $val; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/phpunit-autoload.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/phpunit-autoload.php deleted file mode 100644 index 87b01aa..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/random_compat/phpunit-autoload.php +++ /dev/null @@ -1,14 +0,0 @@ -= 5.3 - * - * Class PHPUnit_Framework_TestCase - */ -if (PHP_VERSION_ID >= 50300) { - if (!class_exists('PHPUnit_Framework_TestCase')) { - require_once __DIR__ . '/other/phpunit-shim.php'; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/LICENSE b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/LICENSE deleted file mode 100644 index ce41e50..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -/* - * ISC License - * - * Copyright (c) 2016-2019 - * Paragon Initiative Enterprises - * - * Copyright (c) 2013-2019 - * Frank Denis - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/autoload-fast.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/autoload-fast.php deleted file mode 100644 index 08724d1..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/autoload-fast.php +++ /dev/null @@ -1,4 +0,0 @@ -= 50300) { - require_once (dirname(__FILE__) . '/tests/phpunit-shim.php'); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/autoload.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/autoload.php deleted file mode 100644 index d7c777b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/autoload.php +++ /dev/null @@ -1,65 +0,0 @@ -= 50300) { - // Namespaces didn't exist before 5.3.0, so don't even try to use this - // unless PHP >= 5.3.0 - require_once dirname(__FILE__) . '/lib/namespaced.php'; - require_once dirname(__FILE__) . '/lib/sodium_compat.php'; -} else { - require_once dirname(__FILE__) . '/src/PHP52/SplFixedArray.php'; -} -if (PHP_VERSION_ID < 70200 || !extension_loaded('sodium')) { - if (PHP_VERSION_ID >= 50300 && !defined('SODIUM_CRYPTO_SCALARMULT_BYTES')) { - require_once dirname(__FILE__) . '/lib/php72compat_const.php'; - } - if (PHP_VERSION_ID >= 70000) { - assert(class_exists('ParagonIE_Sodium_Compat'), 'Possible filesystem/autoloader bug?'); - } else { - assert(class_exists('ParagonIE_Sodium_Compat')); - } - require_once (dirname(__FILE__) . '/lib/php72compat.php'); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/lib/constants.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/lib/constants.php deleted file mode 100644 index b6a120e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/lib/constants.php +++ /dev/null @@ -1,52 +0,0 @@ -getMessage() === 'Argument 2 must be CRYPTO_BOX_KEYPAIRBYTES long.') { - throw $ex; - } - return false; - } - } -} -if (!is_callable('sodium_crypto_box_secretkey')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_box_secretkey() - * @param string $keypair - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_box_secretkey($keypair) - { - return ParagonIE_Sodium_Compat::crypto_box_secretkey($keypair); - } -} -if (!is_callable('sodium_crypto_box_seed_keypair')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_box_seed_keypair() - * @param string $seed - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_box_seed_keypair($seed) - { - return ParagonIE_Sodium_Compat::crypto_box_seed_keypair($seed); - } -} -if (!is_callable('sodium_crypto_generichash')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_generichash() - * @param string $message - * @param string|null $key - * @param int $outLen - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_generichash($message, $key = null, $outLen = 32) - { - return ParagonIE_Sodium_Compat::crypto_generichash($message, $key, $outLen); - } -} -if (!is_callable('sodium_crypto_generichash_final')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_generichash_final() - * @param string|null $ctx - * @param int $outputLength - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_generichash_final(&$ctx, $outputLength = 32) - { - return ParagonIE_Sodium_Compat::crypto_generichash_final($ctx, $outputLength); - } -} -if (!is_callable('sodium_crypto_generichash_init')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_generichash_init() - * @param string|null $key - * @param int $outLen - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_generichash_init($key = null, $outLen = 32) - { - return ParagonIE_Sodium_Compat::crypto_generichash_init($key, $outLen); - } -} -if (!is_callable('sodium_crypto_generichash_keygen')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_generichash_keygen() - * @return string - * @throws Exception - */ - function sodium_crypto_generichash_keygen() - { - return ParagonIE_Sodium_Compat::crypto_generichash_keygen(); - } -} -if (!is_callable('sodium_crypto_generichash_update')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_generichash_update() - * @param string|null $ctx - * @param string $message - * @return void - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_generichash_update(&$ctx, $message = '') - { - ParagonIE_Sodium_Compat::crypto_generichash_update($ctx, $message); - } -} -if (!is_callable('sodium_crypto_kdf_keygen')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_kdf_keygen() - * @return string - * @throws Exception - */ - function sodium_crypto_kdf_keygen() - { - return ParagonIE_Sodium_Compat::crypto_kdf_keygen(); - } -} -if (!is_callable('sodium_crypto_kdf_derive_from_key')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_kdf_derive_from_key() - * @param int $subkey_len - * @param int $subkey_id - * @param string $context - * @param string $key - * @return string - * @throws Exception - */ - function sodium_crypto_kdf_derive_from_key($subkey_len, $subkey_id, $context, $key) - { - return ParagonIE_Sodium_Compat::crypto_kdf_derive_from_key( - $subkey_len, - $subkey_id, - $context, - $key - ); - } -} -if (!is_callable('sodium_crypto_kx')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_kx() - * @param string $my_secret - * @param string $their_public - * @param string $client_public - * @param string $server_public - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_kx($my_secret, $their_public, $client_public, $server_public) - { - return ParagonIE_Sodium_Compat::crypto_kx( - $my_secret, - $their_public, - $client_public, - $server_public - ); - } -} -if (!is_callable('sodium_crypto_kx_seed_keypair')) { - /** - * @param string $seed - * @return string - * @throws Exception - */ - function sodium_crypto_kx_seed_keypair($seed) - { - return ParagonIE_Sodium_Compat::crypto_kx_seed_keypair($seed); - } -} -if (!is_callable('sodium_crypto_kx_keypair')) { - /** - * @return string - * @throws Exception - */ - function sodium_crypto_kx_keypair() - { - return ParagonIE_Sodium_Compat::crypto_kx_keypair(); - } -} -if (!is_callable('sodium_crypto_kx_client_session_keys')) { - /** - * @param string $keypair - * @param string $serverPublicKey - * @return array{0: string, 1: string} - * @throws SodiumException - */ - function sodium_crypto_kx_client_session_keys($keypair, $serverPublicKey) - { - return ParagonIE_Sodium_Compat::crypto_kx_client_session_keys($keypair, $serverPublicKey); - } -} -if (!is_callable('sodium_crypto_kx_server_session_keys')) { - /** - * @param string $keypair - * @param string $clientPublicKey - * @return array{0: string, 1: string} - * @throws SodiumException - */ - function sodium_crypto_kx_server_session_keys($keypair, $clientPublicKey) - { - return ParagonIE_Sodium_Compat::crypto_kx_server_session_keys($keypair, $clientPublicKey); - } -} -if (!is_callable('sodium_crypto_kx_secretkey')) { - /** - * @param string $keypair - * @return string - * @throws Exception - */ - function sodium_crypto_kx_secretkey($keypair) - { - return ParagonIE_Sodium_Compat::crypto_kx_secretkey($keypair); - } -} -if (!is_callable('sodium_crypto_kx_publickey')) { - /** - * @param string $keypair - * @return string - * @throws Exception - */ - function sodium_crypto_kx_publickey($keypair) - { - return ParagonIE_Sodium_Compat::crypto_kx_publickey($keypair); - } -} -if (!is_callable('sodium_crypto_pwhash')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_pwhash() - * @param int $outlen - * @param string $passwd - * @param string $salt - * @param int $opslimit - * @param int $memlimit - * @param int|null $algo - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_pwhash($outlen, $passwd, $salt, $opslimit, $memlimit, $algo = null) - { - return ParagonIE_Sodium_Compat::crypto_pwhash($outlen, $passwd, $salt, $opslimit, $memlimit, $algo); - } -} -if (!is_callable('sodium_crypto_pwhash_str')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_pwhash_str() - * @param string $passwd - * @param int $opslimit - * @param int $memlimit - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_pwhash_str($passwd, $opslimit, $memlimit) - { - return ParagonIE_Sodium_Compat::crypto_pwhash_str($passwd, $opslimit, $memlimit); - } -} -if (!is_callable('sodium_crypto_pwhash_str_needs_rehash')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_pwhash_str_needs_rehash() - * @param string $hash - * @param int $opslimit - * @param int $memlimit - * @return bool - * - * @throws SodiumException - */ - function sodium_crypto_pwhash_str_needs_rehash($hash, $opslimit, $memlimit) - { - return ParagonIE_Sodium_Compat::crypto_pwhash_str_needs_rehash($hash, $opslimit, $memlimit); - } -} -if (!is_callable('sodium_crypto_pwhash_str_verify')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_pwhash_str_verify() - * @param string $passwd - * @param string $hash - * @return bool - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_pwhash_str_verify($passwd, $hash) - { - return ParagonIE_Sodium_Compat::crypto_pwhash_str_verify($passwd, $hash); - } -} -if (!is_callable('sodium_crypto_pwhash_scryptsalsa208sha256')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_pwhash_scryptsalsa208sha256() - * @param int $outlen - * @param string $passwd - * @param string $salt - * @param int $opslimit - * @param int $memlimit - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_pwhash_scryptsalsa208sha256($outlen, $passwd, $salt, $opslimit, $memlimit) - { - return ParagonIE_Sodium_Compat::crypto_pwhash_scryptsalsa208sha256($outlen, $passwd, $salt, $opslimit, $memlimit); - } -} -if (!is_callable('sodium_crypto_pwhash_scryptsalsa208sha256_str')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_pwhash_scryptsalsa208sha256_str() - * @param string $passwd - * @param int $opslimit - * @param int $memlimit - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_pwhash_scryptsalsa208sha256_str($passwd, $opslimit, $memlimit) - { - return ParagonIE_Sodium_Compat::crypto_pwhash_scryptsalsa208sha256_str($passwd, $opslimit, $memlimit); - } -} -if (!is_callable('sodium_crypto_pwhash_scryptsalsa208sha256_str_verify')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_pwhash_scryptsalsa208sha256_str_verify() - * @param string $passwd - * @param string $hash - * @return bool - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_pwhash_scryptsalsa208sha256_str_verify($passwd, $hash) - { - return ParagonIE_Sodium_Compat::crypto_pwhash_scryptsalsa208sha256_str_verify($passwd, $hash); - } -} -if (!is_callable('sodium_crypto_scalarmult')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_scalarmult() - * @param string $n - * @param string $p - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_scalarmult($n, $p) - { - return ParagonIE_Sodium_Compat::crypto_scalarmult($n, $p); - } -} -if (!is_callable('sodium_crypto_scalarmult_base')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_scalarmult_base() - * @param string $n - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_scalarmult_base($n) - { - return ParagonIE_Sodium_Compat::crypto_scalarmult_base($n); - } -} -if (!is_callable('sodium_crypto_secretbox')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_secretbox() - * @param string $message - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_secretbox($message, $nonce, $key) - { - return ParagonIE_Sodium_Compat::crypto_secretbox($message, $nonce, $key); - } -} -if (!is_callable('sodium_crypto_secretbox_keygen')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_secretbox_keygen() - * @return string - * @throws Exception - */ - function sodium_crypto_secretbox_keygen() - { - return ParagonIE_Sodium_Compat::crypto_secretbox_keygen(); - } -} -if (!is_callable('sodium_crypto_secretbox_open')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_secretbox_open() - * @param string $message - * @param string $nonce - * @param string $key - * @return string|bool - */ - function sodium_crypto_secretbox_open($message, $nonce, $key) - { - try { - return ParagonIE_Sodium_Compat::crypto_secretbox_open($message, $nonce, $key); - } catch (Error $ex) { - return false; - } catch (Exception $ex) { - return false; - } - } -} -if (!is_callable('sodium_crypto_secretstream_xchacha20poly1305_init_push')) { - /** - * @param string $key - * @return array - * @throws SodiumException - */ - function sodium_crypto_secretstream_xchacha20poly1305_init_push($key) - { - return ParagonIE_Sodium_Compat::crypto_secretstream_xchacha20poly1305_init_push($key); - } -} -if (!is_callable('sodium_crypto_secretstream_xchacha20poly1305_push')) { - /** - * @param string $state - * @param string $msg - * @param string $aad - * @param int $tag - * @return string - * @throws SodiumException - */ - function sodium_crypto_secretstream_xchacha20poly1305_push(&$state, $msg, $aad = '', $tag = 0) - { - return ParagonIE_Sodium_Compat::crypto_secretstream_xchacha20poly1305_push($state, $msg, $aad, $tag); - } -} -if (!is_callable('sodium_crypto_secretstream_xchacha20poly1305_init_pull')) { - /** - * @param string $header - * @param string $key - * @return string - * @throws Exception - */ - function sodium_crypto_secretstream_xchacha20poly1305_init_pull($header, $key) - { - return ParagonIE_Sodium_Compat::crypto_secretstream_xchacha20poly1305_init_pull($header, $key); - } -} -if (!is_callable('sodium_crypto_secretstream_xchacha20poly1305_pull')) { - /** - * @param string $state - * @param string $cipher - * @param string $aad - * @return bool|array{0: string, 1: int} - * @throws SodiumException - */ - function sodium_crypto_secretstream_xchacha20poly1305_pull(&$state, $cipher, $aad = '') - { - return ParagonIE_Sodium_Compat::crypto_secretstream_xchacha20poly1305_pull($state, $cipher, $aad); - } -} -if (!is_callable('sodium_crypto_secretstream_xchacha20poly1305_rekey')) { - /** - * @param string $state - * @return void - * @throws SodiumException - */ - function sodium_crypto_secretstream_xchacha20poly1305_rekey(&$state) - { - ParagonIE_Sodium_Compat::crypto_secretstream_xchacha20poly1305_rekey($state); - } -} -if (!is_callable('sodium_crypto_secretstream_xchacha20poly1305_keygen')) { - /** - * @return string - * @throws Exception - */ - function sodium_crypto_secretstream_xchacha20poly1305_keygen() - { - return ParagonIE_Sodium_Compat::crypto_secretstream_xchacha20poly1305_keygen(); - } -} -if (!is_callable('sodium_crypto_shorthash')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_shorthash() - * @param string $message - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_shorthash($message, $key = '') - { - return ParagonIE_Sodium_Compat::crypto_shorthash($message, $key); - } -} -if (!is_callable('sodium_crypto_shorthash_keygen')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_shorthash_keygen() - * @return string - * @throws Exception - */ - function sodium_crypto_shorthash_keygen() - { - return ParagonIE_Sodium_Compat::crypto_shorthash_keygen(); - } -} -if (!is_callable('sodium_crypto_sign')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_sign() - * @param string $message - * @param string $sk - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_sign($message, $sk) - { - return ParagonIE_Sodium_Compat::crypto_sign($message, $sk); - } -} -if (!is_callable('sodium_crypto_sign_detached')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_sign_detached() - * @param string $message - * @param string $sk - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_sign_detached($message, $sk) - { - return ParagonIE_Sodium_Compat::crypto_sign_detached($message, $sk); - } -} -if (!is_callable('sodium_crypto_sign_keypair_from_secretkey_and_publickey')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_sign_keypair_from_secretkey_and_publickey() - * @param string $sk - * @param string $pk - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_sign_keypair_from_secretkey_and_publickey($sk, $pk) - { - return ParagonIE_Sodium_Compat::crypto_sign_keypair_from_secretkey_and_publickey($sk, $pk); - } -} -if (!is_callable('sodium_crypto_sign_keypair')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_sign_keypair() - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_sign_keypair() - { - return ParagonIE_Sodium_Compat::crypto_sign_keypair(); - } -} -if (!is_callable('sodium_crypto_sign_open')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_sign_open() - * @param string $signedMessage - * @param string $pk - * @return string|bool - */ - function sodium_crypto_sign_open($signedMessage, $pk) - { - try { - return ParagonIE_Sodium_Compat::crypto_sign_open($signedMessage, $pk); - } catch (Error $ex) { - return false; - } catch (Exception $ex) { - return false; - } - } -} -if (!is_callable('sodium_crypto_sign_publickey')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_sign_publickey() - * @param string $keypair - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_sign_publickey($keypair) - { - return ParagonIE_Sodium_Compat::crypto_sign_publickey($keypair); - } -} -if (!is_callable('sodium_crypto_sign_publickey_from_secretkey')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_sign_publickey_from_secretkey() - * @param string $sk - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_sign_publickey_from_secretkey($sk) - { - return ParagonIE_Sodium_Compat::crypto_sign_publickey_from_secretkey($sk); - } -} -if (!is_callable('sodium_crypto_sign_secretkey')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_sign_secretkey() - * @param string $keypair - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_sign_secretkey($keypair) - { - return ParagonIE_Sodium_Compat::crypto_sign_secretkey($keypair); - } -} -if (!is_callable('sodium_crypto_sign_seed_keypair')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_sign_seed_keypair() - * @param string $seed - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_sign_seed_keypair($seed) - { - return ParagonIE_Sodium_Compat::crypto_sign_seed_keypair($seed); - } -} -if (!is_callable('sodium_crypto_sign_verify_detached')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_sign_verify_detached() - * @param string $signature - * @param string $message - * @param string $pk - * @return bool - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_sign_verify_detached($signature, $message, $pk) - { - return ParagonIE_Sodium_Compat::crypto_sign_verify_detached($signature, $message, $pk); - } -} -if (!is_callable('sodium_crypto_sign_ed25519_pk_to_curve25519')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_sign_ed25519_pk_to_curve25519() - * @param string $pk - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_sign_ed25519_pk_to_curve25519($pk) - { - return ParagonIE_Sodium_Compat::crypto_sign_ed25519_pk_to_curve25519($pk); - } -} -if (!is_callable('sodium_crypto_sign_ed25519_sk_to_curve25519')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_sign_ed25519_sk_to_curve25519() - * @param string $sk - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_sign_ed25519_sk_to_curve25519($sk) - { - return ParagonIE_Sodium_Compat::crypto_sign_ed25519_sk_to_curve25519($sk); - } -} -if (!is_callable('sodium_crypto_stream')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_stream() - * @param int $len - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_stream($len, $nonce, $key) - { - return ParagonIE_Sodium_Compat::crypto_stream($len, $nonce, $key); - } -} -if (!is_callable('sodium_crypto_stream_keygen')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_stream_keygen() - * @return string - * @throws Exception - */ - function sodium_crypto_stream_keygen() - { - return ParagonIE_Sodium_Compat::crypto_stream_keygen(); - } -} -if (!is_callable('sodium_crypto_stream_xor')) { - /** - * @see ParagonIE_Sodium_Compat::crypto_stream_xor() - * @param string $message - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_crypto_stream_xor($message, $nonce, $key) - { - return ParagonIE_Sodium_Compat::crypto_stream_xor($message, $nonce, $key); - } -} -if (!is_callable('sodium_hex2bin')) { - /** - * @see ParagonIE_Sodium_Compat::hex2bin() - * @param string $string - * @return string - * @throws SodiumException - * @throws TypeError - */ - function sodium_hex2bin($string) - { - return ParagonIE_Sodium_Compat::hex2bin($string); - } -} -if (!is_callable('sodium_increment')) { - /** - * @see ParagonIE_Sodium_Compat::increment() - * @param string $string - * @return void - * @throws SodiumException - * @throws TypeError - */ - function sodium_increment(&$string) - { - ParagonIE_Sodium_Compat::increment($string); - } -} -if (!is_callable('sodium_library_version_major')) { - /** - * @see ParagonIE_Sodium_Compat::library_version_major() - * @return int - */ - function sodium_library_version_major() - { - return ParagonIE_Sodium_Compat::library_version_major(); - } -} -if (!is_callable('sodium_library_version_minor')) { - /** - * @see ParagonIE_Sodium_Compat::library_version_minor() - * @return int - */ - function sodium_library_version_minor() - { - return ParagonIE_Sodium_Compat::library_version_minor(); - } -} -if (!is_callable('sodium_version_string')) { - /** - * @see ParagonIE_Sodium_Compat::version_string() - * @return string - */ - function sodium_version_string() - { - return ParagonIE_Sodium_Compat::version_string(); - } -} -if (!is_callable('sodium_memcmp')) { - /** - * @see ParagonIE_Sodium_Compat::memcmp() - * @param string $a - * @param string $b - * @return int - * @throws SodiumException - * @throws TypeError - */ - function sodium_memcmp($a, $b) - { - return ParagonIE_Sodium_Compat::memcmp($a, $b); - } -} -if (!is_callable('sodium_memzero')) { - /** - * @see ParagonIE_Sodium_Compat::memzero() - * @param string $str - * @return void - * @throws SodiumException - * @throws TypeError - */ - function sodium_memzero(&$str) - { - ParagonIE_Sodium_Compat::memzero($str); - } -} -if (!is_callable('sodium_pad')) { - /** - * @see ParagonIE_Sodium_Compat::pad() - * @param string $unpadded - * @param int $blockSize - * @return int - * @throws SodiumException - * @throws TypeError - */ - function sodium_pad($unpadded, $blockSize) - { - return ParagonIE_Sodium_Compat::pad($unpadded, $blockSize, true); - } -} -if (!is_callable('sodium_unpad')) { - /** - * @see ParagonIE_Sodium_Compat::pad() - * @param string $padded - * @param int $blockSize - * @return int - * @throws SodiumException - * @throws TypeError - */ - function sodium_unpad($padded, $blockSize) - { - return ParagonIE_Sodium_Compat::unpad($padded, $blockSize, true); - } -} -if (!is_callable('sodium_randombytes_buf')) { - /** - * @see ParagonIE_Sodium_Compat::randombytes_buf() - * @param int $amount - * @return string - * @throws Exception - */ - function sodium_randombytes_buf($amount) - { - return ParagonIE_Sodium_Compat::randombytes_buf($amount); - } -} - -if (!is_callable('sodium_randombytes_uniform')) { - /** - * @see ParagonIE_Sodium_Compat::randombytes_uniform() - * @param int $upperLimit - * @return int - * @throws Exception - */ - function sodium_randombytes_uniform($upperLimit) - { - return ParagonIE_Sodium_Compat::randombytes_uniform($upperLimit); - } -} - -if (!is_callable('sodium_randombytes_random16')) { - /** - * @see ParagonIE_Sodium_Compat::randombytes_random16() - * @return int - * @throws Exception - */ - function sodium_randombytes_random16() - { - return ParagonIE_Sodium_Compat::randombytes_random16(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/lib/php72compat_const.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/lib/php72compat_const.php deleted file mode 100644 index 6a4247a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/lib/php72compat_const.php +++ /dev/null @@ -1,90 +0,0 @@ ->= 8; - } - $val = ParagonIE_Sodium_Core_Util::intArrayToString($A); - } - - /** - * @param string $encoded - * @param int $variant - * @param string $ignore - * @return string - * @throws SodiumException - */ - public static function base642bin($encoded, $variant, $ignore = '') - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($encoded, 'string', 1); - - /** @var string $encoded */ - $encoded = (string) $encoded; - if (ParagonIE_Sodium_Core_Util::strlen($encoded) === 0) { - return ''; - } - - // Just strip before decoding - if (!empty($ignore)) { - $encoded = str_replace($ignore, '', $encoded); - } - - try { - switch ($variant) { - case self::BASE64_VARIANT_ORIGINAL: - return ParagonIE_Sodium_Core_Base64_Original::decode($encoded, true); - case self::BASE64_VARIANT_ORIGINAL_NO_PADDING: - return ParagonIE_Sodium_Core_Base64_Original::decode($encoded, false); - case self::BASE64_VARIANT_URLSAFE: - return ParagonIE_Sodium_Core_Base64_UrlSafe::decode($encoded, true); - case self::BASE64_VARIANT_URLSAFE_NO_PADDING: - return ParagonIE_Sodium_Core_Base64_UrlSafe::decode($encoded, false); - default: - throw new SodiumException('invalid base64 variant identifier'); - } - } catch (Exception $ex) { - if ($ex instanceof SodiumException) { - throw $ex; - } - throw new SodiumException('invalid base64 string'); - } - } - - /** - * @param string $decoded - * @param int $variant - * @return string - * @throws SodiumException - */ - public static function bin2base64($decoded, $variant) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($decoded, 'string', 1); - /** @var string $decoded */ - $decoded = (string) $decoded; - if (ParagonIE_Sodium_Core_Util::strlen($decoded) === 0) { - return ''; - } - - switch ($variant) { - case self::BASE64_VARIANT_ORIGINAL: - return ParagonIE_Sodium_Core_Base64_Original::encode($decoded); - case self::BASE64_VARIANT_ORIGINAL_NO_PADDING: - return ParagonIE_Sodium_Core_Base64_Original::encodeUnpadded($decoded); - case self::BASE64_VARIANT_URLSAFE: - return ParagonIE_Sodium_Core_Base64_UrlSafe::encode($decoded); - case self::BASE64_VARIANT_URLSAFE_NO_PADDING: - return ParagonIE_Sodium_Core_Base64_UrlSafe::encodeUnpadded($decoded); - default: - throw new SodiumException('invalid base64 variant identifier'); - } - } - - /** - * Cache-timing-safe implementation of bin2hex(). - * - * @param string $string A string (probably raw binary) - * @return string A hexadecimal-encoded string - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function bin2hex($string) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($string, 'string', 1); - - if (self::useNewSodiumAPI()) { - return (string) sodium_bin2hex($string); - } - if (self::use_fallback('bin2hex')) { - return (string) call_user_func('\\Sodium\\bin2hex', $string); - } - return ParagonIE_Sodium_Core_Util::bin2hex($string); - } - - /** - * Compare two strings, in constant-time. - * Compared to memcmp(), compare() is more useful for sorting. - * - * @param string $left The left operand; must be a string - * @param string $right The right operand; must be a string - * @return int If < 0 if the left operand is less than the right - * If = 0 if both strings are equal - * If > 0 if the right operand is less than the left - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function compare($left, $right) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($left, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($right, 'string', 2); - - if (self::useNewSodiumAPI()) { - return (int) sodium_compare($left, $right); - } - if (self::use_fallback('compare')) { - return (int) call_user_func('\\Sodium\\compare', $left, $right); - } - return ParagonIE_Sodium_Core_Util::compare($left, $right); - } - - /** - * Is AES-256-GCM even available to use? - * - * @return bool - * @psalm-suppress UndefinedFunction - * @psalm-suppress MixedInferredReturnType - * @psalm-suppress MixedReturnStatement - */ - public static function crypto_aead_aes256gcm_is_available() - { - if (self::useNewSodiumAPI()) { - return sodium_crypto_aead_aes256gcm_is_available(); - } - if (self::use_fallback('crypto_aead_aes256gcm_is_available')) { - return call_user_func('\\Sodium\\crypto_aead_aes256gcm_is_available'); - } - if (PHP_VERSION_ID < 70100) { - // OpenSSL doesn't support AEAD before 7.1.0 - return false; - } - if (!is_callable('openssl_encrypt') || !is_callable('openssl_decrypt')) { - // OpenSSL isn't installed - return false; - } - return (bool) in_array('aes-256-gcm', openssl_get_cipher_methods()); - } - - /** - * Authenticated Encryption with Associated Data: Decryption - * - * Algorithm: - * AES-256-GCM - * - * This mode uses a 64-bit random nonce with a 64-bit counter. - * IETF mode uses a 96-bit random nonce with a 32-bit counter. - * - * @param string $ciphertext Encrypted message (with Poly1305 MAC appended) - * @param string $assocData Authenticated Associated Data (unencrypted) - * @param string $nonce Number to be used only Once; must be 8 bytes - * @param string $key Encryption key - * - * @return string|bool The original plaintext message - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedInferredReturnType - * @psalm-suppress MixedReturnStatement - */ - public static function crypto_aead_aes256gcm_decrypt( - $ciphertext = '', - $assocData = '', - $nonce = '', - $key = '' - ) { - if (!self::crypto_aead_aes256gcm_is_available()) { - throw new SodiumException('AES-256-GCM is not available'); - } - ParagonIE_Sodium_Core_Util::declareScalarType($ciphertext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($assocData, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 3); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 4); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_AEAD_AES256GCM_NPUBBYTES) { - throw new SodiumException('Nonce must be CRYPTO_AEAD_AES256GCM_NPUBBYTES long'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_AEAD_AES256GCM_KEYBYTES) { - throw new SodiumException('Key must be CRYPTO_AEAD_AES256GCM_KEYBYTES long'); - } - if (ParagonIE_Sodium_Core_Util::strlen($ciphertext) < self::CRYPTO_AEAD_AES256GCM_ABYTES) { - throw new SodiumException('Message must be at least CRYPTO_AEAD_AES256GCM_ABYTES long'); - } - if (!is_callable('openssl_decrypt')) { - throw new SodiumException('The OpenSSL extension is not installed, or openssl_decrypt() is not available'); - } - - /** @var string $ctext */ - $ctext = ParagonIE_Sodium_Core_Util::substr($ciphertext, 0, -self::CRYPTO_AEAD_AES256GCM_ABYTES); - /** @var string $authTag */ - $authTag = ParagonIE_Sodium_Core_Util::substr($ciphertext, -self::CRYPTO_AEAD_AES256GCM_ABYTES, 16); - return openssl_decrypt( - $ctext, - 'aes-256-gcm', - $key, - OPENSSL_RAW_DATA, - $nonce, - $authTag, - $assocData - ); - } - - /** - * Authenticated Encryption with Associated Data: Encryption - * - * Algorithm: - * AES-256-GCM - * - * @param string $plaintext Message to be encrypted - * @param string $assocData Authenticated Associated Data (unencrypted) - * @param string $nonce Number to be used only Once; must be 8 bytes - * @param string $key Encryption key - * - * @return string Ciphertext with a 16-byte GCM message - * authentication code appended - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_aead_aes256gcm_encrypt( - $plaintext = '', - $assocData = '', - $nonce = '', - $key = '' - ) { - if (!self::crypto_aead_aes256gcm_is_available()) { - throw new SodiumException('AES-256-GCM is not available'); - } - ParagonIE_Sodium_Core_Util::declareScalarType($plaintext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($assocData, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 3); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 4); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_AEAD_AES256GCM_NPUBBYTES) { - throw new SodiumException('Nonce must be CRYPTO_AEAD_AES256GCM_NPUBBYTES long'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_AEAD_AES256GCM_KEYBYTES) { - throw new SodiumException('Key must be CRYPTO_AEAD_AES256GCM_KEYBYTES long'); - } - - if (!is_callable('openssl_encrypt')) { - throw new SodiumException('The OpenSSL extension is not installed, or openssl_encrypt() is not available'); - } - - $authTag = ''; - $ciphertext = openssl_encrypt( - $plaintext, - 'aes-256-gcm', - $key, - OPENSSL_RAW_DATA, - $nonce, - $authTag, - $assocData - ); - return $ciphertext . $authTag; - } - - /** - * Return a secure random key for use with the AES-256-GCM - * symmetric AEAD interface. - * - * @return string - * @throws Exception - * @throws Error - */ - public static function crypto_aead_aes256gcm_keygen() - { - return random_bytes(self::CRYPTO_AEAD_AES256GCM_KEYBYTES); - } - - /** - * Authenticated Encryption with Associated Data: Decryption - * - * Algorithm: - * ChaCha20-Poly1305 - * - * This mode uses a 64-bit random nonce with a 64-bit counter. - * IETF mode uses a 96-bit random nonce with a 32-bit counter. - * - * @param string $ciphertext Encrypted message (with Poly1305 MAC appended) - * @param string $assocData Authenticated Associated Data (unencrypted) - * @param string $nonce Number to be used only Once; must be 8 bytes - * @param string $key Encryption key - * - * @return string The original plaintext message - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedInferredReturnType - * @psalm-suppress MixedReturnStatement - */ - public static function crypto_aead_chacha20poly1305_decrypt( - $ciphertext = '', - $assocData = '', - $nonce = '', - $key = '' - ) { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($ciphertext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($assocData, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 3); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 4); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES) { - throw new SodiumException('Nonce must be CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES long'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES) { - throw new SodiumException('Key must be CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES long'); - } - if (ParagonIE_Sodium_Core_Util::strlen($ciphertext) < self::CRYPTO_AEAD_CHACHA20POLY1305_ABYTES) { - throw new SodiumException('Message must be at least CRYPTO_AEAD_CHACHA20POLY1305_ABYTES long'); - } - - if (self::useNewSodiumAPI()) { - /** - * @psalm-suppress InvalidReturnStatement - * @psalm-suppress FalsableReturnStatement - */ - return sodium_crypto_aead_chacha20poly1305_decrypt( - $ciphertext, - $assocData, - $nonce, - $key - ); - } - if (self::use_fallback('crypto_aead_chacha20poly1305_decrypt')) { - return call_user_func( - '\\Sodium\\crypto_aead_chacha20poly1305_decrypt', - $ciphertext, - $assocData, - $nonce, - $key - ); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::aead_chacha20poly1305_decrypt( - $ciphertext, - $assocData, - $nonce, - $key - ); - } - return ParagonIE_Sodium_Crypto::aead_chacha20poly1305_decrypt( - $ciphertext, - $assocData, - $nonce, - $key - ); - } - - /** - * Authenticated Encryption with Associated Data - * - * Algorithm: - * ChaCha20-Poly1305 - * - * This mode uses a 64-bit random nonce with a 64-bit counter. - * IETF mode uses a 96-bit random nonce with a 32-bit counter. - * - * @param string $plaintext Message to be encrypted - * @param string $assocData Authenticated Associated Data (unencrypted) - * @param string $nonce Number to be used only Once; must be 8 bytes - * @param string $key Encryption key - * - * @return string Ciphertext with a 16-byte Poly1305 message - * authentication code appended - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_aead_chacha20poly1305_encrypt( - $plaintext = '', - $assocData = '', - $nonce = '', - $key = '' - ) { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($plaintext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($assocData, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 3); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 4); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES) { - throw new SodiumException('Nonce must be CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES long'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES) { - throw new SodiumException('Key must be CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES long'); - } - - if (self::useNewSodiumAPI()) { - return (string) sodium_crypto_aead_chacha20poly1305_encrypt( - $plaintext, - $assocData, - $nonce, - $key - ); - } - if (self::use_fallback('crypto_aead_chacha20poly1305_encrypt')) { - return (string) call_user_func( - '\\Sodium\\crypto_aead_chacha20poly1305_encrypt', - $plaintext, - $assocData, - $nonce, - $key - ); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::aead_chacha20poly1305_encrypt( - $plaintext, - $assocData, - $nonce, - $key - ); - } - return ParagonIE_Sodium_Crypto::aead_chacha20poly1305_encrypt( - $plaintext, - $assocData, - $nonce, - $key - ); - } - - /** - * Authenticated Encryption with Associated Data: Decryption - * - * Algorithm: - * ChaCha20-Poly1305 - * - * IETF mode uses a 96-bit random nonce with a 32-bit counter. - * Regular mode uses a 64-bit random nonce with a 64-bit counter. - * - * @param string $ciphertext Encrypted message (with Poly1305 MAC appended) - * @param string $assocData Authenticated Associated Data (unencrypted) - * @param string $nonce Number to be used only Once; must be 12 bytes - * @param string $key Encryption key - * - * @return string The original plaintext message - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedInferredReturnType - * @psalm-suppress MixedReturnStatement - */ - public static function crypto_aead_chacha20poly1305_ietf_decrypt( - $ciphertext = '', - $assocData = '', - $nonce = '', - $key = '' - ) { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($ciphertext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($assocData, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 3); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 4); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES) { - throw new SodiumException('Nonce must be CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES long'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES) { - throw new SodiumException('Key must be CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES long'); - } - if (ParagonIE_Sodium_Core_Util::strlen($ciphertext) < self::CRYPTO_AEAD_CHACHA20POLY1305_ABYTES) { - throw new SodiumException('Message must be at least CRYPTO_AEAD_CHACHA20POLY1305_ABYTES long'); - } - - if (self::useNewSodiumAPI()) { - /** - * @psalm-suppress InvalidReturnStatement - * @psalm-suppress FalsableReturnStatement - */ - return sodium_crypto_aead_chacha20poly1305_ietf_decrypt( - $ciphertext, - $assocData, - $nonce, - $key - ); - } - if (self::use_fallback('crypto_aead_chacha20poly1305_ietf_decrypt')) { - return call_user_func( - '\\Sodium\\crypto_aead_chacha20poly1305_ietf_decrypt', - $ciphertext, - $assocData, - $nonce, - $key - ); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::aead_chacha20poly1305_ietf_decrypt( - $ciphertext, - $assocData, - $nonce, - $key - ); - } - return ParagonIE_Sodium_Crypto::aead_chacha20poly1305_ietf_decrypt( - $ciphertext, - $assocData, - $nonce, - $key - ); - } - - /** - * Return a secure random key for use with the ChaCha20-Poly1305 - * symmetric AEAD interface. - * - * @return string - * @throws Exception - * @throws Error - */ - public static function crypto_aead_chacha20poly1305_keygen() - { - return random_bytes(self::CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES); - } - - /** - * Authenticated Encryption with Associated Data - * - * Algorithm: - * ChaCha20-Poly1305 - * - * IETF mode uses a 96-bit random nonce with a 32-bit counter. - * Regular mode uses a 64-bit random nonce with a 64-bit counter. - * - * @param string $plaintext Message to be encrypted - * @param string $assocData Authenticated Associated Data (unencrypted) - * @param string $nonce Number to be used only Once; must be 8 bytes - * @param string $key Encryption key - * - * @return string Ciphertext with a 16-byte Poly1305 message - * authentication code appended - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_aead_chacha20poly1305_ietf_encrypt( - $plaintext = '', - $assocData = '', - $nonce = '', - $key = '' - ) { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($plaintext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($assocData, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 3); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 4); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES) { - throw new SodiumException('Nonce must be CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES long'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES) { - throw new SodiumException('Key must be CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES long'); - } - - if (self::useNewSodiumAPI()) { - return (string) sodium_crypto_aead_chacha20poly1305_ietf_encrypt( - $plaintext, - $assocData, - $nonce, - $key - ); - } - if (self::use_fallback('crypto_aead_chacha20poly1305_ietf_encrypt')) { - return (string) call_user_func( - '\\Sodium\\crypto_aead_chacha20poly1305_ietf_encrypt', - $plaintext, - $assocData, - $nonce, - $key - ); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::aead_chacha20poly1305_ietf_encrypt( - $plaintext, - $assocData, - $nonce, - $key - ); - } - return ParagonIE_Sodium_Crypto::aead_chacha20poly1305_ietf_encrypt( - $plaintext, - $assocData, - $nonce, - $key - ); - } - - /** - * Return a secure random key for use with the ChaCha20-Poly1305 - * symmetric AEAD interface. (IETF version) - * - * @return string - * @throws Exception - * @throws Error - */ - public static function crypto_aead_chacha20poly1305_ietf_keygen() - { - return random_bytes(self::CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES); - } - - /** - * Authenticated Encryption with Associated Data: Decryption - * - * Algorithm: - * XChaCha20-Poly1305 - * - * This mode uses a 64-bit random nonce with a 64-bit counter. - * IETF mode uses a 96-bit random nonce with a 32-bit counter. - * - * @param string $ciphertext Encrypted message (with Poly1305 MAC appended) - * @param string $assocData Authenticated Associated Data (unencrypted) - * @param string $nonce Number to be used only Once; must be 8 bytes - * @param string $key Encryption key - * @param bool $dontFallback Don't fallback to ext/sodium - * - * @return string|bool The original plaintext message - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_aead_xchacha20poly1305_ietf_decrypt( - $ciphertext = '', - $assocData = '', - $nonce = '', - $key = '', - $dontFallback = false - ) { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($ciphertext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($assocData, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 3); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 4); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES) { - throw new SodiumException('Nonce must be CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES long'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_AEAD_XCHACHA20POLY1305_IETF_KEYBYTES) { - throw new SodiumException('Key must be CRYPTO_AEAD_XCHACHA20POLY1305_IETF_KEYBYTES long'); - } - if (ParagonIE_Sodium_Core_Util::strlen($ciphertext) < self::CRYPTO_AEAD_XCHACHA20POLY1305_IETF_ABYTES) { - throw new SodiumException('Message must be at least CRYPTO_AEAD_XCHACHA20POLY1305_IETF_ABYTES long'); - } - if (self::useNewSodiumAPI() && !$dontFallback) { - if (is_callable('sodium_crypto_aead_xchacha20poly1305_ietf_decrypt')) { - return sodium_crypto_aead_xchacha20poly1305_ietf_decrypt( - $ciphertext, - $assocData, - $nonce, - $key - ); - } - } - - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::aead_xchacha20poly1305_ietf_decrypt( - $ciphertext, - $assocData, - $nonce, - $key - ); - } - return ParagonIE_Sodium_Crypto::aead_xchacha20poly1305_ietf_decrypt( - $ciphertext, - $assocData, - $nonce, - $key - ); - } - - /** - * Authenticated Encryption with Associated Data - * - * Algorithm: - * XChaCha20-Poly1305 - * - * This mode uses a 64-bit random nonce with a 64-bit counter. - * IETF mode uses a 96-bit random nonce with a 32-bit counter. - * - * @param string $plaintext Message to be encrypted - * @param string $assocData Authenticated Associated Data (unencrypted) - * @param string $nonce Number to be used only Once; must be 8 bytes - * @param string $key Encryption key - * @param bool $dontFallback Don't fallback to ext/sodium - * - * @return string Ciphertext with a 16-byte Poly1305 message - * authentication code appended - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_aead_xchacha20poly1305_ietf_encrypt( - $plaintext = '', - $assocData = '', - $nonce = '', - $key = '', - $dontFallback = false - ) { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($plaintext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($assocData, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 3); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 4); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES) { - throw new SodiumException('Nonce must be CRYPTO_AEAD_XCHACHA20POLY1305_NPUBBYTES long'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_AEAD_XCHACHA20POLY1305_IETF_KEYBYTES) { - throw new SodiumException('Key must be CRYPTO_AEAD_XCHACHA20POLY1305_KEYBYTES long'); - } - if (self::useNewSodiumAPI() && !$dontFallback) { - if (is_callable('sodium_crypto_aead_xchacha20poly1305_ietf_encrypt')) { - return sodium_crypto_aead_xchacha20poly1305_ietf_encrypt( - $plaintext, - $assocData, - $nonce, - $key - ); - } - } - - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::aead_xchacha20poly1305_ietf_encrypt( - $plaintext, - $assocData, - $nonce, - $key - ); - } - return ParagonIE_Sodium_Crypto::aead_xchacha20poly1305_ietf_encrypt( - $plaintext, - $assocData, - $nonce, - $key - ); - } - - /** - * Return a secure random key for use with the XChaCha20-Poly1305 - * symmetric AEAD interface. - * - * @return string - * @throws Exception - * @throws Error - */ - public static function crypto_aead_xchacha20poly1305_ietf_keygen() - { - return random_bytes(self::CRYPTO_AEAD_XCHACHA20POLY1305_IETF_KEYBYTES); - } - - /** - * Authenticate a message. Uses symmetric-key cryptography. - * - * Algorithm: - * HMAC-SHA512-256. Which is HMAC-SHA-512 truncated to 256 bits. - * Not to be confused with HMAC-SHA-512/256 which would use the - * SHA-512/256 hash function (uses different initial parameters - * but still truncates to 256 bits to sidestep length-extension - * attacks). - * - * @param string $message Message to be authenticated - * @param string $key Symmetric authentication key - * @return string Message authentication code - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_auth($message, $key) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($message, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 2); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_AUTH_KEYBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_AUTH_KEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return (string) sodium_crypto_auth($message, $key); - } - if (self::use_fallback('crypto_auth')) { - return (string) call_user_func('\\Sodium\\crypto_auth', $message, $key); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::auth($message, $key); - } - return ParagonIE_Sodium_Crypto::auth($message, $key); - } - - /** - * @return string - * @throws Exception - * @throws Error - */ - public static function crypto_auth_keygen() - { - return random_bytes(self::CRYPTO_AUTH_KEYBYTES); - } - - /** - * Verify the MAC of a message previously authenticated with crypto_auth. - * - * @param string $mac Message authentication code - * @param string $message Message whose authenticity you are attempting to - * verify (with a given MAC and key) - * @param string $key Symmetric authentication key - * @return bool TRUE if authenticated, FALSE otherwise - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_auth_verify($mac, $message, $key) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($mac, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($message, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 3); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($mac) !== self::CRYPTO_AUTH_BYTES) { - throw new SodiumException('Argument 1 must be CRYPTO_AUTH_BYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_AUTH_KEYBYTES) { - throw new SodiumException('Argument 3 must be CRYPTO_AUTH_KEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return (bool) sodium_crypto_auth_verify($mac, $message, $key); - } - if (self::use_fallback('crypto_auth_verify')) { - return (bool) call_user_func('\\Sodium\\crypto_auth_verify', $mac, $message, $key); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::auth_verify($mac, $message, $key); - } - return ParagonIE_Sodium_Crypto::auth_verify($mac, $message, $key); - } - - /** - * Authenticated asymmetric-key encryption. Both the sender and recipient - * may decrypt messages. - * - * Algorithm: X25519-XSalsa20-Poly1305. - * X25519: Elliptic-Curve Diffie Hellman over Curve25519. - * XSalsa20: Extended-nonce variant of salsa20. - * Poyl1305: Polynomial MAC for one-time message authentication. - * - * @param string $plaintext The message to be encrypted - * @param string $nonce A Number to only be used Once; must be 24 bytes - * @param string $keypair Your secret key and your recipient's public key - * @return string Ciphertext with 16-byte Poly1305 MAC - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_box($plaintext, $nonce, $keypair) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($plaintext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($keypair, 'string', 3); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_BOX_NONCEBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_BOX_NONCEBYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($keypair) !== self::CRYPTO_BOX_KEYPAIRBYTES) { - throw new SodiumException('Argument 3 must be CRYPTO_BOX_KEYPAIRBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return (string) sodium_crypto_box($plaintext, $nonce, $keypair); - } - if (self::use_fallback('crypto_box')) { - return (string) call_user_func('\\Sodium\\crypto_box', $plaintext, $nonce, $keypair); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::box($plaintext, $nonce, $keypair); - } - return ParagonIE_Sodium_Crypto::box($plaintext, $nonce, $keypair); - } - - /** - * Anonymous public-key encryption. Only the recipient may decrypt messages. - * - * Algorithm: X25519-XSalsa20-Poly1305, as with crypto_box. - * The sender's X25519 keypair is ephemeral. - * Nonce is generated from the BLAKE2b hash of both public keys. - * - * This provides ciphertext integrity. - * - * @param string $plaintext Message to be sealed - * @param string $publicKey Your recipient's public key - * @return string Sealed message that only your recipient can - * decrypt - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_box_seal($plaintext, $publicKey) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($plaintext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($publicKey, 'string', 2); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($publicKey) !== self::CRYPTO_BOX_PUBLICKEYBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_BOX_PUBLICKEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return (string) sodium_crypto_box_seal($plaintext, $publicKey); - } - if (self::use_fallback('crypto_box_seal')) { - return (string) call_user_func('\\Sodium\\crypto_box_seal', $plaintext, $publicKey); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::box_seal($plaintext, $publicKey); - } - return ParagonIE_Sodium_Crypto::box_seal($plaintext, $publicKey); - } - - /** - * Opens a message encrypted with crypto_box_seal(). Requires - * the recipient's keypair (sk || pk) to decrypt successfully. - * - * This validates ciphertext integrity. - * - * @param string $ciphertext Sealed message to be opened - * @param string $keypair Your crypto_box keypair - * @return string The original plaintext message - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedInferredReturnType - * @psalm-suppress MixedReturnStatement - */ - public static function crypto_box_seal_open($ciphertext, $keypair) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($ciphertext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($keypair, 'string', 2); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($keypair) !== self::CRYPTO_BOX_KEYPAIRBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_BOX_KEYPAIRBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - /** - * @psalm-suppress InvalidReturnStatement - * @psalm-suppress FalsableReturnStatement - */ - return sodium_crypto_box_seal_open($ciphertext, $keypair); - } - if (self::use_fallback('crypto_box_seal_open')) { - return call_user_func('\\Sodium\\crypto_box_seal_open', $ciphertext, $keypair); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::box_seal_open($ciphertext, $keypair); - } - return ParagonIE_Sodium_Crypto::box_seal_open($ciphertext, $keypair); - } - - /** - * Generate a new random X25519 keypair. - * - * @return string A 64-byte string; the first 32 are your secret key, while - * the last 32 are your public key. crypto_box_secretkey() - * and crypto_box_publickey() exist to separate them so you - * don't accidentally get them mixed up! - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_box_keypair() - { - if (self::useNewSodiumAPI()) { - return (string) sodium_crypto_box_keypair(); - } - if (self::use_fallback('crypto_box_keypair')) { - return (string) call_user_func('\\Sodium\\crypto_box_keypair'); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::box_keypair(); - } - return ParagonIE_Sodium_Crypto::box_keypair(); - } - - /** - * Combine two keys into a keypair for use in library methods that expect - * a keypair. This doesn't necessarily have to be the same person's keys. - * - * @param string $secretKey Secret key - * @param string $publicKey Public key - * @return string Keypair - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_box_keypair_from_secretkey_and_publickey($secretKey, $publicKey) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($secretKey, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($publicKey, 'string', 2); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($secretKey) !== self::CRYPTO_BOX_SECRETKEYBYTES) { - throw new SodiumException('Argument 1 must be CRYPTO_BOX_SECRETKEYBYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($publicKey) !== self::CRYPTO_BOX_PUBLICKEYBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_BOX_PUBLICKEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return (string) sodium_crypto_box_keypair_from_secretkey_and_publickey($secretKey, $publicKey); - } - if (self::use_fallback('crypto_box_keypair_from_secretkey_and_publickey')) { - return (string) call_user_func('\\Sodium\\crypto_box_keypair_from_secretkey_and_publickey', $secretKey, $publicKey); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::box_keypair_from_secretkey_and_publickey($secretKey, $publicKey); - } - return ParagonIE_Sodium_Crypto::box_keypair_from_secretkey_and_publickey($secretKey, $publicKey); - } - - /** - * Decrypt a message previously encrypted with crypto_box(). - * - * @param string $ciphertext Encrypted message - * @param string $nonce Number to only be used Once; must be 24 bytes - * @param string $keypair Your secret key and the sender's public key - * @return string The original plaintext message - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedInferredReturnType - * @psalm-suppress MixedReturnStatement - */ - public static function crypto_box_open($ciphertext, $nonce, $keypair) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($ciphertext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($keypair, 'string', 3); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($ciphertext) < self::CRYPTO_BOX_MACBYTES) { - throw new SodiumException('Argument 1 must be at least CRYPTO_BOX_MACBYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_BOX_NONCEBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_BOX_NONCEBYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($keypair) !== self::CRYPTO_BOX_KEYPAIRBYTES) { - throw new SodiumException('Argument 3 must be CRYPTO_BOX_KEYPAIRBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - /** - * @psalm-suppress InvalidReturnStatement - * @psalm-suppress FalsableReturnStatement - */ - return sodium_crypto_box_open($ciphertext, $nonce, $keypair); - } - if (self::use_fallback('crypto_box_open')) { - return call_user_func('\\Sodium\\crypto_box_open', $ciphertext, $nonce, $keypair); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::box_open($ciphertext, $nonce, $keypair); - } - return ParagonIE_Sodium_Crypto::box_open($ciphertext, $nonce, $keypair); - } - - /** - * Extract the public key from a crypto_box keypair. - * - * @param string $keypair Keypair containing secret and public key - * @return string Your crypto_box public key - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_box_publickey($keypair) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($keypair, 'string', 1); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($keypair) !== self::CRYPTO_BOX_KEYPAIRBYTES) { - throw new SodiumException('Argument 1 must be CRYPTO_BOX_KEYPAIRBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return (string) sodium_crypto_box_publickey($keypair); - } - if (self::use_fallback('crypto_box_publickey')) { - return (string) call_user_func('\\Sodium\\crypto_box_publickey', $keypair); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::box_publickey($keypair); - } - return ParagonIE_Sodium_Crypto::box_publickey($keypair); - } - - /** - * Calculate the X25519 public key from a given X25519 secret key. - * - * @param string $secretKey Any X25519 secret key - * @return string The corresponding X25519 public key - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_box_publickey_from_secretkey($secretKey) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($secretKey, 'string', 1); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($secretKey) !== self::CRYPTO_BOX_SECRETKEYBYTES) { - throw new SodiumException('Argument 1 must be CRYPTO_BOX_SECRETKEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return (string) sodium_crypto_box_publickey_from_secretkey($secretKey); - } - if (self::use_fallback('crypto_box_publickey_from_secretkey')) { - return (string) call_user_func('\\Sodium\\crypto_box_publickey_from_secretkey', $secretKey); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::box_publickey_from_secretkey($secretKey); - } - return ParagonIE_Sodium_Crypto::box_publickey_from_secretkey($secretKey); - } - - /** - * Extract the secret key from a crypto_box keypair. - * - * @param string $keypair - * @return string Your crypto_box secret key - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_box_secretkey($keypair) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($keypair, 'string', 1); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($keypair) !== self::CRYPTO_BOX_KEYPAIRBYTES) { - throw new SodiumException('Argument 1 must be CRYPTO_BOX_KEYPAIRBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return (string) sodium_crypto_box_secretkey($keypair); - } - if (self::use_fallback('crypto_box_secretkey')) { - return (string) call_user_func('\\Sodium\\crypto_box_secretkey', $keypair); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::box_secretkey($keypair); - } - return ParagonIE_Sodium_Crypto::box_secretkey($keypair); - } - - /** - * Generate an X25519 keypair from a seed. - * - * @param string $seed - * @return string - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress UndefinedFunction - */ - public static function crypto_box_seed_keypair($seed) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($seed, 'string', 1); - - if (self::useNewSodiumAPI()) { - return (string) sodium_crypto_box_seed_keypair($seed); - } - if (self::use_fallback('crypto_box_seed_keypair')) { - return (string) call_user_func('\\Sodium\\crypto_box_seed_keypair', $seed); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::box_seed_keypair($seed); - } - return ParagonIE_Sodium_Crypto::box_seed_keypair($seed); - } - - /** - * Calculates a BLAKE2b hash, with an optional key. - * - * @param string $message The message to be hashed - * @param string|null $key If specified, must be a string between 16 - * and 64 bytes long - * @param int $length Output length in bytes; must be between 16 - * and 64 (default = 32) - * @return string Raw binary - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_generichash($message, $key = '', $length = self::CRYPTO_GENERICHASH_BYTES) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($message, 'string', 1); - if (is_null($key)) { - $key = ''; - } - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($length, 'int', 3); - - /* Input validation: */ - if (!empty($key)) { - if (ParagonIE_Sodium_Core_Util::strlen($key) < self::CRYPTO_GENERICHASH_KEYBYTES_MIN) { - throw new SodiumException('Unsupported key size. Must be at least CRYPTO_GENERICHASH_KEYBYTES_MIN bytes long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) > self::CRYPTO_GENERICHASH_KEYBYTES_MAX) { - throw new SodiumException('Unsupported key size. Must be at most CRYPTO_GENERICHASH_KEYBYTES_MAX bytes long.'); - } - } - - if (self::useNewSodiumAPI()) { - return (string) sodium_crypto_generichash($message, $key, $length); - } - if (self::use_fallback('crypto_generichash')) { - return (string) call_user_func('\\Sodium\\crypto_generichash', $message, $key, $length); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::generichash($message, $key, $length); - } - return ParagonIE_Sodium_Crypto::generichash($message, $key, $length); - } - - /** - * Get the final BLAKE2b hash output for a given context. - * - * @param string $ctx BLAKE2 hashing context. Generated by crypto_generichash_init(). - * @param int $length Hash output size. - * @return string Final BLAKE2b hash. - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress ReferenceConstraintViolation - * @psalm-suppress ConflictingReferenceConstraint - */ - public static function crypto_generichash_final(&$ctx, $length = self::CRYPTO_GENERICHASH_BYTES) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($ctx, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($length, 'int', 2); - - if (self::useNewSodiumAPI()) { - return sodium_crypto_generichash_final($ctx, $length); - } - if (self::use_fallback('crypto_generichash_final')) { - $func = '\\Sodium\\crypto_generichash_final'; - return (string) $func($ctx, $length); - } - if ($length < 1) { - try { - self::memzero($ctx); - } catch (SodiumException $ex) { - unset($ctx); - } - return ''; - } - if (PHP_INT_SIZE === 4) { - $result = ParagonIE_Sodium_Crypto32::generichash_final($ctx, $length); - } else { - $result = ParagonIE_Sodium_Crypto::generichash_final($ctx, $length); - } - try { - self::memzero($ctx); - } catch (SodiumException $ex) { - unset($ctx); - } - return $result; - } - - /** - * Initialize a BLAKE2b hashing context, for use in a streaming interface. - * - * @param string|null $key If specified must be a string between 16 and 64 bytes - * @param int $length The size of the desired hash output - * @return string A BLAKE2 hashing context, encoded as a string - * (To be 100% compatible with ext/libsodium) - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_generichash_init($key = '', $length = self::CRYPTO_GENERICHASH_BYTES) - { - /* Type checks: */ - if (is_null($key)) { - $key = ''; - } - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($length, 'int', 2); - - /* Input validation: */ - if (!empty($key)) { - if (ParagonIE_Sodium_Core_Util::strlen($key) < self::CRYPTO_GENERICHASH_KEYBYTES_MIN) { - throw new SodiumException('Unsupported key size. Must be at least CRYPTO_GENERICHASH_KEYBYTES_MIN bytes long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) > self::CRYPTO_GENERICHASH_KEYBYTES_MAX) { - throw new SodiumException('Unsupported key size. Must be at most CRYPTO_GENERICHASH_KEYBYTES_MAX bytes long.'); - } - } - - if (self::useNewSodiumAPI()) { - return sodium_crypto_generichash_init($key, $length); - } - if (self::use_fallback('crypto_generichash_init')) { - return (string) call_user_func('\\Sodium\\crypto_generichash_init', $key, $length); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::generichash_init($key, $length); - } - return ParagonIE_Sodium_Crypto::generichash_init($key, $length); - } - - /** - * Initialize a BLAKE2b hashing context, for use in a streaming interface. - * - * @param string|null $key If specified must be a string between 16 and 64 bytes - * @param int $length The size of the desired hash output - * @param string $salt Salt (up to 16 bytes) - * @param string $personal Personalization string (up to 16 bytes) - * @return string A BLAKE2 hashing context, encoded as a string - * (To be 100% compatible with ext/libsodium) - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_generichash_init_salt_personal( - $key = '', - $length = self::CRYPTO_GENERICHASH_BYTES, - $salt = '', - $personal = '' - ) { - /* Type checks: */ - if (is_null($key)) { - $key = ''; - } - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($length, 'int', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($salt, 'string', 3); - ParagonIE_Sodium_Core_Util::declareScalarType($personal, 'string', 4); - $salt = str_pad($salt, 16, "\0", STR_PAD_RIGHT); - $personal = str_pad($personal, 16, "\0", STR_PAD_RIGHT); - - /* Input validation: */ - if (!empty($key)) { - /* - if (ParagonIE_Sodium_Core_Util::strlen($key) < self::CRYPTO_GENERICHASH_KEYBYTES_MIN) { - throw new SodiumException('Unsupported key size. Must be at least CRYPTO_GENERICHASH_KEYBYTES_MIN bytes long.'); - } - */ - if (ParagonIE_Sodium_Core_Util::strlen($key) > self::CRYPTO_GENERICHASH_KEYBYTES_MAX) { - throw new SodiumException('Unsupported key size. Must be at most CRYPTO_GENERICHASH_KEYBYTES_MAX bytes long.'); - } - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::generichash_init_salt_personal($key, $length, $salt, $personal); - } - return ParagonIE_Sodium_Crypto::generichash_init_salt_personal($key, $length, $salt, $personal); - } - - /** - * Update a BLAKE2b hashing context with additional data. - * - * @param string $ctx BLAKE2 hashing context. Generated by crypto_generichash_init(). - * $ctx is passed by reference and gets updated in-place. - * @param-out string $ctx - * @param string $message The message to append to the existing hash state. - * @return void - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress ReferenceConstraintViolation - */ - public static function crypto_generichash_update(&$ctx, $message) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($ctx, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($message, 'string', 2); - - if (self::useNewSodiumAPI()) { - sodium_crypto_generichash_update($ctx, $message); - return; - } - if (self::use_fallback('crypto_generichash_update')) { - $func = '\\Sodium\\crypto_generichash_update'; - $func($ctx, $message); - return; - } - if (PHP_INT_SIZE === 4) { - $ctx = ParagonIE_Sodium_Crypto32::generichash_update($ctx, $message); - } else { - $ctx = ParagonIE_Sodium_Crypto::generichash_update($ctx, $message); - } - } - - /** - * @return string - * @throws Exception - * @throws Error - */ - public static function crypto_generichash_keygen() - { - return random_bytes(self::CRYPTO_GENERICHASH_KEYBYTES); - } - - /** - * @param int $subkey_len - * @param int $subkey_id - * @param string $context - * @param string $key - * @return string - * @throws SodiumException - */ - public static function crypto_kdf_derive_from_key( - $subkey_len, - $subkey_id, - $context, - $key - ) { - ParagonIE_Sodium_Core_Util::declareScalarType($subkey_len, 'int', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($subkey_id, 'int', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($context, 'string', 3); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 4); - $subkey_id = (int) $subkey_id; - $subkey_len = (int) $subkey_len; - $context = (string) $context; - $key = (string) $key; - - if ($subkey_len < self::CRYPTO_KDF_BYTES_MIN) { - throw new SodiumException('subkey cannot be smaller than SODIUM_CRYPTO_KDF_BYTES_MIN'); - } - if ($subkey_len > self::CRYPTO_KDF_BYTES_MAX) { - throw new SodiumException('subkey cannot be larger than SODIUM_CRYPTO_KDF_BYTES_MAX'); - } - if ($subkey_id < 0) { - throw new SodiumException('subkey_id cannot be negative'); - } - if (ParagonIE_Sodium_Core_Util::strlen($context) !== self::CRYPTO_KDF_CONTEXTBYTES) { - throw new SodiumException('context should be SODIUM_CRYPTO_KDF_CONTEXTBYTES bytes'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_KDF_KEYBYTES) { - throw new SodiumException('key should be SODIUM_CRYPTO_KDF_KEYBYTES bytes'); - } - - $salt = ParagonIE_Sodium_Core_Util::store64_le($subkey_id); - $state = self::crypto_generichash_init_salt_personal( - $key, - $subkey_len, - $salt, - $context - ); - return self::crypto_generichash_final($state, $subkey_len); - } - - /** - * @return string - * @throws Exception - * @throws Error - */ - public static function crypto_kdf_keygen() - { - return random_bytes(self::CRYPTO_KDF_KEYBYTES); - } - - /** - * Perform a key exchange, between a designated client and a server. - * - * Typically, you would designate one machine to be the client and the - * other to be the server. The first two keys are what you'd expect for - * scalarmult() below, but the latter two public keys don't swap places. - * - * | ALICE | BOB | - * | Client | Server | - * |--------------------------------|-------------------------------------| - * | shared = crypto_kx( | shared = crypto_kx( | - * | alice_sk, | bob_sk, | <- contextual - * | bob_pk, | alice_pk, | <- contextual - * | alice_pk, | alice_pk, | <----- static - * | bob_pk | bob_pk | <----- static - * | ) | ) | - * - * They are used along with the scalarmult product to generate a 256-bit - * BLAKE2b hash unique to the client and server keys. - * - * @param string $my_secret - * @param string $their_public - * @param string $client_public - * @param string $server_public - * @return string - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_kx($my_secret, $their_public, $client_public, $server_public) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($my_secret, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($their_public, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($client_public, 'string', 3); - ParagonIE_Sodium_Core_Util::declareScalarType($server_public, 'string', 4); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($my_secret) !== self::CRYPTO_BOX_SECRETKEYBYTES) { - throw new SodiumException('Argument 1 must be CRYPTO_BOX_SECRETKEYBYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($their_public) !== self::CRYPTO_BOX_PUBLICKEYBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_BOX_PUBLICKEYBYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($client_public) !== self::CRYPTO_BOX_PUBLICKEYBYTES) { - throw new SodiumException('Argument 3 must be CRYPTO_BOX_PUBLICKEYBYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($server_public) !== self::CRYPTO_BOX_PUBLICKEYBYTES) { - throw new SodiumException('Argument 4 must be CRYPTO_BOX_PUBLICKEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - if (is_callable('sodium_crypto_kx')) { - return (string) sodium_crypto_kx( - $my_secret, - $their_public, - $client_public, - $server_public - ); - } - } - if (self::use_fallback('crypto_kx')) { - return (string) call_user_func( - '\\Sodium\\crypto_kx', - $my_secret, - $their_public, - $client_public, - $server_public - ); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::keyExchange( - $my_secret, - $their_public, - $client_public, - $server_public - ); - } - return ParagonIE_Sodium_Crypto::keyExchange( - $my_secret, - $their_public, - $client_public, - $server_public - ); - } - - /** - * @param string $seed - * @return string - * @throws SodiumException - */ - public static function crypto_kx_seed_keypair($seed) - { - ParagonIE_Sodium_Core_Util::declareScalarType($seed, 'string', 1); - - $seed = (string) $seed; - - if (ParagonIE_Sodium_Core_Util::strlen($seed) !== self::CRYPTO_KX_SEEDBYTES) { - throw new SodiumException('seed must be SODIUM_CRYPTO_KX_SEEDBYTES bytes'); - } - - $sk = self::crypto_generichash($seed, '', self::CRYPTO_KX_SECRETKEYBYTES); - $pk = self::crypto_scalarmult_base($sk); - return $sk . $pk; - } - - /** - * @return string - * @throws Exception - */ - public static function crypto_kx_keypair() - { - $sk = self::randombytes_buf(self::CRYPTO_KX_SECRETKEYBYTES); - $pk = self::crypto_scalarmult_base($sk); - return $sk . $pk; - } - - /** - * @param string $keypair - * @param string $serverPublicKey - * @return array{0: string, 1: string} - * @throws SodiumException - */ - public static function crypto_kx_client_session_keys($keypair, $serverPublicKey) - { - ParagonIE_Sodium_Core_Util::declareScalarType($keypair, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($serverPublicKey, 'string', 2); - - $keypair = (string) $keypair; - $serverPublicKey = (string) $serverPublicKey; - - if (ParagonIE_Sodium_Core_Util::strlen($keypair) !== self::CRYPTO_KX_KEYPAIRBYTES) { - throw new SodiumException('keypair should be SODIUM_CRYPTO_KX_KEYPAIRBYTES bytes'); - } - if (ParagonIE_Sodium_Core_Util::strlen($serverPublicKey) !== self::CRYPTO_KX_PUBLICKEYBYTES) { - throw new SodiumException('public keys must be SODIUM_CRYPTO_KX_PUBLICKEYBYTES bytes'); - } - - $sk = self::crypto_kx_secretkey($keypair); - $pk = self::crypto_kx_publickey($keypair); - $h = self::crypto_generichash_init(null, self::CRYPTO_KX_SESSIONKEYBYTES * 2); - self::crypto_generichash_update($h, self::crypto_scalarmult($sk, $serverPublicKey)); - self::crypto_generichash_update($h, $pk); - self::crypto_generichash_update($h, $serverPublicKey); - $sessionKeys = self::crypto_generichash_final($h, self::CRYPTO_KX_SESSIONKEYBYTES * 2); - return array( - ParagonIE_Sodium_Core_Util::substr( - $sessionKeys, - 0, - self::CRYPTO_KX_SESSIONKEYBYTES - ), - ParagonIE_Sodium_Core_Util::substr( - $sessionKeys, - self::CRYPTO_KX_SESSIONKEYBYTES, - self::CRYPTO_KX_SESSIONKEYBYTES - ) - ); - } - - /** - * @param string $keypair - * @param string $clientPublicKey - * @return array{0: string, 1: string} - * @throws SodiumException - */ - public static function crypto_kx_server_session_keys($keypair, $clientPublicKey) - { - ParagonIE_Sodium_Core_Util::declareScalarType($keypair, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($clientPublicKey, 'string', 2); - - $keypair = (string) $keypair; - $clientPublicKey = (string) $clientPublicKey; - - if (ParagonIE_Sodium_Core_Util::strlen($keypair) !== self::CRYPTO_KX_KEYPAIRBYTES) { - throw new SodiumException('keypair should be SODIUM_CRYPTO_KX_KEYPAIRBYTES bytes'); - } - if (ParagonIE_Sodium_Core_Util::strlen($clientPublicKey) !== self::CRYPTO_KX_PUBLICKEYBYTES) { - throw new SodiumException('public keys must be SODIUM_CRYPTO_KX_PUBLICKEYBYTES bytes'); - } - - $sk = self::crypto_kx_secretkey($keypair); - $pk = self::crypto_kx_publickey($keypair); - $h = self::crypto_generichash_init(null, self::CRYPTO_KX_SESSIONKEYBYTES * 2); - self::crypto_generichash_update($h, self::crypto_scalarmult($sk, $clientPublicKey)); - self::crypto_generichash_update($h, $clientPublicKey); - self::crypto_generichash_update($h, $pk); - $sessionKeys = self::crypto_generichash_final($h, self::CRYPTO_KX_SESSIONKEYBYTES * 2); - return array( - ParagonIE_Sodium_Core_Util::substr( - $sessionKeys, - self::CRYPTO_KX_SESSIONKEYBYTES, - self::CRYPTO_KX_SESSIONKEYBYTES - ), - ParagonIE_Sodium_Core_Util::substr( - $sessionKeys, - 0, - self::CRYPTO_KX_SESSIONKEYBYTES - ) - ); - } - - /** - * @param string $kp - * @return string - * @throws SodiumException - */ - public static function crypto_kx_secretkey($kp) - { - return ParagonIE_Sodium_Core_Util::substr( - $kp, - 0, - self::CRYPTO_KX_SECRETKEYBYTES - ); - } - - /** - * @param string $kp - * @return string - * @throws SodiumException - */ - public static function crypto_kx_publickey($kp) - { - return ParagonIE_Sodium_Core_Util::substr( - $kp, - self::CRYPTO_KX_SECRETKEYBYTES, - self::CRYPTO_KX_PUBLICKEYBYTES - ); - } - - /** - * @param int $outlen - * @param string $passwd - * @param string $salt - * @param int $opslimit - * @param int $memlimit - * @param int|null $alg - * @return string - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_pwhash($outlen, $passwd, $salt, $opslimit, $memlimit, $alg = null) - { - ParagonIE_Sodium_Core_Util::declareScalarType($outlen, 'int', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($passwd, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($salt, 'string', 3); - ParagonIE_Sodium_Core_Util::declareScalarType($opslimit, 'int', 4); - ParagonIE_Sodium_Core_Util::declareScalarType($memlimit, 'int', 5); - - if (self::useNewSodiumAPI()) { - if (!is_null($alg)) { - ParagonIE_Sodium_Core_Util::declareScalarType($alg, 'int', 6); - return sodium_crypto_pwhash($outlen, $passwd, $salt, $opslimit, $memlimit, $alg); - } - return sodium_crypto_pwhash($outlen, $passwd, $salt, $opslimit, $memlimit); - } - if (self::use_fallback('crypto_pwhash')) { - return (string) call_user_func('\\Sodium\\crypto_pwhash', $outlen, $passwd, $salt, $opslimit, $memlimit); - } - // This is the best we can do. - throw new SodiumException( - 'This is not implemented, as it is not possible to implement Argon2i with acceptable performance in pure-PHP' - ); - } - - /** - * !Exclusive to sodium_compat! - * - * This returns TRUE if the native crypto_pwhash API is available by libsodium. - * This returns FALSE if only sodium_compat is available. - * - * @return bool - */ - public static function crypto_pwhash_is_available() - { - if (self::useNewSodiumAPI()) { - return true; - } - if (self::use_fallback('crypto_pwhash')) { - return true; - } - return false; - } - - /** - * @param string $passwd - * @param int $opslimit - * @param int $memlimit - * @return string - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_pwhash_str($passwd, $opslimit, $memlimit) - { - ParagonIE_Sodium_Core_Util::declareScalarType($passwd, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($opslimit, 'int', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($memlimit, 'int', 3); - - if (self::useNewSodiumAPI()) { - return sodium_crypto_pwhash_str($passwd, $opslimit, $memlimit); - } - if (self::use_fallback('crypto_pwhash_str')) { - return (string) call_user_func('\\Sodium\\crypto_pwhash_str', $passwd, $opslimit, $memlimit); - } - // This is the best we can do. - throw new SodiumException( - 'This is not implemented, as it is not possible to implement Argon2i with acceptable performance in pure-PHP' - ); - } - - /** - * Do we need to rehash this password? - * - * @param string $hash - * @param int $opslimit - * @param int $memlimit - * @return bool - * @throws SodiumException - */ - public static function crypto_pwhash_str_needs_rehash($hash, $opslimit, $memlimit) - { - ParagonIE_Sodium_Core_Util::declareScalarType($hash, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($opslimit, 'int', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($memlimit, 'int', 3); - - // Just grab the first 4 pieces. - $pieces = explode('$', (string) $hash); - $prefix = implode('$', array_slice($pieces, 0, 4)); - - // Rebuild the expected header. - /** @var int $ops */ - $ops = (int) $opslimit; - /** @var int $mem */ - $mem = (int) $memlimit >> 10; - $encoded = self::CRYPTO_PWHASH_STRPREFIX . 'v=19$m=' . $mem . ',t=' . $ops . ',p=1'; - - // Do they match? If so, we don't need to rehash, so return false. - return !ParagonIE_Sodium_Core_Util::hashEquals($encoded, $prefix); - } - - /** - * @param string $passwd - * @param string $hash - * @return bool - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_pwhash_str_verify($passwd, $hash) - { - ParagonIE_Sodium_Core_Util::declareScalarType($passwd, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($hash, 'string', 2); - - if (self::useNewSodiumAPI()) { - return (bool) sodium_crypto_pwhash_str_verify($passwd, $hash); - } - if (self::use_fallback('crypto_pwhash_str_verify')) { - return (bool) call_user_func('\\Sodium\\crypto_pwhash_str_verify', $passwd, $hash); - } - // This is the best we can do. - throw new SodiumException( - 'This is not implemented, as it is not possible to implement Argon2i with acceptable performance in pure-PHP' - ); - } - - /** - * @param int $outlen - * @param string $passwd - * @param string $salt - * @param int $opslimit - * @param int $memlimit - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function crypto_pwhash_scryptsalsa208sha256($outlen, $passwd, $salt, $opslimit, $memlimit) - { - ParagonIE_Sodium_Core_Util::declareScalarType($outlen, 'int', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($passwd, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($salt, 'string', 3); - ParagonIE_Sodium_Core_Util::declareScalarType($opslimit, 'int', 4); - ParagonIE_Sodium_Core_Util::declareScalarType($memlimit, 'int', 5); - - if (self::useNewSodiumAPI()) { - return (string) sodium_crypto_pwhash_scryptsalsa208sha256( - (int) $outlen, - (string) $passwd, - (string) $salt, - (int) $opslimit, - (int) $memlimit - ); - } - if (self::use_fallback('crypto_pwhash_scryptsalsa208sha256')) { - return (string) call_user_func( - '\\Sodium\\crypto_pwhash_scryptsalsa208sha256', - (int) $outlen, - (string) $passwd, - (string) $salt, - (int) $opslimit, - (int) $memlimit - ); - } - // This is the best we can do. - throw new SodiumException( - 'This is not implemented, as it is not possible to implement Scrypt with acceptable performance in pure-PHP' - ); - } - - /** - * !Exclusive to sodium_compat! - * - * This returns TRUE if the native crypto_pwhash API is available by libsodium. - * This returns FALSE if only sodium_compat is available. - * - * @return bool - */ - public static function crypto_pwhash_scryptsalsa208sha256_is_available() - { - if (self::useNewSodiumAPI()) { - return true; - } - if (self::use_fallback('crypto_pwhash_scryptsalsa208sha256')) { - return true; - } - return false; - } - - /** - * @param string $passwd - * @param int $opslimit - * @param int $memlimit - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function crypto_pwhash_scryptsalsa208sha256_str($passwd, $opslimit, $memlimit) - { - ParagonIE_Sodium_Core_Util::declareScalarType($passwd, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($opslimit, 'int', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($memlimit, 'int', 3); - - if (self::useNewSodiumAPI()) { - return (string) sodium_crypto_pwhash_scryptsalsa208sha256_str( - (string) $passwd, - (int) $opslimit, - (int) $memlimit - ); - } - if (self::use_fallback('crypto_pwhash_scryptsalsa208sha256_str')) { - return (string) call_user_func( - '\\Sodium\\crypto_pwhash_scryptsalsa208sha256_str', - (string) $passwd, - (int) $opslimit, - (int) $memlimit - ); - } - // This is the best we can do. - throw new SodiumException( - 'This is not implemented, as it is not possible to implement Scrypt with acceptable performance in pure-PHP' - ); - } - - /** - * @param string $passwd - * @param string $hash - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function crypto_pwhash_scryptsalsa208sha256_str_verify($passwd, $hash) - { - ParagonIE_Sodium_Core_Util::declareScalarType($passwd, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($hash, 'string', 2); - - if (self::useNewSodiumAPI()) { - return (bool) sodium_crypto_pwhash_scryptsalsa208sha256_str_verify( - (string) $passwd, - (string) $hash - ); - } - if (self::use_fallback('crypto_pwhash_scryptsalsa208sha256_str_verify')) { - return (bool) call_user_func( - '\\Sodium\\crypto_pwhash_scryptsalsa208sha256_str_verify', - (string) $passwd, - (string) $hash - ); - } - // This is the best we can do. - throw new SodiumException( - 'This is not implemented, as it is not possible to implement Scrypt with acceptable performance in pure-PHP' - ); - } - - /** - * Calculate the shared secret between your secret key and your - * recipient's public key. - * - * Algorithm: X25519 (ECDH over Curve25519) - * - * @param string $secretKey - * @param string $publicKey - * @return string - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_scalarmult($secretKey, $publicKey) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($secretKey, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($publicKey, 'string', 2); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($secretKey) !== self::CRYPTO_BOX_SECRETKEYBYTES) { - throw new SodiumException('Argument 1 must be CRYPTO_BOX_SECRETKEYBYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($publicKey) !== self::CRYPTO_BOX_PUBLICKEYBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_BOX_PUBLICKEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return sodium_crypto_scalarmult($secretKey, $publicKey); - } - if (self::use_fallback('crypto_scalarmult')) { - return (string) call_user_func('\\Sodium\\crypto_scalarmult', $secretKey, $publicKey); - } - - /* Output validation: Forbid all-zero keys */ - if (ParagonIE_Sodium_Core_Util::hashEquals($secretKey, str_repeat("\0", self::CRYPTO_BOX_SECRETKEYBYTES))) { - throw new SodiumException('Zero secret key is not allowed'); - } - if (ParagonIE_Sodium_Core_Util::hashEquals($publicKey, str_repeat("\0", self::CRYPTO_BOX_PUBLICKEYBYTES))) { - throw new SodiumException('Zero public key is not allowed'); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::scalarmult($secretKey, $publicKey); - } - return ParagonIE_Sodium_Crypto::scalarmult($secretKey, $publicKey); - } - - /** - * Calculate an X25519 public key from an X25519 secret key. - * - * @param string $secretKey - * @return string - * @throws SodiumException - * @throws TypeError - * @psalm-suppress TooFewArguments - * @psalm-suppress MixedArgument - */ - public static function crypto_scalarmult_base($secretKey) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($secretKey, 'string', 1); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($secretKey) !== self::CRYPTO_BOX_SECRETKEYBYTES) { - throw new SodiumException('Argument 1 must be CRYPTO_BOX_SECRETKEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return sodium_crypto_scalarmult_base($secretKey); - } - if (self::use_fallback('crypto_scalarmult_base')) { - return (string) call_user_func('\\Sodium\\crypto_scalarmult_base', $secretKey); - } - if (ParagonIE_Sodium_Core_Util::hashEquals($secretKey, str_repeat("\0", self::CRYPTO_BOX_SECRETKEYBYTES))) { - throw new SodiumException('Zero secret key is not allowed'); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::scalarmult_base($secretKey); - } - return ParagonIE_Sodium_Crypto::scalarmult_base($secretKey); - } - - /** - * Authenticated symmetric-key encryption. - * - * Algorithm: XSalsa20-Poly1305 - * - * @param string $plaintext The message you're encrypting - * @param string $nonce A Number to be used Once; must be 24 bytes - * @param string $key Symmetric encryption key - * @return string Ciphertext with Poly1305 MAC - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_secretbox($plaintext, $nonce, $key) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($plaintext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 3); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_SECRETBOX_NONCEBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_SECRETBOX_NONCEBYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_SECRETBOX_KEYBYTES) { - throw new SodiumException('Argument 3 must be CRYPTO_SECRETBOX_KEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return sodium_crypto_secretbox($plaintext, $nonce, $key); - } - if (self::use_fallback('crypto_secretbox')) { - return (string) call_user_func('\\Sodium\\crypto_secretbox', $plaintext, $nonce, $key); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::secretbox($plaintext, $nonce, $key); - } - return ParagonIE_Sodium_Crypto::secretbox($plaintext, $nonce, $key); - } - - /** - * Decrypts a message previously encrypted with crypto_secretbox(). - * - * @param string $ciphertext Ciphertext with Poly1305 MAC - * @param string $nonce A Number to be used Once; must be 24 bytes - * @param string $key Symmetric encryption key - * @return string Original plaintext message - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedInferredReturnType - * @psalm-suppress MixedReturnStatement - */ - public static function crypto_secretbox_open($ciphertext, $nonce, $key) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($ciphertext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 3); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_SECRETBOX_NONCEBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_SECRETBOX_NONCEBYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_SECRETBOX_KEYBYTES) { - throw new SodiumException('Argument 3 must be CRYPTO_SECRETBOX_KEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - /** - * @psalm-suppress InvalidReturnStatement - * @psalm-suppress FalsableReturnStatement - */ - return sodium_crypto_secretbox_open($ciphertext, $nonce, $key); - } - if (self::use_fallback('crypto_secretbox_open')) { - return call_user_func('\\Sodium\\crypto_secretbox_open', $ciphertext, $nonce, $key); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::secretbox_open($ciphertext, $nonce, $key); - } - return ParagonIE_Sodium_Crypto::secretbox_open($ciphertext, $nonce, $key); - } - - /** - * Return a secure random key for use with crypto_secretbox - * - * @return string - * @throws Exception - * @throws Error - */ - public static function crypto_secretbox_keygen() - { - return random_bytes(self::CRYPTO_SECRETBOX_KEYBYTES); - } - - /** - * Authenticated symmetric-key encryption. - * - * Algorithm: XChaCha20-Poly1305 - * - * @param string $plaintext The message you're encrypting - * @param string $nonce A Number to be used Once; must be 24 bytes - * @param string $key Symmetric encryption key - * @return string Ciphertext with Poly1305 MAC - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_secretbox_xchacha20poly1305($plaintext, $nonce, $key) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($plaintext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 3); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_SECRETBOX_NONCEBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_SECRETBOX_NONCEBYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_SECRETBOX_KEYBYTES) { - throw new SodiumException('Argument 3 must be CRYPTO_SECRETBOX_KEYBYTES long.'); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::secretbox_xchacha20poly1305($plaintext, $nonce, $key); - } - return ParagonIE_Sodium_Crypto::secretbox_xchacha20poly1305($plaintext, $nonce, $key); - } - /** - * Decrypts a message previously encrypted with crypto_secretbox_xchacha20poly1305(). - * - * @param string $ciphertext Ciphertext with Poly1305 MAC - * @param string $nonce A Number to be used Once; must be 24 bytes - * @param string $key Symmetric encryption key - * @return string Original plaintext message - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_secretbox_xchacha20poly1305_open($ciphertext, $nonce, $key) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($ciphertext, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 3); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_SECRETBOX_NONCEBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_SECRETBOX_NONCEBYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_SECRETBOX_KEYBYTES) { - throw new SodiumException('Argument 3 must be CRYPTO_SECRETBOX_KEYBYTES long.'); - } - - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::secretbox_xchacha20poly1305_open($ciphertext, $nonce, $key); - } - return ParagonIE_Sodium_Crypto::secretbox_xchacha20poly1305_open($ciphertext, $nonce, $key); - } - - /** - * @param string $key - * @return array Returns a state and a header. - * @throws Exception - * @throws SodiumException - */ - public static function crypto_secretstream_xchacha20poly1305_init_push($key) - { - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::secretstream_xchacha20poly1305_init_push($key); - } - return ParagonIE_Sodium_Crypto::secretstream_xchacha20poly1305_init_push($key); - } - - /** - * @param string $header - * @param string $key - * @return string Returns a state. - * @throws Exception - */ - public static function crypto_secretstream_xchacha20poly1305_init_pull($header, $key) - { - if (ParagonIE_Sodium_Core_Util::strlen($header) < self::CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_HEADERBYTES) { - throw new SodiumException( - 'header size should be SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_HEADERBYTES bytes' - ); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::secretstream_xchacha20poly1305_init_pull($key, $header); - } - return ParagonIE_Sodium_Crypto::secretstream_xchacha20poly1305_init_pull($key, $header); - } - - /** - * @param string $state - * @param string $msg - * @param string $aad - * @param int $tag - * @return string - * @throws SodiumException - */ - public static function crypto_secretstream_xchacha20poly1305_push(&$state, $msg, $aad = '', $tag = 0) - { - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::secretstream_xchacha20poly1305_push( - $state, - $msg, - $aad, - $tag - ); - } - return ParagonIE_Sodium_Crypto::secretstream_xchacha20poly1305_push( - $state, - $msg, - $aad, - $tag - ); - } - - /** - * @param string $state - * @param string $msg - * @param string $aad - * @return bool|array{0: string, 1: int} - * @throws SodiumException - */ - public static function crypto_secretstream_xchacha20poly1305_pull(&$state, $msg, $aad = '') - { - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::secretstream_xchacha20poly1305_pull( - $state, - $msg, - $aad - ); - } - return ParagonIE_Sodium_Crypto::secretstream_xchacha20poly1305_pull( - $state, - $msg, - $aad - ); - } - - /** - * @return string - * @throws Exception - */ - public static function crypto_secretstream_xchacha20poly1305_keygen() - { - return random_bytes(self::CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_KEYBYTES); - } - - /** - * @param string $state - * @return void - * @throws SodiumException - */ - public static function crypto_secretstream_xchacha20poly1305_rekey(&$state) - { - if (PHP_INT_SIZE === 4) { - ParagonIE_Sodium_Crypto32::secretstream_xchacha20poly1305_rekey($state); - } else { - ParagonIE_Sodium_Crypto::secretstream_xchacha20poly1305_rekey($state); - } - } - - /** - * Calculates a SipHash-2-4 hash of a message for a given key. - * - * @param string $message Input message - * @param string $key SipHash-2-4 key - * @return string Hash - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedInferredReturnType - * @psalm-suppress MixedReturnStatement - */ - public static function crypto_shorthash($message, $key) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($message, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 2); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_SHORTHASH_KEYBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_SHORTHASH_KEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return sodium_crypto_shorthash($message, $key); - } - if (self::use_fallback('crypto_shorthash')) { - return (string) call_user_func('\\Sodium\\crypto_shorthash', $message, $key); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Core32_SipHash::sipHash24($message, $key); - } - return ParagonIE_Sodium_Core_SipHash::sipHash24($message, $key); - } - - /** - * Return a secure random key for use with crypto_shorthash - * - * @return string - * @throws Exception - * @throws Error - */ - public static function crypto_shorthash_keygen() - { - return random_bytes(self::CRYPTO_SHORTHASH_KEYBYTES); - } - - /** - * Returns a signed message. You probably want crypto_sign_detached() - * instead, which only returns the signature. - * - * Algorithm: Ed25519 (EdDSA over Curve25519) - * - * @param string $message Message to be signed. - * @param string $secretKey Secret signing key. - * @return string Signed message (signature is prefixed). - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedInferredReturnType - * @psalm-suppress MixedReturnStatement - */ - public static function crypto_sign($message, $secretKey) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($message, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($secretKey, 'string', 2); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($secretKey) !== self::CRYPTO_SIGN_SECRETKEYBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_SIGN_SECRETKEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return sodium_crypto_sign($message, $secretKey); - } - if (self::use_fallback('crypto_sign')) { - return (string) call_user_func('\\Sodium\\crypto_sign', $message, $secretKey); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::sign($message, $secretKey); - } - return ParagonIE_Sodium_Crypto::sign($message, $secretKey); - } - - /** - * Validates a signed message then returns the message. - * - * @param string $signedMessage A signed message - * @param string $publicKey A public key - * @return string The original message (if the signature is - * valid for this public key) - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedInferredReturnType - * @psalm-suppress MixedReturnStatement - */ - public static function crypto_sign_open($signedMessage, $publicKey) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($signedMessage, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($publicKey, 'string', 2); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($signedMessage) < self::CRYPTO_SIGN_BYTES) { - throw new SodiumException('Argument 1 must be at least CRYPTO_SIGN_BYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($publicKey) !== self::CRYPTO_SIGN_PUBLICKEYBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_SIGN_PUBLICKEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - /** - * @psalm-suppress InvalidReturnStatement - * @psalm-suppress FalsableReturnStatement - */ - return sodium_crypto_sign_open($signedMessage, $publicKey); - } - if (self::use_fallback('crypto_sign_open')) { - return call_user_func('\\Sodium\\crypto_sign_open', $signedMessage, $publicKey); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::sign_open($signedMessage, $publicKey); - } - return ParagonIE_Sodium_Crypto::sign_open($signedMessage, $publicKey); - } - - /** - * Generate a new random Ed25519 keypair. - * - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function crypto_sign_keypair() - { - if (self::useNewSodiumAPI()) { - return sodium_crypto_sign_keypair(); - } - if (self::use_fallback('crypto_sign_keypair')) { - return (string) call_user_func('\\Sodium\\crypto_sign_keypair'); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Core32_Ed25519::keypair(); - } - return ParagonIE_Sodium_Core_Ed25519::keypair(); - } - - /** - * @param string $sk - * @param string $pk - * @return string - * @throws SodiumException - */ - public static function crypto_sign_keypair_from_secretkey_and_publickey($sk, $pk) - { - ParagonIE_Sodium_Core_Util::declareScalarType($sk, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($pk, 'string', 1); - $sk = (string) $sk; - $pk = (string) $pk; - - if (ParagonIE_Sodium_Core_Util::strlen($sk) !== self::CRYPTO_SIGN_SECRETKEYBYTES) { - throw new SodiumException('secretkey should be SODIUM_CRYPTO_SIGN_SECRETKEYBYTES bytes'); - } - if (ParagonIE_Sodium_Core_Util::strlen($pk) !== self::CRYPTO_SIGN_PUBLICKEYBYTES) { - throw new SodiumException('publickey should be SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES bytes'); - } - - if (self::useNewSodiumAPI()) { - return sodium_crypto_sign_keypair_from_secretkey_and_publickey($sk, $pk); - } - return $sk . $pk; - } - - /** - * Generate an Ed25519 keypair from a seed. - * - * @param string $seed Input seed - * @return string Keypair - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_sign_seed_keypair($seed) - { - ParagonIE_Sodium_Core_Util::declareScalarType($seed, 'string', 1); - - if (self::useNewSodiumAPI()) { - return sodium_crypto_sign_seed_keypair($seed); - } - if (self::use_fallback('crypto_sign_keypair')) { - return (string) call_user_func('\\Sodium\\crypto_sign_seed_keypair', $seed); - } - $publicKey = ''; - $secretKey = ''; - if (PHP_INT_SIZE === 4) { - ParagonIE_Sodium_Core32_Ed25519::seed_keypair($publicKey, $secretKey, $seed); - } else { - ParagonIE_Sodium_Core_Ed25519::seed_keypair($publicKey, $secretKey, $seed); - } - return $secretKey . $publicKey; - } - - /** - * Extract an Ed25519 public key from an Ed25519 keypair. - * - * @param string $keypair Keypair - * @return string Public key - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_sign_publickey($keypair) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($keypair, 'string', 1); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($keypair) !== self::CRYPTO_SIGN_KEYPAIRBYTES) { - throw new SodiumException('Argument 1 must be CRYPTO_SIGN_KEYPAIRBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return sodium_crypto_sign_publickey($keypair); - } - if (self::use_fallback('crypto_sign_publickey')) { - return (string) call_user_func('\\Sodium\\crypto_sign_publickey', $keypair); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Core32_Ed25519::publickey($keypair); - } - return ParagonIE_Sodium_Core_Ed25519::publickey($keypair); - } - - /** - * Calculate an Ed25519 public key from an Ed25519 secret key. - * - * @param string $secretKey Your Ed25519 secret key - * @return string The corresponding Ed25519 public key - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_sign_publickey_from_secretkey($secretKey) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($secretKey, 'string', 1); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($secretKey) !== self::CRYPTO_SIGN_SECRETKEYBYTES) { - throw new SodiumException('Argument 1 must be CRYPTO_SIGN_SECRETKEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return sodium_crypto_sign_publickey_from_secretkey($secretKey); - } - if (self::use_fallback('crypto_sign_publickey_from_secretkey')) { - return (string) call_user_func('\\Sodium\\crypto_sign_publickey_from_secretkey', $secretKey); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Core32_Ed25519::publickey_from_secretkey($secretKey); - } - return ParagonIE_Sodium_Core_Ed25519::publickey_from_secretkey($secretKey); - } - - /** - * Extract an Ed25519 secret key from an Ed25519 keypair. - * - * @param string $keypair Keypair - * @return string Secret key - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_sign_secretkey($keypair) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($keypair, 'string', 1); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($keypair) !== self::CRYPTO_SIGN_KEYPAIRBYTES) { - throw new SodiumException('Argument 1 must be CRYPTO_SIGN_KEYPAIRBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return sodium_crypto_sign_secretkey($keypair); - } - if (self::use_fallback('crypto_sign_secretkey')) { - return (string) call_user_func('\\Sodium\\crypto_sign_secretkey', $keypair); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Core32_Ed25519::secretkey($keypair); - } - return ParagonIE_Sodium_Core_Ed25519::secretkey($keypair); - } - - /** - * Calculate the Ed25519 signature of a message and return ONLY the signature. - * - * Algorithm: Ed25519 (EdDSA over Curve25519) - * - * @param string $message Message to be signed - * @param string $secretKey Secret signing key - * @return string Digital signature - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_sign_detached($message, $secretKey) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($message, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($secretKey, 'string', 2); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($secretKey) !== self::CRYPTO_SIGN_SECRETKEYBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_SIGN_SECRETKEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return sodium_crypto_sign_detached($message, $secretKey); - } - if (self::use_fallback('crypto_sign_detached')) { - return (string) call_user_func('\\Sodium\\crypto_sign_detached', $message, $secretKey); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::sign_detached($message, $secretKey); - } - return ParagonIE_Sodium_Crypto::sign_detached($message, $secretKey); - } - - /** - * Verify the Ed25519 signature of a message. - * - * @param string $signature Digital sginature - * @param string $message Message to be verified - * @param string $publicKey Public key - * @return bool TRUE if this signature is good for this public key; - * FALSE otherwise - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_sign_verify_detached($signature, $message, $publicKey) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($signature, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($message, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($publicKey, 'string', 3); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($signature) !== self::CRYPTO_SIGN_BYTES) { - throw new SodiumException('Argument 1 must be CRYPTO_SIGN_BYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($publicKey) !== self::CRYPTO_SIGN_PUBLICKEYBYTES) { - throw new SodiumException('Argument 3 must be CRYPTO_SIGN_PUBLICKEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return sodium_crypto_sign_verify_detached($signature, $message, $publicKey); - } - if (self::use_fallback('crypto_sign_verify_detached')) { - return (bool) call_user_func( - '\\Sodium\\crypto_sign_verify_detached', - $signature, - $message, - $publicKey - ); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Crypto32::sign_verify_detached($signature, $message, $publicKey); - } - return ParagonIE_Sodium_Crypto::sign_verify_detached($signature, $message, $publicKey); - } - - /** - * Convert an Ed25519 public key to a Curve25519 public key - * - * @param string $pk - * @return string - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_sign_ed25519_pk_to_curve25519($pk) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($pk, 'string', 1); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($pk) < self::CRYPTO_SIGN_PUBLICKEYBYTES) { - throw new SodiumException('Argument 1 must be at least CRYPTO_SIGN_PUBLICKEYBYTES long.'); - } - if (self::useNewSodiumAPI()) { - if (is_callable('crypto_sign_ed25519_pk_to_curve25519')) { - return (string) sodium_crypto_sign_ed25519_pk_to_curve25519($pk); - } - } - if (self::use_fallback('crypto_sign_ed25519_pk_to_curve25519')) { - return (string) call_user_func('\\Sodium\\crypto_sign_ed25519_pk_to_curve25519', $pk); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Core32_Ed25519::pk_to_curve25519($pk); - } - return ParagonIE_Sodium_Core_Ed25519::pk_to_curve25519($pk); - } - - /** - * Convert an Ed25519 secret key to a Curve25519 secret key - * - * @param string $sk - * @return string - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_sign_ed25519_sk_to_curve25519($sk) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($sk, 'string', 1); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($sk) < self::CRYPTO_SIGN_SEEDBYTES) { - throw new SodiumException('Argument 1 must be at least CRYPTO_SIGN_SEEDBYTES long.'); - } - if (self::useNewSodiumAPI()) { - if (is_callable('crypto_sign_ed25519_sk_to_curve25519')) { - return sodium_crypto_sign_ed25519_sk_to_curve25519($sk); - } - } - if (self::use_fallback('crypto_sign_ed25519_sk_to_curve25519')) { - return (string) call_user_func('\\Sodium\\crypto_sign_ed25519_sk_to_curve25519', $sk); - } - - $h = hash('sha512', ParagonIE_Sodium_Core_Util::substr($sk, 0, 32), true); - $h[0] = ParagonIE_Sodium_Core_Util::intToChr( - ParagonIE_Sodium_Core_Util::chrToInt($h[0]) & 248 - ); - $h[31] = ParagonIE_Sodium_Core_Util::intToChr( - (ParagonIE_Sodium_Core_Util::chrToInt($h[31]) & 127) | 64 - ); - return ParagonIE_Sodium_Core_Util::substr($h, 0, 32); - } - - /** - * Expand a key and nonce into a keystream of pseudorandom bytes. - * - * @param int $len Number of bytes desired - * @param string $nonce Number to be used Once; must be 24 bytes - * @param string $key XSalsa20 key - * @return string Pseudorandom stream that can be XORed with messages - * to provide encryption (but not authentication; see - * Poly1305 or crypto_auth() for that, which is not - * optional for security) - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_stream($len, $nonce, $key) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($len, 'int', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 3); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_STREAM_NONCEBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_SECRETBOX_NONCEBYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_STREAM_KEYBYTES) { - throw new SodiumException('Argument 3 must be CRYPTO_STREAM_KEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return sodium_crypto_stream($len, $nonce, $key); - } - if (self::use_fallback('crypto_stream')) { - return (string) call_user_func('\\Sodium\\crypto_stream', $len, $nonce, $key); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Core32_XSalsa20::xsalsa20($len, $nonce, $key); - } - return ParagonIE_Sodium_Core_XSalsa20::xsalsa20($len, $nonce, $key); - } - - /** - * DANGER! UNAUTHENTICATED ENCRYPTION! - * - * Unless you are following expert advice, do not used this feature. - * - * Algorithm: XSalsa20 - * - * This DOES NOT provide ciphertext integrity. - * - * @param string $message Plaintext message - * @param string $nonce Number to be used Once; must be 24 bytes - * @param string $key Encryption key - * @return string Encrypted text which is vulnerable to chosen- - * ciphertext attacks unless you implement some - * other mitigation to the ciphertext (i.e. - * Encrypt then MAC) - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function crypto_stream_xor($message, $nonce, $key) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($message, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 2); - ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 3); - - /* Input validation: */ - if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_STREAM_NONCEBYTES) { - throw new SodiumException('Argument 2 must be CRYPTO_SECRETBOX_NONCEBYTES long.'); - } - if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_STREAM_KEYBYTES) { - throw new SodiumException('Argument 3 must be CRYPTO_SECRETBOX_KEYBYTES long.'); - } - - if (self::useNewSodiumAPI()) { - return sodium_crypto_stream_xor($message, $nonce, $key); - } - if (self::use_fallback('crypto_stream_xor')) { - return (string) call_user_func('\\Sodium\\crypto_stream_xor', $message, $nonce, $key); - } - if (PHP_INT_SIZE === 4) { - return ParagonIE_Sodium_Core32_XSalsa20::xsalsa20_xor($message, $nonce, $key); - } - return ParagonIE_Sodium_Core_XSalsa20::xsalsa20_xor($message, $nonce, $key); - } - - /** - * Return a secure random key for use with crypto_stream - * - * @return string - * @throws Exception - * @throws Error - */ - public static function crypto_stream_keygen() - { - return random_bytes(self::CRYPTO_STREAM_KEYBYTES); - } - - /** - * Cache-timing-safe implementation of hex2bin(). - * - * @param string $string Hexadecimal string - * @return string Raw binary string - * @throws SodiumException - * @throws TypeError - * @psalm-suppress TooFewArguments - * @psalm-suppress MixedArgument - */ - public static function hex2bin($string) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($string, 'string', 1); - - if (self::useNewSodiumAPI()) { - if (is_callable('sodium_hex2bin')) { - return (string) sodium_hex2bin($string); - } - } - if (self::use_fallback('hex2bin')) { - return (string) call_user_func('\\Sodium\\hex2bin', $string); - } - return ParagonIE_Sodium_Core_Util::hex2bin($string); - } - - /** - * Increase a string (little endian) - * - * @param string $var - * - * @return void - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function increment(&$var) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($var, 'string', 1); - - if (self::useNewSodiumAPI()) { - sodium_increment($var); - return; - } - if (self::use_fallback('increment')) { - $func = '\\Sodium\\increment'; - $func($var); - return; - } - - $len = ParagonIE_Sodium_Core_Util::strlen($var); - $c = 1; - $copy = ''; - for ($i = 0; $i < $len; ++$i) { - $c += ParagonIE_Sodium_Core_Util::chrToInt( - ParagonIE_Sodium_Core_Util::substr($var, $i, 1) - ); - $copy .= ParagonIE_Sodium_Core_Util::intToChr($c); - $c >>= 8; - } - $var = $copy; - } - - /** - * The equivalent to the libsodium minor version we aim to be compatible - * with (sans pwhash and memzero). - * - * @return int - */ - public static function library_version_major() - { - if (self::useNewSodiumAPI() && defined('SODIUM_LIBRARY_MAJOR_VERSION')) { - return SODIUM_LIBRARY_MAJOR_VERSION; - } - if (self::use_fallback('library_version_major')) { - /** @psalm-suppress UndefinedFunction */ - return (int) call_user_func('\\Sodium\\library_version_major'); - } - return self::LIBRARY_VERSION_MAJOR; - } - - /** - * The equivalent to the libsodium minor version we aim to be compatible - * with (sans pwhash and memzero). - * - * @return int - */ - public static function library_version_minor() - { - if (self::useNewSodiumAPI() && defined('SODIUM_LIBRARY_MINOR_VERSION')) { - return SODIUM_LIBRARY_MINOR_VERSION; - } - if (self::use_fallback('library_version_minor')) { - /** @psalm-suppress UndefinedFunction */ - return (int) call_user_func('\\Sodium\\library_version_minor'); - } - return self::LIBRARY_VERSION_MINOR; - } - - /** - * Compare two strings. - * - * @param string $left - * @param string $right - * @return int - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - */ - public static function memcmp($left, $right) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($left, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($right, 'string', 2); - - if (self::useNewSodiumAPI()) { - return sodium_memcmp($left, $right); - } - if (self::use_fallback('memcmp')) { - return (int) call_user_func('\\Sodium\\memcmp', $left, $right); - } - /** @var string $left */ - /** @var string $right */ - return ParagonIE_Sodium_Core_Util::memcmp($left, $right); - } - - /** - * It's actually not possible to zero memory buffers in PHP. You need the - * native library for that. - * - * @param string|null $var - * @param-out string|null $var - * - * @return void - * @throws SodiumException (Unless libsodium is installed) - * @throws TypeError - * @psalm-suppress TooFewArguments - */ - public static function memzero(&$var) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($var, 'string', 1); - - if (self::useNewSodiumAPI()) { - /** @psalm-suppress MixedArgument */ - sodium_memzero($var); - return; - } - if (self::use_fallback('memzero')) { - $func = '\\Sodium\\memzero'; - $func($var); - if ($var === null) { - return; - } - } - // This is the best we can do. - throw new SodiumException( - 'This is not implemented in sodium_compat, as it is not possible to securely wipe memory from PHP. ' . - 'To fix this error, make sure libsodium is installed and the PHP extension is enabled.' - ); - } - - /** - * @param string $unpadded - * @param int $blockSize - * @param bool $dontFallback - * @return string - * @throws SodiumException - */ - public static function pad($unpadded, $blockSize, $dontFallback = false) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($unpadded, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($blockSize, 'int', 2); - - $unpadded = (string) $unpadded; - $blockSize = (int) $blockSize; - - if (self::useNewSodiumAPI() && !$dontFallback) { - return (string) sodium_pad($unpadded, $blockSize); - } - - if ($blockSize <= 0) { - throw new SodiumException( - 'block size cannot be less than 1' - ); - } - $unpadded_len = ParagonIE_Sodium_Core_Util::strlen($unpadded); - $xpadlen = ($blockSize - 1); - if (($blockSize & ($blockSize - 1)) === 0) { - $xpadlen -= $unpadded_len & ($blockSize - 1); - } else { - $xpadlen -= $unpadded_len % $blockSize; - } - - $xpadded_len = $unpadded_len + $xpadlen; - $padded = str_repeat("\0", $xpadded_len - 1); - if ($unpadded_len > 0) { - $st = 1; - $i = 0; - $k = $unpadded_len; - for ($j = 0; $j <= $xpadded_len; ++$j) { - $i = (int) $i; - $k = (int) $k; - $st = (int) $st; - if ($j >= $unpadded_len) { - $padded[$j] = "\0"; - } else { - $padded[$j] = $unpadded[$j]; - } - /** @var int $k */ - $k -= $st; - $st = (int) (~( - ( - ( - ($k >> 48) - | - ($k >> 32) - | - ($k >> 16) - | - $k - ) - 1 - ) >> 16 - ) - ) & 1; - $i += $st; - } - } - - $mask = 0; - $tail = $xpadded_len; - for ($i = 0; $i < $blockSize; ++$i) { - # barrier_mask = (unsigned char) - # (((i ^ xpadlen) - 1U) >> ((sizeof(size_t) - 1U) * CHAR_BIT)); - $barrier_mask = (($i ^ $xpadlen) -1) >> ((PHP_INT_SIZE << 3) - 1); - # tail[-i] = (tail[-i] & mask) | (0x80 & barrier_mask); - $padded[$tail - $i] = ParagonIE_Sodium_Core_Util::intToChr( - (ParagonIE_Sodium_Core_Util::chrToInt($padded[$tail - $i]) & $mask) - | - (0x80 & $barrier_mask) - ); - # mask |= barrier_mask; - $mask |= $barrier_mask; - } - return $padded; - } - - /** - * @param string $padded - * @param int $blockSize - * @param bool $dontFallback - * @return string - * @throws SodiumException - */ - public static function unpad($padded, $blockSize, $dontFallback = false) - { - /* Type checks: */ - ParagonIE_Sodium_Core_Util::declareScalarType($padded, 'string', 1); - ParagonIE_Sodium_Core_Util::declareScalarType($blockSize, 'int', 2); - - $padded = (string) $padded; - $blockSize = (int) $blockSize; - - if (self::useNewSodiumAPI() && !$dontFallback) { - return (string) sodium_unpad($padded, $blockSize); - } - if ($blockSize <= 0) { - throw new SodiumException('block size cannot be less than 1'); - } - $padded_len = ParagonIE_Sodium_Core_Util::strlen($padded); - if ($padded_len < $blockSize) { - throw new SodiumException('invalid padding'); - } - - # tail = &padded[padded_len - 1U]; - $tail = $padded_len - 1; - - $acc = 0; - $valid = 0; - $pad_len = 0; - - $found = 0; - for ($i = 0; $i < $blockSize; ++$i) { - # c = tail[-i]; - $c = ParagonIE_Sodium_Core_Util::chrToInt($padded[$tail - $i]); - - # is_barrier = - # (( (acc - 1U) & (pad_len - 1U) & ((c ^ 0x80) - 1U) ) >> 8) & 1U; - $is_barrier = ( - ( - ($acc - 1) & ($pad_len - 1) & (($c ^ 80) - 1) - ) >> 7 - ) & 1; - $is_barrier &= ~$found; - $found |= $is_barrier; - - # acc |= c; - $acc |= $c; - - # pad_len |= i & (1U + ~is_barrier); - $pad_len |= $i & (1 + ~$is_barrier); - - # valid |= (unsigned char) is_barrier; - $valid |= ($is_barrier & 0xff); - } - # unpadded_len = padded_len - 1U - pad_len; - $unpadded_len = $padded_len - 1 - $pad_len; - if ($valid !== 1) { - throw new SodiumException('invalid padding'); - } - return ParagonIE_Sodium_Core_Util::substr($padded, 0, $unpadded_len); - } - - /** - * Will sodium_compat run fast on the current hardware and PHP configuration? - * - * @return bool - */ - public static function polyfill_is_fast() - { - if (extension_loaded('sodium')) { - return true; - } - if (extension_loaded('libsodium')) { - return true; - } - return PHP_INT_SIZE === 8; - } - - /** - * Generate a string of bytes from the kernel's CSPRNG. - * Proudly uses /dev/urandom (if getrandom(2) is not available). - * - * @param int $numBytes - * @return string - * @throws Exception - * @throws TypeError - */ - public static function randombytes_buf($numBytes) - { - /* Type checks: */ - if (!is_int($numBytes)) { - if (is_numeric($numBytes)) { - $numBytes = (int) $numBytes; - } else { - throw new TypeError( - 'Argument 1 must be an integer, ' . gettype($numBytes) . ' given.' - ); - } - } - if (self::use_fallback('randombytes_buf')) { - return (string) call_user_func('\\Sodium\\randombytes_buf', $numBytes); - } - return random_bytes($numBytes); - } - - /** - * Generate an integer between 0 and $range (non-inclusive). - * - * @param int $range - * @return int - * @throws Exception - * @throws Error - * @throws TypeError - */ - public static function randombytes_uniform($range) - { - /* Type checks: */ - if (!is_int($range)) { - if (is_numeric($range)) { - $range = (int) $range; - } else { - throw new TypeError( - 'Argument 1 must be an integer, ' . gettype($range) . ' given.' - ); - } - } - if (self::use_fallback('randombytes_uniform')) { - return (int) call_user_func('\\Sodium\\randombytes_uniform', $range); - } - return random_int(0, $range - 1); - } - - /** - * Generate a random 16-bit integer. - * - * @return int - * @throws Exception - * @throws Error - * @throws TypeError - */ - public static function randombytes_random16() - { - if (self::use_fallback('randombytes_random16')) { - return (int) call_user_func('\\Sodium\\randombytes_random16'); - } - return random_int(0, 65535); - } - - /** - * Runtime testing method for 32-bit platforms. - * - * Usage: If runtime_speed_test() returns FALSE, then our 32-bit - * implementation is to slow to use safely without risking timeouts. - * If this happens, install sodium from PECL to get acceptable - * performance. - * - * @param int $iterations Number of multiplications to attempt - * @param int $maxTimeout Milliseconds - * @return bool TRUE if we're fast enough, FALSE is not - * @throws SodiumException - */ - public static function runtime_speed_test($iterations, $maxTimeout) - { - if (self::polyfill_is_fast()) { - return true; - } - /** @var float $end */ - $end = 0.0; - /** @var float $start */ - $start = microtime(true); - /** @var ParagonIE_Sodium_Core32_Int64 $a */ - $a = ParagonIE_Sodium_Core32_Int64::fromInt(random_int(3, 1 << 16)); - for ($i = 0; $i < $iterations; ++$i) { - /** @var ParagonIE_Sodium_Core32_Int64 $b */ - $b = ParagonIE_Sodium_Core32_Int64::fromInt(random_int(3, 1 << 16)); - $a->mulInt64($b); - } - /** @var float $end */ - $end = microtime(true); - /** @var int $diff */ - $diff = (int) ceil(($end - $start) * 1000); - return $diff < $maxTimeout; - } - - /** - * This emulates libsodium's version_string() function, except ours is - * prefixed with 'polyfill-'. - * - * @return string - * @psalm-suppress MixedInferredReturnType - * @psalm-suppress UndefinedFunction - */ - public static function version_string() - { - if (self::useNewSodiumAPI()) { - return (string) sodium_version_string(); - } - if (self::use_fallback('version_string')) { - return (string) call_user_func('\\Sodium\\version_string'); - } - return (string) self::VERSION_STRING; - } - - /** - * Should we use the libsodium core function instead? - * This is always a good idea, if it's available. (Unless we're in the - * middle of running our unit test suite.) - * - * If ext/libsodium is available, use it. Return TRUE. - * Otherwise, we have to use the code provided herein. Return FALSE. - * - * @param string $sodium_func_name - * - * @return bool - */ - protected static function use_fallback($sodium_func_name = '') - { - static $res = null; - if ($res === null) { - $res = extension_loaded('libsodium') && PHP_VERSION_ID >= 50300; - } - if ($res === false) { - // No libsodium installed - return false; - } - if (self::$disableFallbackForUnitTests) { - // Don't fallback. Use the PHP implementation. - return false; - } - if (!empty($sodium_func_name)) { - return is_callable('\\Sodium\\' . $sodium_func_name); - } - return true; - } - - /** - * Libsodium as implemented in PHP 7.2 - * and/or ext/sodium (via PECL) - * - * @ref https://wiki.php.net/rfc/libsodium - * @return bool - */ - protected static function useNewSodiumAPI() - { - static $res = null; - if ($res === null) { - $res = PHP_VERSION_ID >= 70000 && extension_loaded('sodium'); - } - if (self::$disableFallbackForUnitTests) { - // Don't fallback. Use the PHP implementation. - return false; - } - return (bool) $res; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/BLAKE2b.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/BLAKE2b.php deleted file mode 100644 index 930a0ed..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/BLAKE2b.php +++ /dev/null @@ -1,789 +0,0 @@ -> - */ - protected static $sigma = array( - array( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), - array( 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3), - array( 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4), - array( 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8), - array( 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13), - array( 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9), - array( 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11), - array( 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10), - array( 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5), - array( 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0), - array( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), - array( 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3) - ); - - const BLOCKBYTES = 128; - const OUTBYTES = 64; - const KEYBYTES = 64; - - /** - * Turn two 32-bit integers into a fixed array representing a 64-bit integer. - * - * @internal You should not use this directly from another application - * - * @param int $high - * @param int $low - * @return SplFixedArray - * @psalm-suppress MixedAssignment - */ - public static function new64($high, $low) - { - $i64 = new SplFixedArray(2); - $i64[0] = $high & 0xffffffff; - $i64[1] = $low & 0xffffffff; - return $i64; - } - - /** - * Convert an arbitrary number into an SplFixedArray of two 32-bit integers - * that represents a 64-bit integer. - * - * @internal You should not use this directly from another application - * - * @param int $num - * @return SplFixedArray - */ - protected static function to64($num) - { - list($hi, $lo) = self::numericTo64BitInteger($num); - return self::new64($hi, $lo); - } - - /** - * Adds two 64-bit integers together, returning their sum as a SplFixedArray - * containing two 32-bit integers (representing a 64-bit integer). - * - * @internal You should not use this directly from another application - * - * @param SplFixedArray $x - * @param SplFixedArray $y - * @return SplFixedArray - * @psalm-suppress MixedArgument - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedOperand - */ - protected static function add64($x, $y) - { - $l = ($x[1] + $y[1]) & 0xffffffff; - return self::new64( - (int) ($x[0] + $y[0] + ( - ($l < $x[1]) ? 1 : 0 - )), - (int) $l - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $x - * @param SplFixedArray $y - * @param SplFixedArray $z - * @return SplFixedArray - */ - protected static function add364($x, $y, $z) - { - return self::add64($x, self::add64($y, $z)); - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $x - * @param SplFixedArray $y - * @return SplFixedArray - * @throws SodiumException - * @throws TypeError - */ - protected static function xor64(SplFixedArray $x, SplFixedArray $y) - { - if (!is_numeric($x[0])) { - throw new SodiumException('x[0] is not an integer'); - } - if (!is_numeric($x[1])) { - throw new SodiumException('x[1] is not an integer'); - } - if (!is_numeric($y[0])) { - throw new SodiumException('y[0] is not an integer'); - } - if (!is_numeric($y[1])) { - throw new SodiumException('y[1] is not an integer'); - } - return self::new64( - (int) (($x[0] ^ $y[0]) & 0xffffffff), - (int) (($x[1] ^ $y[1]) & 0xffffffff) - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $x - * @param int $c - * @return SplFixedArray - * @psalm-suppress MixedAssignment - */ - public static function rotr64($x, $c) - { - if ($c >= 64) { - $c %= 64; - } - if ($c >= 32) { - /** @var int $tmp */ - $tmp = $x[0]; - $x[0] = $x[1]; - $x[1] = $tmp; - $c -= 32; - } - if ($c === 0) { - return $x; - } - - $l0 = 0; - $c = 64 - $c; - - if ($c < 32) { - /** @var int $h0 */ - $h0 = ((int) ($x[0]) << $c) | ( - ( - (int) ($x[1]) & ((1 << $c) - 1) - << - (32 - $c) - ) >> (32 - $c) - ); - /** @var int $l0 */ - $l0 = (int) ($x[1]) << $c; - } else { - /** @var int $h0 */ - $h0 = (int) ($x[1]) << ($c - 32); - } - - $h1 = 0; - $c1 = 64 - $c; - - if ($c1 < 32) { - /** @var int $h1 */ - $h1 = (int) ($x[0]) >> $c1; - /** @var int $l1 */ - $l1 = ((int) ($x[1]) >> $c1) | ((int) ($x[0]) & ((1 << $c1) - 1)) << (32 - $c1); - } else { - /** @var int $l1 */ - $l1 = (int) ($x[0]) >> ($c1 - 32); - } - - return self::new64($h0 | $h1, $l0 | $l1); - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $x - * @return int - * @psalm-suppress MixedOperand - */ - protected static function flatten64($x) - { - return (int) ($x[0] * 4294967296 + $x[1]); - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $x - * @param int $i - * @return SplFixedArray - * @psalm-suppress MixedArgument - * @psalm-suppress MixedArrayOffset - */ - protected static function load64(SplFixedArray $x, $i) - { - /** @var int $l */ - $l = (int) ($x[$i]) - | ((int) ($x[$i+1]) << 8) - | ((int) ($x[$i+2]) << 16) - | ((int) ($x[$i+3]) << 24); - /** @var int $h */ - $h = (int) ($x[$i+4]) - | ((int) ($x[$i+5]) << 8) - | ((int) ($x[$i+6]) << 16) - | ((int) ($x[$i+7]) << 24); - return self::new64($h, $l); - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $x - * @param int $i - * @param SplFixedArray $u - * @return void - * @psalm-suppress MixedAssignment - */ - protected static function store64(SplFixedArray $x, $i, SplFixedArray $u) - { - $maxLength = $x->getSize() - 1; - for ($j = 0; $j < 8; ++$j) { - /* - [0, 1, 2, 3, 4, 5, 6, 7] - ... becomes ... - [0, 0, 0, 0, 1, 1, 1, 1] - */ - /** @var int $uIdx */ - $uIdx = ((7 - $j) & 4) >> 2; - $x[$i] = ((int) ($u[$uIdx]) & 0xff); - if (++$i > $maxLength) { - return; - } - /** @psalm-suppress MixedOperand */ - $u[$uIdx] >>= 8; - } - } - - /** - * This just sets the $iv static variable. - * - * @internal You should not use this directly from another application - * - * @return void - */ - public static function pseudoConstructor() - { - static $called = false; - if ($called) { - return; - } - self::$iv = new SplFixedArray(8); - self::$iv[0] = self::new64(0x6a09e667, 0xf3bcc908); - self::$iv[1] = self::new64(0xbb67ae85, 0x84caa73b); - self::$iv[2] = self::new64(0x3c6ef372, 0xfe94f82b); - self::$iv[3] = self::new64(0xa54ff53a, 0x5f1d36f1); - self::$iv[4] = self::new64(0x510e527f, 0xade682d1); - self::$iv[5] = self::new64(0x9b05688c, 0x2b3e6c1f); - self::$iv[6] = self::new64(0x1f83d9ab, 0xfb41bd6b); - self::$iv[7] = self::new64(0x5be0cd19, 0x137e2179); - - $called = true; - } - - /** - * Returns a fresh BLAKE2 context. - * - * @internal You should not use this directly from another application - * - * @return SplFixedArray - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - */ - protected static function context() - { - $ctx = new SplFixedArray(6); - $ctx[0] = new SplFixedArray(8); // h - $ctx[1] = new SplFixedArray(2); // t - $ctx[2] = new SplFixedArray(2); // f - $ctx[3] = new SplFixedArray(256); // buf - $ctx[4] = 0; // buflen - $ctx[5] = 0; // last_node (uint8_t) - - for ($i = 8; $i--;) { - $ctx[0][$i] = self::$iv[$i]; - } - for ($i = 256; $i--;) { - $ctx[3][$i] = 0; - } - - $zero = self::new64(0, 0); - $ctx[1][0] = $zero; - $ctx[1][1] = $zero; - $ctx[2][0] = $zero; - $ctx[2][1] = $zero; - - return $ctx; - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $ctx - * @param SplFixedArray $buf - * @return void - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - * @psalm-suppress MixedArrayOffset - */ - protected static function compress(SplFixedArray $ctx, SplFixedArray $buf) - { - $m = new SplFixedArray(16); - $v = new SplFixedArray(16); - - for ($i = 16; $i--;) { - $m[$i] = self::load64($buf, $i << 3); - } - - for ($i = 8; $i--;) { - $v[$i] = $ctx[0][$i]; - } - - $v[ 8] = self::$iv[0]; - $v[ 9] = self::$iv[1]; - $v[10] = self::$iv[2]; - $v[11] = self::$iv[3]; - - $v[12] = self::xor64($ctx[1][0], self::$iv[4]); - $v[13] = self::xor64($ctx[1][1], self::$iv[5]); - $v[14] = self::xor64($ctx[2][0], self::$iv[6]); - $v[15] = self::xor64($ctx[2][1], self::$iv[7]); - - for ($r = 0; $r < 12; ++$r) { - $v = self::G($r, 0, 0, 4, 8, 12, $v, $m); - $v = self::G($r, 1, 1, 5, 9, 13, $v, $m); - $v = self::G($r, 2, 2, 6, 10, 14, $v, $m); - $v = self::G($r, 3, 3, 7, 11, 15, $v, $m); - $v = self::G($r, 4, 0, 5, 10, 15, $v, $m); - $v = self::G($r, 5, 1, 6, 11, 12, $v, $m); - $v = self::G($r, 6, 2, 7, 8, 13, $v, $m); - $v = self::G($r, 7, 3, 4, 9, 14, $v, $m); - } - - for ($i = 8; $i--;) { - $ctx[0][$i] = self::xor64( - $ctx[0][$i], self::xor64($v[$i], $v[$i+8]) - ); - } - } - - /** - * @internal You should not use this directly from another application - * - * @param int $r - * @param int $i - * @param int $a - * @param int $b - * @param int $c - * @param int $d - * @param SplFixedArray $v - * @param SplFixedArray $m - * @return SplFixedArray - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedArrayOffset - */ - public static function G($r, $i, $a, $b, $c, $d, SplFixedArray $v, SplFixedArray $m) - { - $v[$a] = self::add364($v[$a], $v[$b], $m[self::$sigma[$r][$i << 1]]); - $v[$d] = self::rotr64(self::xor64($v[$d], $v[$a]), 32); - $v[$c] = self::add64($v[$c], $v[$d]); - $v[$b] = self::rotr64(self::xor64($v[$b], $v[$c]), 24); - $v[$a] = self::add364($v[$a], $v[$b], $m[self::$sigma[$r][($i << 1) + 1]]); - $v[$d] = self::rotr64(self::xor64($v[$d], $v[$a]), 16); - $v[$c] = self::add64($v[$c], $v[$d]); - $v[$b] = self::rotr64(self::xor64($v[$b], $v[$c]), 63); - return $v; - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $ctx - * @param int $inc - * @return void - * @throws SodiumException - * @psalm-suppress MixedArgument - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - */ - public static function increment_counter($ctx, $inc) - { - if ($inc < 0) { - throw new SodiumException('Increasing by a negative number makes no sense.'); - } - $t = self::to64($inc); - # S->t is $ctx[1] in our implementation - - # S->t[0] = ( uint64_t )( t >> 0 ); - $ctx[1][0] = self::add64($ctx[1][0], $t); - - # S->t[1] += ( S->t[0] < inc ); - if (self::flatten64($ctx[1][0]) < $inc) { - $ctx[1][1] = self::add64($ctx[1][1], self::to64(1)); - } - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $ctx - * @param SplFixedArray $p - * @param int $plen - * @return void - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - * @psalm-suppress MixedArrayOffset - * @psalm-suppress MixedOperand - */ - public static function update(SplFixedArray $ctx, SplFixedArray $p, $plen) - { - self::pseudoConstructor(); - - $offset = 0; - while ($plen > 0) { - $left = $ctx[4]; - $fill = 256 - $left; - - if ($plen > $fill) { - # memcpy( S->buf + left, in, fill ); /* Fill buffer */ - for ($i = $fill; $i--;) { - $ctx[3][$i + $left] = $p[$i + $offset]; - } - - # S->buflen += fill; - $ctx[4] += $fill; - - # blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES ); - self::increment_counter($ctx, 128); - - # blake2b_compress( S, S->buf ); /* Compress */ - self::compress($ctx, $ctx[3]); - - # memcpy( S->buf, S->buf + BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); /* Shift buffer left */ - for ($i = 128; $i--;) { - $ctx[3][$i] = $ctx[3][$i + 128]; - } - - # S->buflen -= BLAKE2B_BLOCKBYTES; - $ctx[4] -= 128; - - # in += fill; - $offset += $fill; - - # inlen -= fill; - $plen -= $fill; - } else { - for ($i = $plen; $i--;) { - $ctx[3][$i + $left] = $p[$i + $offset]; - } - $ctx[4] += $plen; - $offset += $plen; - $plen -= $plen; - } - } - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $ctx - * @param SplFixedArray $out - * @return SplFixedArray - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - * @psalm-suppress MixedArrayOffset - * @psalm-suppress MixedOperand - */ - public static function finish(SplFixedArray $ctx, SplFixedArray $out) - { - self::pseudoConstructor(); - if ($ctx[4] > 128) { - self::increment_counter($ctx, 128); - self::compress($ctx, $ctx[3]); - $ctx[4] -= 128; - if ($ctx[4] > 128) { - throw new SodiumException('Failed to assert that buflen <= 128 bytes'); - } - for ($i = $ctx[4]; $i--;) { - $ctx[3][$i] = $ctx[3][$i + 128]; - } - } - - self::increment_counter($ctx, $ctx[4]); - $ctx[2][0] = self::new64(0xffffffff, 0xffffffff); - - for ($i = 256 - $ctx[4]; $i--;) { - $ctx[3][$i+$ctx[4]] = 0; - } - - self::compress($ctx, $ctx[3]); - - $i = (int) (($out->getSize() - 1) / 8); - for (; $i >= 0; --$i) { - self::store64($out, $i << 3, $ctx[0][$i]); - } - return $out; - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray|null $key - * @param int $outlen - * @param SplFixedArray|null $salt - * @param SplFixedArray|null $personal - * @return SplFixedArray - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - * @psalm-suppress MixedArrayOffset - */ - public static function init( - $key = null, - $outlen = 64, - $salt = null, - $personal = null - ) { - self::pseudoConstructor(); - $klen = 0; - - if ($key !== null) { - if (count($key) > 64) { - throw new SodiumException('Invalid key size'); - } - $klen = count($key); - } - - if ($outlen > 64) { - throw new SodiumException('Invalid output size'); - } - - $ctx = self::context(); - - $p = new SplFixedArray(64); - // Zero our param buffer... - for ($i = 64; --$i;) { - $p[$i] = 0; - } - - $p[0] = $outlen; // digest_length - $p[1] = $klen; // key_length - $p[2] = 1; // fanout - $p[3] = 1; // depth - - if ($salt instanceof SplFixedArray) { - // salt: [32] through [47] - for ($i = 0; $i < 16; ++$i) { - $p[32 + $i] = (int) $salt[$i]; - } - } - if ($personal instanceof SplFixedArray) { - // personal: [48] through [63] - for ($i = 0; $i < 16; ++$i) { - $p[48 + $i] = (int) $personal[$i]; - } - } - - $ctx[0][0] = self::xor64( - $ctx[0][0], - self::load64($p, 0) - ); - if ($salt instanceof SplFixedArray || $personal instanceof SplFixedArray) { - // We need to do what blake2b_init_param() does: - for ($i = 1; $i < 8; ++$i) { - $ctx[0][$i] = self::xor64( - $ctx[0][$i], - self::load64($p, $i << 3) - ); - } - } - - if ($klen > 0 && $key instanceof SplFixedArray) { - $block = new SplFixedArray(128); - for ($i = 128; $i--;) { - $block[$i] = 0; - } - for ($i = $klen; $i--;) { - $block[$i] = $key[$i]; - } - self::update($ctx, $block, 128); - $ctx[4] = 128; - } - - return $ctx; - } - - /** - * Convert a string into an SplFixedArray of integers - * - * @internal You should not use this directly from another application - * - * @param string $str - * @return SplFixedArray - */ - public static function stringToSplFixedArray($str = '') - { - $values = unpack('C*', $str); - return SplFixedArray::fromArray(array_values($values)); - } - - /** - * Convert an SplFixedArray of integers into a string - * - * @internal You should not use this directly from another application - * - * @param SplFixedArray $a - * @return string - * @throws TypeError - */ - public static function SplFixedArrayToString(SplFixedArray $a) - { - /** - * @var array $arr - */ - $arr = $a->toArray(); - $c = $a->count(); - array_unshift($arr, str_repeat('C', $c)); - return (string) (call_user_func_array('pack', $arr)); - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $ctx - * @return string - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - * @psalm-suppress MixedArrayOffset - * @psalm-suppress MixedMethodCall - */ - public static function contextToString(SplFixedArray $ctx) - { - $str = ''; - /** @var array> $ctxA */ - $ctxA = $ctx[0]->toArray(); - - # uint64_t h[8]; - for ($i = 0; $i < 8; ++$i) { - $str .= self::store32_le($ctxA[$i][1]); - $str .= self::store32_le($ctxA[$i][0]); - } - - # uint64_t t[2]; - # uint64_t f[2]; - for ($i = 1; $i < 3; ++$i) { - $ctxA = $ctx[$i]->toArray(); - $str .= self::store32_le($ctxA[0][1]); - $str .= self::store32_le($ctxA[0][0]); - $str .= self::store32_le($ctxA[1][1]); - $str .= self::store32_le($ctxA[1][0]); - } - - # uint8_t buf[2 * 128]; - $str .= self::SplFixedArrayToString($ctx[3]); - - /** @var int $ctx4 */ - $ctx4 = (int) $ctx[4]; - - # size_t buflen; - $str .= implode('', array( - self::intToChr($ctx4 & 0xff), - self::intToChr(($ctx4 >> 8) & 0xff), - self::intToChr(($ctx4 >> 16) & 0xff), - self::intToChr(($ctx4 >> 24) & 0xff), - self::intToChr(($ctx4 >> 32) & 0xff), - self::intToChr(($ctx4 >> 40) & 0xff), - self::intToChr(($ctx4 >> 48) & 0xff), - self::intToChr(($ctx4 >> 56) & 0xff) - )); - # uint8_t last_node; - return $str . self::intToChr($ctx[5]) . str_repeat("\x00", 23); - } - - /** - * Creates an SplFixedArray containing other SplFixedArray elements, from - * a string (compatible with \Sodium\crypto_generichash_{init, update, final}) - * - * @internal You should not use this directly from another application - * - * @param string $string - * @return SplFixedArray - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArrayAssignment - */ - public static function stringToContext($string) - { - $ctx = self::context(); - - # uint64_t h[8]; - for ($i = 0; $i < 8; ++$i) { - $ctx[0][$i] = SplFixedArray::fromArray( - array( - self::load_4( - self::substr($string, (($i << 3) + 4), 4) - ), - self::load_4( - self::substr($string, (($i << 3) + 0), 4) - ) - ) - ); - } - - # uint64_t t[2]; - # uint64_t f[2]; - for ($i = 1; $i < 3; ++$i) { - $ctx[$i][1] = SplFixedArray::fromArray( - array( - self::load_4(self::substr($string, 76 + (($i - 1) << 4), 4)), - self::load_4(self::substr($string, 72 + (($i - 1) << 4), 4)) - ) - ); - $ctx[$i][0] = SplFixedArray::fromArray( - array( - self::load_4(self::substr($string, 68 + (($i - 1) << 4), 4)), - self::load_4(self::substr($string, 64 + (($i - 1) << 4), 4)) - ) - ); - } - - # uint8_t buf[2 * 128]; - $ctx[3] = self::stringToSplFixedArray(self::substr($string, 96, 256)); - - # uint8_t buf[2 * 128]; - $int = 0; - for ($i = 0; $i < 8; ++$i) { - $int |= self::chrToInt($string[352 + $i]) << ($i << 3); - } - $ctx[4] = $int; - - return $ctx; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Base64/Common.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Base64/Common.php deleted file mode 100644 index 94b2e8f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Base64/Common.php +++ /dev/null @@ -1,213 +0,0 @@ - $chunk */ - $chunk = unpack('C*', ParagonIE_Sodium_Core_Util::substr($src, $i, 3)); - $b0 = $chunk[1]; - $b1 = $chunk[2]; - $b2 = $chunk[3]; - - $dest .= - self::encode6Bits( $b0 >> 2 ) . - self::encode6Bits((($b0 << 4) | ($b1 >> 4)) & 63) . - self::encode6Bits((($b1 << 2) | ($b2 >> 6)) & 63) . - self::encode6Bits( $b2 & 63); - } - // The last chunk, which may have padding: - if ($i < $srcLen) { - /** @var array $chunk */ - $chunk = unpack('C*', ParagonIE_Sodium_Core_Util::substr($src, $i, $srcLen - $i)); - $b0 = $chunk[1]; - if ($i + 1 < $srcLen) { - $b1 = $chunk[2]; - $dest .= - self::encode6Bits($b0 >> 2) . - self::encode6Bits((($b0 << 4) | ($b1 >> 4)) & 63) . - self::encode6Bits(($b1 << 2) & 63); - if ($pad) { - $dest .= '='; - } - } else { - $dest .= - self::encode6Bits( $b0 >> 2) . - self::encode6Bits(($b0 << 4) & 63); - if ($pad) { - $dest .= '=='; - } - } - } - return $dest; - } - - /** - * decode from base64 into binary - * - * Base64 character set "./[A-Z][a-z][0-9]" - * - * @param string $src - * @param bool $strictPadding - * @return string - * @throws RangeException - * @throws TypeError - * @psalm-suppress RedundantCondition - */ - public static function decode($src, $strictPadding = false) - { - // Remove padding - $srcLen = ParagonIE_Sodium_Core_Util::strlen($src); - if ($srcLen === 0) { - return ''; - } - - if ($strictPadding) { - if (($srcLen & 3) === 0) { - if ($src[$srcLen - 1] === '=') { - $srcLen--; - if ($src[$srcLen - 1] === '=') { - $srcLen--; - } - } - } - if (($srcLen & 3) === 1) { - throw new RangeException( - 'Incorrect padding' - ); - } - if ($src[$srcLen - 1] === '=') { - throw new RangeException( - 'Incorrect padding' - ); - } - } else { - $src = rtrim($src, '='); - $srcLen = ParagonIE_Sodium_Core_Util::strlen($src); - } - - $err = 0; - $dest = ''; - // Main loop (no padding): - for ($i = 0; $i + 4 <= $srcLen; $i += 4) { - /** @var array $chunk */ - $chunk = unpack('C*', ParagonIE_Sodium_Core_Util::substr($src, $i, 4)); - $c0 = self::decode6Bits($chunk[1]); - $c1 = self::decode6Bits($chunk[2]); - $c2 = self::decode6Bits($chunk[3]); - $c3 = self::decode6Bits($chunk[4]); - - $dest .= pack( - 'CCC', - ((($c0 << 2) | ($c1 >> 4)) & 0xff), - ((($c1 << 4) | ($c2 >> 2)) & 0xff), - ((($c2 << 6) | $c3 ) & 0xff) - ); - $err |= ($c0 | $c1 | $c2 | $c3) >> 8; - } - // The last chunk, which may have padding: - if ($i < $srcLen) { - /** @var array $chunk */ - $chunk = unpack('C*', ParagonIE_Sodium_Core_Util::substr($src, $i, $srcLen - $i)); - $c0 = self::decode6Bits($chunk[1]); - - if ($i + 2 < $srcLen) { - $c1 = self::decode6Bits($chunk[2]); - $c2 = self::decode6Bits($chunk[3]); - $dest .= pack( - 'CC', - ((($c0 << 2) | ($c1 >> 4)) & 0xff), - ((($c1 << 4) | ($c2 >> 2)) & 0xff) - ); - $err |= ($c0 | $c1 | $c2) >> 8; - } elseif ($i + 1 < $srcLen) { - $c1 = self::decode6Bits($chunk[2]); - $dest .= pack( - 'C', - ((($c0 << 2) | ($c1 >> 4)) & 0xff) - ); - $err |= ($c0 | $c1) >> 8; - } elseif ($i < $srcLen && $strictPadding) { - $err |= 1; - } - } - /** @var bool $check */ - $check = ($err === 0); - if (!$check) { - throw new RangeException( - 'Base64::decode() only expects characters in the correct base64 alphabet' - ); - } - return $dest; - } - - /** - * 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 - */ - abstract protected static function decode6Bits($src); - - /** - * Uses bitwise operators instead of table-lookups to turn 8-bit integers - * into 6-bit integers. - * - * @param int $src - * @return string - */ - abstract protected static function encode6Bits($src); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Base64/Original.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Base64/Original.php deleted file mode 100644 index dc939ee..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Base64/Original.php +++ /dev/null @@ -1,248 +0,0 @@ - $chunk */ - $chunk = unpack('C*', ParagonIE_Sodium_Core_Util::substr($src, $i, 3)); - $b0 = $chunk[1]; - $b1 = $chunk[2]; - $b2 = $chunk[3]; - - $dest .= - self::encode6Bits( $b0 >> 2 ) . - self::encode6Bits((($b0 << 4) | ($b1 >> 4)) & 63) . - self::encode6Bits((($b1 << 2) | ($b2 >> 6)) & 63) . - self::encode6Bits( $b2 & 63); - } - // The last chunk, which may have padding: - if ($i < $srcLen) { - /** @var array $chunk */ - $chunk = unpack('C*', ParagonIE_Sodium_Core_Util::substr($src, $i, $srcLen - $i)); - $b0 = $chunk[1]; - if ($i + 1 < $srcLen) { - $b1 = $chunk[2]; - $dest .= - self::encode6Bits($b0 >> 2) . - self::encode6Bits((($b0 << 4) | ($b1 >> 4)) & 63) . - self::encode6Bits(($b1 << 2) & 63); - if ($pad) { - $dest .= '='; - } - } else { - $dest .= - self::encode6Bits( $b0 >> 2) . - self::encode6Bits(($b0 << 4) & 63); - if ($pad) { - $dest .= '=='; - } - } - } - return $dest; - } - - /** - * decode from base64 into binary - * - * Base64 character set "./[A-Z][a-z][0-9]" - * - * @param string $src - * @param bool $strictPadding - * @return string - * @throws RangeException - * @throws TypeError - * @psalm-suppress RedundantCondition - */ - public static function decode($src, $strictPadding = false) - { - // Remove padding - $srcLen = ParagonIE_Sodium_Core_Util::strlen($src); - if ($srcLen === 0) { - return ''; - } - - if ($strictPadding) { - if (($srcLen & 3) === 0) { - if ($src[$srcLen - 1] === '=') { - $srcLen--; - if ($src[$srcLen - 1] === '=') { - $srcLen--; - } - } - } - if (($srcLen & 3) === 1) { - throw new RangeException( - 'Incorrect padding' - ); - } - if ($src[$srcLen - 1] === '=') { - throw new RangeException( - 'Incorrect padding' - ); - } - } else { - $src = rtrim($src, '='); - $srcLen = ParagonIE_Sodium_Core_Util::strlen($src); - } - - $err = 0; - $dest = ''; - // Main loop (no padding): - for ($i = 0; $i + 4 <= $srcLen; $i += 4) { - /** @var array $chunk */ - $chunk = unpack('C*', ParagonIE_Sodium_Core_Util::substr($src, $i, 4)); - $c0 = self::decode6Bits($chunk[1]); - $c1 = self::decode6Bits($chunk[2]); - $c2 = self::decode6Bits($chunk[3]); - $c3 = self::decode6Bits($chunk[4]); - - $dest .= pack( - 'CCC', - ((($c0 << 2) | ($c1 >> 4)) & 0xff), - ((($c1 << 4) | ($c2 >> 2)) & 0xff), - ((($c2 << 6) | $c3) & 0xff) - ); - $err |= ($c0 | $c1 | $c2 | $c3) >> 8; - } - // The last chunk, which may have padding: - if ($i < $srcLen) { - /** @var array $chunk */ - $chunk = unpack('C*', ParagonIE_Sodium_Core_Util::substr($src, $i, $srcLen - $i)); - $c0 = self::decode6Bits($chunk[1]); - - if ($i + 2 < $srcLen) { - $c1 = self::decode6Bits($chunk[2]); - $c2 = self::decode6Bits($chunk[3]); - $dest .= pack( - 'CC', - ((($c0 << 2) | ($c1 >> 4)) & 0xff), - ((($c1 << 4) | ($c2 >> 2)) & 0xff) - ); - $err |= ($c0 | $c1 | $c2) >> 8; - } elseif ($i + 1 < $srcLen) { - $c1 = self::decode6Bits($chunk[2]); - $dest .= pack( - 'C', - ((($c0 << 2) | ($c1 >> 4)) & 0xff) - ); - $err |= ($c0 | $c1) >> 8; - } elseif ($i < $srcLen && $strictPadding) { - $err |= 1; - } - } - /** @var bool $check */ - $check = ($err === 0); - if (!$check) { - throw new RangeException( - 'Base64::decode() only expects characters in the correct base64 alphabet' - ); - } - return $dest; - } - // COPY ParagonIE_Sodium_Core_Base64_Common ENDING HERE - - /** - * 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($src) - { - $ret = -1; - - // if ($src > 0x40 && $src < 0x5b) $ret += $src - 0x41 + 1; // -64 - $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 64); - - // if ($src > 0x60 && $src < 0x7b) $ret += $src - 0x61 + 26 + 1; // -70 - $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 70); - - // if ($src > 0x2f && $src < 0x3a) $ret += $src - 0x30 + 52 + 1; // 5 - $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src + 5); - - // if ($src == 0x2b) $ret += 62 + 1; - $ret += (((0x2a - $src) & ($src - 0x2c)) >> 8) & 63; - - // if ($src == 0x2f) ret += 63 + 1; - $ret += (((0x2e - $src) & ($src - 0x30)) >> 8) & 64; - - return $ret; - } - - /** - * 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($src) - { - $diff = 0x41; - - // if ($src > 25) $diff += 0x61 - 0x41 - 26; // 6 - $diff += ((25 - $src) >> 8) & 6; - - // if ($src > 51) $diff += 0x30 - 0x61 - 26; // -75 - $diff -= ((51 - $src) >> 8) & 75; - - // if ($src > 61) $diff += 0x2b - 0x30 - 10; // -15 - $diff -= ((61 - $src) >> 8) & 15; - - // if ($src > 62) $diff += 0x2f - 0x2b - 1; // 3 - $diff += ((62 - $src) >> 8) & 3; - - return pack('C', $src + $diff); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Base64/UrlSafe.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Base64/UrlSafe.php deleted file mode 100644 index 64bf53b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Base64/UrlSafe.php +++ /dev/null @@ -1,247 +0,0 @@ - $chunk */ - $chunk = unpack('C*', ParagonIE_Sodium_Core_Util::substr($src, $i, 3)); - $b0 = $chunk[1]; - $b1 = $chunk[2]; - $b2 = $chunk[3]; - - $dest .= - self::encode6Bits( $b0 >> 2 ) . - self::encode6Bits((($b0 << 4) | ($b1 >> 4)) & 63) . - self::encode6Bits((($b1 << 2) | ($b2 >> 6)) & 63) . - self::encode6Bits( $b2 & 63); - } - // The last chunk, which may have padding: - if ($i < $srcLen) { - /** @var array $chunk */ - $chunk = unpack('C*', ParagonIE_Sodium_Core_Util::substr($src, $i, $srcLen - $i)); - $b0 = $chunk[1]; - if ($i + 1 < $srcLen) { - $b1 = $chunk[2]; - $dest .= - self::encode6Bits($b0 >> 2) . - self::encode6Bits((($b0 << 4) | ($b1 >> 4)) & 63) . - self::encode6Bits(($b1 << 2) & 63); - if ($pad) { - $dest .= '='; - } - } else { - $dest .= - self::encode6Bits( $b0 >> 2) . - self::encode6Bits(($b0 << 4) & 63); - if ($pad) { - $dest .= '=='; - } - } - } - return $dest; - } - - /** - * decode from base64 into binary - * - * Base64 character set "./[A-Z][a-z][0-9]" - * - * @param string $src - * @param bool $strictPadding - * @return string - * @throws RangeException - * @throws TypeError - * @psalm-suppress RedundantCondition - */ - public static function decode($src, $strictPadding = false) - { - // Remove padding - $srcLen = ParagonIE_Sodium_Core_Util::strlen($src); - if ($srcLen === 0) { - return ''; - } - - if ($strictPadding) { - if (($srcLen & 3) === 0) { - if ($src[$srcLen - 1] === '=') { - $srcLen--; - if ($src[$srcLen - 1] === '=') { - $srcLen--; - } - } - } - if (($srcLen & 3) === 1) { - throw new RangeException( - 'Incorrect padding' - ); - } - if ($src[$srcLen - 1] === '=') { - throw new RangeException( - 'Incorrect padding' - ); - } - } else { - $src = rtrim($src, '='); - $srcLen = ParagonIE_Sodium_Core_Util::strlen($src); - } - - $err = 0; - $dest = ''; - // Main loop (no padding): - for ($i = 0; $i + 4 <= $srcLen; $i += 4) { - /** @var array $chunk */ - $chunk = unpack('C*', ParagonIE_Sodium_Core_Util::substr($src, $i, 4)); - $c0 = self::decode6Bits($chunk[1]); - $c1 = self::decode6Bits($chunk[2]); - $c2 = self::decode6Bits($chunk[3]); - $c3 = self::decode6Bits($chunk[4]); - - $dest .= pack( - 'CCC', - ((($c0 << 2) | ($c1 >> 4)) & 0xff), - ((($c1 << 4) | ($c2 >> 2)) & 0xff), - ((($c2 << 6) | $c3) & 0xff) - ); - $err |= ($c0 | $c1 | $c2 | $c3) >> 8; - } - // The last chunk, which may have padding: - if ($i < $srcLen) { - /** @var array $chunk */ - $chunk = unpack('C*', ParagonIE_Sodium_Core_Util::substr($src, $i, $srcLen - $i)); - $c0 = self::decode6Bits($chunk[1]); - - if ($i + 2 < $srcLen) { - $c1 = self::decode6Bits($chunk[2]); - $c2 = self::decode6Bits($chunk[3]); - $dest .= pack( - 'CC', - ((($c0 << 2) | ($c1 >> 4)) & 0xff), - ((($c1 << 4) | ($c2 >> 2)) & 0xff) - ); - $err |= ($c0 | $c1 | $c2) >> 8; - } elseif ($i + 1 < $srcLen) { - $c1 = self::decode6Bits($chunk[2]); - $dest .= pack( - 'C', - ((($c0 << 2) | ($c1 >> 4)) & 0xff) - ); - $err |= ($c0 | $c1) >> 8; - } elseif ($i < $srcLen && $strictPadding) { - $err |= 1; - } - } - /** @var bool $check */ - $check = ($err === 0); - if (!$check) { - throw new RangeException( - 'Base64::decode() only expects characters in the correct base64 alphabet' - ); - } - return $dest; - } - // COPY ParagonIE_Sodium_Core_Base64_Common ENDING HERE - /** - * 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($src) - { - $ret = -1; - - // if ($src > 0x40 && $src < 0x5b) $ret += $src - 0x41 + 1; // -64 - $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 64); - - // if ($src > 0x60 && $src < 0x7b) $ret += $src - 0x61 + 26 + 1; // -70 - $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 70); - - // if ($src > 0x2f && $src < 0x3a) $ret += $src - 0x30 + 52 + 1; // 5 - $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src + 5); - - // if ($src == 0x2c) $ret += 62 + 1; - $ret += (((0x2c - $src) & ($src - 0x2e)) >> 8) & 63; - - // if ($src == 0x5f) ret += 63 + 1; - $ret += (((0x5e - $src) & ($src - 0x60)) >> 8) & 64; - - return $ret; - } - - /** - * 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($src) - { - $diff = 0x41; - - // if ($src > 25) $diff += 0x61 - 0x41 - 26; // 6 - $diff += ((25 - $src) >> 8) & 6; - - // if ($src > 51) $diff += 0x30 - 0x61 - 26; // -75 - $diff -= ((51 - $src) >> 8) & 75; - - // if ($src > 61) $diff += 0x2d - 0x30 - 10; // -13 - $diff -= ((61 - $src) >> 8) & 13; - - // if ($src > 62) $diff += 0x5f - 0x2b - 1; // 3 - $diff += ((62 - $src) >> 8) & 49; - - return pack('C', $src + $diff); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/ChaCha20.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/ChaCha20.php deleted file mode 100644 index 806010c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/ChaCha20.php +++ /dev/null @@ -1,395 +0,0 @@ -> (32 - $n)) - ) - ); - } - - /** - * The ChaCha20 quarter round function. Works on four 32-bit integers. - * - * @internal You should not use this directly from another application - * - * @param int $a - * @param int $b - * @param int $c - * @param int $d - * @return array - */ - protected static function quarterRound($a, $b, $c, $d) - { - # a = PLUS(a,b); d = ROTATE(XOR(d,a),16); - /** @var int $a */ - $a = ($a + $b) & 0xffffffff; - $d = self::rotate($d ^ $a, 16); - - # c = PLUS(c,d); b = ROTATE(XOR(b,c),12); - /** @var int $c */ - $c = ($c + $d) & 0xffffffff; - $b = self::rotate($b ^ $c, 12); - - # a = PLUS(a,b); d = ROTATE(XOR(d,a), 8); - /** @var int $a */ - $a = ($a + $b) & 0xffffffff; - $d = self::rotate($d ^ $a, 8); - - # c = PLUS(c,d); b = ROTATE(XOR(b,c), 7); - /** @var int $c */ - $c = ($c + $d) & 0xffffffff; - $b = self::rotate($b ^ $c, 7); - return array((int) $a, (int) $b, (int) $c, (int) $d); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_ChaCha20_Ctx $ctx - * @param string $message - * - * @return string - * @throws TypeError - * @throws SodiumException - */ - public static function encryptBytes( - ParagonIE_Sodium_Core_ChaCha20_Ctx $ctx, - $message = '' - ) { - $bytes = self::strlen($message); - - /* - j0 = ctx->input[0]; - j1 = ctx->input[1]; - j2 = ctx->input[2]; - j3 = ctx->input[3]; - j4 = ctx->input[4]; - j5 = ctx->input[5]; - j6 = ctx->input[6]; - j7 = ctx->input[7]; - j8 = ctx->input[8]; - j9 = ctx->input[9]; - j10 = ctx->input[10]; - j11 = ctx->input[11]; - j12 = ctx->input[12]; - j13 = ctx->input[13]; - j14 = ctx->input[14]; - j15 = ctx->input[15]; - */ - $j0 = (int) $ctx[0]; - $j1 = (int) $ctx[1]; - $j2 = (int) $ctx[2]; - $j3 = (int) $ctx[3]; - $j4 = (int) $ctx[4]; - $j5 = (int) $ctx[5]; - $j6 = (int) $ctx[6]; - $j7 = (int) $ctx[7]; - $j8 = (int) $ctx[8]; - $j9 = (int) $ctx[9]; - $j10 = (int) $ctx[10]; - $j11 = (int) $ctx[11]; - $j12 = (int) $ctx[12]; - $j13 = (int) $ctx[13]; - $j14 = (int) $ctx[14]; - $j15 = (int) $ctx[15]; - - $c = ''; - for (;;) { - if ($bytes < 64) { - $message .= str_repeat("\x00", 64 - $bytes); - } - - $x0 = (int) $j0; - $x1 = (int) $j1; - $x2 = (int) $j2; - $x3 = (int) $j3; - $x4 = (int) $j4; - $x5 = (int) $j5; - $x6 = (int) $j6; - $x7 = (int) $j7; - $x8 = (int) $j8; - $x9 = (int) $j9; - $x10 = (int) $j10; - $x11 = (int) $j11; - $x12 = (int) $j12; - $x13 = (int) $j13; - $x14 = (int) $j14; - $x15 = (int) $j15; - - # for (i = 20; i > 0; i -= 2) { - for ($i = 20; $i > 0; $i -= 2) { - # QUARTERROUND( x0, x4, x8, x12) - list($x0, $x4, $x8, $x12) = self::quarterRound($x0, $x4, $x8, $x12); - - # QUARTERROUND( x1, x5, x9, x13) - list($x1, $x5, $x9, $x13) = self::quarterRound($x1, $x5, $x9, $x13); - - # QUARTERROUND( x2, x6, x10, x14) - list($x2, $x6, $x10, $x14) = self::quarterRound($x2, $x6, $x10, $x14); - - # QUARTERROUND( x3, x7, x11, x15) - list($x3, $x7, $x11, $x15) = self::quarterRound($x3, $x7, $x11, $x15); - - # QUARTERROUND( x0, x5, x10, x15) - list($x0, $x5, $x10, $x15) = self::quarterRound($x0, $x5, $x10, $x15); - - # QUARTERROUND( x1, x6, x11, x12) - list($x1, $x6, $x11, $x12) = self::quarterRound($x1, $x6, $x11, $x12); - - # QUARTERROUND( x2, x7, x8, x13) - list($x2, $x7, $x8, $x13) = self::quarterRound($x2, $x7, $x8, $x13); - - # QUARTERROUND( x3, x4, x9, x14) - list($x3, $x4, $x9, $x14) = self::quarterRound($x3, $x4, $x9, $x14); - } - /* - x0 = PLUS(x0, j0); - x1 = PLUS(x1, j1); - x2 = PLUS(x2, j2); - x3 = PLUS(x3, j3); - x4 = PLUS(x4, j4); - x5 = PLUS(x5, j5); - x6 = PLUS(x6, j6); - x7 = PLUS(x7, j7); - x8 = PLUS(x8, j8); - x9 = PLUS(x9, j9); - x10 = PLUS(x10, j10); - x11 = PLUS(x11, j11); - x12 = PLUS(x12, j12); - x13 = PLUS(x13, j13); - x14 = PLUS(x14, j14); - x15 = PLUS(x15, j15); - */ - /** @var int $x0 */ - $x0 = ($x0 & 0xffffffff) + $j0; - /** @var int $x1 */ - $x1 = ($x1 & 0xffffffff) + $j1; - /** @var int $x2 */ - $x2 = ($x2 & 0xffffffff) + $j2; - /** @var int $x3 */ - $x3 = ($x3 & 0xffffffff) + $j3; - /** @var int $x4 */ - $x4 = ($x4 & 0xffffffff) + $j4; - /** @var int $x5 */ - $x5 = ($x5 & 0xffffffff) + $j5; - /** @var int $x6 */ - $x6 = ($x6 & 0xffffffff) + $j6; - /** @var int $x7 */ - $x7 = ($x7 & 0xffffffff) + $j7; - /** @var int $x8 */ - $x8 = ($x8 & 0xffffffff) + $j8; - /** @var int $x9 */ - $x9 = ($x9 & 0xffffffff) + $j9; - /** @var int $x10 */ - $x10 = ($x10 & 0xffffffff) + $j10; - /** @var int $x11 */ - $x11 = ($x11 & 0xffffffff) + $j11; - /** @var int $x12 */ - $x12 = ($x12 & 0xffffffff) + $j12; - /** @var int $x13 */ - $x13 = ($x13 & 0xffffffff) + $j13; - /** @var int $x14 */ - $x14 = ($x14 & 0xffffffff) + $j14; - /** @var int $x15 */ - $x15 = ($x15 & 0xffffffff) + $j15; - - /* - x0 = XOR(x0, LOAD32_LE(m + 0)); - x1 = XOR(x1, LOAD32_LE(m + 4)); - x2 = XOR(x2, LOAD32_LE(m + 8)); - x3 = XOR(x3, LOAD32_LE(m + 12)); - x4 = XOR(x4, LOAD32_LE(m + 16)); - x5 = XOR(x5, LOAD32_LE(m + 20)); - x6 = XOR(x6, LOAD32_LE(m + 24)); - x7 = XOR(x7, LOAD32_LE(m + 28)); - x8 = XOR(x8, LOAD32_LE(m + 32)); - x9 = XOR(x9, LOAD32_LE(m + 36)); - x10 = XOR(x10, LOAD32_LE(m + 40)); - x11 = XOR(x11, LOAD32_LE(m + 44)); - x12 = XOR(x12, LOAD32_LE(m + 48)); - x13 = XOR(x13, LOAD32_LE(m + 52)); - x14 = XOR(x14, LOAD32_LE(m + 56)); - x15 = XOR(x15, LOAD32_LE(m + 60)); - */ - $x0 ^= self::load_4(self::substr($message, 0, 4)); - $x1 ^= self::load_4(self::substr($message, 4, 4)); - $x2 ^= self::load_4(self::substr($message, 8, 4)); - $x3 ^= self::load_4(self::substr($message, 12, 4)); - $x4 ^= self::load_4(self::substr($message, 16, 4)); - $x5 ^= self::load_4(self::substr($message, 20, 4)); - $x6 ^= self::load_4(self::substr($message, 24, 4)); - $x7 ^= self::load_4(self::substr($message, 28, 4)); - $x8 ^= self::load_4(self::substr($message, 32, 4)); - $x9 ^= self::load_4(self::substr($message, 36, 4)); - $x10 ^= self::load_4(self::substr($message, 40, 4)); - $x11 ^= self::load_4(self::substr($message, 44, 4)); - $x12 ^= self::load_4(self::substr($message, 48, 4)); - $x13 ^= self::load_4(self::substr($message, 52, 4)); - $x14 ^= self::load_4(self::substr($message, 56, 4)); - $x15 ^= self::load_4(self::substr($message, 60, 4)); - - /* - j12 = PLUSONE(j12); - if (!j12) { - j13 = PLUSONE(j13); - } - */ - ++$j12; - if ($j12 & 0xf0000000) { - throw new SodiumException('Overflow'); - } - - /* - STORE32_LE(c + 0, x0); - STORE32_LE(c + 4, x1); - STORE32_LE(c + 8, x2); - STORE32_LE(c + 12, x3); - STORE32_LE(c + 16, x4); - STORE32_LE(c + 20, x5); - STORE32_LE(c + 24, x6); - STORE32_LE(c + 28, x7); - STORE32_LE(c + 32, x8); - STORE32_LE(c + 36, x9); - STORE32_LE(c + 40, x10); - STORE32_LE(c + 44, x11); - STORE32_LE(c + 48, x12); - STORE32_LE(c + 52, x13); - STORE32_LE(c + 56, x14); - STORE32_LE(c + 60, x15); - */ - $block = self::store32_le((int) ($x0 & 0xffffffff)) . - self::store32_le((int) ($x1 & 0xffffffff)) . - self::store32_le((int) ($x2 & 0xffffffff)) . - self::store32_le((int) ($x3 & 0xffffffff)) . - self::store32_le((int) ($x4 & 0xffffffff)) . - self::store32_le((int) ($x5 & 0xffffffff)) . - self::store32_le((int) ($x6 & 0xffffffff)) . - self::store32_le((int) ($x7 & 0xffffffff)) . - self::store32_le((int) ($x8 & 0xffffffff)) . - self::store32_le((int) ($x9 & 0xffffffff)) . - self::store32_le((int) ($x10 & 0xffffffff)) . - self::store32_le((int) ($x11 & 0xffffffff)) . - self::store32_le((int) ($x12 & 0xffffffff)) . - self::store32_le((int) ($x13 & 0xffffffff)) . - self::store32_le((int) ($x14 & 0xffffffff)) . - self::store32_le((int) ($x15 & 0xffffffff)); - - /* Partial block */ - if ($bytes < 64) { - $c .= self::substr($block, 0, $bytes); - break; - } - - /* Full block */ - $c .= $block; - $bytes -= 64; - if ($bytes <= 0) { - break; - } - $message = self::substr($message, 64); - } - /* end for(;;) loop */ - - $ctx[12] = $j12; - $ctx[13] = $j13; - return $c; - } - - /** - * @internal You should not use this directly from another application - * - * @param int $len - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function stream($len = 64, $nonce = '', $key = '') - { - return self::encryptBytes( - new ParagonIE_Sodium_Core_ChaCha20_Ctx($key, $nonce), - str_repeat("\x00", $len) - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $len - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function ietfStream($len, $nonce = '', $key = '') - { - return self::encryptBytes( - new ParagonIE_Sodium_Core_ChaCha20_IetfCtx($key, $nonce), - str_repeat("\x00", $len) - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message - * @param string $nonce - * @param string $key - * @param string $ic - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function ietfStreamXorIc($message, $nonce = '', $key = '', $ic = '') - { - return self::encryptBytes( - new ParagonIE_Sodium_Core_ChaCha20_IetfCtx($key, $nonce, $ic), - $message - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message - * @param string $nonce - * @param string $key - * @param string $ic - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function streamXorIc($message, $nonce = '', $key = '', $ic = '') - { - return self::encryptBytes( - new ParagonIE_Sodium_Core_ChaCha20_Ctx($key, $nonce, $ic), - $message - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/ChaCha20/Ctx.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/ChaCha20/Ctx.php deleted file mode 100644 index 47a42b7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/ChaCha20/Ctx.php +++ /dev/null @@ -1,119 +0,0 @@ - - */ - protected $container; - - /** - * ParagonIE_Sodium_Core_ChaCha20_Ctx constructor. - * - * @internal You should not use this directly from another application - * - * @param string $key ChaCha20 key. - * @param string $iv Initialization Vector (a.k.a. nonce). - * @param string $counter The initial counter value. - * Defaults to 8 0x00 bytes. - * @throws InvalidArgumentException - * @throws TypeError - */ - public function __construct($key = '', $iv = '', $counter = '') - { - if (self::strlen($key) !== 32) { - throw new InvalidArgumentException('ChaCha20 expects a 256-bit key.'); - } - if (self::strlen($iv) !== 8) { - throw new InvalidArgumentException('ChaCha20 expects a 64-bit nonce.'); - } - $this->container = new SplFixedArray(16); - - /* "expand 32-byte k" as per ChaCha20 spec */ - $this->container[0] = 0x61707865; - $this->container[1] = 0x3320646e; - $this->container[2] = 0x79622d32; - $this->container[3] = 0x6b206574; - $this->container[4] = self::load_4(self::substr($key, 0, 4)); - $this->container[5] = self::load_4(self::substr($key, 4, 4)); - $this->container[6] = self::load_4(self::substr($key, 8, 4)); - $this->container[7] = self::load_4(self::substr($key, 12, 4)); - $this->container[8] = self::load_4(self::substr($key, 16, 4)); - $this->container[9] = self::load_4(self::substr($key, 20, 4)); - $this->container[10] = self::load_4(self::substr($key, 24, 4)); - $this->container[11] = self::load_4(self::substr($key, 28, 4)); - - if (empty($counter)) { - $this->container[12] = 0; - $this->container[13] = 0; - } else { - $this->container[12] = self::load_4(self::substr($counter, 0, 4)); - $this->container[13] = self::load_4(self::substr($counter, 4, 4)); - } - $this->container[14] = self::load_4(self::substr($iv, 0, 4)); - $this->container[15] = self::load_4(self::substr($iv, 4, 4)); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $offset - * @param int $value - * @return void - * @psalm-suppress MixedArrayOffset - */ - public function offsetSet($offset, $value) - { - if (!is_int($offset)) { - throw new InvalidArgumentException('Expected an integer'); - } - if (!is_int($value)) { - throw new InvalidArgumentException('Expected an integer'); - } - $this->container[$offset] = $value; - } - - /** - * @internal You should not use this directly from another application - * - * @param int $offset - * @return bool - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $offset - * @return void - * @psalm-suppress MixedArrayOffset - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $offset - * @return mixed|null - * @psalm-suppress MixedArrayOffset - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) - ? $this->container[$offset] - : null; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/ChaCha20/IetfCtx.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/ChaCha20/IetfCtx.php deleted file mode 100644 index 4d63b90..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/ChaCha20/IetfCtx.php +++ /dev/null @@ -1,38 +0,0 @@ -container[12] = self::load_4(self::substr($counter, 0, 4)); - } - $this->container[13] = self::load_4(self::substr($iv, 0, 4)); - $this->container[14] = self::load_4(self::substr($iv, 4, 4)); - $this->container[15] = self::load_4(self::substr($iv, 8, 4)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519.php deleted file mode 100644 index 4402f91..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519.php +++ /dev/null @@ -1,3002 +0,0 @@ - $arr */ - $arr = array(); - for ($i = 0; $i < 10; ++$i) { - $arr[$i] = (int) ($f[$i] + $g[$i]); - } - return ParagonIE_Sodium_Core_Curve25519_Fe::fromArray($arr); - } - - /** - * Constant-time conditional move. - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Fe $f - * @param ParagonIE_Sodium_Core_Curve25519_Fe $g - * @param int $b - * @return ParagonIE_Sodium_Core_Curve25519_Fe - * @psalm-suppress MixedAssignment - */ - public static function fe_cmov( - ParagonIE_Sodium_Core_Curve25519_Fe $f, - ParagonIE_Sodium_Core_Curve25519_Fe $g, - $b = 0 - ) { - /** @var array $h */ - $h = array(); - $b *= -1; - for ($i = 0; $i < 10; ++$i) { - /** @var int $x */ - $x = (($f[$i] ^ $g[$i]) & $b); - $h[$i] = (int) ((int) ($f[$i]) ^ $x); - } - return ParagonIE_Sodium_Core_Curve25519_Fe::fromArray($h); - } - - /** - * Create a copy of a field element. - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Fe $f - * @return ParagonIE_Sodium_Core_Curve25519_Fe - */ - public static function fe_copy(ParagonIE_Sodium_Core_Curve25519_Fe $f) - { - $h = clone $f; - return $h; - } - - /** - * Give: 32-byte string. - * Receive: A field element object to use for internal calculations. - * - * @internal You should not use this directly from another application - * - * @param string $s - * @return ParagonIE_Sodium_Core_Curve25519_Fe - * @throws RangeException - * @throws TypeError - */ - public static function fe_frombytes($s) - { - if (self::strlen($s) !== 32) { - throw new RangeException('Expected a 32-byte string.'); - } - /** @var int $h0 */ - $h0 = self::load_4($s); - /** @var int $h1 */ - $h1 = self::load_3(self::substr($s, 4, 3)) << 6; - /** @var int $h2 */ - $h2 = self::load_3(self::substr($s, 7, 3)) << 5; - /** @var int $h3 */ - $h3 = self::load_3(self::substr($s, 10, 3)) << 3; - /** @var int $h4 */ - $h4 = self::load_3(self::substr($s, 13, 3)) << 2; - /** @var int $h5 */ - $h5 = self::load_4(self::substr($s, 16, 4)); - /** @var int $h6 */ - $h6 = self::load_3(self::substr($s, 20, 3)) << 7; - /** @var int $h7 */ - $h7 = self::load_3(self::substr($s, 23, 3)) << 5; - /** @var int $h8 */ - $h8 = self::load_3(self::substr($s, 26, 3)) << 4; - /** @var int $h9 */ - $h9 = (self::load_3(self::substr($s, 29, 3)) & 8388607) << 2; - - /** @var int $carry9 */ - $carry9 = ($h9 + (1 << 24)) >> 25; - $h0 += self::mul($carry9, 19, 5); - $h9 -= $carry9 << 25; - /** @var int $carry1 */ - $carry1 = ($h1 + (1 << 24)) >> 25; - $h2 += $carry1; - $h1 -= $carry1 << 25; - /** @var int $carry3 */ - $carry3 = ($h3 + (1 << 24)) >> 25; - $h4 += $carry3; - $h3 -= $carry3 << 25; - /** @var int $carry5 */ - $carry5 = ($h5 + (1 << 24)) >> 25; - $h6 += $carry5; - $h5 -= $carry5 << 25; - /** @var int $carry7 */ - $carry7 = ($h7 + (1 << 24)) >> 25; - $h8 += $carry7; - $h7 -= $carry7 << 25; - - /** @var int $carry0 */ - $carry0 = ($h0 + (1 << 25)) >> 26; - $h1 += $carry0; - $h0 -= $carry0 << 26; - /** @var int $carry2 */ - $carry2 = ($h2 + (1 << 25)) >> 26; - $h3 += $carry2; - $h2 -= $carry2 << 26; - /** @var int $carry4 */ - $carry4 = ($h4 + (1 << 25)) >> 26; - $h5 += $carry4; - $h4 -= $carry4 << 26; - /** @var int $carry6 */ - $carry6 = ($h6 + (1 << 25)) >> 26; - $h7 += $carry6; - $h6 -= $carry6 << 26; - /** @var int $carry8 */ - $carry8 = ($h8 + (1 << 25)) >> 26; - $h9 += $carry8; - $h8 -= $carry8 << 26; - - return ParagonIE_Sodium_Core_Curve25519_Fe::fromArray( - array( - (int) $h0, - (int) $h1, - (int) $h2, - (int) $h3, - (int) $h4, - (int) $h5, - (int) $h6, - (int) $h7, - (int) $h8, - (int) $h9 - ) - ); - } - - /** - * Convert a field element to a byte string. - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Fe $h - * @return string - */ - public static function fe_tobytes(ParagonIE_Sodium_Core_Curve25519_Fe $h) - { - /** @var int $h0 */ - $h0 = (int) $h[0]; - /** @var int $h1 */ - $h1 = (int) $h[1]; - /** @var int $h2 */ - $h2 = (int) $h[2]; - /** @var int $h3 */ - $h3 = (int) $h[3]; - /** @var int $h4 */ - $h4 = (int) $h[4]; - /** @var int $h5 */ - $h5 = (int) $h[5]; - /** @var int $h6 */ - $h6 = (int) $h[6]; - /** @var int $h7 */ - $h7 = (int) $h[7]; - /** @var int $h8 */ - $h8 = (int) $h[8]; - /** @var int $h9 */ - $h9 = (int) $h[9]; - - /** @var int $q */ - $q = (self::mul($h9, 19, 5) + (1 << 24)) >> 25; - /** @var int $q */ - $q = ($h0 + $q) >> 26; - /** @var int $q */ - $q = ($h1 + $q) >> 25; - /** @var int $q */ - $q = ($h2 + $q) >> 26; - /** @var int $q */ - $q = ($h3 + $q) >> 25; - /** @var int $q */ - $q = ($h4 + $q) >> 26; - /** @var int $q */ - $q = ($h5 + $q) >> 25; - /** @var int $q */ - $q = ($h6 + $q) >> 26; - /** @var int $q */ - $q = ($h7 + $q) >> 25; - /** @var int $q */ - $q = ($h8 + $q) >> 26; - /** @var int $q */ - $q = ($h9 + $q) >> 25; - - $h0 += self::mul($q, 19, 5); - - /** @var int $carry0 */ - $carry0 = $h0 >> 26; - $h1 += $carry0; - $h0 -= $carry0 << 26; - /** @var int $carry1 */ - $carry1 = $h1 >> 25; - $h2 += $carry1; - $h1 -= $carry1 << 25; - /** @var int $carry2 */ - $carry2 = $h2 >> 26; - $h3 += $carry2; - $h2 -= $carry2 << 26; - /** @var int $carry3 */ - $carry3 = $h3 >> 25; - $h4 += $carry3; - $h3 -= $carry3 << 25; - /** @var int $carry4 */ - $carry4 = $h4 >> 26; - $h5 += $carry4; - $h4 -= $carry4 << 26; - /** @var int $carry5 */ - $carry5 = $h5 >> 25; - $h6 += $carry5; - $h5 -= $carry5 << 25; - /** @var int $carry6 */ - $carry6 = $h6 >> 26; - $h7 += $carry6; - $h6 -= $carry6 << 26; - /** @var int $carry7 */ - $carry7 = $h7 >> 25; - $h8 += $carry7; - $h7 -= $carry7 << 25; - /** @var int $carry8 */ - $carry8 = $h8 >> 26; - $h9 += $carry8; - $h8 -= $carry8 << 26; - /** @var int $carry9 */ - $carry9 = $h9 >> 25; - $h9 -= $carry9 << 25; - - /** - * @var array - */ - $s = array( - (int) (($h0 >> 0) & 0xff), - (int) (($h0 >> 8) & 0xff), - (int) (($h0 >> 16) & 0xff), - (int) ((($h0 >> 24) | ($h1 << 2)) & 0xff), - (int) (($h1 >> 6) & 0xff), - (int) (($h1 >> 14) & 0xff), - (int) ((($h1 >> 22) | ($h2 << 3)) & 0xff), - (int) (($h2 >> 5) & 0xff), - (int) (($h2 >> 13) & 0xff), - (int) ((($h2 >> 21) | ($h3 << 5)) & 0xff), - (int) (($h3 >> 3) & 0xff), - (int) (($h3 >> 11) & 0xff), - (int) ((($h3 >> 19) | ($h4 << 6)) & 0xff), - (int) (($h4 >> 2) & 0xff), - (int) (($h4 >> 10) & 0xff), - (int) (($h4 >> 18) & 0xff), - (int) (($h5 >> 0) & 0xff), - (int) (($h5 >> 8) & 0xff), - (int) (($h5 >> 16) & 0xff), - (int) ((($h5 >> 24) | ($h6 << 1)) & 0xff), - (int) (($h6 >> 7) & 0xff), - (int) (($h6 >> 15) & 0xff), - (int) ((($h6 >> 23) | ($h7 << 3)) & 0xff), - (int) (($h7 >> 5) & 0xff), - (int) (($h7 >> 13) & 0xff), - (int) ((($h7 >> 21) | ($h8 << 4)) & 0xff), - (int) (($h8 >> 4) & 0xff), - (int) (($h8 >> 12) & 0xff), - (int) ((($h8 >> 20) | ($h9 << 6)) & 0xff), - (int) (($h9 >> 2) & 0xff), - (int) (($h9 >> 10) & 0xff), - (int) (($h9 >> 18) & 0xff) - ); - return self::intArrayToString($s); - } - - /** - * Is a field element negative? (1 = yes, 0 = no. Used in calculations.) - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Fe $f - * @return int - * @throws SodiumException - * @throws TypeError - */ - public static function fe_isnegative(ParagonIE_Sodium_Core_Curve25519_Fe $f) - { - $str = self::fe_tobytes($f); - return (int) (self::chrToInt($str[0]) & 1); - } - - /** - * Returns 0 if this field element results in all NUL bytes. - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Fe $f - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function fe_isnonzero(ParagonIE_Sodium_Core_Curve25519_Fe $f) - { - static $zero; - if ($zero === null) { - $zero = str_repeat("\x00", 32); - } - /** @var string $zero */ - /** @var string $str */ - $str = self::fe_tobytes($f); - return !self::verify_32($str, (string) $zero); - } - - /** - * Multiply two field elements - * - * h = f * g - * - * @internal You should not use this directly from another application - * - * @security Is multiplication a source of timing leaks? If so, can we do - * anything to prevent that from happening? - * - * @param ParagonIE_Sodium_Core_Curve25519_Fe $f - * @param ParagonIE_Sodium_Core_Curve25519_Fe $g - * @return ParagonIE_Sodium_Core_Curve25519_Fe - */ - public static function fe_mul( - ParagonIE_Sodium_Core_Curve25519_Fe $f, - ParagonIE_Sodium_Core_Curve25519_Fe $g - ) { - /** @var int $f0 */ - $f0 = $f[0]; - /** @var int $f1 */ - $f1 = $f[1]; - /** @var int $f2 */ - $f2 = $f[2]; - /** @var int $f3 */ - $f3 = $f[3]; - /** @var int $f4 */ - $f4 = $f[4]; - /** @var int $f5 */ - $f5 = $f[5]; - /** @var int $f6 */ - $f6 = $f[6]; - /** @var int $f7 */ - $f7 = $f[7]; - /** @var int $f8 */ - $f8 = $f[8]; - /** @var int $f9 */ - $f9 = $f[9]; - /** @var int $g0 */ - $g0 = $g[0]; - /** @var int $g1 */ - $g1 = $g[1]; - /** @var int $g2 */ - $g2 = $g[2]; - /** @var int $g3 */ - $g3 = $g[3]; - /** @var int $g4 */ - $g4 = $g[4]; - /** @var int $g5 */ - $g5 = $g[5]; - /** @var int $g6 */ - $g6 = $g[6]; - /** @var int $g7 */ - $g7 = $g[7]; - /** @var int $g8 */ - $g8 = $g[8]; - /** @var int $g9 */ - $g9 = $g[9]; - $g1_19 = self::mul($g1, 19, 5); - $g2_19 = self::mul($g2, 19, 5); - $g3_19 = self::mul($g3, 19, 5); - $g4_19 = self::mul($g4, 19, 5); - $g5_19 = self::mul($g5, 19, 5); - $g6_19 = self::mul($g6, 19, 5); - $g7_19 = self::mul($g7, 19, 5); - $g8_19 = self::mul($g8, 19, 5); - $g9_19 = self::mul($g9, 19, 5); - /** @var int $f1_2 */ - $f1_2 = $f1 << 1; - /** @var int $f3_2 */ - $f3_2 = $f3 << 1; - /** @var int $f5_2 */ - $f5_2 = $f5 << 1; - /** @var int $f7_2 */ - $f7_2 = $f7 << 1; - /** @var int $f9_2 */ - $f9_2 = $f9 << 1; - $f0g0 = self::mul($f0, $g0, 26); - $f0g1 = self::mul($f0, $g1, 25); - $f0g2 = self::mul($f0, $g2, 26); - $f0g3 = self::mul($f0, $g3, 25); - $f0g4 = self::mul($f0, $g4, 26); - $f0g5 = self::mul($f0, $g5, 25); - $f0g6 = self::mul($f0, $g6, 26); - $f0g7 = self::mul($f0, $g7, 25); - $f0g8 = self::mul($f0, $g8, 26); - $f0g9 = self::mul($f0, $g9, 26); - $f1g0 = self::mul($f1, $g0, 26); - $f1g1_2 = self::mul($f1_2, $g1, 25); - $f1g2 = self::mul($f1, $g2, 26); - $f1g3_2 = self::mul($f1_2, $g3, 25); - $f1g4 = self::mul($f1, $g4, 26); - $f1g5_2 = self::mul($f1_2, $g5, 25); - $f1g6 = self::mul($f1, $g6, 26); - $f1g7_2 = self::mul($f1_2, $g7, 25); - $f1g8 = self::mul($f1, $g8, 26); - $f1g9_38 = self::mul($g9_19, $f1_2, 26); - $f2g0 = self::mul($f2, $g0, 26); - $f2g1 = self::mul($f2, $g1, 25); - $f2g2 = self::mul($f2, $g2, 26); - $f2g3 = self::mul($f2, $g3, 25); - $f2g4 = self::mul($f2, $g4, 26); - $f2g5 = self::mul($f2, $g5, 25); - $f2g6 = self::mul($f2, $g6, 26); - $f2g7 = self::mul($f2, $g7, 25); - $f2g8_19 = self::mul($g8_19, $f2, 26); - $f2g9_19 = self::mul($g9_19, $f2, 26); - $f3g0 = self::mul($f3, $g0, 26); - $f3g1_2 = self::mul($f3_2, $g1, 25); - $f3g2 = self::mul($f3, $g2, 26); - $f3g3_2 = self::mul($f3_2, $g3, 25); - $f3g4 = self::mul($f3, $g4, 26); - $f3g5_2 = self::mul($f3_2, $g5, 25); - $f3g6 = self::mul($f3, $g6, 26); - $f3g7_38 = self::mul($g7_19, $f3_2, 26); - $f3g8_19 = self::mul($g8_19, $f3, 25); - $f3g9_38 = self::mul($g9_19, $f3_2, 26); - $f4g0 = self::mul($f4, $g0, 26); - $f4g1 = self::mul($f4, $g1, 25); - $f4g2 = self::mul($f4, $g2, 26); - $f4g3 = self::mul($f4, $g3, 25); - $f4g4 = self::mul($f4, $g4, 26); - $f4g5 = self::mul($f4, $g5, 25); - $f4g6_19 = self::mul($g6_19, $f4, 26); - $f4g7_19 = self::mul($g7_19, $f4, 26); - $f4g8_19 = self::mul($g8_19, $f4, 26); - $f4g9_19 = self::mul($g9_19, $f4, 26); - $f5g0 = self::mul($f5, $g0, 26); - $f5g1_2 = self::mul($f5_2, $g1, 25); - $f5g2 = self::mul($f5, $g2, 26); - $f5g3_2 = self::mul($f5_2, $g3, 25); - $f5g4 = self::mul($f5, $g4, 26); - $f5g5_38 = self::mul($g5_19, $f5_2, 26); - $f5g6_19 = self::mul($g6_19, $f5, 25); - $f5g7_38 = self::mul($g7_19, $f5_2, 26); - $f5g8_19 = self::mul($g8_19, $f5, 25); - $f5g9_38 = self::mul($g9_19, $f5_2, 26); - $f6g0 = self::mul($f6, $g0, 26); - $f6g1 = self::mul($f6, $g1, 25); - $f6g2 = self::mul($f6, $g2, 26); - $f6g3 = self::mul($f6, $g3, 25); - $f6g4_19 = self::mul($g4_19, $f6, 26); - $f6g5_19 = self::mul($g5_19, $f6, 26); - $f6g6_19 = self::mul($g6_19, $f6, 26); - $f6g7_19 = self::mul($g7_19, $f6, 26); - $f6g8_19 = self::mul($g8_19, $f6, 26); - $f6g9_19 = self::mul($g9_19, $f6, 26); - $f7g0 = self::mul($f7, $g0, 26); - $f7g1_2 = self::mul($f7_2, $g1, 25); - $f7g2 = self::mul($f7, $g2, 26); - $f7g3_38 = self::mul($g3_19, $f7_2, 26); - $f7g4_19 = self::mul($g4_19, $f7, 26); - $f7g5_38 = self::mul($g5_19, $f7_2, 26); - $f7g6_19 = self::mul($g6_19, $f7, 25); - $f7g7_38 = self::mul($g7_19, $f7_2, 26); - $f7g8_19 = self::mul($g8_19, $f7, 25); - $f7g9_38 = self::mul($g9_19,$f7_2, 26); - $f8g0 = self::mul($f8, $g0, 26); - $f8g1 = self::mul($f8, $g1, 25); - $f8g2_19 = self::mul($g2_19, $f8, 26); - $f8g3_19 = self::mul($g3_19, $f8, 26); - $f8g4_19 = self::mul($g4_19, $f8, 26); - $f8g5_19 = self::mul($g5_19, $f8, 26); - $f8g6_19 = self::mul($g6_19, $f8, 26); - $f8g7_19 = self::mul($g7_19, $f8, 26); - $f8g8_19 = self::mul($g8_19, $f8, 26); - $f8g9_19 = self::mul($g9_19, $f8, 26); - $f9g0 = self::mul($f9, $g0, 26); - $f9g1_38 = self::mul($g1_19, $f9_2, 26); - $f9g2_19 = self::mul($g2_19, $f9, 25); - $f9g3_38 = self::mul($g3_19, $f9_2, 26); - $f9g4_19 = self::mul($g4_19, $f9, 25); - $f9g5_38 = self::mul($g5_19, $f9_2, 26); - $f9g6_19 = self::mul($g6_19, $f9, 25); - $f9g7_38 = self::mul($g7_19, $f9_2, 26); - $f9g8_19 = self::mul($g8_19, $f9, 25); - $f9g9_38 = self::mul($g9_19, $f9_2, 26); - $h0 = $f0g0 + $f1g9_38 + $f2g8_19 + $f3g7_38 + $f4g6_19 + $f5g5_38 + $f6g4_19 + $f7g3_38 + $f8g2_19 + $f9g1_38; - $h1 = $f0g1 + $f1g0 + $f2g9_19 + $f3g8_19 + $f4g7_19 + $f5g6_19 + $f6g5_19 + $f7g4_19 + $f8g3_19 + $f9g2_19; - $h2 = $f0g2 + $f1g1_2 + $f2g0 + $f3g9_38 + $f4g8_19 + $f5g7_38 + $f6g6_19 + $f7g5_38 + $f8g4_19 + $f9g3_38; - $h3 = $f0g3 + $f1g2 + $f2g1 + $f3g0 + $f4g9_19 + $f5g8_19 + $f6g7_19 + $f7g6_19 + $f8g5_19 + $f9g4_19; - $h4 = $f0g4 + $f1g3_2 + $f2g2 + $f3g1_2 + $f4g0 + $f5g9_38 + $f6g8_19 + $f7g7_38 + $f8g6_19 + $f9g5_38; - $h5 = $f0g5 + $f1g4 + $f2g3 + $f3g2 + $f4g1 + $f5g0 + $f6g9_19 + $f7g8_19 + $f8g7_19 + $f9g6_19; - $h6 = $f0g6 + $f1g5_2 + $f2g4 + $f3g3_2 + $f4g2 + $f5g1_2 + $f6g0 + $f7g9_38 + $f8g8_19 + $f9g7_38; - $h7 = $f0g7 + $f1g6 + $f2g5 + $f3g4 + $f4g3 + $f5g2 + $f6g1 + $f7g0 + $f8g9_19 + $f9g8_19; - $h8 = $f0g8 + $f1g7_2 + $f2g6 + $f3g5_2 + $f4g4 + $f5g3_2 + $f6g2 + $f7g1_2 + $f8g0 + $f9g9_38; - $h9 = $f0g9 + $f1g8 + $f2g7 + $f3g6 + $f4g5 + $f5g4 + $f6g3 + $f7g2 + $f8g1 + $f9g0 ; - - /** @var int $carry0 */ - $carry0 = ($h0 + (1 << 25)) >> 26; - $h1 += $carry0; - $h0 -= $carry0 << 26; - /** @var int $carry4 */ - $carry4 = ($h4 + (1 << 25)) >> 26; - $h5 += $carry4; - $h4 -= $carry4 << 26; - - /** @var int $carry1 */ - $carry1 = ($h1 + (1 << 24)) >> 25; - $h2 += $carry1; - $h1 -= $carry1 << 25; - /** @var int $carry5 */ - $carry5 = ($h5 + (1 << 24)) >> 25; - $h6 += $carry5; - $h5 -= $carry5 << 25; - - /** @var int $carry2 */ - $carry2 = ($h2 + (1 << 25)) >> 26; - $h3 += $carry2; - $h2 -= $carry2 << 26; - /** @var int $carry6 */ - $carry6 = ($h6 + (1 << 25)) >> 26; - $h7 += $carry6; - $h6 -= $carry6 << 26; - - /** @var int $carry3 */ - $carry3 = ($h3 + (1 << 24)) >> 25; - $h4 += $carry3; - $h3 -= $carry3 << 25; - /** @var int $carry7 */ - $carry7 = ($h7 + (1 << 24)) >> 25; - $h8 += $carry7; - $h7 -= $carry7 << 25; - - /** @var int $carry4 */ - $carry4 = ($h4 + (1 << 25)) >> 26; - $h5 += $carry4; - $h4 -= $carry4 << 26; - /** @var int $carry8 */ - $carry8 = ($h8 + (1 << 25)) >> 26; - $h9 += $carry8; - $h8 -= $carry8 << 26; - - /** @var int $carry9 */ - $carry9 = ($h9 + (1 << 24)) >> 25; - $h0 += self::mul($carry9, 19, 5); - $h9 -= $carry9 << 25; - - /** @var int $carry0 */ - $carry0 = ($h0 + (1 << 25)) >> 26; - $h1 += $carry0; - $h0 -= $carry0 << 26; - - return ParagonIE_Sodium_Core_Curve25519_Fe::fromArray( - array( - (int) $h0, - (int) $h1, - (int) $h2, - (int) $h3, - (int) $h4, - (int) $h5, - (int) $h6, - (int) $h7, - (int) $h8, - (int) $h9 - ) - ); - } - - /** - * Get the negative values for each piece of the field element. - * - * h = -f - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Fe $f - * @return ParagonIE_Sodium_Core_Curve25519_Fe - * @psalm-suppress MixedAssignment - */ - public static function fe_neg(ParagonIE_Sodium_Core_Curve25519_Fe $f) - { - $h = new ParagonIE_Sodium_Core_Curve25519_Fe(); - for ($i = 0; $i < 10; ++$i) { - $h[$i] = -$f[$i]; - } - return $h; - } - - /** - * Square a field element - * - * h = f * f - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Fe $f - * @return ParagonIE_Sodium_Core_Curve25519_Fe - */ - public static function fe_sq(ParagonIE_Sodium_Core_Curve25519_Fe $f) - { - $f0 = (int) $f[0]; - $f1 = (int) $f[1]; - $f2 = (int) $f[2]; - $f3 = (int) $f[3]; - $f4 = (int) $f[4]; - $f5 = (int) $f[5]; - $f6 = (int) $f[6]; - $f7 = (int) $f[7]; - $f8 = (int) $f[8]; - $f9 = (int) $f[9]; - - /** @var int $f0_2 */ - $f0_2 = $f0 << 1; - /** @var int $f1_2 */ - $f1_2 = $f1 << 1; - /** @var int $f2_2 */ - $f2_2 = $f2 << 1; - /** @var int $f3_2 */ - $f3_2 = $f3 << 1; - /** @var int $f4_2 */ - $f4_2 = $f4 << 1; - /** @var int $f5_2 */ - $f5_2 = $f5 << 1; - /** @var int $f6_2 */ - $f6_2 = $f6 << 1; - /** @var int $f7_2 */ - $f7_2 = $f7 << 1; - $f5_38 = self::mul($f5, 38, 6); - $f6_19 = self::mul($f6, 19, 5); - $f7_38 = self::mul($f7, 38, 6); - $f8_19 = self::mul($f8, 19, 5); - $f9_38 = self::mul($f9, 38, 6); - $f0f0 = self::mul($f0, $f0, 25); - $f0f1_2 = self::mul($f0_2, $f1, 24); - $f0f2_2 = self::mul($f0_2, $f2, 25); - $f0f3_2 = self::mul($f0_2, $f3, 24); - $f0f4_2 = self::mul($f0_2, $f4, 25); - $f0f5_2 = self::mul($f0_2, $f5, 25); - $f0f6_2 = self::mul($f0_2, $f6, 25); - $f0f7_2 = self::mul($f0_2, $f7, 24); - $f0f8_2 = self::mul($f0_2, $f8, 25); - $f0f9_2 = self::mul($f0_2, $f9, 25); - $f1f1_2 = self::mul($f1_2, $f1, 24); - $f1f2_2 = self::mul($f1_2, $f2, 25); - $f1f3_4 = self::mul($f1_2, $f3_2, 25); - $f1f4_2 = self::mul($f1_2, $f4, 25); - $f1f5_4 = self::mul($f1_2, $f5_2, 26); - $f1f6_2 = self::mul($f1_2, $f6, 25); - $f1f7_4 = self::mul($f1_2, $f7_2, 25); - $f1f8_2 = self::mul($f1_2, $f8, 25); - $f1f9_76 = self::mul($f9_38, $f1_2, 25); - $f2f2 = self::mul($f2, $f2, 25); - $f2f3_2 = self::mul($f2_2, $f3, 24); - $f2f4_2 = self::mul($f2_2, $f4, 25); - $f2f5_2 = self::mul($f2_2, $f5, 25); - $f2f6_2 = self::mul($f2_2, $f6, 25); - $f2f7_2 = self::mul($f2_2, $f7, 24); - $f2f8_38 = self::mul($f8_19, $f2_2, 26); - $f2f9_38 = self::mul($f9_38, $f2, 25); - $f3f3_2 = self::mul($f3_2, $f3, 24); - $f3f4_2 = self::mul($f3_2, $f4, 25); - $f3f5_4 = self::mul($f3_2, $f5_2, 26); - $f3f6_2 = self::mul($f3_2, $f6, 25); - $f3f7_76 = self::mul($f7_38, $f3_2, 25); - $f3f8_38 = self::mul($f8_19, $f3_2, 25); - $f3f9_76 = self::mul($f9_38, $f3_2, 25); - $f4f4 = self::mul($f4, $f4, 25); - $f4f5_2 = self::mul($f4_2, $f5, 25); - $f4f6_38 = self::mul($f6_19, $f4_2, 26); - $f4f7_38 = self::mul($f7_38, $f4, 25); - $f4f8_38 = self::mul($f8_19, $f4_2, 26); - $f4f9_38 = self::mul($f9_38, $f4, 25); - $f5f5_38 = self::mul($f5_38, $f5, 25); - $f5f6_38 = self::mul($f6_19, $f5_2, 26); - $f5f7_76 = self::mul($f7_38, $f5_2, 26); - $f5f8_38 = self::mul($f8_19, $f5_2, 26); - $f5f9_76 = self::mul($f9_38, $f5_2, 26); - $f6f6_19 = self::mul($f6_19, $f6, 25); - $f6f7_38 = self::mul($f7_38, $f6, 25); - $f6f8_38 = self::mul($f8_19, $f6_2, 26); - $f6f9_38 = self::mul($f9_38, $f6, 25); - $f7f7_38 = self::mul($f7_38, $f7, 24); - $f7f8_38 = self::mul($f8_19, $f7_2, 25); - $f7f9_76 = self::mul($f9_38, $f7_2, 25); - $f8f8_19 = self::mul($f8_19, $f8, 25); - $f8f9_38 = self::mul($f9_38, $f8, 25); - $f9f9_38 = self::mul($f9_38, $f9, 25); - $h0 = $f0f0 + $f1f9_76 + $f2f8_38 + $f3f7_76 + $f4f6_38 + $f5f5_38; - $h1 = $f0f1_2 + $f2f9_38 + $f3f8_38 + $f4f7_38 + $f5f6_38; - $h2 = $f0f2_2 + $f1f1_2 + $f3f9_76 + $f4f8_38 + $f5f7_76 + $f6f6_19; - $h3 = $f0f3_2 + $f1f2_2 + $f4f9_38 + $f5f8_38 + $f6f7_38; - $h4 = $f0f4_2 + $f1f3_4 + $f2f2 + $f5f9_76 + $f6f8_38 + $f7f7_38; - $h5 = $f0f5_2 + $f1f4_2 + $f2f3_2 + $f6f9_38 + $f7f8_38; - $h6 = $f0f6_2 + $f1f5_4 + $f2f4_2 + $f3f3_2 + $f7f9_76 + $f8f8_19; - $h7 = $f0f7_2 + $f1f6_2 + $f2f5_2 + $f3f4_2 + $f8f9_38; - $h8 = $f0f8_2 + $f1f7_4 + $f2f6_2 + $f3f5_4 + $f4f4 + $f9f9_38; - $h9 = $f0f9_2 + $f1f8_2 + $f2f7_2 + $f3f6_2 + $f4f5_2; - - /** @var int $carry0 */ - $carry0 = ($h0 + (1 << 25)) >> 26; - $h1 += $carry0; - $h0 -= $carry0 << 26; - /** @var int $carry4 */ - $carry4 = ($h4 + (1 << 25)) >> 26; - $h5 += $carry4; - $h4 -= $carry4 << 26; - - /** @var int $carry1 */ - $carry1 = ($h1 + (1 << 24)) >> 25; - $h2 += $carry1; - $h1 -= $carry1 << 25; - /** @var int $carry5 */ - $carry5 = ($h5 + (1 << 24)) >> 25; - $h6 += $carry5; - $h5 -= $carry5 << 25; - - /** @var int $carry2 */ - $carry2 = ($h2 + (1 << 25)) >> 26; - $h3 += $carry2; - $h2 -= $carry2 << 26; - /** @var int $carry6 */ - $carry6 = ($h6 + (1 << 25)) >> 26; - $h7 += $carry6; - $h6 -= $carry6 << 26; - - /** @var int $carry3 */ - $carry3 = ($h3 + (1 << 24)) >> 25; - $h4 += $carry3; - $h3 -= $carry3 << 25; - /** @var int $carry7 */ - $carry7 = ($h7 + (1 << 24)) >> 25; - $h8 += $carry7; - $h7 -= $carry7 << 25; - - /** @var int $carry4 */ - $carry4 = ($h4 + (1 << 25)) >> 26; - $h5 += $carry4; - $h4 -= $carry4 << 26; - /** @var int $carry8 */ - $carry8 = ($h8 + (1 << 25)) >> 26; - $h9 += $carry8; - $h8 -= $carry8 << 26; - - /** @var int $carry9 */ - $carry9 = ($h9 + (1 << 24)) >> 25; - $h0 += self::mul($carry9, 19, 5); - $h9 -= $carry9 << 25; - - /** @var int $carry0 */ - $carry0 = ($h0 + (1 << 25)) >> 26; - $h1 += $carry0; - $h0 -= $carry0 << 26; - - return ParagonIE_Sodium_Core_Curve25519_Fe::fromArray( - array( - (int) $h0, - (int) $h1, - (int) $h2, - (int) $h3, - (int) $h4, - (int) $h5, - (int) $h6, - (int) $h7, - (int) $h8, - (int) $h9 - ) - ); - } - - - /** - * Square and double a field element - * - * h = 2 * f * f - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Fe $f - * @return ParagonIE_Sodium_Core_Curve25519_Fe - */ - public static function fe_sq2(ParagonIE_Sodium_Core_Curve25519_Fe $f) - { - $f0 = (int) $f[0]; - $f1 = (int) $f[1]; - $f2 = (int) $f[2]; - $f3 = (int) $f[3]; - $f4 = (int) $f[4]; - $f5 = (int) $f[5]; - $f6 = (int) $f[6]; - $f7 = (int) $f[7]; - $f8 = (int) $f[8]; - $f9 = (int) $f[9]; - - /** @var int $f0_2 */ - $f0_2 = $f0 << 1; - /** @var int $f1_2 */ - $f1_2 = $f1 << 1; - /** @var int $f2_2 */ - $f2_2 = $f2 << 1; - /** @var int $f3_2 */ - $f3_2 = $f3 << 1; - /** @var int $f4_2 */ - $f4_2 = $f4 << 1; - /** @var int $f5_2 */ - $f5_2 = $f5 << 1; - /** @var int $f6_2 */ - $f6_2 = $f6 << 1; - /** @var int $f7_2 */ - $f7_2 = $f7 << 1; - $f5_38 = self::mul($f5, 38, 6); /* 1.959375*2^30 */ - $f6_19 = self::mul($f6, 19, 5); /* 1.959375*2^30 */ - $f7_38 = self::mul($f7, 38, 6); /* 1.959375*2^30 */ - $f8_19 = self::mul($f8, 19, 5); /* 1.959375*2^30 */ - $f9_38 = self::mul($f9, 38, 6); /* 1.959375*2^30 */ - $f0f0 = self::mul($f0, $f0, 24); - $f0f1_2 = self::mul($f0_2, $f1, 24); - $f0f2_2 = self::mul($f0_2, $f2, 24); - $f0f3_2 = self::mul($f0_2, $f3, 24); - $f0f4_2 = self::mul($f0_2, $f4, 24); - $f0f5_2 = self::mul($f0_2, $f5, 24); - $f0f6_2 = self::mul($f0_2, $f6, 24); - $f0f7_2 = self::mul($f0_2, $f7, 24); - $f0f8_2 = self::mul($f0_2, $f8, 24); - $f0f9_2 = self::mul($f0_2, $f9, 24); - $f1f1_2 = self::mul($f1_2, $f1, 24); - $f1f2_2 = self::mul($f1_2, $f2, 24); - $f1f3_4 = self::mul($f1_2, $f3_2, 24); - $f1f4_2 = self::mul($f1_2, $f4, 24); - $f1f5_4 = self::mul($f1_2, $f5_2, 24); - $f1f6_2 = self::mul($f1_2, $f6, 24); - $f1f7_4 = self::mul($f1_2, $f7_2, 24); - $f1f8_2 = self::mul($f1_2, $f8, 24); - $f1f9_76 = self::mul($f9_38, $f1_2, 24); - $f2f2 = self::mul($f2, $f2, 24); - $f2f3_2 = self::mul($f2_2, $f3, 24); - $f2f4_2 = self::mul($f2_2, $f4, 24); - $f2f5_2 = self::mul($f2_2, $f5, 24); - $f2f6_2 = self::mul($f2_2, $f6, 24); - $f2f7_2 = self::mul($f2_2, $f7, 24); - $f2f8_38 = self::mul($f8_19, $f2_2, 25); - $f2f9_38 = self::mul($f9_38, $f2, 24); - $f3f3_2 = self::mul($f3_2, $f3, 24); - $f3f4_2 = self::mul($f3_2, $f4, 24); - $f3f5_4 = self::mul($f3_2, $f5_2, 24); - $f3f6_2 = self::mul($f3_2, $f6, 24); - $f3f7_76 = self::mul($f7_38, $f3_2, 24); - $f3f8_38 = self::mul($f8_19, $f3_2, 24); - $f3f9_76 = self::mul($f9_38, $f3_2, 24); - $f4f4 = self::mul($f4, $f4, 24); - $f4f5_2 = self::mul($f4_2, $f5, 24); - $f4f6_38 = self::mul($f6_19, $f4_2, 25); - $f4f7_38 = self::mul($f7_38, $f4, 24); - $f4f8_38 = self::mul($f8_19, $f4_2, 25); - $f4f9_38 = self::mul($f9_38, $f4, 24); - $f5f5_38 = self::mul($f5_38, $f5, 24); - $f5f6_38 = self::mul($f6_19, $f5_2, 24); - $f5f7_76 = self::mul($f7_38, $f5_2, 24); - $f5f8_38 = self::mul($f8_19, $f5_2, 24); - $f5f9_76 = self::mul($f9_38, $f5_2, 24); - $f6f6_19 = self::mul($f6_19, $f6, 24); - $f6f7_38 = self::mul($f7_38, $f6, 24); - $f6f8_38 = self::mul($f8_19, $f6_2, 25); - $f6f9_38 = self::mul($f9_38, $f6, 24); - $f7f7_38 = self::mul($f7_38, $f7, 24); - $f7f8_38 = self::mul($f8_19, $f7_2, 24); - $f7f9_76 = self::mul($f9_38, $f7_2, 24); - $f8f8_19 = self::mul($f8_19, $f8, 24); - $f8f9_38 = self::mul($f9_38, $f8, 24); - $f9f9_38 = self::mul($f9_38, $f9, 24); - - /** @var int $h0 */ - $h0 = (int) ($f0f0 + $f1f9_76 + $f2f8_38 + $f3f7_76 + $f4f6_38 + $f5f5_38) << 1; - /** @var int $h1 */ - $h1 = (int) ($f0f1_2 + $f2f9_38 + $f3f8_38 + $f4f7_38 + $f5f6_38) << 1; - /** @var int $h2 */ - $h2 = (int) ($f0f2_2 + $f1f1_2 + $f3f9_76 + $f4f8_38 + $f5f7_76 + $f6f6_19) << 1; - /** @var int $h3 */ - $h3 = (int) ($f0f3_2 + $f1f2_2 + $f4f9_38 + $f5f8_38 + $f6f7_38) << 1; - /** @var int $h4 */ - $h4 = (int) ($f0f4_2 + $f1f3_4 + $f2f2 + $f5f9_76 + $f6f8_38 + $f7f7_38) << 1; - /** @var int $h5 */ - $h5 = (int) ($f0f5_2 + $f1f4_2 + $f2f3_2 + $f6f9_38 + $f7f8_38) << 1; - /** @var int $h6 */ - $h6 = (int) ($f0f6_2 + $f1f5_4 + $f2f4_2 + $f3f3_2 + $f7f9_76 + $f8f8_19) << 1; - /** @var int $h7 */ - $h7 = (int) ($f0f7_2 + $f1f6_2 + $f2f5_2 + $f3f4_2 + $f8f9_38) << 1; - /** @var int $h8 */ - $h8 = (int) ($f0f8_2 + $f1f7_4 + $f2f6_2 + $f3f5_4 + $f4f4 + $f9f9_38) << 1; - /** @var int $h9 */ - $h9 = (int) ($f0f9_2 + $f1f8_2 + $f2f7_2 + $f3f6_2 + $f4f5_2) << 1; - - /** @var int $carry0 */ - $carry0 = ($h0 + (1 << 25)) >> 26; - $h1 += $carry0; - $h0 -= $carry0 << 26; - /** @var int $carry4 */ - $carry4 = ($h4 + (1 << 25)) >> 26; - $h5 += $carry4; - $h4 -= $carry4 << 26; - - /** @var int $carry1 */ - $carry1 = ($h1 + (1 << 24)) >> 25; - $h2 += $carry1; - $h1 -= $carry1 << 25; - /** @var int $carry5 */ - $carry5 = ($h5 + (1 << 24)) >> 25; - $h6 += $carry5; - $h5 -= $carry5 << 25; - - /** @var int $carry2 */ - $carry2 = ($h2 + (1 << 25)) >> 26; - $h3 += $carry2; - $h2 -= $carry2 << 26; - /** @var int $carry6 */ - $carry6 = ($h6 + (1 << 25)) >> 26; - $h7 += $carry6; - $h6 -= $carry6 << 26; - - /** @var int $carry3 */ - $carry3 = ($h3 + (1 << 24)) >> 25; - $h4 += $carry3; - $h3 -= $carry3 << 25; - /** @var int $carry7 */ - $carry7 = ($h7 + (1 << 24)) >> 25; - $h8 += $carry7; - $h7 -= $carry7 << 25; - - /** @var int $carry4 */ - $carry4 = ($h4 + (1 << 25)) >> 26; - $h5 += $carry4; - $h4 -= $carry4 << 26; - /** @var int $carry8 */ - $carry8 = ($h8 + (1 << 25)) >> 26; - $h9 += $carry8; - $h8 -= $carry8 << 26; - - /** @var int $carry9 */ - $carry9 = ($h9 + (1 << 24)) >> 25; - $h0 += self::mul($carry9, 19, 5); - $h9 -= $carry9 << 25; - - /** @var int $carry0 */ - $carry0 = ($h0 + (1 << 25)) >> 26; - $h1 += $carry0; - $h0 -= $carry0 << 26; - - return ParagonIE_Sodium_Core_Curve25519_Fe::fromArray( - array( - (int) $h0, - (int) $h1, - (int) $h2, - (int) $h3, - (int) $h4, - (int) $h5, - (int) $h6, - (int) $h7, - (int) $h8, - (int) $h9 - ) - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Fe $Z - * @return ParagonIE_Sodium_Core_Curve25519_Fe - */ - public static function fe_invert(ParagonIE_Sodium_Core_Curve25519_Fe $Z) - { - $z = clone $Z; - $t0 = self::fe_sq($z); - $t1 = self::fe_sq($t0); - $t1 = self::fe_sq($t1); - $t1 = self::fe_mul($z, $t1); - $t0 = self::fe_mul($t0, $t1); - $t2 = self::fe_sq($t0); - $t1 = self::fe_mul($t1, $t2); - $t2 = self::fe_sq($t1); - for ($i = 1; $i < 5; ++$i) { - $t2 = self::fe_sq($t2); - } - $t1 = self::fe_mul($t2, $t1); - $t2 = self::fe_sq($t1); - for ($i = 1; $i < 10; ++$i) { - $t2 = self::fe_sq($t2); - } - $t2 = self::fe_mul($t2, $t1); - $t3 = self::fe_sq($t2); - for ($i = 1; $i < 20; ++$i) { - $t3 = self::fe_sq($t3); - } - $t2 = self::fe_mul($t3, $t2); - $t2 = self::fe_sq($t2); - for ($i = 1; $i < 10; ++$i) { - $t2 = self::fe_sq($t2); - } - $t1 = self::fe_mul($t2, $t1); - $t2 = self::fe_sq($t1); - for ($i = 1; $i < 50; ++$i) { - $t2 = self::fe_sq($t2); - } - $t2 = self::fe_mul($t2, $t1); - $t3 = self::fe_sq($t2); - for ($i = 1; $i < 100; ++$i) { - $t3 = self::fe_sq($t3); - } - $t2 = self::fe_mul($t3, $t2); - $t2 = self::fe_sq($t2); - for ($i = 1; $i < 50; ++$i) { - $t2 = self::fe_sq($t2); - } - $t1 = self::fe_mul($t2, $t1); - $t1 = self::fe_sq($t1); - for ($i = 1; $i < 5; ++$i) { - $t1 = self::fe_sq($t1); - } - return self::fe_mul($t1, $t0); - } - - /** - * @internal You should not use this directly from another application - * - * @ref https://github.com/jedisct1/libsodium/blob/68564326e1e9dc57ef03746f85734232d20ca6fb/src/libsodium/crypto_core/curve25519/ref10/curve25519_ref10.c#L1054-L1106 - * - * @param ParagonIE_Sodium_Core_Curve25519_Fe $z - * @return ParagonIE_Sodium_Core_Curve25519_Fe - */ - public static function fe_pow22523(ParagonIE_Sodium_Core_Curve25519_Fe $z) - { - # fe_sq(t0, z); - # fe_sq(t1, t0); - # fe_sq(t1, t1); - # fe_mul(t1, z, t1); - # fe_mul(t0, t0, t1); - # fe_sq(t0, t0); - # fe_mul(t0, t1, t0); - # fe_sq(t1, t0); - $t0 = self::fe_sq($z); - $t1 = self::fe_sq($t0); - $t1 = self::fe_sq($t1); - $t1 = self::fe_mul($z, $t1); - $t0 = self::fe_mul($t0, $t1); - $t0 = self::fe_sq($t0); - $t0 = self::fe_mul($t1, $t0); - $t1 = self::fe_sq($t0); - - # for (i = 1; i < 5; ++i) { - # fe_sq(t1, t1); - # } - for ($i = 1; $i < 5; ++$i) { - $t1 = self::fe_sq($t1); - } - - # fe_mul(t0, t1, t0); - # fe_sq(t1, t0); - $t0 = self::fe_mul($t1, $t0); - $t1 = self::fe_sq($t0); - - # for (i = 1; i < 10; ++i) { - # fe_sq(t1, t1); - # } - for ($i = 1; $i < 10; ++$i) { - $t1 = self::fe_sq($t1); - } - - # fe_mul(t1, t1, t0); - # fe_sq(t2, t1); - $t1 = self::fe_mul($t1, $t0); - $t2 = self::fe_sq($t1); - - # for (i = 1; i < 20; ++i) { - # fe_sq(t2, t2); - # } - for ($i = 1; $i < 20; ++$i) { - $t2 = self::fe_sq($t2); - } - - # fe_mul(t1, t2, t1); - # fe_sq(t1, t1); - $t1 = self::fe_mul($t2, $t1); - $t1 = self::fe_sq($t1); - - # for (i = 1; i < 10; ++i) { - # fe_sq(t1, t1); - # } - for ($i = 1; $i < 10; ++$i) { - $t1 = self::fe_sq($t1); - } - - # fe_mul(t0, t1, t0); - # fe_sq(t1, t0); - $t0 = self::fe_mul($t1, $t0); - $t1 = self::fe_sq($t0); - - # for (i = 1; i < 50; ++i) { - # fe_sq(t1, t1); - # } - for ($i = 1; $i < 50; ++$i) { - $t1 = self::fe_sq($t1); - } - - # fe_mul(t1, t1, t0); - # fe_sq(t2, t1); - $t1 = self::fe_mul($t1, $t0); - $t2 = self::fe_sq($t1); - - # for (i = 1; i < 100; ++i) { - # fe_sq(t2, t2); - # } - for ($i = 1; $i < 100; ++$i) { - $t2 = self::fe_sq($t2); - } - - # fe_mul(t1, t2, t1); - # fe_sq(t1, t1); - $t1 = self::fe_mul($t2, $t1); - $t1 = self::fe_sq($t1); - - # for (i = 1; i < 50; ++i) { - # fe_sq(t1, t1); - # } - for ($i = 1; $i < 50; ++$i) { - $t1 = self::fe_sq($t1); - } - - # fe_mul(t0, t1, t0); - # fe_sq(t0, t0); - # fe_sq(t0, t0); - # fe_mul(out, t0, z); - $t0 = self::fe_mul($t1, $t0); - $t0 = self::fe_sq($t0); - $t0 = self::fe_sq($t0); - return self::fe_mul($t0, $z); - } - - /** - * Subtract two field elements. - * - * h = f - g - * - * Preconditions: - * |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. - * |g| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. - * - * Postconditions: - * |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Fe $f - * @param ParagonIE_Sodium_Core_Curve25519_Fe $g - * @return ParagonIE_Sodium_Core_Curve25519_Fe - * @psalm-suppress MixedOperand - */ - public static function fe_sub(ParagonIE_Sodium_Core_Curve25519_Fe $f, ParagonIE_Sodium_Core_Curve25519_Fe $g) - { - return ParagonIE_Sodium_Core_Curve25519_Fe::fromArray( - array( - (int) ($f[0] - $g[0]), - (int) ($f[1] - $g[1]), - (int) ($f[2] - $g[2]), - (int) ($f[3] - $g[3]), - (int) ($f[4] - $g[4]), - (int) ($f[5] - $g[5]), - (int) ($f[6] - $g[6]), - (int) ($f[7] - $g[7]), - (int) ($f[8] - $g[8]), - (int) ($f[9] - $g[9]) - ) - ); - } - - /** - * Add two group elements. - * - * r = p + q - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p - * @param ParagonIE_Sodium_Core_Curve25519_Ge_Cached $q - * @return ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 - */ - public static function ge_add( - ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p, - ParagonIE_Sodium_Core_Curve25519_Ge_Cached $q - ) { - $r = new ParagonIE_Sodium_Core_Curve25519_Ge_P1p1(); - $r->X = self::fe_add($p->Y, $p->X); - $r->Y = self::fe_sub($p->Y, $p->X); - $r->Z = self::fe_mul($r->X, $q->YplusX); - $r->Y = self::fe_mul($r->Y, $q->YminusX); - $r->T = self::fe_mul($q->T2d, $p->T); - $r->X = self::fe_mul($p->Z, $q->Z); - $t0 = self::fe_add($r->X, $r->X); - $r->X = self::fe_sub($r->Z, $r->Y); - $r->Y = self::fe_add($r->Z, $r->Y); - $r->Z = self::fe_add($t0, $r->T); - $r->T = self::fe_sub($t0, $r->T); - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @ref https://github.com/jedisct1/libsodium/blob/157c4a80c13b117608aeae12178b2d38825f9f8f/src/libsodium/crypto_core/curve25519/ref10/curve25519_ref10.c#L1185-L1215 - * @param string $a - * @return array - * @throws SodiumException - * @throws TypeError - */ - public static function slide($a) - { - if (self::strlen($a) < 256) { - if (self::strlen($a) < 16) { - $a = str_pad($a, 256, '0', STR_PAD_RIGHT); - } - } - /** @var array $r */ - $r = array(); - - /** @var int $i */ - for ($i = 0; $i < 256; ++$i) { - $r[$i] = (int) ( - 1 & ( - self::chrToInt($a[(int) ($i >> 3)]) - >> - ($i & 7) - ) - ); - } - - for ($i = 0;$i < 256;++$i) { - if ($r[$i]) { - for ($b = 1;$b <= 6 && $i + $b < 256;++$b) { - if ($r[$i + $b]) { - if ($r[$i] + ($r[$i + $b] << $b) <= 15) { - $r[$i] += $r[$i + $b] << $b; - $r[$i + $b] = 0; - } elseif ($r[$i] - ($r[$i + $b] << $b) >= -15) { - $r[$i] -= $r[$i + $b] << $b; - for ($k = $i + $b; $k < 256; ++$k) { - if (!$r[$k]) { - $r[$k] = 1; - break; - } - $r[$k] = 0; - } - } else { - break; - } - } - } - } - } - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $s - * @return ParagonIE_Sodium_Core_Curve25519_Ge_P3 - * @throws SodiumException - * @throws TypeError - */ - public static function ge_frombytes_negate_vartime($s) - { - static $d = null; - if (!$d) { - $d = ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(self::$d); - } - - # fe_frombytes(h->Y,s); - # fe_1(h->Z); - $h = new ParagonIE_Sodium_Core_Curve25519_Ge_P3( - self::fe_0(), - self::fe_frombytes($s), - self::fe_1() - ); - - # fe_sq(u,h->Y); - # fe_mul(v,u,d); - # fe_sub(u,u,h->Z); /* u = y^2-1 */ - # fe_add(v,v,h->Z); /* v = dy^2+1 */ - $u = self::fe_sq($h->Y); - /** @var ParagonIE_Sodium_Core_Curve25519_Fe $d */ - $v = self::fe_mul($u, $d); - $u = self::fe_sub($u, $h->Z); /* u = y^2 - 1 */ - $v = self::fe_add($v, $h->Z); /* v = dy^2 + 1 */ - - # fe_sq(v3,v); - # fe_mul(v3,v3,v); /* v3 = v^3 */ - # fe_sq(h->X,v3); - # fe_mul(h->X,h->X,v); - # fe_mul(h->X,h->X,u); /* x = uv^7 */ - $v3 = self::fe_sq($v); - $v3 = self::fe_mul($v3, $v); /* v3 = v^3 */ - $h->X = self::fe_sq($v3); - $h->X = self::fe_mul($h->X, $v); - $h->X = self::fe_mul($h->X, $u); /* x = uv^7 */ - - # fe_pow22523(h->X,h->X); /* x = (uv^7)^((q-5)/8) */ - # fe_mul(h->X,h->X,v3); - # fe_mul(h->X,h->X,u); /* x = uv^3(uv^7)^((q-5)/8) */ - $h->X = self::fe_pow22523($h->X); /* x = (uv^7)^((q-5)/8) */ - $h->X = self::fe_mul($h->X, $v3); - $h->X = self::fe_mul($h->X, $u); /* x = uv^3(uv^7)^((q-5)/8) */ - - # fe_sq(vxx,h->X); - # fe_mul(vxx,vxx,v); - # fe_sub(check,vxx,u); /* vx^2-u */ - $vxx = self::fe_sq($h->X); - $vxx = self::fe_mul($vxx, $v); - $check = self::fe_sub($vxx, $u); /* vx^2 - u */ - - # if (fe_isnonzero(check)) { - # fe_add(check,vxx,u); /* vx^2+u */ - # if (fe_isnonzero(check)) { - # return -1; - # } - # fe_mul(h->X,h->X,sqrtm1); - # } - if (self::fe_isnonzero($check)) { - $check = self::fe_add($vxx, $u); /* vx^2 + u */ - if (self::fe_isnonzero($check)) { - throw new RangeException('Internal check failed.'); - } - $h->X = self::fe_mul( - $h->X, - ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(self::$sqrtm1) - ); - } - - # if (fe_isnegative(h->X) == (s[31] >> 7)) { - # fe_neg(h->X,h->X); - # } - $i = self::chrToInt($s[31]); - if (self::fe_isnegative($h->X) === ($i >> 7)) { - $h->X = self::fe_neg($h->X); - } - - # fe_mul(h->T,h->X,h->Y); - $h->T = self::fe_mul($h->X, $h->Y); - return $h; - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 $R - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p - * @param ParagonIE_Sodium_Core_Curve25519_Ge_Precomp $q - * @return ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 - */ - public static function ge_madd( - ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 $R, - ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p, - ParagonIE_Sodium_Core_Curve25519_Ge_Precomp $q - ) { - $r = clone $R; - $r->X = self::fe_add($p->Y, $p->X); - $r->Y = self::fe_sub($p->Y, $p->X); - $r->Z = self::fe_mul($r->X, $q->yplusx); - $r->Y = self::fe_mul($r->Y, $q->yminusx); - $r->T = self::fe_mul($q->xy2d, $p->T); - $t0 = self::fe_add(clone $p->Z, clone $p->Z); - $r->X = self::fe_sub($r->Z, $r->Y); - $r->Y = self::fe_add($r->Z, $r->Y); - $r->Z = self::fe_add($t0, $r->T); - $r->T = self::fe_sub($t0, $r->T); - - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 $R - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p - * @param ParagonIE_Sodium_Core_Curve25519_Ge_Precomp $q - * @return ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 - */ - public static function ge_msub( - ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 $R, - ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p, - ParagonIE_Sodium_Core_Curve25519_Ge_Precomp $q - ) { - $r = clone $R; - - $r->X = self::fe_add($p->Y, $p->X); - $r->Y = self::fe_sub($p->Y, $p->X); - $r->Z = self::fe_mul($r->X, $q->yminusx); - $r->Y = self::fe_mul($r->Y, $q->yplusx); - $r->T = self::fe_mul($q->xy2d, $p->T); - $t0 = self::fe_add($p->Z, $p->Z); - $r->X = self::fe_sub($r->Z, $r->Y); - $r->Y = self::fe_add($r->Z, $r->Y); - $r->Z = self::fe_sub($t0, $r->T); - $r->T = self::fe_add($t0, $r->T); - - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 $p - * @return ParagonIE_Sodium_Core_Curve25519_Ge_P2 - */ - public static function ge_p1p1_to_p2(ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 $p) - { - $r = new ParagonIE_Sodium_Core_Curve25519_Ge_P2(); - $r->X = self::fe_mul($p->X, $p->T); - $r->Y = self::fe_mul($p->Y, $p->Z); - $r->Z = self::fe_mul($p->Z, $p->T); - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 $p - * @return ParagonIE_Sodium_Core_Curve25519_Ge_P3 - */ - public static function ge_p1p1_to_p3(ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 $p) - { - $r = new ParagonIE_Sodium_Core_Curve25519_Ge_P3(); - $r->X = self::fe_mul($p->X, $p->T); - $r->Y = self::fe_mul($p->Y, $p->Z); - $r->Z = self::fe_mul($p->Z, $p->T); - $r->T = self::fe_mul($p->X, $p->Y); - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @return ParagonIE_Sodium_Core_Curve25519_Ge_P2 - */ - public static function ge_p2_0() - { - return new ParagonIE_Sodium_Core_Curve25519_Ge_P2( - self::fe_0(), - self::fe_1(), - self::fe_1() - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P2 $p - * @return ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 - */ - public static function ge_p2_dbl(ParagonIE_Sodium_Core_Curve25519_Ge_P2 $p) - { - $r = new ParagonIE_Sodium_Core_Curve25519_Ge_P1p1(); - - $r->X = self::fe_sq($p->X); - $r->Z = self::fe_sq($p->Y); - $r->T = self::fe_sq2($p->Z); - $r->Y = self::fe_add($p->X, $p->Y); - $t0 = self::fe_sq($r->Y); - $r->Y = self::fe_add($r->Z, $r->X); - $r->Z = self::fe_sub($r->Z, $r->X); - $r->X = self::fe_sub($t0, $r->Y); - $r->T = self::fe_sub($r->T, $r->Z); - - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @return ParagonIE_Sodium_Core_Curve25519_Ge_P3 - */ - public static function ge_p3_0() - { - return new ParagonIE_Sodium_Core_Curve25519_Ge_P3( - self::fe_0(), - self::fe_1(), - self::fe_1(), - self::fe_0() - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p - * @return ParagonIE_Sodium_Core_Curve25519_Ge_Cached - */ - public static function ge_p3_to_cached(ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p) - { - static $d2 = null; - if ($d2 === null) { - $d2 = ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(self::$d2); - } - /** @var ParagonIE_Sodium_Core_Curve25519_Fe $d2 */ - $r = new ParagonIE_Sodium_Core_Curve25519_Ge_Cached(); - $r->YplusX = self::fe_add($p->Y, $p->X); - $r->YminusX = self::fe_sub($p->Y, $p->X); - $r->Z = self::fe_copy($p->Z); - $r->T2d = self::fe_mul($p->T, $d2); - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p - * @return ParagonIE_Sodium_Core_Curve25519_Ge_P2 - */ - public static function ge_p3_to_p2(ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p) - { - return new ParagonIE_Sodium_Core_Curve25519_Ge_P2( - $p->X, - $p->Y, - $p->Z - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P3 $h - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function ge_p3_tobytes(ParagonIE_Sodium_Core_Curve25519_Ge_P3 $h) - { - $recip = self::fe_invert($h->Z); - $x = self::fe_mul($h->X, $recip); - $y = self::fe_mul($h->Y, $recip); - $s = self::fe_tobytes($y); - $s[31] = self::intToChr( - self::chrToInt($s[31]) ^ (self::fe_isnegative($x) << 7) - ); - return $s; - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p - * @return ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 - */ - public static function ge_p3_dbl(ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p) - { - $q = self::ge_p3_to_p2($p); - return self::ge_p2_dbl($q); - } - - /** - * @return ParagonIE_Sodium_Core_Curve25519_Ge_Precomp - */ - public static function ge_precomp_0() - { - return new ParagonIE_Sodium_Core_Curve25519_Ge_Precomp( - self::fe_1(), - self::fe_1(), - self::fe_0() - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $b - * @param int $c - * @return int - */ - public static function equal($b, $c) - { - return (int) ((($b ^ $c) - 1 & 0xffffffff) >> 31); - } - - /** - * @internal You should not use this directly from another application - * - * @param int|string $char - * @return int (1 = yes, 0 = no) - * @throws SodiumException - * @throws TypeError - */ - public static function negative($char) - { - if (is_int($char)) { - return $char < 0 ? 1 : 0; - } - $x = self::chrToInt(self::substr($char, 0, 1)); - return (int) ($x >> 63); - } - - /** - * Conditional move - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Ge_Precomp $t - * @param ParagonIE_Sodium_Core_Curve25519_Ge_Precomp $u - * @param int $b - * @return ParagonIE_Sodium_Core_Curve25519_Ge_Precomp - */ - public static function cmov( - ParagonIE_Sodium_Core_Curve25519_Ge_Precomp $t, - ParagonIE_Sodium_Core_Curve25519_Ge_Precomp $u, - $b - ) { - if (!is_int($b)) { - throw new InvalidArgumentException('Expected an integer.'); - } - return new ParagonIE_Sodium_Core_Curve25519_Ge_Precomp( - self::fe_cmov($t->yplusx, $u->yplusx, $b), - self::fe_cmov($t->yminusx, $u->yminusx, $b), - self::fe_cmov($t->xy2d, $u->xy2d, $b) - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $pos - * @param int $b - * @return ParagonIE_Sodium_Core_Curve25519_Ge_Precomp - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayOffset - */ - public static function ge_select($pos = 0, $b = 0) - { - static $base = null; - if ($base === null) { - $base = array(); - /** @var int $i */ - foreach (self::$base as $i => $bas) { - for ($j = 0; $j < 8; ++$j) { - $base[$i][$j] = new ParagonIE_Sodium_Core_Curve25519_Ge_Precomp( - ParagonIE_Sodium_Core_Curve25519_Fe::fromArray($bas[$j][0]), - ParagonIE_Sodium_Core_Curve25519_Fe::fromArray($bas[$j][1]), - ParagonIE_Sodium_Core_Curve25519_Fe::fromArray($bas[$j][2]) - ); - } - } - } - /** @var array> $base */ - if (!is_int($pos)) { - throw new InvalidArgumentException('Position must be an integer'); - } - if ($pos < 0 || $pos > 31) { - throw new RangeException('Position is out of range [0, 31]'); - } - - /** @var int $bnegative */ - $bnegative = self::negative($b); - /** @var int $babs */ - $babs = $b - (((-$bnegative) & $b) << 1); - - $t = self::ge_precomp_0(); - for ($i = 0; $i < 8; ++$i) { - $t = self::cmov( - $t, - $base[$pos][$i], - self::equal($babs, $i + 1) - ); - } - $minusT = new ParagonIE_Sodium_Core_Curve25519_Ge_Precomp( - self::fe_copy($t->yminusx), - self::fe_copy($t->yplusx), - self::fe_neg($t->xy2d) - ); - return self::cmov($t, $minusT, $bnegative); - } - - /** - * Subtract two group elements. - * - * r = p - q - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p - * @param ParagonIE_Sodium_Core_Curve25519_Ge_Cached $q - * @return ParagonIE_Sodium_Core_Curve25519_Ge_P1p1 - */ - public static function ge_sub( - ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p, - ParagonIE_Sodium_Core_Curve25519_Ge_Cached $q - ) { - $r = new ParagonIE_Sodium_Core_Curve25519_Ge_P1p1(); - - $r->X = self::fe_add($p->Y, $p->X); - $r->Y = self::fe_sub($p->Y, $p->X); - $r->Z = self::fe_mul($r->X, $q->YminusX); - $r->Y = self::fe_mul($r->Y, $q->YplusX); - $r->T = self::fe_mul($q->T2d, $p->T); - $r->X = self::fe_mul($p->Z, $q->Z); - $t0 = self::fe_add($r->X, $r->X); - $r->X = self::fe_sub($r->Z, $r->Y); - $r->Y = self::fe_add($r->Z, $r->Y); - $r->Z = self::fe_sub($t0, $r->T); - $r->T = self::fe_add($t0, $r->T); - - return $r; - } - - /** - * Convert a group element to a byte string. - * - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P2 $h - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function ge_tobytes(ParagonIE_Sodium_Core_Curve25519_Ge_P2 $h) - { - $recip = self::fe_invert($h->Z); - $x = self::fe_mul($h->X, $recip); - $y = self::fe_mul($h->Y, $recip); - $s = self::fe_tobytes($y); - $s[31] = self::intToChr( - self::chrToInt($s[31]) ^ (self::fe_isnegative($x) << 7) - ); - return $s; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $a - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P3 $A - * @param string $b - * @return ParagonIE_Sodium_Core_Curve25519_Ge_P2 - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedArrayAccess - */ - public static function ge_double_scalarmult_vartime( - $a, - ParagonIE_Sodium_Core_Curve25519_Ge_P3 $A, - $b - ) { - /** @var array $Ai */ - $Ai = array(); - - /** @var array $Bi */ - static $Bi = array(); - if (!$Bi) { - for ($i = 0; $i < 8; ++$i) { - $Bi[$i] = new ParagonIE_Sodium_Core_Curve25519_Ge_Precomp( - ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(self::$base2[$i][0]), - ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(self::$base2[$i][1]), - ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(self::$base2[$i][2]) - ); - } - } - for ($i = 0; $i < 8; ++$i) { - $Ai[$i] = new ParagonIE_Sodium_Core_Curve25519_Ge_Cached( - self::fe_0(), - self::fe_0(), - self::fe_0(), - self::fe_0() - ); - } - - # slide(aslide,a); - # slide(bslide,b); - /** @var array $aslide */ - $aslide = self::slide($a); - /** @var array $bslide */ - $bslide = self::slide($b); - - # ge_p3_to_cached(&Ai[0],A); - # ge_p3_dbl(&t,A); ge_p1p1_to_p3(&A2,&t); - $Ai[0] = self::ge_p3_to_cached($A); - $t = self::ge_p3_dbl($A); - $A2 = self::ge_p1p1_to_p3($t); - - # ge_add(&t,&A2,&Ai[0]); ge_p1p1_to_p3(&u,&t); ge_p3_to_cached(&Ai[1],&u); - # ge_add(&t,&A2,&Ai[1]); ge_p1p1_to_p3(&u,&t); ge_p3_to_cached(&Ai[2],&u); - # ge_add(&t,&A2,&Ai[2]); ge_p1p1_to_p3(&u,&t); ge_p3_to_cached(&Ai[3],&u); - # ge_add(&t,&A2,&Ai[3]); ge_p1p1_to_p3(&u,&t); ge_p3_to_cached(&Ai[4],&u); - # ge_add(&t,&A2,&Ai[4]); ge_p1p1_to_p3(&u,&t); ge_p3_to_cached(&Ai[5],&u); - # ge_add(&t,&A2,&Ai[5]); ge_p1p1_to_p3(&u,&t); ge_p3_to_cached(&Ai[6],&u); - # ge_add(&t,&A2,&Ai[6]); ge_p1p1_to_p3(&u,&t); ge_p3_to_cached(&Ai[7],&u); - for ($i = 0; $i < 7; ++$i) { - $t = self::ge_add($A2, $Ai[$i]); - $u = self::ge_p1p1_to_p3($t); - $Ai[$i + 1] = self::ge_p3_to_cached($u); - } - - # ge_p2_0(r); - $r = self::ge_p2_0(); - - # for (i = 255;i >= 0;--i) { - # if (aslide[i] || bslide[i]) break; - # } - $i = 255; - for (; $i >= 0; --$i) { - if ($aslide[$i] || $bslide[$i]) { - break; - } - } - - # for (;i >= 0;--i) { - for (; $i >= 0; --$i) { - # ge_p2_dbl(&t,r); - $t = self::ge_p2_dbl($r); - - # if (aslide[i] > 0) { - if ($aslide[$i] > 0) { - # ge_p1p1_to_p3(&u,&t); - # ge_add(&t,&u,&Ai[aslide[i]/2]); - $u = self::ge_p1p1_to_p3($t); - $t = self::ge_add( - $u, - $Ai[(int) floor($aslide[$i] / 2)] - ); - # } else if (aslide[i] < 0) { - } elseif ($aslide[$i] < 0) { - # ge_p1p1_to_p3(&u,&t); - # ge_sub(&t,&u,&Ai[(-aslide[i])/2]); - $u = self::ge_p1p1_to_p3($t); - $t = self::ge_sub( - $u, - $Ai[(int) floor(-$aslide[$i] / 2)] - ); - } - - # if (bslide[i] > 0) { - if ($bslide[$i] > 0) { - /** @var int $index */ - $index = (int) floor($bslide[$i] / 2); - # ge_p1p1_to_p3(&u,&t); - # ge_madd(&t,&u,&Bi[bslide[i]/2]); - $u = self::ge_p1p1_to_p3($t); - $t = self::ge_madd($t, $u, $Bi[$index]); - # } else if (bslide[i] < 0) { - } elseif ($bslide[$i] < 0) { - /** @var int $index */ - $index = (int) floor(-$bslide[$i] / 2); - # ge_p1p1_to_p3(&u,&t); - # ge_msub(&t,&u,&Bi[(-bslide[i])/2]); - $u = self::ge_p1p1_to_p3($t); - $t = self::ge_msub($t, $u, $Bi[$index]); - } - # ge_p1p1_to_p2(r,&t); - $r = self::ge_p1p1_to_p2($t); - } - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $a - * @return ParagonIE_Sodium_Core_Curve25519_Ge_P3 - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedOperand - */ - public static function ge_scalarmult_base($a) - { - /** @var array $e */ - $e = array(); - $r = new ParagonIE_Sodium_Core_Curve25519_Ge_P1p1(); - - for ($i = 0; $i < 32; ++$i) { - /** @var int $dbl */ - $dbl = (int) $i << 1; - $e[$dbl] = (int) self::chrToInt($a[$i]) & 15; - $e[$dbl + 1] = (int) (self::chrToInt($a[$i]) >> 4) & 15; - } - - /** @var int $carry */ - $carry = 0; - for ($i = 0; $i < 63; ++$i) { - $e[$i] += $carry; - /** @var int $carry */ - $carry = $e[$i] + 8; - /** @var int $carry */ - $carry >>= 4; - $e[$i] -= $carry << 4; - } - /** @var array $e */ - $e[63] += (int) $carry; - - $h = self::ge_p3_0(); - - for ($i = 1; $i < 64; $i += 2) { - $t = self::ge_select((int) floor($i / 2), (int) $e[$i]); - $r = self::ge_madd($r, $h, $t); - $h = self::ge_p1p1_to_p3($r); - } - - $r = self::ge_p3_dbl($h); - - $s = self::ge_p1p1_to_p2($r); - $r = self::ge_p2_dbl($s); - $s = self::ge_p1p1_to_p2($r); - $r = self::ge_p2_dbl($s); - $s = self::ge_p1p1_to_p2($r); - $r = self::ge_p2_dbl($s); - - $h = self::ge_p1p1_to_p3($r); - - for ($i = 0; $i < 64; $i += 2) { - $t = self::ge_select($i >> 1, (int) $e[$i]); - $r = self::ge_madd($r, $h, $t); - $h = self::ge_p1p1_to_p3($r); - } - return $h; - } - - /** - * Calculates (ab + c) mod l - * where l = 2^252 + 27742317777372353535851937790883648493 - * - * @internal You should not use this directly from another application - * - * @param string $a - * @param string $b - * @param string $c - * @return string - * @throws TypeError - */ - public static function sc_muladd($a, $b, $c) - { - /** @var int $a0 */ - $a0 = 2097151 & self::load_3(self::substr($a, 0, 3)); - /** @var int $a1 */ - $a1 = 2097151 & (self::load_4(self::substr($a, 2, 4)) >> 5); - /** @var int $a2 */ - $a2 = 2097151 & (self::load_3(self::substr($a, 5, 3)) >> 2); - /** @var int $a3 */ - $a3 = 2097151 & (self::load_4(self::substr($a, 7, 4)) >> 7); - /** @var int $a4 */ - $a4 = 2097151 & (self::load_4(self::substr($a, 10, 4)) >> 4); - /** @var int $a5 */ - $a5 = 2097151 & (self::load_3(self::substr($a, 13, 3)) >> 1); - /** @var int $a6 */ - $a6 = 2097151 & (self::load_4(self::substr($a, 15, 4)) >> 6); - /** @var int $a7 */ - $a7 = 2097151 & (self::load_3(self::substr($a, 18, 3)) >> 3); - /** @var int $a8 */ - $a8 = 2097151 & self::load_3(self::substr($a, 21, 3)); - /** @var int $a9 */ - $a9 = 2097151 & (self::load_4(self::substr($a, 23, 4)) >> 5); - /** @var int $a10 */ - $a10 = 2097151 & (self::load_3(self::substr($a, 26, 3)) >> 2); - /** @var int $a11 */ - $a11 = (self::load_4(self::substr($a, 28, 4)) >> 7); - - /** @var int $b0 */ - $b0 = 2097151 & self::load_3(self::substr($b, 0, 3)); - /** @var int $b1 */ - $b1 = 2097151 & (self::load_4(self::substr($b, 2, 4)) >> 5); - /** @var int $b2 */ - $b2 = 2097151 & (self::load_3(self::substr($b, 5, 3)) >> 2); - /** @var int $b3 */ - $b3 = 2097151 & (self::load_4(self::substr($b, 7, 4)) >> 7); - /** @var int $b4 */ - $b4 = 2097151 & (self::load_4(self::substr($b, 10, 4)) >> 4); - /** @var int $b5 */ - $b5 = 2097151 & (self::load_3(self::substr($b, 13, 3)) >> 1); - /** @var int $b6 */ - $b6 = 2097151 & (self::load_4(self::substr($b, 15, 4)) >> 6); - /** @var int $b7 */ - $b7 = 2097151 & (self::load_3(self::substr($b, 18, 3)) >> 3); - /** @var int $b8 */ - $b8 = 2097151 & self::load_3(self::substr($b, 21, 3)); - /** @var int $b9 */ - $b9 = 2097151 & (self::load_4(self::substr($b, 23, 4)) >> 5); - /** @var int $b10 */ - $b10 = 2097151 & (self::load_3(self::substr($b, 26, 3)) >> 2); - /** @var int $b11 */ - $b11 = (self::load_4(self::substr($b, 28, 4)) >> 7); - - /** @var int $c0 */ - $c0 = 2097151 & self::load_3(self::substr($c, 0, 3)); - /** @var int $c1 */ - $c1 = 2097151 & (self::load_4(self::substr($c, 2, 4)) >> 5); - /** @var int $c2 */ - $c2 = 2097151 & (self::load_3(self::substr($c, 5, 3)) >> 2); - /** @var int $c3 */ - $c3 = 2097151 & (self::load_4(self::substr($c, 7, 4)) >> 7); - /** @var int $c4 */ - $c4 = 2097151 & (self::load_4(self::substr($c, 10, 4)) >> 4); - /** @var int $c5 */ - $c5 = 2097151 & (self::load_3(self::substr($c, 13, 3)) >> 1); - /** @var int $c6 */ - $c6 = 2097151 & (self::load_4(self::substr($c, 15, 4)) >> 6); - /** @var int $c7 */ - $c7 = 2097151 & (self::load_3(self::substr($c, 18, 3)) >> 3); - /** @var int $c8 */ - $c8 = 2097151 & self::load_3(self::substr($c, 21, 3)); - /** @var int $c9 */ - $c9 = 2097151 & (self::load_4(self::substr($c, 23, 4)) >> 5); - /** @var int $c10 */ - $c10 = 2097151 & (self::load_3(self::substr($c, 26, 3)) >> 2); - /** @var int $c11 */ - $c11 = (self::load_4(self::substr($c, 28, 4)) >> 7); - - /* Can't really avoid the pyramid here: */ - $s0 = $c0 + self::mul($a0, $b0, 24); - $s1 = $c1 + self::mul($a0, $b1, 24) + self::mul($a1, $b0, 24); - $s2 = $c2 + self::mul($a0, $b2, 24) + self::mul($a1, $b1, 24) + self::mul($a2, $b0, 24); - $s3 = $c3 + self::mul($a0, $b3, 24) + self::mul($a1, $b2, 24) + self::mul($a2, $b1, 24) + self::mul($a3, $b0, 24); - $s4 = $c4 + self::mul($a0, $b4, 24) + self::mul($a1, $b3, 24) + self::mul($a2, $b2, 24) + self::mul($a3, $b1, 24) + - self::mul($a4, $b0, 24); - $s5 = $c5 + self::mul($a0, $b5, 24) + self::mul($a1, $b4, 24) + self::mul($a2, $b3, 24) + self::mul($a3, $b2, 24) + - self::mul($a4, $b1, 24) + self::mul($a5, $b0, 24); - $s6 = $c6 + self::mul($a0, $b6, 24) + self::mul($a1, $b5, 24) + self::mul($a2, $b4, 24) + self::mul($a3, $b3, 24) + - self::mul($a4, $b2, 24) + self::mul($a5, $b1, 24) + self::mul($a6, $b0, 24); - $s7 = $c7 + self::mul($a0, $b7, 24) + self::mul($a1, $b6, 24) + self::mul($a2, $b5, 24) + self::mul($a3, $b4, 24) + - self::mul($a4, $b3, 24) + self::mul($a5, $b2, 24) + self::mul($a6, $b1, 24) + self::mul($a7, $b0, 24); - $s8 = $c8 + self::mul($a0, $b8, 24) + self::mul($a1, $b7, 24) + self::mul($a2, $b6, 24) + self::mul($a3, $b5, 24) + - self::mul($a4, $b4, 24) + self::mul($a5, $b3, 24) + self::mul($a6, $b2, 24) + self::mul($a7, $b1, 24) + - self::mul($a8, $b0, 24); - $s9 = $c9 + self::mul($a0, $b9, 24) + self::mul($a1, $b8, 24) + self::mul($a2, $b7, 24) + self::mul($a3, $b6, 24) + - self::mul($a4, $b5, 24) + self::mul($a5, $b4, 24) + self::mul($a6, $b3, 24) + self::mul($a7, $b2, 24) + - self::mul($a8, $b1, 24) + self::mul($a9, $b0, 24); - $s10 = $c10 + self::mul($a0, $b10, 24) + self::mul($a1, $b9, 24) + self::mul($a2, $b8, 24) + self::mul($a3, $b7, 24) + - self::mul($a4, $b6, 24) + self::mul($a5, $b5, 24) + self::mul($a6, $b4, 24) + self::mul($a7, $b3, 24) + - self::mul($a8, $b2, 24) + self::mul($a9, $b1, 24) + self::mul($a10, $b0, 24); - $s11 = $c11 + self::mul($a0, $b11, 24) + self::mul($a1, $b10, 24) + self::mul($a2, $b9, 24) + self::mul($a3, $b8, 24) + - self::mul($a4, $b7, 24) + self::mul($a5, $b6, 24) + self::mul($a6, $b5, 24) + self::mul($a7, $b4, 24) + - self::mul($a8, $b3, 24) + self::mul($a9, $b2, 24) + self::mul($a10, $b1, 24) + self::mul($a11, $b0, 24); - $s12 = self::mul($a1, $b11, 24) + self::mul($a2, $b10, 24) + self::mul($a3, $b9, 24) + self::mul($a4, $b8, 24) + - self::mul($a5, $b7, 24) + self::mul($a6, $b6, 24) + self::mul($a7, $b5, 24) + self::mul($a8, $b4, 24) + - self::mul($a9, $b3, 24) + self::mul($a10, $b2, 24) + self::mul($a11, $b1, 24); - $s13 = self::mul($a2, $b11, 24) + self::mul($a3, $b10, 24) + self::mul($a4, $b9, 24) + self::mul($a5, $b8, 24) + - self::mul($a6, $b7, 24) + self::mul($a7, $b6, 24) + self::mul($a8, $b5, 24) + self::mul($a9, $b4, 24) + - self::mul($a10, $b3, 24) + self::mul($a11, $b2, 24); - $s14 = self::mul($a3, $b11, 24) + self::mul($a4, $b10, 24) + self::mul($a5, $b9, 24) + self::mul($a6, $b8, 24) + - self::mul($a7, $b7, 24) + self::mul($a8, $b6, 24) + self::mul($a9, $b5, 24) + self::mul($a10, $b4, 24) + - self::mul($a11, $b3, 24); - $s15 = self::mul($a4, $b11, 24) + self::mul($a5, $b10, 24) + self::mul($a6, $b9, 24) + self::mul($a7, $b8, 24) + - self::mul($a8, $b7, 24) + self::mul($a9, $b6, 24) + self::mul($a10, $b5, 24) + self::mul($a11, $b4, 24); - $s16 = self::mul($a5, $b11, 24) + self::mul($a6, $b10, 24) + self::mul($a7, $b9, 24) + self::mul($a8, $b8, 24) + - self::mul($a9, $b7, 24) + self::mul($a10, $b6, 24) + self::mul($a11, $b5, 24); - $s17 = self::mul($a6, $b11, 24) + self::mul($a7, $b10, 24) + self::mul($a8, $b9, 24) + self::mul($a9, $b8, 24) + - self::mul($a10, $b7, 24) + self::mul($a11, $b6, 24); - $s18 = self::mul($a7, $b11, 24) + self::mul($a8, $b10, 24) + self::mul($a9, $b9, 24) + self::mul($a10, $b8, 24) + - self::mul($a11, $b7, 24); - $s19 = self::mul($a8, $b11, 24) + self::mul($a9, $b10, 24) + self::mul($a10, $b9, 24) + self::mul($a11, $b8, 24); - $s20 = self::mul($a9, $b11, 24) + self::mul($a10, $b10, 24) + self::mul($a11, $b9, 24); - $s21 = self::mul($a10, $b11, 24) + self::mul($a11, $b10, 24); - $s22 = self::mul($a11, $b11, 24); - $s23 = 0; - - /** @var int $carry0 */ - $carry0 = ($s0 + (1 << 20)) >> 21; - $s1 += $carry0; - $s0 -= $carry0 << 21; - /** @var int $carry2 */ - $carry2 = ($s2 + (1 << 20)) >> 21; - $s3 += $carry2; - $s2 -= $carry2 << 21; - /** @var int $carry4 */ - $carry4 = ($s4 + (1 << 20)) >> 21; - $s5 += $carry4; - $s4 -= $carry4 << 21; - /** @var int $carry6 */ - $carry6 = ($s6 + (1 << 20)) >> 21; - $s7 += $carry6; - $s6 -= $carry6 << 21; - /** @var int $carry8 */ - $carry8 = ($s8 + (1 << 20)) >> 21; - $s9 += $carry8; - $s8 -= $carry8 << 21; - /** @var int $carry10 */ - $carry10 = ($s10 + (1 << 20)) >> 21; - $s11 += $carry10; - $s10 -= $carry10 << 21; - /** @var int $carry12 */ - $carry12 = ($s12 + (1 << 20)) >> 21; - $s13 += $carry12; - $s12 -= $carry12 << 21; - /** @var int $carry14 */ - $carry14 = ($s14 + (1 << 20)) >> 21; - $s15 += $carry14; - $s14 -= $carry14 << 21; - /** @var int $carry16 */ - $carry16 = ($s16 + (1 << 20)) >> 21; - $s17 += $carry16; - $s16 -= $carry16 << 21; - /** @var int $carry18 */ - $carry18 = ($s18 + (1 << 20)) >> 21; - $s19 += $carry18; - $s18 -= $carry18 << 21; - /** @var int $carry20 */ - $carry20 = ($s20 + (1 << 20)) >> 21; - $s21 += $carry20; - $s20 -= $carry20 << 21; - /** @var int $carry22 */ - $carry22 = ($s22 + (1 << 20)) >> 21; - $s23 += $carry22; - $s22 -= $carry22 << 21; - - /** @var int $carry1 */ - $carry1 = ($s1 + (1 << 20)) >> 21; - $s2 += $carry1; - $s1 -= $carry1 << 21; - /** @var int $carry3 */ - $carry3 = ($s3 + (1 << 20)) >> 21; - $s4 += $carry3; - $s3 -= $carry3 << 21; - /** @var int $carry5 */ - $carry5 = ($s5 + (1 << 20)) >> 21; - $s6 += $carry5; - $s5 -= $carry5 << 21; - /** @var int $carry7 */ - $carry7 = ($s7 + (1 << 20)) >> 21; - $s8 += $carry7; - $s7 -= $carry7 << 21; - /** @var int $carry9 */ - $carry9 = ($s9 + (1 << 20)) >> 21; - $s10 += $carry9; - $s9 -= $carry9 << 21; - /** @var int $carry11 */ - $carry11 = ($s11 + (1 << 20)) >> 21; - $s12 += $carry11; - $s11 -= $carry11 << 21; - /** @var int $carry13 */ - $carry13 = ($s13 + (1 << 20)) >> 21; - $s14 += $carry13; - $s13 -= $carry13 << 21; - /** @var int $carry15 */ - $carry15 = ($s15 + (1 << 20)) >> 21; - $s16 += $carry15; - $s15 -= $carry15 << 21; - /** @var int $carry17 */ - $carry17 = ($s17 + (1 << 20)) >> 21; - $s18 += $carry17; - $s17 -= $carry17 << 21; - /** @var int $carry19 */ - $carry19 = ($s19 + (1 << 20)) >> 21; - $s20 += $carry19; - $s19 -= $carry19 << 21; - /** @var int $carry21 */ - $carry21 = ($s21 + (1 << 20)) >> 21; - $s22 += $carry21; - $s21 -= $carry21 << 21; - - $s11 += self::mul($s23, 666643, 20); - $s12 += self::mul($s23, 470296, 19); - $s13 += self::mul($s23, 654183, 20); - $s14 -= self::mul($s23, 997805, 20); - $s15 += self::mul($s23, 136657, 18); - $s16 -= self::mul($s23, 683901, 20); - - $s10 += self::mul($s22, 666643, 20); - $s11 += self::mul($s22, 470296, 19); - $s12 += self::mul($s22, 654183, 20); - $s13 -= self::mul($s22, 997805, 20); - $s14 += self::mul($s22, 136657, 18); - $s15 -= self::mul($s22, 683901, 20); - - $s9 += self::mul($s21, 666643, 20); - $s10 += self::mul($s21, 470296, 19); - $s11 += self::mul($s21, 654183, 20); - $s12 -= self::mul($s21, 997805, 20); - $s13 += self::mul($s21, 136657, 18); - $s14 -= self::mul($s21, 683901, 20); - - $s8 += self::mul($s20, 666643, 20); - $s9 += self::mul($s20, 470296, 19); - $s10 += self::mul($s20, 654183, 20); - $s11 -= self::mul($s20, 997805, 20); - $s12 += self::mul($s20, 136657, 18); - $s13 -= self::mul($s20, 683901, 20); - - $s7 += self::mul($s19, 666643, 20); - $s8 += self::mul($s19, 470296, 19); - $s9 += self::mul($s19, 654183, 20); - $s10 -= self::mul($s19, 997805, 20); - $s11 += self::mul($s19, 136657, 18); - $s12 -= self::mul($s19, 683901, 20); - - $s6 += self::mul($s18, 666643, 20); - $s7 += self::mul($s18, 470296, 19); - $s8 += self::mul($s18, 654183, 20); - $s9 -= self::mul($s18, 997805, 20); - $s10 += self::mul($s18, 136657, 18); - $s11 -= self::mul($s18, 683901, 20); - - /** @var int $carry6 */ - $carry6 = ($s6 + (1 << 20)) >> 21; - $s7 += $carry6; - $s6 -= $carry6 << 21; - /** @var int $carry8 */ - $carry8 = ($s8 + (1 << 20)) >> 21; - $s9 += $carry8; - $s8 -= $carry8 << 21; - /** @var int $carry10 */ - $carry10 = ($s10 + (1 << 20)) >> 21; - $s11 += $carry10; - $s10 -= $carry10 << 21; - /** @var int $carry12 */ - $carry12 = ($s12 + (1 << 20)) >> 21; - $s13 += $carry12; - $s12 -= $carry12 << 21; - /** @var int $carry14 */ - $carry14 = ($s14 + (1 << 20)) >> 21; - $s15 += $carry14; - $s14 -= $carry14 << 21; - /** @var int $carry16 */ - $carry16 = ($s16 + (1 << 20)) >> 21; - $s17 += $carry16; - $s16 -= $carry16 << 21; - - /** @var int $carry7 */ - $carry7 = ($s7 + (1 << 20)) >> 21; - $s8 += $carry7; - $s7 -= $carry7 << 21; - /** @var int $carry9 */ - $carry9 = ($s9 + (1 << 20)) >> 21; - $s10 += $carry9; - $s9 -= $carry9 << 21; - /** @var int $carry11 */ - $carry11 = ($s11 + (1 << 20)) >> 21; - $s12 += $carry11; - $s11 -= $carry11 << 21; - /** @var int $carry13 */ - $carry13 = ($s13 + (1 << 20)) >> 21; - $s14 += $carry13; - $s13 -= $carry13 << 21; - /** @var int $carry15 */ - $carry15 = ($s15 + (1 << 20)) >> 21; - $s16 += $carry15; - $s15 -= $carry15 << 21; - - $s5 += self::mul($s17, 666643, 20); - $s6 += self::mul($s17, 470296, 19); - $s7 += self::mul($s17, 654183, 20); - $s8 -= self::mul($s17, 997805, 20); - $s9 += self::mul($s17, 136657, 18); - $s10 -= self::mul($s17, 683901, 20); - - $s4 += self::mul($s16, 666643, 20); - $s5 += self::mul($s16, 470296, 19); - $s6 += self::mul($s16, 654183, 20); - $s7 -= self::mul($s16, 997805, 20); - $s8 += self::mul($s16, 136657, 18); - $s9 -= self::mul($s16, 683901, 20); - - $s3 += self::mul($s15, 666643, 20); - $s4 += self::mul($s15, 470296, 19); - $s5 += self::mul($s15, 654183, 20); - $s6 -= self::mul($s15, 997805, 20); - $s7 += self::mul($s15, 136657, 18); - $s8 -= self::mul($s15, 683901, 20); - - $s2 += self::mul($s14, 666643, 20); - $s3 += self::mul($s14, 470296, 19); - $s4 += self::mul($s14, 654183, 20); - $s5 -= self::mul($s14, 997805, 20); - $s6 += self::mul($s14, 136657, 18); - $s7 -= self::mul($s14, 683901, 20); - - $s1 += self::mul($s13, 666643, 20); - $s2 += self::mul($s13, 470296, 19); - $s3 += self::mul($s13, 654183, 20); - $s4 -= self::mul($s13, 997805, 20); - $s5 += self::mul($s13, 136657, 18); - $s6 -= self::mul($s13, 683901, 20); - - $s0 += self::mul($s12, 666643, 20); - $s1 += self::mul($s12, 470296, 19); - $s2 += self::mul($s12, 654183, 20); - $s3 -= self::mul($s12, 997805, 20); - $s4 += self::mul($s12, 136657, 18); - $s5 -= self::mul($s12, 683901, 20); - $s12 = 0; - - /** @var int $carry0 */ - $carry0 = ($s0 + (1 << 20)) >> 21; - $s1 += $carry0; - $s0 -= $carry0 << 21; - /** @var int $carry2 */ - $carry2 = ($s2 + (1 << 20)) >> 21; - $s3 += $carry2; - $s2 -= $carry2 << 21; - /** @var int $carry4 */ - $carry4 = ($s4 + (1 << 20)) >> 21; - $s5 += $carry4; - $s4 -= $carry4 << 21; - /** @var int $carry6 */ - $carry6 = ($s6 + (1 << 20)) >> 21; - $s7 += $carry6; - $s6 -= $carry6 << 21; - /** @var int $carry8 */ - $carry8 = ($s8 + (1 << 20)) >> 21; - $s9 += $carry8; - $s8 -= $carry8 << 21; - /** @var int $carry10 */ - $carry10 = ($s10 + (1 << 20)) >> 21; - $s11 += $carry10; - $s10 -= $carry10 << 21; - - /** @var int $carry1 */ - $carry1 = ($s1 + (1 << 20)) >> 21; - $s2 += $carry1; - $s1 -= $carry1 << 21; - /** @var int $carry3 */ - $carry3 = ($s3 + (1 << 20)) >> 21; - $s4 += $carry3; - $s3 -= $carry3 << 21; - /** @var int $carry5 */ - $carry5 = ($s5 + (1 << 20)) >> 21; - $s6 += $carry5; - $s5 -= $carry5 << 21; - /** @var int $carry7 */ - $carry7 = ($s7 + (1 << 20)) >> 21; - $s8 += $carry7; - $s7 -= $carry7 << 21; - /** @var int $carry9 */ - $carry9 = ($s9 + (1 << 20)) >> 21; - $s10 += $carry9; - $s9 -= $carry9 << 21; - /** @var int $carry11 */ - $carry11 = ($s11 + (1 << 20)) >> 21; - $s12 += $carry11; - $s11 -= $carry11 << 21; - - $s0 += self::mul($s12, 666643, 20); - $s1 += self::mul($s12, 470296, 19); - $s2 += self::mul($s12, 654183, 20); - $s3 -= self::mul($s12, 997805, 20); - $s4 += self::mul($s12, 136657, 18); - $s5 -= self::mul($s12, 683901, 20); - $s12 = 0; - - /** @var int $carry0 */ - $carry0 = $s0 >> 21; - $s1 += $carry0; - $s0 -= $carry0 << 21; - /** @var int $carry1 */ - $carry1 = $s1 >> 21; - $s2 += $carry1; - $s1 -= $carry1 << 21; - /** @var int $carry2 */ - $carry2 = $s2 >> 21; - $s3 += $carry2; - $s2 -= $carry2 << 21; - /** @var int $carry3 */ - $carry3 = $s3 >> 21; - $s4 += $carry3; - $s3 -= $carry3 << 21; - /** @var int $carry4 */ - $carry4 = $s4 >> 21; - $s5 += $carry4; - $s4 -= $carry4 << 21; - /** @var int $carry5 */ - $carry5 = $s5 >> 21; - $s6 += $carry5; - $s5 -= $carry5 << 21; - /** @var int $carry6 */ - $carry6 = $s6 >> 21; - $s7 += $carry6; - $s6 -= $carry6 << 21; - /** @var int $carry7 */ - $carry7 = $s7 >> 21; - $s8 += $carry7; - $s7 -= $carry7 << 21; - /** @var int $carry8 */ - $carry8 = $s8 >> 21; - $s9 += $carry8; - $s8 -= $carry8 << 21; - /** @var int $carry9 */ - $carry9 = $s9 >> 21; - $s10 += $carry9; - $s9 -= $carry9 << 21; - /** @var int $carry10 */ - $carry10 = $s10 >> 21; - $s11 += $carry10; - $s10 -= $carry10 << 21; - /** @var int $carry11 */ - $carry11 = $s11 >> 21; - $s12 += $carry11; - $s11 -= $carry11 << 21; - - $s0 += self::mul($s12, 666643, 20); - $s1 += self::mul($s12, 470296, 19); - $s2 += self::mul($s12, 654183, 20); - $s3 -= self::mul($s12, 997805, 20); - $s4 += self::mul($s12, 136657, 18); - $s5 -= self::mul($s12, 683901, 20); - - /** @var int $carry0 */ - $carry0 = $s0 >> 21; - $s1 += $carry0; - $s0 -= $carry0 << 21; - /** @var int $carry1 */ - $carry1 = $s1 >> 21; - $s2 += $carry1; - $s1 -= $carry1 << 21; - /** @var int $carry2 */ - $carry2 = $s2 >> 21; - $s3 += $carry2; - $s2 -= $carry2 << 21; - /** @var int $carry3 */ - $carry3 = $s3 >> 21; - $s4 += $carry3; - $s3 -= $carry3 << 21; - /** @var int $carry4 */ - $carry4 = $s4 >> 21; - $s5 += $carry4; - $s4 -= $carry4 << 21; - /** @var int $carry5 */ - $carry5 = $s5 >> 21; - $s6 += $carry5; - $s5 -= $carry5 << 21; - /** @var int $carry6 */ - $carry6 = $s6 >> 21; - $s7 += $carry6; - $s6 -= $carry6 << 21; - /** @var int $carry7 */ - $carry7 = $s7 >> 21; - $s8 += $carry7; - $s7 -= $carry7 << 21; - /** @var int $carry8 */ - $carry8 = $s8 >> 21; - $s9 += $carry8; - $s8 -= $carry8 << 21; - /** @var int $carry9 */ - $carry9 = $s9 >> 21; - $s10 += $carry9; - $s9 -= $carry9 << 21; - /** @var int $carry10 */ - $carry10 = $s10 >> 21; - $s11 += $carry10; - $s10 -= $carry10 << 21; - - /** - * @var array - */ - $arr = array( - (int) (0xff & ($s0 >> 0)), - (int) (0xff & ($s0 >> 8)), - (int) (0xff & (($s0 >> 16) | $s1 << 5)), - (int) (0xff & ($s1 >> 3)), - (int) (0xff & ($s1 >> 11)), - (int) (0xff & (($s1 >> 19) | $s2 << 2)), - (int) (0xff & ($s2 >> 6)), - (int) (0xff & (($s2 >> 14) | $s3 << 7)), - (int) (0xff & ($s3 >> 1)), - (int) (0xff & ($s3 >> 9)), - (int) (0xff & (($s3 >> 17) | $s4 << 4)), - (int) (0xff & ($s4 >> 4)), - (int) (0xff & ($s4 >> 12)), - (int) (0xff & (($s4 >> 20) | $s5 << 1)), - (int) (0xff & ($s5 >> 7)), - (int) (0xff & (($s5 >> 15) | $s6 << 6)), - (int) (0xff & ($s6 >> 2)), - (int) (0xff & ($s6 >> 10)), - (int) (0xff & (($s6 >> 18) | $s7 << 3)), - (int) (0xff & ($s7 >> 5)), - (int) (0xff & ($s7 >> 13)), - (int) (0xff & ($s8 >> 0)), - (int) (0xff & ($s8 >> 8)), - (int) (0xff & (($s8 >> 16) | $s9 << 5)), - (int) (0xff & ($s9 >> 3)), - (int) (0xff & ($s9 >> 11)), - (int) (0xff & (($s9 >> 19) | $s10 << 2)), - (int) (0xff & ($s10 >> 6)), - (int) (0xff & (($s10 >> 14) | $s11 << 7)), - (int) (0xff & ($s11 >> 1)), - (int) (0xff & ($s11 >> 9)), - 0xff & ($s11 >> 17) - ); - return self::intArrayToString($arr); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $s - * @return string - * @throws TypeError - */ - public static function sc_reduce($s) - { - /** @var int $s0 */ - $s0 = 2097151 & self::load_3(self::substr($s, 0, 3)); - /** @var int $s1 */ - $s1 = 2097151 & (self::load_4(self::substr($s, 2, 4)) >> 5); - /** @var int $s2 */ - $s2 = 2097151 & (self::load_3(self::substr($s, 5, 3)) >> 2); - /** @var int $s3 */ - $s3 = 2097151 & (self::load_4(self::substr($s, 7, 4)) >> 7); - /** @var int $s4 */ - $s4 = 2097151 & (self::load_4(self::substr($s, 10, 4)) >> 4); - /** @var int $s5 */ - $s5 = 2097151 & (self::load_3(self::substr($s, 13, 3)) >> 1); - /** @var int $s6 */ - $s6 = 2097151 & (self::load_4(self::substr($s, 15, 4)) >> 6); - /** @var int $s7 */ - $s7 = 2097151 & (self::load_3(self::substr($s, 18, 4)) >> 3); - /** @var int $s8 */ - $s8 = 2097151 & self::load_3(self::substr($s, 21, 3)); - /** @var int $s9 */ - $s9 = 2097151 & (self::load_4(self::substr($s, 23, 4)) >> 5); - /** @var int $s10 */ - $s10 = 2097151 & (self::load_3(self::substr($s, 26, 3)) >> 2); - /** @var int $s11 */ - $s11 = 2097151 & (self::load_4(self::substr($s, 28, 4)) >> 7); - /** @var int $s12 */ - $s12 = 2097151 & (self::load_4(self::substr($s, 31, 4)) >> 4); - /** @var int $s13 */ - $s13 = 2097151 & (self::load_3(self::substr($s, 34, 3)) >> 1); - /** @var int $s14 */ - $s14 = 2097151 & (self::load_4(self::substr($s, 36, 4)) >> 6); - /** @var int $s15 */ - $s15 = 2097151 & (self::load_3(self::substr($s, 39, 4)) >> 3); - /** @var int $s16 */ - $s16 = 2097151 & self::load_3(self::substr($s, 42, 3)); - /** @var int $s17 */ - $s17 = 2097151 & (self::load_4(self::substr($s, 44, 4)) >> 5); - /** @var int $s18 */ - $s18 = 2097151 & (self::load_3(self::substr($s, 47, 3)) >> 2); - /** @var int $s19 */ - $s19 = 2097151 & (self::load_4(self::substr($s, 49, 4)) >> 7); - /** @var int $s20 */ - $s20 = 2097151 & (self::load_4(self::substr($s, 52, 4)) >> 4); - /** @var int $s21 */ - $s21 = 2097151 & (self::load_3(self::substr($s, 55, 3)) >> 1); - /** @var int $s22 */ - $s22 = 2097151 & (self::load_4(self::substr($s, 57, 4)) >> 6); - /** @var int $s23 */ - $s23 = (self::load_4(self::substr($s, 60, 4)) >> 3); - - $s11 += self::mul($s23, 666643, 20); - $s12 += self::mul($s23, 470296, 19); - $s13 += self::mul($s23, 654183, 20); - $s14 -= self::mul($s23, 997805, 20); - $s15 += self::mul($s23, 136657, 18); - $s16 -= self::mul($s23, 683901, 20); - - $s10 += self::mul($s22, 666643, 20); - $s11 += self::mul($s22, 470296, 19); - $s12 += self::mul($s22, 654183, 20); - $s13 -= self::mul($s22, 997805, 20); - $s14 += self::mul($s22, 136657, 18); - $s15 -= self::mul($s22, 683901, 20); - - $s9 += self::mul($s21, 666643, 20); - $s10 += self::mul($s21, 470296, 19); - $s11 += self::mul($s21, 654183, 20); - $s12 -= self::mul($s21, 997805, 20); - $s13 += self::mul($s21, 136657, 18); - $s14 -= self::mul($s21, 683901, 20); - - $s8 += self::mul($s20, 666643, 20); - $s9 += self::mul($s20, 470296, 19); - $s10 += self::mul($s20, 654183, 20); - $s11 -= self::mul($s20, 997805, 20); - $s12 += self::mul($s20, 136657, 18); - $s13 -= self::mul($s20, 683901, 20); - - $s7 += self::mul($s19, 666643, 20); - $s8 += self::mul($s19, 470296, 19); - $s9 += self::mul($s19, 654183, 20); - $s10 -= self::mul($s19, 997805, 20); - $s11 += self::mul($s19, 136657, 18); - $s12 -= self::mul($s19, 683901, 20); - - $s6 += self::mul($s18, 666643, 20); - $s7 += self::mul($s18, 470296, 19); - $s8 += self::mul($s18, 654183, 20); - $s9 -= self::mul($s18, 997805, 20); - $s10 += self::mul($s18, 136657, 18); - $s11 -= self::mul($s18, 683901, 20); - - /** @var int $carry6 */ - $carry6 = ($s6 + (1 << 20)) >> 21; - $s7 += $carry6; - $s6 -= $carry6 << 21; - /** @var int $carry8 */ - $carry8 = ($s8 + (1 << 20)) >> 21; - $s9 += $carry8; - $s8 -= $carry8 << 21; - /** @var int $carry10 */ - $carry10 = ($s10 + (1 << 20)) >> 21; - $s11 += $carry10; - $s10 -= $carry10 << 21; - /** @var int $carry12 */ - $carry12 = ($s12 + (1 << 20)) >> 21; - $s13 += $carry12; - $s12 -= $carry12 << 21; - /** @var int $carry14 */ - $carry14 = ($s14 + (1 << 20)) >> 21; - $s15 += $carry14; - $s14 -= $carry14 << 21; - /** @var int $carry16 */ - $carry16 = ($s16 + (1 << 20)) >> 21; - $s17 += $carry16; - $s16 -= $carry16 << 21; - - /** @var int $carry7 */ - $carry7 = ($s7 + (1 << 20)) >> 21; - $s8 += $carry7; - $s7 -= $carry7 << 21; - /** @var int $carry9 */ - $carry9 = ($s9 + (1 << 20)) >> 21; - $s10 += $carry9; - $s9 -= $carry9 << 21; - /** @var int $carry11 */ - $carry11 = ($s11 + (1 << 20)) >> 21; - $s12 += $carry11; - $s11 -= $carry11 << 21; - /** @var int $carry13 */ - $carry13 = ($s13 + (1 << 20)) >> 21; - $s14 += $carry13; - $s13 -= $carry13 << 21; - /** @var int $carry15 */ - $carry15 = ($s15 + (1 << 20)) >> 21; - $s16 += $carry15; - $s15 -= $carry15 << 21; - - $s5 += self::mul($s17, 666643, 20); - $s6 += self::mul($s17, 470296, 19); - $s7 += self::mul($s17, 654183, 20); - $s8 -= self::mul($s17, 997805, 20); - $s9 += self::mul($s17, 136657, 18); - $s10 -= self::mul($s17, 683901, 20); - - $s4 += self::mul($s16, 666643, 20); - $s5 += self::mul($s16, 470296, 19); - $s6 += self::mul($s16, 654183, 20); - $s7 -= self::mul($s16, 997805, 20); - $s8 += self::mul($s16, 136657, 18); - $s9 -= self::mul($s16, 683901, 20); - - $s3 += self::mul($s15, 666643, 20); - $s4 += self::mul($s15, 470296, 19); - $s5 += self::mul($s15, 654183, 20); - $s6 -= self::mul($s15, 997805, 20); - $s7 += self::mul($s15, 136657, 18); - $s8 -= self::mul($s15, 683901, 20); - - $s2 += self::mul($s14, 666643, 20); - $s3 += self::mul($s14, 470296, 19); - $s4 += self::mul($s14, 654183, 20); - $s5 -= self::mul($s14, 997805, 20); - $s6 += self::mul($s14, 136657, 18); - $s7 -= self::mul($s14, 683901, 20); - - $s1 += self::mul($s13, 666643, 20); - $s2 += self::mul($s13, 470296, 19); - $s3 += self::mul($s13, 654183, 20); - $s4 -= self::mul($s13, 997805, 20); - $s5 += self::mul($s13, 136657, 18); - $s6 -= self::mul($s13, 683901, 20); - - $s0 += self::mul($s12, 666643, 20); - $s1 += self::mul($s12, 470296, 19); - $s2 += self::mul($s12, 654183, 20); - $s3 -= self::mul($s12, 997805, 20); - $s4 += self::mul($s12, 136657, 18); - $s5 -= self::mul($s12, 683901, 20); - $s12 = 0; - - /** @var int $carry0 */ - $carry0 = ($s0 + (1 << 20)) >> 21; - $s1 += $carry0; - $s0 -= $carry0 << 21; - /** @var int $carry2 */ - $carry2 = ($s2 + (1 << 20)) >> 21; - $s3 += $carry2; - $s2 -= $carry2 << 21; - /** @var int $carry4 */ - $carry4 = ($s4 + (1 << 20)) >> 21; - $s5 += $carry4; - $s4 -= $carry4 << 21; - /** @var int $carry6 */ - $carry6 = ($s6 + (1 << 20)) >> 21; - $s7 += $carry6; - $s6 -= $carry6 << 21; - /** @var int $carry8 */ - $carry8 = ($s8 + (1 << 20)) >> 21; - $s9 += $carry8; - $s8 -= $carry8 << 21; - /** @var int $carry10 */ - $carry10 = ($s10 + (1 << 20)) >> 21; - $s11 += $carry10; - $s10 -= $carry10 << 21; - - /** @var int $carry1 */ - $carry1 = ($s1 + (1 << 20)) >> 21; - $s2 += $carry1; - $s1 -= $carry1 << 21; - /** @var int $carry3 */ - $carry3 = ($s3 + (1 << 20)) >> 21; - $s4 += $carry3; - $s3 -= $carry3 << 21; - /** @var int $carry5 */ - $carry5 = ($s5 + (1 << 20)) >> 21; - $s6 += $carry5; - $s5 -= $carry5 << 21; - /** @var int $carry7 */ - $carry7 = ($s7 + (1 << 20)) >> 21; - $s8 += $carry7; - $s7 -= $carry7 << 21; - /** @var int $carry9 */ - $carry9 = ($s9 + (1 << 20)) >> 21; - $s10 += $carry9; - $s9 -= $carry9 << 21; - /** @var int $carry11 */ - $carry11 = ($s11 + (1 << 20)) >> 21; - $s12 += $carry11; - $s11 -= $carry11 << 21; - - $s0 += self::mul($s12, 666643, 20); - $s1 += self::mul($s12, 470296, 19); - $s2 += self::mul($s12, 654183, 20); - $s3 -= self::mul($s12, 997805, 20); - $s4 += self::mul($s12, 136657, 18); - $s5 -= self::mul($s12, 683901, 20); - $s12 = 0; - - /** @var int $carry0 */ - $carry0 = $s0 >> 21; - $s1 += $carry0; - $s0 -= $carry0 << 21; - /** @var int $carry1 */ - $carry1 = $s1 >> 21; - $s2 += $carry1; - $s1 -= $carry1 << 21; - /** @var int $carry2 */ - $carry2 = $s2 >> 21; - $s3 += $carry2; - $s2 -= $carry2 << 21; - /** @var int $carry3 */ - $carry3 = $s3 >> 21; - $s4 += $carry3; - $s3 -= $carry3 << 21; - /** @var int $carry4 */ - $carry4 = $s4 >> 21; - $s5 += $carry4; - $s4 -= $carry4 << 21; - /** @var int $carry5 */ - $carry5 = $s5 >> 21; - $s6 += $carry5; - $s5 -= $carry5 << 21; - /** @var int $carry6 */ - $carry6 = $s6 >> 21; - $s7 += $carry6; - $s6 -= $carry6 << 21; - /** @var int $carry7 */ - $carry7 = $s7 >> 21; - $s8 += $carry7; - $s7 -= $carry7 << 21; - /** @var int $carry8 */ - $carry8 = $s8 >> 21; - $s9 += $carry8; - $s8 -= $carry8 << 21; - /** @var int $carry9 */ - $carry9 = $s9 >> 21; - $s10 += $carry9; - $s9 -= $carry9 << 21; - /** @var int $carry10 */ - $carry10 = $s10 >> 21; - $s11 += $carry10; - $s10 -= $carry10 << 21; - /** @var int $carry11 */ - $carry11 = $s11 >> 21; - $s12 += $carry11; - $s11 -= $carry11 << 21; - - $s0 += self::mul($s12, 666643, 20); - $s1 += self::mul($s12, 470296, 19); - $s2 += self::mul($s12, 654183, 20); - $s3 -= self::mul($s12, 997805, 20); - $s4 += self::mul($s12, 136657, 18); - $s5 -= self::mul($s12, 683901, 20); - - /** @var int $carry0 */ - $carry0 = $s0 >> 21; - $s1 += $carry0; - $s0 -= $carry0 << 21; - /** @var int $carry1 */ - $carry1 = $s1 >> 21; - $s2 += $carry1; - $s1 -= $carry1 << 21; - /** @var int $carry2 */ - $carry2 = $s2 >> 21; - $s3 += $carry2; - $s2 -= $carry2 << 21; - /** @var int $carry3 */ - $carry3 = $s3 >> 21; - $s4 += $carry3; - $s3 -= $carry3 << 21; - /** @var int $carry4 */ - $carry4 = $s4 >> 21; - $s5 += $carry4; - $s4 -= $carry4 << 21; - /** @var int $carry5 */ - $carry5 = $s5 >> 21; - $s6 += $carry5; - $s5 -= $carry5 << 21; - /** @var int $carry6 */ - $carry6 = $s6 >> 21; - $s7 += $carry6; - $s6 -= $carry6 << 21; - /** @var int $carry7 */ - $carry7 = $s7 >> 21; - $s8 += $carry7; - $s7 -= $carry7 << 21; - /** @var int $carry8 */ - $carry8 = $s8 >> 21; - $s9 += $carry8; - $s8 -= $carry8 << 21; - /** @var int $carry9 */ - $carry9 = $s9 >> 21; - $s10 += $carry9; - $s9 -= $carry9 << 21; - /** @var int $carry10 */ - $carry10 = $s10 >> 21; - $s11 += $carry10; - $s10 -= $carry10 << 21; - - /** - * @var array - */ - $arr = array( - (int) ($s0 >> 0), - (int) ($s0 >> 8), - (int) (($s0 >> 16) | $s1 << 5), - (int) ($s1 >> 3), - (int) ($s1 >> 11), - (int) (($s1 >> 19) | $s2 << 2), - (int) ($s2 >> 6), - (int) (($s2 >> 14) | $s3 << 7), - (int) ($s3 >> 1), - (int) ($s3 >> 9), - (int) (($s3 >> 17) | $s4 << 4), - (int) ($s4 >> 4), - (int) ($s4 >> 12), - (int) (($s4 >> 20) | $s5 << 1), - (int) ($s5 >> 7), - (int) (($s5 >> 15) | $s6 << 6), - (int) ($s6 >> 2), - (int) ($s6 >> 10), - (int) (($s6 >> 18) | $s7 << 3), - (int) ($s7 >> 5), - (int) ($s7 >> 13), - (int) ($s8 >> 0), - (int) ($s8 >> 8), - (int) (($s8 >> 16) | $s9 << 5), - (int) ($s9 >> 3), - (int) ($s9 >> 11), - (int) (($s9 >> 19) | $s10 << 2), - (int) ($s10 >> 6), - (int) (($s10 >> 14) | $s11 << 7), - (int) ($s11 >> 1), - (int) ($s11 >> 9), - (int) $s11 >> 17 - ); - return self::intArrayToString($arr); - } - - /** - * multiply by the order of the main subgroup l = 2^252+27742317777372353535851937790883648493 - * - * @param ParagonIE_Sodium_Core_Curve25519_Ge_P3 $A - * @return ParagonIE_Sodium_Core_Curve25519_Ge_P3 - */ - public static function ge_mul_l(ParagonIE_Sodium_Core_Curve25519_Ge_P3 $A) - { - /** @var array $aslide */ - $aslide = array( - 13, 0, 0, 0, 0, -1, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, - 0, 0, 0, -3, 0, 0, 0, 0, -13, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, -13, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, - 0, 0, 11, 0, 0, 0, 0, -13, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, -1, - 0, 0, 0, 0, 3, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, - 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 5, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 - ); - - /** @var array $Ai size 8 */ - $Ai = array(); - - # ge_p3_to_cached(&Ai[0], A); - $Ai[0] = self::ge_p3_to_cached($A); - # ge_p3_dbl(&t, A); - $t = self::ge_p3_dbl($A); - # ge_p1p1_to_p3(&A2, &t); - $A2 = self::ge_p1p1_to_p3($t); - - for ($i = 1; $i < 8; ++$i) { - # ge_add(&t, &A2, &Ai[0]); - $t = self::ge_add($A2, $Ai[$i - 1]); - # ge_p1p1_to_p3(&u, &t); - $u = self::ge_p1p1_to_p3($t); - # ge_p3_to_cached(&Ai[i], &u); - $Ai[$i] = self::ge_p3_to_cached($u); - } - - $r = self::ge_p3_0(); - for ($i = 252; $i >= 0; --$i) { - $t = self::ge_p3_dbl($r); - if ($aslide[$i] > 0) { - # ge_p1p1_to_p3(&u, &t); - $u = self::ge_p1p1_to_p3($t); - # ge_add(&t, &u, &Ai[aslide[i] / 2]); - $t = self::ge_add($u, $Ai[(int)($aslide[$i] / 2)]); - } elseif ($aslide[$i] < 0) { - # ge_p1p1_to_p3(&u, &t); - $u = self::ge_p1p1_to_p3($t); - # ge_sub(&t, &u, &Ai[(-aslide[i]) / 2]); - $t = self::ge_sub($u, $Ai[(int)(-$aslide[$i] / 2)]); - } - } - - # ge_p1p1_to_p3(r, &t); - return self::ge_p1p1_to_p3($t); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Fe.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Fe.php deleted file mode 100644 index 64c489a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Fe.php +++ /dev/null @@ -1,123 +0,0 @@ - - */ - protected $container = array(); - - /** - * @var int - */ - protected $size = 10; - - /** - * @internal You should not use this directly from another application - * - * @param array $array - * @param bool $save_indexes - * @return self - */ - public static function fromArray($array, $save_indexes = null) - { - $count = count($array); - if ($save_indexes) { - $keys = array_keys($array); - } else { - $keys = range(0, $count - 1); - } - $array = array_values($array); - /** @var array $keys */ - - $obj = new ParagonIE_Sodium_Core_Curve25519_Fe(); - if ($save_indexes) { - for ($i = 0; $i < $count; ++$i) { - $obj->offsetSet($keys[$i], $array[$i]); - } - } else { - for ($i = 0; $i < $count; ++$i) { - $obj->offsetSet($i, $array[$i]); - } - } - return $obj; - } - - /** - * @internal You should not use this directly from another application - * - * @param int|null $offset - * @param int $value - * @return void - * @psalm-suppress MixedArrayOffset - */ - public function offsetSet($offset, $value) - { - if (!is_int($value)) { - throw new InvalidArgumentException('Expected an integer'); - } - if (is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - - /** - * @internal You should not use this directly from another application - * - * @param int $offset - * @return bool - * @psalm-suppress MixedArrayOffset - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $offset - * @return void - * @psalm-suppress MixedArrayOffset - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $offset - * @return int - * @psalm-suppress MixedArrayOffset - */ - public function offsetGet($offset) - { - if (!isset($this->container[$offset])) { - $this->container[$offset] = 0; - } - return (int) ($this->container[$offset]); - } - - /** - * @internal You should not use this directly from another application - * - * @return array - */ - public function __debugInfo() - { - return array(implode(', ', $this->container)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/Cached.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/Cached.php deleted file mode 100644 index 39bf897..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/Cached.php +++ /dev/null @@ -1,65 +0,0 @@ -YplusX = $YplusX; - if ($YminusX === null) { - $YminusX = new ParagonIE_Sodium_Core_Curve25519_Fe(); - } - $this->YminusX = $YminusX; - if ($Z === null) { - $Z = new ParagonIE_Sodium_Core_Curve25519_Fe(); - } - $this->Z = $Z; - if ($T2d === null) { - $T2d = new ParagonIE_Sodium_Core_Curve25519_Fe(); - } - $this->T2d = $T2d; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/P1p1.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/P1p1.php deleted file mode 100644 index a63d6ab..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/P1p1.php +++ /dev/null @@ -1,64 +0,0 @@ -X = $x; - if ($y === null) { - $y = new ParagonIE_Sodium_Core_Curve25519_Fe(); - } - $this->Y = $y; - if ($z === null) { - $z = new ParagonIE_Sodium_Core_Curve25519_Fe(); - } - $this->Z = $z; - if ($t === null) { - $t = new ParagonIE_Sodium_Core_Curve25519_Fe(); - } - $this->T = $t; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/P2.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/P2.php deleted file mode 100644 index aee4000..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/P2.php +++ /dev/null @@ -1,54 +0,0 @@ -X = $x; - if ($y === null) { - $y = new ParagonIE_Sodium_Core_Curve25519_Fe(); - } - $this->Y = $y; - if ($z === null) { - $z = new ParagonIE_Sodium_Core_Curve25519_Fe(); - } - $this->Z = $z; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/P3.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/P3.php deleted file mode 100644 index 00f5b27..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/P3.php +++ /dev/null @@ -1,65 +0,0 @@ -X = $x; - if ($y === null) { - $y = new ParagonIE_Sodium_Core_Curve25519_Fe(); - } - $this->Y = $y; - if ($z === null) { - $z = new ParagonIE_Sodium_Core_Curve25519_Fe(); - } - $this->Z = $z; - if ($t === null) { - $t = new ParagonIE_Sodium_Core_Curve25519_Fe(); - } - $this->T = $t; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/Precomp.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/Precomp.php deleted file mode 100644 index 59611c1..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/Ge/Precomp.php +++ /dev/null @@ -1,54 +0,0 @@ -yplusx = $yplusx; - if ($yminusx === null) { - $yminusx = new ParagonIE_Sodium_Core_Curve25519_Fe(); - } - $this->yminusx = $yminusx; - if ($xy2d === null) { - $xy2d = new ParagonIE_Sodium_Core_Curve25519_Fe(); - } - $this->xy2d = $xy2d; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/H.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/H.php deleted file mode 100644 index 37ad497..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Curve25519/H.php +++ /dev/null @@ -1,1467 +0,0 @@ ->>> Basically, int[32][8][3][10] - */ - protected static $base = array( - array( - array( - array(25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605), - array(-12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378), - array(-8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546), - ), - array( - array(-12815894, -12976347, -21581243, 11784320, -25355658, -2750717, -11717903, -3814571, -358445, -10211303), - array(-21703237, 6903825, 27185491, 6451973, -29577724, -9554005, -15616551, 11189268, -26829678, -5319081), - array(26966642, 11152617, 32442495, 15396054, 14353839, -12752335, -3128826, -9541118, -15472047, -4166697), - ), - array( - array(15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024), - array(16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574), - array(30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357), - ), - array( - array(-17036878, 13921892, 10945806, -6033431, 27105052, -16084379, -28926210, 15006023, 3284568, -6276540), - array(23599295, -8306047, -11193664, -7687416, 13236774, 10506355, 7464579, 9656445, 13059162, 10374397), - array(7798556, 16710257, 3033922, 2874086, 28997861, 2835604, 32406664, -3839045, -641708, -101325), - ), - array( - array(10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380), - array(4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306), - array(19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942), - ), - array( - array(-15371964, -12862754, 32573250, 4720197, -26436522, 5875511, -19188627, -15224819, -9818940, -12085777), - array(-8549212, 109983, 15149363, 2178705, 22900618, 4543417, 3044240, -15689887, 1762328, 14866737), - array(-18199695, -15951423, -10473290, 1707278, -17185920, 3916101, -28236412, 3959421, 27914454, 4383652), - ), - array( - array(5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766), - array(-30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701), - array(28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300), - ), - array( - array(14499471, -2729599, -33191113, -4254652, 28494862, 14271267, 30290735, 10876454, -33154098, 2381726), - array(-7195431, -2655363, -14730155, 462251, -27724326, 3941372, -6236617, 3696005, -32300832, 15351955), - array(27431194, 8222322, 16448760, -3907995, -18707002, 11938355, -32961401, -2970515, 29551813, 10109425), - ), - ), - array( - array( - array(-13657040, -13155431, -31283750, 11777098, 21447386, 6519384, -2378284, -1627556, 10092783, -4764171), - array(27939166, 14210322, 4677035, 16277044, -22964462, -12398139, -32508754, 12005538, -17810127, 12803510), - array(17228999, -15661624, -1233527, 300140, -1224870, -11714777, 30364213, -9038194, 18016357, 4397660), - ), - array( - array(-10958843, -7690207, 4776341, -14954238, 27850028, -15602212, -26619106, 14544525, -17477504, 982639), - array(29253598, 15796703, -2863982, -9908884, 10057023, 3163536, 7332899, -4120128, -21047696, 9934963), - array(5793303, 16271923, -24131614, -10116404, 29188560, 1206517, -14747930, 4559895, -30123922, -10897950), - ), - array( - array(-27643952, -11493006, 16282657, -11036493, 28414021, -15012264, 24191034, 4541697, -13338309, 5500568), - array(12650548, -1497113, 9052871, 11355358, -17680037, -8400164, -17430592, 12264343, 10874051, 13524335), - array(25556948, -3045990, 714651, 2510400, 23394682, -10415330, 33119038, 5080568, -22528059, 5376628), - ), - array( - array(-26088264, -4011052, -17013699, -3537628, -6726793, 1920897, -22321305, -9447443, 4535768, 1569007), - array(-2255422, 14606630, -21692440, -8039818, 28430649, 8775819, -30494562, 3044290, 31848280, 12543772), - array(-22028579, 2943893, -31857513, 6777306, 13784462, -4292203, -27377195, -2062731, 7718482, 14474653), - ), - array( - array(2385315, 2454213, -22631320, 46603, -4437935, -15680415, 656965, -7236665, 24316168, -5253567), - array(13741529, 10911568, -33233417, -8603737, -20177830, -1033297, 33040651, -13424532, -20729456, 8321686), - array(21060490, -2212744, 15712757, -4336099, 1639040, 10656336, 23845965, -11874838, -9984458, 608372), - ), - array( - array(-13672732, -15087586, -10889693, -7557059, -6036909, 11305547, 1123968, -6780577, 27229399, 23887), - array(-23244140, -294205, -11744728, 14712571, -29465699, -2029617, 12797024, -6440308, -1633405, 16678954), - array(-29500620, 4770662, -16054387, 14001338, 7830047, 9564805, -1508144, -4795045, -17169265, 4904953), - ), - array( - array(24059557, 14617003, 19037157, -15039908, 19766093, -14906429, 5169211, 16191880, 2128236, -4326833), - array(-16981152, 4124966, -8540610, -10653797, 30336522, -14105247, -29806336, 916033, -6882542, -2986532), - array(-22630907, 12419372, -7134229, -7473371, -16478904, 16739175, 285431, 2763829, 15736322, 4143876), - ), - array( - array(2379352, 11839345, -4110402, -5988665, 11274298, 794957, 212801, -14594663, 23527084, -16458268), - array(33431127, -11130478, -17838966, -15626900, 8909499, 8376530, -32625340, 4087881, -15188911, -14416214), - array(1767683, 7197987, -13205226, -2022635, -13091350, 448826, 5799055, 4357868, -4774191, -16323038), - ), - ), - array( - array( - array(6721966, 13833823, -23523388, -1551314, 26354293, -11863321, 23365147, -3949732, 7390890, 2759800), - array(4409041, 2052381, 23373853, 10530217, 7676779, -12885954, 21302353, -4264057, 1244380, -12919645), - array(-4421239, 7169619, 4982368, -2957590, 30256825, -2777540, 14086413, 9208236, 15886429, 16489664), - ), - array( - array(1996075, 10375649, 14346367, 13311202, -6874135, -16438411, -13693198, 398369, -30606455, -712933), - array(-25307465, 9795880, -2777414, 14878809, -33531835, 14780363, 13348553, 12076947, -30836462, 5113182), - array(-17770784, 11797796, 31950843, 13929123, -25888302, 12288344, -30341101, -7336386, 13847711, 5387222), - ), - array( - array(-18582163, -3416217, 17824843, -2340966, 22744343, -10442611, 8763061, 3617786, -19600662, 10370991), - array(20246567, -14369378, 22358229, -543712, 18507283, -10413996, 14554437, -8746092, 32232924, 16763880), - array(9648505, 10094563, 26416693, 14745928, -30374318, -6472621, 11094161, 15689506, 3140038, -16510092), - ), - array( - array(-16160072, 5472695, 31895588, 4744994, 8823515, 10365685, -27224800, 9448613, -28774454, 366295), - array(19153450, 11523972, -11096490, -6503142, -24647631, 5420647, 28344573, 8041113, 719605, 11671788), - array(8678025, 2694440, -6808014, 2517372, 4964326, 11152271, -15432916, -15266516, 27000813, -10195553), - ), - array( - array(-15157904, 7134312, 8639287, -2814877, -7235688, 10421742, 564065, 5336097, 6750977, -14521026), - array(11836410, -3979488, 26297894, 16080799, 23455045, 15735944, 1695823, -8819122, 8169720, 16220347), - array(-18115838, 8653647, 17578566, -6092619, -8025777, -16012763, -11144307, -2627664, -5990708, -14166033), - ), - array( - array(-23308498, -10968312, 15213228, -10081214, -30853605, -11050004, 27884329, 2847284, 2655861, 1738395), - array(-27537433, -14253021, -25336301, -8002780, -9370762, 8129821, 21651608, -3239336, -19087449, -11005278), - array(1533110, 3437855, 23735889, 459276, 29970501, 11335377, 26030092, 5821408, 10478196, 8544890), - ), - array( - array(32173121, -16129311, 24896207, 3921497, 22579056, -3410854, 19270449, 12217473, 17789017, -3395995), - array(-30552961, -2228401, -15578829, -10147201, 13243889, 517024, 15479401, -3853233, 30460520, 1052596), - array(-11614875, 13323618, 32618793, 8175907, -15230173, 12596687, 27491595, -4612359, 3179268, -9478891), - ), - array( - array(31947069, -14366651, -4640583, -15339921, -15125977, -6039709, -14756777, -16411740, 19072640, -9511060), - array(11685058, 11822410, 3158003, -13952594, 33402194, -4165066, 5977896, -5215017, 473099, 5040608), - array(-20290863, 8198642, -27410132, 11602123, 1290375, -2799760, 28326862, 1721092, -19558642, -3131606), - ), - ), - array( - array( - array(7881532, 10687937, 7578723, 7738378, -18951012, -2553952, 21820786, 8076149, -27868496, 11538389), - array(-19935666, 3899861, 18283497, -6801568, -15728660, -11249211, 8754525, 7446702, -5676054, 5797016), - array(-11295600, -3793569, -15782110, -7964573, 12708869, -8456199, 2014099, -9050574, -2369172, -5877341), - ), - array( - array(-22472376, -11568741, -27682020, 1146375, 18956691, 16640559, 1192730, -3714199, 15123619, 10811505), - array(14352098, -3419715, -18942044, 10822655, 32750596, 4699007, -70363, 15776356, -28886779, -11974553), - array(-28241164, -8072475, -4978962, -5315317, 29416931, 1847569, -20654173, -16484855, 4714547, -9600655), - ), - array( - array(15200332, 8368572, 19679101, 15970074, -31872674, 1959451, 24611599, -4543832, -11745876, 12340220), - array(12876937, -10480056, 33134381, 6590940, -6307776, 14872440, 9613953, 8241152, 15370987, 9608631), - array(-4143277, -12014408, 8446281, -391603, 4407738, 13629032, -7724868, 15866074, -28210621, -8814099), - ), - array( - array(26660628, -15677655, 8393734, 358047, -7401291, 992988, -23904233, 858697, 20571223, 8420556), - array(14620715, 13067227, -15447274, 8264467, 14106269, 15080814, 33531827, 12516406, -21574435, -12476749), - array(236881, 10476226, 57258, -14677024, 6472998, 2466984, 17258519, 7256740, 8791136, 15069930), - ), - array( - array(1276410, -9371918, 22949635, -16322807, -23493039, -5702186, 14711875, 4874229, -30663140, -2331391), - array(5855666, 4990204, -13711848, 7294284, -7804282, 1924647, -1423175, -7912378, -33069337, 9234253), - array(20590503, -9018988, 31529744, -7352666, -2706834, 10650548, 31559055, -11609587, 18979186, 13396066), - ), - array( - array(24474287, 4968103, 22267082, 4407354, 24063882, -8325180, -18816887, 13594782, 33514650, 7021958), - array(-11566906, -6565505, -21365085, 15928892, -26158305, 4315421, -25948728, -3916677, -21480480, 12868082), - array(-28635013, 13504661, 19988037, -2132761, 21078225, 6443208, -21446107, 2244500, -12455797, -8089383), - ), - array( - array(-30595528, 13793479, -5852820, 319136, -25723172, -6263899, 33086546, 8957937, -15233648, 5540521), - array(-11630176, -11503902, -8119500, -7643073, 2620056, 1022908, -23710744, -1568984, -16128528, -14962807), - array(23152971, 775386, 27395463, 14006635, -9701118, 4649512, 1689819, 892185, -11513277, -15205948), - ), - array( - array(9770129, 9586738, 26496094, 4324120, 1556511, -3550024, 27453819, 4763127, -19179614, 5867134), - array(-32765025, 1927590, 31726409, -4753295, 23962434, -16019500, 27846559, 5931263, -29749703, -16108455), - array(27461885, -2977536, 22380810, 1815854, -23033753, -3031938, 7283490, -15148073, -19526700, 7734629), - ), - ), - array( - array( - array(-8010264, -9590817, -11120403, 6196038, 29344158, -13430885, 7585295, -3176626, 18549497, 15302069), - array(-32658337, -6171222, -7672793, -11051681, 6258878, 13504381, 10458790, -6418461, -8872242, 8424746), - array(24687205, 8613276, -30667046, -3233545, 1863892, -1830544, 19206234, 7134917, -11284482, -828919), - ), - array( - array(11334899, -9218022, 8025293, 12707519, 17523892, -10476071, 10243738, -14685461, -5066034, 16498837), - array(8911542, 6887158, -9584260, -6958590, 11145641, -9543680, 17303925, -14124238, 6536641, 10543906), - array(-28946384, 15479763, -17466835, 568876, -1497683, 11223454, -2669190, -16625574, -27235709, 8876771), - ), - array( - array(-25742899, -12566864, -15649966, -846607, -33026686, -796288, -33481822, 15824474, -604426, -9039817), - array(10330056, 70051, 7957388, -9002667, 9764902, 15609756, 27698697, -4890037, 1657394, 3084098), - array(10477963, -7470260, 12119566, -13250805, 29016247, -5365589, 31280319, 14396151, -30233575, 15272409), - ), - array( - array(-12288309, 3169463, 28813183, 16658753, 25116432, -5630466, -25173957, -12636138, -25014757, 1950504), - array(-26180358, 9489187, 11053416, -14746161, -31053720, 5825630, -8384306, -8767532, 15341279, 8373727), - array(28685821, 7759505, -14378516, -12002860, -31971820, 4079242, 298136, -10232602, -2878207, 15190420), - ), - array( - array(-32932876, 13806336, -14337485, -15794431, -24004620, 10940928, 8669718, 2742393, -26033313, -6875003), - array(-1580388, -11729417, -25979658, -11445023, -17411874, -10912854, 9291594, -16247779, -12154742, 6048605), - array(-30305315, 14843444, 1539301, 11864366, 20201677, 1900163, 13934231, 5128323, 11213262, 9168384), - ), - array( - array(-26280513, 11007847, 19408960, -940758, -18592965, -4328580, -5088060, -11105150, 20470157, -16398701), - array(-23136053, 9282192, 14855179, -15390078, -7362815, -14408560, -22783952, 14461608, 14042978, 5230683), - array(29969567, -2741594, -16711867, -8552442, 9175486, -2468974, 21556951, 3506042, -5933891, -12449708), - ), - array( - array(-3144746, 8744661, 19704003, 4581278, -20430686, 6830683, -21284170, 8971513, -28539189, 15326563), - array(-19464629, 10110288, -17262528, -3503892, -23500387, 1355669, -15523050, 15300988, -20514118, 9168260), - array(-5353335, 4488613, -23803248, 16314347, 7780487, -15638939, -28948358, 9601605, 33087103, -9011387), - ), - array( - array(-19443170, -15512900, -20797467, -12445323, -29824447, 10229461, -27444329, -15000531, -5996870, 15664672), - array(23294591, -16632613, -22650781, -8470978, 27844204, 11461195, 13099750, -2460356, 18151676, 13417686), - array(-24722913, -4176517, -31150679, 5988919, -26858785, 6685065, 1661597, -12551441, 15271676, -15452665), - ), - ), - array( - array( - array(11433042, -13228665, 8239631, -5279517, -1985436, -725718, -18698764, 2167544, -6921301, -13440182), - array(-31436171, 15575146, 30436815, 12192228, -22463353, 9395379, -9917708, -8638997, 12215110, 12028277), - array(14098400, 6555944, 23007258, 5757252, -15427832, -12950502, 30123440, 4617780, -16900089, -655628), - ), - array( - array(-4026201, -15240835, 11893168, 13718664, -14809462, 1847385, -15819999, 10154009, 23973261, -12684474), - array(-26531820, -3695990, -1908898, 2534301, -31870557, -16550355, 18341390, -11419951, 32013174, -10103539), - array(-25479301, 10876443, -11771086, -14625140, -12369567, 1838104, 21911214, 6354752, 4425632, -837822), - ), - array( - array(-10433389, -14612966, 22229858, -3091047, -13191166, 776729, -17415375, -12020462, 4725005, 14044970), - array(19268650, -7304421, 1555349, 8692754, -21474059, -9910664, 6347390, -1411784, -19522291, -16109756), - array(-24864089, 12986008, -10898878, -5558584, -11312371, -148526, 19541418, 8180106, 9282262, 10282508), - ), - array( - array(-26205082, 4428547, -8661196, -13194263, 4098402, -14165257, 15522535, 8372215, 5542595, -10702683), - array(-10562541, 14895633, 26814552, -16673850, -17480754, -2489360, -2781891, 6993761, -18093885, 10114655), - array(-20107055, -929418, 31422704, 10427861, -7110749, 6150669, -29091755, -11529146, 25953725, -106158), - ), - array( - array(-4234397, -8039292, -9119125, 3046000, 2101609, -12607294, 19390020, 6094296, -3315279, 12831125), - array(-15998678, 7578152, 5310217, 14408357, -33548620, -224739, 31575954, 6326196, 7381791, -2421839), - array(-20902779, 3296811, 24736065, -16328389, 18374254, 7318640, 6295303, 8082724, -15362489, 12339664), - ), - array( - array(27724736, 2291157, 6088201, -14184798, 1792727, 5857634, 13848414, 15768922, 25091167, 14856294), - array(-18866652, 8331043, 24373479, 8541013, -701998, -9269457, 12927300, -12695493, -22182473, -9012899), - array(-11423429, -5421590, 11632845, 3405020, 30536730, -11674039, -27260765, 13866390, 30146206, 9142070), - ), - array( - array(3924129, -15307516, -13817122, -10054960, 12291820, -668366, -27702774, 9326384, -8237858, 4171294), - array(-15921940, 16037937, 6713787, 16606682, -21612135, 2790944, 26396185, 3731949, 345228, -5462949), - array(-21327538, 13448259, 25284571, 1143661, 20614966, -8849387, 2031539, -12391231, -16253183, -13582083), - ), - array( - array(31016211, -16722429, 26371392, -14451233, -5027349, 14854137, 17477601, 3842657, 28012650, -16405420), - array(-5075835, 9368966, -8562079, -4600902, -15249953, 6970560, -9189873, 16292057, -8867157, 3507940), - array(29439664, 3537914, 23333589, 6997794, -17555561, -11018068, -15209202, -15051267, -9164929, 6580396), - ), - ), - array( - array( - array(-12185861, -7679788, 16438269, 10826160, -8696817, -6235611, 17860444, -9273846, -2095802, 9304567), - array(20714564, -4336911, 29088195, 7406487, 11426967, -5095705, 14792667, -14608617, 5289421, -477127), - array(-16665533, -10650790, -6160345, -13305760, 9192020, -1802462, 17271490, 12349094, 26939669, -3752294), - ), - array( - array(-12889898, 9373458, 31595848, 16374215, 21471720, 13221525, -27283495, -12348559, -3698806, 117887), - array(22263325, -6560050, 3984570, -11174646, -15114008, -566785, 28311253, 5358056, -23319780, 541964), - array(16259219, 3261970, 2309254, -15534474, -16885711, -4581916, 24134070, -16705829, -13337066, -13552195), - ), - array( - array(9378160, -13140186, -22845982, -12745264, 28198281, -7244098, -2399684, -717351, 690426, 14876244), - array(24977353, -314384, -8223969, -13465086, 28432343, -1176353, -13068804, -12297348, -22380984, 6618999), - array(-1538174, 11685646, 12944378, 13682314, -24389511, -14413193, 8044829, -13817328, 32239829, -5652762), - ), - array( - array(-18603066, 4762990, -926250, 8885304, -28412480, -3187315, 9781647, -10350059, 32779359, 5095274), - array(-33008130, -5214506, -32264887, -3685216, 9460461, -9327423, -24601656, 14506724, 21639561, -2630236), - array(-16400943, -13112215, 25239338, 15531969, 3987758, -4499318, -1289502, -6863535, 17874574, 558605), - ), - array( - array(-13600129, 10240081, 9171883, 16131053, -20869254, 9599700, 33499487, 5080151, 2085892, 5119761), - array(-22205145, -2519528, -16381601, 414691, -25019550, 2170430, 30634760, -8363614, -31999993, -5759884), - array(-6845704, 15791202, 8550074, -1312654, 29928809, -12092256, 27534430, -7192145, -22351378, 12961482), - ), - array( - array(-24492060, -9570771, 10368194, 11582341, -23397293, -2245287, 16533930, 8206996, -30194652, -5159638), - array(-11121496, -3382234, 2307366, 6362031, -135455, 8868177, -16835630, 7031275, 7589640, 8945490), - array(-32152748, 8917967, 6661220, -11677616, -1192060, -15793393, 7251489, -11182180, 24099109, -14456170), - ), - array( - array(5019558, -7907470, 4244127, -14714356, -26933272, 6453165, -19118182, -13289025, -6231896, -10280736), - array(10853594, 10721687, 26480089, 5861829, -22995819, 1972175, -1866647, -10557898, -3363451, -6441124), - array(-17002408, 5906790, 221599, -6563147, 7828208, -13248918, 24362661, -2008168, -13866408, 7421392), - ), - array( - array(8139927, -6546497, 32257646, -5890546, 30375719, 1886181, -21175108, 15441252, 28826358, -4123029), - array(6267086, 9695052, 7709135, -16603597, -32869068, -1886135, 14795160, -7840124, 13746021, -1742048), - array(28584902, 7787108, -6732942, -15050729, 22846041, -7571236, -3181936, -363524, 4771362, -8419958), - ), - ), - array( - array( - array(24949256, 6376279, -27466481, -8174608, -18646154, -9930606, 33543569, -12141695, 3569627, 11342593), - array(26514989, 4740088, 27912651, 3697550, 19331575, -11472339, 6809886, 4608608, 7325975, -14801071), - array(-11618399, -14554430, -24321212, 7655128, -1369274, 5214312, -27400540, 10258390, -17646694, -8186692), - ), - array( - array(11431204, 15823007, 26570245, 14329124, 18029990, 4796082, -31446179, 15580664, 9280358, -3973687), - array(-160783, -10326257, -22855316, -4304997, -20861367, -13621002, -32810901, -11181622, -15545091, 4387441), - array(-20799378, 12194512, 3937617, -5805892, -27154820, 9340370, -24513992, 8548137, 20617071, -7482001), - ), - array( - array(-938825, -3930586, -8714311, 16124718, 24603125, -6225393, -13775352, -11875822, 24345683, 10325460), - array(-19855277, -1568885, -22202708, 8714034, 14007766, 6928528, 16318175, -1010689, 4766743, 3552007), - array(-21751364, -16730916, 1351763, -803421, -4009670, 3950935, 3217514, 14481909, 10988822, -3994762), - ), - array( - array(15564307, -14311570, 3101243, 5684148, 30446780, -8051356, 12677127, -6505343, -8295852, 13296005), - array(-9442290, 6624296, -30298964, -11913677, -4670981, -2057379, 31521204, 9614054, -30000824, 12074674), - array(4771191, -135239, 14290749, -13089852, 27992298, 14998318, -1413936, -1556716, 29832613, -16391035), - ), - array( - array(7064884, -7541174, -19161962, -5067537, -18891269, -2912736, 25825242, 5293297, -27122660, 13101590), - array(-2298563, 2439670, -7466610, 1719965, -27267541, -16328445, 32512469, -5317593, -30356070, -4190957), - array(-30006540, 10162316, -33180176, 3981723, -16482138, -13070044, 14413974, 9515896, 19568978, 9628812), - ), - array( - array(33053803, 199357, 15894591, 1583059, 27380243, -4580435, -17838894, -6106839, -6291786, 3437740), - array(-18978877, 3884493, 19469877, 12726490, 15913552, 13614290, -22961733, 70104, 7463304, 4176122), - array(-27124001, 10659917, 11482427, -16070381, 12771467, -6635117, -32719404, -5322751, 24216882, 5944158), - ), - array( - array(8894125, 7450974, -2664149, -9765752, -28080517, -12389115, 19345746, 14680796, 11632993, 5847885), - array(26942781, -2315317, 9129564, -4906607, 26024105, 11769399, -11518837, 6367194, -9727230, 4782140), - array(19916461, -4828410, -22910704, -11414391, 25606324, -5972441, 33253853, 8220911, 6358847, -1873857), - ), - array( - array(801428, -2081702, 16569428, 11065167, 29875704, 96627, 7908388, -4480480, -13538503, 1387155), - array(19646058, 5720633, -11416706, 12814209, 11607948, 12749789, 14147075, 15156355, -21866831, 11835260), - array(19299512, 1155910, 28703737, 14890794, 2925026, 7269399, 26121523, 15467869, -26560550, 5052483), - ), - ), - array( - array( - array(-3017432, 10058206, 1980837, 3964243, 22160966, 12322533, -6431123, -12618185, 12228557, -7003677), - array(32944382, 14922211, -22844894, 5188528, 21913450, -8719943, 4001465, 13238564, -6114803, 8653815), - array(22865569, -4652735, 27603668, -12545395, 14348958, 8234005, 24808405, 5719875, 28483275, 2841751), - ), - array( - array(-16420968, -1113305, -327719, -12107856, 21886282, -15552774, -1887966, -315658, 19932058, -12739203), - array(-11656086, 10087521, -8864888, -5536143, -19278573, -3055912, 3999228, 13239134, -4777469, -13910208), - array(1382174, -11694719, 17266790, 9194690, -13324356, 9720081, 20403944, 11284705, -14013818, 3093230), - ), - array( - array(16650921, -11037932, -1064178, 1570629, -8329746, 7352753, -302424, 16271225, -24049421, -6691850), - array(-21911077, -5927941, -4611316, -5560156, -31744103, -10785293, 24123614, 15193618, -21652117, -16739389), - array(-9935934, -4289447, -25279823, 4372842, 2087473, 10399484, 31870908, 14690798, 17361620, 11864968), - ), - array( - array(-11307610, 6210372, 13206574, 5806320, -29017692, -13967200, -12331205, -7486601, -25578460, -16240689), - array(14668462, -12270235, 26039039, 15305210, 25515617, 4542480, 10453892, 6577524, 9145645, -6443880), - array(5974874, 3053895, -9433049, -10385191, -31865124, 3225009, -7972642, 3936128, -5652273, -3050304), - ), - array( - array(30625386, -4729400, -25555961, -12792866, -20484575, 7695099, 17097188, -16303496, -27999779, 1803632), - array(-3553091, 9865099, -5228566, 4272701, -5673832, -16689700, 14911344, 12196514, -21405489, 7047412), - array(20093277, 9920966, -11138194, -5343857, 13161587, 12044805, -32856851, 4124601, -32343828, -10257566), - ), - array( - array(-20788824, 14084654, -13531713, 7842147, 19119038, -13822605, 4752377, -8714640, -21679658, 2288038), - array(-26819236, -3283715, 29965059, 3039786, -14473765, 2540457, 29457502, 14625692, -24819617, 12570232), - array(-1063558, -11551823, 16920318, 12494842, 1278292, -5869109, -21159943, -3498680, -11974704, 4724943), - ), - array( - array(17960970, -11775534, -4140968, -9702530, -8876562, -1410617, -12907383, -8659932, -29576300, 1903856), - array(23134274, -14279132, -10681997, -1611936, 20684485, 15770816, -12989750, 3190296, 26955097, 14109738), - array(15308788, 5320727, -30113809, -14318877, 22902008, 7767164, 29425325, -11277562, 31960942, 11934971), - ), - array( - array(-27395711, 8435796, 4109644, 12222639, -24627868, 14818669, 20638173, 4875028, 10491392, 1379718), - array(-13159415, 9197841, 3875503, -8936108, -1383712, -5879801, 33518459, 16176658, 21432314, 12180697), - array(-11787308, 11500838, 13787581, -13832590, -22430679, 10140205, 1465425, 12689540, -10301319, -13872883), - ), - ), - array( - array( - array(5414091, -15386041, -21007664, 9643570, 12834970, 1186149, -2622916, -1342231, 26128231, 6032912), - array(-26337395, -13766162, 32496025, -13653919, 17847801, -12669156, 3604025, 8316894, -25875034, -10437358), - array(3296484, 6223048, 24680646, -12246460, -23052020, 5903205, -8862297, -4639164, 12376617, 3188849), - ), - array( - array(29190488, -14659046, 27549113, -1183516, 3520066, -10697301, 32049515, -7309113, -16109234, -9852307), - array(-14744486, -9309156, 735818, -598978, -20407687, -5057904, 25246078, -15795669, 18640741, -960977), - array(-6928835, -16430795, 10361374, 5642961, 4910474, 12345252, -31638386, -494430, 10530747, 1053335), - ), - array( - array(-29265967, -14186805, -13538216, -12117373, -19457059, -10655384, -31462369, -2948985, 24018831, 15026644), - array(-22592535, -3145277, -2289276, 5953843, -13440189, 9425631, 25310643, 13003497, -2314791, -15145616), - array(-27419985, -603321, -8043984, -1669117, -26092265, 13987819, -27297622, 187899, -23166419, -2531735), - ), - array( - array(-21744398, -13810475, 1844840, 5021428, -10434399, -15911473, 9716667, 16266922, -5070217, 726099), - array(29370922, -6053998, 7334071, -15342259, 9385287, 2247707, -13661962, -4839461, 30007388, -15823341), - array(-936379, 16086691, 23751945, -543318, -1167538, -5189036, 9137109, 730663, 9835848, 4555336), - ), - array( - array(-23376435, 1410446, -22253753, -12899614, 30867635, 15826977, 17693930, 544696, -11985298, 12422646), - array(31117226, -12215734, -13502838, 6561947, -9876867, -12757670, -5118685, -4096706, 29120153, 13924425), - array(-17400879, -14233209, 19675799, -2734756, -11006962, -5858820, -9383939, -11317700, 7240931, -237388), - ), - array( - array(-31361739, -11346780, -15007447, -5856218, -22453340, -12152771, 1222336, 4389483, 3293637, -15551743), - array(-16684801, -14444245, 11038544, 11054958, -13801175, -3338533, -24319580, 7733547, 12796905, -6335822), - array(-8759414, -10817836, -25418864, 10783769, -30615557, -9746811, -28253339, 3647836, 3222231, -11160462), - ), - array( - array(18606113, 1693100, -25448386, -15170272, 4112353, 10045021, 23603893, -2048234, -7550776, 2484985), - array(9255317, -3131197, -12156162, -1004256, 13098013, -9214866, 16377220, -2102812, -19802075, -3034702), - array(-22729289, 7496160, -5742199, 11329249, 19991973, -3347502, -31718148, 9936966, -30097688, -10618797), - ), - array( - array(21878590, -5001297, 4338336, 13643897, -3036865, 13160960, 19708896, 5415497, -7360503, -4109293), - array(27736861, 10103576, 12500508, 8502413, -3413016, -9633558, 10436918, -1550276, -23659143, -8132100), - array(19492550, -12104365, -29681976, -852630, -3208171, 12403437, 30066266, 8367329, 13243957, 8709688), - ), - ), - array( - array( - array(12015105, 2801261, 28198131, 10151021, 24818120, -4743133, -11194191, -5645734, 5150968, 7274186), - array(2831366, -12492146, 1478975, 6122054, 23825128, -12733586, 31097299, 6083058, 31021603, -9793610), - array(-2529932, -2229646, 445613, 10720828, -13849527, -11505937, -23507731, 16354465, 15067285, -14147707), - ), - array( - array(7840942, 14037873, -33364863, 15934016, -728213, -3642706, 21403988, 1057586, -19379462, -12403220), - array(915865, -16469274, 15608285, -8789130, -24357026, 6060030, -17371319, 8410997, -7220461, 16527025), - array(32922597, -556987, 20336074, -16184568, 10903705, -5384487, 16957574, 52992, 23834301, 6588044), - ), - array( - array(32752030, 11232950, 3381995, -8714866, 22652988, -10744103, 17159699, 16689107, -20314580, -1305992), - array(-4689649, 9166776, -25710296, -10847306, 11576752, 12733943, 7924251, -2752281, 1976123, -7249027), - array(21251222, 16309901, -2983015, -6783122, 30810597, 12967303, 156041, -3371252, 12331345, -8237197), - ), - array( - array(8651614, -4477032, -16085636, -4996994, 13002507, 2950805, 29054427, -5106970, 10008136, -4667901), - array(31486080, 15114593, -14261250, 12951354, 14369431, -7387845, 16347321, -13662089, 8684155, -10532952), - array(19443825, 11385320, 24468943, -9659068, -23919258, 2187569, -26263207, -6086921, 31316348, 14219878), - ), - array( - array(-28594490, 1193785, 32245219, 11392485, 31092169, 15722801, 27146014, 6992409, 29126555, 9207390), - array(32382935, 1110093, 18477781, 11028262, -27411763, -7548111, -4980517, 10843782, -7957600, -14435730), - array(2814918, 7836403, 27519878, -7868156, -20894015, -11553689, -21494559, 8550130, 28346258, 1994730), - ), - array( - array(-19578299, 8085545, -14000519, -3948622, 2785838, -16231307, -19516951, 7174894, 22628102, 8115180), - array(-30405132, 955511, -11133838, -15078069, -32447087, -13278079, -25651578, 3317160, -9943017, 930272), - array(-15303681, -6833769, 28856490, 1357446, 23421993, 1057177, 24091212, -1388970, -22765376, -10650715), - ), - array( - array(-22751231, -5303997, -12907607, -12768866, -15811511, -7797053, -14839018, -16554220, -1867018, 8398970), - array(-31969310, 2106403, -4736360, 1362501, 12813763, 16200670, 22981545, -6291273, 18009408, -15772772), - array(-17220923, -9545221, -27784654, 14166835, 29815394, 7444469, 29551787, -3727419, 19288549, 1325865), - ), - array( - array(15100157, -15835752, -23923978, -1005098, -26450192, 15509408, 12376730, -3479146, 33166107, -8042750), - array(20909231, 13023121, -9209752, 16251778, -5778415, -8094914, 12412151, 10018715, 2213263, -13878373), - array(32529814, -11074689, 30361439, -16689753, -9135940, 1513226, 22922121, 6382134, -5766928, 8371348), - ), - ), - array( - array( - array(9923462, 11271500, 12616794, 3544722, -29998368, -1721626, 12891687, -8193132, -26442943, 10486144), - array(-22597207, -7012665, 8587003, -8257861, 4084309, -12970062, 361726, 2610596, -23921530, -11455195), - array(5408411, -1136691, -4969122, 10561668, 24145918, 14240566, 31319731, -4235541, 19985175, -3436086), - ), - array( - array(-13994457, 16616821, 14549246, 3341099, 32155958, 13648976, -17577068, 8849297, 65030, 8370684), - array(-8320926, -12049626, 31204563, 5839400, -20627288, -1057277, -19442942, 6922164, 12743482, -9800518), - array(-2361371, 12678785, 28815050, 4759974, -23893047, 4884717, 23783145, 11038569, 18800704, 255233), - ), - array( - array(-5269658, -1773886, 13957886, 7990715, 23132995, 728773, 13393847, 9066957, 19258688, -14753793), - array(-2936654, -10827535, -10432089, 14516793, -3640786, 4372541, -31934921, 2209390, -1524053, 2055794), - array(580882, 16705327, 5468415, -2683018, -30926419, -14696000, -7203346, -8994389, -30021019, 7394435), - ), - array( - array(23838809, 1822728, -15738443, 15242727, 8318092, -3733104, -21672180, -3492205, -4821741, 14799921), - array(13345610, 9759151, 3371034, -16137791, 16353039, 8577942, 31129804, 13496856, -9056018, 7402518), - array(2286874, -4435931, -20042458, -2008336, -13696227, 5038122, 11006906, -15760352, 8205061, 1607563), - ), - array( - array(14414086, -8002132, 3331830, -3208217, 22249151, -5594188, 18364661, -2906958, 30019587, -9029278), - array(-27688051, 1585953, -10775053, 931069, -29120221, -11002319, -14410829, 12029093, 9944378, 8024), - array(4368715, -3709630, 29874200, -15022983, -20230386, -11410704, -16114594, -999085, -8142388, 5640030), - ), - array( - array(10299610, 13746483, 11661824, 16234854, 7630238, 5998374, 9809887, -16694564, 15219798, -14327783), - array(27425505, -5719081, 3055006, 10660664, 23458024, 595578, -15398605, -1173195, -18342183, 9742717), - array(6744077, 2427284, 26042789, 2720740, -847906, 1118974, 32324614, 7406442, 12420155, 1994844), - ), - array( - array(14012521, -5024720, -18384453, -9578469, -26485342, -3936439, -13033478, -10909803, 24319929, -6446333), - array(16412690, -4507367, 10772641, 15929391, -17068788, -4658621, 10555945, -10484049, -30102368, -4739048), - array(22397382, -7767684, -9293161, -12792868, 17166287, -9755136, -27333065, 6199366, 21880021, -12250760), - ), - array( - array(-4283307, 5368523, -31117018, 8163389, -30323063, 3209128, 16557151, 8890729, 8840445, 4957760), - array(-15447727, 709327, -6919446, -10870178, -29777922, 6522332, -21720181, 12130072, -14796503, 5005757), - array(-2114751, -14308128, 23019042, 15765735, -25269683, 6002752, 10183197, -13239326, -16395286, -2176112), - ), - ), - array( - array( - array(-19025756, 1632005, 13466291, -7995100, -23640451, 16573537, -32013908, -3057104, 22208662, 2000468), - array(3065073, -1412761, -25598674, -361432, -17683065, -5703415, -8164212, 11248527, -3691214, -7414184), - array(10379208, -6045554, 8877319, 1473647, -29291284, -12507580, 16690915, 2553332, -3132688, 16400289), - ), - array( - array(15716668, 1254266, -18472690, 7446274, -8448918, 6344164, -22097271, -7285580, 26894937, 9132066), - array(24158887, 12938817, 11085297, -8177598, -28063478, -4457083, -30576463, 64452, -6817084, -2692882), - array(13488534, 7794716, 22236231, 5989356, 25426474, -12578208, 2350710, -3418511, -4688006, 2364226), - ), - array( - array(16335052, 9132434, 25640582, 6678888, 1725628, 8517937, -11807024, -11697457, 15445875, -7798101), - array(29004207, -7867081, 28661402, -640412, -12794003, -7943086, 31863255, -4135540, -278050, -15759279), - array(-6122061, -14866665, -28614905, 14569919, -10857999, -3591829, 10343412, -6976290, -29828287, -10815811), - ), - array( - array(27081650, 3463984, 14099042, -4517604, 1616303, -6205604, 29542636, 15372179, 17293797, 960709), - array(20263915, 11434237, -5765435, 11236810, 13505955, -10857102, -16111345, 6493122, -19384511, 7639714), - array(-2830798, -14839232, 25403038, -8215196, -8317012, -16173699, 18006287, -16043750, 29994677, -15808121), - ), - array( - array(9769828, 5202651, -24157398, -13631392, -28051003, -11561624, -24613141, -13860782, -31184575, 709464), - array(12286395, 13076066, -21775189, -1176622, -25003198, 4057652, -32018128, -8890874, 16102007, 13205847), - array(13733362, 5599946, 10557076, 3195751, -5557991, 8536970, -25540170, 8525972, 10151379, 10394400), - ), - array( - array(4024660, -16137551, 22436262, 12276534, -9099015, -2686099, 19698229, 11743039, -33302334, 8934414), - array(-15879800, -4525240, -8580747, -2934061, 14634845, -698278, -9449077, 3137094, -11536886, 11721158), - array(17555939, -5013938, 8268606, 2331751, -22738815, 9761013, 9319229, 8835153, -9205489, -1280045), - ), - array( - array(-461409, -7830014, 20614118, 16688288, -7514766, -4807119, 22300304, 505429, 6108462, -6183415), - array(-5070281, 12367917, -30663534, 3234473, 32617080, -8422642, 29880583, -13483331, -26898490, -7867459), - array(-31975283, 5726539, 26934134, 10237677, -3173717, -605053, 24199304, 3795095, 7592688, -14992079), - ), - array( - array(21594432, -14964228, 17466408, -4077222, 32537084, 2739898, 6407723, 12018833, -28256052, 4298412), - array(-20650503, -11961496, -27236275, 570498, 3767144, -1717540, 13891942, -1569194, 13717174, 10805743), - array(-14676630, -15644296, 15287174, 11927123, 24177847, -8175568, -796431, 14860609, -26938930, -5863836), - ), - ), - array( - array( - array(12962541, 5311799, -10060768, 11658280, 18855286, -7954201, 13286263, -12808704, -4381056, 9882022), - array(18512079, 11319350, -20123124, 15090309, 18818594, 5271736, -22727904, 3666879, -23967430, -3299429), - array(-6789020, -3146043, 16192429, 13241070, 15898607, -14206114, -10084880, -6661110, -2403099, 5276065), - ), - array( - array(30169808, -5317648, 26306206, -11750859, 27814964, 7069267, 7152851, 3684982, 1449224, 13082861), - array(10342826, 3098505, 2119311, 193222, 25702612, 12233820, 23697382, 15056736, -21016438, -8202000), - array(-33150110, 3261608, 22745853, 7948688, 19370557, -15177665, -26171976, 6482814, -10300080, -11060101), - ), - array( - array(32869458, -5408545, 25609743, 15678670, -10687769, -15471071, 26112421, 2521008, -22664288, 6904815), - array(29506923, 4457497, 3377935, -9796444, -30510046, 12935080, 1561737, 3841096, -29003639, -6657642), - array(10340844, -6630377, -18656632, -2278430, 12621151, -13339055, 30878497, -11824370, -25584551, 5181966), - ), - array( - array(25940115, -12658025, 17324188, -10307374, -8671468, 15029094, 24396252, -16450922, -2322852, -12388574), - array(-21765684, 9916823, -1300409, 4079498, -1028346, 11909559, 1782390, 12641087, 20603771, -6561742), - array(-18882287, -11673380, 24849422, 11501709, 13161720, -4768874, 1925523, 11914390, 4662781, 7820689), - ), - array( - array(12241050, -425982, 8132691, 9393934, 32846760, -1599620, 29749456, 12172924, 16136752, 15264020), - array(-10349955, -14680563, -8211979, 2330220, -17662549, -14545780, 10658213, 6671822, 19012087, 3772772), - array(3753511, -3421066, 10617074, 2028709, 14841030, -6721664, 28718732, -15762884, 20527771, 12988982), - ), - array( - array(-14822485, -5797269, -3707987, 12689773, -898983, -10914866, -24183046, -10564943, 3299665, -12424953), - array(-16777703, -15253301, -9642417, 4978983, 3308785, 8755439, 6943197, 6461331, -25583147, 8991218), - array(-17226263, 1816362, -1673288, -6086439, 31783888, -8175991, -32948145, 7417950, -30242287, 1507265), - ), - array( - array(29692663, 6829891, -10498800, 4334896, 20945975, -11906496, -28887608, 8209391, 14606362, -10647073), - array(-3481570, 8707081, 32188102, 5672294, 22096700, 1711240, -33020695, 9761487, 4170404, -2085325), - array(-11587470, 14855945, -4127778, -1531857, -26649089, 15084046, 22186522, 16002000, -14276837, -8400798), - ), - array( - array(-4811456, 13761029, -31703877, -2483919, -3312471, 7869047, -7113572, -9620092, 13240845, 10965870), - array(-7742563, -8256762, -14768334, -13656260, -23232383, 12387166, 4498947, 14147411, 29514390, 4302863), - array(-13413405, -12407859, 20757302, -13801832, 14785143, 8976368, -5061276, -2144373, 17846988, -13971927), - ), - ), - array( - array( - array(-2244452, -754728, -4597030, -1066309, -6247172, 1455299, -21647728, -9214789, -5222701, 12650267), - array(-9906797, -16070310, 21134160, 12198166, -27064575, 708126, 387813, 13770293, -19134326, 10958663), - array(22470984, 12369526, 23446014, -5441109, -21520802, -9698723, -11772496, -11574455, -25083830, 4271862), - ), - array( - array(-25169565, -10053642, -19909332, 15361595, -5984358, 2159192, 75375, -4278529, -32526221, 8469673), - array(15854970, 4148314, -8893890, 7259002, 11666551, 13824734, -30531198, 2697372, 24154791, -9460943), - array(15446137, -15806644, 29759747, 14019369, 30811221, -9610191, -31582008, 12840104, 24913809, 9815020), - ), - array( - array(-4709286, -5614269, -31841498, -12288893, -14443537, 10799414, -9103676, 13438769, 18735128, 9466238), - array(11933045, 9281483, 5081055, -5183824, -2628162, -4905629, -7727821, -10896103, -22728655, 16199064), - array(14576810, 379472, -26786533, -8317236, -29426508, -10812974, -102766, 1876699, 30801119, 2164795), - ), - array( - array(15995086, 3199873, 13672555, 13712240, -19378835, -4647646, -13081610, -15496269, -13492807, 1268052), - array(-10290614, -3659039, -3286592, 10948818, 23037027, 3794475, -3470338, -12600221, -17055369, 3565904), - array(29210088, -9419337, -5919792, -4952785, 10834811, -13327726, -16512102, -10820713, -27162222, -14030531), - ), - array( - array(-13161890, 15508588, 16663704, -8156150, -28349942, 9019123, -29183421, -3769423, 2244111, -14001979), - array(-5152875, -3800936, -9306475, -6071583, 16243069, 14684434, -25673088, -16180800, 13491506, 4641841), - array(10813417, 643330, -19188515, -728916, 30292062, -16600078, 27548447, -7721242, 14476989, -12767431), - ), - array( - array(10292079, 9984945, 6481436, 8279905, -7251514, 7032743, 27282937, -1644259, -27912810, 12651324), - array(-31185513, -813383, 22271204, 11835308, 10201545, 15351028, 17099662, 3988035, 21721536, -3148940), - array(10202177, -6545839, -31373232, -9574638, -32150642, -8119683, -12906320, 3852694, 13216206, 14842320), - ), - array( - array(-15815640, -10601066, -6538952, -7258995, -6984659, -6581778, -31500847, 13765824, -27434397, 9900184), - array(14465505, -13833331, -32133984, -14738873, -27443187, 12990492, 33046193, 15796406, -7051866, -8040114), - array(30924417, -8279620, 6359016, -12816335, 16508377, 9071735, -25488601, 15413635, 9524356, -7018878), - ), - array( - array(12274201, -13175547, 32627641, -1785326, 6736625, 13267305, 5237659, -5109483, 15663516, 4035784), - array(-2951309, 8903985, 17349946, 601635, -16432815, -4612556, -13732739, -15889334, -22258478, 4659091), - array(-16916263, -4952973, -30393711, -15158821, 20774812, 15897498, 5736189, 15026997, -2178256, -13455585), - ), - ), - array( - array( - array(-8858980, -2219056, 28571666, -10155518, -474467, -10105698, -3801496, 278095, 23440562, -290208), - array(10226241, -5928702, 15139956, 120818, -14867693, 5218603, 32937275, 11551483, -16571960, -7442864), - array(17932739, -12437276, -24039557, 10749060, 11316803, 7535897, 22503767, 5561594, -3646624, 3898661), - ), - array( - array(7749907, -969567, -16339731, -16464, -25018111, 15122143, -1573531, 7152530, 21831162, 1245233), - array(26958459, -14658026, 4314586, 8346991, -5677764, 11960072, -32589295, -620035, -30402091, -16716212), - array(-12165896, 9166947, 33491384, 13673479, 29787085, 13096535, 6280834, 14587357, -22338025, 13987525), - ), - array( - array(-24349909, 7778775, 21116000, 15572597, -4833266, -5357778, -4300898, -5124639, -7469781, -2858068), - array(9681908, -6737123, -31951644, 13591838, -6883821, 386950, 31622781, 6439245, -14581012, 4091397), - array(-8426427, 1470727, -28109679, -1596990, 3978627, -5123623, -19622683, 12092163, 29077877, -14741988), - ), - array( - array(5269168, -6859726, -13230211, -8020715, 25932563, 1763552, -5606110, -5505881, -20017847, 2357889), - array(32264008, -15407652, -5387735, -1160093, -2091322, -3946900, 23104804, -12869908, 5727338, 189038), - array(14609123, -8954470, -6000566, -16622781, -14577387, -7743898, -26745169, 10942115, -25888931, -14884697), - ), - array( - array(20513500, 5557931, -15604613, 7829531, 26413943, -2019404, -21378968, 7471781, 13913677, -5137875), - array(-25574376, 11967826, 29233242, 12948236, -6754465, 4713227, -8940970, 14059180, 12878652, 8511905), - array(-25656801, 3393631, -2955415, -7075526, -2250709, 9366908, -30223418, 6812974, 5568676, -3127656), - ), - array( - array(11630004, 12144454, 2116339, 13606037, 27378885, 15676917, -17408753, -13504373, -14395196, 8070818), - array(27117696, -10007378, -31282771, -5570088, 1127282, 12772488, -29845906, 10483306, -11552749, -1028714), - array(10637467, -5688064, 5674781, 1072708, -26343588, -6982302, -1683975, 9177853, -27493162, 15431203), - ), - array( - array(20525145, 10892566, -12742472, 12779443, -29493034, 16150075, -28240519, 14943142, -15056790, -7935931), - array(-30024462, 5626926, -551567, -9981087, 753598, 11981191, 25244767, -3239766, -3356550, 9594024), - array(-23752644, 2636870, -5163910, -10103818, 585134, 7877383, 11345683, -6492290, 13352335, -10977084), - ), - array( - array(-1931799, -5407458, 3304649, -12884869, 17015806, -4877091, -29783850, -7752482, -13215537, -319204), - array(20239939, 6607058, 6203985, 3483793, -18386976, -779229, -20723742, 15077870, -22750759, 14523817), - array(27406042, -6041657, 27423596, -4497394, 4996214, 10002360, -28842031, -4545494, -30172742, -4805667), - ), - ), - array( - array( - array(11374242, 12660715, 17861383, -12540833, 10935568, 1099227, -13886076, -9091740, -27727044, 11358504), - array(-12730809, 10311867, 1510375, 10778093, -2119455, -9145702, 32676003, 11149336, -26123651, 4985768), - array(-19096303, 341147, -6197485, -239033, 15756973, -8796662, -983043, 13794114, -19414307, -15621255), - ), - array( - array(6490081, 11940286, 25495923, -7726360, 8668373, -8751316, 3367603, 6970005, -1691065, -9004790), - array(1656497, 13457317, 15370807, 6364910, 13605745, 8362338, -19174622, -5475723, -16796596, -5031438), - array(-22273315, -13524424, -64685, -4334223, -18605636, -10921968, -20571065, -7007978, -99853, -10237333), - ), - array( - array(17747465, 10039260, 19368299, -4050591, -20630635, -16041286, 31992683, -15857976, -29260363, -5511971), - array(31932027, -4986141, -19612382, 16366580, 22023614, 88450, 11371999, -3744247, 4882242, -10626905), - array(29796507, 37186, 19818052, 10115756, -11829032, 3352736, 18551198, 3272828, -5190932, -4162409), - ), - array( - array(12501286, 4044383, -8612957, -13392385, -32430052, 5136599, -19230378, -3529697, 330070, -3659409), - array(6384877, 2899513, 17807477, 7663917, -2358888, 12363165, 25366522, -8573892, -271295, 12071499), - array(-8365515, -4042521, 25133448, -4517355, -6211027, 2265927, -32769618, 1936675, -5159697, 3829363), - ), - array( - array(28425966, -5835433, -577090, -4697198, -14217555, 6870930, 7921550, -6567787, 26333140, 14267664), - array(-11067219, 11871231, 27385719, -10559544, -4585914, -11189312, 10004786, -8709488, -21761224, 8930324), - array(-21197785, -16396035, 25654216, -1725397, 12282012, 11008919, 1541940, 4757911, -26491501, -16408940), - ), - array( - array(13537262, -7759490, -20604840, 10961927, -5922820, -13218065, -13156584, 6217254, -15943699, 13814990), - array(-17422573, 15157790, 18705543, 29619, 24409717, -260476, 27361681, 9257833, -1956526, -1776914), - array(-25045300, -10191966, 15366585, 15166509, -13105086, 8423556, -29171540, 12361135, -18685978, 4578290), - ), - array( - array(24579768, 3711570, 1342322, -11180126, -27005135, 14124956, -22544529, 14074919, 21964432, 8235257), - array(-6528613, -2411497, 9442966, -5925588, 12025640, -1487420, -2981514, -1669206, 13006806, 2355433), - array(-16304899, -13605259, -6632427, -5142349, 16974359, -10911083, 27202044, 1719366, 1141648, -12796236), - ), - array( - array(-12863944, -13219986, -8318266, -11018091, -6810145, -4843894, 13475066, -3133972, 32674895, 13715045), - array(11423335, -5468059, 32344216, 8962751, 24989809, 9241752, -13265253, 16086212, -28740881, -15642093), - array(-1409668, 12530728, -6368726, 10847387, 19531186, -14132160, -11709148, 7791794, -27245943, 4383347), - ), - ), - array( - array( - array(-28970898, 5271447, -1266009, -9736989, -12455236, 16732599, -4862407, -4906449, 27193557, 6245191), - array(-15193956, 5362278, -1783893, 2695834, 4960227, 12840725, 23061898, 3260492, 22510453, 8577507), - array(-12632451, 11257346, -32692994, 13548177, -721004, 10879011, 31168030, 13952092, -29571492, -3635906), - ), - array( - array(3877321, -9572739, 32416692, 5405324, -11004407, -13656635, 3759769, 11935320, 5611860, 8164018), - array(-16275802, 14667797, 15906460, 12155291, -22111149, -9039718, 32003002, -8832289, 5773085, -8422109), - array(-23788118, -8254300, 1950875, 8937633, 18686727, 16459170, -905725, 12376320, 31632953, 190926), - ), - array( - array(-24593607, -16138885, -8423991, 13378746, 14162407, 6901328, -8288749, 4508564, -25341555, -3627528), - array(8884438, -5884009, 6023974, 10104341, -6881569, -4941533, 18722941, -14786005, -1672488, 827625), - array(-32720583, -16289296, -32503547, 7101210, 13354605, 2659080, -1800575, -14108036, -24878478, 1541286), - ), - array( - array(2901347, -1117687, 3880376, -10059388, -17620940, -3612781, -21802117, -3567481, 20456845, -1885033), - array(27019610, 12299467, -13658288, -1603234, -12861660, -4861471, -19540150, -5016058, 29439641, 15138866), - array(21536104, -6626420, -32447818, -10690208, -22408077, 5175814, -5420040, -16361163, 7779328, 109896), - ), - array( - array(30279744, 14648750, -8044871, 6425558, 13639621, -743509, 28698390, 12180118, 23177719, -554075), - array(26572847, 3405927, -31701700, 12890905, -19265668, 5335866, -6493768, 2378492, 4439158, -13279347), - array(-22716706, 3489070, -9225266, -332753, 18875722, -1140095, 14819434, -12731527, -17717757, -5461437), - ), - array( - array(-5056483, 16566551, 15953661, 3767752, -10436499, 15627060, -820954, 2177225, 8550082, -15114165), - array(-18473302, 16596775, -381660, 15663611, 22860960, 15585581, -27844109, -3582739, -23260460, -8428588), - array(-32480551, 15707275, -8205912, -5652081, 29464558, 2713815, -22725137, 15860482, -21902570, 1494193), - ), - array( - array(-19562091, -14087393, -25583872, -9299552, 13127842, 759709, 21923482, 16529112, 8742704, 12967017), - array(-28464899, 1553205, 32536856, -10473729, -24691605, -406174, -8914625, -2933896, -29903758, 15553883), - array(21877909, 3230008, 9881174, 10539357, -4797115, 2841332, 11543572, 14513274, 19375923, -12647961), - ), - array( - array(8832269, -14495485, 13253511, 5137575, 5037871, 4078777, 24880818, -6222716, 2862653, 9455043), - array(29306751, 5123106, 20245049, -14149889, 9592566, 8447059, -2077124, -2990080, 15511449, 4789663), - array(-20679756, 7004547, 8824831, -9434977, -4045704, -3750736, -5754762, 108893, 23513200, 16652362), - ), - ), - array( - array( - array(-33256173, 4144782, -4476029, -6579123, 10770039, -7155542, -6650416, -12936300, -18319198, 10212860), - array(2756081, 8598110, 7383731, -6859892, 22312759, -1105012, 21179801, 2600940, -9988298, -12506466), - array(-24645692, 13317462, -30449259, -15653928, 21365574, -10869657, 11344424, 864440, -2499677, -16710063), - ), - array( - array(-26432803, 6148329, -17184412, -14474154, 18782929, -275997, -22561534, 211300, 2719757, 4940997), - array(-1323882, 3911313, -6948744, 14759765, -30027150, 7851207, 21690126, 8518463, 26699843, 5276295), - array(-13149873, -6429067, 9396249, 365013, 24703301, -10488939, 1321586, 149635, -15452774, 7159369), - ), - array( - array(9987780, -3404759, 17507962, 9505530, 9731535, -2165514, 22356009, 8312176, 22477218, -8403385), - array(18155857, -16504990, 19744716, 9006923, 15154154, -10538976, 24256460, -4864995, -22548173, 9334109), - array(2986088, -4911893, 10776628, -3473844, 10620590, -7083203, -21413845, 14253545, -22587149, 536906), - ), - array( - array(4377756, 8115836, 24567078, 15495314, 11625074, 13064599, 7390551, 10589625, 10838060, -15420424), - array(-19342404, 867880, 9277171, -3218459, -14431572, -1986443, 19295826, -15796950, 6378260, 699185), - array(7895026, 4057113, -7081772, -13077756, -17886831, -323126, -716039, 15693155, -5045064, -13373962), - ), - array( - array(-7737563, -5869402, -14566319, -7406919, 11385654, 13201616, 31730678, -10962840, -3918636, -9669325), - array(10188286, -15770834, -7336361, 13427543, 22223443, 14896287, 30743455, 7116568, -21786507, 5427593), - array(696102, 13206899, 27047647, -10632082, 15285305, -9853179, 10798490, -4578720, 19236243, 12477404), - ), - array( - array(-11229439, 11243796, -17054270, -8040865, -788228, -8167967, -3897669, 11180504, -23169516, 7733644), - array(17800790, -14036179, -27000429, -11766671, 23887827, 3149671, 23466177, -10538171, 10322027, 15313801), - array(26246234, 11968874, 32263343, -5468728, 6830755, -13323031, -15794704, -101982, -24449242, 10890804), - ), - array( - array(-31365647, 10271363, -12660625, -6267268, 16690207, -13062544, -14982212, 16484931, 25180797, -5334884), - array(-586574, 10376444, -32586414, -11286356, 19801893, 10997610, 2276632, 9482883, 316878, 13820577), - array(-9882808, -4510367, -2115506, 16457136, -11100081, 11674996, 30756178, -7515054, 30696930, -3712849), - ), - array( - array(32988917, -9603412, 12499366, 7910787, -10617257, -11931514, -7342816, -9985397, -32349517, 7392473), - array(-8855661, 15927861, 9866406, -3649411, -2396914, -16655781, -30409476, -9134995, 25112947, -2926644), - array(-2504044, -436966, 25621774, -5678772, 15085042, -5479877, -24884878, -13526194, 5537438, -13914319), - ), - ), - array( - array( - array(-11225584, 2320285, -9584280, 10149187, -33444663, 5808648, -14876251, -1729667, 31234590, 6090599), - array(-9633316, 116426, 26083934, 2897444, -6364437, -2688086, 609721, 15878753, -6970405, -9034768), - array(-27757857, 247744, -15194774, -9002551, 23288161, -10011936, -23869595, 6503646, 20650474, 1804084), - ), - array( - array(-27589786, 15456424, 8972517, 8469608, 15640622, 4439847, 3121995, -10329713, 27842616, -202328), - array(-15306973, 2839644, 22530074, 10026331, 4602058, 5048462, 28248656, 5031932, -11375082, 12714369), - array(20807691, -7270825, 29286141, 11421711, -27876523, -13868230, -21227475, 1035546, -19733229, 12796920), - ), - array( - array(12076899, -14301286, -8785001, -11848922, -25012791, 16400684, -17591495, -12899438, 3480665, -15182815), - array(-32361549, 5457597, 28548107, 7833186, 7303070, -11953545, -24363064, -15921875, -33374054, 2771025), - array(-21389266, 421932, 26597266, 6860826, 22486084, -6737172, -17137485, -4210226, -24552282, 15673397), - ), - array( - array(-20184622, 2338216, 19788685, -9620956, -4001265, -8740893, -20271184, 4733254, 3727144, -12934448), - array(6120119, 814863, -11794402, -622716, 6812205, -15747771, 2019594, 7975683, 31123697, -10958981), - array(30069250, -11435332, 30434654, 2958439, 18399564, -976289, 12296869, 9204260, -16432438, 9648165), - ), - array( - array(32705432, -1550977, 30705658, 7451065, -11805606, 9631813, 3305266, 5248604, -26008332, -11377501), - array(17219865, 2375039, -31570947, -5575615, -19459679, 9219903, 294711, 15298639, 2662509, -16297073), - array(-1172927, -7558695, -4366770, -4287744, -21346413, -8434326, 32087529, -1222777, 32247248, -14389861), - ), - array( - array(14312628, 1221556, 17395390, -8700143, -4945741, -8684635, -28197744, -9637817, -16027623, -13378845), - array(-1428825, -9678990, -9235681, 6549687, -7383069, -468664, 23046502, 9803137, 17597934, 2346211), - array(18510800, 15337574, 26171504, 981392, -22241552, 7827556, -23491134, -11323352, 3059833, -11782870), - ), - array( - array(10141598, 6082907, 17829293, -1947643, 9830092, 13613136, -25556636, -5544586, -33502212, 3592096), - array(33114168, -15889352, -26525686, -13343397, 33076705, 8716171, 1151462, 1521897, -982665, -6837803), - array(-32939165, -4255815, 23947181, -324178, -33072974, -12305637, -16637686, 3891704, 26353178, 693168), - ), - array( - array(30374239, 1595580, -16884039, 13186931, 4600344, 406904, 9585294, -400668, 31375464, 14369965), - array(-14370654, -7772529, 1510301, 6434173, -18784789, -6262728, 32732230, -13108839, 17901441, 16011505), - array(18171223, -11934626, -12500402, 15197122, -11038147, -15230035, -19172240, -16046376, 8764035, 12309598), - ), - ), - array( - array( - array(5975908, -5243188, -19459362, -9681747, -11541277, 14015782, -23665757, 1228319, 17544096, -10593782), - array(5811932, -1715293, 3442887, -2269310, -18367348, -8359541, -18044043, -15410127, -5565381, 12348900), - array(-31399660, 11407555, 25755363, 6891399, -3256938, 14872274, -24849353, 8141295, -10632534, -585479), - ), - array( - array(-12675304, 694026, -5076145, 13300344, 14015258, -14451394, -9698672, -11329050, 30944593, 1130208), - array(8247766, -6710942, -26562381, -7709309, -14401939, -14648910, 4652152, 2488540, 23550156, -271232), - array(17294316, -3788438, 7026748, 15626851, 22990044, 113481, 2267737, -5908146, -408818, -137719), - ), - array( - array(16091085, -16253926, 18599252, 7340678, 2137637, -1221657, -3364161, 14550936, 3260525, -7166271), - array(-4910104, -13332887, 18550887, 10864893, -16459325, -7291596, -23028869, -13204905, -12748722, 2701326), - array(-8574695, 16099415, 4629974, -16340524, -20786213, -6005432, -10018363, 9276971, 11329923, 1862132), - ), - array( - array(14763076, -15903608, -30918270, 3689867, 3511892, 10313526, -21951088, 12219231, -9037963, -940300), - array(8894987, -3446094, 6150753, 3013931, 301220, 15693451, -31981216, -2909717, -15438168, 11595570), - array(15214962, 3537601, -26238722, -14058872, 4418657, -15230761, 13947276, 10730794, -13489462, -4363670), - ), - array( - array(-2538306, 7682793, 32759013, 263109, -29984731, -7955452, -22332124, -10188635, 977108, 699994), - array(-12466472, 4195084, -9211532, 550904, -15565337, 12917920, 19118110, -439841, -30534533, -14337913), - array(31788461, -14507657, 4799989, 7372237, 8808585, -14747943, 9408237, -10051775, 12493932, -5409317), - ), - array( - array(-25680606, 5260744, -19235809, -6284470, -3695942, 16566087, 27218280, 2607121, 29375955, 6024730), - array(842132, -2794693, -4763381, -8722815, 26332018, -12405641, 11831880, 6985184, -9940361, 2854096), - array(-4847262, -7969331, 2516242, -5847713, 9695691, -7221186, 16512645, 960770, 12121869, 16648078), - ), - array( - array(-15218652, 14667096, -13336229, 2013717, 30598287, -464137, -31504922, -7882064, 20237806, 2838411), - array(-19288047, 4453152, 15298546, -16178388, 22115043, -15972604, 12544294, -13470457, 1068881, -12499905), - array(-9558883, -16518835, 33238498, 13506958, 30505848, -1114596, -8486907, -2630053, 12521378, 4845654), - ), - array( - array(-28198521, 10744108, -2958380, 10199664, 7759311, -13088600, 3409348, -873400, -6482306, -12885870), - array(-23561822, 6230156, -20382013, 10655314, -24040585, -11621172, 10477734, -1240216, -3113227, 13974498), - array(12966261, 15550616, -32038948, -1615346, 21025980, -629444, 5642325, 7188737, 18895762, 12629579), - ), - ), - array( - array( - array(14741879, -14946887, 22177208, -11721237, 1279741, 8058600, 11758140, 789443, 32195181, 3895677), - array(10758205, 15755439, -4509950, 9243698, -4879422, 6879879, -2204575, -3566119, -8982069, 4429647), - array(-2453894, 15725973, -20436342, -10410672, -5803908, -11040220, -7135870, -11642895, 18047436, -15281743), - ), - array( - array(-25173001, -11307165, 29759956, 11776784, -22262383, -15820455, 10993114, -12850837, -17620701, -9408468), - array(21987233, 700364, -24505048, 14972008, -7774265, -5718395, 32155026, 2581431, -29958985, 8773375), - array(-25568350, 454463, -13211935, 16126715, 25240068, 8594567, 20656846, 12017935, -7874389, -13920155), - ), - array( - array(6028182, 6263078, -31011806, -11301710, -818919, 2461772, -31841174, -5468042, -1721788, -2776725), - array(-12278994, 16624277, 987579, -5922598, 32908203, 1248608, 7719845, -4166698, 28408820, 6816612), - array(-10358094, -8237829, 19549651, -12169222, 22082623, 16147817, 20613181, 13982702, -10339570, 5067943), - ), - array( - array(-30505967, -3821767, 12074681, 13582412, -19877972, 2443951, -19719286, 12746132, 5331210, -10105944), - array(30528811, 3601899, -1957090, 4619785, -27361822, -15436388, 24180793, -12570394, 27679908, -1648928), - array(9402404, -13957065, 32834043, 10838634, -26580150, -13237195, 26653274, -8685565, 22611444, -12715406), - ), - array( - array(22190590, 1118029, 22736441, 15130463, -30460692, -5991321, 19189625, -4648942, 4854859, 6622139), - array(-8310738, -2953450, -8262579, -3388049, -10401731, -271929, 13424426, -3567227, 26404409, 13001963), - array(-31241838, -15415700, -2994250, 8939346, 11562230, -12840670, -26064365, -11621720, -15405155, 11020693), - ), - array( - array(1866042, -7949489, -7898649, -10301010, 12483315, 13477547, 3175636, -12424163, 28761762, 1406734), - array(-448555, -1777666, 13018551, 3194501, -9580420, -11161737, 24760585, -4347088, 25577411, -13378680), - array(-24290378, 4759345, -690653, -1852816, 2066747, 10693769, -29595790, 9884936, -9368926, 4745410), - ), - array( - array(-9141284, 6049714, -19531061, -4341411, -31260798, 9944276, -15462008, -11311852, 10931924, -11931931), - array(-16561513, 14112680, -8012645, 4817318, -8040464, -11414606, -22853429, 10856641, -20470770, 13434654), - array(22759489, -10073434, -16766264, -1871422, 13637442, -10168091, 1765144, -12654326, 28445307, -5364710), - ), - array( - array(29875063, 12493613, 2795536, -3786330, 1710620, 15181182, -10195717, -8788675, 9074234, 1167180), - array(-26205683, 11014233, -9842651, -2635485, -26908120, 7532294, -18716888, -9535498, 3843903, 9367684), - array(-10969595, -6403711, 9591134, 9582310, 11349256, 108879, 16235123, 8601684, -139197, 4242895), - ), - ), - array( - array( - array(22092954, -13191123, -2042793, -11968512, 32186753, -11517388, -6574341, 2470660, -27417366, 16625501), - array(-11057722, 3042016, 13770083, -9257922, 584236, -544855, -7770857, 2602725, -27351616, 14247413), - array(6314175, -10264892, -32772502, 15957557, -10157730, 168750, -8618807, 14290061, 27108877, -1180880), - ), - array( - array(-8586597, -7170966, 13241782, 10960156, -32991015, -13794596, 33547976, -11058889, -27148451, 981874), - array(22833440, 9293594, -32649448, -13618667, -9136966, 14756819, -22928859, -13970780, -10479804, -16197962), - array(-7768587, 3326786, -28111797, 10783824, 19178761, 14905060, 22680049, 13906969, -15933690, 3797899), - ), - array( - array(21721356, -4212746, -12206123, 9310182, -3882239, -13653110, 23740224, -2709232, 20491983, -8042152), - array(9209270, -15135055, -13256557, -6167798, -731016, 15289673, 25947805, 15286587, 30997318, -6703063), - array(7392032, 16618386, 23946583, -8039892, -13265164, -1533858, -14197445, -2321576, 17649998, -250080), - ), - array( - array(-9301088, -14193827, 30609526, -3049543, -25175069, -1283752, -15241566, -9525724, -2233253, 7662146), - array(-17558673, 1763594, -33114336, 15908610, -30040870, -12174295, 7335080, -8472199, -3174674, 3440183), - array(-19889700, -5977008, -24111293, -9688870, 10799743, -16571957, 40450, -4431835, 4862400, 1133), - ), - array( - array(-32856209, -7873957, -5422389, 14860950, -16319031, 7956142, 7258061, 311861, -30594991, -7379421), - array(-3773428, -1565936, 28985340, 7499440, 24445838, 9325937, 29727763, 16527196, 18278453, 15405622), - array(-4381906, 8508652, -19898366, -3674424, -5984453, 15149970, -13313598, 843523, -21875062, 13626197), - ), - array( - array(2281448, -13487055, -10915418, -2609910, 1879358, 16164207, -10783882, 3953792, 13340839, 15928663), - array(31727126, -7179855, -18437503, -8283652, 2875793, -16390330, -25269894, -7014826, -23452306, 5964753), - array(4100420, -5959452, -17179337, 6017714, -18705837, 12227141, -26684835, 11344144, 2538215, -7570755), - ), - array( - array(-9433605, 6123113, 11159803, -2156608, 30016280, 14966241, -20474983, 1485421, -629256, -15958862), - array(-26804558, 4260919, 11851389, 9658551, -32017107, 16367492, -20205425, -13191288, 11659922, -11115118), - array(26180396, 10015009, -30844224, -8581293, 5418197, 9480663, 2231568, -10170080, 33100372, -1306171), - ), - array( - array(15121113, -5201871, -10389905, 15427821, -27509937, -15992507, 21670947, 4486675, -5931810, -14466380), - array(16166486, -9483733, -11104130, 6023908, -31926798, -1364923, 2340060, -16254968, -10735770, -10039824), - array(28042865, -3557089, -12126526, 12259706, -3717498, -6945899, 6766453, -8689599, 18036436, 5803270), - ), - ), - array( - array( - array(-817581, 6763912, 11803561, 1585585, 10958447, -2671165, 23855391, 4598332, -6159431, -14117438), - array(-31031306, -14256194, 17332029, -2383520, 31312682, -5967183, 696309, 50292, -20095739, 11763584), - array(-594563, -2514283, -32234153, 12643980, 12650761, 14811489, 665117, -12613632, -19773211, -10713562), - ), - array( - array(30464590, -11262872, -4127476, -12734478, 19835327, -7105613, -24396175, 2075773, -17020157, 992471), - array(18357185, -6994433, 7766382, 16342475, -29324918, 411174, 14578841, 8080033, -11574335, -10601610), - array(19598397, 10334610, 12555054, 2555664, 18821899, -10339780, 21873263, 16014234, 26224780, 16452269), - ), - array( - array(-30223925, 5145196, 5944548, 16385966, 3976735, 2009897, -11377804, -7618186, -20533829, 3698650), - array(14187449, 3448569, -10636236, -10810935, -22663880, -3433596, 7268410, -10890444, 27394301, 12015369), - array(19695761, 16087646, 28032085, 12999827, 6817792, 11427614, 20244189, -1312777, -13259127, -3402461), - ), - array( - array(30860103, 12735208, -1888245, -4699734, -16974906, 2256940, -8166013, 12298312, -8550524, -10393462), - array(-5719826, -11245325, -1910649, 15569035, 26642876, -7587760, -5789354, -15118654, -4976164, 12651793), - array(-2848395, 9953421, 11531313, -5282879, 26895123, -12697089, -13118820, -16517902, 9768698, -2533218), - ), - array( - array(-24719459, 1894651, -287698, -4704085, 15348719, -8156530, 32767513, 12765450, 4940095, 10678226), - array(18860224, 15980149, -18987240, -1562570, -26233012, -11071856, -7843882, 13944024, -24372348, 16582019), - array(-15504260, 4970268, -29893044, 4175593, -20993212, -2199756, -11704054, 15444560, -11003761, 7989037), - ), - array( - array(31490452, 5568061, -2412803, 2182383, -32336847, 4531686, -32078269, 6200206, -19686113, -14800171), - array(-17308668, -15879940, -31522777, -2831, -32887382, 16375549, 8680158, -16371713, 28550068, -6857132), - array(-28126887, -5688091, 16837845, -1820458, -6850681, 12700016, -30039981, 4364038, 1155602, 5988841), - ), - array( - array(21890435, -13272907, -12624011, 12154349, -7831873, 15300496, 23148983, -4470481, 24618407, 8283181), - array(-33136107, -10512751, 9975416, 6841041, -31559793, 16356536, 3070187, -7025928, 1466169, 10740210), - array(-1509399, -15488185, -13503385, -10655916, 32799044, 909394, -13938903, -5779719, -32164649, -15327040), - ), - array( - array(3960823, -14267803, -28026090, -15918051, -19404858, 13146868, 15567327, 951507, -3260321, -573935), - array(24740841, 5052253, -30094131, 8961361, 25877428, 6165135, -24368180, 14397372, -7380369, -6144105), - array(-28888365, 3510803, -28103278, -1158478, -11238128, -10631454, -15441463, -14453128, -1625486, -6494814), - ), - ), - array( - array( - array(793299, -9230478, 8836302, -6235707, -27360908, -2369593, 33152843, -4885251, -9906200, -621852), - array(5666233, 525582, 20782575, -8038419, -24538499, 14657740, 16099374, 1468826, -6171428, -15186581), - array(-4859255, -3779343, -2917758, -6748019, 7778750, 11688288, -30404353, -9871238, -1558923, -9863646), - ), - array( - array(10896332, -7719704, 824275, 472601, -19460308, 3009587, 25248958, 14783338, -30581476, -15757844), - array(10566929, 12612572, -31944212, 11118703, -12633376, 12362879, 21752402, 8822496, 24003793, 14264025), - array(27713862, -7355973, -11008240, 9227530, 27050101, 2504721, 23886875, -13117525, 13958495, -5732453), - ), - array( - array(-23481610, 4867226, -27247128, 3900521, 29838369, -8212291, -31889399, -10041781, 7340521, -15410068), - array(4646514, -8011124, -22766023, -11532654, 23184553, 8566613, 31366726, -1381061, -15066784, -10375192), - array(-17270517, 12723032, -16993061, 14878794, 21619651, -6197576, 27584817, 3093888, -8843694, 3849921), - ), - array( - array(-9064912, 2103172, 25561640, -15125738, -5239824, 9582958, 32477045, -9017955, 5002294, -15550259), - array(-12057553, -11177906, 21115585, -13365155, 8808712, -12030708, 16489530, 13378448, -25845716, 12741426), - array(-5946367, 10645103, -30911586, 15390284, -3286982, -7118677, 24306472, 15852464, 28834118, -7646072), - ), - array( - array(-17335748, -9107057, -24531279, 9434953, -8472084, -583362, -13090771, 455841, 20461858, 5491305), - array(13669248, -16095482, -12481974, -10203039, -14569770, -11893198, -24995986, 11293807, -28588204, -9421832), - array(28497928, 6272777, -33022994, 14470570, 8906179, -1225630, 18504674, -14165166, 29867745, -8795943), - ), - array( - array(-16207023, 13517196, -27799630, -13697798, 24009064, -6373891, -6367600, -13175392, 22853429, -4012011), - array(24191378, 16712145, -13931797, 15217831, 14542237, 1646131, 18603514, -11037887, 12876623, -2112447), - array(17902668, 4518229, -411702, -2829247, 26878217, 5258055, -12860753, 608397, 16031844, 3723494), - ), - array( - array(-28632773, 12763728, -20446446, 7577504, 33001348, -13017745, 17558842, -7872890, 23896954, -4314245), - array(-20005381, -12011952, 31520464, 605201, 2543521, 5991821, -2945064, 7229064, -9919646, -8826859), - array(28816045, 298879, -28165016, -15920938, 19000928, -1665890, -12680833, -2949325, -18051778, -2082915), - ), - array( - array(16000882, -344896, 3493092, -11447198, -29504595, -13159789, 12577740, 16041268, -19715240, 7847707), - array(10151868, 10572098, 27312476, 7922682, 14825339, 4723128, -32855931, -6519018, -10020567, 3852848), - array(-11430470, 15697596, -21121557, -4420647, 5386314, 15063598, 16514493, -15932110, 29330899, -15076224), - ), - ), - array( - array( - array(-25499735, -4378794, -15222908, -6901211, 16615731, 2051784, 3303702, 15490, -27548796, 12314391), - array(15683520, -6003043, 18109120, -9980648, 15337968, -5997823, -16717435, 15921866, 16103996, -3731215), - array(-23169824, -10781249, 13588192, -1628807, -3798557, -1074929, -19273607, 5402699, -29815713, -9841101), - ), - array( - array(23190676, 2384583, -32714340, 3462154, -29903655, -1529132, -11266856, 8911517, -25205859, 2739713), - array(21374101, -3554250, -33524649, 9874411, 15377179, 11831242, -33529904, 6134907, 4931255, 11987849), - array(-7732, -2978858, -16223486, 7277597, 105524, -322051, -31480539, 13861388, -30076310, 10117930), - ), - array( - array(-29501170, -10744872, -26163768, 13051539, -25625564, 5089643, -6325503, 6704079, 12890019, 15728940), - array(-21972360, -11771379, -951059, -4418840, 14704840, 2695116, 903376, -10428139, 12885167, 8311031), - array(-17516482, 5352194, 10384213, -13811658, 7506451, 13453191, 26423267, 4384730, 1888765, -5435404), - ), - array( - array(-25817338, -3107312, -13494599, -3182506, 30896459, -13921729, -32251644, -12707869, -19464434, -3340243), - array(-23607977, -2665774, -526091, 4651136, 5765089, 4618330, 6092245, 14845197, 17151279, -9854116), - array(-24830458, -12733720, -15165978, 10367250, -29530908, -265356, 22825805, -7087279, -16866484, 16176525), - ), - array( - array(-23583256, 6564961, 20063689, 3798228, -4740178, 7359225, 2006182, -10363426, -28746253, -10197509), - array(-10626600, -4486402, -13320562, -5125317, 3432136, -6393229, 23632037, -1940610, 32808310, 1099883), - array(15030977, 5768825, -27451236, -2887299, -6427378, -15361371, -15277896, -6809350, 2051441, -15225865), - ), - array( - array(-3362323, -7239372, 7517890, 9824992, 23555850, 295369, 5148398, -14154188, -22686354, 16633660), - array(4577086, -16752288, 13249841, -15304328, 19958763, -14537274, 18559670, -10759549, 8402478, -9864273), - array(-28406330, -1051581, -26790155, -907698, -17212414, -11030789, 9453451, -14980072, 17983010, 9967138), - ), - array( - array(-25762494, 6524722, 26585488, 9969270, 24709298, 1220360, -1677990, 7806337, 17507396, 3651560), - array(-10420457, -4118111, 14584639, 15971087, -15768321, 8861010, 26556809, -5574557, -18553322, -11357135), - array(2839101, 14284142, 4029895, 3472686, 14402957, 12689363, -26642121, 8459447, -5605463, -7621941), - ), - array( - array(-4839289, -3535444, 9744961, 2871048, 25113978, 3187018, -25110813, -849066, 17258084, -7977739), - array(18164541, -10595176, -17154882, -1542417, 19237078, -9745295, 23357533, -15217008, 26908270, 12150756), - array(-30264870, -7647865, 5112249, -7036672, -1499807, -6974257, 43168, -5537701, -32302074, 16215819), - ), - ), - array( - array( - array(-6898905, 9824394, -12304779, -4401089, -31397141, -6276835, 32574489, 12532905, -7503072, -8675347), - array(-27343522, -16515468, -27151524, -10722951, 946346, 16291093, 254968, 7168080, 21676107, -1943028), - array(21260961, -8424752, -16831886, -11920822, -23677961, 3968121, -3651949, -6215466, -3556191, -7913075), - ), - array( - array(16544754, 13250366, -16804428, 15546242, -4583003, 12757258, -2462308, -8680336, -18907032, -9662799), - array(-2415239, -15577728, 18312303, 4964443, -15272530, -12653564, 26820651, 16690659, 25459437, -4564609), - array(-25144690, 11425020, 28423002, -11020557, -6144921, -15826224, 9142795, -2391602, -6432418, -1644817), - ), - array( - array(-23104652, 6253476, 16964147, -3768872, -25113972, -12296437, -27457225, -16344658, 6335692, 7249989), - array(-30333227, 13979675, 7503222, -12368314, -11956721, -4621693, -30272269, 2682242, 25993170, -12478523), - array(4364628, 5930691, 32304656, -10044554, -8054781, 15091131, 22857016, -10598955, 31820368, 15075278), - ), - array( - array(31879134, -8918693, 17258761, 90626, -8041836, -4917709, 24162788, -9650886, -17970238, 12833045), - array(19073683, 14851414, -24403169, -11860168, 7625278, 11091125, -19619190, 2074449, -9413939, 14905377), - array(24483667, -11935567, -2518866, -11547418, -1553130, 15355506, -25282080, 9253129, 27628530, -7555480), - ), - array( - array(17597607, 8340603, 19355617, 552187, 26198470, -3176583, 4593324, -9157582, -14110875, 15297016), - array(510886, 14337390, -31785257, 16638632, 6328095, 2713355, -20217417, -11864220, 8683221, 2921426), - array(18606791, 11874196, 27155355, -5281482, -24031742, 6265446, -25178240, -1278924, 4674690, 13890525), - ), - array( - array(13609624, 13069022, -27372361, -13055908, 24360586, 9592974, 14977157, 9835105, 4389687, 288396), - array(9922506, -519394, 13613107, 5883594, -18758345, -434263, -12304062, 8317628, 23388070, 16052080), - array(12720016, 11937594, -31970060, -5028689, 26900120, 8561328, -20155687, -11632979, -14754271, -10812892), - ), - array( - array(15961858, 14150409, 26716931, -665832, -22794328, 13603569, 11829573, 7467844, -28822128, 929275), - array(11038231, -11582396, -27310482, -7316562, -10498527, -16307831, -23479533, -9371869, -21393143, 2465074), - array(20017163, -4323226, 27915242, 1529148, 12396362, 15675764, 13817261, -9658066, 2463391, -4622140), - ), - array( - array(-16358878, -12663911, -12065183, 4996454, -1256422, 1073572, 9583558, 12851107, 4003896, 12673717), - array(-1731589, -15155870, -3262930, 16143082, 19294135, 13385325, 14741514, -9103726, 7903886, 2348101), - array(24536016, -16515207, 12715592, -3862155, 1511293, 10047386, -3842346, -7129159, -28377538, 10048127), - ), - ), - array( - array( - array(-12622226, -6204820, 30718825, 2591312, -10617028, 12192840, 18873298, -7297090, -32297756, 15221632), - array(-26478122, -11103864, 11546244, -1852483, 9180880, 7656409, -21343950, 2095755, 29769758, 6593415), - array(-31994208, -2907461, 4176912, 3264766, 12538965, -868111, 26312345, -6118678, 30958054, 8292160), - ), - array( - array(31429822, -13959116, 29173532, 15632448, 12174511, -2760094, 32808831, 3977186, 26143136, -3148876), - array(22648901, 1402143, -22799984, 13746059, 7936347, 365344, -8668633, -1674433, -3758243, -2304625), - array(-15491917, 8012313, -2514730, -12702462, -23965846, -10254029, -1612713, -1535569, -16664475, 8194478), - ), - array( - array(27338066, -7507420, -7414224, 10140405, -19026427, -6589889, 27277191, 8855376, 28572286, 3005164), - array(26287124, 4821776, 25476601, -4145903, -3764513, -15788984, -18008582, 1182479, -26094821, -13079595), - array(-7171154, 3178080, 23970071, 6201893, -17195577, -4489192, -21876275, -13982627, 32208683, -1198248), - ), - array( - array(-16657702, 2817643, -10286362, 14811298, 6024667, 13349505, -27315504, -10497842, -27672585, -11539858), - array(15941029, -9405932, -21367050, 8062055, 31876073, -238629, -15278393, -1444429, 15397331, -4130193), - array(8934485, -13485467, -23286397, -13423241, -32446090, 14047986, 31170398, -1441021, -27505566, 15087184), - ), - array( - array(-18357243, -2156491, 24524913, -16677868, 15520427, -6360776, -15502406, 11461896, 16788528, -5868942), - array(-1947386, 16013773, 21750665, 3714552, -17401782, -16055433, -3770287, -10323320, 31322514, -11615635), - array(21426655, -5650218, -13648287, -5347537, -28812189, -4920970, -18275391, -14621414, 13040862, -12112948), - ), - array( - array(11293895, 12478086, -27136401, 15083750, -29307421, 14748872, 14555558, -13417103, 1613711, 4896935), - array(-25894883, 15323294, -8489791, -8057900, 25967126, -13425460, 2825960, -4897045, -23971776, -11267415), - array(-15924766, -5229880, -17443532, 6410664, 3622847, 10243618, 20615400, 12405433, -23753030, -8436416), - ), - array( - array(-7091295, 12556208, -20191352, 9025187, -17072479, 4333801, 4378436, 2432030, 23097949, -566018), - array(4565804, -16025654, 20084412, -7842817, 1724999, 189254, 24767264, 10103221, -18512313, 2424778), - array(366633, -11976806, 8173090, -6890119, 30788634, 5745705, -7168678, 1344109, -3642553, 12412659), - ), - array( - array(-24001791, 7690286, 14929416, -168257, -32210835, -13412986, 24162697, -15326504, -3141501, 11179385), - array(18289522, -14724954, 8056945, 16430056, -21729724, 7842514, -6001441, -1486897, -18684645, -11443503), - array(476239, 6601091, -6152790, -9723375, 17503545, -4863900, 27672959, 13403813, 11052904, 5219329), - ), - ), - array( - array( - array(20678546, -8375738, -32671898, 8849123, -5009758, 14574752, 31186971, -3973730, 9014762, -8579056), - array(-13644050, -10350239, -15962508, 5075808, -1514661, -11534600, -33102500, 9160280, 8473550, -3256838), - array(24900749, 14435722, 17209120, -15292541, -22592275, 9878983, -7689309, -16335821, -24568481, 11788948), - ), - array( - array(-3118155, -11395194, -13802089, 14797441, 9652448, -6845904, -20037437, 10410733, -24568470, -1458691), - array(-15659161, 16736706, -22467150, 10215878, -9097177, 7563911, 11871841, -12505194, -18513325, 8464118), - array(-23400612, 8348507, -14585951, -861714, -3950205, -6373419, 14325289, 8628612, 33313881, -8370517), - ), - array( - array(-20186973, -4967935, 22367356, 5271547, -1097117, -4788838, -24805667, -10236854, -8940735, -5818269), - array(-6948785, -1795212, -32625683, -16021179, 32635414, -7374245, 15989197, -12838188, 28358192, -4253904), - array(-23561781, -2799059, -32351682, -1661963, -9147719, 10429267, -16637684, 4072016, -5351664, 5596589), - ), - array( - array(-28236598, -3390048, 12312896, 6213178, 3117142, 16078565, 29266239, 2557221, 1768301, 15373193), - array(-7243358, -3246960, -4593467, -7553353, -127927, -912245, -1090902, -4504991, -24660491, 3442910), - array(-30210571, 5124043, 14181784, 8197961, 18964734, -11939093, 22597931, 7176455, -18585478, 13365930), - ), - array( - array(-7877390, -1499958, 8324673, 4690079, 6261860, 890446, 24538107, -8570186, -9689599, -3031667), - array(25008904, -10771599, -4305031, -9638010, 16265036, 15721635, 683793, -11823784, 15723479, -15163481), - array(-9660625, 12374379, -27006999, -7026148, -7724114, -12314514, 11879682, 5400171, 519526, -1235876), - ), - array( - array(22258397, -16332233, -7869817, 14613016, -22520255, -2950923, -20353881, 7315967, 16648397, 7605640), - array(-8081308, -8464597, -8223311, 9719710, 19259459, -15348212, 23994942, -5281555, -9468848, 4763278), - array(-21699244, 9220969, -15730624, 1084137, -25476107, -2852390, 31088447, -7764523, -11356529, 728112), - ), - array( - array(26047220, -11751471, -6900323, -16521798, 24092068, 9158119, -4273545, -12555558, -29365436, -5498272), - array(17510331, -322857, 5854289, 8403524, 17133918, -3112612, -28111007, 12327945, 10750447, 10014012), - array(-10312768, 3936952, 9156313, -8897683, 16498692, -994647, -27481051, -666732, 3424691, 7540221), - ), - array( - array(30322361, -6964110, 11361005, -4143317, 7433304, 4989748, -7071422, -16317219, -9244265, 15258046), - array(13054562, -2779497, 19155474, 469045, -12482797, 4566042, 5631406, 2711395, 1062915, -5136345), - array(-19240248, -11254599, -29509029, -7499965, -5835763, 13005411, -6066489, 12194497, 32960380, 1459310), - ), - ), - array( - array( - array(19852034, 7027924, 23669353, 10020366, 8586503, -6657907, 394197, -6101885, 18638003, -11174937), - array(31395534, 15098109, 26581030, 8030562, -16527914, -5007134, 9012486, -7584354, -6643087, -5442636), - array(-9192165, -2347377, -1997099, 4529534, 25766844, 607986, -13222, 9677543, -32294889, -6456008), - ), - array( - array(-2444496, -149937, 29348902, 8186665, 1873760, 12489863, -30934579, -7839692, -7852844, -8138429), - array(-15236356, -15433509, 7766470, 746860, 26346930, -10221762, -27333451, 10754588, -9431476, 5203576), - array(31834314, 14135496, -770007, 5159118, 20917671, -16768096, -7467973, -7337524, 31809243, 7347066), - ), - array( - array(-9606723, -11874240, 20414459, 13033986, 13716524, -11691881, 19797970, -12211255, 15192876, -2087490), - array(-12663563, -2181719, 1168162, -3804809, 26747877, -14138091, 10609330, 12694420, 33473243, -13382104), - array(33184999, 11180355, 15832085, -11385430, -1633671, 225884, 15089336, -11023903, -6135662, 14480053), - ), - array( - array(31308717, -5619998, 31030840, -1897099, 15674547, -6582883, 5496208, 13685227, 27595050, 8737275), - array(-20318852, -15150239, 10933843, -16178022, 8335352, -7546022, -31008351, -12610604, 26498114, 66511), - array(22644454, -8761729, -16671776, 4884562, -3105614, -13559366, 30540766, -4286747, -13327787, -7515095), - ), - array( - array(-28017847, 9834845, 18617207, -2681312, -3401956, -13307506, 8205540, 13585437, -17127465, 15115439), - array(23711543, -672915, 31206561, -8362711, 6164647, -9709987, -33535882, -1426096, 8236921, 16492939), - array(-23910559, -13515526, -26299483, -4503841, 25005590, -7687270, 19574902, 10071562, 6708380, -6222424), - ), - array( - array(2101391, -4930054, 19702731, 2367575, -15427167, 1047675, 5301017, 9328700, 29955601, -11678310), - array(3096359, 9271816, -21620864, -15521844, -14847996, -7592937, -25892142, -12635595, -9917575, 6216608), - array(-32615849, 338663, -25195611, 2510422, -29213566, -13820213, 24822830, -6146567, -26767480, 7525079), - ), - array( - array(-23066649, -13985623, 16133487, -7896178, -3389565, 778788, -910336, -2782495, -19386633, 11994101), - array(21691500, -13624626, -641331, -14367021, 3285881, -3483596, -25064666, 9718258, -7477437, 13381418), - array(18445390, -4202236, 14979846, 11622458, -1727110, -3582980, 23111648, -6375247, 28535282, 15779576), - ), - array( - array(30098053, 3089662, -9234387, 16662135, -21306940, 11308411, -14068454, 12021730, 9955285, -16303356), - array(9734894, -14576830, -7473633, -9138735, 2060392, 11313496, -18426029, 9924399, 20194861, 13380996), - array(-26378102, -7965207, -22167821, 15789297, -18055342, -6168792, -1984914, 15707771, 26342023, 10146099), - ), - ), - array( - array( - array(-26016874, -219943, 21339191, -41388, 19745256, -2878700, -29637280, 2227040, 21612326, -545728), - array(-13077387, 1184228, 23562814, -5970442, -20351244, -6348714, 25764461, 12243797, -20856566, 11649658), - array(-10031494, 11262626, 27384172, 2271902, 26947504, -15997771, 39944, 6114064, 33514190, 2333242), - ), - array( - array(-21433588, -12421821, 8119782, 7219913, -21830522, -9016134, -6679750, -12670638, 24350578, -13450001), - array(-4116307, -11271533, -23886186, 4843615, -30088339, 690623, -31536088, -10406836, 8317860, 12352766), - array(18200138, -14475911, -33087759, -2696619, -23702521, -9102511, -23552096, -2287550, 20712163, 6719373), - ), - array( - array(26656208, 6075253, -7858556, 1886072, -28344043, 4262326, 11117530, -3763210, 26224235, -3297458), - array(-17168938, -14854097, -3395676, -16369877, -19954045, 14050420, 21728352, 9493610, 18620611, -16428628), - array(-13323321, 13325349, 11432106, 5964811, 18609221, 6062965, -5269471, -9725556, -30701573, -16479657), - ), - array( - array(-23860538, -11233159, 26961357, 1640861, -32413112, -16737940, 12248509, -5240639, 13735342, 1934062), - array(25089769, 6742589, 17081145, -13406266, 21909293, -16067981, -15136294, -3765346, -21277997, 5473616), - array(31883677, -7961101, 1083432, -11572403, 22828471, 13290673, -7125085, 12469656, 29111212, -5451014), - ), - array( - array(24244947, -15050407, -26262976, 2791540, -14997599, 16666678, 24367466, 6388839, -10295587, 452383), - array(-25640782, -3417841, 5217916, 16224624, 19987036, -4082269, -24236251, -5915248, 15766062, 8407814), - array(-20406999, 13990231, 15495425, 16395525, 5377168, 15166495, -8917023, -4388953, -8067909, 2276718), - ), - array( - array(30157918, 12924066, -17712050, 9245753, 19895028, 3368142, -23827587, 5096219, 22740376, -7303417), - array(2041139, -14256350, 7783687, 13876377, -25946985, -13352459, 24051124, 13742383, -15637599, 13295222), - array(33338237, -8505733, 12532113, 7977527, 9106186, -1715251, -17720195, -4612972, -4451357, -14669444), - ), - array( - array(-20045281, 5454097, -14346548, 6447146, 28862071, 1883651, -2469266, -4141880, 7770569, 9620597), - array(23208068, 7979712, 33071466, 8149229, 1758231, -10834995, 30945528, -1694323, -33502340, -14767970), - array(1439958, -16270480, -1079989, -793782, 4625402, 10647766, -5043801, 1220118, 30494170, -11440799), - ), - array( - array(-5037580, -13028295, -2970559, -3061767, 15640974, -6701666, -26739026, 926050, -1684339, -13333647), - array(13908495, -3549272, 30919928, -6273825, -21521863, 7989039, 9021034, 9078865, 3353509, 4033511), - array(-29663431, -15113610, 32259991, -344482, 24295849, -12912123, 23161163, 8839127, 27485041, 7356032), - ), - ), - array( - array( - array(9661027, 705443, 11980065, -5370154, -1628543, 14661173, -6346142, 2625015, 28431036, -16771834), - array(-23839233, -8311415, -25945511, 7480958, -17681669, -8354183, -22545972, 14150565, 15970762, 4099461), - array(29262576, 16756590, 26350592, -8793563, 8529671, -11208050, 13617293, -9937143, 11465739, 8317062), - ), - array( - array(-25493081, -6962928, 32500200, -9419051, -23038724, -2302222, 14898637, 3848455, 20969334, -5157516), - array(-20384450, -14347713, -18336405, 13884722, -33039454, 2842114, -21610826, -3649888, 11177095, 14989547), - array(-24496721, -11716016, 16959896, 2278463, 12066309, 10137771, 13515641, 2581286, -28487508, 9930240), - ), - array( - array(-17751622, -2097826, 16544300, -13009300, -15914807, -14949081, 18345767, -13403753, 16291481, -5314038), - array(-33229194, 2553288, 32678213, 9875984, 8534129, 6889387, -9676774, 6957617, 4368891, 9788741), - array(16660756, 7281060, -10830758, 12911820, 20108584, -8101676, -21722536, -8613148, 16250552, -11111103), - ), - array( - array(-19765507, 2390526, -16551031, 14161980, 1905286, 6414907, 4689584, 10604807, -30190403, 4782747), - array(-1354539, 14736941, -7367442, -13292886, 7710542, -14155590, -9981571, 4383045, 22546403, 437323), - array(31665577, -12180464, -16186830, 1491339, -18368625, 3294682, 27343084, 2786261, -30633590, -14097016), - ), - array( - array(-14467279, -683715, -33374107, 7448552, 19294360, 14334329, -19690631, 2355319, -19284671, -6114373), - array(15121312, -15796162, 6377020, -6031361, -10798111, -12957845, 18952177, 15496498, -29380133, 11754228), - array(-2637277, -13483075, 8488727, -14303896, 12728761, -1622493, 7141596, 11724556, 22761615, -10134141), - ), - array( - array(16918416, 11729663, -18083579, 3022987, -31015732, -13339659, -28741185, -12227393, 32851222, 11717399), - array(11166634, 7338049, -6722523, 4531520, -29468672, -7302055, 31474879, 3483633, -1193175, -4030831), - array(-185635, 9921305, 31456609, -13536438, -12013818, 13348923, 33142652, 6546660, -19985279, -3948376), - ), - array( - array(-32460596, 11266712, -11197107, -7899103, 31703694, 3855903, -8537131, -12833048, -30772034, -15486313), - array(-18006477, 12709068, 3991746, -6479188, -21491523, -10550425, -31135347, -16049879, 10928917, 3011958), - array(-6957757, -15594337, 31696059, 334240, 29576716, 14796075, -30831056, -12805180, 18008031, 10258577), - ), - array( - array(-22448644, 15655569, 7018479, -4410003, -30314266, -1201591, -1853465, 1367120, 25127874, 6671743), - array(29701166, -14373934, -10878120, 9279288, -17568, 13127210, 21382910, 11042292, 25838796, 4642684), - array(-20430234, 14955537, -24126347, 8124619, -5369288, -5990470, 30468147, -13900640, 18423289, 4177476), - ), - ) - ); - - /** - * See: libsodium's crypto_core/curve25519/ref10/base2.h - * - * @var array basically int[8][3] - */ - protected static $base2 = array( - array( - array(25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605), - array(-12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378), - array(-8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546), - ), - array( - array(15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024), - array(16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574), - array(30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357), - ), - array( - array(10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380), - array(4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306), - array(19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942), - ), - array( - array(5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766), - array(-30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701), - array(28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300), - ), - array( - array(-22518993, -6692182, 14201702, -8745502, -23510406, 8844726, 18474211, -1361450, -13062696, 13821877), - array(-6455177, -7839871, 3374702, -4740862, -27098617, -10571707, 31655028, -7212327, 18853322, -14220951), - array(4566830, -12963868, -28974889, -12240689, -7602672, -2830569, -8514358, -10431137, 2207753, -3209784), - ), - array( - array(-25154831, -4185821, 29681144, 7868801, -6854661, -9423865, -12437364, -663000, -31111463, -16132436), - array(25576264, -2703214, 7349804, -11814844, 16472782, 9300885, 3844789, 15725684, 171356, 6466918), - array(23103977, 13316479, 9739013, -16149481, 817875, -15038942, 8965339, -14088058, -30714912, 16193877), - ), - array( - array(-33521811, 3180713, -2394130, 14003687, -16903474, -16270840, 17238398, 4729455, -18074513, 9256800), - array(-25182317, -4174131, 32336398, 5036987, -21236817, 11360617, 22616405, 9761698, -19827198, 630305), - array(-13720693, 2639453, -24237460, -7406481, 9494427, -5774029, -6554551, -15960994, -2449256, -14291300), - ), - array( - array(-3151181, -5046075, 9282714, 6866145, -31907062, -863023, -18940575, 15033784, 25105118, -7894876), - array(-24326370, 15950226, -31801215, -14592823, -11662737, -5090925, 1573892, -2625887, 2198790, -15804619), - array(-3099351, 10324967, -2241613, 7453183, -5446979, -2735503, -13812022, -16236442, -32461234, -12290683), - ) - ); - - /** - * 37095705934669439343138083508754565189542113879843219016388785533085940283555 - * - * @var array - */ - protected static $d = array( - -10913610, - 13857413, - -15372611, - 6949391, - 114729, - -8787816, - -6275908, - -3247719, - -18696448, - -12055116 - ); - - /** - * 2 * d = 16295367250680780974490674513165176452449235426866156013048779062215315747161 - * - * @var array - */ - protected static $d2 = array( - -21827239, - -5839606, - -30745221, - 13898782, - 229458, - 15978800, - -12551817, - -6495438, - 29715968, - 9444199 - ); - - /** - * sqrt(-1) - * - * @var array - */ - protected static $sqrtm1 = array( - -32595792, - -7943725, - 9377950, - 3500415, - 12389472, - -272473, - -25146209, - -2005654, - 326686, - 11406482 - ); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Ed25519.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Ed25519.php deleted file mode 100644 index 7228644..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Ed25519.php +++ /dev/null @@ -1,480 +0,0 @@ -X)) { - throw new SodiumException('Unexpected zero result'); - } - - # fe_1(one_minus_y); - # fe_sub(one_minus_y, one_minus_y, A.Y); - # fe_invert(one_minus_y, one_minus_y); - $one_minux_y = self::fe_invert( - self::fe_sub( - self::fe_1(), - $A->Y - ) - ); - - # fe_1(x); - # fe_add(x, x, A.Y); - # fe_mul(x, x, one_minus_y); - $x = self::fe_mul( - self::fe_add(self::fe_1(), $A->Y), - $one_minux_y - ); - - # fe_tobytes(curve25519_pk, x); - return self::fe_tobytes($x); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $sk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sk_to_pk($sk) - { - return self::ge_p3_tobytes( - self::ge_scalarmult_base( - self::substr($sk, 0, 32) - ) - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message - * @param string $sk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sign($message, $sk) - { - /** @var string $signature */ - $signature = self::sign_detached($message, $sk); - return $signature . $message; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message A signed message - * @param string $pk Public key - * @return string Message (without signature) - * @throws SodiumException - * @throws TypeError - */ - public static function sign_open($message, $pk) - { - /** @var string $signature */ - $signature = self::substr($message, 0, 64); - - /** @var string $message */ - $message = self::substr($message, 64); - - if (self::verify_detached($signature, $message, $pk)) { - return $message; - } - throw new SodiumException('Invalid signature'); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message - * @param string $sk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sign_detached($message, $sk) - { - # crypto_hash_sha512(az, sk, 32); - $az = hash('sha512', self::substr($sk, 0, 32), true); - - # az[0] &= 248; - # az[31] &= 63; - # az[31] |= 64; - $az[0] = self::intToChr(self::chrToInt($az[0]) & 248); - $az[31] = self::intToChr((self::chrToInt($az[31]) & 63) | 64); - - # crypto_hash_sha512_init(&hs); - # crypto_hash_sha512_update(&hs, az + 32, 32); - # crypto_hash_sha512_update(&hs, m, mlen); - # crypto_hash_sha512_final(&hs, nonce); - $hs = hash_init('sha512'); - hash_update($hs, self::substr($az, 32, 32)); - hash_update($hs, $message); - $nonceHash = hash_final($hs, true); - - # memmove(sig + 32, sk + 32, 32); - $pk = self::substr($sk, 32, 32); - - # sc_reduce(nonce); - # ge_scalarmult_base(&R, nonce); - # ge_p3_tobytes(sig, &R); - $nonce = self::sc_reduce($nonceHash) . self::substr($nonceHash, 32); - $sig = self::ge_p3_tobytes( - self::ge_scalarmult_base($nonce) - ); - - # crypto_hash_sha512_init(&hs); - # crypto_hash_sha512_update(&hs, sig, 64); - # crypto_hash_sha512_update(&hs, m, mlen); - # crypto_hash_sha512_final(&hs, hram); - $hs = hash_init('sha512'); - hash_update($hs, self::substr($sig, 0, 32)); - hash_update($hs, self::substr($pk, 0, 32)); - hash_update($hs, $message); - $hramHash = hash_final($hs, true); - - # sc_reduce(hram); - # sc_muladd(sig + 32, hram, az, nonce); - $hram = self::sc_reduce($hramHash); - $sigAfter = self::sc_muladd($hram, $az, $nonce); - $sig = self::substr($sig, 0, 32) . self::substr($sigAfter, 0, 32); - - try { - ParagonIE_Sodium_Compat::memzero($az); - } catch (SodiumException $ex) { - $az = null; - } - return $sig; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $sig - * @param string $message - * @param string $pk - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function verify_detached($sig, $message, $pk) - { - if (self::strlen($sig) < 64) { - throw new SodiumException('Signature is too short'); - } - if ((self::chrToInt($sig[63]) & 240) && self::check_S_lt_L(self::substr($sig, 32, 32))) { - throw new SodiumException('S < L - Invalid signature'); - } - if (self::small_order($sig)) { - throw new SodiumException('Signature is on too small of an order'); - } - if ((self::chrToInt($sig[63]) & 224) !== 0) { - throw new SodiumException('Invalid signature'); - } - $d = 0; - for ($i = 0; $i < 32; ++$i) { - $d |= self::chrToInt($pk[$i]); - } - if ($d === 0) { - throw new SodiumException('All zero public key'); - } - - /** @var bool The original value of ParagonIE_Sodium_Compat::$fastMult */ - $orig = ParagonIE_Sodium_Compat::$fastMult; - - // Set ParagonIE_Sodium_Compat::$fastMult to true to speed up verification. - ParagonIE_Sodium_Compat::$fastMult = true; - - /** @var ParagonIE_Sodium_Core_Curve25519_Ge_P3 $A */ - $A = self::ge_frombytes_negate_vartime($pk); - - /** @var string $hDigest */ - $hDigest = hash( - 'sha512', - self::substr($sig, 0, 32) . - self::substr($pk, 0, 32) . - $message, - true - ); - - /** @var string $h */ - $h = self::sc_reduce($hDigest) . self::substr($hDigest, 32); - - /** @var ParagonIE_Sodium_Core_Curve25519_Ge_P2 $R */ - $R = self::ge_double_scalarmult_vartime( - $h, - $A, - self::substr($sig, 32) - ); - - /** @var string $rcheck */ - $rcheck = self::ge_tobytes($R); - - // Reset ParagonIE_Sodium_Compat::$fastMult to what it was before. - ParagonIE_Sodium_Compat::$fastMult = $orig; - - return self::verify_32($rcheck, self::substr($sig, 0, 32)); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $S - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function check_S_lt_L($S) - { - if (self::strlen($S) < 32) { - throw new SodiumException('Signature must be 32 bytes'); - } - $L = array( - 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, - 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10 - ); - $c = 0; - $n = 1; - $i = 32; - - /** @var array $L */ - do { - --$i; - $x = self::chrToInt($S[$i]); - $c |= ( - (($x - $L[$i]) >> 8) & $n - ); - $n &= ( - (($x ^ $L[$i]) - 1) >> 8 - ); - } while ($i !== 0); - - return $c === 0; - } - - /** - * @param string $R - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function small_order($R) - { - /** @var array> $blacklist */ - $blacklist = array( - /* 0 (order 4) */ - array( - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - ), - /* 1 (order 1) */ - array( - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - ), - /* 2707385501144840649318225287225658788936804267575313519463743609750303402022 (order 8) */ - array( - 0x26, 0xe8, 0x95, 0x8f, 0xc2, 0xb2, 0x27, 0xb0, - 0x45, 0xc3, 0xf4, 0x89, 0xf2, 0xef, 0x98, 0xf0, - 0xd5, 0xdf, 0xac, 0x05, 0xd3, 0xc6, 0x33, 0x39, - 0xb1, 0x38, 0x02, 0x88, 0x6d, 0x53, 0xfc, 0x05 - ), - /* 55188659117513257062467267217118295137698188065244968500265048394206261417927 (order 8) */ - array( - 0xc7, 0x17, 0x6a, 0x70, 0x3d, 0x4d, 0xd8, 0x4f, - 0xba, 0x3c, 0x0b, 0x76, 0x0d, 0x10, 0x67, 0x0f, - 0x2a, 0x20, 0x53, 0xfa, 0x2c, 0x39, 0xcc, 0xc6, - 0x4e, 0xc7, 0xfd, 0x77, 0x92, 0xac, 0x03, 0x7a - ), - /* p-1 (order 2) */ - array( - 0x13, 0xe8, 0x95, 0x8f, 0xc2, 0xb2, 0x27, 0xb0, - 0x45, 0xc3, 0xf4, 0x89, 0xf2, 0xef, 0x98, 0xf0, - 0xd5, 0xdf, 0xac, 0x05, 0xd3, 0xc6, 0x33, 0x39, - 0xb1, 0x38, 0x02, 0x88, 0x6d, 0x53, 0xfc, 0x85 - ), - /* p (order 4) */ - array( - 0xb4, 0x17, 0x6a, 0x70, 0x3d, 0x4d, 0xd8, 0x4f, - 0xba, 0x3c, 0x0b, 0x76, 0x0d, 0x10, 0x67, 0x0f, - 0x2a, 0x20, 0x53, 0xfa, 0x2c, 0x39, 0xcc, 0xc6, - 0x4e, 0xc7, 0xfd, 0x77, 0x92, 0xac, 0x03, 0xfa - ), - /* p+1 (order 1) */ - array( - 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f - ), - /* p+2707385501144840649318225287225658788936804267575313519463743609750303402022 (order 8) */ - array( - 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f - ), - /* p+55188659117513257062467267217118295137698188065244968500265048394206261417927 (order 8) */ - array( - 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f - ), - /* 2p-1 (order 2) */ - array( - 0xd9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - ), - /* 2p (order 4) */ - array( - 0xda, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - ), - /* 2p+1 (order 1) */ - array( - 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - ) - ); - /** @var int $countBlacklist */ - $countBlacklist = count($blacklist); - - for ($i = 0; $i < $countBlacklist; ++$i) { - $c = 0; - for ($j = 0; $j < 32; ++$j) { - $c |= self::chrToInt($R[$j]) ^ (int) $blacklist[$i][$j]; - } - if ($c === 0) { - return true; - } - } - return false; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/HChaCha20.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/HChaCha20.php deleted file mode 100644 index 947df10..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/HChaCha20.php +++ /dev/null @@ -1,108 +0,0 @@ - 0; $i -= 2) { - $x4 ^= self::rotate($x0 + $x12, 7); - $x8 ^= self::rotate($x4 + $x0, 9); - $x12 ^= self::rotate($x8 + $x4, 13); - $x0 ^= self::rotate($x12 + $x8, 18); - $x9 ^= self::rotate($x5 + $x1, 7); - $x13 ^= self::rotate($x9 + $x5, 9); - $x1 ^= self::rotate($x13 + $x9, 13); - $x5 ^= self::rotate($x1 + $x13, 18); - $x14 ^= self::rotate($x10 + $x6, 7); - $x2 ^= self::rotate($x14 + $x10, 9); - $x6 ^= self::rotate($x2 + $x14, 13); - $x10 ^= self::rotate($x6 + $x2, 18); - $x3 ^= self::rotate($x15 + $x11, 7); - $x7 ^= self::rotate($x3 + $x15, 9); - $x11 ^= self::rotate($x7 + $x3, 13); - $x15 ^= self::rotate($x11 + $x7, 18); - $x1 ^= self::rotate($x0 + $x3, 7); - $x2 ^= self::rotate($x1 + $x0, 9); - $x3 ^= self::rotate($x2 + $x1, 13); - $x0 ^= self::rotate($x3 + $x2, 18); - $x6 ^= self::rotate($x5 + $x4, 7); - $x7 ^= self::rotate($x6 + $x5, 9); - $x4 ^= self::rotate($x7 + $x6, 13); - $x5 ^= self::rotate($x4 + $x7, 18); - $x11 ^= self::rotate($x10 + $x9, 7); - $x8 ^= self::rotate($x11 + $x10, 9); - $x9 ^= self::rotate($x8 + $x11, 13); - $x10 ^= self::rotate($x9 + $x8, 18); - $x12 ^= self::rotate($x15 + $x14, 7); - $x13 ^= self::rotate($x12 + $x15, 9); - $x14 ^= self::rotate($x13 + $x12, 13); - $x15 ^= self::rotate($x14 + $x13, 18); - } - - return self::store32_le($x0) . - self::store32_le($x5) . - self::store32_le($x10) . - self::store32_le($x15) . - self::store32_le($x6) . - self::store32_le($x7) . - self::store32_le($x8) . - self::store32_le($x9); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Poly1305.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Poly1305.php deleted file mode 100644 index 3301821..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Poly1305.php +++ /dev/null @@ -1,63 +0,0 @@ -update($m) - ->finish(); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $mac - * @param string $m - * @param string $key - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function onetimeauth_verify($mac, $m, $key) - { - if (self::strlen($key) < 32) { - throw new InvalidArgumentException( - 'Key must be 32 bytes long.' - ); - } - $state = new ParagonIE_Sodium_Core_Poly1305_State( - self::substr($key, 0, 32) - ); - $calc = $state - ->update($m) - ->finish(); - return self::verify_16($calc, $mac); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Poly1305/State.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Poly1305/State.php deleted file mode 100644 index 4b64e04..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Poly1305/State.php +++ /dev/null @@ -1,445 +0,0 @@ - - */ - protected $buffer = array(); - - /** - * @var bool - */ - protected $final = false; - - /** - * @var array - */ - public $h; - - /** - * @var int - */ - protected $leftover = 0; - - /** - * @var int[] - */ - public $r; - - /** - * @var int[] - */ - public $pad; - - /** - * ParagonIE_Sodium_Core_Poly1305_State constructor. - * - * @internal You should not use this directly from another application - * - * @param string $key - * @throws InvalidArgumentException - * @throws TypeError - */ - public function __construct($key = '') - { - if (self::strlen($key) < 32) { - throw new InvalidArgumentException( - 'Poly1305 requires a 32-byte key' - ); - } - /* r &= 0xffffffc0ffffffc0ffffffc0fffffff */ - $this->r = array( - (int) ((self::load_4(self::substr($key, 0, 4))) & 0x3ffffff), - (int) ((self::load_4(self::substr($key, 3, 4)) >> 2) & 0x3ffff03), - (int) ((self::load_4(self::substr($key, 6, 4)) >> 4) & 0x3ffc0ff), - (int) ((self::load_4(self::substr($key, 9, 4)) >> 6) & 0x3f03fff), - (int) ((self::load_4(self::substr($key, 12, 4)) >> 8) & 0x00fffff) - ); - - /* h = 0 */ - $this->h = array(0, 0, 0, 0, 0); - - /* save pad for later */ - $this->pad = array( - self::load_4(self::substr($key, 16, 4)), - self::load_4(self::substr($key, 20, 4)), - self::load_4(self::substr($key, 24, 4)), - self::load_4(self::substr($key, 28, 4)), - ); - - $this->leftover = 0; - $this->final = false; - } - - /** - * Zero internal buffer upon destruction - */ - public function __destruct() - { - $this->r[0] ^= $this->r[0]; - $this->r[1] ^= $this->r[1]; - $this->r[2] ^= $this->r[2]; - $this->r[3] ^= $this->r[3]; - $this->r[4] ^= $this->r[4]; - $this->h[0] ^= $this->h[0]; - $this->h[1] ^= $this->h[1]; - $this->h[2] ^= $this->h[2]; - $this->h[3] ^= $this->h[3]; - $this->h[4] ^= $this->h[4]; - $this->pad[0] ^= $this->pad[0]; - $this->pad[1] ^= $this->pad[1]; - $this->pad[2] ^= $this->pad[2]; - $this->pad[3] ^= $this->pad[3]; - $this->leftover = 0; - $this->final = true; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message - * @return self - * @throws SodiumException - * @throws TypeError - */ - public function update($message = '') - { - $bytes = self::strlen($message); - if ($bytes < 1) { - return $this; - } - - /* handle leftover */ - if ($this->leftover) { - $want = ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE - $this->leftover; - if ($want > $bytes) { - $want = $bytes; - } - for ($i = 0; $i < $want; ++$i) { - $mi = self::chrToInt($message[$i]); - $this->buffer[$this->leftover + $i] = $mi; - } - // We snip off the leftmost bytes. - $message = self::substr($message, $want); - $bytes = self::strlen($message); - $this->leftover += $want; - if ($this->leftover < ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE) { - // We still don't have enough to run $this->blocks() - return $this; - } - - $this->blocks( - self::intArrayToString($this->buffer), - ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE - ); - $this->leftover = 0; - } - - /* process full blocks */ - if ($bytes >= ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE) { - /** @var int $want */ - $want = $bytes & ~(ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE - 1); - if ($want >= ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE) { - $block = self::substr($message, 0, $want); - if (self::strlen($block) >= ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE) { - $this->blocks($block, $want); - $message = self::substr($message, $want); - $bytes = self::strlen($message); - } - } - } - - /* store leftover */ - if ($bytes) { - for ($i = 0; $i < $bytes; ++$i) { - $mi = self::chrToInt($message[$i]); - $this->buffer[$this->leftover + $i] = $mi; - } - $this->leftover = (int) $this->leftover + $bytes; - } - return $this; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message - * @param int $bytes - * @return self - * @throws TypeError - */ - public function blocks($message, $bytes) - { - if (self::strlen($message) < 16) { - $message = str_pad($message, 16, "\x00", STR_PAD_RIGHT); - } - /** @var int $hibit */ - $hibit = $this->final ? 0 : 1 << 24; /* 1 << 128 */ - $r0 = (int) $this->r[0]; - $r1 = (int) $this->r[1]; - $r2 = (int) $this->r[2]; - $r3 = (int) $this->r[3]; - $r4 = (int) $this->r[4]; - - $s1 = self::mul($r1, 5, 3); - $s2 = self::mul($r2, 5, 3); - $s3 = self::mul($r3, 5, 3); - $s4 = self::mul($r4, 5, 3); - - $h0 = $this->h[0]; - $h1 = $this->h[1]; - $h2 = $this->h[2]; - $h3 = $this->h[3]; - $h4 = $this->h[4]; - - while ($bytes >= ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE) { - /* h += m[i] */ - $h0 += self::load_4(self::substr($message, 0, 4)) & 0x3ffffff; - $h1 += (self::load_4(self::substr($message, 3, 4)) >> 2) & 0x3ffffff; - $h2 += (self::load_4(self::substr($message, 6, 4)) >> 4) & 0x3ffffff; - $h3 += (self::load_4(self::substr($message, 9, 4)) >> 6) & 0x3ffffff; - $h4 += (self::load_4(self::substr($message, 12, 4)) >> 8) | $hibit; - - /* h *= r */ - $d0 = ( - self::mul($h0, $r0, 25) + - self::mul($s4, $h1, 26) + - self::mul($s3, $h2, 26) + - self::mul($s2, $h3, 26) + - self::mul($s1, $h4, 26) - ); - - $d1 = ( - self::mul($h0, $r1, 25) + - self::mul($h1, $r0, 25) + - self::mul($s4, $h2, 26) + - self::mul($s3, $h3, 26) + - self::mul($s2, $h4, 26) - ); - - $d2 = ( - self::mul($h0, $r2, 25) + - self::mul($h1, $r1, 25) + - self::mul($h2, $r0, 25) + - self::mul($s4, $h3, 26) + - self::mul($s3, $h4, 26) - ); - - $d3 = ( - self::mul($h0, $r3, 25) + - self::mul($h1, $r2, 25) + - self::mul($h2, $r1, 25) + - self::mul($h3, $r0, 25) + - self::mul($s4, $h4, 26) - ); - - $d4 = ( - self::mul($h0, $r4, 25) + - self::mul($h1, $r3, 25) + - self::mul($h2, $r2, 25) + - self::mul($h3, $r1, 25) + - self::mul($h4, $r0, 25) - ); - - /* (partial) h %= p */ - /** @var int $c */ - $c = $d0 >> 26; - /** @var int $h0 */ - $h0 = $d0 & 0x3ffffff; - $d1 += $c; - - /** @var int $c */ - $c = $d1 >> 26; - /** @var int $h1 */ - $h1 = $d1 & 0x3ffffff; - $d2 += $c; - - /** @var int $c */ - $c = $d2 >> 26; - /** @var int $h2 */ - $h2 = $d2 & 0x3ffffff; - $d3 += $c; - - /** @var int $c */ - $c = $d3 >> 26; - /** @var int $h3 */ - $h3 = $d3 & 0x3ffffff; - $d4 += $c; - - /** @var int $c */ - $c = $d4 >> 26; - /** @var int $h4 */ - $h4 = $d4 & 0x3ffffff; - $h0 += (int) self::mul($c, 5, 3); - - /** @var int $c */ - $c = $h0 >> 26; - /** @var int $h0 */ - $h0 &= 0x3ffffff; - $h1 += $c; - - // Chop off the left 32 bytes. - $message = self::substr( - $message, - ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE - ); - $bytes -= ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE; - } - - $this->h = array( - (int) ($h0 & 0xffffffff), - (int) ($h1 & 0xffffffff), - (int) ($h2 & 0xffffffff), - (int) ($h3 & 0xffffffff), - (int) ($h4 & 0xffffffff) - ); - return $this; - } - - /** - * @internal You should not use this directly from another application - * - * @return string - * @throws TypeError - */ - public function finish() - { - /* process the remaining block */ - if ($this->leftover) { - $i = $this->leftover; - $this->buffer[$i++] = 1; - for (; $i < ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE; ++$i) { - $this->buffer[$i] = 0; - } - $this->final = true; - $this->blocks( - self::substr( - self::intArrayToString($this->buffer), - 0, - ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE - ), - ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE - ); - } - - $h0 = (int) $this->h[0]; - $h1 = (int) $this->h[1]; - $h2 = (int) $this->h[2]; - $h3 = (int) $this->h[3]; - $h4 = (int) $this->h[4]; - - /** @var int $c */ - $c = $h1 >> 26; - /** @var int $h1 */ - $h1 &= 0x3ffffff; - /** @var int $h2 */ - $h2 += $c; - /** @var int $c */ - $c = $h2 >> 26; - /** @var int $h2 */ - $h2 &= 0x3ffffff; - $h3 += $c; - /** @var int $c */ - $c = $h3 >> 26; - $h3 &= 0x3ffffff; - $h4 += $c; - /** @var int $c */ - $c = $h4 >> 26; - $h4 &= 0x3ffffff; - /** @var int $h0 */ - $h0 += self::mul($c, 5, 3); - /** @var int $c */ - $c = $h0 >> 26; - /** @var int $h0 */ - $h0 &= 0x3ffffff; - /** @var int $h1 */ - $h1 += $c; - - /* compute h + -p */ - /** @var int $g0 */ - $g0 = $h0 + 5; - /** @var int $c */ - $c = $g0 >> 26; - /** @var int $g0 */ - $g0 &= 0x3ffffff; - - /** @var int $g1 */ - $g1 = $h1 + $c; - /** @var int $c */ - $c = $g1 >> 26; - $g1 &= 0x3ffffff; - - /** @var int $g2 */ - $g2 = $h2 + $c; - /** @var int $c */ - $c = $g2 >> 26; - /** @var int $g2 */ - $g2 &= 0x3ffffff; - - /** @var int $g3 */ - $g3 = $h3 + $c; - /** @var int $c */ - $c = $g3 >> 26; - /** @var int $g3 */ - $g3 &= 0x3ffffff; - - /** @var int $g4 */ - $g4 = ($h4 + $c - (1 << 26)) & 0xffffffff; - - /* select h if h < p, or h + -p if h >= p */ - /** @var int $mask */ - $mask = ($g4 >> 31) - 1; - - $g0 &= $mask; - $g1 &= $mask; - $g2 &= $mask; - $g3 &= $mask; - $g4 &= $mask; - - /** @var int $mask */ - $mask = ~$mask & 0xffffffff; - /** @var int $h0 */ - $h0 = ($h0 & $mask) | $g0; - /** @var int $h1 */ - $h1 = ($h1 & $mask) | $g1; - /** @var int $h2 */ - $h2 = ($h2 & $mask) | $g2; - /** @var int $h3 */ - $h3 = ($h3 & $mask) | $g3; - /** @var int $h4 */ - $h4 = ($h4 & $mask) | $g4; - - /* h = h % (2^128) */ - /** @var int $h0 */ - $h0 = (($h0) | ($h1 << 26)) & 0xffffffff; - /** @var int $h1 */ - $h1 = (($h1 >> 6) | ($h2 << 20)) & 0xffffffff; - /** @var int $h2 */ - $h2 = (($h2 >> 12) | ($h3 << 14)) & 0xffffffff; - /** @var int $h3 */ - $h3 = (($h3 >> 18) | ($h4 << 8)) & 0xffffffff; - - /* mac = (h + pad) % (2^128) */ - $f = (int) ($h0 + $this->pad[0]); - $h0 = (int) $f; - $f = (int) ($h1 + $this->pad[1] + ($f >> 32)); - $h1 = (int) $f; - $f = (int) ($h2 + $this->pad[2] + ($f >> 32)); - $h2 = (int) $f; - $f = (int) ($h3 + $this->pad[3] + ($f >> 32)); - $h3 = (int) $f; - - return self::store32_le($h0 & 0xffffffff) . - self::store32_le($h1 & 0xffffffff) . - self::store32_le($h2 & 0xffffffff) . - self::store32_le($h3 & 0xffffffff); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Salsa20.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Salsa20.php deleted file mode 100644 index 515ccad..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Salsa20.php +++ /dev/null @@ -1,273 +0,0 @@ - 0; $i -= 2) { - $x4 ^= self::rotate($x0 + $x12, 7); - $x8 ^= self::rotate($x4 + $x0, 9); - $x12 ^= self::rotate($x8 + $x4, 13); - $x0 ^= self::rotate($x12 + $x8, 18); - - $x9 ^= self::rotate($x5 + $x1, 7); - $x13 ^= self::rotate($x9 + $x5, 9); - $x1 ^= self::rotate($x13 + $x9, 13); - $x5 ^= self::rotate($x1 + $x13, 18); - - $x14 ^= self::rotate($x10 + $x6, 7); - $x2 ^= self::rotate($x14 + $x10, 9); - $x6 ^= self::rotate($x2 + $x14, 13); - $x10 ^= self::rotate($x6 + $x2, 18); - - $x3 ^= self::rotate($x15 + $x11, 7); - $x7 ^= self::rotate($x3 + $x15, 9); - $x11 ^= self::rotate($x7 + $x3, 13); - $x15 ^= self::rotate($x11 + $x7, 18); - - $x1 ^= self::rotate($x0 + $x3, 7); - $x2 ^= self::rotate($x1 + $x0, 9); - $x3 ^= self::rotate($x2 + $x1, 13); - $x0 ^= self::rotate($x3 + $x2, 18); - - $x6 ^= self::rotate($x5 + $x4, 7); - $x7 ^= self::rotate($x6 + $x5, 9); - $x4 ^= self::rotate($x7 + $x6, 13); - $x5 ^= self::rotate($x4 + $x7, 18); - - $x11 ^= self::rotate($x10 + $x9, 7); - $x8 ^= self::rotate($x11 + $x10, 9); - $x9 ^= self::rotate($x8 + $x11, 13); - $x10 ^= self::rotate($x9 + $x8, 18); - - $x12 ^= self::rotate($x15 + $x14, 7); - $x13 ^= self::rotate($x12 + $x15, 9); - $x14 ^= self::rotate($x13 + $x12, 13); - $x15 ^= self::rotate($x14 + $x13, 18); - } - - $x0 += $j0; - $x1 += $j1; - $x2 += $j2; - $x3 += $j3; - $x4 += $j4; - $x5 += $j5; - $x6 += $j6; - $x7 += $j7; - $x8 += $j8; - $x9 += $j9; - $x10 += $j10; - $x11 += $j11; - $x12 += $j12; - $x13 += $j13; - $x14 += $j14; - $x15 += $j15; - - return self::store32_le($x0) . - self::store32_le($x1) . - self::store32_le($x2) . - self::store32_le($x3) . - self::store32_le($x4) . - self::store32_le($x5) . - self::store32_le($x6) . - self::store32_le($x7) . - self::store32_le($x8) . - self::store32_le($x9) . - self::store32_le($x10) . - self::store32_le($x11) . - self::store32_le($x12) . - self::store32_le($x13) . - self::store32_le($x14) . - self::store32_le($x15); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $len - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function salsa20($len, $nonce, $key) - { - if (self::strlen($key) !== 32) { - throw new RangeException('Key must be 32 bytes long'); - } - $kcopy = '' . $key; - $in = self::substr($nonce, 0, 8) . str_repeat("\0", 8); - $c = ''; - while ($len >= 64) { - $c .= self::core_salsa20($in, $kcopy, null); - $u = 1; - // Internal counter. - for ($i = 8; $i < 16; ++$i) { - $u += self::chrToInt($in[$i]); - $in[$i] = self::intToChr($u & 0xff); - $u >>= 8; - } - $len -= 64; - } - if ($len > 0) { - $c .= self::substr( - self::core_salsa20($in, $kcopy, null), - 0, - $len - ); - } - try { - ParagonIE_Sodium_Compat::memzero($kcopy); - } catch (SodiumException $ex) { - $kcopy = null; - } - return $c; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $m - * @param string $n - * @param int $ic - * @param string $k - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function salsa20_xor_ic($m, $n, $ic, $k) - { - $mlen = self::strlen($m); - if ($mlen < 1) { - return ''; - } - $kcopy = self::substr($k, 0, 32); - $in = self::substr($n, 0, 8); - // Initialize the counter - $in .= ParagonIE_Sodium_Core_Util::store64_le($ic); - - $c = ''; - while ($mlen >= 64) { - $block = self::core_salsa20($in, $kcopy, null); - $c .= self::xorStrings( - self::substr($m, 0, 64), - self::substr($block, 0, 64) - ); - $u = 1; - for ($i = 8; $i < 16; ++$i) { - $u += self::chrToInt($in[$i]); - $in[$i] = self::intToChr($u & 0xff); - $u >>= 8; - } - - $mlen -= 64; - $m = self::substr($m, 64); - } - - if ($mlen) { - $block = self::core_salsa20($in, $kcopy, null); - $c .= self::xorStrings( - self::substr($m, 0, $mlen), - self::substr($block, 0, $mlen) - ); - } - try { - ParagonIE_Sodium_Compat::memzero($block); - ParagonIE_Sodium_Compat::memzero($kcopy); - } catch (SodiumException $ex) { - $block = null; - $kcopy = null; - } - - return $c; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function salsa20_xor($message, $nonce, $key) - { - return self::xorStrings( - $message, - self::salsa20( - self::strlen($message), - $nonce, - $key - ) - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $u - * @param int $c - * @return int - */ - public static function rotate($u, $c) - { - $u &= 0xffffffff; - $c %= 32; - return (int) (0xffffffff & ( - ($u << $c) - | - ($u >> (32 - $c)) - ) - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/SecretStream/State.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/SecretStream/State.php deleted file mode 100644 index 2412f65..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/SecretStream/State.php +++ /dev/null @@ -1,163 +0,0 @@ -key = $key; - $this->counter = 1; - if (is_null($nonce)) { - $nonce = str_repeat("\0", 12); - } - $this->nonce = str_pad($nonce, 12, "\0", STR_PAD_RIGHT);; - $this->_pad = str_repeat("\0", 4); - } - - /** - * @return self - */ - public function counterReset() - { - $this->counter = 1; - $this->_pad = str_repeat("\0", 4); - return $this; - } - - /** - * @return string - */ - public function getKey() - { - return $this->key; - } - - /** - * @return string - */ - public function getCounter() - { - return ParagonIE_Sodium_Core_Util::store32_le($this->counter); - } - - /** - * @return string - */ - public function getNonce() - { - if (!is_string($this->nonce)) { - $this->nonce = str_repeat("\0", 12); - } - if (ParagonIE_Sodium_Core_Util::strlen($this->nonce) !== 12) { - $this->nonce = str_pad($this->nonce, 12, "\0", STR_PAD_RIGHT); - } - return $this->nonce; - } - - /** - * @return string - */ - public function getCombinedNonce() - { - return $this->getCounter() . - ParagonIE_Sodium_Core_Util::substr($this->getNonce(), 0, 8); - } - - /** - * @return self - */ - public function incrementCounter() - { - ++$this->counter; - return $this; - } - - /** - * @return bool - */ - public function needsRekey() - { - return ($this->counter & 0xffff) === 0; - } - - /** - * @param string $newKeyAndNonce - * @return self - */ - public function rekey($newKeyAndNonce) - { - $this->key = ParagonIE_Sodium_Core_Util::substr($newKeyAndNonce, 0, 32); - $this->nonce = str_pad( - ParagonIE_Sodium_Core_Util::substr($newKeyAndNonce, 32), - 12, - "\0", - STR_PAD_RIGHT - ); - return $this; - } - - /** - * @param string $str - * @return self - */ - public function xorNonce($str) - { - $this->nonce = ParagonIE_Sodium_Core_Util::xorStrings( - $this->getNonce(), - str_pad( - ParagonIE_Sodium_Core_Util::substr($str, 0, 8), - 12, - "\0", - STR_PAD_RIGHT - ) - ); - return $this; - } - - /** - * @param string $string - * @return self - */ - public static function fromString($string) - { - $state = new ParagonIE_Sodium_Core_SecretStream_State( - ParagonIE_Sodium_Core_Util::substr($string, 0, 32) - ); - $state->counter = ParagonIE_Sodium_Core_Util::load_4( - ParagonIE_Sodium_Core_Util::substr($string, 32, 4) - ); - $state->nonce = ParagonIE_Sodium_Core_Util::substr($string, 36, 12); - $state->_pad = ParagonIE_Sodium_Core_Util::substr($string, 48, 8); - return $state; - } - - /** - * @return string - */ - public function toString() - { - return $this->key . - $this->getCounter() . - $this->nonce . - $this->_pad; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/SipHash.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/SipHash.php deleted file mode 100644 index 7d39816..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/SipHash.php +++ /dev/null @@ -1,305 +0,0 @@ - - */ - public static function add(array $a, array $b) - { - /** @var int $x1 */ - $x1 = $a[1] + $b[1]; - /** @var int $c */ - $c = $x1 >> 32; // Carry if ($a + $b) > 0xffffffff - /** @var int $x0 */ - $x0 = $a[0] + $b[0] + $c; - return array( - $x0 & 0xffffffff, - $x1 & 0xffffffff - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $int0 - * @param int $int1 - * @param int $c - * @return array - */ - public static function rotl_64($int0, $int1, $c) - { - $int0 &= 0xffffffff; - $int1 &= 0xffffffff; - $c &= 63; - if ($c === 32) { - return array($int1, $int0); - } - if ($c > 31) { - $tmp = $int1; - $int1 = $int0; - $int0 = $tmp; - $c &= 31; - } - if ($c === 0) { - return array($int0, $int1); - } - return array( - 0xffffffff & ( - ($int0 << $c) - | - ($int1 >> (32 - $c)) - ), - 0xffffffff & ( - ($int1 << $c) - | - ($int0 >> (32 - $c)) - ), - ); - } - - /** - * Implements Siphash-2-4 using only 32-bit numbers. - * - * When we split an int into two, the higher bits go to the lower index. - * e.g. 0xDEADBEEFAB10C92D becomes [ - * 0 => 0xDEADBEEF, - * 1 => 0xAB10C92D - * ]. - * - * @internal You should not use this directly from another application - * - * @param string $in - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sipHash24($in, $key) - { - $inlen = self::strlen($in); - - # /* "somepseudorandomlygeneratedbytes" */ - # u64 v0 = 0x736f6d6570736575ULL; - # u64 v1 = 0x646f72616e646f6dULL; - # u64 v2 = 0x6c7967656e657261ULL; - # u64 v3 = 0x7465646279746573ULL; - $v = array( - 0x736f6d65, // 0 - 0x70736575, // 1 - 0x646f7261, // 2 - 0x6e646f6d, // 3 - 0x6c796765, // 4 - 0x6e657261, // 5 - 0x74656462, // 6 - 0x79746573 // 7 - ); - // v0 => $v[0], $v[1] - // v1 => $v[2], $v[3] - // v2 => $v[4], $v[5] - // v3 => $v[6], $v[7] - - # u64 k0 = LOAD64_LE( k ); - # u64 k1 = LOAD64_LE( k + 8 ); - $k = array( - self::load_4(self::substr($key, 4, 4)), - self::load_4(self::substr($key, 0, 4)), - self::load_4(self::substr($key, 12, 4)), - self::load_4(self::substr($key, 8, 4)) - ); - // k0 => $k[0], $k[1] - // k1 => $k[2], $k[3] - - # b = ( ( u64 )inlen ) << 56; - $b = array( - $inlen << 24, - 0 - ); - // See docblock for why the 0th index gets the higher bits. - - # v3 ^= k1; - $v[6] ^= $k[2]; - $v[7] ^= $k[3]; - # v2 ^= k0; - $v[4] ^= $k[0]; - $v[5] ^= $k[1]; - # v1 ^= k1; - $v[2] ^= $k[2]; - $v[3] ^= $k[3]; - # v0 ^= k0; - $v[0] ^= $k[0]; - $v[1] ^= $k[1]; - - $left = $inlen; - # for ( ; in != end; in += 8 ) - while ($left >= 8) { - # m = LOAD64_LE( in ); - $m = array( - self::load_4(self::substr($in, 4, 4)), - self::load_4(self::substr($in, 0, 4)) - ); - - # v3 ^= m; - $v[6] ^= $m[0]; - $v[7] ^= $m[1]; - - # SIPROUND; - # SIPROUND; - $v = self::sipRound($v); - $v = self::sipRound($v); - - # v0 ^= m; - $v[0] ^= $m[0]; - $v[1] ^= $m[1]; - - $in = self::substr($in, 8); - $left -= 8; - } - - # switch( left ) - # { - # case 7: b |= ( ( u64 )in[ 6] ) << 48; - # case 6: b |= ( ( u64 )in[ 5] ) << 40; - # case 5: b |= ( ( u64 )in[ 4] ) << 32; - # case 4: b |= ( ( u64 )in[ 3] ) << 24; - # case 3: b |= ( ( u64 )in[ 2] ) << 16; - # case 2: b |= ( ( u64 )in[ 1] ) << 8; - # case 1: b |= ( ( u64 )in[ 0] ); break; - # case 0: break; - # } - switch ($left) { - case 7: - $b[0] |= self::chrToInt($in[6]) << 16; - case 6: - $b[0] |= self::chrToInt($in[5]) << 8; - case 5: - $b[0] |= self::chrToInt($in[4]); - case 4: - $b[1] |= self::chrToInt($in[3]) << 24; - case 3: - $b[1] |= self::chrToInt($in[2]) << 16; - case 2: - $b[1] |= self::chrToInt($in[1]) << 8; - case 1: - $b[1] |= self::chrToInt($in[0]); - case 0: - break; - } - // See docblock for why the 0th index gets the higher bits. - - # v3 ^= b; - $v[6] ^= $b[0]; - $v[7] ^= $b[1]; - - # SIPROUND; - # SIPROUND; - $v = self::sipRound($v); - $v = self::sipRound($v); - - # v0 ^= b; - $v[0] ^= $b[0]; - $v[1] ^= $b[1]; - - // Flip the lower 8 bits of v2 which is ($v[4], $v[5]) in our implementation - # v2 ^= 0xff; - $v[5] ^= 0xff; - - # SIPROUND; - # SIPROUND; - # SIPROUND; - # SIPROUND; - $v = self::sipRound($v); - $v = self::sipRound($v); - $v = self::sipRound($v); - $v = self::sipRound($v); - - # b = v0 ^ v1 ^ v2 ^ v3; - # STORE64_LE( out, b ); - return self::store32_le($v[1] ^ $v[3] ^ $v[5] ^ $v[7]) . - self::store32_le($v[0] ^ $v[2] ^ $v[4] ^ $v[6]); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Util.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Util.php deleted file mode 100644 index a5808b1..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/Util.php +++ /dev/null @@ -1,921 +0,0 @@ -> $size) & 1); - return (int) ( - ($integer ^ $negative) - + - (($negative >> $realSize) & 1) - ); - } - - /** - * Convert a binary string into a hexadecimal string without cache-timing - * leaks - * - * @internal You should not use this directly from another application - * - * @param string $binaryString (raw binary) - * @return string - * @throws TypeError - */ - public static function bin2hex($binaryString) - { - /* Type checks: */ - if (!is_string($binaryString)) { - throw new TypeError('Argument 1 must be a string, ' . gettype($binaryString) . ' given.'); - } - - $hex = ''; - $len = self::strlen($binaryString); - for ($i = 0; $i < $len; ++$i) { - /** @var array $chunk */ - $chunk = unpack('C', $binaryString[$i]); - /** @var int $c */ - $c = $chunk[1] & 0xf; - /** @var int $b */ - $b = $chunk[1] >> 4; - $hex .= pack( - 'CC', - (87 + $b + ((($b - 10) >> 8) & ~38)), - (87 + $c + ((($c - 10) >> 8) & ~38)) - ); - } - return $hex; - } - - /** - * Convert a binary string into a hexadecimal string without cache-timing - * leaks, returning uppercase letters (as per RFC 4648) - * - * @internal You should not use this directly from another application - * - * @param string $bin_string (raw binary) - * @return string - * @throws TypeError - */ - public static function bin2hexUpper($bin_string) - { - $hex = ''; - $len = self::strlen($bin_string); - for ($i = 0; $i < $len; ++$i) { - /** @var array $chunk */ - $chunk = unpack('C', $bin_string[$i]); - /** - * Lower 16 bits - * - * @var int $c - */ - $c = $chunk[1] & 0xf; - - /** - * Upper 16 bits - * @var int $b - */ - $b = $chunk[1] >> 4; - - /** - * Use pack() and binary operators to turn the two integers - * into hexadecimal characters. We don't use chr() here, because - * it uses a lookup table internally and we want to avoid - * cache-timing side-channels. - */ - $hex .= pack( - 'CC', - (55 + $b + ((($b - 10) >> 8) & ~6)), - (55 + $c + ((($c - 10) >> 8) & ~6)) - ); - } - return $hex; - } - - /** - * Cache-timing-safe variant of ord() - * - * @internal You should not use this directly from another application - * - * @param string $chr - * @return int - * @throws SodiumException - * @throws TypeError - */ - public static function chrToInt($chr) - { - /* Type checks: */ - if (!is_string($chr)) { - throw new TypeError('Argument 1 must be a string, ' . gettype($chr) . ' given.'); - } - if (self::strlen($chr) !== 1) { - throw new SodiumException('chrToInt() expects a string that is exactly 1 character long'); - } - /** @var array $chunk */ - $chunk = unpack('C', $chr); - return (int) ($chunk[1]); - } - - /** - * Compares two strings. - * - * @internal You should not use this directly from another application - * - * @param string $left - * @param string $right - * @param int $len - * @return int - * @throws SodiumException - * @throws TypeError - */ - public static function compare($left, $right, $len = null) - { - $leftLen = self::strlen($left); - $rightLen = self::strlen($right); - if ($len === null) { - $len = max($leftLen, $rightLen); - $left = str_pad($left, $len, "\x00", STR_PAD_RIGHT); - $right = str_pad($right, $len, "\x00", STR_PAD_RIGHT); - } - - $gt = 0; - $eq = 1; - $i = $len; - while ($i !== 0) { - --$i; - $gt |= ((self::chrToInt($right[$i]) - self::chrToInt($left[$i])) >> 8) & $eq; - $eq &= ((self::chrToInt($right[$i]) ^ self::chrToInt($left[$i])) - 1) >> 8; - } - return ($gt + $gt + $eq) - 1; - } - - /** - * If a variable does not match a given type, throw a TypeError. - * - * @param mixed $mixedVar - * @param string $type - * @param int $argumentIndex - * @throws TypeError - * @throws SodiumException - * @return void - */ - public static function declareScalarType(&$mixedVar = null, $type = 'void', $argumentIndex = 0) - { - if (func_num_args() === 0) { - /* Tautology, by default */ - return; - } - if (func_num_args() === 1) { - throw new TypeError('Declared void, but passed a variable'); - } - $realType = strtolower(gettype($mixedVar)); - $type = strtolower($type); - switch ($type) { - case 'null': - if ($mixedVar !== null) { - throw new TypeError('Argument ' . $argumentIndex . ' must be null, ' . $realType . ' given.'); - } - break; - case 'integer': - case 'int': - $allow = array('int', 'integer'); - if (!in_array($type, $allow)) { - throw new TypeError('Argument ' . $argumentIndex . ' must be an integer, ' . $realType . ' given.'); - } - $mixedVar = (int) $mixedVar; - break; - case 'boolean': - case 'bool': - $allow = array('bool', 'boolean'); - if (!in_array($type, $allow)) { - throw new TypeError('Argument ' . $argumentIndex . ' must be a boolean, ' . $realType . ' given.'); - } - $mixedVar = (bool) $mixedVar; - break; - case 'string': - if (!is_string($mixedVar)) { - throw new TypeError('Argument ' . $argumentIndex . ' must be a string, ' . $realType . ' given.'); - } - $mixedVar = (string) $mixedVar; - break; - case 'decimal': - case 'double': - case 'float': - $allow = array('decimal', 'double', 'float'); - if (!in_array($type, $allow)) { - throw new TypeError('Argument ' . $argumentIndex . ' must be a float, ' . $realType . ' given.'); - } - $mixedVar = (float) $mixedVar; - break; - case 'object': - if (!is_object($mixedVar)) { - throw new TypeError('Argument ' . $argumentIndex . ' must be an object, ' . $realType . ' given.'); - } - break; - case 'array': - if (!is_array($mixedVar)) { - if (is_object($mixedVar)) { - if ($mixedVar instanceof ArrayAccess) { - return; - } - } - throw new TypeError('Argument ' . $argumentIndex . ' must be an array, ' . $realType . ' given.'); - } - break; - default: - throw new SodiumException('Unknown type (' . $realType .') does not match expect type (' . $type . ')'); - } - } - - /** - * Evaluate whether or not two strings are equal (in constant-time) - * - * @param string $left - * @param string $right - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function hashEquals($left, $right) - { - /* Type checks: */ - if (!is_string($left)) { - throw new TypeError('Argument 1 must be a string, ' . gettype($left) . ' given.'); - } - if (!is_string($right)) { - throw new TypeError('Argument 2 must be a string, ' . gettype($right) . ' given.'); - } - - if (is_callable('hash_equals')) { - return hash_equals($left, $right); - } - $d = 0; - /** @var int $len */ - $len = self::strlen($left); - if ($len !== self::strlen($right)) { - return false; - } - for ($i = 0; $i < $len; ++$i) { - $d |= self::chrToInt($left[$i]) ^ self::chrToInt($right[$i]); - } - - if ($d !== 0) { - return false; - } - return $left === $right; - } - - /** - * Convert a hexadecimal string into a binary string without cache-timing - * leaks - * - * @internal You should not use this directly from another application - * - * @param string $hexString - * @param bool $strictPadding - * @return string (raw binary) - * @throws RangeException - * @throws TypeError - */ - public static function hex2bin($hexString, $strictPadding = false) - { - /* Type checks: */ - if (!is_string($hexString)) { - throw new TypeError('Argument 1 must be a string, ' . gettype($hexString) . ' given.'); - } - - /** @var int $hex_pos */ - $hex_pos = 0; - /** @var string $bin */ - $bin = ''; - /** @var int $c_acc */ - $c_acc = 0; - /** @var int $hex_len */ - $hex_len = self::strlen($hexString); - /** @var int $state */ - $state = 0; - if (($hex_len & 1) !== 0) { - if ($strictPadding) { - throw new RangeException( - 'Expected an even number of hexadecimal characters' - ); - } else { - $hexString = '0' . $hexString; - ++$hex_len; - } - } - - $chunk = unpack('C*', $hexString); - while ($hex_pos < $hex_len) { - ++$hex_pos; - /** @var int $c */ - $c = $chunk[$hex_pos]; - /** @var int $c_num */ - $c_num = $c ^ 48; - /** @var int $c_num0 */ - $c_num0 = ($c_num - 10) >> 8; - /** @var int $c_alpha */ - $c_alpha = ($c & ~32) - 55; - /** @var int $c_alpha0 */ - $c_alpha0 = (($c_alpha - 10) ^ ($c_alpha - 16)) >> 8; - if (($c_num0 | $c_alpha0) === 0) { - throw new RangeException( - 'hex2bin() only expects hexadecimal characters' - ); - } - /** @var int $c_val */ - $c_val = ($c_num0 & $c_num) | ($c_alpha & $c_alpha0); - if ($state === 0) { - $c_acc = $c_val * 16; - } else { - $bin .= pack('C', $c_acc | $c_val); - } - $state ^= 1; - } - return $bin; - } - - /** - * Turn an array of integers into a string - * - * @internal You should not use this directly from another application - * - * @param array $ints - * @return string - */ - public static function intArrayToString(array $ints) - { - /** @var array $args */ - $args = $ints; - foreach ($args as $i => $v) { - $args[$i] = (int) ($v & 0xff); - } - array_unshift($args, str_repeat('C', count($ints))); - return (string) (call_user_func_array('pack', $args)); - } - - /** - * Cache-timing-safe variant of ord() - * - * @internal You should not use this directly from another application - * - * @param int $int - * @return string - * @throws TypeError - */ - public static function intToChr($int) - { - return pack('C', $int); - } - - /** - * Load a 3 character substring into an integer - * - * @internal You should not use this directly from another application - * - * @param string $string - * @return int - * @throws RangeException - * @throws TypeError - */ - public static function load_3($string) - { - /* Type checks: */ - if (!is_string($string)) { - throw new TypeError('Argument 1 must be a string, ' . gettype($string) . ' given.'); - } - - /* Input validation: */ - if (self::strlen($string) < 3) { - throw new RangeException( - 'String must be 3 bytes or more; ' . self::strlen($string) . ' given.' - ); - } - /** @var array $unpacked */ - $unpacked = unpack('V', $string . "\0"); - return (int) ($unpacked[1] & 0xffffff); - } - - /** - * Load a 4 character substring into an integer - * - * @internal You should not use this directly from another application - * - * @param string $string - * @return int - * @throws RangeException - * @throws TypeError - */ - public static function load_4($string) - { - /* Type checks: */ - if (!is_string($string)) { - throw new TypeError('Argument 1 must be a string, ' . gettype($string) . ' given.'); - } - - /* Input validation: */ - if (self::strlen($string) < 4) { - throw new RangeException( - 'String must be 4 bytes or more; ' . self::strlen($string) . ' given.' - ); - } - /** @var array $unpacked */ - $unpacked = unpack('V', $string); - return (int) ($unpacked[1] & 0xffffffff); - } - - /** - * Load a 8 character substring into an integer - * - * @internal You should not use this directly from another application - * - * @param string $string - * @return int - * @throws RangeException - * @throws SodiumException - * @throws TypeError - */ - public static function load64_le($string) - { - /* Type checks: */ - if (!is_string($string)) { - throw new TypeError('Argument 1 must be a string, ' . gettype($string) . ' given.'); - } - - /* Input validation: */ - if (self::strlen($string) < 4) { - throw new RangeException( - 'String must be 4 bytes or more; ' . self::strlen($string) . ' given.' - ); - } - if (PHP_VERSION_ID >= 50603 && PHP_INT_SIZE === 8) { - /** @var array $unpacked */ - $unpacked = unpack('P', $string); - return (int) $unpacked[1]; - } - - /** @var int $result */ - $result = (self::chrToInt($string[0]) & 0xff); - $result |= (self::chrToInt($string[1]) & 0xff) << 8; - $result |= (self::chrToInt($string[2]) & 0xff) << 16; - $result |= (self::chrToInt($string[3]) & 0xff) << 24; - $result |= (self::chrToInt($string[4]) & 0xff) << 32; - $result |= (self::chrToInt($string[5]) & 0xff) << 40; - $result |= (self::chrToInt($string[6]) & 0xff) << 48; - $result |= (self::chrToInt($string[7]) & 0xff) << 56; - return (int) $result; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $left - * @param string $right - * @return int - * @throws SodiumException - * @throws TypeError - */ - public static function memcmp($left, $right) - { - if (self::hashEquals($left, $right)) { - return 0; - } - return -1; - } - - /** - * Multiply two integers in constant-time - * - * Micro-architecture timing side-channels caused by how your CPU - * implements multiplication are best prevented by never using the - * multiplication operators and ensuring that our code always takes - * the same number of operations to complete, regardless of the values - * of $a and $b. - * - * @internal You should not use this directly from another application - * - * @param int $a - * @param int $b - * @param int $size Limits the number of operations (useful for small, - * constant operands) - * @return int - */ - public static function mul($a, $b, $size = 0) - { - if (ParagonIE_Sodium_Compat::$fastMult) { - return (int) ($a * $b); - } - - static $defaultSize = null; - /** @var int $defaultSize */ - if (!$defaultSize) { - /** @var int $defaultSize */ - $defaultSize = (PHP_INT_SIZE << 3) - 1; - } - if ($size < 1) { - /** @var int $size */ - $size = $defaultSize; - } - /** @var int $size */ - - $c = 0; - - /** - * Mask is either -1 or 0. - * - * -1 in binary looks like 0x1111 ... 1111 - * 0 in binary looks like 0x0000 ... 0000 - * - * @var int - */ - $mask = -(($b >> ((int) $defaultSize)) & 1); - - /** - * Ensure $b is a positive integer, without creating - * a branching side-channel - * - * @var int $b - */ - $b = ($b & ~$mask) | ($mask & -$b); - - /** - * Unless $size is provided: - * - * This loop always runs 32 times when PHP_INT_SIZE is 4. - * This loop always runs 64 times when PHP_INT_SIZE is 8. - */ - for ($i = $size; $i >= 0; --$i) { - $c += (int) ($a & -($b & 1)); - $a <<= 1; - $b >>= 1; - } - - /** - * If $b was negative, we then apply the same value to $c here. - * It doesn't matter much if $a was negative; the $c += above would - * have produced a negative integer to begin with. But a negative $b - * makes $b >>= 1 never return 0, so we would end up with incorrect - * results. - * - * The end result is what we'd expect from integer multiplication. - */ - return (int) (($c & ~$mask) | ($mask & -$c)); - } - - /** - * Convert any arbitrary numbers into two 32-bit integers that represent - * a 64-bit integer. - * - * @internal You should not use this directly from another application - * - * @param int|float $num - * @return array - */ - public static function numericTo64BitInteger($num) - { - $high = 0; - /** @var int $low */ - $low = $num & 0xffffffff; - - if ((+(abs($num))) >= 1) { - if ($num > 0) { - /** @var int $high */ - $high = min((+(floor($num/4294967296))), 4294967295); - } else { - /** @var int $high */ - $high = ~~((+(ceil(($num - (+((~~($num)))))/4294967296)))); - } - } - return array((int) $high, (int) $low); - } - - /** - * Store a 24-bit integer into a string, treating it as big-endian. - * - * @internal You should not use this directly from another application - * - * @param int $int - * @return string - * @throws TypeError - */ - public static function store_3($int) - { - /* Type checks: */ - if (!is_int($int)) { - if (is_numeric($int)) { - $int = (int) $int; - } else { - throw new TypeError('Argument 1 must be an integer, ' . gettype($int) . ' given.'); - } - } - /** @var string $packed */ - $packed = pack('N', $int); - return self::substr($packed, 1, 3); - } - - /** - * Store a 32-bit integer into a string, treating it as little-endian. - * - * @internal You should not use this directly from another application - * - * @param int $int - * @return string - * @throws TypeError - */ - public static function store32_le($int) - { - /* Type checks: */ - if (!is_int($int)) { - if (is_numeric($int)) { - $int = (int) $int; - } else { - throw new TypeError('Argument 1 must be an integer, ' . gettype($int) . ' given.'); - } - } - - /** @var string $packed */ - $packed = pack('V', $int); - return $packed; - } - - /** - * Store a 32-bit integer into a string, treating it as big-endian. - * - * @internal You should not use this directly from another application - * - * @param int $int - * @return string - * @throws TypeError - */ - public static function store_4($int) - { - /* Type checks: */ - if (!is_int($int)) { - if (is_numeric($int)) { - $int = (int) $int; - } else { - throw new TypeError('Argument 1 must be an integer, ' . gettype($int) . ' given.'); - } - } - - /** @var string $packed */ - $packed = pack('N', $int); - return $packed; - } - - /** - * Stores a 64-bit integer as an string, treating it as little-endian. - * - * @internal You should not use this directly from another application - * - * @param int $int - * @return string - * @throws TypeError - */ - public static function store64_le($int) - { - /* Type checks: */ - if (!is_int($int)) { - if (is_numeric($int)) { - $int = (int) $int; - } else { - throw new TypeError('Argument 1 must be an integer, ' . gettype($int) . ' given.'); - } - } - - if (PHP_INT_SIZE === 8) { - if (PHP_VERSION_ID >= 50603) { - /** @var string $packed */ - $packed = pack('P', $int); - return $packed; - } - return self::intToChr($int & 0xff) . - self::intToChr(($int >> 8) & 0xff) . - self::intToChr(($int >> 16) & 0xff) . - self::intToChr(($int >> 24) & 0xff) . - self::intToChr(($int >> 32) & 0xff) . - self::intToChr(($int >> 40) & 0xff) . - self::intToChr(($int >> 48) & 0xff) . - self::intToChr(($int >> 56) & 0xff); - } - if ($int > PHP_INT_MAX) { - list($hiB, $int) = self::numericTo64BitInteger($int); - } else { - $hiB = 0; - } - return - self::intToChr(($int ) & 0xff) . - self::intToChr(($int >> 8) & 0xff) . - self::intToChr(($int >> 16) & 0xff) . - self::intToChr(($int >> 24) & 0xff) . - self::intToChr($hiB & 0xff) . - self::intToChr(($hiB >> 8) & 0xff) . - self::intToChr(($hiB >> 16) & 0xff) . - self::intToChr(($hiB >> 24) & 0xff); - } - - /** - * Safe string length - * - * @internal You should not use this directly from another application - * - * @ref mbstring.func_overload - * - * @param string $str - * @return int - * @throws TypeError - */ - public static function strlen($str) - { - /* Type checks: */ - if (!is_string($str)) { - throw new TypeError('String expected'); - } - - return (int) ( - self::isMbStringOverride() - ? mb_strlen($str, '8bit') - : strlen($str) - ); - } - - /** - * Turn a string into an array of integers - * - * @internal You should not use this directly from another application - * - * @param string $string - * @return array - * @throws TypeError - */ - public static function stringToIntArray($string) - { - if (!is_string($string)) { - throw new TypeError('String expected'); - } - /** - * @var array - */ - $values = array_values( - unpack('C*', $string) - ); - return $values; - } - - /** - * Safe substring - * - * @internal You should not use this directly from another application - * - * @ref mbstring.func_overload - * - * @param string $str - * @param int $start - * @param int $length - * @return string - * @throws TypeError - */ - public static function substr($str, $start = 0, $length = null) - { - /* Type checks: */ - if (!is_string($str)) { - throw new TypeError('String expected'); - } - - if ($length === 0) { - return ''; - } - - if (self::isMbStringOverride()) { - if (PHP_VERSION_ID < 50400 && $length === null) { - $length = self::strlen($str); - } - $sub = (string) mb_substr($str, $start, $length, '8bit'); - } elseif ($length === null) { - $sub = (string) substr($str, $start); - } else { - $sub = (string) substr($str, $start, $length); - } - if ($sub !== '') { - return $sub; - } - return ''; - } - - /** - * Compare a 16-character byte string in constant time. - * - * @internal You should not use this directly from another application - * - * @param string $a - * @param string $b - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function verify_16($a, $b) - { - /* Type checks: */ - if (!is_string($a)) { - throw new TypeError('String expected'); - } - if (!is_string($b)) { - throw new TypeError('String expected'); - } - return self::hashEquals( - self::substr($a, 0, 16), - self::substr($b, 0, 16) - ); - } - - /** - * Compare a 32-character byte string in constant time. - * - * @internal You should not use this directly from another application - * - * @param string $a - * @param string $b - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function verify_32($a, $b) - { - /* Type checks: */ - if (!is_string($a)) { - throw new TypeError('String expected'); - } - if (!is_string($b)) { - throw new TypeError('String expected'); - } - return self::hashEquals( - self::substr($a, 0, 32), - self::substr($b, 0, 32) - ); - } - - /** - * Calculate $a ^ $b for two strings. - * - * @internal You should not use this directly from another application - * - * @param string $a - * @param string $b - * @return string - * @throws TypeError - */ - public static function xorStrings($a, $b) - { - /* Type checks: */ - if (!is_string($a)) { - throw new TypeError('Argument 1 must be a string'); - } - if (!is_string($b)) { - throw new TypeError('Argument 2 must be a string'); - } - - return (string) ($a ^ $b); - } - - /** - * Returns whether or not mbstring.func_overload is in effect. - * - * @internal You should not use this directly from another application - * - * @return bool - */ - protected static function isMbStringOverride() - { - static $mbstring = null; - - if ($mbstring === null) { - $mbstring = extension_loaded('mbstring') - && - ((int) (ini_get('mbstring.func_overload')) & MB_OVERLOAD_STRING); - } - /** @var bool $mbstring */ - - return $mbstring; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/X25519.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/X25519.php deleted file mode 100644 index 732bb65..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/X25519.php +++ /dev/null @@ -1,327 +0,0 @@ -> 25; - $h[0] += self::mul($carry9, 19, 5); - $h[9] -= $carry9 << 25; - /** @var int $carry1 */ - $carry1 = ($h[1] + (1 << 24)) >> 25; - $h[2] += $carry1; - $h[1] -= $carry1 << 25; - /** @var int $carry3 */ - $carry3 = ($h[3] + (1 << 24)) >> 25; - $h[4] += $carry3; - $h[3] -= $carry3 << 25; - /** @var int $carry5 */ - $carry5 = ($h[5] + (1 << 24)) >> 25; - $h[6] += $carry5; - $h[5] -= $carry5 << 25; - /** @var int $carry7 */ - $carry7 = ($h[7] + (1 << 24)) >> 25; - $h[8] += $carry7; - $h[7] -= $carry7 << 25; - - /** @var int $carry0 */ - $carry0 = ($h[0] + (1 << 25)) >> 26; - $h[1] += $carry0; - $h[0] -= $carry0 << 26; - /** @var int $carry2 */ - $carry2 = ($h[2] + (1 << 25)) >> 26; - $h[3] += $carry2; - $h[2] -= $carry2 << 26; - /** @var int $carry4 */ - $carry4 = ($h[4] + (1 << 25)) >> 26; - $h[5] += $carry4; - $h[4] -= $carry4 << 26; - /** @var int $carry6 */ - $carry6 = ($h[6] + (1 << 25)) >> 26; - $h[7] += $carry6; - $h[6] -= $carry6 << 26; - /** @var int $carry8 */ - $carry8 = ($h[8] + (1 << 25)) >> 26; - $h[9] += $carry8; - $h[8] -= $carry8 << 26; - - foreach ($h as $i => $value) { - $h[$i] = (int) $value; - } - return ParagonIE_Sodium_Core_Curve25519_Fe::fromArray($h); - } - - /** - * @internal You should not use this directly from another application - * - * Inline comments preceded by # are from libsodium's ref10 code. - * - * @param string $n - * @param string $p - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function crypto_scalarmult_curve25519_ref10($n, $p) - { - # for (i = 0;i < 32;++i) e[i] = n[i]; - $e = '' . $n; - # e[0] &= 248; - $e[0] = self::intToChr( - self::chrToInt($e[0]) & 248 - ); - # e[31] &= 127; - # e[31] |= 64; - $e[31] = self::intToChr( - (self::chrToInt($e[31]) & 127) | 64 - ); - # fe_frombytes(x1,p); - $x1 = self::fe_frombytes($p); - # fe_1(x2); - $x2 = self::fe_1(); - # fe_0(z2); - $z2 = self::fe_0(); - # fe_copy(x3,x1); - $x3 = self::fe_copy($x1); - # fe_1(z3); - $z3 = self::fe_1(); - - # swap = 0; - /** @var int $swap */ - $swap = 0; - - # for (pos = 254;pos >= 0;--pos) { - for ($pos = 254; $pos >= 0; --$pos) { - # b = e[pos / 8] >> (pos & 7); - /** @var int $b */ - $b = self::chrToInt( - $e[(int) floor($pos / 8)] - ) >> ($pos & 7); - # b &= 1; - $b &= 1; - # swap ^= b; - $swap ^= $b; - # fe_cswap(x2,x3,swap); - self::fe_cswap($x2, $x3, $swap); - # fe_cswap(z2,z3,swap); - self::fe_cswap($z2, $z3, $swap); - # swap = b; - $swap = $b; - # fe_sub(tmp0,x3,z3); - $tmp0 = self::fe_sub($x3, $z3); - # fe_sub(tmp1,x2,z2); - $tmp1 = self::fe_sub($x2, $z2); - - # fe_add(x2,x2,z2); - $x2 = self::fe_add($x2, $z2); - - # fe_add(z2,x3,z3); - $z2 = self::fe_add($x3, $z3); - - # fe_mul(z3,tmp0,x2); - $z3 = self::fe_mul($tmp0, $x2); - - # fe_mul(z2,z2,tmp1); - $z2 = self::fe_mul($z2, $tmp1); - - # fe_sq(tmp0,tmp1); - $tmp0 = self::fe_sq($tmp1); - - # fe_sq(tmp1,x2); - $tmp1 = self::fe_sq($x2); - - # fe_add(x3,z3,z2); - $x3 = self::fe_add($z3, $z2); - - # fe_sub(z2,z3,z2); - $z2 = self::fe_sub($z3, $z2); - - # fe_mul(x2,tmp1,tmp0); - $x2 = self::fe_mul($tmp1, $tmp0); - - # fe_sub(tmp1,tmp1,tmp0); - $tmp1 = self::fe_sub($tmp1, $tmp0); - - # fe_sq(z2,z2); - $z2 = self::fe_sq($z2); - - # fe_mul121666(z3,tmp1); - $z3 = self::fe_mul121666($tmp1); - - # fe_sq(x3,x3); - $x3 = self::fe_sq($x3); - - # fe_add(tmp0,tmp0,z3); - $tmp0 = self::fe_add($tmp0, $z3); - - # fe_mul(z3,x1,z2); - $z3 = self::fe_mul($x1, $z2); - - # fe_mul(z2,tmp1,tmp0); - $z2 = self::fe_mul($tmp1, $tmp0); - } - - # fe_cswap(x2,x3,swap); - self::fe_cswap($x2, $x3, $swap); - - # fe_cswap(z2,z3,swap); - self::fe_cswap($z2, $z3, $swap); - - # fe_invert(z2,z2); - $z2 = self::fe_invert($z2); - - # fe_mul(x2,x2,z2); - $x2 = self::fe_mul($x2, $z2); - # fe_tobytes(q,x2); - return self::fe_tobytes($x2); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core_Curve25519_Fe $edwardsY - * @param ParagonIE_Sodium_Core_Curve25519_Fe $edwardsZ - * @return ParagonIE_Sodium_Core_Curve25519_Fe - */ - public static function edwards_to_montgomery( - ParagonIE_Sodium_Core_Curve25519_Fe $edwardsY, - ParagonIE_Sodium_Core_Curve25519_Fe $edwardsZ - ) { - $tempX = self::fe_add($edwardsZ, $edwardsY); - $tempZ = self::fe_sub($edwardsZ, $edwardsY); - $tempZ = self::fe_invert($tempZ); - return self::fe_mul($tempX, $tempZ); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $n - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function crypto_scalarmult_curve25519_ref10_base($n) - { - # for (i = 0;i < 32;++i) e[i] = n[i]; - $e = '' . $n; - - # e[0] &= 248; - $e[0] = self::intToChr( - self::chrToInt($e[0]) & 248 - ); - - # e[31] &= 127; - # e[31] |= 64; - $e[31] = self::intToChr( - (self::chrToInt($e[31]) & 127) | 64 - ); - - $A = self::ge_scalarmult_base($e); - if ( - !($A->Y instanceof ParagonIE_Sodium_Core_Curve25519_Fe) - || - !($A->Z instanceof ParagonIE_Sodium_Core_Curve25519_Fe) - ) { - throw new TypeError('Null points encountered'); - } - $pk = self::edwards_to_montgomery($A->Y, $A->Z); - return self::fe_tobytes($pk); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/XChaCha20.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/XChaCha20.php deleted file mode 100644 index 39e717b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core/XChaCha20.php +++ /dev/null @@ -1,117 +0,0 @@ -> - */ - public static $sigma = array( - array( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), - array( 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3), - array( 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4), - array( 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8), - array( 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13), - array( 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9), - array( 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11), - array( 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10), - array( 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5), - array( 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0), - array( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), - array( 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3) - ); - - const BLOCKBYTES = 128; - const OUTBYTES = 64; - const KEYBYTES = 64; - - /** - * Turn two 32-bit integers into a fixed array representing a 64-bit integer. - * - * @internal You should not use this directly from another application - * - * @param int $high - * @param int $low - * @return ParagonIE_Sodium_Core32_Int64 - * @throws SodiumException - * @throws TypeError - */ - public static function new64($high, $low) - { - return ParagonIE_Sodium_Core32_Int64::fromInts($low, $high); - } - - /** - * Convert an arbitrary number into an SplFixedArray of two 32-bit integers - * that represents a 64-bit integer. - * - * @internal You should not use this directly from another application - * - * @param int $num - * @return ParagonIE_Sodium_Core32_Int64 - * @throws SodiumException - * @throws TypeError - */ - protected static function to64($num) - { - list($hi, $lo) = self::numericTo64BitInteger($num); - return self::new64($hi, $lo); - } - - /** - * Adds two 64-bit integers together, returning their sum as a SplFixedArray - * containing two 32-bit integers (representing a 64-bit integer). - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Int64 $x - * @param ParagonIE_Sodium_Core32_Int64 $y - * @return ParagonIE_Sodium_Core32_Int64 - */ - protected static function add64($x, $y) - { - return $x->addInt64($y); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Int64 $x - * @param ParagonIE_Sodium_Core32_Int64 $y - * @param ParagonIE_Sodium_Core32_Int64 $z - * @return ParagonIE_Sodium_Core32_Int64 - */ - public static function add364($x, $y, $z) - { - return $x->addInt64($y)->addInt64($z); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Int64 $x - * @param ParagonIE_Sodium_Core32_Int64 $y - * @return ParagonIE_Sodium_Core32_Int64 - * @throws TypeError - */ - public static function xor64(ParagonIE_Sodium_Core32_Int64 $x, ParagonIE_Sodium_Core32_Int64 $y) - { - return $x->xorInt64($y); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Int64 $x - * @param int $c - * @return ParagonIE_Sodium_Core32_Int64 - * @throws SodiumException - * @throws TypeError - */ - public static function rotr64(ParagonIE_Sodium_Core32_Int64 $x, $c) - { - return $x->rotateRight($c); - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $x - * @param int $i - * @return ParagonIE_Sodium_Core32_Int64 - * @throws SodiumException - * @throws TypeError - */ - public static function load64($x, $i) - { - /** @var int $l */ - $l = (int) ($x[$i]) - | ((int) ($x[$i+1]) << 8) - | ((int) ($x[$i+2]) << 16) - | ((int) ($x[$i+3]) << 24); - /** @var int $h */ - $h = (int) ($x[$i+4]) - | ((int) ($x[$i+5]) << 8) - | ((int) ($x[$i+6]) << 16) - | ((int) ($x[$i+7]) << 24); - return self::new64($h, $l); - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $x - * @param int $i - * @param ParagonIE_Sodium_Core32_Int64 $u - * @return void - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - * @psalm-suppress MixedArrayOffset - */ - public static function store64(SplFixedArray $x, $i, ParagonIE_Sodium_Core32_Int64 $u) - { - $v = clone $u; - $maxLength = $x->getSize() - 1; - for ($j = 0; $j < 8; ++$j) { - $k = 3 - ($j >> 1); - $x[$i] = $v->limbs[$k] & 0xff; - if (++$i > $maxLength) { - return; - } - $v->limbs[$k] >>= 8; - } - } - - /** - * This just sets the $iv static variable. - * - * @internal You should not use this directly from another application - * - * @return void - * @throws SodiumException - * @throws TypeError - */ - public static function pseudoConstructor() - { - static $called = false; - if ($called) { - return; - } - self::$iv = new SplFixedArray(8); - self::$iv[0] = self::new64(0x6a09e667, 0xf3bcc908); - self::$iv[1] = self::new64(0xbb67ae85, 0x84caa73b); - self::$iv[2] = self::new64(0x3c6ef372, 0xfe94f82b); - self::$iv[3] = self::new64(0xa54ff53a, 0x5f1d36f1); - self::$iv[4] = self::new64(0x510e527f, 0xade682d1); - self::$iv[5] = self::new64(0x9b05688c, 0x2b3e6c1f); - self::$iv[6] = self::new64(0x1f83d9ab, 0xfb41bd6b); - self::$iv[7] = self::new64(0x5be0cd19, 0x137e2179); - - $called = true; - } - - /** - * Returns a fresh BLAKE2 context. - * - * @internal You should not use this directly from another application - * - * @return SplFixedArray - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - * @psalm-suppress MixedArrayOffset - * @throws SodiumException - * @throws TypeError - */ - protected static function context() - { - $ctx = new SplFixedArray(6); - $ctx[0] = new SplFixedArray(8); // h - $ctx[1] = new SplFixedArray(2); // t - $ctx[2] = new SplFixedArray(2); // f - $ctx[3] = new SplFixedArray(256); // buf - $ctx[4] = 0; // buflen - $ctx[5] = 0; // last_node (uint8_t) - - for ($i = 8; $i--;) { - $ctx[0][$i] = self::$iv[$i]; - } - for ($i = 256; $i--;) { - $ctx[3][$i] = 0; - } - - $zero = self::new64(0, 0); - $ctx[1][0] = $zero; - $ctx[1][1] = $zero; - $ctx[2][0] = $zero; - $ctx[2][1] = $zero; - - return $ctx; - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $ctx - * @param SplFixedArray $buf - * @return void - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - * @psalm-suppress MixedAssignment - */ - protected static function compress(SplFixedArray $ctx, SplFixedArray $buf) - { - $m = new SplFixedArray(16); - $v = new SplFixedArray(16); - - for ($i = 16; $i--;) { - $m[$i] = self::load64($buf, $i << 3); - } - - for ($i = 8; $i--;) { - $v[$i] = $ctx[0][$i]; - } - - $v[ 8] = self::$iv[0]; - $v[ 9] = self::$iv[1]; - $v[10] = self::$iv[2]; - $v[11] = self::$iv[3]; - - $v[12] = self::xor64($ctx[1][0], self::$iv[4]); - $v[13] = self::xor64($ctx[1][1], self::$iv[5]); - $v[14] = self::xor64($ctx[2][0], self::$iv[6]); - $v[15] = self::xor64($ctx[2][1], self::$iv[7]); - - for ($r = 0; $r < 12; ++$r) { - $v = self::G($r, 0, 0, 4, 8, 12, $v, $m); - $v = self::G($r, 1, 1, 5, 9, 13, $v, $m); - $v = self::G($r, 2, 2, 6, 10, 14, $v, $m); - $v = self::G($r, 3, 3, 7, 11, 15, $v, $m); - $v = self::G($r, 4, 0, 5, 10, 15, $v, $m); - $v = self::G($r, 5, 1, 6, 11, 12, $v, $m); - $v = self::G($r, 6, 2, 7, 8, 13, $v, $m); - $v = self::G($r, 7, 3, 4, 9, 14, $v, $m); - } - - for ($i = 8; $i--;) { - $ctx[0][$i] = self::xor64( - $ctx[0][$i], self::xor64($v[$i], $v[$i+8]) - ); - } - } - - /** - * @internal You should not use this directly from another application - * - * @param int $r - * @param int $i - * @param int $a - * @param int $b - * @param int $c - * @param int $d - * @param SplFixedArray $v - * @param SplFixedArray $m - * @return SplFixedArray - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedArrayOffset - */ - public static function G($r, $i, $a, $b, $c, $d, SplFixedArray $v, SplFixedArray $m) - { - $v[$a] = self::add364($v[$a], $v[$b], $m[self::$sigma[$r][$i << 1]]); - $v[$d] = self::rotr64(self::xor64($v[$d], $v[$a]), 32); - $v[$c] = self::add64($v[$c], $v[$d]); - $v[$b] = self::rotr64(self::xor64($v[$b], $v[$c]), 24); - $v[$a] = self::add364($v[$a], $v[$b], $m[self::$sigma[$r][($i << 1) + 1]]); - $v[$d] = self::rotr64(self::xor64($v[$d], $v[$a]), 16); - $v[$c] = self::add64($v[$c], $v[$d]); - $v[$b] = self::rotr64(self::xor64($v[$b], $v[$c]), 63); - return $v; - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $ctx - * @param int $inc - * @return void - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - */ - public static function increment_counter($ctx, $inc) - { - if ($inc < 0) { - throw new SodiumException('Increasing by a negative number makes no sense.'); - } - $t = self::to64($inc); - # S->t is $ctx[1] in our implementation - - # S->t[0] = ( uint64_t )( t >> 0 ); - $ctx[1][0] = self::add64($ctx[1][0], $t); - - # S->t[1] += ( S->t[0] < inc ); - if (!($ctx[1][0] instanceof ParagonIE_Sodium_Core32_Int64)) { - throw new TypeError('Not an int64'); - } - /** @var ParagonIE_Sodium_Core32_Int64 $c*/ - $c = $ctx[1][0]; - if ($c->isLessThanInt($inc)) { - $ctx[1][1] = self::add64($ctx[1][1], self::to64(1)); - } - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $ctx - * @param SplFixedArray $p - * @param int $plen - * @return void - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - * @psalm-suppress MixedArrayOffset - * @psalm-suppress MixedMethodCall - * @psalm-suppress MixedOperand - */ - public static function update(SplFixedArray $ctx, SplFixedArray $p, $plen) - { - self::pseudoConstructor(); - - $offset = 0; - while ($plen > 0) { - $left = $ctx[4]; - $fill = 256 - $left; - - if ($plen > $fill) { - # memcpy( S->buf + left, in, fill ); /* Fill buffer */ - for ($i = $fill; $i--;) { - $ctx[3][$i + $left] = $p[$i + $offset]; - } - - # S->buflen += fill; - $ctx[4] += $fill; - - # blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES ); - self::increment_counter($ctx, 128); - - # blake2b_compress( S, S->buf ); /* Compress */ - self::compress($ctx, $ctx[3]); - - # memcpy( S->buf, S->buf + BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); /* Shift buffer left */ - for ($i = 128; $i--;) { - $ctx[3][$i] = $ctx[3][$i + 128]; - } - - # S->buflen -= BLAKE2B_BLOCKBYTES; - $ctx[4] -= 128; - - # in += fill; - $offset += $fill; - - # inlen -= fill; - $plen -= $fill; - } else { - for ($i = $plen; $i--;) { - $ctx[3][$i + $left] = $p[$i + $offset]; - } - $ctx[4] += $plen; - $offset += $plen; - $plen -= $plen; - } - } - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $ctx - * @param SplFixedArray $out - * @return SplFixedArray - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - * @psalm-suppress MixedArrayOffset - * @psalm-suppress MixedMethodCall - * @psalm-suppress MixedOperand - */ - public static function finish(SplFixedArray $ctx, SplFixedArray $out) - { - self::pseudoConstructor(); - if ($ctx[4] > 128) { - self::increment_counter($ctx, 128); - self::compress($ctx, $ctx[3]); - $ctx[4] -= 128; - if ($ctx[4] > 128) { - throw new SodiumException('Failed to assert that buflen <= 128 bytes'); - } - for ($i = $ctx[4]; $i--;) { - $ctx[3][$i] = $ctx[3][$i + 128]; - } - } - - self::increment_counter($ctx, $ctx[4]); - $ctx[2][0] = self::new64(0xffffffff, 0xffffffff); - - for ($i = 256 - $ctx[4]; $i--;) { - /** @var int $i */ - $ctx[3][$i + $ctx[4]] = 0; - } - - self::compress($ctx, $ctx[3]); - - $i = (int) (($out->getSize() - 1) / 8); - for (; $i >= 0; --$i) { - self::store64($out, $i << 3, $ctx[0][$i]); - } - return $out; - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray|null $key - * @param int $outlen - * @param SplFixedArray|null $salt - * @param SplFixedArray|null $personal - * @return SplFixedArray - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - * @psalm-suppress MixedMethodCall - */ - public static function init( - $key = null, - $outlen = 64, - $salt = null, - $personal = null - ) { - self::pseudoConstructor(); - $klen = 0; - - if ($key !== null) { - if (count($key) > 64) { - throw new SodiumException('Invalid key size'); - } - $klen = count($key); - } - - if ($outlen > 64) { - throw new SodiumException('Invalid output size'); - } - - $ctx = self::context(); - - $p = new SplFixedArray(64); - // Zero our param buffer... - for ($i = 64; --$i;) { - $p[$i] = 0; - } - - $p[0] = $outlen; // digest_length - $p[1] = $klen; // key_length - $p[2] = 1; // fanout - $p[3] = 1; // depth - - if ($salt instanceof SplFixedArray) { - // salt: [32] through [47] - for ($i = 0; $i < 16; ++$i) { - $p[32 + $i] = (int) $salt[$i]; - } - } - if ($personal instanceof SplFixedArray) { - // personal: [48] through [63] - for ($i = 0; $i < 16; ++$i) { - $p[48 + $i] = (int) $personal[$i]; - } - } - - $ctx[0][0] = self::xor64( - $ctx[0][0], - self::load64($p, 0) - ); - - if ($salt instanceof SplFixedArray || $personal instanceof SplFixedArray) { - // We need to do what blake2b_init_param() does: - for ($i = 1; $i < 8; ++$i) { - $ctx[0][$i] = self::xor64( - $ctx[0][$i], - self::load64($p, $i << 3) - ); - } - } - - if ($klen > 0 && $key instanceof SplFixedArray) { - $block = new SplFixedArray(128); - for ($i = 128; $i--;) { - $block[$i] = 0; - } - for ($i = $klen; $i--;) { - $block[$i] = $key[$i]; - } - self::update($ctx, $block, 128); - $ctx[4] = 128; - } - - return $ctx; - } - - /** - * Convert a string into an SplFixedArray of integers - * - * @internal You should not use this directly from another application - * - * @param string $str - * @return SplFixedArray - */ - public static function stringToSplFixedArray($str = '') - { - $values = unpack('C*', $str); - return SplFixedArray::fromArray(array_values($values)); - } - - /** - * Convert an SplFixedArray of integers into a string - * - * @internal You should not use this directly from another application - * - * @param SplFixedArray $a - * @return string - */ - public static function SplFixedArrayToString(SplFixedArray $a) - { - /** - * @var array - */ - $arr = $a->toArray(); - $c = $a->count(); - array_unshift($arr, str_repeat('C', $c)); - return (string) (call_user_func_array('pack', $arr)); - } - - /** - * @internal You should not use this directly from another application - * - * @param SplFixedArray $ctx - * @return string - * @throws TypeError - * @psalm-suppress MixedArgument - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - * @psalm-suppress MixedMethodCall - */ - public static function contextToString(SplFixedArray $ctx) - { - $str = ''; - /** @var array $ctxA */ - $ctxA = $ctx[0]->toArray(); - - # uint64_t h[8]; - for ($i = 0; $i < 8; ++$i) { - if (!($ctxA[$i] instanceof ParagonIE_Sodium_Core32_Int64)) { - throw new TypeError('Not an instance of Int64'); - } - /** @var ParagonIE_Sodium_Core32_Int64 $ctxAi */ - $ctxAi = $ctxA[$i]; - $str .= $ctxAi->toReverseString(); - } - - # uint64_t t[2]; - # uint64_t f[2]; - for ($i = 1; $i < 3; ++$i) { - /** @var array $ctxA */ - $ctxA = $ctx[$i]->toArray(); - /** @var ParagonIE_Sodium_Core32_Int64 $ctxA1 */ - $ctxA1 = $ctxA[0]; - /** @var ParagonIE_Sodium_Core32_Int64 $ctxA2 */ - $ctxA2 = $ctxA[1]; - - $str .= $ctxA1->toReverseString(); - $str .= $ctxA2->toReverseString(); - } - - # uint8_t buf[2 * 128]; - $str .= self::SplFixedArrayToString($ctx[3]); - - /** @var int $ctx4 */ - $ctx4 = $ctx[4]; - - # size_t buflen; - $str .= implode('', array( - self::intToChr($ctx4 & 0xff), - self::intToChr(($ctx4 >> 8) & 0xff), - self::intToChr(($ctx4 >> 16) & 0xff), - self::intToChr(($ctx4 >> 24) & 0xff), - "\x00\x00\x00\x00" - /* - self::intToChr(($ctx4 >> 32) & 0xff), - self::intToChr(($ctx4 >> 40) & 0xff), - self::intToChr(($ctx4 >> 48) & 0xff), - self::intToChr(($ctx4 >> 56) & 0xff) - */ - )); - # uint8_t last_node; - return $str . self::intToChr($ctx[5]) . str_repeat("\x00", 23); - } - - /** - * Creates an SplFixedArray containing other SplFixedArray elements, from - * a string (compatible with \Sodium\crypto_generichash_{init, update, final}) - * - * @internal You should not use this directly from another application - * - * @param string $string - * @return SplFixedArray - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayAssignment - */ - public static function stringToContext($string) - { - $ctx = self::context(); - - # uint64_t h[8]; - for ($i = 0; $i < 8; ++$i) { - $ctx[0][$i] = ParagonIE_Sodium_Core32_Int64::fromReverseString( - self::substr($string, (($i << 3) + 0), 8) - ); - } - - # uint64_t t[2]; - # uint64_t f[2]; - for ($i = 1; $i < 3; ++$i) { - $ctx[$i][1] = ParagonIE_Sodium_Core32_Int64::fromReverseString( - self::substr($string, 72 + (($i - 1) << 4), 8) - ); - $ctx[$i][0] = ParagonIE_Sodium_Core32_Int64::fromReverseString( - self::substr($string, 64 + (($i - 1) << 4), 8) - ); - } - - # uint8_t buf[2 * 128]; - $ctx[3] = self::stringToSplFixedArray(self::substr($string, 96, 256)); - - # uint8_t buf[2 * 128]; - $int = 0; - for ($i = 0; $i < 8; ++$i) { - $int |= self::chrToInt($string[352 + $i]) << ($i << 3); - } - $ctx[4] = $int; - - return $ctx; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/ChaCha20.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/ChaCha20.php deleted file mode 100644 index 6f8c0bf..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/ChaCha20.php +++ /dev/null @@ -1,400 +0,0 @@ - - * @throws SodiumException - * @throws TypeError - */ - protected static function quarterRound( - ParagonIE_Sodium_Core32_Int32 $a, - ParagonIE_Sodium_Core32_Int32 $b, - ParagonIE_Sodium_Core32_Int32 $c, - ParagonIE_Sodium_Core32_Int32 $d - ) { - /** @var ParagonIE_Sodium_Core32_Int32 $a */ - /** @var ParagonIE_Sodium_Core32_Int32 $b */ - /** @var ParagonIE_Sodium_Core32_Int32 $c */ - /** @var ParagonIE_Sodium_Core32_Int32 $d */ - - # a = PLUS(a,b); d = ROTATE(XOR(d,a),16); - $a = $a->addInt32($b); - $d = $d->xorInt32($a)->rotateLeft(16); - - # c = PLUS(c,d); b = ROTATE(XOR(b,c),12); - $c = $c->addInt32($d); - $b = $b->xorInt32($c)->rotateLeft(12); - - # a = PLUS(a,b); d = ROTATE(XOR(d,a), 8); - $a = $a->addInt32($b); - $d = $d->xorInt32($a)->rotateLeft(8); - - # c = PLUS(c,d); b = ROTATE(XOR(b,c), 7); - $c = $c->addInt32($d); - $b = $b->xorInt32($c)->rotateLeft(7); - - return array($a, $b, $c, $d); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_ChaCha20_Ctx $ctx - * @param string $message - * - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function encryptBytes( - ParagonIE_Sodium_Core32_ChaCha20_Ctx $ctx, - $message = '' - ) { - $bytes = self::strlen($message); - - /** @var ParagonIE_Sodium_Core32_Int32 $x0 */ - /** @var ParagonIE_Sodium_Core32_Int32 $x1 */ - /** @var ParagonIE_Sodium_Core32_Int32 $x2 */ - /** @var ParagonIE_Sodium_Core32_Int32 $x3 */ - /** @var ParagonIE_Sodium_Core32_Int32 $x4 */ - /** @var ParagonIE_Sodium_Core32_Int32 $x5 */ - /** @var ParagonIE_Sodium_Core32_Int32 $x6 */ - /** @var ParagonIE_Sodium_Core32_Int32 $x7 */ - /** @var ParagonIE_Sodium_Core32_Int32 $x8 */ - /** @var ParagonIE_Sodium_Core32_Int32 $x9 */ - /** @var ParagonIE_Sodium_Core32_Int32 $x10 */ - /** @var ParagonIE_Sodium_Core32_Int32 $x11 */ - /** @var ParagonIE_Sodium_Core32_Int32 $x12 */ - /** @var ParagonIE_Sodium_Core32_Int32 $x13 */ - /** @var ParagonIE_Sodium_Core32_Int32 $x14 */ - /** @var ParagonIE_Sodium_Core32_Int32 $x15 */ - - /* - j0 = ctx->input[0]; - j1 = ctx->input[1]; - j2 = ctx->input[2]; - j3 = ctx->input[3]; - j4 = ctx->input[4]; - j5 = ctx->input[5]; - j6 = ctx->input[6]; - j7 = ctx->input[7]; - j8 = ctx->input[8]; - j9 = ctx->input[9]; - j10 = ctx->input[10]; - j11 = ctx->input[11]; - j12 = ctx->input[12]; - j13 = ctx->input[13]; - j14 = ctx->input[14]; - j15 = ctx->input[15]; - */ - /** @var ParagonIE_Sodium_Core32_Int32 $j0 */ - $j0 = $ctx[0]; - /** @var ParagonIE_Sodium_Core32_Int32 $j1 */ - $j1 = $ctx[1]; - /** @var ParagonIE_Sodium_Core32_Int32 $j2 */ - $j2 = $ctx[2]; - /** @var ParagonIE_Sodium_Core32_Int32 $j3 */ - $j3 = $ctx[3]; - /** @var ParagonIE_Sodium_Core32_Int32 $j4 */ - $j4 = $ctx[4]; - /** @var ParagonIE_Sodium_Core32_Int32 $j5 */ - $j5 = $ctx[5]; - /** @var ParagonIE_Sodium_Core32_Int32 $j6 */ - $j6 = $ctx[6]; - /** @var ParagonIE_Sodium_Core32_Int32 $j7 */ - $j7 = $ctx[7]; - /** @var ParagonIE_Sodium_Core32_Int32 $j8 */ - $j8 = $ctx[8]; - /** @var ParagonIE_Sodium_Core32_Int32 $j9 */ - $j9 = $ctx[9]; - /** @var ParagonIE_Sodium_Core32_Int32 $j10 */ - $j10 = $ctx[10]; - /** @var ParagonIE_Sodium_Core32_Int32 $j11 */ - $j11 = $ctx[11]; - /** @var ParagonIE_Sodium_Core32_Int32 $j12 */ - $j12 = $ctx[12]; - /** @var ParagonIE_Sodium_Core32_Int32 $j13 */ - $j13 = $ctx[13]; - /** @var ParagonIE_Sodium_Core32_Int32 $j14 */ - $j14 = $ctx[14]; - /** @var ParagonIE_Sodium_Core32_Int32 $j15 */ - $j15 = $ctx[15]; - - $c = ''; - for (;;) { - if ($bytes < 64) { - $message .= str_repeat("\x00", 64 - $bytes); - } - - $x0 = clone $j0; - $x1 = clone $j1; - $x2 = clone $j2; - $x3 = clone $j3; - $x4 = clone $j4; - $x5 = clone $j5; - $x6 = clone $j6; - $x7 = clone $j7; - $x8 = clone $j8; - $x9 = clone $j9; - $x10 = clone $j10; - $x11 = clone $j11; - $x12 = clone $j12; - $x13 = clone $j13; - $x14 = clone $j14; - $x15 = clone $j15; - - # for (i = 20; i > 0; i -= 2) { - for ($i = 20; $i > 0; $i -= 2) { - # QUARTERROUND( x0, x4, x8, x12) - list($x0, $x4, $x8, $x12) = self::quarterRound($x0, $x4, $x8, $x12); - - # QUARTERROUND( x1, x5, x9, x13) - list($x1, $x5, $x9, $x13) = self::quarterRound($x1, $x5, $x9, $x13); - - # QUARTERROUND( x2, x6, x10, x14) - list($x2, $x6, $x10, $x14) = self::quarterRound($x2, $x6, $x10, $x14); - - # QUARTERROUND( x3, x7, x11, x15) - list($x3, $x7, $x11, $x15) = self::quarterRound($x3, $x7, $x11, $x15); - - # QUARTERROUND( x0, x5, x10, x15) - list($x0, $x5, $x10, $x15) = self::quarterRound($x0, $x5, $x10, $x15); - - # QUARTERROUND( x1, x6, x11, x12) - list($x1, $x6, $x11, $x12) = self::quarterRound($x1, $x6, $x11, $x12); - - # QUARTERROUND( x2, x7, x8, x13) - list($x2, $x7, $x8, $x13) = self::quarterRound($x2, $x7, $x8, $x13); - - # QUARTERROUND( x3, x4, x9, x14) - list($x3, $x4, $x9, $x14) = self::quarterRound($x3, $x4, $x9, $x14); - } - /* - x0 = PLUS(x0, j0); - x1 = PLUS(x1, j1); - x2 = PLUS(x2, j2); - x3 = PLUS(x3, j3); - x4 = PLUS(x4, j4); - x5 = PLUS(x5, j5); - x6 = PLUS(x6, j6); - x7 = PLUS(x7, j7); - x8 = PLUS(x8, j8); - x9 = PLUS(x9, j9); - x10 = PLUS(x10, j10); - x11 = PLUS(x11, j11); - x12 = PLUS(x12, j12); - x13 = PLUS(x13, j13); - x14 = PLUS(x14, j14); - x15 = PLUS(x15, j15); - */ - $x0 = $x0->addInt32($j0); - $x1 = $x1->addInt32($j1); - $x2 = $x2->addInt32($j2); - $x3 = $x3->addInt32($j3); - $x4 = $x4->addInt32($j4); - $x5 = $x5->addInt32($j5); - $x6 = $x6->addInt32($j6); - $x7 = $x7->addInt32($j7); - $x8 = $x8->addInt32($j8); - $x9 = $x9->addInt32($j9); - $x10 = $x10->addInt32($j10); - $x11 = $x11->addInt32($j11); - $x12 = $x12->addInt32($j12); - $x13 = $x13->addInt32($j13); - $x14 = $x14->addInt32($j14); - $x15 = $x15->addInt32($j15); - - /* - x0 = XOR(x0, LOAD32_LE(m + 0)); - x1 = XOR(x1, LOAD32_LE(m + 4)); - x2 = XOR(x2, LOAD32_LE(m + 8)); - x3 = XOR(x3, LOAD32_LE(m + 12)); - x4 = XOR(x4, LOAD32_LE(m + 16)); - x5 = XOR(x5, LOAD32_LE(m + 20)); - x6 = XOR(x6, LOAD32_LE(m + 24)); - x7 = XOR(x7, LOAD32_LE(m + 28)); - x8 = XOR(x8, LOAD32_LE(m + 32)); - x9 = XOR(x9, LOAD32_LE(m + 36)); - x10 = XOR(x10, LOAD32_LE(m + 40)); - x11 = XOR(x11, LOAD32_LE(m + 44)); - x12 = XOR(x12, LOAD32_LE(m + 48)); - x13 = XOR(x13, LOAD32_LE(m + 52)); - x14 = XOR(x14, LOAD32_LE(m + 56)); - x15 = XOR(x15, LOAD32_LE(m + 60)); - */ - $x0 = $x0->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 0, 4))); - $x1 = $x1->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 4, 4))); - $x2 = $x2->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 8, 4))); - $x3 = $x3->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 12, 4))); - $x4 = $x4->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 16, 4))); - $x5 = $x5->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 20, 4))); - $x6 = $x6->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 24, 4))); - $x7 = $x7->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 28, 4))); - $x8 = $x8->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 32, 4))); - $x9 = $x9->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 36, 4))); - $x10 = $x10->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 40, 4))); - $x11 = $x11->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 44, 4))); - $x12 = $x12->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 48, 4))); - $x13 = $x13->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 52, 4))); - $x14 = $x14->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 56, 4))); - $x15 = $x15->xorInt32(ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 60, 4))); - - /* - j12 = PLUSONE(j12); - if (!j12) { - j13 = PLUSONE(j13); - } - */ - /** @var ParagonIE_Sodium_Core32_Int32 $j12 */ - $j12 = $j12->addInt(1); - if ($j12->limbs[0] === 0 && $j12->limbs[1] === 0) { - $j13 = $j13->addInt(1); - } - - /* - STORE32_LE(c + 0, x0); - STORE32_LE(c + 4, x1); - STORE32_LE(c + 8, x2); - STORE32_LE(c + 12, x3); - STORE32_LE(c + 16, x4); - STORE32_LE(c + 20, x5); - STORE32_LE(c + 24, x6); - STORE32_LE(c + 28, x7); - STORE32_LE(c + 32, x8); - STORE32_LE(c + 36, x9); - STORE32_LE(c + 40, x10); - STORE32_LE(c + 44, x11); - STORE32_LE(c + 48, x12); - STORE32_LE(c + 52, x13); - STORE32_LE(c + 56, x14); - STORE32_LE(c + 60, x15); - */ - - $block = $x0->toReverseString() . - $x1->toReverseString() . - $x2->toReverseString() . - $x3->toReverseString() . - $x4->toReverseString() . - $x5->toReverseString() . - $x6->toReverseString() . - $x7->toReverseString() . - $x8->toReverseString() . - $x9->toReverseString() . - $x10->toReverseString() . - $x11->toReverseString() . - $x12->toReverseString() . - $x13->toReverseString() . - $x14->toReverseString() . - $x15->toReverseString(); - - /* Partial block */ - if ($bytes < 64) { - $c .= self::substr($block, 0, $bytes); - break; - } - - /* Full block */ - $c .= $block; - $bytes -= 64; - if ($bytes <= 0) { - break; - } - $message = self::substr($message, 64); - } - /* end for(;;) loop */ - - $ctx[12] = $j12; - $ctx[13] = $j13; - return $c; - } - - /** - * @internal You should not use this directly from another application - * - * @param int $len - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function stream($len = 64, $nonce = '', $key = '') - { - return self::encryptBytes( - new ParagonIE_Sodium_Core32_ChaCha20_Ctx($key, $nonce), - str_repeat("\x00", $len) - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $len - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function ietfStream($len, $nonce = '', $key = '') - { - return self::encryptBytes( - new ParagonIE_Sodium_Core32_ChaCha20_IetfCtx($key, $nonce), - str_repeat("\x00", $len) - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message - * @param string $nonce - * @param string $key - * @param string $ic - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function ietfStreamXorIc($message, $nonce = '', $key = '', $ic = '') - { - return self::encryptBytes( - new ParagonIE_Sodium_Core32_ChaCha20_IetfCtx($key, $nonce, $ic), - $message - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message - * @param string $nonce - * @param string $key - * @param string $ic - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function streamXorIc($message, $nonce = '', $key = '', $ic = '') - { - return self::encryptBytes( - new ParagonIE_Sodium_Core32_ChaCha20_Ctx($key, $nonce, $ic), - $message - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/ChaCha20/Ctx.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/ChaCha20/Ctx.php deleted file mode 100644 index 3f47d03..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/ChaCha20/Ctx.php +++ /dev/null @@ -1,126 +0,0 @@ - - */ - protected $container; - - /** - * ParagonIE_Sodium_Core_ChaCha20_Ctx constructor. - * - * @internal You should not use this directly from another application - * - * @param string $key ChaCha20 key. - * @param string $iv Initialization Vector (a.k.a. nonce). - * @param string $counter The initial counter value. - * Defaults to 8 0x00 bytes. - * @throws InvalidArgumentException - * @throws SodiumException - * @throws TypeError - */ - public function __construct($key = '', $iv = '', $counter = '') - { - if (self::strlen($key) !== 32) { - throw new InvalidArgumentException('ChaCha20 expects a 256-bit key.'); - } - if (self::strlen($iv) !== 8) { - throw new InvalidArgumentException('ChaCha20 expects a 64-bit nonce.'); - } - $this->container = new SplFixedArray(16); - - /* "expand 32-byte k" as per ChaCha20 spec */ - $this->container[0] = new ParagonIE_Sodium_Core32_Int32(array(0x6170, 0x7865)); - $this->container[1] = new ParagonIE_Sodium_Core32_Int32(array(0x3320, 0x646e)); - $this->container[2] = new ParagonIE_Sodium_Core32_Int32(array(0x7962, 0x2d32)); - $this->container[3] = new ParagonIE_Sodium_Core32_Int32(array(0x6b20, 0x6574)); - - $this->container[4] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 0, 4)); - $this->container[5] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 4, 4)); - $this->container[6] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 8, 4)); - $this->container[7] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 12, 4)); - $this->container[8] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 16, 4)); - $this->container[9] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 20, 4)); - $this->container[10] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 24, 4)); - $this->container[11] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 28, 4)); - - if (empty($counter)) { - $this->container[12] = new ParagonIE_Sodium_Core32_Int32(); - $this->container[13] = new ParagonIE_Sodium_Core32_Int32(); - } else { - $this->container[12] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($counter, 0, 4)); - $this->container[13] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($counter, 4, 4)); - } - $this->container[14] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($iv, 0, 4)); - $this->container[15] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($iv, 4, 4)); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $offset - * @param int|ParagonIE_Sodium_Core32_Int32 $value - * @return void - */ - public function offsetSet($offset, $value) - { - if (!is_int($offset)) { - throw new InvalidArgumentException('Expected an integer'); - } - if ($value instanceof ParagonIE_Sodium_Core32_Int32) { - /* - } elseif (is_int($value)) { - $value = ParagonIE_Sodium_Core32_Int32::fromInt($value); - */ - } else { - throw new InvalidArgumentException('Expected an integer'); - } - $this->container[$offset] = $value; - } - - /** - * @internal You should not use this directly from another application - * - * @param int $offset - * @return bool - * @psalm-suppress MixedArrayOffset - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $offset - * @return void - * @psalm-suppress MixedArrayOffset - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $offset - * @return mixed|null - * @psalm-suppress MixedArrayOffset - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) - ? $this->container[$offset] - : null; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/ChaCha20/IetfCtx.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/ChaCha20/IetfCtx.php deleted file mode 100644 index eea08de..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/ChaCha20/IetfCtx.php +++ /dev/null @@ -1,39 +0,0 @@ -container[12] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($counter, 0, 4)); - } - $this->container[13] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($iv, 0, 4)); - $this->container[14] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($iv, 4, 4)); - $this->container[15] = ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($iv, 8, 4)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519.php deleted file mode 100644 index d6d700e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519.php +++ /dev/null @@ -1,3196 +0,0 @@ -addInt32($g[$i]); - } - /** @var array $arr */ - return ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray($arr); - } - - /** - * Constant-time conditional move. - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $f - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $g - * @param int $b - * @return ParagonIE_Sodium_Core32_Curve25519_Fe - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedMethodCall - */ - public static function fe_cmov( - ParagonIE_Sodium_Core32_Curve25519_Fe $f, - ParagonIE_Sodium_Core32_Curve25519_Fe $g, - $b = 0 - ) { - /** @var array $h */ - $h = array(); - for ($i = 0; $i < 10; ++$i) { - if (!($f[$i] instanceof ParagonIE_Sodium_Core32_Int32)) { - throw new TypeError('Expected Int32'); - } - if (!($g[$i] instanceof ParagonIE_Sodium_Core32_Int32)) { - throw new TypeError('Expected Int32'); - } - $h[$i] = $f[$i]->xorInt32( - $f[$i]->xorInt32($g[$i])->mask($b) - ); - } - /** @var array $h */ - return ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray($h); - } - - /** - * Create a copy of a field element. - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $f - * @return ParagonIE_Sodium_Core32_Curve25519_Fe - */ - public static function fe_copy(ParagonIE_Sodium_Core32_Curve25519_Fe $f) - { - $h = clone $f; - return $h; - } - - /** - * Give: 32-byte string. - * Receive: A field element object to use for internal calculations. - * - * @internal You should not use this directly from another application - * - * @param string $s - * @return ParagonIE_Sodium_Core32_Curve25519_Fe - * @throws RangeException - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedMethodCall - */ - public static function fe_frombytes($s) - { - if (self::strlen($s) !== 32) { - throw new RangeException('Expected a 32-byte string.'); - } - /** @var ParagonIE_Sodium_Core32_Int32 $h0 */ - $h0 = ParagonIE_Sodium_Core32_Int32::fromInt( - self::load_4($s) - ); - /** @var ParagonIE_Sodium_Core32_Int32 $h1 */ - $h1 = ParagonIE_Sodium_Core32_Int32::fromInt( - self::load_3(self::substr($s, 4, 3)) << 6 - ); - /** @var ParagonIE_Sodium_Core32_Int32 $h2 */ - $h2 = ParagonIE_Sodium_Core32_Int32::fromInt( - self::load_3(self::substr($s, 7, 3)) << 5 - ); - /** @var ParagonIE_Sodium_Core32_Int32 $h3 */ - $h3 = ParagonIE_Sodium_Core32_Int32::fromInt( - self::load_3(self::substr($s, 10, 3)) << 3 - ); - /** @var ParagonIE_Sodium_Core32_Int32 $h4 */ - $h4 = ParagonIE_Sodium_Core32_Int32::fromInt( - self::load_3(self::substr($s, 13, 3)) << 2 - ); - /** @var ParagonIE_Sodium_Core32_Int32 $h5 */ - $h5 = ParagonIE_Sodium_Core32_Int32::fromInt( - self::load_4(self::substr($s, 16, 4)) - ); - /** @var ParagonIE_Sodium_Core32_Int32 $h6 */ - $h6 = ParagonIE_Sodium_Core32_Int32::fromInt( - self::load_3(self::substr($s, 20, 3)) << 7 - ); - /** @var ParagonIE_Sodium_Core32_Int32 $h7 */ - $h7 = ParagonIE_Sodium_Core32_Int32::fromInt( - self::load_3(self::substr($s, 23, 3)) << 5 - ); - /** @var ParagonIE_Sodium_Core32_Int32 $h8 */ - $h8 = ParagonIE_Sodium_Core32_Int32::fromInt( - self::load_3(self::substr($s, 26, 3)) << 4 - ); - /** @var ParagonIE_Sodium_Core32_Int32 $h9 */ - $h9 = ParagonIE_Sodium_Core32_Int32::fromInt( - (self::load_3(self::substr($s, 29, 3)) & 8388607) << 2 - ); - - $carry9 = $h9->addInt(1 << 24)->shiftRight(25); - $h0 = $h0->addInt32($carry9->mulInt(19, 5)); - $h9 = $h9->subInt32($carry9->shiftLeft(25)); - - $carry1 = $h1->addInt(1 << 24)->shiftRight(25); - $h2 = $h2->addInt32($carry1); - $h1 = $h1->subInt32($carry1->shiftLeft(25)); - - $carry3 = $h3->addInt(1 << 24)->shiftRight(25); - $h4 = $h4->addInt32($carry3); - $h3 = $h3->subInt32($carry3->shiftLeft(25)); - - $carry5 = $h5->addInt(1 << 24)->shiftRight(25); - $h6 = $h6->addInt32($carry5); - $h5 = $h5->subInt32($carry5->shiftLeft(25)); - - $carry7 = $h7->addInt(1 << 24)->shiftRight(25); - $h8 = $h8->addInt32($carry7); - $h7 = $h7->subInt32($carry7->shiftLeft(25)); - - $carry0 = $h0->addInt(1 << 25)->shiftRight(26); - $h1 = $h1->addInt32($carry0); - $h0 = $h0->subInt32($carry0->shiftLeft(26)); - - $carry2 = $h2->addInt(1 << 25)->shiftRight(26); - $h3 = $h3->addInt32($carry2); - $h2 = $h2->subInt32($carry2->shiftLeft(26)); - - $carry4 = $h4->addInt(1 << 25)->shiftRight(26); - $h5 = $h5->addInt32($carry4); - $h4 = $h4->subInt32($carry4->shiftLeft(26)); - - $carry6 = $h6->addInt(1 << 25)->shiftRight(26); - $h7 = $h7->addInt32($carry6); - $h6 = $h6->subInt32($carry6->shiftLeft(26)); - - $carry8 = $h8->addInt(1 << 25)->shiftRight(26); - $h9 = $h9->addInt32($carry8); - $h8 = $h8->subInt32($carry8->shiftLeft(26)); - - return ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray( - array($h0, $h1, $h2,$h3, $h4, $h5, $h6, $h7, $h8, $h9) - ); - } - - /** - * Convert a field element to a byte string. - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $h - * @return string - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedMethodCall - */ - public static function fe_tobytes(ParagonIE_Sodium_Core32_Curve25519_Fe $h) - { - /** - * @var ParagonIE_Sodium_Core32_Int64[] $f - * @var ParagonIE_Sodium_Core32_Int64 $q - */ - $f = array(); - - for ($i = 0; $i < 10; ++$i) { - $f[$i] = $h[$i]->toInt64(); - } - - $q = $f[9]->mulInt(19, 5)->addInt(1 << 14)->shiftRight(25) - ->addInt64($f[0])->shiftRight(26) - ->addInt64($f[1])->shiftRight(25) - ->addInt64($f[2])->shiftRight(26) - ->addInt64($f[3])->shiftRight(25) - ->addInt64($f[4])->shiftRight(26) - ->addInt64($f[5])->shiftRight(25) - ->addInt64($f[6])->shiftRight(26) - ->addInt64($f[7])->shiftRight(25) - ->addInt64($f[8])->shiftRight(26) - ->addInt64($f[9])->shiftRight(25); - - $f[0] = $f[0]->addInt64($q->mulInt(19, 5)); - - $carry0 = $f[0]->shiftRight(26); - $f[1] = $f[1]->addInt64($carry0); - $f[0] = $f[0]->subInt64($carry0->shiftLeft(26)); - - $carry1 = $f[1]->shiftRight(25); - $f[2] = $f[2]->addInt64($carry1); - $f[1] = $f[1]->subInt64($carry1->shiftLeft(25)); - - $carry2 = $f[2]->shiftRight(26); - $f[3] = $f[3]->addInt64($carry2); - $f[2] = $f[2]->subInt64($carry2->shiftLeft(26)); - - $carry3 = $f[3]->shiftRight(25); - $f[4] = $f[4]->addInt64($carry3); - $f[3] = $f[3]->subInt64($carry3->shiftLeft(25)); - - $carry4 = $f[4]->shiftRight(26); - $f[5] = $f[5]->addInt64($carry4); - $f[4] = $f[4]->subInt64($carry4->shiftLeft(26)); - - $carry5 = $f[5]->shiftRight(25); - $f[6] = $f[6]->addInt64($carry5); - $f[5] = $f[5]->subInt64($carry5->shiftLeft(25)); - - $carry6 = $f[6]->shiftRight(26); - $f[7] = $f[7]->addInt64($carry6); - $f[6] = $f[6]->subInt64($carry6->shiftLeft(26)); - - $carry7 = $f[7]->shiftRight(25); - $f[8] = $f[8]->addInt64($carry7); - $f[7] = $f[7]->subInt64($carry7->shiftLeft(25)); - - $carry8 = $f[8]->shiftRight(26); - $f[9] = $f[9]->addInt64($carry8); - $f[8] = $f[8]->subInt64($carry8->shiftLeft(26)); - - $carry9 = $f[9]->shiftRight(25); - $f[9] = $f[9]->subInt64($carry9->shiftLeft(25)); - - /** @var int $h0 */ - $h0 = $f[0]->toInt32()->toInt(); - /** @var int $h1 */ - $h1 = $f[1]->toInt32()->toInt(); - /** @var int $h2 */ - $h2 = $f[2]->toInt32()->toInt(); - /** @var int $h3 */ - $h3 = $f[3]->toInt32()->toInt(); - /** @var int $h4 */ - $h4 = $f[4]->toInt32()->toInt(); - /** @var int $h5 */ - $h5 = $f[5]->toInt32()->toInt(); - /** @var int $h6 */ - $h6 = $f[6]->toInt32()->toInt(); - /** @var int $h7 */ - $h7 = $f[7]->toInt32()->toInt(); - /** @var int $h8 */ - $h8 = $f[8]->toInt32()->toInt(); - /** @var int $h9 */ - $h9 = $f[9]->toInt32()->toInt(); - - /** - * @var array - */ - $s = array( - (int) (($h0 >> 0) & 0xff), - (int) (($h0 >> 8) & 0xff), - (int) (($h0 >> 16) & 0xff), - (int) ((($h0 >> 24) | ($h1 << 2)) & 0xff), - (int) (($h1 >> 6) & 0xff), - (int) (($h1 >> 14) & 0xff), - (int) ((($h1 >> 22) | ($h2 << 3)) & 0xff), - (int) (($h2 >> 5) & 0xff), - (int) (($h2 >> 13) & 0xff), - (int) ((($h2 >> 21) | ($h3 << 5)) & 0xff), - (int) (($h3 >> 3) & 0xff), - (int) (($h3 >> 11) & 0xff), - (int) ((($h3 >> 19) | ($h4 << 6)) & 0xff), - (int) (($h4 >> 2) & 0xff), - (int) (($h4 >> 10) & 0xff), - (int) (($h4 >> 18) & 0xff), - (int) (($h5 >> 0) & 0xff), - (int) (($h5 >> 8) & 0xff), - (int) (($h5 >> 16) & 0xff), - (int) ((($h5 >> 24) | ($h6 << 1)) & 0xff), - (int) (($h6 >> 7) & 0xff), - (int) (($h6 >> 15) & 0xff), - (int) ((($h6 >> 23) | ($h7 << 3)) & 0xff), - (int) (($h7 >> 5) & 0xff), - (int) (($h7 >> 13) & 0xff), - (int) ((($h7 >> 21) | ($h8 << 4)) & 0xff), - (int) (($h8 >> 4) & 0xff), - (int) (($h8 >> 12) & 0xff), - (int) ((($h8 >> 20) | ($h9 << 6)) & 0xff), - (int) (($h9 >> 2) & 0xff), - (int) (($h9 >> 10) & 0xff), - (int) (($h9 >> 18) & 0xff) - ); - return self::intArrayToString($s); - } - - /** - * Is a field element negative? (1 = yes, 0 = no. Used in calculations.) - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $f - * @return int - * @throws SodiumException - * @throws TypeError - */ - public static function fe_isnegative(ParagonIE_Sodium_Core32_Curve25519_Fe $f) - { - $str = self::fe_tobytes($f); - return (int) (self::chrToInt($str[0]) & 1); - } - - /** - * Returns 0 if this field element results in all NUL bytes. - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $f - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function fe_isnonzero(ParagonIE_Sodium_Core32_Curve25519_Fe $f) - { - static $zero; - if ($zero === null) { - $zero = str_repeat("\x00", 32); - } - /** @var string $str */ - $str = self::fe_tobytes($f); - /** @var string $zero */ - return !self::verify_32($str, $zero); - } - - /** - * Multiply two field elements - * - * h = f * g - * - * @internal You should not use this directly from another application - * - * @security Is multiplication a source of timing leaks? If so, can we do - * anything to prevent that from happening? - * - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $f - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $g - * @return ParagonIE_Sodium_Core32_Curve25519_Fe - * @throws SodiumException - * @throws TypeError - */ - public static function fe_mul( - ParagonIE_Sodium_Core32_Curve25519_Fe $f, - ParagonIE_Sodium_Core32_Curve25519_Fe $g - ) { - /** - * @var ParagonIE_Sodium_Core32_Int32[] $f - * @var ParagonIE_Sodium_Core32_Int32[] $g - * @var ParagonIE_Sodium_Core32_Int64 $f0 - * @var ParagonIE_Sodium_Core32_Int64 $f1 - * @var ParagonIE_Sodium_Core32_Int64 $f2 - * @var ParagonIE_Sodium_Core32_Int64 $f3 - * @var ParagonIE_Sodium_Core32_Int64 $f4 - * @var ParagonIE_Sodium_Core32_Int64 $f5 - * @var ParagonIE_Sodium_Core32_Int64 $f6 - * @var ParagonIE_Sodium_Core32_Int64 $f7 - * @var ParagonIE_Sodium_Core32_Int64 $f8 - * @var ParagonIE_Sodium_Core32_Int64 $f9 - * @var ParagonIE_Sodium_Core32_Int64 $g0 - * @var ParagonIE_Sodium_Core32_Int64 $g1 - * @var ParagonIE_Sodium_Core32_Int64 $g2 - * @var ParagonIE_Sodium_Core32_Int64 $g3 - * @var ParagonIE_Sodium_Core32_Int64 $g4 - * @var ParagonIE_Sodium_Core32_Int64 $g5 - * @var ParagonIE_Sodium_Core32_Int64 $g6 - * @var ParagonIE_Sodium_Core32_Int64 $g7 - * @var ParagonIE_Sodium_Core32_Int64 $g8 - * @var ParagonIE_Sodium_Core32_Int64 $g9 - */ - $f0 = $f[0]->toInt64(); - $f1 = $f[1]->toInt64(); - $f2 = $f[2]->toInt64(); - $f3 = $f[3]->toInt64(); - $f4 = $f[4]->toInt64(); - $f5 = $f[5]->toInt64(); - $f6 = $f[6]->toInt64(); - $f7 = $f[7]->toInt64(); - $f8 = $f[8]->toInt64(); - $f9 = $f[9]->toInt64(); - $g0 = $g[0]->toInt64(); - $g1 = $g[1]->toInt64(); - $g2 = $g[2]->toInt64(); - $g3 = $g[3]->toInt64(); - $g4 = $g[4]->toInt64(); - $g5 = $g[5]->toInt64(); - $g6 = $g[6]->toInt64(); - $g7 = $g[7]->toInt64(); - $g8 = $g[8]->toInt64(); - $g9 = $g[9]->toInt64(); - $g1_19 = $g1->mulInt(19, 5); /* 2^4 <= 19 <= 2^5, but we only want 5 bits */ - $g2_19 = $g2->mulInt(19, 5); - $g3_19 = $g3->mulInt(19, 5); - $g4_19 = $g4->mulInt(19, 5); - $g5_19 = $g5->mulInt(19, 5); - $g6_19 = $g6->mulInt(19, 5); - $g7_19 = $g7->mulInt(19, 5); - $g8_19 = $g8->mulInt(19, 5); - $g9_19 = $g9->mulInt(19, 5); - /** @var ParagonIE_Sodium_Core32_Int64 $f1_2 */ - $f1_2 = $f1->shiftLeft(1); - /** @var ParagonIE_Sodium_Core32_Int64 $f3_2 */ - $f3_2 = $f3->shiftLeft(1); - /** @var ParagonIE_Sodium_Core32_Int64 $f5_2 */ - $f5_2 = $f5->shiftLeft(1); - /** @var ParagonIE_Sodium_Core32_Int64 $f7_2 */ - $f7_2 = $f7->shiftLeft(1); - /** @var ParagonIE_Sodium_Core32_Int64 $f9_2 */ - $f9_2 = $f9->shiftLeft(1); - $f0g0 = $f0->mulInt64($g0, 27); - $f0g1 = $f0->mulInt64($g1, 27); - $f0g2 = $f0->mulInt64($g2, 27); - $f0g3 = $f0->mulInt64($g3, 27); - $f0g4 = $f0->mulInt64($g4, 27); - $f0g5 = $f0->mulInt64($g5, 27); - $f0g6 = $f0->mulInt64($g6, 27); - $f0g7 = $f0->mulInt64($g7, 27); - $f0g8 = $f0->mulInt64($g8, 27); - $f0g9 = $f0->mulInt64($g9, 27); - $f1g0 = $f1->mulInt64($g0, 27); - $f1g1_2 = $f1_2->mulInt64($g1, 27); - $f1g2 = $f1->mulInt64($g2, 27); - $f1g3_2 = $f1_2->mulInt64($g3, 27); - $f1g4 = $f1->mulInt64($g4, 30); - $f1g5_2 = $f1_2->mulInt64($g5, 30); - $f1g6 = $f1->mulInt64($g6, 30); - $f1g7_2 = $f1_2->mulInt64($g7, 30); - $f1g8 = $f1->mulInt64($g8, 30); - $f1g9_38 = $g9_19->mulInt64($f1_2, 30); - $f2g0 = $f2->mulInt64($g0, 30); - $f2g1 = $f2->mulInt64($g1, 29); - $f2g2 = $f2->mulInt64($g2, 30); - $f2g3 = $f2->mulInt64($g3, 29); - $f2g4 = $f2->mulInt64($g4, 30); - $f2g5 = $f2->mulInt64($g5, 29); - $f2g6 = $f2->mulInt64($g6, 30); - $f2g7 = $f2->mulInt64($g7, 29); - $f2g8_19 = $g8_19->mulInt64($f2, 30); - $f2g9_19 = $g9_19->mulInt64($f2, 30); - $f3g0 = $f3->mulInt64($g0, 30); - $f3g1_2 = $f3_2->mulInt64($g1, 30); - $f3g2 = $f3->mulInt64($g2, 30); - $f3g3_2 = $f3_2->mulInt64($g3, 30); - $f3g4 = $f3->mulInt64($g4, 30); - $f3g5_2 = $f3_2->mulInt64($g5, 30); - $f3g6 = $f3->mulInt64($g6, 30); - $f3g7_38 = $g7_19->mulInt64($f3_2, 30); - $f3g8_19 = $g8_19->mulInt64($f3, 30); - $f3g9_38 = $g9_19->mulInt64($f3_2, 30); - $f4g0 = $f4->mulInt64($g0, 30); - $f4g1 = $f4->mulInt64($g1, 30); - $f4g2 = $f4->mulInt64($g2, 30); - $f4g3 = $f4->mulInt64($g3, 30); - $f4g4 = $f4->mulInt64($g4, 30); - $f4g5 = $f4->mulInt64($g5, 30); - $f4g6_19 = $g6_19->mulInt64($f4, 30); - $f4g7_19 = $g7_19->mulInt64($f4, 30); - $f4g8_19 = $g8_19->mulInt64($f4, 30); - $f4g9_19 = $g9_19->mulInt64($f4, 30); - $f5g0 = $f5->mulInt64($g0, 30); - $f5g1_2 = $f5_2->mulInt64($g1, 30); - $f5g2 = $f5->mulInt64($g2, 30); - $f5g3_2 = $f5_2->mulInt64($g3, 30); - $f5g4 = $f5->mulInt64($g4, 30); - $f5g5_38 = $g5_19->mulInt64($f5_2, 30); - $f5g6_19 = $g6_19->mulInt64($f5, 30); - $f5g7_38 = $g7_19->mulInt64($f5_2, 30); - $f5g8_19 = $g8_19->mulInt64($f5, 30); - $f5g9_38 = $g9_19->mulInt64($f5_2, 30); - $f6g0 = $f6->mulInt64($g0, 30); - $f6g1 = $f6->mulInt64($g1, 30); - $f6g2 = $f6->mulInt64($g2, 30); - $f6g3 = $f6->mulInt64($g3, 30); - $f6g4_19 = $g4_19->mulInt64($f6, 30); - $f6g5_19 = $g5_19->mulInt64($f6, 30); - $f6g6_19 = $g6_19->mulInt64($f6, 30); - $f6g7_19 = $g7_19->mulInt64($f6, 30); - $f6g8_19 = $g8_19->mulInt64($f6, 30); - $f6g9_19 = $g9_19->mulInt64($f6, 30); - $f7g0 = $f7->mulInt64($g0, 30); - $f7g1_2 = $g1->mulInt64($f7_2, 30); - $f7g2 = $f7->mulInt64($g2, 30); - $f7g3_38 = $g3_19->mulInt64($f7_2, 30); - $f7g4_19 = $g4_19->mulInt64($f7, 30); - $f7g5_38 = $g5_19->mulInt64($f7_2, 30); - $f7g6_19 = $g6_19->mulInt64($f7, 30); - $f7g7_38 = $g7_19->mulInt64($f7_2, 30); - $f7g8_19 = $g8_19->mulInt64($f7, 30); - $f7g9_38 = $g9_19->mulInt64($f7_2, 30); - $f8g0 = $f8->mulInt64($g0, 30); - $f8g1 = $f8->mulInt64($g1, 29); - $f8g2_19 = $g2_19->mulInt64($f8, 30); - $f8g3_19 = $g3_19->mulInt64($f8, 30); - $f8g4_19 = $g4_19->mulInt64($f8, 30); - $f8g5_19 = $g5_19->mulInt64($f8, 30); - $f8g6_19 = $g6_19->mulInt64($f8, 30); - $f8g7_19 = $g7_19->mulInt64($f8, 30); - $f8g8_19 = $g8_19->mulInt64($f8, 30); - $f8g9_19 = $g9_19->mulInt64($f8, 30); - $f9g0 = $f9->mulInt64($g0, 30); - $f9g1_38 = $g1_19->mulInt64($f9_2, 30); - $f9g2_19 = $g2_19->mulInt64($f9, 30); - $f9g3_38 = $g3_19->mulInt64($f9_2, 30); - $f9g4_19 = $g4_19->mulInt64($f9, 30); - $f9g5_38 = $g5_19->mulInt64($f9_2, 30); - $f9g6_19 = $g6_19->mulInt64($f9, 30); - $f9g7_38 = $g7_19->mulInt64($f9_2, 30); - $f9g8_19 = $g8_19->mulInt64($f9, 30); - $f9g9_38 = $g9_19->mulInt64($f9_2, 30); - - // $h0 = $f0g0 + $f1g9_38 + $f2g8_19 + $f3g7_38 + $f4g6_19 + $f5g5_38 + $f6g4_19 + $f7g3_38 + $f8g2_19 + $f9g1_38; - $h0 = $f0g0->addInt64($f1g9_38)->addInt64($f2g8_19)->addInt64($f3g7_38) - ->addInt64($f4g6_19)->addInt64($f5g5_38)->addInt64($f6g4_19) - ->addInt64($f7g3_38)->addInt64($f8g2_19)->addInt64($f9g1_38); - - // $h1 = $f0g1 + $f1g0 + $f2g9_19 + $f3g8_19 + $f4g7_19 + $f5g6_19 + $f6g5_19 + $f7g4_19 + $f8g3_19 + $f9g2_19; - $h1 = $f0g1->addInt64($f1g0)->addInt64($f2g9_19)->addInt64($f3g8_19) - ->addInt64($f4g7_19)->addInt64($f5g6_19)->addInt64($f6g5_19) - ->addInt64($f7g4_19)->addInt64($f8g3_19)->addInt64($f9g2_19); - - // $h2 = $f0g2 + $f1g1_2 + $f2g0 + $f3g9_38 + $f4g8_19 + $f5g7_38 + $f6g6_19 + $f7g5_38 + $f8g4_19 + $f9g3_38; - $h2 = $f0g2->addInt64($f1g1_2)->addInt64($f2g0)->addInt64($f3g9_38) - ->addInt64($f4g8_19)->addInt64($f5g7_38)->addInt64($f6g6_19) - ->addInt64($f7g5_38)->addInt64($f8g4_19)->addInt64($f9g3_38); - - // $h3 = $f0g3 + $f1g2 + $f2g1 + $f3g0 + $f4g9_19 + $f5g8_19 + $f6g7_19 + $f7g6_19 + $f8g5_19 + $f9g4_19; - $h3 = $f0g3->addInt64($f1g2)->addInt64($f2g1)->addInt64($f3g0) - ->addInt64($f4g9_19)->addInt64($f5g8_19)->addInt64($f6g7_19) - ->addInt64($f7g6_19)->addInt64($f8g5_19)->addInt64($f9g4_19); - - // $h4 = $f0g4 + $f1g3_2 + $f2g2 + $f3g1_2 + $f4g0 + $f5g9_38 + $f6g8_19 + $f7g7_38 + $f8g6_19 + $f9g5_38; - $h4 = $f0g4->addInt64($f1g3_2)->addInt64($f2g2)->addInt64($f3g1_2) - ->addInt64($f4g0)->addInt64($f5g9_38)->addInt64($f6g8_19) - ->addInt64($f7g7_38)->addInt64($f8g6_19)->addInt64($f9g5_38); - - // $h5 = $f0g5 + $f1g4 + $f2g3 + $f3g2 + $f4g1 + $f5g0 + $f6g9_19 + $f7g8_19 + $f8g7_19 + $f9g6_19; - $h5 = $f0g5->addInt64($f1g4)->addInt64($f2g3)->addInt64($f3g2) - ->addInt64($f4g1)->addInt64($f5g0)->addInt64($f6g9_19) - ->addInt64($f7g8_19)->addInt64($f8g7_19)->addInt64($f9g6_19); - - // $h6 = $f0g6 + $f1g5_2 + $f2g4 + $f3g3_2 + $f4g2 + $f5g1_2 + $f6g0 + $f7g9_38 + $f8g8_19 + $f9g7_38; - $h6 = $f0g6->addInt64($f1g5_2)->addInt64($f2g4)->addInt64($f3g3_2) - ->addInt64($f4g2)->addInt64($f5g1_2)->addInt64($f6g0) - ->addInt64($f7g9_38)->addInt64($f8g8_19)->addInt64($f9g7_38); - - // $h7 = $f0g7 + $f1g6 + $f2g5 + $f3g4 + $f4g3 + $f5g2 + $f6g1 + $f7g0 + $f8g9_19 + $f9g8_19; - $h7 = $f0g7->addInt64($f1g6)->addInt64($f2g5)->addInt64($f3g4) - ->addInt64($f4g3)->addInt64($f5g2)->addInt64($f6g1) - ->addInt64($f7g0)->addInt64($f8g9_19)->addInt64($f9g8_19); - - // $h8 = $f0g8 + $f1g7_2 + $f2g6 + $f3g5_2 + $f4g4 + $f5g3_2 + $f6g2 + $f7g1_2 + $f8g0 + $f9g9_38; - $h8 = $f0g8->addInt64($f1g7_2)->addInt64($f2g6)->addInt64($f3g5_2) - ->addInt64($f4g4)->addInt64($f5g3_2)->addInt64($f6g2) - ->addInt64($f7g1_2)->addInt64($f8g0)->addInt64($f9g9_38); - - // $h9 = $f0g9 + $f1g8 + $f2g7 + $f3g6 + $f4g5 + $f5g4 + $f6g3 + $f7g2 + $f8g1 + $f9g0 ; - $h9 = $f0g9->addInt64($f1g8)->addInt64($f2g7)->addInt64($f3g6) - ->addInt64($f4g5)->addInt64($f5g4)->addInt64($f6g3) - ->addInt64($f7g2)->addInt64($f8g1)->addInt64($f9g0); - - /** - * @var ParagonIE_Sodium_Core32_Int64 $h0 - * @var ParagonIE_Sodium_Core32_Int64 $h1 - * @var ParagonIE_Sodium_Core32_Int64 $h2 - * @var ParagonIE_Sodium_Core32_Int64 $h3 - * @var ParagonIE_Sodium_Core32_Int64 $h4 - * @var ParagonIE_Sodium_Core32_Int64 $h5 - * @var ParagonIE_Sodium_Core32_Int64 $h6 - * @var ParagonIE_Sodium_Core32_Int64 $h7 - * @var ParagonIE_Sodium_Core32_Int64 $h8 - * @var ParagonIE_Sodium_Core32_Int64 $h9 - * @var ParagonIE_Sodium_Core32_Int64 $carry0 - * @var ParagonIE_Sodium_Core32_Int64 $carry1 - * @var ParagonIE_Sodium_Core32_Int64 $carry2 - * @var ParagonIE_Sodium_Core32_Int64 $carry3 - * @var ParagonIE_Sodium_Core32_Int64 $carry4 - * @var ParagonIE_Sodium_Core32_Int64 $carry5 - * @var ParagonIE_Sodium_Core32_Int64 $carry6 - * @var ParagonIE_Sodium_Core32_Int64 $carry7 - * @var ParagonIE_Sodium_Core32_Int64 $carry8 - * @var ParagonIE_Sodium_Core32_Int64 $carry9 - */ - $carry0 = $h0->addInt(1 << 25)->shiftRight(26); - $h1 = $h1->addInt64($carry0); - $h0 = $h0->subInt64($carry0->shiftLeft(26)); - $carry4 = $h4->addInt(1 << 25)->shiftRight(26); - $h5 = $h5->addInt64($carry4); - $h4 = $h4->subInt64($carry4->shiftLeft(26)); - - $carry1 = $h1->addInt(1 << 24)->shiftRight(25); - $h2 = $h2->addInt64($carry1); - $h1 = $h1->subInt64($carry1->shiftLeft(25)); - $carry5 = $h5->addInt(1 << 24)->shiftRight(25); - $h6 = $h6->addInt64($carry5); - $h5 = $h5->subInt64($carry5->shiftLeft(25)); - - $carry2 = $h2->addInt(1 << 25)->shiftRight(26); - $h3 = $h3->addInt64($carry2); - $h2 = $h2->subInt64($carry2->shiftLeft(26)); - $carry6 = $h6->addInt(1 << 25)->shiftRight(26); - $h7 = $h7->addInt64($carry6); - $h6 = $h6->subInt64($carry6->shiftLeft(26)); - - $carry3 = $h3->addInt(1 << 24)->shiftRight(25); - $h4 = $h4->addInt64($carry3); - $h3 = $h3->subInt64($carry3->shiftLeft(25)); - $carry7 = $h7->addInt(1 << 24)->shiftRight(25); - $h8 = $h8->addInt64($carry7); - $h7 = $h7->subInt64($carry7->shiftLeft(25)); - - $carry4 = $h4->addInt(1 << 25)->shiftRight(26); - $h5 = $h5->addInt64($carry4); - $h4 = $h4->subInt64($carry4->shiftLeft(26)); - $carry8 = $h8->addInt(1 << 25)->shiftRight(26); - $h9 = $h9->addInt64($carry8); - $h8 = $h8->subInt64($carry8->shiftLeft(26)); - - $carry9 = $h9->addInt(1 << 24)->shiftRight(25); - $h0 = $h0->addInt64($carry9->mulInt(19, 5)); - $h9 = $h9->subInt64($carry9->shiftLeft(25)); - - $carry0 = $h0->addInt(1 << 25)->shiftRight(26); - $h1 = $h1->addInt64($carry0); - $h0 = $h0->subInt64($carry0->shiftLeft(26)); - - return ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray( - array( - $h0->toInt32(), - $h1->toInt32(), - $h2->toInt32(), - $h3->toInt32(), - $h4->toInt32(), - $h5->toInt32(), - $h6->toInt32(), - $h7->toInt32(), - $h8->toInt32(), - $h9->toInt32() - ) - ); - } - - /** - * Get the negative values for each piece of the field element. - * - * h = -f - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $f - * @return ParagonIE_Sodium_Core32_Curve25519_Fe - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedMethodCall - */ - public static function fe_neg(ParagonIE_Sodium_Core32_Curve25519_Fe $f) - { - $h = new ParagonIE_Sodium_Core32_Curve25519_Fe(); - for ($i = 0; $i < 10; ++$i) { - $h[$i] = $h[$i]->subInt32($f[$i]); - } - return $h; - } - - /** - * Square a field element - * - * h = f * f - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $f - * @return ParagonIE_Sodium_Core32_Curve25519_Fe - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedMethodCall - */ - public static function fe_sq(ParagonIE_Sodium_Core32_Curve25519_Fe $f) - { - /** @var ParagonIE_Sodium_Core32_Int64 $f0 */ - $f0 = $f[0]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f1 */ - $f1 = $f[1]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f2 */ - $f2 = $f[2]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f3 */ - $f3 = $f[3]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f4 */ - $f4 = $f[4]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f5 */ - $f5 = $f[5]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f6 */ - $f6 = $f[6]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f7 */ - $f7 = $f[7]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f8 */ - $f8 = $f[8]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f9 */ - $f9 = $f[9]->toInt64(); - - /** @var ParagonIE_Sodium_Core32_Int64 $f0_2 */ - $f0_2 = $f0->shiftLeft(1); - $f1_2 = $f1->shiftLeft(1); - $f2_2 = $f2->shiftLeft(1); - $f3_2 = $f3->shiftLeft(1); - $f4_2 = $f4->shiftLeft(1); - $f5_2 = $f5->shiftLeft(1); - $f6_2 = $f6->shiftLeft(1); - $f7_2 = $f7->shiftLeft(1); - $f5_38 = $f5->mulInt(38, 6); - $f6_19 = $f6->mulInt(19, 5); - $f7_38 = $f7->mulInt(38, 6); - $f8_19 = $f8->mulInt(19, 5); - $f9_38 = $f9->mulInt(38, 6); - /** @var ParagonIE_Sodium_Core32_Int64 $f0f0*/ - $f0f0 = $f0->mulInt64($f0, 28); - $f0f1_2 = $f0_2->mulInt64($f1, 28); - $f0f2_2 = $f0_2->mulInt64($f2, 28); - $f0f3_2 = $f0_2->mulInt64($f3, 28); - $f0f4_2 = $f0_2->mulInt64($f4, 28); - $f0f5_2 = $f0_2->mulInt64($f5, 28); - $f0f6_2 = $f0_2->mulInt64($f6, 28); - $f0f7_2 = $f0_2->mulInt64($f7, 28); - $f0f8_2 = $f0_2->mulInt64($f8, 28); - $f0f9_2 = $f0_2->mulInt64($f9, 28); - - $f1f1_2 = $f1_2->mulInt64($f1, 28); - $f1f2_2 = $f1_2->mulInt64($f2, 28); - $f1f3_4 = $f1_2->mulInt64($f3_2, 28); - $f1f4_2 = $f1_2->mulInt64($f4, 28); - $f1f5_4 = $f1_2->mulInt64($f5_2, 30); - $f1f6_2 = $f1_2->mulInt64($f6, 28); - $f1f7_4 = $f1_2->mulInt64($f7_2, 28); - $f1f8_2 = $f1_2->mulInt64($f8, 28); - $f1f9_76 = $f9_38->mulInt64($f1_2, 30); - - $f2f2 = $f2->mulInt64($f2, 28); - $f2f3_2 = $f2_2->mulInt64($f3, 28); - $f2f4_2 = $f2_2->mulInt64($f4, 28); - $f2f5_2 = $f2_2->mulInt64($f5, 28); - $f2f6_2 = $f2_2->mulInt64($f6, 28); - $f2f7_2 = $f2_2->mulInt64($f7, 28); - $f2f8_38 = $f8_19->mulInt64($f2_2, 30); - $f2f9_38 = $f9_38->mulInt64($f2, 30); - - $f3f3_2 = $f3_2->mulInt64($f3, 28); - $f3f4_2 = $f3_2->mulInt64($f4, 28); - $f3f5_4 = $f3_2->mulInt64($f5_2, 30); - $f3f6_2 = $f3_2->mulInt64($f6, 28); - $f3f7_76 = $f7_38->mulInt64($f3_2, 30); - $f3f8_38 = $f8_19->mulInt64($f3_2, 30); - $f3f9_76 = $f9_38->mulInt64($f3_2, 30); - - $f4f4 = $f4->mulInt64($f4, 28); - $f4f5_2 = $f4_2->mulInt64($f5, 28); - $f4f6_38 = $f6_19->mulInt64($f4_2, 30); - $f4f7_38 = $f7_38->mulInt64($f4, 30); - $f4f8_38 = $f8_19->mulInt64($f4_2, 30); - $f4f9_38 = $f9_38->mulInt64($f4, 30); - - $f5f5_38 = $f5_38->mulInt64($f5, 30); - $f5f6_38 = $f6_19->mulInt64($f5_2, 30); - $f5f7_76 = $f7_38->mulInt64($f5_2, 30); - $f5f8_38 = $f8_19->mulInt64($f5_2, 30); - $f5f9_76 = $f9_38->mulInt64($f5_2, 30); - - $f6f6_19 = $f6_19->mulInt64($f6, 30); - $f6f7_38 = $f7_38->mulInt64($f6, 30); - $f6f8_38 = $f8_19->mulInt64($f6_2, 30); - $f6f9_38 = $f9_38->mulInt64($f6, 30); - - $f7f7_38 = $f7_38->mulInt64($f7, 28); - $f7f8_38 = $f8_19->mulInt64($f7_2, 30); - $f7f9_76 = $f9_38->mulInt64($f7_2, 30); - - $f8f8_19 = $f8_19->mulInt64($f8, 30); - $f8f9_38 = $f9_38->mulInt64($f8, 30); - - $f9f9_38 = $f9_38->mulInt64($f9, 28); - - $h0 = $f0f0->addInt64($f1f9_76)->addInt64($f2f8_38)->addInt64($f3f7_76)->addInt64($f4f6_38)->addInt64($f5f5_38); - $h1 = $f0f1_2->addInt64($f2f9_38)->addInt64($f3f8_38)->addInt64($f4f7_38)->addInt64($f5f6_38); - $h2 = $f0f2_2->addInt64($f1f1_2)->addInt64($f3f9_76)->addInt64($f4f8_38)->addInt64($f5f7_76)->addInt64($f6f6_19); - $h3 = $f0f3_2->addInt64($f1f2_2)->addInt64($f4f9_38)->addInt64($f5f8_38)->addInt64($f6f7_38); - $h4 = $f0f4_2->addInt64($f1f3_4)->addInt64($f2f2)->addInt64($f5f9_76)->addInt64($f6f8_38)->addInt64($f7f7_38); - $h5 = $f0f5_2->addInt64($f1f4_2)->addInt64($f2f3_2)->addInt64($f6f9_38)->addInt64($f7f8_38); - $h6 = $f0f6_2->addInt64($f1f5_4)->addInt64($f2f4_2)->addInt64($f3f3_2)->addInt64($f7f9_76)->addInt64($f8f8_19); - $h7 = $f0f7_2->addInt64($f1f6_2)->addInt64($f2f5_2)->addInt64($f3f4_2)->addInt64($f8f9_38); - $h8 = $f0f8_2->addInt64($f1f7_4)->addInt64($f2f6_2)->addInt64($f3f5_4)->addInt64($f4f4)->addInt64($f9f9_38); - $h9 = $f0f9_2->addInt64($f1f8_2)->addInt64($f2f7_2)->addInt64($f3f6_2)->addInt64($f4f5_2); - - /** - * @var ParagonIE_Sodium_Core32_Int64 $h0 - * @var ParagonIE_Sodium_Core32_Int64 $h1 - * @var ParagonIE_Sodium_Core32_Int64 $h2 - * @var ParagonIE_Sodium_Core32_Int64 $h3 - * @var ParagonIE_Sodium_Core32_Int64 $h4 - * @var ParagonIE_Sodium_Core32_Int64 $h5 - * @var ParagonIE_Sodium_Core32_Int64 $h6 - * @var ParagonIE_Sodium_Core32_Int64 $h7 - * @var ParagonIE_Sodium_Core32_Int64 $h8 - * @var ParagonIE_Sodium_Core32_Int64 $h9 - */ - - $carry0 = $h0->addInt(1 << 25)->shiftRight(26); - $h1 = $h1->addInt64($carry0); - $h0 = $h0->subInt64($carry0->shiftLeft(26)); - - $carry4 = $h4->addInt(1 << 25)->shiftRight(26); - $h5 = $h5->addInt64($carry4); - $h4 = $h4->subInt64($carry4->shiftLeft(26)); - - $carry1 = $h1->addInt(1 << 24)->shiftRight(25); - $h2 = $h2->addInt64($carry1); - $h1 = $h1->subInt64($carry1->shiftLeft(25)); - - $carry5 = $h5->addInt(1 << 24)->shiftRight(25); - $h6 = $h6->addInt64($carry5); - $h5 = $h5->subInt64($carry5->shiftLeft(25)); - - $carry2 = $h2->addInt(1 << 25)->shiftRight(26); - $h3 = $h3->addInt64($carry2); - $h2 = $h2->subInt64($carry2->shiftLeft(26)); - - $carry6 = $h6->addInt(1 << 25)->shiftRight(26); - $h7 = $h7->addInt64($carry6); - $h6 = $h6->subInt64($carry6->shiftLeft(26)); - - $carry3 = $h3->addInt(1 << 24)->shiftRight(25); - $h4 = $h4->addInt64($carry3); - $h3 = $h3->subInt64($carry3->shiftLeft(25)); - - $carry7 = $h7->addInt(1 << 24)->shiftRight(25); - $h8 = $h8->addInt64($carry7); - $h7 = $h7->subInt64($carry7->shiftLeft(25)); - - $carry4 = $h4->addInt(1 << 25)->shiftRight(26); - $h5 = $h5->addInt64($carry4); - $h4 = $h4->subInt64($carry4->shiftLeft(26)); - - $carry8 = $h8->addInt(1 << 25)->shiftRight(26); - $h9 = $h9->addInt64($carry8); - $h8 = $h8->subInt64($carry8->shiftLeft(26)); - - $carry9 = $h9->addInt(1 << 24)->shiftRight(25); - $h0 = $h0->addInt64($carry9->mulInt(19, 5)); - $h9 = $h9->subInt64($carry9->shiftLeft(25)); - - $carry0 = $h0->addInt(1 << 25)->shiftRight(26); - $h1 = $h1->addInt64($carry0); - $h0 = $h0->subInt64($carry0->shiftLeft(26)); - - return ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray( - array( - $h0->toInt32(), - $h1->toInt32(), - $h2->toInt32(), - $h3->toInt32(), - $h4->toInt32(), - $h5->toInt32(), - $h6->toInt32(), - $h7->toInt32(), - $h8->toInt32(), - $h9->toInt32() - ) - ); - } - - /** - * Square and double a field element - * - * h = 2 * f * f - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $f - * @return ParagonIE_Sodium_Core32_Curve25519_Fe - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedMethodCall - */ - public static function fe_sq2(ParagonIE_Sodium_Core32_Curve25519_Fe $f) - { - /** @var ParagonIE_Sodium_Core32_Int64 $f0 */ - $f0 = $f[0]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f1 */ - $f1 = $f[1]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f2 */ - $f2 = $f[2]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f3 */ - $f3 = $f[3]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f4 */ - $f4 = $f[4]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f5 */ - $f5 = $f[5]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f6 */ - $f6 = $f[6]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f7 */ - $f7 = $f[7]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f8 */ - $f8 = $f[8]->toInt64(); - /** @var ParagonIE_Sodium_Core32_Int64 $f9 */ - $f9 = $f[9]->toInt64(); - - $f0_2 = $f0->shiftLeft(1); - $f1_2 = $f1->shiftLeft(1); - $f2_2 = $f2->shiftLeft(1); - $f3_2 = $f3->shiftLeft(1); - $f4_2 = $f4->shiftLeft(1); - $f5_2 = $f5->shiftLeft(1); - $f6_2 = $f6->shiftLeft(1); - $f7_2 = $f7->shiftLeft(1); - $f5_38 = $f5->mulInt(38, 6); /* 1.959375*2^30 */ - $f6_19 = $f6->mulInt(19, 5); /* 1.959375*2^30 */ - $f7_38 = $f7->mulInt(38, 6); /* 1.959375*2^30 */ - $f8_19 = $f8->mulInt(19, 5); /* 1.959375*2^30 */ - $f9_38 = $f9->mulInt(38, 6); /* 1.959375*2^30 */ - $f0f0 = $f0->mulInt64($f0, 28); - $f0f1_2 = $f0_2->mulInt64($f1, 28); - $f0f2_2 = $f0_2->mulInt64($f2, 28); - $f0f3_2 = $f0_2->mulInt64($f3, 28); - $f0f4_2 = $f0_2->mulInt64($f4, 28); - $f0f5_2 = $f0_2->mulInt64($f5, 28); - $f0f6_2 = $f0_2->mulInt64($f6, 28); - $f0f7_2 = $f0_2->mulInt64($f7, 28); - $f0f8_2 = $f0_2->mulInt64($f8, 28); - $f0f9_2 = $f0_2->mulInt64($f9, 28); - $f1f1_2 = $f1_2->mulInt64($f1, 28); - $f1f2_2 = $f1_2->mulInt64($f2, 28); - $f1f3_4 = $f1_2->mulInt64($f3_2, 29); - $f1f4_2 = $f1_2->mulInt64($f4, 28); - $f1f5_4 = $f1_2->mulInt64($f5_2, 29); - $f1f6_2 = $f1_2->mulInt64($f6, 28); - $f1f7_4 = $f1_2->mulInt64($f7_2, 29); - $f1f8_2 = $f1_2->mulInt64($f8, 28); - $f1f9_76 = $f9_38->mulInt64($f1_2, 29); - $f2f2 = $f2->mulInt64($f2, 28); - $f2f3_2 = $f2_2->mulInt64($f3, 28); - $f2f4_2 = $f2_2->mulInt64($f4, 28); - $f2f5_2 = $f2_2->mulInt64($f5, 28); - $f2f6_2 = $f2_2->mulInt64($f6, 28); - $f2f7_2 = $f2_2->mulInt64($f7, 28); - $f2f8_38 = $f8_19->mulInt64($f2_2, 29); - $f2f9_38 = $f9_38->mulInt64($f2, 29); - $f3f3_2 = $f3_2->mulInt64($f3, 28); - $f3f4_2 = $f3_2->mulInt64($f4, 28); - $f3f5_4 = $f3_2->mulInt64($f5_2, 28); - $f3f6_2 = $f3_2->mulInt64($f6, 28); - $f3f7_76 = $f7_38->mulInt64($f3_2, 29); - $f3f8_38 = $f8_19->mulInt64($f3_2, 29); - $f3f9_76 = $f9_38->mulInt64($f3_2, 29); - $f4f4 = $f4->mulInt64($f4, 28); - $f4f5_2 = $f4_2->mulInt64($f5, 28); - $f4f6_38 = $f6_19->mulInt64($f4_2, 29); - $f4f7_38 = $f7_38->mulInt64($f4, 29); - $f4f8_38 = $f8_19->mulInt64($f4_2, 29); - $f4f9_38 = $f9_38->mulInt64($f4, 29); - $f5f5_38 = $f5_38->mulInt64($f5, 29); - $f5f6_38 = $f6_19->mulInt64($f5_2, 29); - $f5f7_76 = $f7_38->mulInt64($f5_2, 29); - $f5f8_38 = $f8_19->mulInt64($f5_2, 29); - $f5f9_76 = $f9_38->mulInt64($f5_2, 29); - $f6f6_19 = $f6_19->mulInt64($f6, 29); - $f6f7_38 = $f7_38->mulInt64($f6, 29); - $f6f8_38 = $f8_19->mulInt64($f6_2, 29); - $f6f9_38 = $f9_38->mulInt64($f6, 29); - $f7f7_38 = $f7_38->mulInt64($f7, 29); - $f7f8_38 = $f8_19->mulInt64($f7_2, 29); - $f7f9_76 = $f9_38->mulInt64($f7_2, 29); - $f8f8_19 = $f8_19->mulInt64($f8, 29); - $f8f9_38 = $f9_38->mulInt64($f8, 29); - $f9f9_38 = $f9_38->mulInt64($f9, 29); - - $h0 = $f0f0->addInt64($f1f9_76)->addInt64($f2f8_38)->addInt64($f3f7_76)->addInt64($f4f6_38)->addInt64($f5f5_38); - $h1 = $f0f1_2->addInt64($f2f9_38)->addInt64($f3f8_38)->addInt64($f4f7_38)->addInt64($f5f6_38); - $h2 = $f0f2_2->addInt64($f1f1_2)->addInt64($f3f9_76)->addInt64($f4f8_38)->addInt64($f5f7_76)->addInt64($f6f6_19); - $h3 = $f0f3_2->addInt64($f1f2_2)->addInt64($f4f9_38)->addInt64($f5f8_38)->addInt64($f6f7_38); - $h4 = $f0f4_2->addInt64($f1f3_4)->addInt64($f2f2)->addInt64($f5f9_76)->addInt64($f6f8_38)->addInt64($f7f7_38); - $h5 = $f0f5_2->addInt64($f1f4_2)->addInt64($f2f3_2)->addInt64($f6f9_38)->addInt64($f7f8_38); - $h6 = $f0f6_2->addInt64($f1f5_4)->addInt64($f2f4_2)->addInt64($f3f3_2)->addInt64($f7f9_76)->addInt64($f8f8_19); - $h7 = $f0f7_2->addInt64($f1f6_2)->addInt64($f2f5_2)->addInt64($f3f4_2)->addInt64($f8f9_38); - $h8 = $f0f8_2->addInt64($f1f7_4)->addInt64($f2f6_2)->addInt64($f3f5_4)->addInt64($f4f4)->addInt64($f9f9_38); - $h9 = $f0f9_2->addInt64($f1f8_2)->addInt64($f2f7_2)->addInt64($f3f6_2)->addInt64($f4f5_2); - - /** - * @var ParagonIE_Sodium_Core32_Int64 $h0 - * @var ParagonIE_Sodium_Core32_Int64 $h1 - * @var ParagonIE_Sodium_Core32_Int64 $h2 - * @var ParagonIE_Sodium_Core32_Int64 $h3 - * @var ParagonIE_Sodium_Core32_Int64 $h4 - * @var ParagonIE_Sodium_Core32_Int64 $h5 - * @var ParagonIE_Sodium_Core32_Int64 $h6 - * @var ParagonIE_Sodium_Core32_Int64 $h7 - * @var ParagonIE_Sodium_Core32_Int64 $h8 - * @var ParagonIE_Sodium_Core32_Int64 $h9 - */ - $h0 = $h0->shiftLeft(1); - $h1 = $h1->shiftLeft(1); - $h2 = $h2->shiftLeft(1); - $h3 = $h3->shiftLeft(1); - $h4 = $h4->shiftLeft(1); - $h5 = $h5->shiftLeft(1); - $h6 = $h6->shiftLeft(1); - $h7 = $h7->shiftLeft(1); - $h8 = $h8->shiftLeft(1); - $h9 = $h9->shiftLeft(1); - - $carry0 = $h0->addInt(1 << 25)->shiftRight(26); - $h1 = $h1->addInt64($carry0); - $h0 = $h0->subInt64($carry0->shiftLeft(26)); - $carry4 = $h4->addInt(1 << 25)->shiftRight(26); - $h5 = $h5->addInt64($carry4); - $h4 = $h4->subInt64($carry4->shiftLeft(26)); - - $carry1 = $h1->addInt(1 << 24)->shiftRight(25); - $h2 = $h2->addInt64($carry1); - $h1 = $h1->subInt64($carry1->shiftLeft(25)); - $carry5 = $h5->addInt(1 << 24)->shiftRight(25); - $h6 = $h6->addInt64($carry5); - $h5 = $h5->subInt64($carry5->shiftLeft(25)); - - $carry2 = $h2->addInt(1 << 25)->shiftRight(26); - $h3 = $h3->addInt64($carry2); - $h2 = $h2->subInt64($carry2->shiftLeft(26)); - $carry6 = $h6->addInt(1 << 25)->shiftRight(26); - $h7 = $h7->addInt64($carry6); - $h6 = $h6->subInt64($carry6->shiftLeft(26)); - - $carry3 = $h3->addInt(1 << 24)->shiftRight(25); - $h4 = $h4->addInt64($carry3); - $h3 = $h3->subInt64($carry3->shiftLeft(25)); - $carry7 = $h7->addInt(1 << 24)->shiftRight(25); - $h8 = $h8->addInt64($carry7); - $h7 = $h7->subInt64($carry7->shiftLeft(25)); - - $carry4 = $h4->addInt(1 << 25)->shiftRight(26); - $h5 = $h5->addInt64($carry4); - $h4 = $h4->subInt64($carry4->shiftLeft(26)); - $carry8 = $h8->addInt(1 << 25)->shiftRight(26); - $h9 = $h9->addInt64($carry8); - $h8 = $h8->subInt64($carry8->shiftLeft(26)); - - $carry9 = $h9->addInt(1 << 24)->shiftRight(25); - $h0 = $h0->addInt64($carry9->mulInt(19, 5)); - $h9 = $h9->subInt64($carry9->shiftLeft(25)); - - $carry0 = $h0->addInt(1 << 25)->shiftRight(26); - $h1 = $h1->addInt64($carry0); - $h0 = $h0->subInt64($carry0->shiftLeft(26)); - - return ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray( - array( - $h0->toInt32(), - $h1->toInt32(), - $h2->toInt32(), - $h3->toInt32(), - $h4->toInt32(), - $h5->toInt32(), - $h6->toInt32(), - $h7->toInt32(), - $h8->toInt32(), - $h9->toInt32() - ) - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $Z - * @return ParagonIE_Sodium_Core32_Curve25519_Fe - * @throws SodiumException - * @throws TypeError - */ - public static function fe_invert(ParagonIE_Sodium_Core32_Curve25519_Fe $Z) - { - $z = clone $Z; - $t0 = self::fe_sq($z); - $t1 = self::fe_sq($t0); - $t1 = self::fe_sq($t1); - $t1 = self::fe_mul($z, $t1); - $t0 = self::fe_mul($t0, $t1); - $t2 = self::fe_sq($t0); - $t1 = self::fe_mul($t1, $t2); - $t2 = self::fe_sq($t1); - for ($i = 1; $i < 5; ++$i) { - $t2 = self::fe_sq($t2); - } - $t1 = self::fe_mul($t2, $t1); - $t2 = self::fe_sq($t1); - for ($i = 1; $i < 10; ++$i) { - $t2 = self::fe_sq($t2); - } - $t2 = self::fe_mul($t2, $t1); - $t3 = self::fe_sq($t2); - for ($i = 1; $i < 20; ++$i) { - $t3 = self::fe_sq($t3); - } - $t2 = self::fe_mul($t3, $t2); - $t2 = self::fe_sq($t2); - for ($i = 1; $i < 10; ++$i) { - $t2 = self::fe_sq($t2); - } - $t1 = self::fe_mul($t2, $t1); - $t2 = self::fe_sq($t1); - for ($i = 1; $i < 50; ++$i) { - $t2 = self::fe_sq($t2); - } - $t2 = self::fe_mul($t2, $t1); - $t3 = self::fe_sq($t2); - for ($i = 1; $i < 100; ++$i) { - $t3 = self::fe_sq($t3); - } - $t2 = self::fe_mul($t3, $t2); - $t2 = self::fe_sq($t2); - for ($i = 1; $i < 50; ++$i) { - $t2 = self::fe_sq($t2); - } - $t1 = self::fe_mul($t2, $t1); - $t1 = self::fe_sq($t1); - for ($i = 1; $i < 5; ++$i) { - $t1 = self::fe_sq($t1); - } - return self::fe_mul($t1, $t0); - } - - /** - * @internal You should not use this directly from another application - * - * @ref https://github.com/jedisct1/libsodium/blob/68564326e1e9dc57ef03746f85734232d20ca6fb/src/libsodium/crypto_core/curve25519/ref10/curve25519_ref10.c#L1054-L1106 - * - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $z - * @return ParagonIE_Sodium_Core32_Curve25519_Fe - * @throws SodiumException - * @throws TypeError - */ - public static function fe_pow22523(ParagonIE_Sodium_Core32_Curve25519_Fe $z) - { - # fe_sq(t0, z); - # fe_sq(t1, t0); - # fe_sq(t1, t1); - # fe_mul(t1, z, t1); - # fe_mul(t0, t0, t1); - # fe_sq(t0, t0); - # fe_mul(t0, t1, t0); - # fe_sq(t1, t0); - $t0 = self::fe_sq($z); - $t1 = self::fe_sq($t0); - $t1 = self::fe_sq($t1); - $t1 = self::fe_mul($z, $t1); - $t0 = self::fe_mul($t0, $t1); - $t0 = self::fe_sq($t0); - $t0 = self::fe_mul($t1, $t0); - $t1 = self::fe_sq($t0); - - # for (i = 1; i < 5; ++i) { - # fe_sq(t1, t1); - # } - for ($i = 1; $i < 5; ++$i) { - $t1 = self::fe_sq($t1); - } - - # fe_mul(t0, t1, t0); - # fe_sq(t1, t0); - $t0 = self::fe_mul($t1, $t0); - $t1 = self::fe_sq($t0); - - # for (i = 1; i < 10; ++i) { - # fe_sq(t1, t1); - # } - for ($i = 1; $i < 10; ++$i) { - $t1 = self::fe_sq($t1); - } - - # fe_mul(t1, t1, t0); - # fe_sq(t2, t1); - $t1 = self::fe_mul($t1, $t0); - $t2 = self::fe_sq($t1); - - # for (i = 1; i < 20; ++i) { - # fe_sq(t2, t2); - # } - for ($i = 1; $i < 20; ++$i) { - $t2 = self::fe_sq($t2); - } - - # fe_mul(t1, t2, t1); - # fe_sq(t1, t1); - $t1 = self::fe_mul($t2, $t1); - $t1 = self::fe_sq($t1); - - # for (i = 1; i < 10; ++i) { - # fe_sq(t1, t1); - # } - for ($i = 1; $i < 10; ++$i) { - $t1 = self::fe_sq($t1); - } - - # fe_mul(t0, t1, t0); - # fe_sq(t1, t0); - $t0 = self::fe_mul($t1, $t0); - $t1 = self::fe_sq($t0); - - # for (i = 1; i < 50; ++i) { - # fe_sq(t1, t1); - # } - for ($i = 1; $i < 50; ++$i) { - $t1 = self::fe_sq($t1); - } - - # fe_mul(t1, t1, t0); - # fe_sq(t2, t1); - $t1 = self::fe_mul($t1, $t0); - $t2 = self::fe_sq($t1); - - # for (i = 1; i < 100; ++i) { - # fe_sq(t2, t2); - # } - for ($i = 1; $i < 100; ++$i) { - $t2 = self::fe_sq($t2); - } - - # fe_mul(t1, t2, t1); - # fe_sq(t1, t1); - $t1 = self::fe_mul($t2, $t1); - $t1 = self::fe_sq($t1); - - # for (i = 1; i < 50; ++i) { - # fe_sq(t1, t1); - # } - for ($i = 1; $i < 50; ++$i) { - $t1 = self::fe_sq($t1); - } - - # fe_mul(t0, t1, t0); - # fe_sq(t0, t0); - # fe_sq(t0, t0); - # fe_mul(out, t0, z); - $t0 = self::fe_mul($t1, $t0); - $t0 = self::fe_sq($t0); - $t0 = self::fe_sq($t0); - return self::fe_mul($t0, $z); - } - - /** - * Subtract two field elements. - * - * h = f - g - * - * Preconditions: - * |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. - * |g| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. - * - * Postconditions: - * |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $f - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $g - * @return ParagonIE_Sodium_Core32_Curve25519_Fe - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedMethodCall - * @psalm-suppress MixedTypeCoercion - */ - public static function fe_sub(ParagonIE_Sodium_Core32_Curve25519_Fe $f, ParagonIE_Sodium_Core32_Curve25519_Fe $g) - { - return ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray( - array( - $f[0]->subInt32($g[0]), - $f[1]->subInt32($g[1]), - $f[2]->subInt32($g[2]), - $f[3]->subInt32($g[3]), - $f[4]->subInt32($g[4]), - $f[5]->subInt32($g[5]), - $f[6]->subInt32($g[6]), - $f[7]->subInt32($g[7]), - $f[8]->subInt32($g[8]), - $f[9]->subInt32($g[9]) - ) - ); - } - - /** - * Add two group elements. - * - * r = p + q - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $p - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_Cached $q - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1 - * @throws SodiumException - * @throws TypeError - */ - public static function ge_add( - ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $p, - ParagonIE_Sodium_Core32_Curve25519_Ge_Cached $q - ) { - $r = new ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1(); - $r->X = self::fe_add($p->Y, $p->X); - $r->Y = self::fe_sub($p->Y, $p->X); - $r->Z = self::fe_mul($r->X, $q->YplusX); - $r->Y = self::fe_mul($r->Y, $q->YminusX); - $r->T = self::fe_mul($q->T2d, $p->T); - $r->X = self::fe_mul($p->Z, $q->Z); - $t0 = self::fe_add($r->X, $r->X); - $r->X = self::fe_sub($r->Z, $r->Y); - $r->Y = self::fe_add($r->Z, $r->Y); - $r->Z = self::fe_add($t0, $r->T); - $r->T = self::fe_sub($t0, $r->T); - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @ref https://github.com/jedisct1/libsodium/blob/157c4a80c13b117608aeae12178b2d38825f9f8f/src/libsodium/crypto_core/curve25519/ref10/curve25519_ref10.c#L1185-L1215 - * @param string $a - * @return array - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArrayOffset - */ - public static function slide($a) - { - if (self::strlen($a) < 256) { - if (self::strlen($a) < 16) { - $a = str_pad($a, 256, '0', STR_PAD_RIGHT); - } - } - /** @var array $r */ - $r = array(); - for ($i = 0; $i < 256; ++$i) { - $r[$i] = (int) (1 & - ( - self::chrToInt($a[$i >> 3]) - >> - ($i & 7) - ) - ); - } - - for ($i = 0;$i < 256;++$i) { - if ($r[$i]) { - for ($b = 1;$b <= 6 && $i + $b < 256;++$b) { - if ($r[$i + $b]) { - if ($r[$i] + ($r[$i + $b] << $b) <= 15) { - $r[$i] += $r[$i + $b] << $b; - $r[$i + $b] = 0; - } elseif ($r[$i] - ($r[$i + $b] << $b) >= -15) { - $r[$i] -= $r[$i + $b] << $b; - for ($k = $i + $b; $k < 256; ++$k) { - if (!$r[$k]) { - $r[$k] = 1; - break; - } - $r[$k] = 0; - } - } else { - break; - } - } - } - } - } - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $s - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_P3 - * @throws SodiumException - * @throws TypeError - */ - public static function ge_frombytes_negate_vartime($s) - { - static $d = null; - if (!$d) { - /** @var ParagonIE_Sodium_Core32_Curve25519_Fe $d */ - $d = ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray( - array( - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d[0]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d[1]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d[2]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d[3]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d[4]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d[5]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d[6]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d[7]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d[8]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d[9]) - ) - ); - } - - # fe_frombytes(h->Y,s); - # fe_1(h->Z); - $h = new ParagonIE_Sodium_Core32_Curve25519_Ge_P3( - self::fe_0(), - self::fe_frombytes($s), - self::fe_1() - ); - - # fe_sq(u,h->Y); - # fe_mul(v,u,d); - # fe_sub(u,u,h->Z); /* u = y^2-1 */ - # fe_add(v,v,h->Z); /* v = dy^2+1 */ - $u = self::fe_sq($h->Y); - /** @var ParagonIE_Sodium_Core32_Curve25519_Fe $d */ - $v = self::fe_mul($u, $d); - $u = self::fe_sub($u, $h->Z); /* u = y^2 - 1 */ - $v = self::fe_add($v, $h->Z); /* v = dy^2 + 1 */ - - # fe_sq(v3,v); - # fe_mul(v3,v3,v); /* v3 = v^3 */ - # fe_sq(h->X,v3); - # fe_mul(h->X,h->X,v); - # fe_mul(h->X,h->X,u); /* x = uv^7 */ - $v3 = self::fe_sq($v); - $v3 = self::fe_mul($v3, $v); /* v3 = v^3 */ - $h->X = self::fe_sq($v3); - $h->X = self::fe_mul($h->X, $v); - $h->X = self::fe_mul($h->X, $u); /* x = uv^7 */ - - # fe_pow22523(h->X,h->X); /* x = (uv^7)^((q-5)/8) */ - # fe_mul(h->X,h->X,v3); - # fe_mul(h->X,h->X,u); /* x = uv^3(uv^7)^((q-5)/8) */ - $h->X = self::fe_pow22523($h->X); /* x = (uv^7)^((q-5)/8) */ - $h->X = self::fe_mul($h->X, $v3); - $h->X = self::fe_mul($h->X, $u); /* x = uv^3(uv^7)^((q-5)/8) */ - - # fe_sq(vxx,h->X); - # fe_mul(vxx,vxx,v); - # fe_sub(check,vxx,u); /* vx^2-u */ - $vxx = self::fe_sq($h->X); - $vxx = self::fe_mul($vxx, $v); - $check = self::fe_sub($vxx, $u); /* vx^2 - u */ - - # if (fe_isnonzero(check)) { - # fe_add(check,vxx,u); /* vx^2+u */ - # if (fe_isnonzero(check)) { - # return -1; - # } - # fe_mul(h->X,h->X,sqrtm1); - # } - if (self::fe_isnonzero($check)) { - $check = self::fe_add($vxx, $u); /* vx^2 + u */ - if (self::fe_isnonzero($check)) { - throw new RangeException('Internal check failed.'); - } - $h->X = self::fe_mul( - $h->X, - ParagonIE_Sodium_Core32_Curve25519_Fe::fromIntArray(self::$sqrtm1) - ); - } - - # if (fe_isnegative(h->X) == (s[31] >> 7)) { - # fe_neg(h->X,h->X); - # } - $i = self::chrToInt($s[31]); - if (self::fe_isnegative($h->X) === ($i >> 7)) { - $h->X = self::fe_neg($h->X); - } - - # fe_mul(h->T,h->X,h->Y); - $h->T = self::fe_mul($h->X, $h->Y); - return $h; - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1 $R - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $p - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp $q - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1 - * @throws SodiumException - * @throws TypeError - */ - public static function ge_madd( - ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1 $R, - ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $p, - ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp $q - ) { - $r = clone $R; - $r->X = self::fe_add($p->Y, $p->X); - $r->Y = self::fe_sub($p->Y, $p->X); - $r->Z = self::fe_mul($r->X, $q->yplusx); - $r->Y = self::fe_mul($r->Y, $q->yminusx); - $r->T = self::fe_mul($q->xy2d, $p->T); - $t0 = self::fe_add(clone $p->Z, clone $p->Z); - $r->X = self::fe_sub($r->Z, $r->Y); - $r->Y = self::fe_add($r->Z, $r->Y); - $r->Z = self::fe_add($t0, $r->T); - $r->T = self::fe_sub($t0, $r->T); - - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1 $R - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $p - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp $q - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1 - * @throws SodiumException - * @throws TypeError - */ - public static function ge_msub( - ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1 $R, - ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $p, - ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp $q - ) { - $r = clone $R; - - $r->X = self::fe_add($p->Y, $p->X); - $r->Y = self::fe_sub($p->Y, $p->X); - $r->Z = self::fe_mul($r->X, $q->yminusx); - $r->Y = self::fe_mul($r->Y, $q->yplusx); - $r->T = self::fe_mul($q->xy2d, $p->T); - $t0 = self::fe_add($p->Z, $p->Z); - $r->X = self::fe_sub($r->Z, $r->Y); - $r->Y = self::fe_add($r->Z, $r->Y); - $r->Z = self::fe_sub($t0, $r->T); - $r->T = self::fe_add($t0, $r->T); - - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1 $p - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_P2 - * @throws SodiumException - * @throws TypeError - */ - public static function ge_p1p1_to_p2(ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1 $p) - { - $r = new ParagonIE_Sodium_Core32_Curve25519_Ge_P2(); - $r->X = self::fe_mul($p->X, $p->T); - $r->Y = self::fe_mul($p->Y, $p->Z); - $r->Z = self::fe_mul($p->Z, $p->T); - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1 $p - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_P3 - * @throws SodiumException - * @throws TypeError - */ - public static function ge_p1p1_to_p3(ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1 $p) - { - $r = new ParagonIE_Sodium_Core32_Curve25519_Ge_P3(); - $r->X = self::fe_mul($p->X, $p->T); - $r->Y = self::fe_mul($p->Y, $p->Z); - $r->Z = self::fe_mul($p->Z, $p->T); - $r->T = self::fe_mul($p->X, $p->Y); - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_P2 - * @throws SodiumException - * @throws TypeError - */ - public static function ge_p2_0() - { - return new ParagonIE_Sodium_Core32_Curve25519_Ge_P2( - self::fe_0(), - self::fe_1(), - self::fe_1() - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P2 $p - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1 - * @throws SodiumException - * @throws TypeError - */ - public static function ge_p2_dbl(ParagonIE_Sodium_Core32_Curve25519_Ge_P2 $p) - { - $r = new ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1(); - - $r->X = self::fe_sq($p->X); - $r->Z = self::fe_sq($p->Y); - $r->T = self::fe_sq2($p->Z); - $r->Y = self::fe_add($p->X, $p->Y); - $t0 = self::fe_sq($r->Y); - $r->Y = self::fe_add($r->Z, $r->X); - $r->Z = self::fe_sub($r->Z, $r->X); - $r->X = self::fe_sub($t0, $r->Y); - $r->T = self::fe_sub($r->T, $r->Z); - - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_P3 - * @throws SodiumException - * @throws TypeError - */ - public static function ge_p3_0() - { - return new ParagonIE_Sodium_Core32_Curve25519_Ge_P3( - self::fe_0(), - self::fe_1(), - self::fe_1(), - self::fe_0() - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $p - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_Cached - * @throws SodiumException - * @throws TypeError - */ - public static function ge_p3_to_cached(ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $p) - { - static $d2 = null; - if ($d2 === null) { - $d2 = ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray( - array( - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d2[0]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d2[1]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d2[2]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d2[3]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d2[4]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d2[5]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d2[6]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d2[7]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d2[8]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$d2[9]) - ) - ); - } - /** @var ParagonIE_Sodium_Core32_Curve25519_Fe $d2 */ - $r = new ParagonIE_Sodium_Core32_Curve25519_Ge_Cached(); - $r->YplusX = self::fe_add($p->Y, $p->X); - $r->YminusX = self::fe_sub($p->Y, $p->X); - $r->Z = self::fe_copy($p->Z); - $r->T2d = self::fe_mul($p->T, $d2); - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $p - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_P2 - */ - public static function ge_p3_to_p2(ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $p) - { - return new ParagonIE_Sodium_Core32_Curve25519_Ge_P2( - $p->X, - $p->Y, - $p->Z - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $h - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function ge_p3_tobytes(ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $h) - { - $recip = self::fe_invert($h->Z); - $x = self::fe_mul($h->X, $recip); - $y = self::fe_mul($h->Y, $recip); - $s = self::fe_tobytes($y); - $s[31] = self::intToChr( - self::chrToInt($s[31]) ^ (self::fe_isnegative($x) << 7) - ); - return $s; - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $p - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1 - * @throws SodiumException - * @throws TypeError - */ - public static function ge_p3_dbl(ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $p) - { - $q = self::ge_p3_to_p2($p); - return self::ge_p2_dbl($q); - } - - /** - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp - * @throws SodiumException - * @throws TypeError - */ - public static function ge_precomp_0() - { - return new ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp( - self::fe_1(), - self::fe_1(), - self::fe_0() - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $b - * @param int $c - * @return int - * @psalm-suppress MixedReturnStatement - */ - public static function equal($b, $c) - { - return (int) ((($b ^ $c) - 1 & 0xffffffff) >> 31); - } - - /** - * @internal You should not use this directly from another application - * - * @param string|int $char - * @return int (1 = yes, 0 = no) - * @throws SodiumException - * @throws TypeError - */ - public static function negative($char) - { - if (is_int($char)) { - return $char < 0 ? 1 : 0; - } - /** @var string $char */ - /** @var int $x */ - $x = self::chrToInt(self::substr($char, 0, 1)); - return (int) ($x >> 31); - } - - /** - * Conditional move - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp $t - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp $u - * @param int $b - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp - * @throws SodiumException - * @throws TypeError - */ - public static function cmov( - ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp $t, - ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp $u, - $b - ) { - if (!is_int($b)) { - throw new InvalidArgumentException('Expected an integer.'); - } - return new ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp( - self::fe_cmov($t->yplusx, $u->yplusx, $b), - self::fe_cmov($t->yminusx, $u->yminusx, $b), - self::fe_cmov($t->xy2d, $u->xy2d, $b) - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $pos - * @param int $b - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArrayAccess - * @psalm-suppress MixedArrayOffset - * @psalm-suppress MixedArgument - */ - public static function ge_select($pos = 0, $b = 0) - { - static $base = null; - if ($base === null) { - $base = array(); - foreach (self::$base as $i => $bas) { - for ($j = 0; $j < 8; ++$j) { - $base[$i][$j] = new ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp( - ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray( - array( - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][0]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][1]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][2]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][3]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][4]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][5]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][6]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][7]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][8]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][9]) - ) - ), - ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray( - array( - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][0]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][1]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][2]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][3]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][4]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][5]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][6]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][7]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][8]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][9]) - ) - ), - ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray( - array( - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][0]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][1]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][2]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][3]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][4]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][5]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][6]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][7]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][8]), - ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][9]) - ) - ) - ); - } - } - } - if (!is_int($pos)) { - throw new InvalidArgumentException('Position must be an integer'); - } - if ($pos < 0 || $pos > 31) { - throw new RangeException('Position is out of range [0, 31]'); - } - - $bnegative = self::negative($b); - /** @var int $babs */ - $babs = $b - (((-$bnegative) & $b) << 1); - - $t = self::ge_precomp_0(); - for ($i = 0; $i < 8; ++$i) { - $t = self::cmov( - $t, - $base[$pos][$i], - self::equal($babs, $i + 1) - ); - } - $minusT = new ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp( - self::fe_copy($t->yminusx), - self::fe_copy($t->yplusx), - self::fe_neg($t->xy2d) - ); - return self::cmov($t, $minusT, -$bnegative); - } - - /** - * Subtract two group elements. - * - * r = p - q - * - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $p - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_Cached $q - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1 - * @throws SodiumException - * @throws TypeError - */ - public static function ge_sub( - ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $p, - ParagonIE_Sodium_Core32_Curve25519_Ge_Cached $q - ) { - $r = new ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1(); - - $r->X = self::fe_add($p->Y, $p->X); - $r->Y = self::fe_sub($p->Y, $p->X); - $r->Z = self::fe_mul($r->X, $q->YminusX); - $r->Y = self::fe_mul($r->Y, $q->YplusX); - $r->T = self::fe_mul($q->T2d, $p->T); - $r->X = self::fe_mul($p->Z, $q->Z); - $t0 = self::fe_add($r->X, $r->X); - $r->X = self::fe_sub($r->Z, $r->Y); - $r->Y = self::fe_add($r->Z, $r->Y); - $r->Z = self::fe_sub($t0, $r->T); - $r->T = self::fe_add($t0, $r->T); - - return $r; - } - - /** - * Convert a group element to a byte string. - * - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P2 $h - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function ge_tobytes(ParagonIE_Sodium_Core32_Curve25519_Ge_P2 $h) - { - $recip = self::fe_invert($h->Z); - $x = self::fe_mul($h->X, $recip); - $y = self::fe_mul($h->Y, $recip); - $s = self::fe_tobytes($y); - $s[31] = self::intToChr( - self::chrToInt($s[31]) ^ (self::fe_isnegative($x) << 7) - ); - return $s; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $a - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $A - * @param string $b - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_P2 - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArrayAccess - */ - public static function ge_double_scalarmult_vartime( - $a, - ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $A, - $b - ) { - /** @var array $Ai */ - $Ai = array(); - - static $Bi = array(); - /** @var array $Bi */ - if (!$Bi) { - for ($i = 0; $i < 8; ++$i) { - $Bi[$i] = new ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp( - ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray( - array( - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][0][0]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][0][1]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][0][2]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][0][3]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][0][4]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][0][5]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][0][6]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][0][7]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][0][8]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][0][9]) - ) - ), - ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray( - array( - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][1][0]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][1][1]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][1][2]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][1][3]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][1][4]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][1][5]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][1][6]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][1][7]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][1][8]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][1][9]) - ) - ), - ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray( - array( - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][2][0]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][2][1]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][2][2]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][2][3]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][2][4]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][2][5]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][2][6]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][2][7]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][2][8]), - ParagonIE_Sodium_Core32_Int32::fromInt(self::$base2[$i][2][9]) - ) - ) - ); - } - } - - for ($i = 0; $i < 8; ++$i) { - $Ai[$i] = new ParagonIE_Sodium_Core32_Curve25519_Ge_Cached( - self::fe_0(), - self::fe_0(), - self::fe_0(), - self::fe_0() - ); - } - /** @var array $Ai */ - - # slide(aslide,a); - # slide(bslide,b); - /** @var array $aslide */ - $aslide = self::slide($a); - /** @var array $bslide */ - $bslide = self::slide($b); - - # ge_p3_to_cached(&Ai[0],A); - # ge_p3_dbl(&t,A); ge_p1p1_to_p3(&A2,&t); - $Ai[0] = self::ge_p3_to_cached($A); - $t = self::ge_p3_dbl($A); - $A2 = self::ge_p1p1_to_p3($t); - - # ge_add(&t,&A2,&Ai[0]); ge_p1p1_to_p3(&u,&t); ge_p3_to_cached(&Ai[1],&u); - # ge_add(&t,&A2,&Ai[1]); ge_p1p1_to_p3(&u,&t); ge_p3_to_cached(&Ai[2],&u); - # ge_add(&t,&A2,&Ai[2]); ge_p1p1_to_p3(&u,&t); ge_p3_to_cached(&Ai[3],&u); - # ge_add(&t,&A2,&Ai[3]); ge_p1p1_to_p3(&u,&t); ge_p3_to_cached(&Ai[4],&u); - # ge_add(&t,&A2,&Ai[4]); ge_p1p1_to_p3(&u,&t); ge_p3_to_cached(&Ai[5],&u); - # ge_add(&t,&A2,&Ai[5]); ge_p1p1_to_p3(&u,&t); ge_p3_to_cached(&Ai[6],&u); - # ge_add(&t,&A2,&Ai[6]); ge_p1p1_to_p3(&u,&t); ge_p3_to_cached(&Ai[7],&u); - for ($i = 0; $i < 7; ++$i) { - $t = self::ge_add($A2, $Ai[$i]); - $u = self::ge_p1p1_to_p3($t); - $Ai[$i + 1] = self::ge_p3_to_cached($u); - } - - # ge_p2_0(r); - $r = self::ge_p2_0(); - - # for (i = 255;i >= 0;--i) { - # if (aslide[i] || bslide[i]) break; - # } - $i = 255; - for (; $i >= 0; --$i) { - if ($aslide[$i] || $bslide[$i]) { - break; - } - } - - # for (;i >= 0;--i) { - for (; $i >= 0; --$i) { - # ge_p2_dbl(&t,r); - $t = self::ge_p2_dbl($r); - - # if (aslide[i] > 0) { - if ($aslide[$i] > 0) { - # ge_p1p1_to_p3(&u,&t); - # ge_add(&t,&u,&Ai[aslide[i]/2]); - $u = self::ge_p1p1_to_p3($t); - $t = self::ge_add( - $u, - $Ai[(int) floor($aslide[$i] / 2)] - ); - # } else if (aslide[i] < 0) { - } elseif ($aslide[$i] < 0) { - # ge_p1p1_to_p3(&u,&t); - # ge_sub(&t,&u,&Ai[(-aslide[i])/2]); - $u = self::ge_p1p1_to_p3($t); - $t = self::ge_sub( - $u, - $Ai[(int) floor(-$aslide[$i] / 2)] - ); - } - /** @var array $Bi */ - - # if (bslide[i] > 0) { - if ($bslide[$i] > 0) { - # ge_p1p1_to_p3(&u,&t); - # ge_madd(&t,&u,&Bi[bslide[i]/2]); - $u = self::ge_p1p1_to_p3($t); - /** @var int $index */ - $index = (int) floor($bslide[$i] / 2); - /** @var ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp $thisB */ - $thisB = $Bi[$index]; - $t = self::ge_madd($t, $u, $thisB); - # } else if (bslide[i] < 0) { - } elseif ($bslide[$i] < 0) { - # ge_p1p1_to_p3(&u,&t); - # ge_msub(&t,&u,&Bi[(-bslide[i])/2]); - $u = self::ge_p1p1_to_p3($t); - - /** @var int $index */ - $index = (int) floor(-$bslide[$i] / 2); - - /** @var ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp $thisB */ - $thisB = $Bi[$index]; - $t = self::ge_msub($t, $u, $thisB); - } - # ge_p1p1_to_p2(r,&t); - $r = self::ge_p1p1_to_p2($t); - } - return $r; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $a - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_P3 - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedOperand - * @throws SodiumException - * @throws TypeError - */ - public static function ge_scalarmult_base($a) - { - /** @var array $e */ - $e = array(); - $r = new ParagonIE_Sodium_Core32_Curve25519_Ge_P1p1(); - - for ($i = 0; $i < 32; ++$i) { - /** @var int $dbl */ - $dbl = (int) $i << 1; - $e[$dbl] = (int) self::chrToInt($a[$i]) & 15; - $e[$dbl + 1] = (int) (self::chrToInt($a[$i]) >> 4) & 15; - } - - /** @var int $carry */ - $carry = 0; - for ($i = 0; $i < 63; ++$i) { - $e[$i] += $carry; - /** @var int $carry */ - $carry = $e[$i] + 8; - /** @var int $carry */ - $carry >>= 4; - $e[$i] -= $carry << 4; - } - - /** @var array $e */ - $e[63] += (int) $carry; - - $h = self::ge_p3_0(); - - for ($i = 1; $i < 64; $i += 2) { - $t = self::ge_select((int) floor($i / 2), (int) $e[$i]); - $r = self::ge_madd($r, $h, $t); - $h = self::ge_p1p1_to_p3($r); - } - - $r = self::ge_p3_dbl($h); - - $s = self::ge_p1p1_to_p2($r); - $r = self::ge_p2_dbl($s); - $s = self::ge_p1p1_to_p2($r); - $r = self::ge_p2_dbl($s); - $s = self::ge_p1p1_to_p2($r); - $r = self::ge_p2_dbl($s); - - $h = self::ge_p1p1_to_p3($r); - - for ($i = 0; $i < 64; $i += 2) { - $t = self::ge_select($i >> 1, (int) $e[$i]); - $r = self::ge_madd($r, $h, $t); - $h = self::ge_p1p1_to_p3($r); - } - return $h; - } - - /** - * Calculates (ab + c) mod l - * where l = 2^252 + 27742317777372353535851937790883648493 - * - * @internal You should not use this directly from another application - * - * @param string $a - * @param string $b - * @param string $c - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sc_muladd($a, $b, $c) - { - $a0 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($a, 0, 3))); - $a1 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($a, 2, 4)) >> 5)); - $a2 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($a, 5, 3)) >> 2)); - $a3 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($a, 7, 4)) >> 7)); - $a4 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($a, 10, 4)) >> 4)); - $a5 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($a, 13, 3)) >> 1)); - $a6 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($a, 15, 4)) >> 6)); - $a7 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($a, 18, 3)) >> 3)); - $a8 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($a, 21, 3))); - $a9 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($a, 23, 4)) >> 5)); - $a10 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($a, 26, 3)) >> 2)); - $a11 = ParagonIE_Sodium_Core32_Int64::fromInt(0x1fffffff & (self::load_4(self::substr($a, 28, 4)) >> 7)); - $b0 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($b, 0, 3))); - $b1 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($b, 2, 4)) >> 5)); - $b2 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($b, 5, 3)) >> 2)); - $b3 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($b, 7, 4)) >> 7)); - $b4 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($b, 10, 4)) >> 4)); - $b5 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($b, 13, 3)) >> 1)); - $b6 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($b, 15, 4)) >> 6)); - $b7 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($b, 18, 3)) >> 3)); - $b8 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($b, 21, 3))); - $b9 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($b, 23, 4)) >> 5)); - $b10 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($b, 26, 3)) >> 2)); - $b11 = ParagonIE_Sodium_Core32_Int64::fromInt(0x1fffffff & (self::load_4(self::substr($b, 28, 4)) >> 7)); - $c0 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($c, 0, 3))); - $c1 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($c, 2, 4)) >> 5)); - $c2 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($c, 5, 3)) >> 2)); - $c3 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($c, 7, 4)) >> 7)); - $c4 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($c, 10, 4)) >> 4)); - $c5 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($c, 13, 3)) >> 1)); - $c6 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($c, 15, 4)) >> 6)); - $c7 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($c, 18, 3)) >> 3)); - $c8 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($c, 21, 3))); - $c9 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($c, 23, 4)) >> 5)); - $c10 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($c, 26, 3)) >> 2)); - $c11 = ParagonIE_Sodium_Core32_Int64::fromInt(0x1fffffff & (self::load_4(self::substr($c, 28, 4)) >> 7)); - - /* Can't really avoid the pyramid here: */ - /** - * @var ParagonIE_Sodium_Core32_Int64 $s0 - * @var ParagonIE_Sodium_Core32_Int64 $s1 - * @var ParagonIE_Sodium_Core32_Int64 $s2 - * @var ParagonIE_Sodium_Core32_Int64 $s3 - * @var ParagonIE_Sodium_Core32_Int64 $s4 - * @var ParagonIE_Sodium_Core32_Int64 $s5 - * @var ParagonIE_Sodium_Core32_Int64 $s6 - * @var ParagonIE_Sodium_Core32_Int64 $s7 - * @var ParagonIE_Sodium_Core32_Int64 $s8 - * @var ParagonIE_Sodium_Core32_Int64 $s9 - * @var ParagonIE_Sodium_Core32_Int64 $s10 - * @var ParagonIE_Sodium_Core32_Int64 $s11 - * @var ParagonIE_Sodium_Core32_Int64 $s12 - * @var ParagonIE_Sodium_Core32_Int64 $s13 - * @var ParagonIE_Sodium_Core32_Int64 $s14 - * @var ParagonIE_Sodium_Core32_Int64 $s15 - * @var ParagonIE_Sodium_Core32_Int64 $s16 - * @var ParagonIE_Sodium_Core32_Int64 $s17 - * @var ParagonIE_Sodium_Core32_Int64 $s18 - * @var ParagonIE_Sodium_Core32_Int64 $s19 - * @var ParagonIE_Sodium_Core32_Int64 $s20 - * @var ParagonIE_Sodium_Core32_Int64 $s21 - * @var ParagonIE_Sodium_Core32_Int64 $s22 - * @var ParagonIE_Sodium_Core32_Int64 $s23 - */ - - $s0 = $c0->addInt64($a0->mulInt64($b0, 24)); - $s1 = $c1->addInt64($a0->mulInt64($b1, 24))->addInt64($a1->mulInt64($b0, 24)); - $s2 = $c2->addInt64($a0->mulInt64($b2, 24))->addInt64($a1->mulInt64($b1, 24))->addInt64($a2->mulInt64($b0, 24)); - $s3 = $c3->addInt64($a0->mulInt64($b3, 24))->addInt64($a1->mulInt64($b2, 24))->addInt64($a2->mulInt64($b1, 24)) - ->addInt64($a3->mulInt64($b0, 24)); - $s4 = $c4->addInt64($a0->mulInt64($b4, 24))->addInt64($a1->mulInt64($b3, 24))->addInt64($a2->mulInt64($b2, 24)) - ->addInt64($a3->mulInt64($b1, 24))->addInt64($a4->mulInt64($b0, 24)); - $s5 = $c5->addInt64($a0->mulInt64($b5, 24))->addInt64($a1->mulInt64($b4, 24))->addInt64($a2->mulInt64($b3, 24)) - ->addInt64($a3->mulInt64($b2, 24))->addInt64($a4->mulInt64($b1, 24))->addInt64($a5->mulInt64($b0, 24)); - $s6 = $c6->addInt64($a0->mulInt64($b6, 24))->addInt64($a1->mulInt64($b5, 24))->addInt64($a2->mulInt64($b4, 24)) - ->addInt64($a3->mulInt64($b3, 24))->addInt64($a4->mulInt64($b2, 24))->addInt64($a5->mulInt64($b1, 24)) - ->addInt64($a6->mulInt64($b0, 24)); - $s7 = $c7->addInt64($a0->mulInt64($b7, 24))->addInt64($a1->mulInt64($b6, 24))->addInt64($a2->mulInt64($b5, 24)) - ->addInt64($a3->mulInt64($b4, 24))->addInt64($a4->mulInt64($b3, 24))->addInt64($a5->mulInt64($b2, 24)) - ->addInt64($a6->mulInt64($b1, 24))->addInt64($a7->mulInt64($b0, 24)); - $s8 = $c8->addInt64($a0->mulInt64($b8, 24))->addInt64($a1->mulInt64($b7, 24))->addInt64($a2->mulInt64($b6, 24)) - ->addInt64($a3->mulInt64($b5, 24))->addInt64($a4->mulInt64($b4, 24))->addInt64($a5->mulInt64($b3, 24)) - ->addInt64($a6->mulInt64($b2, 24))->addInt64($a7->mulInt64($b1, 24))->addInt64($a8->mulInt64($b0, 24)); - $s9 = $c9->addInt64($a0->mulInt64($b9, 24))->addInt64($a1->mulInt64($b8, 24))->addInt64($a2->mulInt64($b7, 24)) - ->addInt64($a3->mulInt64($b6, 24))->addInt64($a4->mulInt64($b5, 24))->addInt64($a5->mulInt64($b4, 24)) - ->addInt64($a6->mulInt64($b3, 24))->addInt64($a7->mulInt64($b2, 24))->addInt64($a8->mulInt64($b1, 24)) - ->addInt64($a9->mulInt64($b0, 24)); - $s10 = $c10->addInt64($a0->mulInt64($b10, 24))->addInt64($a1->mulInt64($b9, 24))->addInt64($a2->mulInt64($b8, 24)) - ->addInt64($a3->mulInt64($b7, 24))->addInt64($a4->mulInt64($b6, 24))->addInt64($a5->mulInt64($b5, 24)) - ->addInt64($a6->mulInt64($b4, 24))->addInt64($a7->mulInt64($b3, 24))->addInt64($a8->mulInt64($b2, 24)) - ->addInt64($a9->mulInt64($b1, 24))->addInt64($a10->mulInt64($b0, 24)); - $s11 = $c11->addInt64($a0->mulInt64($b11, 24))->addInt64($a1->mulInt64($b10, 24))->addInt64($a2->mulInt64($b9, 24)) - ->addInt64($a3->mulInt64($b8, 24))->addInt64($a4->mulInt64($b7, 24))->addInt64($a5->mulInt64($b6, 24)) - ->addInt64($a6->mulInt64($b5, 24))->addInt64($a7->mulInt64($b4, 24))->addInt64($a8->mulInt64($b3, 24)) - ->addInt64($a9->mulInt64($b2, 24))->addInt64($a10->mulInt64($b1, 24))->addInt64($a11->mulInt64($b0, 24)); - $s12 = $a1->mulInt64($b11, 24)->addInt64($a2->mulInt64($b10, 24))->addInt64($a3->mulInt64($b9, 24)) - ->addInt64($a4->mulInt64($b8, 24))->addInt64($a5->mulInt64($b7, 24))->addInt64($a6->mulInt64($b6, 24)) - ->addInt64($a7->mulInt64($b5, 24))->addInt64($a8->mulInt64($b4, 24))->addInt64($a9->mulInt64($b3, 24)) - ->addInt64($a10->mulInt64($b2, 24))->addInt64($a11->mulInt64($b1, 24)); - $s13 = $a2->mulInt64($b11, 24)->addInt64($a3->mulInt64($b10, 24))->addInt64($a4->mulInt64($b9, 24)) - ->addInt64($a5->mulInt64($b8, 24))->addInt64($a6->mulInt64($b7, 24))->addInt64($a7->mulInt64($b6, 24)) - ->addInt64($a8->mulInt64($b5, 24))->addInt64($a9->mulInt64($b4, 24))->addInt64($a10->mulInt64($b3, 24)) - ->addInt64($a11->mulInt64($b2, 24)); - $s14 = $a3->mulInt64($b11, 24)->addInt64($a4->mulInt64($b10, 24))->addInt64($a5->mulInt64($b9, 24)) - ->addInt64($a6->mulInt64($b8, 24))->addInt64($a7->mulInt64($b7, 24))->addInt64($a8->mulInt64($b6, 24)) - ->addInt64($a9->mulInt64($b5, 24))->addInt64($a10->mulInt64($b4, 24))->addInt64($a11->mulInt64($b3, 24)); - $s15 = $a4->mulInt64($b11, 24)->addInt64($a5->mulInt64($b10, 24))->addInt64($a6->mulInt64($b9, 24)) - ->addInt64($a7->mulInt64($b8, 24))->addInt64($a8->mulInt64($b7, 24))->addInt64($a9->mulInt64($b6, 24)) - ->addInt64($a10->mulInt64($b5, 24))->addInt64($a11->mulInt64($b4, 24)); - $s16 = $a5->mulInt64($b11, 24)->addInt64($a6->mulInt64($b10, 24))->addInt64($a7->mulInt64($b9, 24)) - ->addInt64($a8->mulInt64($b8, 24))->addInt64($a9->mulInt64($b7, 24))->addInt64($a10->mulInt64($b6, 24)) - ->addInt64($a11->mulInt64($b5, 24)); - $s17 = $a6->mulInt64($b11, 24)->addInt64($a7->mulInt64($b10, 24))->addInt64($a8->mulInt64($b9, 24)) - ->addInt64($a9->mulInt64($b8, 24))->addInt64($a10->mulInt64($b7, 24))->addInt64($a11->mulInt64($b6, 24)); - $s18 = $a7->mulInt64($b11, 24)->addInt64($a8->mulInt64($b10, 24))->addInt64($a9->mulInt64($b9, 24)) - ->addInt64($a10->mulInt64($b8, 24))->addInt64($a11->mulInt64($b7, 24)); - $s19 = $a8->mulInt64($b11, 24)->addInt64($a9->mulInt64($b10, 24))->addInt64($a10->mulInt64($b9, 24)) - ->addInt64($a11->mulInt64($b8, 24)); - $s20 = $a9->mulInt64($b11, 24)->addInt64($a10->mulInt64($b10, 24))->addInt64($a11->mulInt64($b9, 24)); - $s21 = $a10->mulInt64($b11, 24)->addInt64($a11->mulInt64($b10, 24)); - $s22 = $a11->mulInt64($b11, 24); - $s23 = new ParagonIE_Sodium_Core32_Int64(); - - $carry0 = $s0->addInt(1 << 20)->shiftRight(21); - $s1 = $s1->addInt64($carry0); - $s0 = $s0->subInt64($carry0->shiftLeft(21)); - $carry2 = $s2->addInt(1 << 20)->shiftRight(21); - $s3 = $s3->addInt64($carry2); - $s2 = $s2->subInt64($carry2->shiftLeft(21)); - $carry4 = $s4->addInt(1 << 20)->shiftRight(21); - $s5 = $s5->addInt64($carry4); - $s4 = $s4->subInt64($carry4->shiftLeft(21)); - $carry6 = $s6->addInt(1 << 20)->shiftRight(21); - $s7 = $s7->addInt64($carry6); - $s6 = $s6->subInt64($carry6->shiftLeft(21)); - $carry8 = $s8->addInt(1 << 20)->shiftRight(21); - $s9 = $s9->addInt64($carry8); - $s8 = $s8->subInt64($carry8->shiftLeft(21)); - $carry10 = $s10->addInt(1 << 20)->shiftRight(21); - $s11 = $s11->addInt64($carry10); - $s10 = $s10->subInt64($carry10->shiftLeft(21)); - $carry12 = $s12->addInt(1 << 20)->shiftRight(21); - $s13 = $s13->addInt64($carry12); - $s12 = $s12->subInt64($carry12->shiftLeft(21)); - $carry14 = $s14->addInt(1 << 20)->shiftRight(21); - $s15 = $s15->addInt64($carry14); - $s14 = $s14->subInt64($carry14->shiftLeft(21)); - $carry16 = $s16->addInt(1 << 20)->shiftRight(21); - $s17 = $s17->addInt64($carry16); - $s16 = $s16->subInt64($carry16->shiftLeft(21)); - $carry18 = $s18->addInt(1 << 20)->shiftRight(21); - $s19 = $s19->addInt64($carry18); - $s18 = $s18->subInt64($carry18->shiftLeft(21)); - $carry20 = $s20->addInt(1 << 20)->shiftRight(21); - $s21 = $s21->addInt64($carry20); - $s20 = $s20->subInt64($carry20->shiftLeft(21)); - $carry22 = $s22->addInt(1 << 20)->shiftRight(21); - $s23 = $s23->addInt64($carry22); - $s22 = $s22->subInt64($carry22->shiftLeft(21)); - - $carry1 = $s1->addInt(1 << 20)->shiftRight(21); - $s2 = $s2->addInt64($carry1); - $s1 = $s1->subInt64($carry1->shiftLeft(21)); - $carry3 = $s3->addInt(1 << 20)->shiftRight(21); - $s4 = $s4->addInt64($carry3); - $s3 = $s3->subInt64($carry3->shiftLeft(21)); - $carry5 = $s5->addInt(1 << 20)->shiftRight(21); - $s6 = $s6->addInt64($carry5); - $s5 = $s5->subInt64($carry5->shiftLeft(21)); - $carry7 = $s7->addInt(1 << 20)->shiftRight(21); - $s8 = $s8->addInt64($carry7); - $s7 = $s7->subInt64($carry7->shiftLeft(21)); - $carry9 = $s9->addInt(1 << 20)->shiftRight(21); - $s10 = $s10->addInt64($carry9); - $s9 = $s9->subInt64($carry9->shiftLeft(21)); - $carry11 = $s11->addInt(1 << 20)->shiftRight(21); - $s12 = $s12->addInt64($carry11); - $s11 = $s11->subInt64($carry11->shiftLeft(21)); - $carry13 = $s13->addInt(1 << 20)->shiftRight(21); - $s14 = $s14->addInt64($carry13); - $s13 = $s13->subInt64($carry13->shiftLeft(21)); - $carry15 = $s15->addInt(1 << 20)->shiftRight(21); - $s16 = $s16->addInt64($carry15); - $s15 = $s15->subInt64($carry15->shiftLeft(21)); - $carry17 = $s17->addInt(1 << 20)->shiftRight(21); - $s18 = $s18->addInt64($carry17); - $s17 = $s17->subInt64($carry17->shiftLeft(21)); - $carry19 = $s19->addInt(1 << 20)->shiftRight(21); - $s20 = $s20->addInt64($carry19); - $s19 = $s19->subInt64($carry19->shiftLeft(21)); - $carry21 = $s21->addInt(1 << 20)->shiftRight(21); - $s22 = $s22->addInt64($carry21); - $s21 = $s21->subInt64($carry21->shiftLeft(21)); - - $s11 = $s11->addInt64($s23->mulInt(666643, 20)); - $s12 = $s12->addInt64($s23->mulInt(470296, 19)); - $s13 = $s13->addInt64($s23->mulInt(654183, 20)); - $s14 = $s14->subInt64($s23->mulInt(997805, 20)); - $s15 = $s15->addInt64($s23->mulInt(136657, 18)); - $s16 = $s16->subInt64($s23->mulInt(683901, 20)); - - $s10 = $s10->addInt64($s22->mulInt(666643, 20)); - $s11 = $s11->addInt64($s22->mulInt(470296, 19)); - $s12 = $s12->addInt64($s22->mulInt(654183, 20)); - $s13 = $s13->subInt64($s22->mulInt(997805, 20)); - $s14 = $s14->addInt64($s22->mulInt(136657, 18)); - $s15 = $s15->subInt64($s22->mulInt(683901, 20)); - - $s9 = $s9->addInt64($s21->mulInt(666643, 20)); - $s10 = $s10->addInt64($s21->mulInt(470296, 19)); - $s11 = $s11->addInt64($s21->mulInt(654183, 20)); - $s12 = $s12->subInt64($s21->mulInt(997805, 20)); - $s13 = $s13->addInt64($s21->mulInt(136657, 18)); - $s14 = $s14->subInt64($s21->mulInt(683901, 20)); - - $s8 = $s8->addInt64($s20->mulInt(666643, 20)); - $s9 = $s9->addInt64($s20->mulInt(470296, 19)); - $s10 = $s10->addInt64($s20->mulInt(654183, 20)); - $s11 = $s11->subInt64($s20->mulInt(997805, 20)); - $s12 = $s12->addInt64($s20->mulInt(136657, 18)); - $s13 = $s13->subInt64($s20->mulInt(683901, 20)); - - $s7 = $s7->addInt64($s19->mulInt(666643, 20)); - $s8 = $s8->addInt64($s19->mulInt(470296, 19)); - $s9 = $s9->addInt64($s19->mulInt(654183, 20)); - $s10 = $s10->subInt64($s19->mulInt(997805, 20)); - $s11 = $s11->addInt64($s19->mulInt(136657, 18)); - $s12 = $s12->subInt64($s19->mulInt(683901, 20)); - - $s6 = $s6->addInt64($s18->mulInt(666643, 20)); - $s7 = $s7->addInt64($s18->mulInt(470296, 19)); - $s8 = $s8->addInt64($s18->mulInt(654183, 20)); - $s9 = $s9->subInt64($s18->mulInt(997805, 20)); - $s10 = $s10->addInt64($s18->mulInt(136657, 18)); - $s11 = $s11->subInt64($s18->mulInt(683901, 20)); - - $carry6 = $s6->addInt(1 << 20)->shiftRight(21); - $s7 = $s7->addInt64($carry6); - $s6 = $s6->subInt64($carry6->shiftLeft(21)); - $carry8 = $s8->addInt(1 << 20)->shiftRight(21); - $s9 = $s9->addInt64($carry8); - $s8 = $s8->subInt64($carry8->shiftLeft(21)); - $carry10 = $s10->addInt(1 << 20)->shiftRight(21); - $s11 = $s11->addInt64($carry10); - $s10 = $s10->subInt64($carry10->shiftLeft(21)); - $carry12 = $s12->addInt(1 << 20)->shiftRight(21); - $s13 = $s13->addInt64($carry12); - $s12 = $s12->subInt64($carry12->shiftLeft(21)); - $carry14 = $s14->addInt(1 << 20)->shiftRight(21); - $s15 = $s15->addInt64($carry14); - $s14 = $s14->subInt64($carry14->shiftLeft(21)); - $carry16 = $s16->addInt(1 << 20)->shiftRight(21); - $s17 = $s17->addInt64($carry16); - $s16 = $s16->subInt64($carry16->shiftLeft(21)); - - $carry7 = $s7->addInt(1 << 20)->shiftRight(21); - $s8 = $s8->addInt64($carry7); - $s7 = $s7->subInt64($carry7->shiftLeft(21)); - $carry9 = $s9->addInt(1 << 20)->shiftRight(21); - $s10 = $s10->addInt64($carry9); - $s9 = $s9->subInt64($carry9->shiftLeft(21)); - $carry11 = $s11->addInt(1 << 20)->shiftRight(21); - $s12 = $s12->addInt64($carry11); - $s11 = $s11->subInt64($carry11->shiftLeft(21)); - $carry13 = $s13->addInt(1 << 20)->shiftRight(21); - $s14 = $s14->addInt64($carry13); - $s13 = $s13->subInt64($carry13->shiftLeft(21)); - $carry15 = $s15->addInt(1 << 20)->shiftRight(21); - $s16 = $s16->addInt64($carry15); - $s15 = $s15->subInt64($carry15->shiftLeft(21)); - - $s5 = $s5->addInt64($s17->mulInt(666643, 20)); - $s6 = $s6->addInt64($s17->mulInt(470296, 19)); - $s7 = $s7->addInt64($s17->mulInt(654183, 20)); - $s8 = $s8->subInt64($s17->mulInt(997805, 20)); - $s9 = $s9->addInt64($s17->mulInt(136657, 18)); - $s10 = $s10->subInt64($s17->mulInt(683901, 20)); - - $s4 = $s4->addInt64($s16->mulInt(666643, 20)); - $s5 = $s5->addInt64($s16->mulInt(470296, 19)); - $s6 = $s6->addInt64($s16->mulInt(654183, 20)); - $s7 = $s7->subInt64($s16->mulInt(997805, 20)); - $s8 = $s8->addInt64($s16->mulInt(136657, 18)); - $s9 = $s9->subInt64($s16->mulInt(683901, 20)); - - $s3 = $s3->addInt64($s15->mulInt(666643, 20)); - $s4 = $s4->addInt64($s15->mulInt(470296, 19)); - $s5 = $s5->addInt64($s15->mulInt(654183, 20)); - $s6 = $s6->subInt64($s15->mulInt(997805, 20)); - $s7 = $s7->addInt64($s15->mulInt(136657, 18)); - $s8 = $s8->subInt64($s15->mulInt(683901, 20)); - - $s2 = $s2->addInt64($s14->mulInt(666643, 20)); - $s3 = $s3->addInt64($s14->mulInt(470296, 19)); - $s4 = $s4->addInt64($s14->mulInt(654183, 20)); - $s5 = $s5->subInt64($s14->mulInt(997805, 20)); - $s6 = $s6->addInt64($s14->mulInt(136657, 18)); - $s7 = $s7->subInt64($s14->mulInt(683901, 20)); - - $s1 = $s1->addInt64($s13->mulInt(666643, 20)); - $s2 = $s2->addInt64($s13->mulInt(470296, 19)); - $s3 = $s3->addInt64($s13->mulInt(654183, 20)); - $s4 = $s4->subInt64($s13->mulInt(997805, 20)); - $s5 = $s5->addInt64($s13->mulInt(136657, 18)); - $s6 = $s6->subInt64($s13->mulInt(683901, 20)); - - $s0 = $s0->addInt64($s12->mulInt(666643, 20)); - $s1 = $s1->addInt64($s12->mulInt(470296, 19)); - $s2 = $s2->addInt64($s12->mulInt(654183, 20)); - $s3 = $s3->subInt64($s12->mulInt(997805, 20)); - $s4 = $s4->addInt64($s12->mulInt(136657, 18)); - $s5 = $s5->subInt64($s12->mulInt(683901, 20)); - $s12 = new ParagonIE_Sodium_Core32_Int64(); - - $carry0 = $s0->addInt(1 << 20)->shiftRight(21); - $s1 = $s1->addInt64($carry0); - $s0 = $s0->subInt64($carry0->shiftLeft(21)); - $carry2 = $s2->addInt(1 << 20)->shiftRight(21); - $s3 = $s3->addInt64($carry2); - $s2 = $s2->subInt64($carry2->shiftLeft(21)); - $carry4 = $s4->addInt(1 << 20)->shiftRight(21); - $s5 = $s5->addInt64($carry4); - $s4 = $s4->subInt64($carry4->shiftLeft(21)); - $carry6 = $s6->addInt(1 << 20)->shiftRight(21); - $s7 = $s7->addInt64($carry6); - $s6 = $s6->subInt64($carry6->shiftLeft(21)); - $carry8 = $s8->addInt(1 << 20)->shiftRight(21); - $s9 = $s9->addInt64($carry8); - $s8 = $s8->subInt64($carry8->shiftLeft(21)); - $carry10 = $s10->addInt(1 << 20)->shiftRight(21); - $s11 = $s11->addInt64($carry10); - $s10 = $s10->subInt64($carry10->shiftLeft(21)); - - $carry1 = $s1->addInt(1 << 20)->shiftRight(21); - $s2 = $s2->addInt64($carry1); - $s1 = $s1->subInt64($carry1->shiftLeft(21)); - $carry3 = $s3->addInt(1 << 20)->shiftRight(21); - $s4 = $s4->addInt64($carry3); - $s3 = $s3->subInt64($carry3->shiftLeft(21)); - $carry5 = $s5->addInt(1 << 20)->shiftRight(21); - $s6 = $s6->addInt64($carry5); - $s5 = $s5->subInt64($carry5->shiftLeft(21)); - $carry7 = $s7->addInt(1 << 20)->shiftRight(21); - $s8 = $s8->addInt64($carry7); - $s7 = $s7->subInt64($carry7->shiftLeft(21)); - $carry9 = $s9->addInt(1 << 20)->shiftRight(21); - $s10 = $s10->addInt64($carry9); - $s9 = $s9->subInt64($carry9->shiftLeft(21)); - $carry11 = $s11->addInt(1 << 20)->shiftRight(21); - $s12 = $s12->addInt64($carry11); - $s11 = $s11->subInt64($carry11->shiftLeft(21)); - - $s0 = $s0->addInt64($s12->mulInt(666643, 20)); - $s1 = $s1->addInt64($s12->mulInt(470296, 19)); - $s2 = $s2->addInt64($s12->mulInt(654183, 20)); - $s3 = $s3->subInt64($s12->mulInt(997805, 20)); - $s4 = $s4->addInt64($s12->mulInt(136657, 18)); - $s5 = $s5->subInt64($s12->mulInt(683901, 20)); - $s12 = new ParagonIE_Sodium_Core32_Int64(); - - $carry0 = $s0->shiftRight(21); - $s1 = $s1->addInt64($carry0); - $s0 = $s0->subInt64($carry0->shiftLeft(21)); - $carry1 = $s1->shiftRight(21); - $s2 = $s2->addInt64($carry1); - $s1 = $s1->subInt64($carry1->shiftLeft(21)); - $carry2 = $s2->shiftRight(21); - $s3 = $s3->addInt64($carry2); - $s2 = $s2->subInt64($carry2->shiftLeft(21)); - $carry3 = $s3->shiftRight(21); - $s4 = $s4->addInt64($carry3); - $s3 = $s3->subInt64($carry3->shiftLeft(21)); - $carry4 = $s4->shiftRight(21); - $s5 = $s5->addInt64($carry4); - $s4 = $s4->subInt64($carry4->shiftLeft(21)); - $carry5 = $s5->shiftRight(21); - $s6 = $s6->addInt64($carry5); - $s5 = $s5->subInt64($carry5->shiftLeft(21)); - $carry6 = $s6->shiftRight(21); - $s7 = $s7->addInt64($carry6); - $s6 = $s6->subInt64($carry6->shiftLeft(21)); - $carry7 = $s7->shiftRight(21); - $s8 = $s8->addInt64($carry7); - $s7 = $s7->subInt64($carry7->shiftLeft(21)); - $carry8 = $s8->shiftRight(21); - $s9 = $s9->addInt64($carry8); - $s8 = $s8->subInt64($carry8->shiftLeft(21)); - $carry9 = $s9->shiftRight(21); - $s10 = $s10->addInt64($carry9); - $s9 = $s9->subInt64($carry9->shiftLeft(21)); - $carry10 = $s10->shiftRight(21); - $s11 = $s11->addInt64($carry10); - $s10 = $s10->subInt64($carry10->shiftLeft(21)); - $carry11 = $s11->shiftRight(21); - $s12 = $s12->addInt64($carry11); - $s11 = $s11->subInt64($carry11->shiftLeft(21)); - - $s0 = $s0->addInt64($s12->mulInt(666643, 20)); - $s1 = $s1->addInt64($s12->mulInt(470296, 19)); - $s2 = $s2->addInt64($s12->mulInt(654183, 20)); - $s3 = $s3->subInt64($s12->mulInt(997805, 20)); - $s4 = $s4->addInt64($s12->mulInt(136657, 18)); - $s5 = $s5->subInt64($s12->mulInt(683901, 20)); - - $carry0 = $s0->shiftRight(21); - $s1 = $s1->addInt64($carry0); - $s0 = $s0->subInt64($carry0->shiftLeft(21)); - $carry1 = $s1->shiftRight(21); - $s2 = $s2->addInt64($carry1); - $s1 = $s1->subInt64($carry1->shiftLeft(21)); - $carry2 = $s2->shiftRight(21); - $s3 = $s3->addInt64($carry2); - $s2 = $s2->subInt64($carry2->shiftLeft(21)); - $carry3 = $s3->shiftRight(21); - $s4 = $s4->addInt64($carry3); - $s3 = $s3->subInt64($carry3->shiftLeft(21)); - $carry4 = $s4->shiftRight(21); - $s5 = $s5->addInt64($carry4); - $s4 = $s4->subInt64($carry4->shiftLeft(21)); - $carry5 = $s5->shiftRight(21); - $s6 = $s6->addInt64($carry5); - $s5 = $s5->subInt64($carry5->shiftLeft(21)); - $carry6 = $s6->shiftRight(21); - $s7 = $s7->addInt64($carry6); - $s6 = $s6->subInt64($carry6->shiftLeft(21)); - $carry7 = $s7->shiftRight(21); - $s8 = $s8->addInt64($carry7); - $s7 = $s7->subInt64($carry7->shiftLeft(21)); - $carry8 = $s10->shiftRight(21); - $s9 = $s9->addInt64($carry8); - $s8 = $s8->subInt64($carry8->shiftLeft(21)); - $carry9 = $s9->shiftRight(21); - $s10 = $s10->addInt64($carry9); - $s9 = $s9->subInt64($carry9->shiftLeft(21)); - $carry10 = $s10->shiftRight(21); - $s11 = $s11->addInt64($carry10); - $s10 = $s10->subInt64($carry10->shiftLeft(21)); - - $S0 = $s0->toInt(); - $S1 = $s1->toInt(); - $S2 = $s2->toInt(); - $S3 = $s3->toInt(); - $S4 = $s4->toInt(); - $S5 = $s5->toInt(); - $S6 = $s6->toInt(); - $S7 = $s7->toInt(); - $S8 = $s8->toInt(); - $S9 = $s9->toInt(); - $S10 = $s10->toInt(); - $S11 = $s11->toInt(); - - /** - * @var array - */ - $arr = array( - (int) (0xff & ($S0 >> 0)), - (int) (0xff & ($S0 >> 8)), - (int) (0xff & (($S0 >> 16) | ($S1 << 5))), - (int) (0xff & ($S1 >> 3)), - (int) (0xff & ($S1 >> 11)), - (int) (0xff & (($S1 >> 19) | ($S2 << 2))), - (int) (0xff & ($S2 >> 6)), - (int) (0xff & (($S2 >> 14) | ($S3 << 7))), - (int) (0xff & ($S3 >> 1)), - (int) (0xff & ($S3 >> 9)), - (int) (0xff & (($S3 >> 17) | ($S4 << 4))), - (int) (0xff & ($S4 >> 4)), - (int) (0xff & ($S4 >> 12)), - (int) (0xff & (($S4 >> 20) | ($S5 << 1))), - (int) (0xff & ($S5 >> 7)), - (int) (0xff & (($S5 >> 15) | ($S6 << 6))), - (int) (0xff & ($S6 >> 2)), - (int) (0xff & ($S6 >> 10)), - (int) (0xff & (($S6 >> 18) | ($S7 << 3))), - (int) (0xff & ($S7 >> 5)), - (int) (0xff & ($S7 >> 13)), - (int) (0xff & ($S8 >> 0)), - (int) (0xff & ($S8 >> 8)), - (int) (0xff & (($S8 >> 16) | ($S9 << 5))), - (int) (0xff & ($S9 >> 3)), - (int) (0xff & ($S9 >> 11)), - (int) (0xff & (($S9 >> 19) | ($S10 << 2))), - (int) (0xff & ($S10 >> 6)), - (int) (0xff & (($S10 >> 14) | ($S11 << 7))), - (int) (0xff & ($S11 >> 1)), - (int) (0xff & ($S11 >> 9)), - (int) (0xff & ($S11 >> 17)) - ); - return self::intArrayToString($arr); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $s - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sc_reduce($s) - { - /** - * @var ParagonIE_Sodium_Core32_Int64 $s0 - * @var ParagonIE_Sodium_Core32_Int64 $s1 - * @var ParagonIE_Sodium_Core32_Int64 $s2 - * @var ParagonIE_Sodium_Core32_Int64 $s3 - * @var ParagonIE_Sodium_Core32_Int64 $s4 - * @var ParagonIE_Sodium_Core32_Int64 $s5 - * @var ParagonIE_Sodium_Core32_Int64 $s6 - * @var ParagonIE_Sodium_Core32_Int64 $s7 - * @var ParagonIE_Sodium_Core32_Int64 $s8 - * @var ParagonIE_Sodium_Core32_Int64 $s9 - * @var ParagonIE_Sodium_Core32_Int64 $s10 - * @var ParagonIE_Sodium_Core32_Int64 $s11 - * @var ParagonIE_Sodium_Core32_Int64 $s12 - * @var ParagonIE_Sodium_Core32_Int64 $s13 - * @var ParagonIE_Sodium_Core32_Int64 $s14 - * @var ParagonIE_Sodium_Core32_Int64 $s15 - * @var ParagonIE_Sodium_Core32_Int64 $s16 - * @var ParagonIE_Sodium_Core32_Int64 $s17 - * @var ParagonIE_Sodium_Core32_Int64 $s18 - * @var ParagonIE_Sodium_Core32_Int64 $s19 - * @var ParagonIE_Sodium_Core32_Int64 $s20 - * @var ParagonIE_Sodium_Core32_Int64 $s21 - * @var ParagonIE_Sodium_Core32_Int64 $s22 - * @var ParagonIE_Sodium_Core32_Int64 $s23 - */ - $s0 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($s, 0, 3))); - $s1 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 2, 4)) >> 5)); - $s2 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 5, 3)) >> 2)); - $s3 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 7, 4)) >> 7)); - $s4 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 10, 4)) >> 4)); - $s5 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 13, 3)) >> 1)); - $s6 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 15, 4)) >> 6)); - $s7 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 18, 4)) >> 3)); - $s8 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($s, 21, 3))); - $s9 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 23, 4)) >> 5)); - $s10 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 26, 3)) >> 2)); - $s11 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 28, 4)) >> 7)); - $s12 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 31, 4)) >> 4)); - $s13 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 34, 3)) >> 1)); - $s14 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 36, 4)) >> 6)); - $s15 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 39, 4)) >> 3)); - $s16 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($s, 42, 3))); - $s17 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 44, 4)) >> 5)); - $s18 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 47, 3)) >> 2)); - $s19 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 49, 4)) >> 7)); - $s20 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 52, 4)) >> 4)); - $s21 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 55, 3)) >> 1)); - $s22 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 57, 4)) >> 6)); - $s23 = ParagonIE_Sodium_Core32_Int64::fromInt(0x1fffffff & (self::load_4(self::substr($s, 60, 4)) >> 3)); - - $s11 = $s11->addInt64($s23->mulInt(666643, 20)); - $s12 = $s12->addInt64($s23->mulInt(470296, 19)); - $s13 = $s13->addInt64($s23->mulInt(654183, 20)); - $s14 = $s14->subInt64($s23->mulInt(997805, 20)); - $s15 = $s15->addInt64($s23->mulInt(136657, 18)); - $s16 = $s16->subInt64($s23->mulInt(683901, 20)); - - $s10 = $s10->addInt64($s22->mulInt(666643, 20)); - $s11 = $s11->addInt64($s22->mulInt(470296, 19)); - $s12 = $s12->addInt64($s22->mulInt(654183, 20)); - $s13 = $s13->subInt64($s22->mulInt(997805, 20)); - $s14 = $s14->addInt64($s22->mulInt(136657, 18)); - $s15 = $s15->subInt64($s22->mulInt(683901, 20)); - - $s9 = $s9->addInt64($s21->mulInt(666643, 20)); - $s10 = $s10->addInt64($s21->mulInt(470296, 19)); - $s11 = $s11->addInt64($s21->mulInt(654183, 20)); - $s12 = $s12->subInt64($s21->mulInt(997805, 20)); - $s13 = $s13->addInt64($s21->mulInt(136657, 18)); - $s14 = $s14->subInt64($s21->mulInt(683901, 20)); - - $s8 = $s8->addInt64($s20->mulInt(666643, 20)); - $s9 = $s9->addInt64($s20->mulInt(470296, 19)); - $s10 = $s10->addInt64($s20->mulInt(654183, 20)); - $s11 = $s11->subInt64($s20->mulInt(997805, 20)); - $s12 = $s12->addInt64($s20->mulInt(136657, 18)); - $s13 = $s13->subInt64($s20->mulInt(683901, 20)); - - $s7 = $s7->addInt64($s19->mulInt(666643, 20)); - $s8 = $s8->addInt64($s19->mulInt(470296, 19)); - $s9 = $s9->addInt64($s19->mulInt(654183, 20)); - $s10 = $s10->subInt64($s19->mulInt(997805, 20)); - $s11 = $s11->addInt64($s19->mulInt(136657, 18)); - $s12 = $s12->subInt64($s19->mulInt(683901, 20)); - - $s6 = $s6->addInt64($s18->mulInt(666643, 20)); - $s7 = $s7->addInt64($s18->mulInt(470296, 19)); - $s8 = $s8->addInt64($s18->mulInt(654183, 20)); - $s9 = $s9->subInt64($s18->mulInt(997805, 20)); - $s10 = $s10->addInt64($s18->mulInt(136657, 18)); - $s11 = $s11->subInt64($s18->mulInt(683901, 20)); - - $carry6 = $s6->addInt(1 << 20)->shiftRight(21); - $s7 = $s7->addInt64($carry6); - $s6 = $s6->subInt64($carry6->shiftLeft(21)); - $carry8 = $s8->addInt(1 << 20)->shiftRight(21); - $s9 = $s9->addInt64($carry8); - $s8 = $s8->subInt64($carry8->shiftLeft(21)); - $carry10 = $s10->addInt(1 << 20)->shiftRight(21); - $s11 = $s11->addInt64($carry10); - $s10 = $s10->subInt64($carry10->shiftLeft(21)); - $carry12 = $s12->addInt(1 << 20)->shiftRight(21); - $s13 = $s13->addInt64($carry12); - $s12 = $s12->subInt64($carry12->shiftLeft(21)); - $carry14 = $s14->addInt(1 << 20)->shiftRight(21); - $s15 = $s15->addInt64($carry14); - $s14 = $s14->subInt64($carry14->shiftLeft(21)); - $carry16 = $s16->addInt(1 << 20)->shiftRight(21); - $s17 = $s17->addInt64($carry16); - $s16 = $s16->subInt64($carry16->shiftLeft(21)); - - $carry7 = $s7->addInt(1 << 20)->shiftRight(21); - $s8 = $s8->addInt64($carry7); - $s7 = $s7->subInt64($carry7->shiftLeft(21)); - $carry9 = $s9->addInt(1 << 20)->shiftRight(21); - $s10 = $s10->addInt64($carry9); - $s9 = $s9->subInt64($carry9->shiftLeft(21)); - $carry11 = $s11->addInt(1 << 20)->shiftRight(21); - $s12 = $s12->addInt64($carry11); - $s11 = $s11->subInt64($carry11->shiftLeft(21)); - $carry13 = $s13->addInt(1 << 20)->shiftRight(21); - $s14 = $s14->addInt64($carry13); - $s13 = $s13->subInt64($carry13->shiftLeft(21)); - $carry15 = $s15->addInt(1 << 20)->shiftRight(21); - $s16 = $s16->addInt64($carry15); - $s15 = $s15->subInt64($carry15->shiftLeft(21)); - - $s5 = $s5->addInt64($s17->mulInt(666643, 20)); - $s6 = $s6->addInt64($s17->mulInt(470296, 19)); - $s7 = $s7->addInt64($s17->mulInt(654183, 20)); - $s8 = $s8->subInt64($s17->mulInt(997805, 20)); - $s9 = $s9->addInt64($s17->mulInt(136657, 18)); - $s10 = $s10->subInt64($s17->mulInt(683901, 20)); - - $s4 = $s4->addInt64($s16->mulInt(666643, 20)); - $s5 = $s5->addInt64($s16->mulInt(470296, 19)); - $s6 = $s6->addInt64($s16->mulInt(654183, 20)); - $s7 = $s7->subInt64($s16->mulInt(997805, 20)); - $s8 = $s8->addInt64($s16->mulInt(136657, 18)); - $s9 = $s9->subInt64($s16->mulInt(683901, 20)); - - $s3 = $s3->addInt64($s15->mulInt(666643, 20)); - $s4 = $s4->addInt64($s15->mulInt(470296, 19)); - $s5 = $s5->addInt64($s15->mulInt(654183, 20)); - $s6 = $s6->subInt64($s15->mulInt(997805, 20)); - $s7 = $s7->addInt64($s15->mulInt(136657, 18)); - $s8 = $s8->subInt64($s15->mulInt(683901, 20)); - - $s2 = $s2->addInt64($s14->mulInt(666643, 20)); - $s3 = $s3->addInt64($s14->mulInt(470296, 19)); - $s4 = $s4->addInt64($s14->mulInt(654183, 20)); - $s5 = $s5->subInt64($s14->mulInt(997805, 20)); - $s6 = $s6->addInt64($s14->mulInt(136657, 18)); - $s7 = $s7->subInt64($s14->mulInt(683901, 20)); - - $s1 = $s1->addInt64($s13->mulInt(666643, 20)); - $s2 = $s2->addInt64($s13->mulInt(470296, 19)); - $s3 = $s3->addInt64($s13->mulInt(654183, 20)); - $s4 = $s4->subInt64($s13->mulInt(997805, 20)); - $s5 = $s5->addInt64($s13->mulInt(136657, 18)); - $s6 = $s6->subInt64($s13->mulInt(683901, 20)); - - $s0 = $s0->addInt64($s12->mulInt(666643, 20)); - $s1 = $s1->addInt64($s12->mulInt(470296, 19)); - $s2 = $s2->addInt64($s12->mulInt(654183, 20)); - $s3 = $s3->subInt64($s12->mulInt(997805, 20)); - $s4 = $s4->addInt64($s12->mulInt(136657, 18)); - $s5 = $s5->subInt64($s12->mulInt(683901, 20)); - $s12 = new ParagonIE_Sodium_Core32_Int64(); - - $carry0 = $s0->addInt(1 << 20)->shiftRight(21); - $s1 = $s1->addInt64($carry0); - $s0 = $s0->subInt64($carry0->shiftLeft(21)); - $carry2 = $s2->addInt(1 << 20)->shiftRight(21); - $s3 = $s3->addInt64($carry2); - $s2 = $s2->subInt64($carry2->shiftLeft(21)); - $carry4 = $s4->addInt(1 << 20)->shiftRight(21); - $s5 = $s5->addInt64($carry4); - $s4 = $s4->subInt64($carry4->shiftLeft(21)); - $carry6 = $s6->addInt(1 << 20)->shiftRight(21); - $s7 = $s7->addInt64($carry6); - $s6 = $s6->subInt64($carry6->shiftLeft(21)); - $carry8 = $s8->addInt(1 << 20)->shiftRight(21); - $s9 = $s9->addInt64($carry8); - $s8 = $s8->subInt64($carry8->shiftLeft(21)); - $carry10 = $s10->addInt(1 << 20)->shiftRight(21); - $s11 = $s11->addInt64($carry10); - $s10 = $s10->subInt64($carry10->shiftLeft(21)); - $carry1 = $s1->addInt(1 << 20)->shiftRight(21); - $s2 = $s2->addInt64($carry1); - $s1 = $s1->subInt64($carry1->shiftLeft(21)); - $carry3 = $s3->addInt(1 << 20)->shiftRight(21); - $s4 = $s4->addInt64($carry3); - $s3 = $s3->subInt64($carry3->shiftLeft(21)); - $carry5 = $s5->addInt(1 << 20)->shiftRight(21); - $s6 = $s6->addInt64($carry5); - $s5 = $s5->subInt64($carry5->shiftLeft(21)); - $carry7 = $s7->addInt(1 << 20)->shiftRight(21); - $s8 = $s8->addInt64($carry7); - $s7 = $s7->subInt64($carry7->shiftLeft(21)); - $carry9 = $s9->addInt(1 << 20)->shiftRight(21); - $s10 = $s10->addInt64($carry9); - $s9 = $s9->subInt64($carry9->shiftLeft(21)); - $carry11 = $s11->addInt(1 << 20)->shiftRight(21); - $s12 = $s12->addInt64($carry11); - $s11 = $s11->subInt64($carry11->shiftLeft(21)); - - $s0 = $s0->addInt64($s12->mulInt(666643, 20)); - $s1 = $s1->addInt64($s12->mulInt(470296, 19)); - $s2 = $s2->addInt64($s12->mulInt(654183, 20)); - $s3 = $s3->subInt64($s12->mulInt(997805, 20)); - $s4 = $s4->addInt64($s12->mulInt(136657, 18)); - $s5 = $s5->subInt64($s12->mulInt(683901, 20)); - $s12 = new ParagonIE_Sodium_Core32_Int64(); - - $carry0 = $s0->shiftRight(21); - $s1 = $s1->addInt64($carry0); - $s0 = $s0->subInt64($carry0->shiftLeft(21)); - $carry1 = $s1->shiftRight(21); - $s2 = $s2->addInt64($carry1); - $s1 = $s1->subInt64($carry1->shiftLeft(21)); - $carry2 = $s2->shiftRight(21); - $s3 = $s3->addInt64($carry2); - $s2 = $s2->subInt64($carry2->shiftLeft(21)); - $carry3 = $s3->shiftRight(21); - $s4 = $s4->addInt64($carry3); - $s3 = $s3->subInt64($carry3->shiftLeft(21)); - $carry4 = $s4->shiftRight(21); - $s5 = $s5->addInt64($carry4); - $s4 = $s4->subInt64($carry4->shiftLeft(21)); - $carry5 = $s5->shiftRight(21); - $s6 = $s6->addInt64($carry5); - $s5 = $s5->subInt64($carry5->shiftLeft(21)); - $carry6 = $s6->shiftRight(21); - $s7 = $s7->addInt64($carry6); - $s6 = $s6->subInt64($carry6->shiftLeft(21)); - $carry7 = $s7->shiftRight(21); - $s8 = $s8->addInt64($carry7); - $s7 = $s7->subInt64($carry7->shiftLeft(21)); - $carry8 = $s8->shiftRight(21); - $s9 = $s9->addInt64($carry8); - $s8 = $s8->subInt64($carry8->shiftLeft(21)); - $carry9 = $s9->shiftRight(21); - $s10 = $s10->addInt64($carry9); - $s9 = $s9->subInt64($carry9->shiftLeft(21)); - $carry10 = $s10->shiftRight(21); - $s11 = $s11->addInt64($carry10); - $s10 = $s10->subInt64($carry10->shiftLeft(21)); - $carry11 = $s11->shiftRight(21); - $s12 = $s12->addInt64($carry11); - $s11 = $s11->subInt64($carry11->shiftLeft(21)); - - $s0 = $s0->addInt64($s12->mulInt(666643, 20)); - $s1 = $s1->addInt64($s12->mulInt(470296, 19)); - $s2 = $s2->addInt64($s12->mulInt(654183, 20)); - $s3 = $s3->subInt64($s12->mulInt(997805, 20)); - $s4 = $s4->addInt64($s12->mulInt(136657, 18)); - $s5 = $s5->subInt64($s12->mulInt(683901, 20)); - - $carry0 = $s0->shiftRight(21); - $s1 = $s1->addInt64($carry0); - $s0 = $s0->subInt64($carry0->shiftLeft(21)); - $carry1 = $s1->shiftRight(21); - $s2 = $s2->addInt64($carry1); - $s1 = $s1->subInt64($carry1->shiftLeft(21)); - $carry2 = $s2->shiftRight(21); - $s3 = $s3->addInt64($carry2); - $s2 = $s2->subInt64($carry2->shiftLeft(21)); - $carry3 = $s3->shiftRight(21); - $s4 = $s4->addInt64($carry3); - $s3 = $s3->subInt64($carry3->shiftLeft(21)); - $carry4 = $s4->shiftRight(21); - $s5 = $s5->addInt64($carry4); - $s4 = $s4->subInt64($carry4->shiftLeft(21)); - $carry5 = $s5->shiftRight(21); - $s6 = $s6->addInt64($carry5); - $s5 = $s5->subInt64($carry5->shiftLeft(21)); - $carry6 = $s6->shiftRight(21); - $s7 = $s7->addInt64($carry6); - $s6 = $s6->subInt64($carry6->shiftLeft(21)); - $carry7 = $s7->shiftRight(21); - $s8 = $s8->addInt64($carry7); - $s7 = $s7->subInt64($carry7->shiftLeft(21)); - $carry8 = $s8->shiftRight(21); - $s9 = $s9->addInt64($carry8); - $s8 = $s8->subInt64($carry8->shiftLeft(21)); - $carry9 = $s9->shiftRight(21); - $s10 = $s10->addInt64($carry9); - $s9 = $s9->subInt64($carry9->shiftLeft(21)); - $carry10 = $s10->shiftRight(21); - $s11 = $s11->addInt64($carry10); - $s10 = $s10->subInt64($carry10->shiftLeft(21)); - - $S0 = $s0->toInt32()->toInt(); - $S1 = $s1->toInt32()->toInt(); - $S2 = $s2->toInt32()->toInt(); - $S3 = $s3->toInt32()->toInt(); - $S4 = $s4->toInt32()->toInt(); - $S5 = $s5->toInt32()->toInt(); - $S6 = $s6->toInt32()->toInt(); - $S7 = $s7->toInt32()->toInt(); - $S8 = $s8->toInt32()->toInt(); - $S9 = $s9->toInt32()->toInt(); - $S10 = $s10->toInt32()->toInt(); - $S11 = $s11->toInt32()->toInt(); - - /** - * @var array - */ - $arr = array( - (int) ($S0 >> 0), - (int) ($S0 >> 8), - (int) (($S0 >> 16) | ($S1 << 5)), - (int) ($S1 >> 3), - (int) ($S1 >> 11), - (int) (($S1 >> 19) | ($S2 << 2)), - (int) ($S2 >> 6), - (int) (($S2 >> 14) | ($S3 << 7)), - (int) ($S3 >> 1), - (int) ($S3 >> 9), - (int) (($S3 >> 17) | ($S4 << 4)), - (int) ($S4 >> 4), - (int) ($S4 >> 12), - (int) (($S4 >> 20) | ($S5 << 1)), - (int) ($S5 >> 7), - (int) (($S5 >> 15) | ($S6 << 6)), - (int) ($S6 >> 2), - (int) ($S6 >> 10), - (int) (($S6 >> 18) | ($S7 << 3)), - (int) ($S7 >> 5), - (int) ($S7 >> 13), - (int) ($S8 >> 0), - (int) ($S8 >> 8), - (int) (($S8 >> 16) | ($S9 << 5)), - (int) ($S9 >> 3), - (int) ($S9 >> 11), - (int) (($S9 >> 19) | ($S10 << 2)), - (int) ($S10 >> 6), - (int) (($S10 >> 14) | ($S11 << 7)), - (int) ($S11 >> 1), - (int) ($S11 >> 9), - (int) $S11 >> 17 - ); - return self::intArrayToString($arr); - } - - /** - * multiply by the order of the main subgroup l = 2^252+27742317777372353535851937790883648493 - * - * @param ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $A - * @return ParagonIE_Sodium_Core32_Curve25519_Ge_P3 - * @throws SodiumException - * @throws TypeError - */ - public static function ge_mul_l(ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $A) - { - /** @var array $aslide */ - $aslide = array( - 13, 0, 0, 0, 0, -1, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, - 0, 0, 0, -3, 0, 0, 0, 0, -13, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, -13, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, - 0, 0, 11, 0, 0, 0, 0, -13, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, -1, - 0, 0, 0, 0, 3, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, - 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 5, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 - ); - - /** @var array $Ai size 8 */ - $Ai = array(); - - # ge_p3_to_cached(&Ai[0], A); - $Ai[0] = self::ge_p3_to_cached($A); - # ge_p3_dbl(&t, A); - $t = self::ge_p3_dbl($A); - # ge_p1p1_to_p3(&A2, &t); - $A2 = self::ge_p1p1_to_p3($t); - - for ($i = 1; $i < 8; ++$i) { - # ge_add(&t, &A2, &Ai[0]); - $t = self::ge_add($A2, $Ai[$i - 1]); - # ge_p1p1_to_p3(&u, &t); - $u = self::ge_p1p1_to_p3($t); - # ge_p3_to_cached(&Ai[i], &u); - $Ai[$i] = self::ge_p3_to_cached($u); - } - - $r = self::ge_p3_0(); - for ($i = 252; $i >= 0; --$i) { - $t = self::ge_p3_dbl($r); - if ($aslide[$i] > 0) { - # ge_p1p1_to_p3(&u, &t); - $u = self::ge_p1p1_to_p3($t); - # ge_add(&t, &u, &Ai[aslide[i] / 2]); - $t = self::ge_add($u, $Ai[(int)($aslide[$i] / 2)]); - } elseif ($aslide[$i] < 0) { - # ge_p1p1_to_p3(&u, &t); - $u = self::ge_p1p1_to_p3($t); - # ge_sub(&t, &u, &Ai[(-aslide[i]) / 2]); - $t = self::ge_sub($u, $Ai[(int)(-$aslide[$i] / 2)]); - } - } - # ge_p1p1_to_p3(r, &t); - return self::ge_p1p1_to_p3($t); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Fe.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Fe.php deleted file mode 100644 index 5fe10f7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Fe.php +++ /dev/null @@ -1,185 +0,0 @@ - - */ - protected $container = array(); - - /** - * @var int - */ - protected $size = 10; - - /** - * @internal You should not use this directly from another application - * - * @param array $array - * @param bool $save_indexes - * @return self - * @throws SodiumException - * @throws TypeError - */ - public static function fromArray($array, $save_indexes = null) - { - $count = count($array); - if ($save_indexes) { - $keys = array_keys($array); - } else { - $keys = range(0, $count - 1); - } - $array = array_values($array); - - $obj = new ParagonIE_Sodium_Core32_Curve25519_Fe(); - if ($save_indexes) { - for ($i = 0; $i < $count; ++$i) { - $array[$i]->overflow = 0; - $obj->offsetSet($keys[$i], $array[$i]); - } - } else { - for ($i = 0; $i < $count; ++$i) { - $array[$i]->overflow = 0; - $obj->offsetSet($i, $array[$i]); - } - } - return $obj; - } - - /** - * @internal You should not use this directly from another application - * - * @param array $array - * @param bool $save_indexes - * @return self - * @throws SodiumException - * @throws TypeError - */ - public static function fromIntArray($array, $save_indexes = null) - { - $count = count($array); - if ($save_indexes) { - $keys = array_keys($array); - } else { - $keys = range(0, $count - 1); - } - $array = array_values($array); - $set = array(); - /** @var int $i */ - /** @var int $v */ - foreach ($array as $i => $v) { - $set[$i] = ParagonIE_Sodium_Core32_Int32::fromInt($v); - } - - $obj = new ParagonIE_Sodium_Core32_Curve25519_Fe(); - if ($save_indexes) { - for ($i = 0; $i < $count; ++$i) { - $set[$i]->overflow = 0; - $obj->offsetSet($keys[$i], $set[$i]); - } - } else { - for ($i = 0; $i < $count; ++$i) { - $set[$i]->overflow = 0; - $obj->offsetSet($i, $set[$i]); - } - } - return $obj; - } - - /** - * @internal You should not use this directly from another application - * - * @param mixed $offset - * @param mixed $value - * @return void - * @throws SodiumException - * @throws TypeError - */ - public function offsetSet($offset, $value) - { - if (!($value instanceof ParagonIE_Sodium_Core32_Int32)) { - throw new InvalidArgumentException('Expected an instance of ParagonIE_Sodium_Core32_Int32'); - } - if (is_null($offset)) { - $this->container[] = $value; - } else { - ParagonIE_Sodium_Core32_Util::declareScalarType($offset, 'int', 1); - $this->container[(int) $offset] = $value; - } - } - - /** - * @internal You should not use this directly from another application - * - * @param mixed $offset - * @return bool - * @psalm-suppress MixedArrayOffset - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - - /** - * @internal You should not use this directly from another application - * - * @param mixed $offset - * @return void - * @psalm-suppress MixedArrayOffset - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - - /** - * @internal You should not use this directly from another application - * - * @param mixed $offset - * @return ParagonIE_Sodium_Core32_Int32 - * @psalm-suppress MixedArrayOffset - */ - public function offsetGet($offset) - { - if (!isset($this->container[$offset])) { - $this->container[(int) $offset] = new ParagonIE_Sodium_Core32_Int32(); - } - /** @var ParagonIE_Sodium_Core32_Int32 $get */ - $get = $this->container[$offset]; - return $get; - } - - /** - * @internal You should not use this directly from another application - * - * @return array - */ - public function __debugInfo() - { - if (empty($this->container)) { - return array(); - } - $c = array( - (int) ($this->container[0]->toInt()), - (int) ($this->container[1]->toInt()), - (int) ($this->container[2]->toInt()), - (int) ($this->container[3]->toInt()), - (int) ($this->container[4]->toInt()), - (int) ($this->container[5]->toInt()), - (int) ($this->container[6]->toInt()), - (int) ($this->container[7]->toInt()), - (int) ($this->container[8]->toInt()), - (int) ($this->container[9]->toInt()) - ); - return array(implode(', ', $c)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/Cached.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/Cached.php deleted file mode 100644 index 970481f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/Cached.php +++ /dev/null @@ -1,65 +0,0 @@ -YplusX = $YplusX; - if ($YminusX === null) { - $YminusX = new ParagonIE_Sodium_Core32_Curve25519_Fe(); - } - $this->YminusX = $YminusX; - if ($Z === null) { - $Z = new ParagonIE_Sodium_Core32_Curve25519_Fe(); - } - $this->Z = $Z; - if ($T2d === null) { - $T2d = new ParagonIE_Sodium_Core32_Curve25519_Fe(); - } - $this->T2d = $T2d; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/P1p1.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/P1p1.php deleted file mode 100644 index ff10b1d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/P1p1.php +++ /dev/null @@ -1,67 +0,0 @@ -X = $x; - if ($y === null) { - $y = ParagonIE_Sodium_Core32_Curve25519::fe_0(); - } - $this->Y = $y; - if ($z === null) { - $z = ParagonIE_Sodium_Core32_Curve25519::fe_0(); - } - $this->Z = $z; - if ($t === null) { - $t = ParagonIE_Sodium_Core32_Curve25519::fe_0(); - } - $this->T = $t; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/P2.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/P2.php deleted file mode 100644 index 8a45a91..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/P2.php +++ /dev/null @@ -1,54 +0,0 @@ -X = $x; - if ($y === null) { - $y = new ParagonIE_Sodium_Core32_Curve25519_Fe(); - } - $this->Y = $y; - if ($z === null) { - $z = new ParagonIE_Sodium_Core32_Curve25519_Fe(); - } - $this->Z = $z; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/P3.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/P3.php deleted file mode 100644 index c9e4b16..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/P3.php +++ /dev/null @@ -1,65 +0,0 @@ -X = $x; - if ($y === null) { - $y = new ParagonIE_Sodium_Core32_Curve25519_Fe(); - } - $this->Y = $y; - if ($z === null) { - $z = new ParagonIE_Sodium_Core32_Curve25519_Fe(); - } - $this->Z = $z; - if ($t === null) { - $t = new ParagonIE_Sodium_Core32_Curve25519_Fe(); - } - $this->T = $t; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/Precomp.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/Precomp.php deleted file mode 100644 index b590b75..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Ge/Precomp.php +++ /dev/null @@ -1,56 +0,0 @@ -yplusx = $yplusx; - if ($yminusx === null) { - $yminusx = ParagonIE_Sodium_Core32_Curve25519::fe_0(); - } - $this->yminusx = $yminusx; - if ($xy2d === null) { - $xy2d = ParagonIE_Sodium_Core32_Curve25519::fe_0(); - } - $this->xy2d = $xy2d; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/H.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/H.php deleted file mode 100644 index 48c999a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Curve25519/H.php +++ /dev/null @@ -1,1467 +0,0 @@ ->>> Basically, int[32][8][3][10] - */ - protected static $base = array( - array( - array( - array(25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605), - array(-12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378), - array(-8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546), - ), - array( - array(-12815894, -12976347, -21581243, 11784320, -25355658, -2750717, -11717903, -3814571, -358445, -10211303), - array(-21703237, 6903825, 27185491, 6451973, -29577724, -9554005, -15616551, 11189268, -26829678, -5319081), - array(26966642, 11152617, 32442495, 15396054, 14353839, -12752335, -3128826, -9541118, -15472047, -4166697), - ), - array( - array(15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024), - array(16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574), - array(30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357), - ), - array( - array(-17036878, 13921892, 10945806, -6033431, 27105052, -16084379, -28926210, 15006023, 3284568, -6276540), - array(23599295, -8306047, -11193664, -7687416, 13236774, 10506355, 7464579, 9656445, 13059162, 10374397), - array(7798556, 16710257, 3033922, 2874086, 28997861, 2835604, 32406664, -3839045, -641708, -101325), - ), - array( - array(10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380), - array(4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306), - array(19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942), - ), - array( - array(-15371964, -12862754, 32573250, 4720197, -26436522, 5875511, -19188627, -15224819, -9818940, -12085777), - array(-8549212, 109983, 15149363, 2178705, 22900618, 4543417, 3044240, -15689887, 1762328, 14866737), - array(-18199695, -15951423, -10473290, 1707278, -17185920, 3916101, -28236412, 3959421, 27914454, 4383652), - ), - array( - array(5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766), - array(-30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701), - array(28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300), - ), - array( - array(14499471, -2729599, -33191113, -4254652, 28494862, 14271267, 30290735, 10876454, -33154098, 2381726), - array(-7195431, -2655363, -14730155, 462251, -27724326, 3941372, -6236617, 3696005, -32300832, 15351955), - array(27431194, 8222322, 16448760, -3907995, -18707002, 11938355, -32961401, -2970515, 29551813, 10109425), - ), - ), - array( - array( - array(-13657040, -13155431, -31283750, 11777098, 21447386, 6519384, -2378284, -1627556, 10092783, -4764171), - array(27939166, 14210322, 4677035, 16277044, -22964462, -12398139, -32508754, 12005538, -17810127, 12803510), - array(17228999, -15661624, -1233527, 300140, -1224870, -11714777, 30364213, -9038194, 18016357, 4397660), - ), - array( - array(-10958843, -7690207, 4776341, -14954238, 27850028, -15602212, -26619106, 14544525, -17477504, 982639), - array(29253598, 15796703, -2863982, -9908884, 10057023, 3163536, 7332899, -4120128, -21047696, 9934963), - array(5793303, 16271923, -24131614, -10116404, 29188560, 1206517, -14747930, 4559895, -30123922, -10897950), - ), - array( - array(-27643952, -11493006, 16282657, -11036493, 28414021, -15012264, 24191034, 4541697, -13338309, 5500568), - array(12650548, -1497113, 9052871, 11355358, -17680037, -8400164, -17430592, 12264343, 10874051, 13524335), - array(25556948, -3045990, 714651, 2510400, 23394682, -10415330, 33119038, 5080568, -22528059, 5376628), - ), - array( - array(-26088264, -4011052, -17013699, -3537628, -6726793, 1920897, -22321305, -9447443, 4535768, 1569007), - array(-2255422, 14606630, -21692440, -8039818, 28430649, 8775819, -30494562, 3044290, 31848280, 12543772), - array(-22028579, 2943893, -31857513, 6777306, 13784462, -4292203, -27377195, -2062731, 7718482, 14474653), - ), - array( - array(2385315, 2454213, -22631320, 46603, -4437935, -15680415, 656965, -7236665, 24316168, -5253567), - array(13741529, 10911568, -33233417, -8603737, -20177830, -1033297, 33040651, -13424532, -20729456, 8321686), - array(21060490, -2212744, 15712757, -4336099, 1639040, 10656336, 23845965, -11874838, -9984458, 608372), - ), - array( - array(-13672732, -15087586, -10889693, -7557059, -6036909, 11305547, 1123968, -6780577, 27229399, 23887), - array(-23244140, -294205, -11744728, 14712571, -29465699, -2029617, 12797024, -6440308, -1633405, 16678954), - array(-29500620, 4770662, -16054387, 14001338, 7830047, 9564805, -1508144, -4795045, -17169265, 4904953), - ), - array( - array(24059557, 14617003, 19037157, -15039908, 19766093, -14906429, 5169211, 16191880, 2128236, -4326833), - array(-16981152, 4124966, -8540610, -10653797, 30336522, -14105247, -29806336, 916033, -6882542, -2986532), - array(-22630907, 12419372, -7134229, -7473371, -16478904, 16739175, 285431, 2763829, 15736322, 4143876), - ), - array( - array(2379352, 11839345, -4110402, -5988665, 11274298, 794957, 212801, -14594663, 23527084, -16458268), - array(33431127, -11130478, -17838966, -15626900, 8909499, 8376530, -32625340, 4087881, -15188911, -14416214), - array(1767683, 7197987, -13205226, -2022635, -13091350, 448826, 5799055, 4357868, -4774191, -16323038), - ), - ), - array( - array( - array(6721966, 13833823, -23523388, -1551314, 26354293, -11863321, 23365147, -3949732, 7390890, 2759800), - array(4409041, 2052381, 23373853, 10530217, 7676779, -12885954, 21302353, -4264057, 1244380, -12919645), - array(-4421239, 7169619, 4982368, -2957590, 30256825, -2777540, 14086413, 9208236, 15886429, 16489664), - ), - array( - array(1996075, 10375649, 14346367, 13311202, -6874135, -16438411, -13693198, 398369, -30606455, -712933), - array(-25307465, 9795880, -2777414, 14878809, -33531835, 14780363, 13348553, 12076947, -30836462, 5113182), - array(-17770784, 11797796, 31950843, 13929123, -25888302, 12288344, -30341101, -7336386, 13847711, 5387222), - ), - array( - array(-18582163, -3416217, 17824843, -2340966, 22744343, -10442611, 8763061, 3617786, -19600662, 10370991), - array(20246567, -14369378, 22358229, -543712, 18507283, -10413996, 14554437, -8746092, 32232924, 16763880), - array(9648505, 10094563, 26416693, 14745928, -30374318, -6472621, 11094161, 15689506, 3140038, -16510092), - ), - array( - array(-16160072, 5472695, 31895588, 4744994, 8823515, 10365685, -27224800, 9448613, -28774454, 366295), - array(19153450, 11523972, -11096490, -6503142, -24647631, 5420647, 28344573, 8041113, 719605, 11671788), - array(8678025, 2694440, -6808014, 2517372, 4964326, 11152271, -15432916, -15266516, 27000813, -10195553), - ), - array( - array(-15157904, 7134312, 8639287, -2814877, -7235688, 10421742, 564065, 5336097, 6750977, -14521026), - array(11836410, -3979488, 26297894, 16080799, 23455045, 15735944, 1695823, -8819122, 8169720, 16220347), - array(-18115838, 8653647, 17578566, -6092619, -8025777, -16012763, -11144307, -2627664, -5990708, -14166033), - ), - array( - array(-23308498, -10968312, 15213228, -10081214, -30853605, -11050004, 27884329, 2847284, 2655861, 1738395), - array(-27537433, -14253021, -25336301, -8002780, -9370762, 8129821, 21651608, -3239336, -19087449, -11005278), - array(1533110, 3437855, 23735889, 459276, 29970501, 11335377, 26030092, 5821408, 10478196, 8544890), - ), - array( - array(32173121, -16129311, 24896207, 3921497, 22579056, -3410854, 19270449, 12217473, 17789017, -3395995), - array(-30552961, -2228401, -15578829, -10147201, 13243889, 517024, 15479401, -3853233, 30460520, 1052596), - array(-11614875, 13323618, 32618793, 8175907, -15230173, 12596687, 27491595, -4612359, 3179268, -9478891), - ), - array( - array(31947069, -14366651, -4640583, -15339921, -15125977, -6039709, -14756777, -16411740, 19072640, -9511060), - array(11685058, 11822410, 3158003, -13952594, 33402194, -4165066, 5977896, -5215017, 473099, 5040608), - array(-20290863, 8198642, -27410132, 11602123, 1290375, -2799760, 28326862, 1721092, -19558642, -3131606), - ), - ), - array( - array( - array(7881532, 10687937, 7578723, 7738378, -18951012, -2553952, 21820786, 8076149, -27868496, 11538389), - array(-19935666, 3899861, 18283497, -6801568, -15728660, -11249211, 8754525, 7446702, -5676054, 5797016), - array(-11295600, -3793569, -15782110, -7964573, 12708869, -8456199, 2014099, -9050574, -2369172, -5877341), - ), - array( - array(-22472376, -11568741, -27682020, 1146375, 18956691, 16640559, 1192730, -3714199, 15123619, 10811505), - array(14352098, -3419715, -18942044, 10822655, 32750596, 4699007, -70363, 15776356, -28886779, -11974553), - array(-28241164, -8072475, -4978962, -5315317, 29416931, 1847569, -20654173, -16484855, 4714547, -9600655), - ), - array( - array(15200332, 8368572, 19679101, 15970074, -31872674, 1959451, 24611599, -4543832, -11745876, 12340220), - array(12876937, -10480056, 33134381, 6590940, -6307776, 14872440, 9613953, 8241152, 15370987, 9608631), - array(-4143277, -12014408, 8446281, -391603, 4407738, 13629032, -7724868, 15866074, -28210621, -8814099), - ), - array( - array(26660628, -15677655, 8393734, 358047, -7401291, 992988, -23904233, 858697, 20571223, 8420556), - array(14620715, 13067227, -15447274, 8264467, 14106269, 15080814, 33531827, 12516406, -21574435, -12476749), - array(236881, 10476226, 57258, -14677024, 6472998, 2466984, 17258519, 7256740, 8791136, 15069930), - ), - array( - array(1276410, -9371918, 22949635, -16322807, -23493039, -5702186, 14711875, 4874229, -30663140, -2331391), - array(5855666, 4990204, -13711848, 7294284, -7804282, 1924647, -1423175, -7912378, -33069337, 9234253), - array(20590503, -9018988, 31529744, -7352666, -2706834, 10650548, 31559055, -11609587, 18979186, 13396066), - ), - array( - array(24474287, 4968103, 22267082, 4407354, 24063882, -8325180, -18816887, 13594782, 33514650, 7021958), - array(-11566906, -6565505, -21365085, 15928892, -26158305, 4315421, -25948728, -3916677, -21480480, 12868082), - array(-28635013, 13504661, 19988037, -2132761, 21078225, 6443208, -21446107, 2244500, -12455797, -8089383), - ), - array( - array(-30595528, 13793479, -5852820, 319136, -25723172, -6263899, 33086546, 8957937, -15233648, 5540521), - array(-11630176, -11503902, -8119500, -7643073, 2620056, 1022908, -23710744, -1568984, -16128528, -14962807), - array(23152971, 775386, 27395463, 14006635, -9701118, 4649512, 1689819, 892185, -11513277, -15205948), - ), - array( - array(9770129, 9586738, 26496094, 4324120, 1556511, -3550024, 27453819, 4763127, -19179614, 5867134), - array(-32765025, 1927590, 31726409, -4753295, 23962434, -16019500, 27846559, 5931263, -29749703, -16108455), - array(27461885, -2977536, 22380810, 1815854, -23033753, -3031938, 7283490, -15148073, -19526700, 7734629), - ), - ), - array( - array( - array(-8010264, -9590817, -11120403, 6196038, 29344158, -13430885, 7585295, -3176626, 18549497, 15302069), - array(-32658337, -6171222, -7672793, -11051681, 6258878, 13504381, 10458790, -6418461, -8872242, 8424746), - array(24687205, 8613276, -30667046, -3233545, 1863892, -1830544, 19206234, 7134917, -11284482, -828919), - ), - array( - array(11334899, -9218022, 8025293, 12707519, 17523892, -10476071, 10243738, -14685461, -5066034, 16498837), - array(8911542, 6887158, -9584260, -6958590, 11145641, -9543680, 17303925, -14124238, 6536641, 10543906), - array(-28946384, 15479763, -17466835, 568876, -1497683, 11223454, -2669190, -16625574, -27235709, 8876771), - ), - array( - array(-25742899, -12566864, -15649966, -846607, -33026686, -796288, -33481822, 15824474, -604426, -9039817), - array(10330056, 70051, 7957388, -9002667, 9764902, 15609756, 27698697, -4890037, 1657394, 3084098), - array(10477963, -7470260, 12119566, -13250805, 29016247, -5365589, 31280319, 14396151, -30233575, 15272409), - ), - array( - array(-12288309, 3169463, 28813183, 16658753, 25116432, -5630466, -25173957, -12636138, -25014757, 1950504), - array(-26180358, 9489187, 11053416, -14746161, -31053720, 5825630, -8384306, -8767532, 15341279, 8373727), - array(28685821, 7759505, -14378516, -12002860, -31971820, 4079242, 298136, -10232602, -2878207, 15190420), - ), - array( - array(-32932876, 13806336, -14337485, -15794431, -24004620, 10940928, 8669718, 2742393, -26033313, -6875003), - array(-1580388, -11729417, -25979658, -11445023, -17411874, -10912854, 9291594, -16247779, -12154742, 6048605), - array(-30305315, 14843444, 1539301, 11864366, 20201677, 1900163, 13934231, 5128323, 11213262, 9168384), - ), - array( - array(-26280513, 11007847, 19408960, -940758, -18592965, -4328580, -5088060, -11105150, 20470157, -16398701), - array(-23136053, 9282192, 14855179, -15390078, -7362815, -14408560, -22783952, 14461608, 14042978, 5230683), - array(29969567, -2741594, -16711867, -8552442, 9175486, -2468974, 21556951, 3506042, -5933891, -12449708), - ), - array( - array(-3144746, 8744661, 19704003, 4581278, -20430686, 6830683, -21284170, 8971513, -28539189, 15326563), - array(-19464629, 10110288, -17262528, -3503892, -23500387, 1355669, -15523050, 15300988, -20514118, 9168260), - array(-5353335, 4488613, -23803248, 16314347, 7780487, -15638939, -28948358, 9601605, 33087103, -9011387), - ), - array( - array(-19443170, -15512900, -20797467, -12445323, -29824447, 10229461, -27444329, -15000531, -5996870, 15664672), - array(23294591, -16632613, -22650781, -8470978, 27844204, 11461195, 13099750, -2460356, 18151676, 13417686), - array(-24722913, -4176517, -31150679, 5988919, -26858785, 6685065, 1661597, -12551441, 15271676, -15452665), - ), - ), - array( - array( - array(11433042, -13228665, 8239631, -5279517, -1985436, -725718, -18698764, 2167544, -6921301, -13440182), - array(-31436171, 15575146, 30436815, 12192228, -22463353, 9395379, -9917708, -8638997, 12215110, 12028277), - array(14098400, 6555944, 23007258, 5757252, -15427832, -12950502, 30123440, 4617780, -16900089, -655628), - ), - array( - array(-4026201, -15240835, 11893168, 13718664, -14809462, 1847385, -15819999, 10154009, 23973261, -12684474), - array(-26531820, -3695990, -1908898, 2534301, -31870557, -16550355, 18341390, -11419951, 32013174, -10103539), - array(-25479301, 10876443, -11771086, -14625140, -12369567, 1838104, 21911214, 6354752, 4425632, -837822), - ), - array( - array(-10433389, -14612966, 22229858, -3091047, -13191166, 776729, -17415375, -12020462, 4725005, 14044970), - array(19268650, -7304421, 1555349, 8692754, -21474059, -9910664, 6347390, -1411784, -19522291, -16109756), - array(-24864089, 12986008, -10898878, -5558584, -11312371, -148526, 19541418, 8180106, 9282262, 10282508), - ), - array( - array(-26205082, 4428547, -8661196, -13194263, 4098402, -14165257, 15522535, 8372215, 5542595, -10702683), - array(-10562541, 14895633, 26814552, -16673850, -17480754, -2489360, -2781891, 6993761, -18093885, 10114655), - array(-20107055, -929418, 31422704, 10427861, -7110749, 6150669, -29091755, -11529146, 25953725, -106158), - ), - array( - array(-4234397, -8039292, -9119125, 3046000, 2101609, -12607294, 19390020, 6094296, -3315279, 12831125), - array(-15998678, 7578152, 5310217, 14408357, -33548620, -224739, 31575954, 6326196, 7381791, -2421839), - array(-20902779, 3296811, 24736065, -16328389, 18374254, 7318640, 6295303, 8082724, -15362489, 12339664), - ), - array( - array(27724736, 2291157, 6088201, -14184798, 1792727, 5857634, 13848414, 15768922, 25091167, 14856294), - array(-18866652, 8331043, 24373479, 8541013, -701998, -9269457, 12927300, -12695493, -22182473, -9012899), - array(-11423429, -5421590, 11632845, 3405020, 30536730, -11674039, -27260765, 13866390, 30146206, 9142070), - ), - array( - array(3924129, -15307516, -13817122, -10054960, 12291820, -668366, -27702774, 9326384, -8237858, 4171294), - array(-15921940, 16037937, 6713787, 16606682, -21612135, 2790944, 26396185, 3731949, 345228, -5462949), - array(-21327538, 13448259, 25284571, 1143661, 20614966, -8849387, 2031539, -12391231, -16253183, -13582083), - ), - array( - array(31016211, -16722429, 26371392, -14451233, -5027349, 14854137, 17477601, 3842657, 28012650, -16405420), - array(-5075835, 9368966, -8562079, -4600902, -15249953, 6970560, -9189873, 16292057, -8867157, 3507940), - array(29439664, 3537914, 23333589, 6997794, -17555561, -11018068, -15209202, -15051267, -9164929, 6580396), - ), - ), - array( - array( - array(-12185861, -7679788, 16438269, 10826160, -8696817, -6235611, 17860444, -9273846, -2095802, 9304567), - array(20714564, -4336911, 29088195, 7406487, 11426967, -5095705, 14792667, -14608617, 5289421, -477127), - array(-16665533, -10650790, -6160345, -13305760, 9192020, -1802462, 17271490, 12349094, 26939669, -3752294), - ), - array( - array(-12889898, 9373458, 31595848, 16374215, 21471720, 13221525, -27283495, -12348559, -3698806, 117887), - array(22263325, -6560050, 3984570, -11174646, -15114008, -566785, 28311253, 5358056, -23319780, 541964), - array(16259219, 3261970, 2309254, -15534474, -16885711, -4581916, 24134070, -16705829, -13337066, -13552195), - ), - array( - array(9378160, -13140186, -22845982, -12745264, 28198281, -7244098, -2399684, -717351, 690426, 14876244), - array(24977353, -314384, -8223969, -13465086, 28432343, -1176353, -13068804, -12297348, -22380984, 6618999), - array(-1538174, 11685646, 12944378, 13682314, -24389511, -14413193, 8044829, -13817328, 32239829, -5652762), - ), - array( - array(-18603066, 4762990, -926250, 8885304, -28412480, -3187315, 9781647, -10350059, 32779359, 5095274), - array(-33008130, -5214506, -32264887, -3685216, 9460461, -9327423, -24601656, 14506724, 21639561, -2630236), - array(-16400943, -13112215, 25239338, 15531969, 3987758, -4499318, -1289502, -6863535, 17874574, 558605), - ), - array( - array(-13600129, 10240081, 9171883, 16131053, -20869254, 9599700, 33499487, 5080151, 2085892, 5119761), - array(-22205145, -2519528, -16381601, 414691, -25019550, 2170430, 30634760, -8363614, -31999993, -5759884), - array(-6845704, 15791202, 8550074, -1312654, 29928809, -12092256, 27534430, -7192145, -22351378, 12961482), - ), - array( - array(-24492060, -9570771, 10368194, 11582341, -23397293, -2245287, 16533930, 8206996, -30194652, -5159638), - array(-11121496, -3382234, 2307366, 6362031, -135455, 8868177, -16835630, 7031275, 7589640, 8945490), - array(-32152748, 8917967, 6661220, -11677616, -1192060, -15793393, 7251489, -11182180, 24099109, -14456170), - ), - array( - array(5019558, -7907470, 4244127, -14714356, -26933272, 6453165, -19118182, -13289025, -6231896, -10280736), - array(10853594, 10721687, 26480089, 5861829, -22995819, 1972175, -1866647, -10557898, -3363451, -6441124), - array(-17002408, 5906790, 221599, -6563147, 7828208, -13248918, 24362661, -2008168, -13866408, 7421392), - ), - array( - array(8139927, -6546497, 32257646, -5890546, 30375719, 1886181, -21175108, 15441252, 28826358, -4123029), - array(6267086, 9695052, 7709135, -16603597, -32869068, -1886135, 14795160, -7840124, 13746021, -1742048), - array(28584902, 7787108, -6732942, -15050729, 22846041, -7571236, -3181936, -363524, 4771362, -8419958), - ), - ), - array( - array( - array(24949256, 6376279, -27466481, -8174608, -18646154, -9930606, 33543569, -12141695, 3569627, 11342593), - array(26514989, 4740088, 27912651, 3697550, 19331575, -11472339, 6809886, 4608608, 7325975, -14801071), - array(-11618399, -14554430, -24321212, 7655128, -1369274, 5214312, -27400540, 10258390, -17646694, -8186692), - ), - array( - array(11431204, 15823007, 26570245, 14329124, 18029990, 4796082, -31446179, 15580664, 9280358, -3973687), - array(-160783, -10326257, -22855316, -4304997, -20861367, -13621002, -32810901, -11181622, -15545091, 4387441), - array(-20799378, 12194512, 3937617, -5805892, -27154820, 9340370, -24513992, 8548137, 20617071, -7482001), - ), - array( - array(-938825, -3930586, -8714311, 16124718, 24603125, -6225393, -13775352, -11875822, 24345683, 10325460), - array(-19855277, -1568885, -22202708, 8714034, 14007766, 6928528, 16318175, -1010689, 4766743, 3552007), - array(-21751364, -16730916, 1351763, -803421, -4009670, 3950935, 3217514, 14481909, 10988822, -3994762), - ), - array( - array(15564307, -14311570, 3101243, 5684148, 30446780, -8051356, 12677127, -6505343, -8295852, 13296005), - array(-9442290, 6624296, -30298964, -11913677, -4670981, -2057379, 31521204, 9614054, -30000824, 12074674), - array(4771191, -135239, 14290749, -13089852, 27992298, 14998318, -1413936, -1556716, 29832613, -16391035), - ), - array( - array(7064884, -7541174, -19161962, -5067537, -18891269, -2912736, 25825242, 5293297, -27122660, 13101590), - array(-2298563, 2439670, -7466610, 1719965, -27267541, -16328445, 32512469, -5317593, -30356070, -4190957), - array(-30006540, 10162316, -33180176, 3981723, -16482138, -13070044, 14413974, 9515896, 19568978, 9628812), - ), - array( - array(33053803, 199357, 15894591, 1583059, 27380243, -4580435, -17838894, -6106839, -6291786, 3437740), - array(-18978877, 3884493, 19469877, 12726490, 15913552, 13614290, -22961733, 70104, 7463304, 4176122), - array(-27124001, 10659917, 11482427, -16070381, 12771467, -6635117, -32719404, -5322751, 24216882, 5944158), - ), - array( - array(8894125, 7450974, -2664149, -9765752, -28080517, -12389115, 19345746, 14680796, 11632993, 5847885), - array(26942781, -2315317, 9129564, -4906607, 26024105, 11769399, -11518837, 6367194, -9727230, 4782140), - array(19916461, -4828410, -22910704, -11414391, 25606324, -5972441, 33253853, 8220911, 6358847, -1873857), - ), - array( - array(801428, -2081702, 16569428, 11065167, 29875704, 96627, 7908388, -4480480, -13538503, 1387155), - array(19646058, 5720633, -11416706, 12814209, 11607948, 12749789, 14147075, 15156355, -21866831, 11835260), - array(19299512, 1155910, 28703737, 14890794, 2925026, 7269399, 26121523, 15467869, -26560550, 5052483), - ), - ), - array( - array( - array(-3017432, 10058206, 1980837, 3964243, 22160966, 12322533, -6431123, -12618185, 12228557, -7003677), - array(32944382, 14922211, -22844894, 5188528, 21913450, -8719943, 4001465, 13238564, -6114803, 8653815), - array(22865569, -4652735, 27603668, -12545395, 14348958, 8234005, 24808405, 5719875, 28483275, 2841751), - ), - array( - array(-16420968, -1113305, -327719, -12107856, 21886282, -15552774, -1887966, -315658, 19932058, -12739203), - array(-11656086, 10087521, -8864888, -5536143, -19278573, -3055912, 3999228, 13239134, -4777469, -13910208), - array(1382174, -11694719, 17266790, 9194690, -13324356, 9720081, 20403944, 11284705, -14013818, 3093230), - ), - array( - array(16650921, -11037932, -1064178, 1570629, -8329746, 7352753, -302424, 16271225, -24049421, -6691850), - array(-21911077, -5927941, -4611316, -5560156, -31744103, -10785293, 24123614, 15193618, -21652117, -16739389), - array(-9935934, -4289447, -25279823, 4372842, 2087473, 10399484, 31870908, 14690798, 17361620, 11864968), - ), - array( - array(-11307610, 6210372, 13206574, 5806320, -29017692, -13967200, -12331205, -7486601, -25578460, -16240689), - array(14668462, -12270235, 26039039, 15305210, 25515617, 4542480, 10453892, 6577524, 9145645, -6443880), - array(5974874, 3053895, -9433049, -10385191, -31865124, 3225009, -7972642, 3936128, -5652273, -3050304), - ), - array( - array(30625386, -4729400, -25555961, -12792866, -20484575, 7695099, 17097188, -16303496, -27999779, 1803632), - array(-3553091, 9865099, -5228566, 4272701, -5673832, -16689700, 14911344, 12196514, -21405489, 7047412), - array(20093277, 9920966, -11138194, -5343857, 13161587, 12044805, -32856851, 4124601, -32343828, -10257566), - ), - array( - array(-20788824, 14084654, -13531713, 7842147, 19119038, -13822605, 4752377, -8714640, -21679658, 2288038), - array(-26819236, -3283715, 29965059, 3039786, -14473765, 2540457, 29457502, 14625692, -24819617, 12570232), - array(-1063558, -11551823, 16920318, 12494842, 1278292, -5869109, -21159943, -3498680, -11974704, 4724943), - ), - array( - array(17960970, -11775534, -4140968, -9702530, -8876562, -1410617, -12907383, -8659932, -29576300, 1903856), - array(23134274, -14279132, -10681997, -1611936, 20684485, 15770816, -12989750, 3190296, 26955097, 14109738), - array(15308788, 5320727, -30113809, -14318877, 22902008, 7767164, 29425325, -11277562, 31960942, 11934971), - ), - array( - array(-27395711, 8435796, 4109644, 12222639, -24627868, 14818669, 20638173, 4875028, 10491392, 1379718), - array(-13159415, 9197841, 3875503, -8936108, -1383712, -5879801, 33518459, 16176658, 21432314, 12180697), - array(-11787308, 11500838, 13787581, -13832590, -22430679, 10140205, 1465425, 12689540, -10301319, -13872883), - ), - ), - array( - array( - array(5414091, -15386041, -21007664, 9643570, 12834970, 1186149, -2622916, -1342231, 26128231, 6032912), - array(-26337395, -13766162, 32496025, -13653919, 17847801, -12669156, 3604025, 8316894, -25875034, -10437358), - array(3296484, 6223048, 24680646, -12246460, -23052020, 5903205, -8862297, -4639164, 12376617, 3188849), - ), - array( - array(29190488, -14659046, 27549113, -1183516, 3520066, -10697301, 32049515, -7309113, -16109234, -9852307), - array(-14744486, -9309156, 735818, -598978, -20407687, -5057904, 25246078, -15795669, 18640741, -960977), - array(-6928835, -16430795, 10361374, 5642961, 4910474, 12345252, -31638386, -494430, 10530747, 1053335), - ), - array( - array(-29265967, -14186805, -13538216, -12117373, -19457059, -10655384, -31462369, -2948985, 24018831, 15026644), - array(-22592535, -3145277, -2289276, 5953843, -13440189, 9425631, 25310643, 13003497, -2314791, -15145616), - array(-27419985, -603321, -8043984, -1669117, -26092265, 13987819, -27297622, 187899, -23166419, -2531735), - ), - array( - array(-21744398, -13810475, 1844840, 5021428, -10434399, -15911473, 9716667, 16266922, -5070217, 726099), - array(29370922, -6053998, 7334071, -15342259, 9385287, 2247707, -13661962, -4839461, 30007388, -15823341), - array(-936379, 16086691, 23751945, -543318, -1167538, -5189036, 9137109, 730663, 9835848, 4555336), - ), - array( - array(-23376435, 1410446, -22253753, -12899614, 30867635, 15826977, 17693930, 544696, -11985298, 12422646), - array(31117226, -12215734, -13502838, 6561947, -9876867, -12757670, -5118685, -4096706, 29120153, 13924425), - array(-17400879, -14233209, 19675799, -2734756, -11006962, -5858820, -9383939, -11317700, 7240931, -237388), - ), - array( - array(-31361739, -11346780, -15007447, -5856218, -22453340, -12152771, 1222336, 4389483, 3293637, -15551743), - array(-16684801, -14444245, 11038544, 11054958, -13801175, -3338533, -24319580, 7733547, 12796905, -6335822), - array(-8759414, -10817836, -25418864, 10783769, -30615557, -9746811, -28253339, 3647836, 3222231, -11160462), - ), - array( - array(18606113, 1693100, -25448386, -15170272, 4112353, 10045021, 23603893, -2048234, -7550776, 2484985), - array(9255317, -3131197, -12156162, -1004256, 13098013, -9214866, 16377220, -2102812, -19802075, -3034702), - array(-22729289, 7496160, -5742199, 11329249, 19991973, -3347502, -31718148, 9936966, -30097688, -10618797), - ), - array( - array(21878590, -5001297, 4338336, 13643897, -3036865, 13160960, 19708896, 5415497, -7360503, -4109293), - array(27736861, 10103576, 12500508, 8502413, -3413016, -9633558, 10436918, -1550276, -23659143, -8132100), - array(19492550, -12104365, -29681976, -852630, -3208171, 12403437, 30066266, 8367329, 13243957, 8709688), - ), - ), - array( - array( - array(12015105, 2801261, 28198131, 10151021, 24818120, -4743133, -11194191, -5645734, 5150968, 7274186), - array(2831366, -12492146, 1478975, 6122054, 23825128, -12733586, 31097299, 6083058, 31021603, -9793610), - array(-2529932, -2229646, 445613, 10720828, -13849527, -11505937, -23507731, 16354465, 15067285, -14147707), - ), - array( - array(7840942, 14037873, -33364863, 15934016, -728213, -3642706, 21403988, 1057586, -19379462, -12403220), - array(915865, -16469274, 15608285, -8789130, -24357026, 6060030, -17371319, 8410997, -7220461, 16527025), - array(32922597, -556987, 20336074, -16184568, 10903705, -5384487, 16957574, 52992, 23834301, 6588044), - ), - array( - array(32752030, 11232950, 3381995, -8714866, 22652988, -10744103, 17159699, 16689107, -20314580, -1305992), - array(-4689649, 9166776, -25710296, -10847306, 11576752, 12733943, 7924251, -2752281, 1976123, -7249027), - array(21251222, 16309901, -2983015, -6783122, 30810597, 12967303, 156041, -3371252, 12331345, -8237197), - ), - array( - array(8651614, -4477032, -16085636, -4996994, 13002507, 2950805, 29054427, -5106970, 10008136, -4667901), - array(31486080, 15114593, -14261250, 12951354, 14369431, -7387845, 16347321, -13662089, 8684155, -10532952), - array(19443825, 11385320, 24468943, -9659068, -23919258, 2187569, -26263207, -6086921, 31316348, 14219878), - ), - array( - array(-28594490, 1193785, 32245219, 11392485, 31092169, 15722801, 27146014, 6992409, 29126555, 9207390), - array(32382935, 1110093, 18477781, 11028262, -27411763, -7548111, -4980517, 10843782, -7957600, -14435730), - array(2814918, 7836403, 27519878, -7868156, -20894015, -11553689, -21494559, 8550130, 28346258, 1994730), - ), - array( - array(-19578299, 8085545, -14000519, -3948622, 2785838, -16231307, -19516951, 7174894, 22628102, 8115180), - array(-30405132, 955511, -11133838, -15078069, -32447087, -13278079, -25651578, 3317160, -9943017, 930272), - array(-15303681, -6833769, 28856490, 1357446, 23421993, 1057177, 24091212, -1388970, -22765376, -10650715), - ), - array( - array(-22751231, -5303997, -12907607, -12768866, -15811511, -7797053, -14839018, -16554220, -1867018, 8398970), - array(-31969310, 2106403, -4736360, 1362501, 12813763, 16200670, 22981545, -6291273, 18009408, -15772772), - array(-17220923, -9545221, -27784654, 14166835, 29815394, 7444469, 29551787, -3727419, 19288549, 1325865), - ), - array( - array(15100157, -15835752, -23923978, -1005098, -26450192, 15509408, 12376730, -3479146, 33166107, -8042750), - array(20909231, 13023121, -9209752, 16251778, -5778415, -8094914, 12412151, 10018715, 2213263, -13878373), - array(32529814, -11074689, 30361439, -16689753, -9135940, 1513226, 22922121, 6382134, -5766928, 8371348), - ), - ), - array( - array( - array(9923462, 11271500, 12616794, 3544722, -29998368, -1721626, 12891687, -8193132, -26442943, 10486144), - array(-22597207, -7012665, 8587003, -8257861, 4084309, -12970062, 361726, 2610596, -23921530, -11455195), - array(5408411, -1136691, -4969122, 10561668, 24145918, 14240566, 31319731, -4235541, 19985175, -3436086), - ), - array( - array(-13994457, 16616821, 14549246, 3341099, 32155958, 13648976, -17577068, 8849297, 65030, 8370684), - array(-8320926, -12049626, 31204563, 5839400, -20627288, -1057277, -19442942, 6922164, 12743482, -9800518), - array(-2361371, 12678785, 28815050, 4759974, -23893047, 4884717, 23783145, 11038569, 18800704, 255233), - ), - array( - array(-5269658, -1773886, 13957886, 7990715, 23132995, 728773, 13393847, 9066957, 19258688, -14753793), - array(-2936654, -10827535, -10432089, 14516793, -3640786, 4372541, -31934921, 2209390, -1524053, 2055794), - array(580882, 16705327, 5468415, -2683018, -30926419, -14696000, -7203346, -8994389, -30021019, 7394435), - ), - array( - array(23838809, 1822728, -15738443, 15242727, 8318092, -3733104, -21672180, -3492205, -4821741, 14799921), - array(13345610, 9759151, 3371034, -16137791, 16353039, 8577942, 31129804, 13496856, -9056018, 7402518), - array(2286874, -4435931, -20042458, -2008336, -13696227, 5038122, 11006906, -15760352, 8205061, 1607563), - ), - array( - array(14414086, -8002132, 3331830, -3208217, 22249151, -5594188, 18364661, -2906958, 30019587, -9029278), - array(-27688051, 1585953, -10775053, 931069, -29120221, -11002319, -14410829, 12029093, 9944378, 8024), - array(4368715, -3709630, 29874200, -15022983, -20230386, -11410704, -16114594, -999085, -8142388, 5640030), - ), - array( - array(10299610, 13746483, 11661824, 16234854, 7630238, 5998374, 9809887, -16694564, 15219798, -14327783), - array(27425505, -5719081, 3055006, 10660664, 23458024, 595578, -15398605, -1173195, -18342183, 9742717), - array(6744077, 2427284, 26042789, 2720740, -847906, 1118974, 32324614, 7406442, 12420155, 1994844), - ), - array( - array(14012521, -5024720, -18384453, -9578469, -26485342, -3936439, -13033478, -10909803, 24319929, -6446333), - array(16412690, -4507367, 10772641, 15929391, -17068788, -4658621, 10555945, -10484049, -30102368, -4739048), - array(22397382, -7767684, -9293161, -12792868, 17166287, -9755136, -27333065, 6199366, 21880021, -12250760), - ), - array( - array(-4283307, 5368523, -31117018, 8163389, -30323063, 3209128, 16557151, 8890729, 8840445, 4957760), - array(-15447727, 709327, -6919446, -10870178, -29777922, 6522332, -21720181, 12130072, -14796503, 5005757), - array(-2114751, -14308128, 23019042, 15765735, -25269683, 6002752, 10183197, -13239326, -16395286, -2176112), - ), - ), - array( - array( - array(-19025756, 1632005, 13466291, -7995100, -23640451, 16573537, -32013908, -3057104, 22208662, 2000468), - array(3065073, -1412761, -25598674, -361432, -17683065, -5703415, -8164212, 11248527, -3691214, -7414184), - array(10379208, -6045554, 8877319, 1473647, -29291284, -12507580, 16690915, 2553332, -3132688, 16400289), - ), - array( - array(15716668, 1254266, -18472690, 7446274, -8448918, 6344164, -22097271, -7285580, 26894937, 9132066), - array(24158887, 12938817, 11085297, -8177598, -28063478, -4457083, -30576463, 64452, -6817084, -2692882), - array(13488534, 7794716, 22236231, 5989356, 25426474, -12578208, 2350710, -3418511, -4688006, 2364226), - ), - array( - array(16335052, 9132434, 25640582, 6678888, 1725628, 8517937, -11807024, -11697457, 15445875, -7798101), - array(29004207, -7867081, 28661402, -640412, -12794003, -7943086, 31863255, -4135540, -278050, -15759279), - array(-6122061, -14866665, -28614905, 14569919, -10857999, -3591829, 10343412, -6976290, -29828287, -10815811), - ), - array( - array(27081650, 3463984, 14099042, -4517604, 1616303, -6205604, 29542636, 15372179, 17293797, 960709), - array(20263915, 11434237, -5765435, 11236810, 13505955, -10857102, -16111345, 6493122, -19384511, 7639714), - array(-2830798, -14839232, 25403038, -8215196, -8317012, -16173699, 18006287, -16043750, 29994677, -15808121), - ), - array( - array(9769828, 5202651, -24157398, -13631392, -28051003, -11561624, -24613141, -13860782, -31184575, 709464), - array(12286395, 13076066, -21775189, -1176622, -25003198, 4057652, -32018128, -8890874, 16102007, 13205847), - array(13733362, 5599946, 10557076, 3195751, -5557991, 8536970, -25540170, 8525972, 10151379, 10394400), - ), - array( - array(4024660, -16137551, 22436262, 12276534, -9099015, -2686099, 19698229, 11743039, -33302334, 8934414), - array(-15879800, -4525240, -8580747, -2934061, 14634845, -698278, -9449077, 3137094, -11536886, 11721158), - array(17555939, -5013938, 8268606, 2331751, -22738815, 9761013, 9319229, 8835153, -9205489, -1280045), - ), - array( - array(-461409, -7830014, 20614118, 16688288, -7514766, -4807119, 22300304, 505429, 6108462, -6183415), - array(-5070281, 12367917, -30663534, 3234473, 32617080, -8422642, 29880583, -13483331, -26898490, -7867459), - array(-31975283, 5726539, 26934134, 10237677, -3173717, -605053, 24199304, 3795095, 7592688, -14992079), - ), - array( - array(21594432, -14964228, 17466408, -4077222, 32537084, 2739898, 6407723, 12018833, -28256052, 4298412), - array(-20650503, -11961496, -27236275, 570498, 3767144, -1717540, 13891942, -1569194, 13717174, 10805743), - array(-14676630, -15644296, 15287174, 11927123, 24177847, -8175568, -796431, 14860609, -26938930, -5863836), - ), - ), - array( - array( - array(12962541, 5311799, -10060768, 11658280, 18855286, -7954201, 13286263, -12808704, -4381056, 9882022), - array(18512079, 11319350, -20123124, 15090309, 18818594, 5271736, -22727904, 3666879, -23967430, -3299429), - array(-6789020, -3146043, 16192429, 13241070, 15898607, -14206114, -10084880, -6661110, -2403099, 5276065), - ), - array( - array(30169808, -5317648, 26306206, -11750859, 27814964, 7069267, 7152851, 3684982, 1449224, 13082861), - array(10342826, 3098505, 2119311, 193222, 25702612, 12233820, 23697382, 15056736, -21016438, -8202000), - array(-33150110, 3261608, 22745853, 7948688, 19370557, -15177665, -26171976, 6482814, -10300080, -11060101), - ), - array( - array(32869458, -5408545, 25609743, 15678670, -10687769, -15471071, 26112421, 2521008, -22664288, 6904815), - array(29506923, 4457497, 3377935, -9796444, -30510046, 12935080, 1561737, 3841096, -29003639, -6657642), - array(10340844, -6630377, -18656632, -2278430, 12621151, -13339055, 30878497, -11824370, -25584551, 5181966), - ), - array( - array(25940115, -12658025, 17324188, -10307374, -8671468, 15029094, 24396252, -16450922, -2322852, -12388574), - array(-21765684, 9916823, -1300409, 4079498, -1028346, 11909559, 1782390, 12641087, 20603771, -6561742), - array(-18882287, -11673380, 24849422, 11501709, 13161720, -4768874, 1925523, 11914390, 4662781, 7820689), - ), - array( - array(12241050, -425982, 8132691, 9393934, 32846760, -1599620, 29749456, 12172924, 16136752, 15264020), - array(-10349955, -14680563, -8211979, 2330220, -17662549, -14545780, 10658213, 6671822, 19012087, 3772772), - array(3753511, -3421066, 10617074, 2028709, 14841030, -6721664, 28718732, -15762884, 20527771, 12988982), - ), - array( - array(-14822485, -5797269, -3707987, 12689773, -898983, -10914866, -24183046, -10564943, 3299665, -12424953), - array(-16777703, -15253301, -9642417, 4978983, 3308785, 8755439, 6943197, 6461331, -25583147, 8991218), - array(-17226263, 1816362, -1673288, -6086439, 31783888, -8175991, -32948145, 7417950, -30242287, 1507265), - ), - array( - array(29692663, 6829891, -10498800, 4334896, 20945975, -11906496, -28887608, 8209391, 14606362, -10647073), - array(-3481570, 8707081, 32188102, 5672294, 22096700, 1711240, -33020695, 9761487, 4170404, -2085325), - array(-11587470, 14855945, -4127778, -1531857, -26649089, 15084046, 22186522, 16002000, -14276837, -8400798), - ), - array( - array(-4811456, 13761029, -31703877, -2483919, -3312471, 7869047, -7113572, -9620092, 13240845, 10965870), - array(-7742563, -8256762, -14768334, -13656260, -23232383, 12387166, 4498947, 14147411, 29514390, 4302863), - array(-13413405, -12407859, 20757302, -13801832, 14785143, 8976368, -5061276, -2144373, 17846988, -13971927), - ), - ), - array( - array( - array(-2244452, -754728, -4597030, -1066309, -6247172, 1455299, -21647728, -9214789, -5222701, 12650267), - array(-9906797, -16070310, 21134160, 12198166, -27064575, 708126, 387813, 13770293, -19134326, 10958663), - array(22470984, 12369526, 23446014, -5441109, -21520802, -9698723, -11772496, -11574455, -25083830, 4271862), - ), - array( - array(-25169565, -10053642, -19909332, 15361595, -5984358, 2159192, 75375, -4278529, -32526221, 8469673), - array(15854970, 4148314, -8893890, 7259002, 11666551, 13824734, -30531198, 2697372, 24154791, -9460943), - array(15446137, -15806644, 29759747, 14019369, 30811221, -9610191, -31582008, 12840104, 24913809, 9815020), - ), - array( - array(-4709286, -5614269, -31841498, -12288893, -14443537, 10799414, -9103676, 13438769, 18735128, 9466238), - array(11933045, 9281483, 5081055, -5183824, -2628162, -4905629, -7727821, -10896103, -22728655, 16199064), - array(14576810, 379472, -26786533, -8317236, -29426508, -10812974, -102766, 1876699, 30801119, 2164795), - ), - array( - array(15995086, 3199873, 13672555, 13712240, -19378835, -4647646, -13081610, -15496269, -13492807, 1268052), - array(-10290614, -3659039, -3286592, 10948818, 23037027, 3794475, -3470338, -12600221, -17055369, 3565904), - array(29210088, -9419337, -5919792, -4952785, 10834811, -13327726, -16512102, -10820713, -27162222, -14030531), - ), - array( - array(-13161890, 15508588, 16663704, -8156150, -28349942, 9019123, -29183421, -3769423, 2244111, -14001979), - array(-5152875, -3800936, -9306475, -6071583, 16243069, 14684434, -25673088, -16180800, 13491506, 4641841), - array(10813417, 643330, -19188515, -728916, 30292062, -16600078, 27548447, -7721242, 14476989, -12767431), - ), - array( - array(10292079, 9984945, 6481436, 8279905, -7251514, 7032743, 27282937, -1644259, -27912810, 12651324), - array(-31185513, -813383, 22271204, 11835308, 10201545, 15351028, 17099662, 3988035, 21721536, -3148940), - array(10202177, -6545839, -31373232, -9574638, -32150642, -8119683, -12906320, 3852694, 13216206, 14842320), - ), - array( - array(-15815640, -10601066, -6538952, -7258995, -6984659, -6581778, -31500847, 13765824, -27434397, 9900184), - array(14465505, -13833331, -32133984, -14738873, -27443187, 12990492, 33046193, 15796406, -7051866, -8040114), - array(30924417, -8279620, 6359016, -12816335, 16508377, 9071735, -25488601, 15413635, 9524356, -7018878), - ), - array( - array(12274201, -13175547, 32627641, -1785326, 6736625, 13267305, 5237659, -5109483, 15663516, 4035784), - array(-2951309, 8903985, 17349946, 601635, -16432815, -4612556, -13732739, -15889334, -22258478, 4659091), - array(-16916263, -4952973, -30393711, -15158821, 20774812, 15897498, 5736189, 15026997, -2178256, -13455585), - ), - ), - array( - array( - array(-8858980, -2219056, 28571666, -10155518, -474467, -10105698, -3801496, 278095, 23440562, -290208), - array(10226241, -5928702, 15139956, 120818, -14867693, 5218603, 32937275, 11551483, -16571960, -7442864), - array(17932739, -12437276, -24039557, 10749060, 11316803, 7535897, 22503767, 5561594, -3646624, 3898661), - ), - array( - array(7749907, -969567, -16339731, -16464, -25018111, 15122143, -1573531, 7152530, 21831162, 1245233), - array(26958459, -14658026, 4314586, 8346991, -5677764, 11960072, -32589295, -620035, -30402091, -16716212), - array(-12165896, 9166947, 33491384, 13673479, 29787085, 13096535, 6280834, 14587357, -22338025, 13987525), - ), - array( - array(-24349909, 7778775, 21116000, 15572597, -4833266, -5357778, -4300898, -5124639, -7469781, -2858068), - array(9681908, -6737123, -31951644, 13591838, -6883821, 386950, 31622781, 6439245, -14581012, 4091397), - array(-8426427, 1470727, -28109679, -1596990, 3978627, -5123623, -19622683, 12092163, 29077877, -14741988), - ), - array( - array(5269168, -6859726, -13230211, -8020715, 25932563, 1763552, -5606110, -5505881, -20017847, 2357889), - array(32264008, -15407652, -5387735, -1160093, -2091322, -3946900, 23104804, -12869908, 5727338, 189038), - array(14609123, -8954470, -6000566, -16622781, -14577387, -7743898, -26745169, 10942115, -25888931, -14884697), - ), - array( - array(20513500, 5557931, -15604613, 7829531, 26413943, -2019404, -21378968, 7471781, 13913677, -5137875), - array(-25574376, 11967826, 29233242, 12948236, -6754465, 4713227, -8940970, 14059180, 12878652, 8511905), - array(-25656801, 3393631, -2955415, -7075526, -2250709, 9366908, -30223418, 6812974, 5568676, -3127656), - ), - array( - array(11630004, 12144454, 2116339, 13606037, 27378885, 15676917, -17408753, -13504373, -14395196, 8070818), - array(27117696, -10007378, -31282771, -5570088, 1127282, 12772488, -29845906, 10483306, -11552749, -1028714), - array(10637467, -5688064, 5674781, 1072708, -26343588, -6982302, -1683975, 9177853, -27493162, 15431203), - ), - array( - array(20525145, 10892566, -12742472, 12779443, -29493034, 16150075, -28240519, 14943142, -15056790, -7935931), - array(-30024462, 5626926, -551567, -9981087, 753598, 11981191, 25244767, -3239766, -3356550, 9594024), - array(-23752644, 2636870, -5163910, -10103818, 585134, 7877383, 11345683, -6492290, 13352335, -10977084), - ), - array( - array(-1931799, -5407458, 3304649, -12884869, 17015806, -4877091, -29783850, -7752482, -13215537, -319204), - array(20239939, 6607058, 6203985, 3483793, -18386976, -779229, -20723742, 15077870, -22750759, 14523817), - array(27406042, -6041657, 27423596, -4497394, 4996214, 10002360, -28842031, -4545494, -30172742, -4805667), - ), - ), - array( - array( - array(11374242, 12660715, 17861383, -12540833, 10935568, 1099227, -13886076, -9091740, -27727044, 11358504), - array(-12730809, 10311867, 1510375, 10778093, -2119455, -9145702, 32676003, 11149336, -26123651, 4985768), - array(-19096303, 341147, -6197485, -239033, 15756973, -8796662, -983043, 13794114, -19414307, -15621255), - ), - array( - array(6490081, 11940286, 25495923, -7726360, 8668373, -8751316, 3367603, 6970005, -1691065, -9004790), - array(1656497, 13457317, 15370807, 6364910, 13605745, 8362338, -19174622, -5475723, -16796596, -5031438), - array(-22273315, -13524424, -64685, -4334223, -18605636, -10921968, -20571065, -7007978, -99853, -10237333), - ), - array( - array(17747465, 10039260, 19368299, -4050591, -20630635, -16041286, 31992683, -15857976, -29260363, -5511971), - array(31932027, -4986141, -19612382, 16366580, 22023614, 88450, 11371999, -3744247, 4882242, -10626905), - array(29796507, 37186, 19818052, 10115756, -11829032, 3352736, 18551198, 3272828, -5190932, -4162409), - ), - array( - array(12501286, 4044383, -8612957, -13392385, -32430052, 5136599, -19230378, -3529697, 330070, -3659409), - array(6384877, 2899513, 17807477, 7663917, -2358888, 12363165, 25366522, -8573892, -271295, 12071499), - array(-8365515, -4042521, 25133448, -4517355, -6211027, 2265927, -32769618, 1936675, -5159697, 3829363), - ), - array( - array(28425966, -5835433, -577090, -4697198, -14217555, 6870930, 7921550, -6567787, 26333140, 14267664), - array(-11067219, 11871231, 27385719, -10559544, -4585914, -11189312, 10004786, -8709488, -21761224, 8930324), - array(-21197785, -16396035, 25654216, -1725397, 12282012, 11008919, 1541940, 4757911, -26491501, -16408940), - ), - array( - array(13537262, -7759490, -20604840, 10961927, -5922820, -13218065, -13156584, 6217254, -15943699, 13814990), - array(-17422573, 15157790, 18705543, 29619, 24409717, -260476, 27361681, 9257833, -1956526, -1776914), - array(-25045300, -10191966, 15366585, 15166509, -13105086, 8423556, -29171540, 12361135, -18685978, 4578290), - ), - array( - array(24579768, 3711570, 1342322, -11180126, -27005135, 14124956, -22544529, 14074919, 21964432, 8235257), - array(-6528613, -2411497, 9442966, -5925588, 12025640, -1487420, -2981514, -1669206, 13006806, 2355433), - array(-16304899, -13605259, -6632427, -5142349, 16974359, -10911083, 27202044, 1719366, 1141648, -12796236), - ), - array( - array(-12863944, -13219986, -8318266, -11018091, -6810145, -4843894, 13475066, -3133972, 32674895, 13715045), - array(11423335, -5468059, 32344216, 8962751, 24989809, 9241752, -13265253, 16086212, -28740881, -15642093), - array(-1409668, 12530728, -6368726, 10847387, 19531186, -14132160, -11709148, 7791794, -27245943, 4383347), - ), - ), - array( - array( - array(-28970898, 5271447, -1266009, -9736989, -12455236, 16732599, -4862407, -4906449, 27193557, 6245191), - array(-15193956, 5362278, -1783893, 2695834, 4960227, 12840725, 23061898, 3260492, 22510453, 8577507), - array(-12632451, 11257346, -32692994, 13548177, -721004, 10879011, 31168030, 13952092, -29571492, -3635906), - ), - array( - array(3877321, -9572739, 32416692, 5405324, -11004407, -13656635, 3759769, 11935320, 5611860, 8164018), - array(-16275802, 14667797, 15906460, 12155291, -22111149, -9039718, 32003002, -8832289, 5773085, -8422109), - array(-23788118, -8254300, 1950875, 8937633, 18686727, 16459170, -905725, 12376320, 31632953, 190926), - ), - array( - array(-24593607, -16138885, -8423991, 13378746, 14162407, 6901328, -8288749, 4508564, -25341555, -3627528), - array(8884438, -5884009, 6023974, 10104341, -6881569, -4941533, 18722941, -14786005, -1672488, 827625), - array(-32720583, -16289296, -32503547, 7101210, 13354605, 2659080, -1800575, -14108036, -24878478, 1541286), - ), - array( - array(2901347, -1117687, 3880376, -10059388, -17620940, -3612781, -21802117, -3567481, 20456845, -1885033), - array(27019610, 12299467, -13658288, -1603234, -12861660, -4861471, -19540150, -5016058, 29439641, 15138866), - array(21536104, -6626420, -32447818, -10690208, -22408077, 5175814, -5420040, -16361163, 7779328, 109896), - ), - array( - array(30279744, 14648750, -8044871, 6425558, 13639621, -743509, 28698390, 12180118, 23177719, -554075), - array(26572847, 3405927, -31701700, 12890905, -19265668, 5335866, -6493768, 2378492, 4439158, -13279347), - array(-22716706, 3489070, -9225266, -332753, 18875722, -1140095, 14819434, -12731527, -17717757, -5461437), - ), - array( - array(-5056483, 16566551, 15953661, 3767752, -10436499, 15627060, -820954, 2177225, 8550082, -15114165), - array(-18473302, 16596775, -381660, 15663611, 22860960, 15585581, -27844109, -3582739, -23260460, -8428588), - array(-32480551, 15707275, -8205912, -5652081, 29464558, 2713815, -22725137, 15860482, -21902570, 1494193), - ), - array( - array(-19562091, -14087393, -25583872, -9299552, 13127842, 759709, 21923482, 16529112, 8742704, 12967017), - array(-28464899, 1553205, 32536856, -10473729, -24691605, -406174, -8914625, -2933896, -29903758, 15553883), - array(21877909, 3230008, 9881174, 10539357, -4797115, 2841332, 11543572, 14513274, 19375923, -12647961), - ), - array( - array(8832269, -14495485, 13253511, 5137575, 5037871, 4078777, 24880818, -6222716, 2862653, 9455043), - array(29306751, 5123106, 20245049, -14149889, 9592566, 8447059, -2077124, -2990080, 15511449, 4789663), - array(-20679756, 7004547, 8824831, -9434977, -4045704, -3750736, -5754762, 108893, 23513200, 16652362), - ), - ), - array( - array( - array(-33256173, 4144782, -4476029, -6579123, 10770039, -7155542, -6650416, -12936300, -18319198, 10212860), - array(2756081, 8598110, 7383731, -6859892, 22312759, -1105012, 21179801, 2600940, -9988298, -12506466), - array(-24645692, 13317462, -30449259, -15653928, 21365574, -10869657, 11344424, 864440, -2499677, -16710063), - ), - array( - array(-26432803, 6148329, -17184412, -14474154, 18782929, -275997, -22561534, 211300, 2719757, 4940997), - array(-1323882, 3911313, -6948744, 14759765, -30027150, 7851207, 21690126, 8518463, 26699843, 5276295), - array(-13149873, -6429067, 9396249, 365013, 24703301, -10488939, 1321586, 149635, -15452774, 7159369), - ), - array( - array(9987780, -3404759, 17507962, 9505530, 9731535, -2165514, 22356009, 8312176, 22477218, -8403385), - array(18155857, -16504990, 19744716, 9006923, 15154154, -10538976, 24256460, -4864995, -22548173, 9334109), - array(2986088, -4911893, 10776628, -3473844, 10620590, -7083203, -21413845, 14253545, -22587149, 536906), - ), - array( - array(4377756, 8115836, 24567078, 15495314, 11625074, 13064599, 7390551, 10589625, 10838060, -15420424), - array(-19342404, 867880, 9277171, -3218459, -14431572, -1986443, 19295826, -15796950, 6378260, 699185), - array(7895026, 4057113, -7081772, -13077756, -17886831, -323126, -716039, 15693155, -5045064, -13373962), - ), - array( - array(-7737563, -5869402, -14566319, -7406919, 11385654, 13201616, 31730678, -10962840, -3918636, -9669325), - array(10188286, -15770834, -7336361, 13427543, 22223443, 14896287, 30743455, 7116568, -21786507, 5427593), - array(696102, 13206899, 27047647, -10632082, 15285305, -9853179, 10798490, -4578720, 19236243, 12477404), - ), - array( - array(-11229439, 11243796, -17054270, -8040865, -788228, -8167967, -3897669, 11180504, -23169516, 7733644), - array(17800790, -14036179, -27000429, -11766671, 23887827, 3149671, 23466177, -10538171, 10322027, 15313801), - array(26246234, 11968874, 32263343, -5468728, 6830755, -13323031, -15794704, -101982, -24449242, 10890804), - ), - array( - array(-31365647, 10271363, -12660625, -6267268, 16690207, -13062544, -14982212, 16484931, 25180797, -5334884), - array(-586574, 10376444, -32586414, -11286356, 19801893, 10997610, 2276632, 9482883, 316878, 13820577), - array(-9882808, -4510367, -2115506, 16457136, -11100081, 11674996, 30756178, -7515054, 30696930, -3712849), - ), - array( - array(32988917, -9603412, 12499366, 7910787, -10617257, -11931514, -7342816, -9985397, -32349517, 7392473), - array(-8855661, 15927861, 9866406, -3649411, -2396914, -16655781, -30409476, -9134995, 25112947, -2926644), - array(-2504044, -436966, 25621774, -5678772, 15085042, -5479877, -24884878, -13526194, 5537438, -13914319), - ), - ), - array( - array( - array(-11225584, 2320285, -9584280, 10149187, -33444663, 5808648, -14876251, -1729667, 31234590, 6090599), - array(-9633316, 116426, 26083934, 2897444, -6364437, -2688086, 609721, 15878753, -6970405, -9034768), - array(-27757857, 247744, -15194774, -9002551, 23288161, -10011936, -23869595, 6503646, 20650474, 1804084), - ), - array( - array(-27589786, 15456424, 8972517, 8469608, 15640622, 4439847, 3121995, -10329713, 27842616, -202328), - array(-15306973, 2839644, 22530074, 10026331, 4602058, 5048462, 28248656, 5031932, -11375082, 12714369), - array(20807691, -7270825, 29286141, 11421711, -27876523, -13868230, -21227475, 1035546, -19733229, 12796920), - ), - array( - array(12076899, -14301286, -8785001, -11848922, -25012791, 16400684, -17591495, -12899438, 3480665, -15182815), - array(-32361549, 5457597, 28548107, 7833186, 7303070, -11953545, -24363064, -15921875, -33374054, 2771025), - array(-21389266, 421932, 26597266, 6860826, 22486084, -6737172, -17137485, -4210226, -24552282, 15673397), - ), - array( - array(-20184622, 2338216, 19788685, -9620956, -4001265, -8740893, -20271184, 4733254, 3727144, -12934448), - array(6120119, 814863, -11794402, -622716, 6812205, -15747771, 2019594, 7975683, 31123697, -10958981), - array(30069250, -11435332, 30434654, 2958439, 18399564, -976289, 12296869, 9204260, -16432438, 9648165), - ), - array( - array(32705432, -1550977, 30705658, 7451065, -11805606, 9631813, 3305266, 5248604, -26008332, -11377501), - array(17219865, 2375039, -31570947, -5575615, -19459679, 9219903, 294711, 15298639, 2662509, -16297073), - array(-1172927, -7558695, -4366770, -4287744, -21346413, -8434326, 32087529, -1222777, 32247248, -14389861), - ), - array( - array(14312628, 1221556, 17395390, -8700143, -4945741, -8684635, -28197744, -9637817, -16027623, -13378845), - array(-1428825, -9678990, -9235681, 6549687, -7383069, -468664, 23046502, 9803137, 17597934, 2346211), - array(18510800, 15337574, 26171504, 981392, -22241552, 7827556, -23491134, -11323352, 3059833, -11782870), - ), - array( - array(10141598, 6082907, 17829293, -1947643, 9830092, 13613136, -25556636, -5544586, -33502212, 3592096), - array(33114168, -15889352, -26525686, -13343397, 33076705, 8716171, 1151462, 1521897, -982665, -6837803), - array(-32939165, -4255815, 23947181, -324178, -33072974, -12305637, -16637686, 3891704, 26353178, 693168), - ), - array( - array(30374239, 1595580, -16884039, 13186931, 4600344, 406904, 9585294, -400668, 31375464, 14369965), - array(-14370654, -7772529, 1510301, 6434173, -18784789, -6262728, 32732230, -13108839, 17901441, 16011505), - array(18171223, -11934626, -12500402, 15197122, -11038147, -15230035, -19172240, -16046376, 8764035, 12309598), - ), - ), - array( - array( - array(5975908, -5243188, -19459362, -9681747, -11541277, 14015782, -23665757, 1228319, 17544096, -10593782), - array(5811932, -1715293, 3442887, -2269310, -18367348, -8359541, -18044043, -15410127, -5565381, 12348900), - array(-31399660, 11407555, 25755363, 6891399, -3256938, 14872274, -24849353, 8141295, -10632534, -585479), - ), - array( - array(-12675304, 694026, -5076145, 13300344, 14015258, -14451394, -9698672, -11329050, 30944593, 1130208), - array(8247766, -6710942, -26562381, -7709309, -14401939, -14648910, 4652152, 2488540, 23550156, -271232), - array(17294316, -3788438, 7026748, 15626851, 22990044, 113481, 2267737, -5908146, -408818, -137719), - ), - array( - array(16091085, -16253926, 18599252, 7340678, 2137637, -1221657, -3364161, 14550936, 3260525, -7166271), - array(-4910104, -13332887, 18550887, 10864893, -16459325, -7291596, -23028869, -13204905, -12748722, 2701326), - array(-8574695, 16099415, 4629974, -16340524, -20786213, -6005432, -10018363, 9276971, 11329923, 1862132), - ), - array( - array(14763076, -15903608, -30918270, 3689867, 3511892, 10313526, -21951088, 12219231, -9037963, -940300), - array(8894987, -3446094, 6150753, 3013931, 301220, 15693451, -31981216, -2909717, -15438168, 11595570), - array(15214962, 3537601, -26238722, -14058872, 4418657, -15230761, 13947276, 10730794, -13489462, -4363670), - ), - array( - array(-2538306, 7682793, 32759013, 263109, -29984731, -7955452, -22332124, -10188635, 977108, 699994), - array(-12466472, 4195084, -9211532, 550904, -15565337, 12917920, 19118110, -439841, -30534533, -14337913), - array(31788461, -14507657, 4799989, 7372237, 8808585, -14747943, 9408237, -10051775, 12493932, -5409317), - ), - array( - array(-25680606, 5260744, -19235809, -6284470, -3695942, 16566087, 27218280, 2607121, 29375955, 6024730), - array(842132, -2794693, -4763381, -8722815, 26332018, -12405641, 11831880, 6985184, -9940361, 2854096), - array(-4847262, -7969331, 2516242, -5847713, 9695691, -7221186, 16512645, 960770, 12121869, 16648078), - ), - array( - array(-15218652, 14667096, -13336229, 2013717, 30598287, -464137, -31504922, -7882064, 20237806, 2838411), - array(-19288047, 4453152, 15298546, -16178388, 22115043, -15972604, 12544294, -13470457, 1068881, -12499905), - array(-9558883, -16518835, 33238498, 13506958, 30505848, -1114596, -8486907, -2630053, 12521378, 4845654), - ), - array( - array(-28198521, 10744108, -2958380, 10199664, 7759311, -13088600, 3409348, -873400, -6482306, -12885870), - array(-23561822, 6230156, -20382013, 10655314, -24040585, -11621172, 10477734, -1240216, -3113227, 13974498), - array(12966261, 15550616, -32038948, -1615346, 21025980, -629444, 5642325, 7188737, 18895762, 12629579), - ), - ), - array( - array( - array(14741879, -14946887, 22177208, -11721237, 1279741, 8058600, 11758140, 789443, 32195181, 3895677), - array(10758205, 15755439, -4509950, 9243698, -4879422, 6879879, -2204575, -3566119, -8982069, 4429647), - array(-2453894, 15725973, -20436342, -10410672, -5803908, -11040220, -7135870, -11642895, 18047436, -15281743), - ), - array( - array(-25173001, -11307165, 29759956, 11776784, -22262383, -15820455, 10993114, -12850837, -17620701, -9408468), - array(21987233, 700364, -24505048, 14972008, -7774265, -5718395, 32155026, 2581431, -29958985, 8773375), - array(-25568350, 454463, -13211935, 16126715, 25240068, 8594567, 20656846, 12017935, -7874389, -13920155), - ), - array( - array(6028182, 6263078, -31011806, -11301710, -818919, 2461772, -31841174, -5468042, -1721788, -2776725), - array(-12278994, 16624277, 987579, -5922598, 32908203, 1248608, 7719845, -4166698, 28408820, 6816612), - array(-10358094, -8237829, 19549651, -12169222, 22082623, 16147817, 20613181, 13982702, -10339570, 5067943), - ), - array( - array(-30505967, -3821767, 12074681, 13582412, -19877972, 2443951, -19719286, 12746132, 5331210, -10105944), - array(30528811, 3601899, -1957090, 4619785, -27361822, -15436388, 24180793, -12570394, 27679908, -1648928), - array(9402404, -13957065, 32834043, 10838634, -26580150, -13237195, 26653274, -8685565, 22611444, -12715406), - ), - array( - array(22190590, 1118029, 22736441, 15130463, -30460692, -5991321, 19189625, -4648942, 4854859, 6622139), - array(-8310738, -2953450, -8262579, -3388049, -10401731, -271929, 13424426, -3567227, 26404409, 13001963), - array(-31241838, -15415700, -2994250, 8939346, 11562230, -12840670, -26064365, -11621720, -15405155, 11020693), - ), - array( - array(1866042, -7949489, -7898649, -10301010, 12483315, 13477547, 3175636, -12424163, 28761762, 1406734), - array(-448555, -1777666, 13018551, 3194501, -9580420, -11161737, 24760585, -4347088, 25577411, -13378680), - array(-24290378, 4759345, -690653, -1852816, 2066747, 10693769, -29595790, 9884936, -9368926, 4745410), - ), - array( - array(-9141284, 6049714, -19531061, -4341411, -31260798, 9944276, -15462008, -11311852, 10931924, -11931931), - array(-16561513, 14112680, -8012645, 4817318, -8040464, -11414606, -22853429, 10856641, -20470770, 13434654), - array(22759489, -10073434, -16766264, -1871422, 13637442, -10168091, 1765144, -12654326, 28445307, -5364710), - ), - array( - array(29875063, 12493613, 2795536, -3786330, 1710620, 15181182, -10195717, -8788675, 9074234, 1167180), - array(-26205683, 11014233, -9842651, -2635485, -26908120, 7532294, -18716888, -9535498, 3843903, 9367684), - array(-10969595, -6403711, 9591134, 9582310, 11349256, 108879, 16235123, 8601684, -139197, 4242895), - ), - ), - array( - array( - array(22092954, -13191123, -2042793, -11968512, 32186753, -11517388, -6574341, 2470660, -27417366, 16625501), - array(-11057722, 3042016, 13770083, -9257922, 584236, -544855, -7770857, 2602725, -27351616, 14247413), - array(6314175, -10264892, -32772502, 15957557, -10157730, 168750, -8618807, 14290061, 27108877, -1180880), - ), - array( - array(-8586597, -7170966, 13241782, 10960156, -32991015, -13794596, 33547976, -11058889, -27148451, 981874), - array(22833440, 9293594, -32649448, -13618667, -9136966, 14756819, -22928859, -13970780, -10479804, -16197962), - array(-7768587, 3326786, -28111797, 10783824, 19178761, 14905060, 22680049, 13906969, -15933690, 3797899), - ), - array( - array(21721356, -4212746, -12206123, 9310182, -3882239, -13653110, 23740224, -2709232, 20491983, -8042152), - array(9209270, -15135055, -13256557, -6167798, -731016, 15289673, 25947805, 15286587, 30997318, -6703063), - array(7392032, 16618386, 23946583, -8039892, -13265164, -1533858, -14197445, -2321576, 17649998, -250080), - ), - array( - array(-9301088, -14193827, 30609526, -3049543, -25175069, -1283752, -15241566, -9525724, -2233253, 7662146), - array(-17558673, 1763594, -33114336, 15908610, -30040870, -12174295, 7335080, -8472199, -3174674, 3440183), - array(-19889700, -5977008, -24111293, -9688870, 10799743, -16571957, 40450, -4431835, 4862400, 1133), - ), - array( - array(-32856209, -7873957, -5422389, 14860950, -16319031, 7956142, 7258061, 311861, -30594991, -7379421), - array(-3773428, -1565936, 28985340, 7499440, 24445838, 9325937, 29727763, 16527196, 18278453, 15405622), - array(-4381906, 8508652, -19898366, -3674424, -5984453, 15149970, -13313598, 843523, -21875062, 13626197), - ), - array( - array(2281448, -13487055, -10915418, -2609910, 1879358, 16164207, -10783882, 3953792, 13340839, 15928663), - array(31727126, -7179855, -18437503, -8283652, 2875793, -16390330, -25269894, -7014826, -23452306, 5964753), - array(4100420, -5959452, -17179337, 6017714, -18705837, 12227141, -26684835, 11344144, 2538215, -7570755), - ), - array( - array(-9433605, 6123113, 11159803, -2156608, 30016280, 14966241, -20474983, 1485421, -629256, -15958862), - array(-26804558, 4260919, 11851389, 9658551, -32017107, 16367492, -20205425, -13191288, 11659922, -11115118), - array(26180396, 10015009, -30844224, -8581293, 5418197, 9480663, 2231568, -10170080, 33100372, -1306171), - ), - array( - array(15121113, -5201871, -10389905, 15427821, -27509937, -15992507, 21670947, 4486675, -5931810, -14466380), - array(16166486, -9483733, -11104130, 6023908, -31926798, -1364923, 2340060, -16254968, -10735770, -10039824), - array(28042865, -3557089, -12126526, 12259706, -3717498, -6945899, 6766453, -8689599, 18036436, 5803270), - ), - ), - array( - array( - array(-817581, 6763912, 11803561, 1585585, 10958447, -2671165, 23855391, 4598332, -6159431, -14117438), - array(-31031306, -14256194, 17332029, -2383520, 31312682, -5967183, 696309, 50292, -20095739, 11763584), - array(-594563, -2514283, -32234153, 12643980, 12650761, 14811489, 665117, -12613632, -19773211, -10713562), - ), - array( - array(30464590, -11262872, -4127476, -12734478, 19835327, -7105613, -24396175, 2075773, -17020157, 992471), - array(18357185, -6994433, 7766382, 16342475, -29324918, 411174, 14578841, 8080033, -11574335, -10601610), - array(19598397, 10334610, 12555054, 2555664, 18821899, -10339780, 21873263, 16014234, 26224780, 16452269), - ), - array( - array(-30223925, 5145196, 5944548, 16385966, 3976735, 2009897, -11377804, -7618186, -20533829, 3698650), - array(14187449, 3448569, -10636236, -10810935, -22663880, -3433596, 7268410, -10890444, 27394301, 12015369), - array(19695761, 16087646, 28032085, 12999827, 6817792, 11427614, 20244189, -1312777, -13259127, -3402461), - ), - array( - array(30860103, 12735208, -1888245, -4699734, -16974906, 2256940, -8166013, 12298312, -8550524, -10393462), - array(-5719826, -11245325, -1910649, 15569035, 26642876, -7587760, -5789354, -15118654, -4976164, 12651793), - array(-2848395, 9953421, 11531313, -5282879, 26895123, -12697089, -13118820, -16517902, 9768698, -2533218), - ), - array( - array(-24719459, 1894651, -287698, -4704085, 15348719, -8156530, 32767513, 12765450, 4940095, 10678226), - array(18860224, 15980149, -18987240, -1562570, -26233012, -11071856, -7843882, 13944024, -24372348, 16582019), - array(-15504260, 4970268, -29893044, 4175593, -20993212, -2199756, -11704054, 15444560, -11003761, 7989037), - ), - array( - array(31490452, 5568061, -2412803, 2182383, -32336847, 4531686, -32078269, 6200206, -19686113, -14800171), - array(-17308668, -15879940, -31522777, -2831, -32887382, 16375549, 8680158, -16371713, 28550068, -6857132), - array(-28126887, -5688091, 16837845, -1820458, -6850681, 12700016, -30039981, 4364038, 1155602, 5988841), - ), - array( - array(21890435, -13272907, -12624011, 12154349, -7831873, 15300496, 23148983, -4470481, 24618407, 8283181), - array(-33136107, -10512751, 9975416, 6841041, -31559793, 16356536, 3070187, -7025928, 1466169, 10740210), - array(-1509399, -15488185, -13503385, -10655916, 32799044, 909394, -13938903, -5779719, -32164649, -15327040), - ), - array( - array(3960823, -14267803, -28026090, -15918051, -19404858, 13146868, 15567327, 951507, -3260321, -573935), - array(24740841, 5052253, -30094131, 8961361, 25877428, 6165135, -24368180, 14397372, -7380369, -6144105), - array(-28888365, 3510803, -28103278, -1158478, -11238128, -10631454, -15441463, -14453128, -1625486, -6494814), - ), - ), - array( - array( - array(793299, -9230478, 8836302, -6235707, -27360908, -2369593, 33152843, -4885251, -9906200, -621852), - array(5666233, 525582, 20782575, -8038419, -24538499, 14657740, 16099374, 1468826, -6171428, -15186581), - array(-4859255, -3779343, -2917758, -6748019, 7778750, 11688288, -30404353, -9871238, -1558923, -9863646), - ), - array( - array(10896332, -7719704, 824275, 472601, -19460308, 3009587, 25248958, 14783338, -30581476, -15757844), - array(10566929, 12612572, -31944212, 11118703, -12633376, 12362879, 21752402, 8822496, 24003793, 14264025), - array(27713862, -7355973, -11008240, 9227530, 27050101, 2504721, 23886875, -13117525, 13958495, -5732453), - ), - array( - array(-23481610, 4867226, -27247128, 3900521, 29838369, -8212291, -31889399, -10041781, 7340521, -15410068), - array(4646514, -8011124, -22766023, -11532654, 23184553, 8566613, 31366726, -1381061, -15066784, -10375192), - array(-17270517, 12723032, -16993061, 14878794, 21619651, -6197576, 27584817, 3093888, -8843694, 3849921), - ), - array( - array(-9064912, 2103172, 25561640, -15125738, -5239824, 9582958, 32477045, -9017955, 5002294, -15550259), - array(-12057553, -11177906, 21115585, -13365155, 8808712, -12030708, 16489530, 13378448, -25845716, 12741426), - array(-5946367, 10645103, -30911586, 15390284, -3286982, -7118677, 24306472, 15852464, 28834118, -7646072), - ), - array( - array(-17335748, -9107057, -24531279, 9434953, -8472084, -583362, -13090771, 455841, 20461858, 5491305), - array(13669248, -16095482, -12481974, -10203039, -14569770, -11893198, -24995986, 11293807, -28588204, -9421832), - array(28497928, 6272777, -33022994, 14470570, 8906179, -1225630, 18504674, -14165166, 29867745, -8795943), - ), - array( - array(-16207023, 13517196, -27799630, -13697798, 24009064, -6373891, -6367600, -13175392, 22853429, -4012011), - array(24191378, 16712145, -13931797, 15217831, 14542237, 1646131, 18603514, -11037887, 12876623, -2112447), - array(17902668, 4518229, -411702, -2829247, 26878217, 5258055, -12860753, 608397, 16031844, 3723494), - ), - array( - array(-28632773, 12763728, -20446446, 7577504, 33001348, -13017745, 17558842, -7872890, 23896954, -4314245), - array(-20005381, -12011952, 31520464, 605201, 2543521, 5991821, -2945064, 7229064, -9919646, -8826859), - array(28816045, 298879, -28165016, -15920938, 19000928, -1665890, -12680833, -2949325, -18051778, -2082915), - ), - array( - array(16000882, -344896, 3493092, -11447198, -29504595, -13159789, 12577740, 16041268, -19715240, 7847707), - array(10151868, 10572098, 27312476, 7922682, 14825339, 4723128, -32855931, -6519018, -10020567, 3852848), - array(-11430470, 15697596, -21121557, -4420647, 5386314, 15063598, 16514493, -15932110, 29330899, -15076224), - ), - ), - array( - array( - array(-25499735, -4378794, -15222908, -6901211, 16615731, 2051784, 3303702, 15490, -27548796, 12314391), - array(15683520, -6003043, 18109120, -9980648, 15337968, -5997823, -16717435, 15921866, 16103996, -3731215), - array(-23169824, -10781249, 13588192, -1628807, -3798557, -1074929, -19273607, 5402699, -29815713, -9841101), - ), - array( - array(23190676, 2384583, -32714340, 3462154, -29903655, -1529132, -11266856, 8911517, -25205859, 2739713), - array(21374101, -3554250, -33524649, 9874411, 15377179, 11831242, -33529904, 6134907, 4931255, 11987849), - array(-7732, -2978858, -16223486, 7277597, 105524, -322051, -31480539, 13861388, -30076310, 10117930), - ), - array( - array(-29501170, -10744872, -26163768, 13051539, -25625564, 5089643, -6325503, 6704079, 12890019, 15728940), - array(-21972360, -11771379, -951059, -4418840, 14704840, 2695116, 903376, -10428139, 12885167, 8311031), - array(-17516482, 5352194, 10384213, -13811658, 7506451, 13453191, 26423267, 4384730, 1888765, -5435404), - ), - array( - array(-25817338, -3107312, -13494599, -3182506, 30896459, -13921729, -32251644, -12707869, -19464434, -3340243), - array(-23607977, -2665774, -526091, 4651136, 5765089, 4618330, 6092245, 14845197, 17151279, -9854116), - array(-24830458, -12733720, -15165978, 10367250, -29530908, -265356, 22825805, -7087279, -16866484, 16176525), - ), - array( - array(-23583256, 6564961, 20063689, 3798228, -4740178, 7359225, 2006182, -10363426, -28746253, -10197509), - array(-10626600, -4486402, -13320562, -5125317, 3432136, -6393229, 23632037, -1940610, 32808310, 1099883), - array(15030977, 5768825, -27451236, -2887299, -6427378, -15361371, -15277896, -6809350, 2051441, -15225865), - ), - array( - array(-3362323, -7239372, 7517890, 9824992, 23555850, 295369, 5148398, -14154188, -22686354, 16633660), - array(4577086, -16752288, 13249841, -15304328, 19958763, -14537274, 18559670, -10759549, 8402478, -9864273), - array(-28406330, -1051581, -26790155, -907698, -17212414, -11030789, 9453451, -14980072, 17983010, 9967138), - ), - array( - array(-25762494, 6524722, 26585488, 9969270, 24709298, 1220360, -1677990, 7806337, 17507396, 3651560), - array(-10420457, -4118111, 14584639, 15971087, -15768321, 8861010, 26556809, -5574557, -18553322, -11357135), - array(2839101, 14284142, 4029895, 3472686, 14402957, 12689363, -26642121, 8459447, -5605463, -7621941), - ), - array( - array(-4839289, -3535444, 9744961, 2871048, 25113978, 3187018, -25110813, -849066, 17258084, -7977739), - array(18164541, -10595176, -17154882, -1542417, 19237078, -9745295, 23357533, -15217008, 26908270, 12150756), - array(-30264870, -7647865, 5112249, -7036672, -1499807, -6974257, 43168, -5537701, -32302074, 16215819), - ), - ), - array( - array( - array(-6898905, 9824394, -12304779, -4401089, -31397141, -6276835, 32574489, 12532905, -7503072, -8675347), - array(-27343522, -16515468, -27151524, -10722951, 946346, 16291093, 254968, 7168080, 21676107, -1943028), - array(21260961, -8424752, -16831886, -11920822, -23677961, 3968121, -3651949, -6215466, -3556191, -7913075), - ), - array( - array(16544754, 13250366, -16804428, 15546242, -4583003, 12757258, -2462308, -8680336, -18907032, -9662799), - array(-2415239, -15577728, 18312303, 4964443, -15272530, -12653564, 26820651, 16690659, 25459437, -4564609), - array(-25144690, 11425020, 28423002, -11020557, -6144921, -15826224, 9142795, -2391602, -6432418, -1644817), - ), - array( - array(-23104652, 6253476, 16964147, -3768872, -25113972, -12296437, -27457225, -16344658, 6335692, 7249989), - array(-30333227, 13979675, 7503222, -12368314, -11956721, -4621693, -30272269, 2682242, 25993170, -12478523), - array(4364628, 5930691, 32304656, -10044554, -8054781, 15091131, 22857016, -10598955, 31820368, 15075278), - ), - array( - array(31879134, -8918693, 17258761, 90626, -8041836, -4917709, 24162788, -9650886, -17970238, 12833045), - array(19073683, 14851414, -24403169, -11860168, 7625278, 11091125, -19619190, 2074449, -9413939, 14905377), - array(24483667, -11935567, -2518866, -11547418, -1553130, 15355506, -25282080, 9253129, 27628530, -7555480), - ), - array( - array(17597607, 8340603, 19355617, 552187, 26198470, -3176583, 4593324, -9157582, -14110875, 15297016), - array(510886, 14337390, -31785257, 16638632, 6328095, 2713355, -20217417, -11864220, 8683221, 2921426), - array(18606791, 11874196, 27155355, -5281482, -24031742, 6265446, -25178240, -1278924, 4674690, 13890525), - ), - array( - array(13609624, 13069022, -27372361, -13055908, 24360586, 9592974, 14977157, 9835105, 4389687, 288396), - array(9922506, -519394, 13613107, 5883594, -18758345, -434263, -12304062, 8317628, 23388070, 16052080), - array(12720016, 11937594, -31970060, -5028689, 26900120, 8561328, -20155687, -11632979, -14754271, -10812892), - ), - array( - array(15961858, 14150409, 26716931, -665832, -22794328, 13603569, 11829573, 7467844, -28822128, 929275), - array(11038231, -11582396, -27310482, -7316562, -10498527, -16307831, -23479533, -9371869, -21393143, 2465074), - array(20017163, -4323226, 27915242, 1529148, 12396362, 15675764, 13817261, -9658066, 2463391, -4622140), - ), - array( - array(-16358878, -12663911, -12065183, 4996454, -1256422, 1073572, 9583558, 12851107, 4003896, 12673717), - array(-1731589, -15155870, -3262930, 16143082, 19294135, 13385325, 14741514, -9103726, 7903886, 2348101), - array(24536016, -16515207, 12715592, -3862155, 1511293, 10047386, -3842346, -7129159, -28377538, 10048127), - ), - ), - array( - array( - array(-12622226, -6204820, 30718825, 2591312, -10617028, 12192840, 18873298, -7297090, -32297756, 15221632), - array(-26478122, -11103864, 11546244, -1852483, 9180880, 7656409, -21343950, 2095755, 29769758, 6593415), - array(-31994208, -2907461, 4176912, 3264766, 12538965, -868111, 26312345, -6118678, 30958054, 8292160), - ), - array( - array(31429822, -13959116, 29173532, 15632448, 12174511, -2760094, 32808831, 3977186, 26143136, -3148876), - array(22648901, 1402143, -22799984, 13746059, 7936347, 365344, -8668633, -1674433, -3758243, -2304625), - array(-15491917, 8012313, -2514730, -12702462, -23965846, -10254029, -1612713, -1535569, -16664475, 8194478), - ), - array( - array(27338066, -7507420, -7414224, 10140405, -19026427, -6589889, 27277191, 8855376, 28572286, 3005164), - array(26287124, 4821776, 25476601, -4145903, -3764513, -15788984, -18008582, 1182479, -26094821, -13079595), - array(-7171154, 3178080, 23970071, 6201893, -17195577, -4489192, -21876275, -13982627, 32208683, -1198248), - ), - array( - array(-16657702, 2817643, -10286362, 14811298, 6024667, 13349505, -27315504, -10497842, -27672585, -11539858), - array(15941029, -9405932, -21367050, 8062055, 31876073, -238629, -15278393, -1444429, 15397331, -4130193), - array(8934485, -13485467, -23286397, -13423241, -32446090, 14047986, 31170398, -1441021, -27505566, 15087184), - ), - array( - array(-18357243, -2156491, 24524913, -16677868, 15520427, -6360776, -15502406, 11461896, 16788528, -5868942), - array(-1947386, 16013773, 21750665, 3714552, -17401782, -16055433, -3770287, -10323320, 31322514, -11615635), - array(21426655, -5650218, -13648287, -5347537, -28812189, -4920970, -18275391, -14621414, 13040862, -12112948), - ), - array( - array(11293895, 12478086, -27136401, 15083750, -29307421, 14748872, 14555558, -13417103, 1613711, 4896935), - array(-25894883, 15323294, -8489791, -8057900, 25967126, -13425460, 2825960, -4897045, -23971776, -11267415), - array(-15924766, -5229880, -17443532, 6410664, 3622847, 10243618, 20615400, 12405433, -23753030, -8436416), - ), - array( - array(-7091295, 12556208, -20191352, 9025187, -17072479, 4333801, 4378436, 2432030, 23097949, -566018), - array(4565804, -16025654, 20084412, -7842817, 1724999, 189254, 24767264, 10103221, -18512313, 2424778), - array(366633, -11976806, 8173090, -6890119, 30788634, 5745705, -7168678, 1344109, -3642553, 12412659), - ), - array( - array(-24001791, 7690286, 14929416, -168257, -32210835, -13412986, 24162697, -15326504, -3141501, 11179385), - array(18289522, -14724954, 8056945, 16430056, -21729724, 7842514, -6001441, -1486897, -18684645, -11443503), - array(476239, 6601091, -6152790, -9723375, 17503545, -4863900, 27672959, 13403813, 11052904, 5219329), - ), - ), - array( - array( - array(20678546, -8375738, -32671898, 8849123, -5009758, 14574752, 31186971, -3973730, 9014762, -8579056), - array(-13644050, -10350239, -15962508, 5075808, -1514661, -11534600, -33102500, 9160280, 8473550, -3256838), - array(24900749, 14435722, 17209120, -15292541, -22592275, 9878983, -7689309, -16335821, -24568481, 11788948), - ), - array( - array(-3118155, -11395194, -13802089, 14797441, 9652448, -6845904, -20037437, 10410733, -24568470, -1458691), - array(-15659161, 16736706, -22467150, 10215878, -9097177, 7563911, 11871841, -12505194, -18513325, 8464118), - array(-23400612, 8348507, -14585951, -861714, -3950205, -6373419, 14325289, 8628612, 33313881, -8370517), - ), - array( - array(-20186973, -4967935, 22367356, 5271547, -1097117, -4788838, -24805667, -10236854, -8940735, -5818269), - array(-6948785, -1795212, -32625683, -16021179, 32635414, -7374245, 15989197, -12838188, 28358192, -4253904), - array(-23561781, -2799059, -32351682, -1661963, -9147719, 10429267, -16637684, 4072016, -5351664, 5596589), - ), - array( - array(-28236598, -3390048, 12312896, 6213178, 3117142, 16078565, 29266239, 2557221, 1768301, 15373193), - array(-7243358, -3246960, -4593467, -7553353, -127927, -912245, -1090902, -4504991, -24660491, 3442910), - array(-30210571, 5124043, 14181784, 8197961, 18964734, -11939093, 22597931, 7176455, -18585478, 13365930), - ), - array( - array(-7877390, -1499958, 8324673, 4690079, 6261860, 890446, 24538107, -8570186, -9689599, -3031667), - array(25008904, -10771599, -4305031, -9638010, 16265036, 15721635, 683793, -11823784, 15723479, -15163481), - array(-9660625, 12374379, -27006999, -7026148, -7724114, -12314514, 11879682, 5400171, 519526, -1235876), - ), - array( - array(22258397, -16332233, -7869817, 14613016, -22520255, -2950923, -20353881, 7315967, 16648397, 7605640), - array(-8081308, -8464597, -8223311, 9719710, 19259459, -15348212, 23994942, -5281555, -9468848, 4763278), - array(-21699244, 9220969, -15730624, 1084137, -25476107, -2852390, 31088447, -7764523, -11356529, 728112), - ), - array( - array(26047220, -11751471, -6900323, -16521798, 24092068, 9158119, -4273545, -12555558, -29365436, -5498272), - array(17510331, -322857, 5854289, 8403524, 17133918, -3112612, -28111007, 12327945, 10750447, 10014012), - array(-10312768, 3936952, 9156313, -8897683, 16498692, -994647, -27481051, -666732, 3424691, 7540221), - ), - array( - array(30322361, -6964110, 11361005, -4143317, 7433304, 4989748, -7071422, -16317219, -9244265, 15258046), - array(13054562, -2779497, 19155474, 469045, -12482797, 4566042, 5631406, 2711395, 1062915, -5136345), - array(-19240248, -11254599, -29509029, -7499965, -5835763, 13005411, -6066489, 12194497, 32960380, 1459310), - ), - ), - array( - array( - array(19852034, 7027924, 23669353, 10020366, 8586503, -6657907, 394197, -6101885, 18638003, -11174937), - array(31395534, 15098109, 26581030, 8030562, -16527914, -5007134, 9012486, -7584354, -6643087, -5442636), - array(-9192165, -2347377, -1997099, 4529534, 25766844, 607986, -13222, 9677543, -32294889, -6456008), - ), - array( - array(-2444496, -149937, 29348902, 8186665, 1873760, 12489863, -30934579, -7839692, -7852844, -8138429), - array(-15236356, -15433509, 7766470, 746860, 26346930, -10221762, -27333451, 10754588, -9431476, 5203576), - array(31834314, 14135496, -770007, 5159118, 20917671, -16768096, -7467973, -7337524, 31809243, 7347066), - ), - array( - array(-9606723, -11874240, 20414459, 13033986, 13716524, -11691881, 19797970, -12211255, 15192876, -2087490), - array(-12663563, -2181719, 1168162, -3804809, 26747877, -14138091, 10609330, 12694420, 33473243, -13382104), - array(33184999, 11180355, 15832085, -11385430, -1633671, 225884, 15089336, -11023903, -6135662, 14480053), - ), - array( - array(31308717, -5619998, 31030840, -1897099, 15674547, -6582883, 5496208, 13685227, 27595050, 8737275), - array(-20318852, -15150239, 10933843, -16178022, 8335352, -7546022, -31008351, -12610604, 26498114, 66511), - array(22644454, -8761729, -16671776, 4884562, -3105614, -13559366, 30540766, -4286747, -13327787, -7515095), - ), - array( - array(-28017847, 9834845, 18617207, -2681312, -3401956, -13307506, 8205540, 13585437, -17127465, 15115439), - array(23711543, -672915, 31206561, -8362711, 6164647, -9709987, -33535882, -1426096, 8236921, 16492939), - array(-23910559, -13515526, -26299483, -4503841, 25005590, -7687270, 19574902, 10071562, 6708380, -6222424), - ), - array( - array(2101391, -4930054, 19702731, 2367575, -15427167, 1047675, 5301017, 9328700, 29955601, -11678310), - array(3096359, 9271816, -21620864, -15521844, -14847996, -7592937, -25892142, -12635595, -9917575, 6216608), - array(-32615849, 338663, -25195611, 2510422, -29213566, -13820213, 24822830, -6146567, -26767480, 7525079), - ), - array( - array(-23066649, -13985623, 16133487, -7896178, -3389565, 778788, -910336, -2782495, -19386633, 11994101), - array(21691500, -13624626, -641331, -14367021, 3285881, -3483596, -25064666, 9718258, -7477437, 13381418), - array(18445390, -4202236, 14979846, 11622458, -1727110, -3582980, 23111648, -6375247, 28535282, 15779576), - ), - array( - array(30098053, 3089662, -9234387, 16662135, -21306940, 11308411, -14068454, 12021730, 9955285, -16303356), - array(9734894, -14576830, -7473633, -9138735, 2060392, 11313496, -18426029, 9924399, 20194861, 13380996), - array(-26378102, -7965207, -22167821, 15789297, -18055342, -6168792, -1984914, 15707771, 26342023, 10146099), - ), - ), - array( - array( - array(-26016874, -219943, 21339191, -41388, 19745256, -2878700, -29637280, 2227040, 21612326, -545728), - array(-13077387, 1184228, 23562814, -5970442, -20351244, -6348714, 25764461, 12243797, -20856566, 11649658), - array(-10031494, 11262626, 27384172, 2271902, 26947504, -15997771, 39944, 6114064, 33514190, 2333242), - ), - array( - array(-21433588, -12421821, 8119782, 7219913, -21830522, -9016134, -6679750, -12670638, 24350578, -13450001), - array(-4116307, -11271533, -23886186, 4843615, -30088339, 690623, -31536088, -10406836, 8317860, 12352766), - array(18200138, -14475911, -33087759, -2696619, -23702521, -9102511, -23552096, -2287550, 20712163, 6719373), - ), - array( - array(26656208, 6075253, -7858556, 1886072, -28344043, 4262326, 11117530, -3763210, 26224235, -3297458), - array(-17168938, -14854097, -3395676, -16369877, -19954045, 14050420, 21728352, 9493610, 18620611, -16428628), - array(-13323321, 13325349, 11432106, 5964811, 18609221, 6062965, -5269471, -9725556, -30701573, -16479657), - ), - array( - array(-23860538, -11233159, 26961357, 1640861, -32413112, -16737940, 12248509, -5240639, 13735342, 1934062), - array(25089769, 6742589, 17081145, -13406266, 21909293, -16067981, -15136294, -3765346, -21277997, 5473616), - array(31883677, -7961101, 1083432, -11572403, 22828471, 13290673, -7125085, 12469656, 29111212, -5451014), - ), - array( - array(24244947, -15050407, -26262976, 2791540, -14997599, 16666678, 24367466, 6388839, -10295587, 452383), - array(-25640782, -3417841, 5217916, 16224624, 19987036, -4082269, -24236251, -5915248, 15766062, 8407814), - array(-20406999, 13990231, 15495425, 16395525, 5377168, 15166495, -8917023, -4388953, -8067909, 2276718), - ), - array( - array(30157918, 12924066, -17712050, 9245753, 19895028, 3368142, -23827587, 5096219, 22740376, -7303417), - array(2041139, -14256350, 7783687, 13876377, -25946985, -13352459, 24051124, 13742383, -15637599, 13295222), - array(33338237, -8505733, 12532113, 7977527, 9106186, -1715251, -17720195, -4612972, -4451357, -14669444), - ), - array( - array(-20045281, 5454097, -14346548, 6447146, 28862071, 1883651, -2469266, -4141880, 7770569, 9620597), - array(23208068, 7979712, 33071466, 8149229, 1758231, -10834995, 30945528, -1694323, -33502340, -14767970), - array(1439958, -16270480, -1079989, -793782, 4625402, 10647766, -5043801, 1220118, 30494170, -11440799), - ), - array( - array(-5037580, -13028295, -2970559, -3061767, 15640974, -6701666, -26739026, 926050, -1684339, -13333647), - array(13908495, -3549272, 30919928, -6273825, -21521863, 7989039, 9021034, 9078865, 3353509, 4033511), - array(-29663431, -15113610, 32259991, -344482, 24295849, -12912123, 23161163, 8839127, 27485041, 7356032), - ), - ), - array( - array( - array(9661027, 705443, 11980065, -5370154, -1628543, 14661173, -6346142, 2625015, 28431036, -16771834), - array(-23839233, -8311415, -25945511, 7480958, -17681669, -8354183, -22545972, 14150565, 15970762, 4099461), - array(29262576, 16756590, 26350592, -8793563, 8529671, -11208050, 13617293, -9937143, 11465739, 8317062), - ), - array( - array(-25493081, -6962928, 32500200, -9419051, -23038724, -2302222, 14898637, 3848455, 20969334, -5157516), - array(-20384450, -14347713, -18336405, 13884722, -33039454, 2842114, -21610826, -3649888, 11177095, 14989547), - array(-24496721, -11716016, 16959896, 2278463, 12066309, 10137771, 13515641, 2581286, -28487508, 9930240), - ), - array( - array(-17751622, -2097826, 16544300, -13009300, -15914807, -14949081, 18345767, -13403753, 16291481, -5314038), - array(-33229194, 2553288, 32678213, 9875984, 8534129, 6889387, -9676774, 6957617, 4368891, 9788741), - array(16660756, 7281060, -10830758, 12911820, 20108584, -8101676, -21722536, -8613148, 16250552, -11111103), - ), - array( - array(-19765507, 2390526, -16551031, 14161980, 1905286, 6414907, 4689584, 10604807, -30190403, 4782747), - array(-1354539, 14736941, -7367442, -13292886, 7710542, -14155590, -9981571, 4383045, 22546403, 437323), - array(31665577, -12180464, -16186830, 1491339, -18368625, 3294682, 27343084, 2786261, -30633590, -14097016), - ), - array( - array(-14467279, -683715, -33374107, 7448552, 19294360, 14334329, -19690631, 2355319, -19284671, -6114373), - array(15121312, -15796162, 6377020, -6031361, -10798111, -12957845, 18952177, 15496498, -29380133, 11754228), - array(-2637277, -13483075, 8488727, -14303896, 12728761, -1622493, 7141596, 11724556, 22761615, -10134141), - ), - array( - array(16918416, 11729663, -18083579, 3022987, -31015732, -13339659, -28741185, -12227393, 32851222, 11717399), - array(11166634, 7338049, -6722523, 4531520, -29468672, -7302055, 31474879, 3483633, -1193175, -4030831), - array(-185635, 9921305, 31456609, -13536438, -12013818, 13348923, 33142652, 6546660, -19985279, -3948376), - ), - array( - array(-32460596, 11266712, -11197107, -7899103, 31703694, 3855903, -8537131, -12833048, -30772034, -15486313), - array(-18006477, 12709068, 3991746, -6479188, -21491523, -10550425, -31135347, -16049879, 10928917, 3011958), - array(-6957757, -15594337, 31696059, 334240, 29576716, 14796075, -30831056, -12805180, 18008031, 10258577), - ), - array( - array(-22448644, 15655569, 7018479, -4410003, -30314266, -1201591, -1853465, 1367120, 25127874, 6671743), - array(29701166, -14373934, -10878120, 9279288, -17568, 13127210, 21382910, 11042292, 25838796, 4642684), - array(-20430234, 14955537, -24126347, 8124619, -5369288, -5990470, 30468147, -13900640, 18423289, 4177476), - ), - ) - ); - - /** - * See: libsodium's crypto_core/curve25519/ref10/base2.h - * - * @var array>> basically int[8][3] - */ - protected static $base2 = array( - array( - array(25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605), - array(-12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378), - array(-8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546), - ), - array( - array(15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024), - array(16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574), - array(30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357), - ), - array( - array(10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380), - array(4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306), - array(19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942), - ), - array( - array(5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766), - array(-30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701), - array(28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300), - ), - array( - array(-22518993, -6692182, 14201702, -8745502, -23510406, 8844726, 18474211, -1361450, -13062696, 13821877), - array(-6455177, -7839871, 3374702, -4740862, -27098617, -10571707, 31655028, -7212327, 18853322, -14220951), - array(4566830, -12963868, -28974889, -12240689, -7602672, -2830569, -8514358, -10431137, 2207753, -3209784), - ), - array( - array(-25154831, -4185821, 29681144, 7868801, -6854661, -9423865, -12437364, -663000, -31111463, -16132436), - array(25576264, -2703214, 7349804, -11814844, 16472782, 9300885, 3844789, 15725684, 171356, 6466918), - array(23103977, 13316479, 9739013, -16149481, 817875, -15038942, 8965339, -14088058, -30714912, 16193877), - ), - array( - array(-33521811, 3180713, -2394130, 14003687, -16903474, -16270840, 17238398, 4729455, -18074513, 9256800), - array(-25182317, -4174131, 32336398, 5036987, -21236817, 11360617, 22616405, 9761698, -19827198, 630305), - array(-13720693, 2639453, -24237460, -7406481, 9494427, -5774029, -6554551, -15960994, -2449256, -14291300), - ), - array( - array(-3151181, -5046075, 9282714, 6866145, -31907062, -863023, -18940575, 15033784, 25105118, -7894876), - array(-24326370, 15950226, -31801215, -14592823, -11662737, -5090925, 1573892, -2625887, 2198790, -15804619), - array(-3099351, 10324967, -2241613, 7453183, -5446979, -2735503, -13812022, -16236442, -32461234, -12290683), - ) - ); - - /** - * 37095705934669439343138083508754565189542113879843219016388785533085940283555 - * - * @var array - */ - protected static $d = array( - -10913610, - 13857413, - -15372611, - 6949391, - 114729, - -8787816, - -6275908, - -3247719, - -18696448, - -12055116 - ); - - /** - * 2 * d = 16295367250680780974490674513165176452449235426866156013048779062215315747161 - * - * @var array - */ - protected static $d2 = array( - -21827239, - -5839606, - -30745221, - 13898782, - 229458, - 15978800, - -12551817, - -6495438, - 29715968, - 9444199 - ); - - /** - * sqrt(-1) - * - * @var array - */ - protected static $sqrtm1 = array( - -32595792, - -7943725, - 9377950, - 3500415, - 12389472, - -272473, - -25146209, - -2005654, - 326686, - 11406482 - ); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Ed25519.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Ed25519.php deleted file mode 100644 index c4ecc55..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Ed25519.php +++ /dev/null @@ -1,481 +0,0 @@ -X)) { - throw new SodiumException('Unexpected zero result'); - } - - # fe_1(one_minus_y); - # fe_sub(one_minus_y, one_minus_y, A.Y); - # fe_invert(one_minus_y, one_minus_y); - $one_minux_y = self::fe_invert( - self::fe_sub( - self::fe_1(), - $A->Y - ) - ); - - - # fe_1(x); - # fe_add(x, x, A.Y); - # fe_mul(x, x, one_minus_y); - $x = self::fe_mul( - self::fe_add(self::fe_1(), $A->Y), - $one_minux_y - ); - - # fe_tobytes(curve25519_pk, x); - return self::fe_tobytes($x); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $sk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sk_to_pk($sk) - { - return self::ge_p3_tobytes( - self::ge_scalarmult_base( - self::substr($sk, 0, 32) - ) - ); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message - * @param string $sk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sign($message, $sk) - { - /** @var string $signature */ - $signature = self::sign_detached($message, $sk); - return $signature . $message; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message A signed message - * @param string $pk Public key - * @return string Message (without signature) - * @throws SodiumException - * @throws TypeError - */ - public static function sign_open($message, $pk) - { - /** @var string $signature */ - $signature = self::substr($message, 0, 64); - - /** @var string $message */ - $message = self::substr($message, 64); - - if (self::verify_detached($signature, $message, $pk)) { - return $message; - } - throw new SodiumException('Invalid signature'); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message - * @param string $sk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sign_detached($message, $sk) - { - # crypto_hash_sha512(az, sk, 32); - $az = hash('sha512', self::substr($sk, 0, 32), true); - - # az[0] &= 248; - # az[31] &= 63; - # az[31] |= 64; - $az[0] = self::intToChr(self::chrToInt($az[0]) & 248); - $az[31] = self::intToChr((self::chrToInt($az[31]) & 63) | 64); - - # crypto_hash_sha512_init(&hs); - # crypto_hash_sha512_update(&hs, az + 32, 32); - # crypto_hash_sha512_update(&hs, m, mlen); - # crypto_hash_sha512_final(&hs, nonce); - $hs = hash_init('sha512'); - hash_update($hs, self::substr($az, 32, 32)); - hash_update($hs, $message); - $nonceHash = hash_final($hs, true); - - # memmove(sig + 32, sk + 32, 32); - $pk = self::substr($sk, 32, 32); - - # sc_reduce(nonce); - # ge_scalarmult_base(&R, nonce); - # ge_p3_tobytes(sig, &R); - $nonce = self::sc_reduce($nonceHash) . self::substr($nonceHash, 32); - $sig = self::ge_p3_tobytes( - self::ge_scalarmult_base($nonce) - ); - - # crypto_hash_sha512_init(&hs); - # crypto_hash_sha512_update(&hs, sig, 64); - # crypto_hash_sha512_update(&hs, m, mlen); - # crypto_hash_sha512_final(&hs, hram); - $hs = hash_init('sha512'); - hash_update($hs, self::substr($sig, 0, 32)); - hash_update($hs, self::substr($pk, 0, 32)); - hash_update($hs, $message); - $hramHash = hash_final($hs, true); - - # sc_reduce(hram); - # sc_muladd(sig + 32, hram, az, nonce); - $hram = self::sc_reduce($hramHash); - $sigAfter = self::sc_muladd($hram, $az, $nonce); - $sig = self::substr($sig, 0, 32) . self::substr($sigAfter, 0, 32); - - try { - ParagonIE_Sodium_Compat::memzero($az); - } catch (SodiumException $ex) { - $az = null; - } - return $sig; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $sig - * @param string $message - * @param string $pk - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function verify_detached($sig, $message, $pk) - { - if (self::strlen($sig) < 64) { - throw new SodiumException('Signature is too short'); - } - if ((self::chrToInt($sig[63]) & 240) && self::check_S_lt_L(self::substr($sig, 32, 32))) { - throw new SodiumException('S < L - Invalid signature'); - } - if (self::small_order($sig)) { - throw new SodiumException('Signature is on too small of an order'); - } - if ((self::chrToInt($sig[63]) & 224) !== 0) { - throw new SodiumException('Invalid signature'); - } - $d = 0; - for ($i = 0; $i < 32; ++$i) { - $d |= self::chrToInt($pk[$i]); - } - if ($d === 0) { - throw new SodiumException('All zero public key'); - } - - /** @var bool The original value of ParagonIE_Sodium_Compat::$fastMult */ - $orig = ParagonIE_Sodium_Compat::$fastMult; - - // Set ParagonIE_Sodium_Compat::$fastMult to true to speed up verification. - ParagonIE_Sodium_Compat::$fastMult = true; - - /** @var ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $A */ - $A = self::ge_frombytes_negate_vartime($pk); - - /** @var string $hDigest */ - $hDigest = hash( - 'sha512', - self::substr($sig, 0, 32) . - self::substr($pk, 0, 32) . - $message, - true - ); - - /** @var string $h */ - $h = self::sc_reduce($hDigest) . self::substr($hDigest, 32); - - /** @var ParagonIE_Sodium_Core32_Curve25519_Ge_P2 $R */ - $R = self::ge_double_scalarmult_vartime( - $h, - $A, - self::substr($sig, 32) - ); - - /** @var string $rcheck */ - $rcheck = self::ge_tobytes($R); - - // Reset ParagonIE_Sodium_Compat::$fastMult to what it was before. - ParagonIE_Sodium_Compat::$fastMult = $orig; - - return self::verify_32($rcheck, self::substr($sig, 0, 32)); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $S - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function check_S_lt_L($S) - { - if (self::strlen($S) < 32) { - throw new SodiumException('Signature must be 32 bytes'); - } - static $L = array( - 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, - 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10 - ); - /** @var array $L */ - $c = 0; - $n = 1; - $i = 32; - - do { - --$i; - $x = self::chrToInt($S[$i]); - $c |= ( - (($x - $L[$i]) >> 8) & $n - ); - $n &= ( - (($x ^ $L[$i]) - 1) >> 8 - ); - } while ($i !== 0); - - return $c === 0; - } - - /** - * @param string $R - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function small_order($R) - { - static $blacklist = array( - /* 0 (order 4) */ - array( - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - ), - /* 1 (order 1) */ - array( - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - ), - /* 2707385501144840649318225287225658788936804267575313519463743609750303402022 (order 8) */ - array( - 0x26, 0xe8, 0x95, 0x8f, 0xc2, 0xb2, 0x27, 0xb0, - 0x45, 0xc3, 0xf4, 0x89, 0xf2, 0xef, 0x98, 0xf0, - 0xd5, 0xdf, 0xac, 0x05, 0xd3, 0xc6, 0x33, 0x39, - 0xb1, 0x38, 0x02, 0x88, 0x6d, 0x53, 0xfc, 0x05 - ), - /* 55188659117513257062467267217118295137698188065244968500265048394206261417927 (order 8) */ - array( - 0xc7, 0x17, 0x6a, 0x70, 0x3d, 0x4d, 0xd8, 0x4f, - 0xba, 0x3c, 0x0b, 0x76, 0x0d, 0x10, 0x67, 0x0f, - 0x2a, 0x20, 0x53, 0xfa, 0x2c, 0x39, 0xcc, 0xc6, - 0x4e, 0xc7, 0xfd, 0x77, 0x92, 0xac, 0x03, 0x7a - ), - /* p-1 (order 2) */ - array( - 0x13, 0xe8, 0x95, 0x8f, 0xc2, 0xb2, 0x27, 0xb0, - 0x45, 0xc3, 0xf4, 0x89, 0xf2, 0xef, 0x98, 0xf0, - 0xd5, 0xdf, 0xac, 0x05, 0xd3, 0xc6, 0x33, 0x39, - 0xb1, 0x38, 0x02, 0x88, 0x6d, 0x53, 0xfc, 0x85 - ), - /* p (order 4) */ - array( - 0xb4, 0x17, 0x6a, 0x70, 0x3d, 0x4d, 0xd8, 0x4f, - 0xba, 0x3c, 0x0b, 0x76, 0x0d, 0x10, 0x67, 0x0f, - 0x2a, 0x20, 0x53, 0xfa, 0x2c, 0x39, 0xcc, 0xc6, - 0x4e, 0xc7, 0xfd, 0x77, 0x92, 0xac, 0x03, 0xfa - ), - /* p+1 (order 1) */ - array( - 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f - ), - /* p+2707385501144840649318225287225658788936804267575313519463743609750303402022 (order 8) */ - array( - 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f - ), - /* p+55188659117513257062467267217118295137698188065244968500265048394206261417927 (order 8) */ - array( - 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f - ), - /* 2p-1 (order 2) */ - array( - 0xd9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - ), - /* 2p (order 4) */ - array( - 0xda, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - ), - /* 2p+1 (order 1) */ - array( - 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - ) - ); - /** @var array> $blacklist */ - $countBlacklist = count($blacklist); - - for ($i = 0; $i < $countBlacklist; ++$i) { - $c = 0; - for ($j = 0; $j < 32; ++$j) { - $c |= self::chrToInt($R[$j]) ^ $blacklist[$i][$j]; - } - if ($c === 0) { - return true; - } - } - return false; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/HChaCha20.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/HChaCha20.php deleted file mode 100644 index 551d995..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/HChaCha20.php +++ /dev/null @@ -1,127 +0,0 @@ -toReverseString() . - $x1->toReverseString() . - $x2->toReverseString() . - $x3->toReverseString() . - $x12->toReverseString() . - $x13->toReverseString() . - $x14->toReverseString() . - $x15->toReverseString(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/HSalsa20.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/HSalsa20.php deleted file mode 100644 index 39287f2..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/HSalsa20.php +++ /dev/null @@ -1,141 +0,0 @@ - 0; $i -= 2) { - $x4 = $x4->xorInt32($x0->addInt32($x12)->rotateLeft(7)); - $x8 = $x8->xorInt32($x4->addInt32($x0)->rotateLeft(9)); - $x12 = $x12->xorInt32($x8->addInt32($x4)->rotateLeft(13)); - $x0 = $x0->xorInt32($x12->addInt32($x8)->rotateLeft(18)); - - $x9 = $x9->xorInt32($x5->addInt32($x1)->rotateLeft(7)); - $x13 = $x13->xorInt32($x9->addInt32($x5)->rotateLeft(9)); - $x1 = $x1->xorInt32($x13->addInt32($x9)->rotateLeft(13)); - $x5 = $x5->xorInt32($x1->addInt32($x13)->rotateLeft(18)); - - $x14 = $x14->xorInt32($x10->addInt32($x6)->rotateLeft(7)); - $x2 = $x2->xorInt32($x14->addInt32($x10)->rotateLeft(9)); - $x6 = $x6->xorInt32($x2->addInt32($x14)->rotateLeft(13)); - $x10 = $x10->xorInt32($x6->addInt32($x2)->rotateLeft(18)); - - $x3 = $x3->xorInt32($x15->addInt32($x11)->rotateLeft(7)); - $x7 = $x7->xorInt32($x3->addInt32($x15)->rotateLeft(9)); - $x11 = $x11->xorInt32($x7->addInt32($x3)->rotateLeft(13)); - $x15 = $x15->xorInt32($x11->addInt32($x7)->rotateLeft(18)); - - $x1 = $x1->xorInt32($x0->addInt32($x3)->rotateLeft(7)); - $x2 = $x2->xorInt32($x1->addInt32($x0)->rotateLeft(9)); - $x3 = $x3->xorInt32($x2->addInt32($x1)->rotateLeft(13)); - $x0 = $x0->xorInt32($x3->addInt32($x2)->rotateLeft(18)); - - $x6 = $x6->xorInt32($x5->addInt32($x4)->rotateLeft(7)); - $x7 = $x7->xorInt32($x6->addInt32($x5)->rotateLeft(9)); - $x4 = $x4->xorInt32($x7->addInt32($x6)->rotateLeft(13)); - $x5 = $x5->xorInt32($x4->addInt32($x7)->rotateLeft(18)); - - $x11 = $x11->xorInt32($x10->addInt32($x9)->rotateLeft(7)); - $x8 = $x8->xorInt32($x11->addInt32($x10)->rotateLeft(9)); - $x9 = $x9->xorInt32($x8->addInt32($x11)->rotateLeft(13)); - $x10 = $x10->xorInt32($x9->addInt32($x8)->rotateLeft(18)); - - $x12 = $x12->xorInt32($x15->addInt32($x14)->rotateLeft(7)); - $x13 = $x13->xorInt32($x12->addInt32($x15)->rotateLeft(9)); - $x14 = $x14->xorInt32($x13->addInt32($x12)->rotateLeft(13)); - $x15 = $x15->xorInt32($x14->addInt32($x13)->rotateLeft(18)); - } - - return $x0->toReverseString() . - $x5->toReverseString() . - $x10->toReverseString() . - $x15->toReverseString() . - $x6->toReverseString() . - $x7->toReverseString() . - $x8->toReverseString() . - $x9->toReverseString(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Int32.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Int32.php deleted file mode 100644 index c3a1790..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Int32.php +++ /dev/null @@ -1,871 +0,0 @@ - - two 16-bit integers - * - * 0 is the higher 16 bits - * 1 is the lower 16 bits - */ - public $limbs = array(0, 0); - - /** - * @var int - */ - public $overflow = 0; - - /** - * @var bool - */ - public $unsignedInt = false; - - /** - * ParagonIE_Sodium_Core32_Int32 constructor. - * @param array $array - * @param bool $unsignedInt - */ - public function __construct($array = array(0, 0), $unsignedInt = false) - { - $this->limbs = array( - (int) $array[0], - (int) $array[1] - ); - $this->overflow = 0; - $this->unsignedInt = $unsignedInt; - } - - /** - * Adds two int32 objects - * - * @param ParagonIE_Sodium_Core32_Int32 $addend - * @return ParagonIE_Sodium_Core32_Int32 - */ - public function addInt32(ParagonIE_Sodium_Core32_Int32 $addend) - { - $i0 = $this->limbs[0]; - $i1 = $this->limbs[1]; - $j0 = $addend->limbs[0]; - $j1 = $addend->limbs[1]; - - $r1 = $i1 + ($j1 & 0xffff); - $carry = $r1 >> 16; - - $r0 = $i0 + ($j0 & 0xffff) + $carry; - $carry = $r0 >> 16; - - $r0 &= 0xffff; - $r1 &= 0xffff; - - $return = new ParagonIE_Sodium_Core32_Int32( - array($r0, $r1) - ); - $return->overflow = $carry; - $return->unsignedInt = $this->unsignedInt; - return $return; - } - - /** - * Adds a normal integer to an int32 object - * - * @param int $int - * @return ParagonIE_Sodium_Core32_Int32 - * @throws SodiumException - * @throws TypeError - */ - public function addInt($int) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($int, 'int', 1); - /** @var int $int */ - $int = (int) $int; - - $int = (int) $int; - - $i0 = $this->limbs[0]; - $i1 = $this->limbs[1]; - - $r1 = $i1 + ($int & 0xffff); - $carry = $r1 >> 16; - - $r0 = $i0 + (($int >> 16) & 0xffff) + $carry; - $carry = $r0 >> 16; - $r0 &= 0xffff; - $r1 &= 0xffff; - $return = new ParagonIE_Sodium_Core32_Int32( - array($r0, $r1) - ); - $return->overflow = $carry; - $return->unsignedInt = $this->unsignedInt; - return $return; - } - - /** - * @param int $b - * @return int - */ - public function compareInt($b = 0) - { - $gt = 0; - $eq = 1; - - $i = 2; - $j = 0; - while ($i > 0) { - --$i; - /** @var int $x1 */ - $x1 = $this->limbs[$i]; - /** @var int $x2 */ - $x2 = ($b >> ($j << 4)) & 0xffff; - /** @var int $gt */ - $gt |= (($x2 - $x1) >> 8) & $eq; - /** @var int $eq */ - $eq &= (($x2 ^ $x1) - 1) >> 8; - } - return ($gt + $gt - $eq) + 1; - } - - /** - * @param int $m - * @return ParagonIE_Sodium_Core32_Int32 - */ - public function mask($m = 0) - { - /** @var int $hi */ - $hi = ($m >> 16) & 0xffff; - /** @var int $lo */ - $lo = ($m & 0xffff); - return new ParagonIE_Sodium_Core32_Int32( - array( - (int) ($this->limbs[0] & $hi), - (int) ($this->limbs[1] & $lo) - ), - $this->unsignedInt - ); - } - - /** - * @param array $a - * @param array $b - * @param int $baseLog2 - * @return array - */ - public function multiplyLong(array $a, array $b, $baseLog2 = 16) - { - $a_l = count($a); - $b_l = count($b); - /** @var array $r */ - $r = array_fill(0, $a_l + $b_l + 1, 0); - $base = 1 << $baseLog2; - for ($i = 0; $i < $a_l; ++$i) { - $a_i = $a[$i]; - for ($j = 0; $j < $a_l; ++$j) { - $b_j = $b[$j]; - $product = ($a_i * $b_j) + $r[$i + $j]; - $carry = ($product >> $baseLog2 & 0xffff); - $r[$i + $j] = ($product - (int) ($carry * $base)) & 0xffff; - $r[$i + $j + 1] += $carry; - } - } - return array_slice($r, 0, 5); - } - - /** - * @param int $int - * @return ParagonIE_Sodium_Core32_Int32 - */ - public function mulIntFast($int) - { - // Handle negative numbers - $aNeg = ($this->limbs[0] >> 15) & 1; - $bNeg = ($int >> 31) & 1; - $a = array_reverse($this->limbs); - $b = array( - $int & 0xffff, - ($int >> 16) & 0xffff - ); - if ($aNeg) { - for ($i = 0; $i < 2; ++$i) { - $a[$i] = ($a[$i] ^ 0xffff) & 0xffff; - } - ++$a[0]; - } - if ($bNeg) { - for ($i = 0; $i < 2; ++$i) { - $b[$i] = ($b[$i] ^ 0xffff) & 0xffff; - } - ++$b[0]; - } - // Multiply - $res = $this->multiplyLong($a, $b); - - // Re-apply negation to results - if ($aNeg !== $bNeg) { - for ($i = 0; $i < 2; ++$i) { - $res[$i] = (0xffff ^ $res[$i]) & 0xffff; - } - // Handle integer overflow - $c = 1; - for ($i = 0; $i < 2; ++$i) { - $res[$i] += $c; - $c = $res[$i] >> 16; - $res[$i] &= 0xffff; - } - } - - // Return our values - $return = new ParagonIE_Sodium_Core32_Int32(); - $return->limbs = array( - $res[1] & 0xffff, - $res[0] & 0xffff - ); - if (count($res) > 2) { - $return->overflow = $res[2] & 0xffff; - } - $return->unsignedInt = $this->unsignedInt; - return $return; - } - - /** - * @param ParagonIE_Sodium_Core32_Int32 $right - * @return ParagonIE_Sodium_Core32_Int32 - */ - public function mulInt32Fast(ParagonIE_Sodium_Core32_Int32 $right) - { - $aNeg = ($this->limbs[0] >> 15) & 1; - $bNeg = ($right->limbs[0] >> 15) & 1; - - $a = array_reverse($this->limbs); - $b = array_reverse($right->limbs); - if ($aNeg) { - for ($i = 0; $i < 2; ++$i) { - $a[$i] = ($a[$i] ^ 0xffff) & 0xffff; - } - ++$a[0]; - } - if ($bNeg) { - for ($i = 0; $i < 2; ++$i) { - $b[$i] = ($b[$i] ^ 0xffff) & 0xffff; - } - ++$b[0]; - } - $res = $this->multiplyLong($a, $b); - if ($aNeg !== $bNeg) { - if ($aNeg !== $bNeg) { - for ($i = 0; $i < 2; ++$i) { - $res[$i] = ($res[$i] ^ 0xffff) & 0xffff; - } - $c = 1; - for ($i = 0; $i < 2; ++$i) { - $res[$i] += $c; - $c = $res[$i] >> 16; - $res[$i] &= 0xffff; - } - } - } - $return = new ParagonIE_Sodium_Core32_Int32(); - $return->limbs = array( - $res[1] & 0xffff, - $res[0] & 0xffff - ); - if (count($res) > 2) { - $return->overflow = $res[2]; - } - return $return; - } - - /** - * @param int $int - * @param int $size - * @return ParagonIE_Sodium_Core32_Int32 - * @throws SodiumException - * @throws TypeError - */ - public function mulInt($int = 0, $size = 0) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($int, 'int', 1); - ParagonIE_Sodium_Core32_Util::declareScalarType($size, 'int', 2); - if (ParagonIE_Sodium_Compat::$fastMult) { - return $this->mulIntFast((int) $int); - } - /** @var int $int */ - $int = (int) $int; - /** @var int $size */ - $size = (int) $size; - - if (!$size) { - $size = 31; - } - /** @var int $size */ - - $a = clone $this; - $return = new ParagonIE_Sodium_Core32_Int32(); - $return->unsignedInt = $this->unsignedInt; - - // Initialize: - $ret0 = 0; - $ret1 = 0; - $a0 = $a->limbs[0]; - $a1 = $a->limbs[1]; - - /** @var int $size */ - /** @var int $i */ - for ($i = $size; $i >= 0; --$i) { - $m = (int) (-($int & 1)); - $x0 = $a0 & $m; - $x1 = $a1 & $m; - - $ret1 += $x1; - $c = $ret1 >> 16; - - $ret0 += $x0 + $c; - - $ret0 &= 0xffff; - $ret1 &= 0xffff; - - $a1 = ($a1 << 1); - $x1 = $a1 >> 16; - $a0 = ($a0 << 1) | $x1; - $a0 &= 0xffff; - $a1 &= 0xffff; - $int >>= 1; - } - $return->limbs[0] = $ret0; - $return->limbs[1] = $ret1; - return $return; - } - - /** - * @param ParagonIE_Sodium_Core32_Int32 $int - * @param int $size - * @return ParagonIE_Sodium_Core32_Int32 - * @throws SodiumException - * @throws TypeError - */ - public function mulInt32(ParagonIE_Sodium_Core32_Int32 $int, $size = 0) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($size, 'int', 2); - if (ParagonIE_Sodium_Compat::$fastMult) { - return $this->mulInt32Fast($int); - } - if (!$size) { - $size = 31; - } - /** @var int $size */ - - $a = clone $this; - $b = clone $int; - $return = new ParagonIE_Sodium_Core32_Int32(); - $return->unsignedInt = $this->unsignedInt; - - // Initialize: - $ret0 = 0; - $ret1 = 0; - $a0 = $a->limbs[0]; - $a1 = $a->limbs[1]; - $b0 = $b->limbs[0]; - $b1 = $b->limbs[1]; - - /** @var int $size */ - /** @var int $i */ - for ($i = $size; $i >= 0; --$i) { - $m = (int) (-($b1 & 1)); - $x0 = $a0 & $m; - $x1 = $a1 & $m; - - $ret1 += $x1; - $c = $ret1 >> 16; - - $ret0 += $x0 + $c; - - $ret0 &= 0xffff; - $ret1 &= 0xffff; - - $a1 = ($a1 << 1); - $x1 = $a1 >> 16; - $a0 = ($a0 << 1) | $x1; - $a0 &= 0xffff; - $a1 &= 0xffff; - - $x0 = ($b0 & 1) << 16; - $b0 = ($b0 >> 1); - $b1 = (($b1 | $x0) >> 1); - - $b0 &= 0xffff; - $b1 &= 0xffff; - - } - $return->limbs[0] = $ret0; - $return->limbs[1] = $ret1; - - return $return; - } - - /** - * OR this 32-bit integer with another. - * - * @param ParagonIE_Sodium_Core32_Int32 $b - * @return ParagonIE_Sodium_Core32_Int32 - */ - public function orInt32(ParagonIE_Sodium_Core32_Int32 $b) - { - $return = new ParagonIE_Sodium_Core32_Int32(); - $return->unsignedInt = $this->unsignedInt; - $return->limbs = array( - (int) ($this->limbs[0] | $b->limbs[0]), - (int) ($this->limbs[1] | $b->limbs[1]) - ); - /** @var int overflow */ - $return->overflow = $this->overflow | $b->overflow; - return $return; - } - - /** - * @param int $b - * @return bool - */ - public function isGreaterThan($b = 0) - { - return $this->compareInt($b) > 0; - } - - /** - * @param int $b - * @return bool - */ - public function isLessThanInt($b = 0) - { - return $this->compareInt($b) < 0; - } - - /** - * @param int $c - * @return ParagonIE_Sodium_Core32_Int32 - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArrayAccess - */ - public function rotateLeft($c = 0) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1); - /** @var int $c */ - $c = (int) $c; - - $return = new ParagonIE_Sodium_Core32_Int32(); - $return->unsignedInt = $this->unsignedInt; - $c &= 31; - if ($c === 0) { - // NOP, but we want a copy. - $return->limbs = $this->limbs; - } else { - /** @var int $c */ - - /** @var int $idx_shift */ - $idx_shift = ($c >> 4) & 1; - - /** @var int $sub_shift */ - $sub_shift = $c & 15; - - /** @var array $limbs */ - $limbs =& $return->limbs; - - /** @var array $myLimbs */ - $myLimbs =& $this->limbs; - - for ($i = 1; $i >= 0; --$i) { - /** @var int $j */ - $j = ($i + $idx_shift) & 1; - /** @var int $k */ - $k = ($i + $idx_shift + 1) & 1; - $limbs[$i] = (int) ( - ( - ((int) ($myLimbs[$j]) << $sub_shift) - | - ((int) ($myLimbs[$k]) >> (16 - $sub_shift)) - ) & 0xffff - ); - } - } - return $return; - } - - /** - * Rotate to the right - * - * @param int $c - * @return ParagonIE_Sodium_Core32_Int32 - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArrayAccess - */ - public function rotateRight($c = 0) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1); - /** @var int $c */ - $c = (int) $c; - - $return = new ParagonIE_Sodium_Core32_Int32(); - $return->unsignedInt = $this->unsignedInt; - $c &= 31; - /** @var int $c */ - if ($c === 0) { - // NOP, but we want a copy. - $return->limbs = $this->limbs; - } else { - /** @var int $c */ - - /** @var int $idx_shift */ - $idx_shift = ($c >> 4) & 1; - - /** @var int $sub_shift */ - $sub_shift = $c & 15; - - /** @var array $limbs */ - $limbs =& $return->limbs; - - /** @var array $myLimbs */ - $myLimbs =& $this->limbs; - - for ($i = 1; $i >= 0; --$i) { - /** @var int $j */ - $j = ($i - $idx_shift) & 1; - /** @var int $k */ - $k = ($i - $idx_shift - 1) & 1; - $limbs[$i] = (int) ( - ( - ((int) ($myLimbs[$j]) >> (int) ($sub_shift)) - | - ((int) ($myLimbs[$k]) << (16 - (int) ($sub_shift))) - ) & 0xffff - ); - } - } - return $return; - } - - /** - * @param bool $bool - * @return self - */ - public function setUnsignedInt($bool = false) - { - $this->unsignedInt = !empty($bool); - return $this; - } - - /** - * @param int $c - * @return ParagonIE_Sodium_Core32_Int32 - * @throws SodiumException - * @throws TypeError - */ - public function shiftLeft($c = 0) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1); - /** @var int $c */ - $c = (int) $c; - - $return = new ParagonIE_Sodium_Core32_Int32(); - $return->unsignedInt = $this->unsignedInt; - $c &= 63; - /** @var int $c */ - if ($c === 0) { - $return->limbs = $this->limbs; - } elseif ($c < 0) { - /** @var int $c */ - return $this->shiftRight(-$c); - } else { - /** @var int $c */ - /** @var int $tmp */ - $tmp = $this->limbs[1] << $c; - $return->limbs[1] = (int)($tmp & 0xffff); - /** @var int $carry */ - $carry = $tmp >> 16; - - /** @var int $tmp */ - $tmp = ($this->limbs[0] << $c) | ($carry & 0xffff); - $return->limbs[0] = (int) ($tmp & 0xffff); - } - return $return; - } - - /** - * @param int $c - * @return ParagonIE_Sodium_Core32_Int32 - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedOperand - */ - public function shiftRight($c = 0) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1); - /** @var int $c */ - $c = (int) $c; - - $return = new ParagonIE_Sodium_Core32_Int32(); - $return->unsignedInt = $this->unsignedInt; - $c &= 63; - /** @var int $c */ - if ($c >= 16) { - $return->limbs = array( - (int) ($this->overflow & 0xffff), - (int) ($this->limbs[0]) - ); - $return->overflow = $this->overflow >> 16; - return $return->shiftRight($c & 15); - } - if ($c === 0) { - $return->limbs = $this->limbs; - } elseif ($c < 0) { - /** @var int $c */ - return $this->shiftLeft(-$c); - } else { - if (!is_int($c)) { - throw new TypeError(); - } - /** @var int $c */ - // $return->limbs[0] = (int) (($this->limbs[0] >> $c) & 0xffff); - $carryLeft = (int) ($this->overflow & ((1 << ($c + 1)) - 1)); - $return->limbs[0] = (int) ((($this->limbs[0] >> $c) | ($carryLeft << (16 - $c))) & 0xffff); - $carryRight = (int) ($this->limbs[0] & ((1 << ($c + 1)) - 1)); - $return->limbs[1] = (int) ((($this->limbs[1] >> $c) | ($carryRight << (16 - $c))) & 0xffff); - $return->overflow >>= $c; - } - return $return; - } - - /** - * Subtract a normal integer from an int32 object. - * - * @param int $int - * @return ParagonIE_Sodium_Core32_Int32 - * @throws SodiumException - * @throws TypeError - */ - public function subInt($int) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($int, 'int', 1); - /** @var int $int */ - $int = (int) $int; - - $return = new ParagonIE_Sodium_Core32_Int32(); - $return->unsignedInt = $this->unsignedInt; - - /** @var int $tmp */ - $tmp = $this->limbs[1] - ($int & 0xffff); - /** @var int $carry */ - $carry = $tmp >> 16; - $return->limbs[1] = (int) ($tmp & 0xffff); - - /** @var int $tmp */ - $tmp = $this->limbs[0] - (($int >> 16) & 0xffff) + $carry; - $return->limbs[0] = (int) ($tmp & 0xffff); - return $return; - } - - /** - * Subtract two int32 objects from each other - * - * @param ParagonIE_Sodium_Core32_Int32 $b - * @return ParagonIE_Sodium_Core32_Int32 - */ - public function subInt32(ParagonIE_Sodium_Core32_Int32 $b) - { - $return = new ParagonIE_Sodium_Core32_Int32(); - $return->unsignedInt = $this->unsignedInt; - - /** @var int $tmp */ - $tmp = $this->limbs[1] - ($b->limbs[1] & 0xffff); - /** @var int $carry */ - $carry = $tmp >> 16; - $return->limbs[1] = (int) ($tmp & 0xffff); - - /** @var int $tmp */ - $tmp = $this->limbs[0] - ($b->limbs[0] & 0xffff) + $carry; - $return->limbs[0] = (int) ($tmp & 0xffff); - return $return; - } - - /** - * XOR this 32-bit integer with another. - * - * @param ParagonIE_Sodium_Core32_Int32 $b - * @return ParagonIE_Sodium_Core32_Int32 - */ - public function xorInt32(ParagonIE_Sodium_Core32_Int32 $b) - { - $return = new ParagonIE_Sodium_Core32_Int32(); - $return->unsignedInt = $this->unsignedInt; - $return->limbs = array( - (int) ($this->limbs[0] ^ $b->limbs[0]), - (int) ($this->limbs[1] ^ $b->limbs[1]) - ); - return $return; - } - - /** - * @param int $signed - * @return self - * @throws SodiumException - * @throws TypeError - */ - public static function fromInt($signed) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($signed, 'int', 1);; - /** @var int $signed */ - $signed = (int) $signed; - - return new ParagonIE_Sodium_Core32_Int32( - array( - (int) (($signed >> 16) & 0xffff), - (int) ($signed & 0xffff) - ) - ); - } - - /** - * @param string $string - * @return self - * @throws SodiumException - * @throws TypeError - */ - public static function fromString($string) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($string, 'string', 1); - $string = (string) $string; - if (ParagonIE_Sodium_Core32_Util::strlen($string) !== 4) { - throw new RangeException( - 'String must be 4 bytes; ' . ParagonIE_Sodium_Core32_Util::strlen($string) . ' given.' - ); - } - $return = new ParagonIE_Sodium_Core32_Int32(); - - $return->limbs[0] = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[0]) & 0xff) << 8); - $return->limbs[0] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[1]) & 0xff); - $return->limbs[1] = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[2]) & 0xff) << 8); - $return->limbs[1] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[3]) & 0xff); - return $return; - } - - /** - * @param string $string - * @return self - * @throws SodiumException - * @throws TypeError - */ - public static function fromReverseString($string) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($string, 'string', 1); - $string = (string) $string; - if (ParagonIE_Sodium_Core32_Util::strlen($string) !== 4) { - throw new RangeException( - 'String must be 4 bytes; ' . ParagonIE_Sodium_Core32_Util::strlen($string) . ' given.' - ); - } - $return = new ParagonIE_Sodium_Core32_Int32(); - - $return->limbs[0] = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[3]) & 0xff) << 8); - $return->limbs[0] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[2]) & 0xff); - $return->limbs[1] = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[1]) & 0xff) << 8); - $return->limbs[1] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[0]) & 0xff); - return $return; - } - - /** - * @return array - */ - public function toArray() - { - return array((int) ($this->limbs[0] << 16 | $this->limbs[1])); - } - - /** - * @return string - * @throws TypeError - */ - public function toString() - { - return - ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[0] >> 8) & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[0] & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[1] >> 8) & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[1] & 0xff); - } - - /** - * @return int - */ - public function toInt() - { - return (int) ( - (($this->limbs[0] & 0xffff) << 16) - | - ($this->limbs[1] & 0xffff) - ); - } - - /** - * @return ParagonIE_Sodium_Core32_Int32 - */ - public function toInt32() - { - $return = new ParagonIE_Sodium_Core32_Int32(); - $return->limbs[0] = (int) ($this->limbs[0] & 0xffff); - $return->limbs[1] = (int) ($this->limbs[1] & 0xffff); - $return->unsignedInt = $this->unsignedInt; - $return->overflow = (int) ($this->overflow & 0x7fffffff); - return $return; - } - - /** - * @return ParagonIE_Sodium_Core32_Int64 - */ - public function toInt64() - { - $return = new ParagonIE_Sodium_Core32_Int64(); - $return->unsignedInt = $this->unsignedInt; - if ($this->unsignedInt) { - $return->limbs[0] += (($this->overflow >> 16) & 0xffff); - $return->limbs[1] += (($this->overflow) & 0xffff); - } else { - $neg = -(($this->limbs[0] >> 15) & 1); - $return->limbs[0] = (int)($neg & 0xffff); - $return->limbs[1] = (int)($neg & 0xffff); - } - $return->limbs[2] = (int) ($this->limbs[0] & 0xffff); - $return->limbs[3] = (int) ($this->limbs[1] & 0xffff); - return $return; - } - - /** - * @return string - * @throws TypeError - */ - public function toReverseString() - { - return ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[1] & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[1] >> 8) & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[0] & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[0] >> 8) & 0xff); - } - - /** - * @return string - */ - public function __toString() - { - try { - return $this->toString(); - } catch (TypeError $ex) { - // PHP engine can't handle exceptions from __toString() - return ''; - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Int64.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Int64.php deleted file mode 100644 index dd06a3f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Int64.php +++ /dev/null @@ -1,1066 +0,0 @@ - - four 16-bit integers - */ - public $limbs = array(0, 0, 0, 0); - - /** - * @var int - */ - public $overflow = 0; - - /** - * @var bool - */ - public $unsignedInt = false; - - /** - * ParagonIE_Sodium_Core32_Int64 constructor. - * @param array $array - * @param bool $unsignedInt - */ - public function __construct($array = array(0, 0, 0, 0), $unsignedInt = false) - { - $this->limbs = array( - (int) $array[0], - (int) $array[1], - (int) $array[2], - (int) $array[3] - ); - $this->overflow = 0; - $this->unsignedInt = $unsignedInt; - } - - /** - * Adds two int64 objects - * - * @param ParagonIE_Sodium_Core32_Int64 $addend - * @return ParagonIE_Sodium_Core32_Int64 - */ - public function addInt64(ParagonIE_Sodium_Core32_Int64 $addend) - { - $i0 = $this->limbs[0]; - $i1 = $this->limbs[1]; - $i2 = $this->limbs[2]; - $i3 = $this->limbs[3]; - $j0 = $addend->limbs[0]; - $j1 = $addend->limbs[1]; - $j2 = $addend->limbs[2]; - $j3 = $addend->limbs[3]; - - $r3 = $i3 + ($j3 & 0xffff); - $carry = $r3 >> 16; - - $r2 = $i2 + ($j2 & 0xffff) + $carry; - $carry = $r2 >> 16; - - $r1 = $i1 + ($j1 & 0xffff) + $carry; - $carry = $r1 >> 16; - - $r0 = $i0 + ($j0 & 0xffff) + $carry; - $carry = $r0 >> 16; - - $r0 &= 0xffff; - $r1 &= 0xffff; - $r2 &= 0xffff; - $r3 &= 0xffff; - - $return = new ParagonIE_Sodium_Core32_Int64( - array($r0, $r1, $r2, $r3) - ); - $return->overflow = $carry; - $return->unsignedInt = $this->unsignedInt; - return $return; - } - - /** - * Adds a normal integer to an int64 object - * - * @param int $int - * @return ParagonIE_Sodium_Core32_Int64 - * @throws SodiumException - * @throws TypeError - */ - public function addInt($int) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($int, 'int', 1); - /** @var int $int */ - $int = (int) $int; - - $i0 = $this->limbs[0]; - $i1 = $this->limbs[1]; - $i2 = $this->limbs[2]; - $i3 = $this->limbs[3]; - - $r3 = $i3 + ($int & 0xffff); - $carry = $r3 >> 16; - - $r2 = $i2 + (($int >> 16) & 0xffff) + $carry; - $carry = $r2 >> 16; - - $r1 = $i1 + $carry; - $carry = $r1 >> 16; - - $r0 = $i0 + $carry; - $carry = $r0 >> 16; - - $r0 &= 0xffff; - $r1 &= 0xffff; - $r2 &= 0xffff; - $r3 &= 0xffff; - $return = new ParagonIE_Sodium_Core32_Int64( - array($r0, $r1, $r2, $r3) - ); - $return->overflow = $carry; - $return->unsignedInt = $this->unsignedInt; - return $return; - } - - /** - * @param int $b - * @return int - */ - public function compareInt($b = 0) - { - $gt = 0; - $eq = 1; - - $i = 4; - $j = 0; - while ($i > 0) { - --$i; - /** @var int $x1 */ - $x1 = $this->limbs[$i]; - /** @var int $x2 */ - $x2 = ($b >> ($j << 4)) & 0xffff; - /** int */ - $gt |= (($x2 - $x1) >> 8) & $eq; - /** int */ - $eq &= (($x2 ^ $x1) - 1) >> 8; - } - return ($gt + $gt - $eq) + 1; - } - - /** - * @param int $b - * @return bool - */ - public function isGreaterThan($b = 0) - { - return $this->compareInt($b) > 0; - } - - /** - * @param int $b - * @return bool - */ - public function isLessThanInt($b = 0) - { - return $this->compareInt($b) < 0; - } - - /** - * @param int $hi - * @param int $lo - * @return ParagonIE_Sodium_Core32_Int64 - */ - public function mask64($hi = 0, $lo = 0) - { - /** @var int $a */ - $a = ($hi >> 16) & 0xffff; - /** @var int $b */ - $b = ($hi) & 0xffff; - /** @var int $c */ - $c = ($lo >> 16) & 0xffff; - /** @var int $d */ - $d = ($lo & 0xffff); - return new ParagonIE_Sodium_Core32_Int64( - array( - $this->limbs[0] & $a, - $this->limbs[1] & $b, - $this->limbs[2] & $c, - $this->limbs[3] & $d - ), - $this->unsignedInt - ); - } - - /** - * @param int $int - * @param int $size - * @return ParagonIE_Sodium_Core32_Int64 - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedAssignment - */ - public function mulInt($int = 0, $size = 0) - { - if (ParagonIE_Sodium_Compat::$fastMult) { - return $this->mulIntFast($int); - } - ParagonIE_Sodium_Core32_Util::declareScalarType($int, 'int', 1); - ParagonIE_Sodium_Core32_Util::declareScalarType($size, 'int', 2); - /** @var int $int */ - $int = (int) $int; - /** @var int $size */ - $size = (int) $size; - - if (!$size) { - $size = 63; - } - - $a = clone $this; - $return = new ParagonIE_Sodium_Core32_Int64(); - $return->unsignedInt = $this->unsignedInt; - - // Initialize: - $ret0 = 0; - $ret1 = 0; - $ret2 = 0; - $ret3 = 0; - $a0 = $a->limbs[0]; - $a1 = $a->limbs[1]; - $a2 = $a->limbs[2]; - $a3 = $a->limbs[3]; - - /** @var int $size */ - /** @var int $i */ - for ($i = $size; $i >= 0; --$i) { - $mask = -($int & 1); - $x0 = $a0 & $mask; - $x1 = $a1 & $mask; - $x2 = $a2 & $mask; - $x3 = $a3 & $mask; - - $ret3 += $x3; - $c = $ret3 >> 16; - - $ret2 += $x2 + $c; - $c = $ret2 >> 16; - - $ret1 += $x1 + $c; - $c = $ret1 >> 16; - - $ret0 += $x0 + $c; - - $ret0 &= 0xffff; - $ret1 &= 0xffff; - $ret2 &= 0xffff; - $ret3 &= 0xffff; - - $a3 = $a3 << 1; - $x3 = $a3 >> 16; - $a2 = ($a2 << 1) | $x3; - $x2 = $a2 >> 16; - $a1 = ($a1 << 1) | $x2; - $x1 = $a1 >> 16; - $a0 = ($a0 << 1) | $x1; - $a0 &= 0xffff; - $a1 &= 0xffff; - $a2 &= 0xffff; - $a3 &= 0xffff; - - $int >>= 1; - } - $return->limbs[0] = $ret0; - $return->limbs[1] = $ret1; - $return->limbs[2] = $ret2; - $return->limbs[3] = $ret3; - return $return; - } - - /** - * @param ParagonIE_Sodium_Core32_Int64 $A - * @param ParagonIE_Sodium_Core32_Int64 $B - * @return array - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedInferredReturnType - */ - public static function ctSelect( - ParagonIE_Sodium_Core32_Int64 $A, - ParagonIE_Sodium_Core32_Int64 $B - ) { - $a = clone $A; - $b = clone $B; - /** @var int $aNeg */ - $aNeg = ($a->limbs[0] >> 15) & 1; - /** @var int $bNeg */ - $bNeg = ($b->limbs[0] >> 15) & 1; - /** @var int $m */ - $m = (-($aNeg & $bNeg)) | 1; - /** @var int $swap */ - $swap = $bNeg & ~$aNeg; - /** @var int $d */ - $d = -$swap; - - /* - if ($bNeg && !$aNeg) { - $a = clone $int; - $b = clone $this; - } elseif($bNeg && $aNeg) { - $a = $this->mulInt(-1); - $b = $int->mulInt(-1); - } - */ - $x = $a->xorInt64($b)->mask64($d, $d); - return array( - $a->xorInt64($x)->mulInt($m), - $b->xorInt64($x)->mulInt($m) - ); - } - - /** - * @param array $a - * @param array $b - * @param int $baseLog2 - * @return array - */ - public function multiplyLong(array $a, array $b, $baseLog2 = 16) - { - $a_l = count($a); - $b_l = count($b); - /** @var array $r */ - $r = array_fill(0, $a_l + $b_l + 1, 0); - $base = 1 << $baseLog2; - for ($i = 0; $i < $a_l; ++$i) { - $a_i = $a[$i]; - for ($j = 0; $j < $a_l; ++$j) { - $b_j = $b[$j]; - $product = ($a_i * $b_j) + $r[$i + $j]; - $carry = ($product >> $baseLog2 & 0xffff); - $r[$i + $j] = ($product - (int) ($carry * $base)) & 0xffff; - $r[$i + $j + 1] += $carry; - } - } - return array_slice($r, 0, 5); - } - - /** - * @param int $int - * @return ParagonIE_Sodium_Core32_Int64 - */ - public function mulIntFast($int) - { - // Handle negative numbers - $aNeg = ($this->limbs[0] >> 15) & 1; - $bNeg = ($int >> 31) & 1; - $a = array_reverse($this->limbs); - $b = array( - $int & 0xffff, - ($int >> 16) & 0xffff, - -$bNeg & 0xffff, - -$bNeg & 0xffff - ); - if ($aNeg) { - for ($i = 0; $i < 4; ++$i) { - $a[$i] = ($a[$i] ^ 0xffff) & 0xffff; - } - ++$a[0]; - } - if ($bNeg) { - for ($i = 0; $i < 4; ++$i) { - $b[$i] = ($b[$i] ^ 0xffff) & 0xffff; - } - ++$b[0]; - } - // Multiply - $res = $this->multiplyLong($a, $b); - - // Re-apply negation to results - if ($aNeg !== $bNeg) { - for ($i = 0; $i < 4; ++$i) { - $res[$i] = (0xffff ^ $res[$i]) & 0xffff; - } - // Handle integer overflow - $c = 1; - for ($i = 0; $i < 4; ++$i) { - $res[$i] += $c; - $c = $res[$i] >> 16; - $res[$i] &= 0xffff; - } - } - - // Return our values - $return = new ParagonIE_Sodium_Core32_Int64(); - $return->limbs = array( - $res[3] & 0xffff, - $res[2] & 0xffff, - $res[1] & 0xffff, - $res[0] & 0xffff - ); - if (count($res) > 4) { - $return->overflow = $res[4] & 0xffff; - } - $return->unsignedInt = $this->unsignedInt; - return $return; - } - - /** - * @param ParagonIE_Sodium_Core32_Int64 $right - * @return ParagonIE_Sodium_Core32_Int64 - */ - public function mulInt64Fast(ParagonIE_Sodium_Core32_Int64 $right) - { - $aNeg = ($this->limbs[0] >> 15) & 1; - $bNeg = ($right->limbs[0] >> 15) & 1; - - $a = array_reverse($this->limbs); - $b = array_reverse($right->limbs); - if ($aNeg) { - for ($i = 0; $i < 4; ++$i) { - $a[$i] = ($a[$i] ^ 0xffff) & 0xffff; - } - ++$a[0]; - } - if ($bNeg) { - for ($i = 0; $i < 4; ++$i) { - $b[$i] = ($b[$i] ^ 0xffff) & 0xffff; - } - ++$b[0]; - } - $res = $this->multiplyLong($a, $b); - if ($aNeg !== $bNeg) { - if ($aNeg !== $bNeg) { - for ($i = 0; $i < 4; ++$i) { - $res[$i] = ($res[$i] ^ 0xffff) & 0xffff; - } - $c = 1; - for ($i = 0; $i < 4; ++$i) { - $res[$i] += $c; - $c = $res[$i] >> 16; - $res[$i] &= 0xffff; - } - } - } - $return = new ParagonIE_Sodium_Core32_Int64(); - $return->limbs = array( - $res[3] & 0xffff, - $res[2] & 0xffff, - $res[1] & 0xffff, - $res[0] & 0xffff - ); - if (count($res) > 4) { - $return->overflow = $res[4]; - } - return $return; - } - - /** - * @param ParagonIE_Sodium_Core32_Int64 $int - * @param int $size - * @return ParagonIE_Sodium_Core32_Int64 - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedAssignment - */ - public function mulInt64(ParagonIE_Sodium_Core32_Int64 $int, $size = 0) - { - if (ParagonIE_Sodium_Compat::$fastMult) { - return $this->mulInt64Fast($int); - } - ParagonIE_Sodium_Core32_Util::declareScalarType($size, 'int', 2); - if (!$size) { - $size = 63; - } - list($a, $b) = self::ctSelect($this, $int); - - $return = new ParagonIE_Sodium_Core32_Int64(); - $return->unsignedInt = $this->unsignedInt; - - // Initialize: - $ret0 = 0; - $ret1 = 0; - $ret2 = 0; - $ret3 = 0; - $a0 = $a->limbs[0]; - $a1 = $a->limbs[1]; - $a2 = $a->limbs[2]; - $a3 = $a->limbs[3]; - $b0 = $b->limbs[0]; - $b1 = $b->limbs[1]; - $b2 = $b->limbs[2]; - $b3 = $b->limbs[3]; - - /** @var int $size */ - /** @var int $i */ - for ($i = (int) $size; $i >= 0; --$i) { - $mask = -($b3 & 1); - $x0 = $a0 & $mask; - $x1 = $a1 & $mask; - $x2 = $a2 & $mask; - $x3 = $a3 & $mask; - - $ret3 += $x3; - $c = $ret3 >> 16; - - $ret2 += $x2 + $c; - $c = $ret2 >> 16; - - $ret1 += $x1 + $c; - $c = $ret1 >> 16; - - $ret0 += $x0 + $c; - - $ret0 &= 0xffff; - $ret1 &= 0xffff; - $ret2 &= 0xffff; - $ret3 &= 0xffff; - - $a3 = $a3 << 1; - $x3 = $a3 >> 16; - $a2 = ($a2 << 1) | $x3; - $x2 = $a2 >> 16; - $a1 = ($a1 << 1) | $x2; - $x1 = $a1 >> 16; - $a0 = ($a0 << 1) | $x1; - $a0 &= 0xffff; - $a1 &= 0xffff; - $a2 &= 0xffff; - $a3 &= 0xffff; - - $x0 = ($b0 & 1) << 16; - $x1 = ($b1 & 1) << 16; - $x2 = ($b2 & 1) << 16; - - $b0 = ($b0 >> 1); - $b1 = (($b1 | $x0) >> 1); - $b2 = (($b2 | $x1) >> 1); - $b3 = (($b3 | $x2) >> 1); - - $b0 &= 0xffff; - $b1 &= 0xffff; - $b2 &= 0xffff; - $b3 &= 0xffff; - - } - $return->limbs[0] = $ret0; - $return->limbs[1] = $ret1; - $return->limbs[2] = $ret2; - $return->limbs[3] = $ret3; - - return $return; - } - - /** - * OR this 64-bit integer with another. - * - * @param ParagonIE_Sodium_Core32_Int64 $b - * @return ParagonIE_Sodium_Core32_Int64 - */ - public function orInt64(ParagonIE_Sodium_Core32_Int64 $b) - { - $return = new ParagonIE_Sodium_Core32_Int64(); - $return->unsignedInt = $this->unsignedInt; - $return->limbs = array( - (int) ($this->limbs[0] | $b->limbs[0]), - (int) ($this->limbs[1] | $b->limbs[1]), - (int) ($this->limbs[2] | $b->limbs[2]), - (int) ($this->limbs[3] | $b->limbs[3]) - ); - return $return; - } - - /** - * @param int $c - * @return ParagonIE_Sodium_Core32_Int64 - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArrayAccess - */ - public function rotateLeft($c = 0) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1); - /** @var int $c */ - $c = (int) $c; - - $return = new ParagonIE_Sodium_Core32_Int64(); - $return->unsignedInt = $this->unsignedInt; - $c &= 63; - if ($c === 0) { - // NOP, but we want a copy. - $return->limbs = $this->limbs; - } else { - /** @var array $limbs */ - $limbs =& $return->limbs; - - /** @var array $myLimbs */ - $myLimbs =& $this->limbs; - - /** @var int $idx_shift */ - $idx_shift = ($c >> 4) & 3; - /** @var int $sub_shift */ - $sub_shift = $c & 15; - - for ($i = 3; $i >= 0; --$i) { - /** @var int $j */ - $j = ($i + $idx_shift) & 3; - /** @var int $k */ - $k = ($i + $idx_shift + 1) & 3; - $limbs[$i] = (int) ( - ( - ((int) ($myLimbs[$j]) << $sub_shift) - | - ((int) ($myLimbs[$k]) >> (16 - $sub_shift)) - ) & 0xffff - ); - } - } - return $return; - } - - /** - * Rotate to the right - * - * @param int $c - * @return ParagonIE_Sodium_Core32_Int64 - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedArrayAccess - */ - public function rotateRight($c = 0) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1); - /** @var int $c */ - $c = (int) $c; - - /** @var ParagonIE_Sodium_Core32_Int64 $return */ - $return = new ParagonIE_Sodium_Core32_Int64(); - $return->unsignedInt = $this->unsignedInt; - $c &= 63; - /** @var int $c */ - if ($c === 0) { - // NOP, but we want a copy. - $return->limbs = $this->limbs; - } else { - /** @var array $limbs */ - $limbs =& $return->limbs; - - /** @var array $myLimbs */ - $myLimbs =& $this->limbs; - - /** @var int $idx_shift */ - $idx_shift = ($c >> 4) & 3; - /** @var int $sub_shift */ - $sub_shift = $c & 15; - - for ($i = 3; $i >= 0; --$i) { - /** @var int $j */ - $j = ($i - $idx_shift) & 3; - /** @var int $k */ - $k = ($i - $idx_shift - 1) & 3; - $limbs[$i] = (int) ( - ( - ((int) ($myLimbs[$j]) >> (int) ($sub_shift)) - | - ((int) ($myLimbs[$k]) << (16 - (int) ($sub_shift))) - ) & 0xffff - ); - } - } - return $return; - } - /** - * @param int $c - * @return ParagonIE_Sodium_Core32_Int64 - * @throws SodiumException - * @throws TypeError - */ - public function shiftLeft($c = 0) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1); - /** @var int $c */ - $c = (int) $c; - - $return = new ParagonIE_Sodium_Core32_Int64(); - $return->unsignedInt = $this->unsignedInt; - $c &= 63; - - if ($c >= 16) { - if ($c >= 48) { - $return->limbs = array( - $this->limbs[3], 0, 0, 0 - ); - } elseif ($c >= 32) { - $return->limbs = array( - $this->limbs[2], $this->limbs[3], 0, 0 - ); - } else { - $return->limbs = array( - $this->limbs[1], $this->limbs[2], $this->limbs[3], 0 - ); - } - return $return->shiftLeft($c & 15); - } - if ($c === 0) { - $return->limbs = $this->limbs; - } elseif ($c < 0) { - /** @var int $c */ - return $this->shiftRight(-$c); - } else { - if (!is_int($c)) { - throw new TypeError(); - } - /** @var int $carry */ - $carry = 0; - for ($i = 3; $i >= 0; --$i) { - /** @var int $tmp */ - $tmp = ($this->limbs[$i] << $c) | ($carry & 0xffff); - $return->limbs[$i] = (int) ($tmp & 0xffff); - /** @var int $carry */ - $carry = $tmp >> 16; - } - } - return $return; - } - - /** - * @param int $c - * @return ParagonIE_Sodium_Core32_Int64 - * @throws SodiumException - * @throws TypeError - */ - public function shiftRight($c = 0) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1); - $c = (int) $c; - /** @var int $c */ - $return = new ParagonIE_Sodium_Core32_Int64(); - $return->unsignedInt = $this->unsignedInt; - $c &= 63; - - $negative = -(($this->limbs[0] >> 15) & 1); - if ($c >= 16) { - if ($c >= 48) { - $return->limbs = array( - (int) ($negative & 0xffff), - (int) ($negative & 0xffff), - (int) ($negative & 0xffff), - (int) $this->limbs[0] - ); - } elseif ($c >= 32) { - $return->limbs = array( - (int) ($negative & 0xffff), - (int) ($negative & 0xffff), - (int) $this->limbs[0], - (int) $this->limbs[1] - ); - } else { - $return->limbs = array( - (int) ($negative & 0xffff), - (int) $this->limbs[0], - (int) $this->limbs[1], - (int) $this->limbs[2] - ); - } - return $return->shiftRight($c & 15); - } - - if ($c === 0) { - $return->limbs = $this->limbs; - } elseif ($c < 0) { - return $this->shiftLeft(-$c); - } else { - if (!is_int($c)) { - throw new TypeError(); - } - /** @var int $carryRight */ - $carryRight = ($negative & 0xffff); - $mask = (int) (((1 << ($c + 1)) - 1) & 0xffff); - for ($i = 0; $i < 4; ++$i) { - $return->limbs[$i] = (int) ( - (($this->limbs[$i] >> $c) | ($carryRight << (16 - $c))) & 0xffff - ); - $carryRight = (int) ($this->limbs[$i] & $mask); - } - } - return $return; - } - - - /** - * Subtract a normal integer from an int64 object. - * - * @param int $int - * @return ParagonIE_Sodium_Core32_Int64 - * @throws SodiumException - * @throws TypeError - */ - public function subInt($int) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($int, 'int', 1); - $int = (int) $int; - - $return = new ParagonIE_Sodium_Core32_Int64(); - $return->unsignedInt = $this->unsignedInt; - - /** @var int $carry */ - $carry = 0; - for ($i = 3; $i >= 0; --$i) { - /** @var int $tmp */ - $tmp = $this->limbs[$i] - (($int >> 16) & 0xffff) + $carry; - /** @var int $carry */ - $carry = $tmp >> 16; - $return->limbs[$i] = (int) ($tmp & 0xffff); - } - return $return; - } - - /** - * The difference between two Int64 objects. - * - * @param ParagonIE_Sodium_Core32_Int64 $b - * @return ParagonIE_Sodium_Core32_Int64 - */ - public function subInt64(ParagonIE_Sodium_Core32_Int64 $b) - { - $return = new ParagonIE_Sodium_Core32_Int64(); - $return->unsignedInt = $this->unsignedInt; - /** @var int $carry */ - $carry = 0; - for ($i = 3; $i >= 0; --$i) { - /** @var int $tmp */ - $tmp = $this->limbs[$i] - $b->limbs[$i] + $carry; - /** @var int $carry */ - $carry = ($tmp >> 16); - $return->limbs[$i] = (int) ($tmp & 0xffff); - } - return $return; - } - - /** - * XOR this 64-bit integer with another. - * - * @param ParagonIE_Sodium_Core32_Int64 $b - * @return ParagonIE_Sodium_Core32_Int64 - */ - public function xorInt64(ParagonIE_Sodium_Core32_Int64 $b) - { - $return = new ParagonIE_Sodium_Core32_Int64(); - $return->unsignedInt = $this->unsignedInt; - $return->limbs = array( - (int) ($this->limbs[0] ^ $b->limbs[0]), - (int) ($this->limbs[1] ^ $b->limbs[1]), - (int) ($this->limbs[2] ^ $b->limbs[2]), - (int) ($this->limbs[3] ^ $b->limbs[3]) - ); - return $return; - } - - /** - * @param int $low - * @param int $high - * @return self - * @throws SodiumException - * @throws TypeError - */ - public static function fromInts($low, $high) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($low, 'int', 1); - ParagonIE_Sodium_Core32_Util::declareScalarType($high, 'int', 2); - - $high = (int) $high; - $low = (int) $low; - return new ParagonIE_Sodium_Core32_Int64( - array( - (int) (($high >> 16) & 0xffff), - (int) ($high & 0xffff), - (int) (($low >> 16) & 0xffff), - (int) ($low & 0xffff) - ) - ); - } - - /** - * @param int $low - * @return self - * @throws SodiumException - * @throws TypeError - */ - public static function fromInt($low) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($low, 'int', 1); - $low = (int) $low; - - return new ParagonIE_Sodium_Core32_Int64( - array( - 0, - 0, - (int) (($low >> 16) & 0xffff), - (int) ($low & 0xffff) - ) - ); - } - - /** - * @return int - */ - public function toInt() - { - return (int) ( - (($this->limbs[2] & 0xffff) << 16) - | - ($this->limbs[3] & 0xffff) - ); - } - - /** - * @param string $string - * @return self - * @throws SodiumException - * @throws TypeError - */ - public static function fromString($string) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($string, 'string', 1); - $string = (string) $string; - if (ParagonIE_Sodium_Core32_Util::strlen($string) !== 8) { - throw new RangeException( - 'String must be 8 bytes; ' . ParagonIE_Sodium_Core32_Util::strlen($string) . ' given.' - ); - } - $return = new ParagonIE_Sodium_Core32_Int64(); - - $return->limbs[0] = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[0]) & 0xff) << 8); - $return->limbs[0] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[1]) & 0xff); - $return->limbs[1] = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[2]) & 0xff) << 8); - $return->limbs[1] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[3]) & 0xff); - $return->limbs[2] = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[4]) & 0xff) << 8); - $return->limbs[2] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[5]) & 0xff); - $return->limbs[3] = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[6]) & 0xff) << 8); - $return->limbs[3] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[7]) & 0xff); - return $return; - } - - /** - * @param string $string - * @return self - * @throws SodiumException - * @throws TypeError - */ - public static function fromReverseString($string) - { - ParagonIE_Sodium_Core32_Util::declareScalarType($string, 'string', 1); - $string = (string) $string; - if (ParagonIE_Sodium_Core32_Util::strlen($string) !== 8) { - throw new RangeException( - 'String must be 8 bytes; ' . ParagonIE_Sodium_Core32_Util::strlen($string) . ' given.' - ); - } - $return = new ParagonIE_Sodium_Core32_Int64(); - - $return->limbs[0] = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[7]) & 0xff) << 8); - $return->limbs[0] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[6]) & 0xff); - $return->limbs[1] = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[5]) & 0xff) << 8); - $return->limbs[1] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[4]) & 0xff); - $return->limbs[2] = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[3]) & 0xff) << 8); - $return->limbs[2] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[2]) & 0xff); - $return->limbs[3] = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[1]) & 0xff) << 8); - $return->limbs[3] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[0]) & 0xff); - return $return; - } - - /** - * @return array - */ - public function toArray() - { - return array( - (int) ((($this->limbs[0] & 0xffff) << 16) | ($this->limbs[1] & 0xffff)), - (int) ((($this->limbs[2] & 0xffff) << 16) | ($this->limbs[3] & 0xffff)) - ); - } - - /** - * @return ParagonIE_Sodium_Core32_Int32 - */ - public function toInt32() - { - $return = new ParagonIE_Sodium_Core32_Int32(); - $return->limbs[0] = (int) ($this->limbs[2]); - $return->limbs[1] = (int) ($this->limbs[3]); - $return->unsignedInt = $this->unsignedInt; - $return->overflow = (int) (ParagonIE_Sodium_Core32_Util::abs($this->limbs[1], 16) & 0xffff); - return $return; - } - - /** - * @return ParagonIE_Sodium_Core32_Int64 - */ - public function toInt64() - { - $return = new ParagonIE_Sodium_Core32_Int64(); - $return->limbs[0] = (int) ($this->limbs[0]); - $return->limbs[1] = (int) ($this->limbs[1]); - $return->limbs[2] = (int) ($this->limbs[2]); - $return->limbs[3] = (int) ($this->limbs[3]); - $return->unsignedInt = $this->unsignedInt; - $return->overflow = ParagonIE_Sodium_Core32_Util::abs($this->overflow); - return $return; - } - - /** - * @param bool $bool - * @return self - */ - public function setUnsignedInt($bool = false) - { - $this->unsignedInt = !empty($bool); - return $this; - } - - /** - * @return string - * @throws TypeError - */ - public function toString() - { - return ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[0] >> 8) & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[0] & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[1] >> 8) & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[1] & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[2] >> 8) & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[2] & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[3] >> 8) & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[3] & 0xff); - } - - /** - * @return string - * @throws TypeError - */ - public function toReverseString() - { - return ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[3] & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[3] >> 8) & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[2] & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[2] >> 8) & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[1] & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[1] >> 8) & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[0] & 0xff) . - ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[0] >> 8) & 0xff); - } - - /** - * @return string - */ - public function __toString() - { - try { - return $this->toString(); - } catch (TypeError $ex) { - // PHP engine can't handle exceptions from __toString() - return ''; - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Poly1305.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Poly1305.php deleted file mode 100644 index b9dfaf3..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Poly1305.php +++ /dev/null @@ -1,63 +0,0 @@ -update($m) - ->finish(); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $mac - * @param string $m - * @param string $key - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function onetimeauth_verify($mac, $m, $key) - { - if (self::strlen($key) < 32) { - throw new InvalidArgumentException( - 'Key must be 32 bytes long.' - ); - } - $state = new ParagonIE_Sodium_Core32_Poly1305_State( - self::substr($key, 0, 32) - ); - $calc = $state - ->update($m) - ->finish(); - return self::verify_16($calc, $mac); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Poly1305/State.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Poly1305/State.php deleted file mode 100644 index d80e1ff..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Poly1305/State.php +++ /dev/null @@ -1,451 +0,0 @@ - - */ - protected $buffer = array(); - - /** - * @var bool - */ - protected $final = false; - - /** - * @var array - */ - public $h; - - /** - * @var int - */ - protected $leftover = 0; - - /** - * @var array - */ - public $r; - - /** - * @var array - */ - public $pad; - - /** - * ParagonIE_Sodium_Core32_Poly1305_State constructor. - * - * @internal You should not use this directly from another application - * - * @param string $key - * @throws InvalidArgumentException - * @throws SodiumException - * @throws TypeError - */ - public function __construct($key = '') - { - if (self::strlen($key) < 32) { - throw new InvalidArgumentException( - 'Poly1305 requires a 32-byte key' - ); - } - /* r &= 0xffffffc0ffffffc0ffffffc0fffffff */ - $this->r = array( - // st->r[0] = ... - ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 0, 4)) - ->setUnsignedInt(true) - ->mask(0x3ffffff), - // st->r[1] = ... - ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 3, 4)) - ->setUnsignedInt(true) - ->shiftRight(2) - ->mask(0x3ffff03), - // st->r[2] = ... - ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 6, 4)) - ->setUnsignedInt(true) - ->shiftRight(4) - ->mask(0x3ffc0ff), - // st->r[3] = ... - ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 9, 4)) - ->setUnsignedInt(true) - ->shiftRight(6) - ->mask(0x3f03fff), - // st->r[4] = ... - ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 12, 4)) - ->setUnsignedInt(true) - ->shiftRight(8) - ->mask(0x00fffff) - ); - - /* h = 0 */ - $this->h = array( - new ParagonIE_Sodium_Core32_Int32(array(0, 0), true), - new ParagonIE_Sodium_Core32_Int32(array(0, 0), true), - new ParagonIE_Sodium_Core32_Int32(array(0, 0), true), - new ParagonIE_Sodium_Core32_Int32(array(0, 0), true), - new ParagonIE_Sodium_Core32_Int32(array(0, 0), true) - ); - - /* save pad for later */ - $this->pad = array( - ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 16, 4)) - ->setUnsignedInt(true)->toInt64(), - ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 20, 4)) - ->setUnsignedInt(true)->toInt64(), - ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 24, 4)) - ->setUnsignedInt(true)->toInt64(), - ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($key, 28, 4)) - ->setUnsignedInt(true)->toInt64(), - ); - - $this->leftover = 0; - $this->final = false; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message - * @return self - * @throws SodiumException - * @throws TypeError - */ - public function update($message = '') - { - $bytes = self::strlen($message); - - /* handle leftover */ - if ($this->leftover) { - /** @var int $want */ - $want = ParagonIE_Sodium_Core32_Poly1305::BLOCK_SIZE - $this->leftover; - if ($want > $bytes) { - $want = $bytes; - } - for ($i = 0; $i < $want; ++$i) { - $mi = self::chrToInt($message[$i]); - $this->buffer[$this->leftover + $i] = $mi; - } - // We snip off the leftmost bytes. - $message = self::substr($message, $want); - $bytes = self::strlen($message); - $this->leftover += $want; - if ($this->leftover < ParagonIE_Sodium_Core32_Poly1305::BLOCK_SIZE) { - // We still don't have enough to run $this->blocks() - return $this; - } - - $this->blocks( - self::intArrayToString($this->buffer), - ParagonIE_Sodium_Core32_Poly1305::BLOCK_SIZE - ); - $this->leftover = 0; - } - - /* process full blocks */ - if ($bytes >= ParagonIE_Sodium_Core32_Poly1305::BLOCK_SIZE) { - /** @var int $want */ - $want = $bytes & ~(ParagonIE_Sodium_Core32_Poly1305::BLOCK_SIZE - 1); - if ($want >= ParagonIE_Sodium_Core32_Poly1305::BLOCK_SIZE) { - /** @var string $block */ - $block = self::substr($message, 0, $want); - if (self::strlen($block) >= ParagonIE_Sodium_Core32_Poly1305::BLOCK_SIZE) { - $this->blocks($block, $want); - $message = self::substr($message, $want); - $bytes = self::strlen($message); - } - } - } - - /* store leftover */ - if ($bytes) { - for ($i = 0; $i < $bytes; ++$i) { - $mi = self::chrToInt($message[$i]); - $this->buffer[$this->leftover + $i] = $mi; - } - $this->leftover = (int) $this->leftover + $bytes; - } - return $this; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message - * @param int $bytes - * @return self - * @throws SodiumException - * @throws TypeError - */ - public function blocks($message, $bytes) - { - if (self::strlen($message) < 16) { - $message = str_pad($message, 16, "\x00", STR_PAD_RIGHT); - } - $hibit = ParagonIE_Sodium_Core32_Int32::fromInt((int) ($this->final ? 0 : 1 << 24)); /* 1 << 128 */ - $hibit->setUnsignedInt(true); - $zero = new ParagonIE_Sodium_Core32_Int64(array(0, 0, 0, 0), true); - /** - * @var ParagonIE_Sodium_Core32_Int64 $d0 - * @var ParagonIE_Sodium_Core32_Int64 $d1 - * @var ParagonIE_Sodium_Core32_Int64 $d2 - * @var ParagonIE_Sodium_Core32_Int64 $d3 - * @var ParagonIE_Sodium_Core32_Int64 $d4 - * @var ParagonIE_Sodium_Core32_Int64 $r0 - * @var ParagonIE_Sodium_Core32_Int64 $r1 - * @var ParagonIE_Sodium_Core32_Int64 $r2 - * @var ParagonIE_Sodium_Core32_Int64 $r3 - * @var ParagonIE_Sodium_Core32_Int64 $r4 - * - * @var ParagonIE_Sodium_Core32_Int32 $h0 - * @var ParagonIE_Sodium_Core32_Int32 $h1 - * @var ParagonIE_Sodium_Core32_Int32 $h2 - * @var ParagonIE_Sodium_Core32_Int32 $h3 - * @var ParagonIE_Sodium_Core32_Int32 $h4 - */ - $r0 = $this->r[0]->toInt64(); - $r1 = $this->r[1]->toInt64(); - $r2 = $this->r[2]->toInt64(); - $r3 = $this->r[3]->toInt64(); - $r4 = $this->r[4]->toInt64(); - - $s1 = $r1->toInt64()->mulInt(5, 3); - $s2 = $r2->toInt64()->mulInt(5, 3); - $s3 = $r3->toInt64()->mulInt(5, 3); - $s4 = $r4->toInt64()->mulInt(5, 3); - - $h0 = $this->h[0]; - $h1 = $this->h[1]; - $h2 = $this->h[2]; - $h3 = $this->h[3]; - $h4 = $this->h[4]; - - while ($bytes >= ParagonIE_Sodium_Core32_Poly1305::BLOCK_SIZE) { - /* h += m[i] */ - $h0 = $h0->addInt32( - ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 0, 4)) - ->mask(0x3ffffff) - )->toInt64(); - $h1 = $h1->addInt32( - ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 3, 4)) - ->shiftRight(2) - ->mask(0x3ffffff) - )->toInt64(); - $h2 = $h2->addInt32( - ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 6, 4)) - ->shiftRight(4) - ->mask(0x3ffffff) - )->toInt64(); - $h3 = $h3->addInt32( - ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 9, 4)) - ->shiftRight(6) - ->mask(0x3ffffff) - )->toInt64(); - $h4 = $h4->addInt32( - ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 12, 4)) - ->shiftRight(8) - ->orInt32($hibit) - )->toInt64(); - - /* h *= r */ - $d0 = $zero - ->addInt64($h0->mulInt64($r0, 25)) - ->addInt64($s4->mulInt64($h1, 26)) - ->addInt64($s3->mulInt64($h2, 26)) - ->addInt64($s2->mulInt64($h3, 26)) - ->addInt64($s1->mulInt64($h4, 26)); - - $d1 = $zero - ->addInt64($h0->mulInt64($r1, 25)) - ->addInt64($h1->mulInt64($r0, 25)) - ->addInt64($s4->mulInt64($h2, 26)) - ->addInt64($s3->mulInt64($h3, 26)) - ->addInt64($s2->mulInt64($h4, 26)); - - $d2 = $zero - ->addInt64($h0->mulInt64($r2, 25)) - ->addInt64($h1->mulInt64($r1, 25)) - ->addInt64($h2->mulInt64($r0, 25)) - ->addInt64($s4->mulInt64($h3, 26)) - ->addInt64($s3->mulInt64($h4, 26)); - - $d3 = $zero - ->addInt64($h0->mulInt64($r3, 25)) - ->addInt64($h1->mulInt64($r2, 25)) - ->addInt64($h2->mulInt64($r1, 25)) - ->addInt64($h3->mulInt64($r0, 25)) - ->addInt64($s4->mulInt64($h4, 26)); - - $d4 = $zero - ->addInt64($h0->mulInt64($r4, 25)) - ->addInt64($h1->mulInt64($r3, 25)) - ->addInt64($h2->mulInt64($r2, 25)) - ->addInt64($h3->mulInt64($r1, 25)) - ->addInt64($h4->mulInt64($r0, 25)); - - /* (partial) h %= p */ - $c = $d0->shiftRight(26); - $h0 = $d0->toInt32()->mask(0x3ffffff); - $d1 = $d1->addInt64($c); - - $c = $d1->shiftRight(26); - $h1 = $d1->toInt32()->mask(0x3ffffff); - $d2 = $d2->addInt64($c); - - $c = $d2->shiftRight(26); - $h2 = $d2->toInt32()->mask(0x3ffffff); - $d3 = $d3->addInt64($c); - - $c = $d3->shiftRight(26); - $h3 = $d3->toInt32()->mask(0x3ffffff); - $d4 = $d4->addInt64($c); - - $c = $d4->shiftRight(26); - $h4 = $d4->toInt32()->mask(0x3ffffff); - $h0 = $h0->addInt32($c->toInt32()->mulInt(5, 3)); - - $c = $h0->shiftRight(26); - $h0 = $h0->mask(0x3ffffff); - $h1 = $h1->addInt32($c); - - // Chop off the left 32 bytes. - $message = self::substr( - $message, - ParagonIE_Sodium_Core32_Poly1305::BLOCK_SIZE - ); - $bytes -= ParagonIE_Sodium_Core32_Poly1305::BLOCK_SIZE; - } - - /** @var array $h */ - $this->h = array($h0, $h1, $h2, $h3, $h4); - return $this; - } - - /** - * @internal You should not use this directly from another application - * - * @return string - * @throws SodiumException - * @throws TypeError - */ - public function finish() - { - /* process the remaining block */ - if ($this->leftover) { - $i = $this->leftover; - $this->buffer[$i++] = 1; - for (; $i < ParagonIE_Sodium_Core32_Poly1305::BLOCK_SIZE; ++$i) { - $this->buffer[$i] = 0; - } - $this->final = true; - $this->blocks( - self::substr( - self::intArrayToString($this->buffer), - 0, - ParagonIE_Sodium_Core32_Poly1305::BLOCK_SIZE - ), - $b = ParagonIE_Sodium_Core32_Poly1305::BLOCK_SIZE - ); - } - - /** - * @var ParagonIE_Sodium_Core32_Int32 $f - * @var ParagonIE_Sodium_Core32_Int32 $g0 - * @var ParagonIE_Sodium_Core32_Int32 $g1 - * @var ParagonIE_Sodium_Core32_Int32 $g2 - * @var ParagonIE_Sodium_Core32_Int32 $g3 - * @var ParagonIE_Sodium_Core32_Int32 $g4 - * @var ParagonIE_Sodium_Core32_Int32 $h0 - * @var ParagonIE_Sodium_Core32_Int32 $h1 - * @var ParagonIE_Sodium_Core32_Int32 $h2 - * @var ParagonIE_Sodium_Core32_Int32 $h3 - * @var ParagonIE_Sodium_Core32_Int32 $h4 - */ - $h0 = $this->h[0]; - $h1 = $this->h[1]; - $h2 = $this->h[2]; - $h3 = $this->h[3]; - $h4 = $this->h[4]; - - $c = $h1->shiftRight(26); # $c = $h1 >> 26; - $h1 = $h1->mask(0x3ffffff); # $h1 &= 0x3ffffff; - - $h2 = $h2->addInt32($c); # $h2 += $c; - $c = $h2->shiftRight(26); # $c = $h2 >> 26; - $h2 = $h2->mask(0x3ffffff); # $h2 &= 0x3ffffff; - - $h3 = $h3->addInt32($c); # $h3 += $c; - $c = $h3->shiftRight(26); # $c = $h3 >> 26; - $h3 = $h3->mask(0x3ffffff); # $h3 &= 0x3ffffff; - - $h4 = $h4->addInt32($c); # $h4 += $c; - $c = $h4->shiftRight(26); # $c = $h4 >> 26; - $h4 = $h4->mask(0x3ffffff); # $h4 &= 0x3ffffff; - - $h0 = $h0->addInt32($c->mulInt(5, 3)); # $h0 += self::mul($c, 5); - $c = $h0->shiftRight(26); # $c = $h0 >> 26; - $h0 = $h0->mask(0x3ffffff); # $h0 &= 0x3ffffff; - $h1 = $h1->addInt32($c); # $h1 += $c; - - /* compute h + -p */ - $g0 = $h0->addInt(5); - $c = $g0->shiftRight(26); - $g0 = $g0->mask(0x3ffffff); - $g1 = $h1->addInt32($c); - $c = $g1->shiftRight(26); - $g1 = $g1->mask(0x3ffffff); - $g2 = $h2->addInt32($c); - $c = $g2->shiftRight(26); - $g2 = $g2->mask(0x3ffffff); - $g3 = $h3->addInt32($c); - $c = $g3->shiftRight(26); - $g3 = $g3->mask(0x3ffffff); - $g4 = $h4->addInt32($c)->subInt(1 << 26); - - # $mask = ($g4 >> 31) - 1; - /* select h if h < p, or h + -p if h >= p */ - $mask = (int) (($g4->toInt() >> 31) + 1); - - $g0 = $g0->mask($mask); - $g1 = $g1->mask($mask); - $g2 = $g2->mask($mask); - $g3 = $g3->mask($mask); - $g4 = $g4->mask($mask); - - /** @var int $mask */ - $mask = (~$mask) & 0xffffffff; - - $h0 = $h0->mask($mask)->orInt32($g0); - $h1 = $h1->mask($mask)->orInt32($g1); - $h2 = $h2->mask($mask)->orInt32($g2); - $h3 = $h3->mask($mask)->orInt32($g3); - $h4 = $h4->mask($mask)->orInt32($g4); - - /* h = h % (2^128) */ - $h0 = $h0->orInt32($h1->shiftLeft(26)); - $h1 = $h1->shiftRight(6)->orInt32($h2->shiftLeft(20)); - $h2 = $h2->shiftRight(12)->orInt32($h3->shiftLeft(14)); - $h3 = $h3->shiftRight(18)->orInt32($h4->shiftLeft(8)); - - /* mac = (h + pad) % (2^128) */ - $f = $h0->toInt64()->addInt64($this->pad[0]); - $h0 = $f->toInt32(); - $f = $h1->toInt64()->addInt64($this->pad[1])->addInt($h0->overflow); - $h1 = $f->toInt32(); - $f = $h2->toInt64()->addInt64($this->pad[2])->addInt($h1->overflow); - $h2 = $f->toInt32(); - $f = $h3->toInt64()->addInt64($this->pad[3])->addInt($h2->overflow); - $h3 = $f->toInt32(); - - return $h0->toReverseString() . - $h1->toReverseString() . - $h2->toReverseString() . - $h3->toReverseString(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Salsa20.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Salsa20.php deleted file mode 100644 index d8c8073..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Salsa20.php +++ /dev/null @@ -1,306 +0,0 @@ - 0; $i -= 2) { - $x4 = $x4->xorInt32($x0->addInt32($x12)->rotateLeft(7)); - $x8 = $x8->xorInt32($x4->addInt32($x0)->rotateLeft(9)); - $x12 = $x12->xorInt32($x8->addInt32($x4)->rotateLeft(13)); - $x0 = $x0->xorInt32($x12->addInt32($x8)->rotateLeft(18)); - - $x9 = $x9->xorInt32($x5->addInt32($x1)->rotateLeft(7)); - $x13 = $x13->xorInt32($x9->addInt32($x5)->rotateLeft(9)); - $x1 = $x1->xorInt32($x13->addInt32($x9)->rotateLeft(13)); - $x5 = $x5->xorInt32($x1->addInt32($x13)->rotateLeft(18)); - - $x14 = $x14->xorInt32($x10->addInt32($x6)->rotateLeft(7)); - $x2 = $x2->xorInt32($x14->addInt32($x10)->rotateLeft(9)); - $x6 = $x6->xorInt32($x2->addInt32($x14)->rotateLeft(13)); - $x10 = $x10->xorInt32($x6->addInt32($x2)->rotateLeft(18)); - - $x3 = $x3->xorInt32($x15->addInt32($x11)->rotateLeft(7)); - $x7 = $x7->xorInt32($x3->addInt32($x15)->rotateLeft(9)); - $x11 = $x11->xorInt32($x7->addInt32($x3)->rotateLeft(13)); - $x15 = $x15->xorInt32($x11->addInt32($x7)->rotateLeft(18)); - - $x1 = $x1->xorInt32($x0->addInt32($x3)->rotateLeft(7)); - $x2 = $x2->xorInt32($x1->addInt32($x0)->rotateLeft(9)); - $x3 = $x3->xorInt32($x2->addInt32($x1)->rotateLeft(13)); - $x0 = $x0->xorInt32($x3->addInt32($x2)->rotateLeft(18)); - - $x6 = $x6->xorInt32($x5->addInt32($x4)->rotateLeft(7)); - $x7 = $x7->xorInt32($x6->addInt32($x5)->rotateLeft(9)); - $x4 = $x4->xorInt32($x7->addInt32($x6)->rotateLeft(13)); - $x5 = $x5->xorInt32($x4->addInt32($x7)->rotateLeft(18)); - - $x11 = $x11->xorInt32($x10->addInt32($x9)->rotateLeft(7)); - $x8 = $x8->xorInt32($x11->addInt32($x10)->rotateLeft(9)); - $x9 = $x9->xorInt32($x8->addInt32($x11)->rotateLeft(13)); - $x10 = $x10->xorInt32($x9->addInt32($x8)->rotateLeft(18)); - - $x12 = $x12->xorInt32($x15->addInt32($x14)->rotateLeft(7)); - $x13 = $x13->xorInt32($x12->addInt32($x15)->rotateLeft(9)); - $x14 = $x14->xorInt32($x13->addInt32($x12)->rotateLeft(13)); - $x15 = $x15->xorInt32($x14->addInt32($x13)->rotateLeft(18)); - } - - $x0 = $x0->addInt32($j0); - $x1 = $x1->addInt32($j1); - $x2 = $x2->addInt32($j2); - $x3 = $x3->addInt32($j3); - $x4 = $x4->addInt32($j4); - $x5 = $x5->addInt32($j5); - $x6 = $x6->addInt32($j6); - $x7 = $x7->addInt32($j7); - $x8 = $x8->addInt32($j8); - $x9 = $x9->addInt32($j9); - $x10 = $x10->addInt32($j10); - $x11 = $x11->addInt32($j11); - $x12 = $x12->addInt32($j12); - $x13 = $x13->addInt32($j13); - $x14 = $x14->addInt32($j14); - $x15 = $x15->addInt32($j15); - - return $x0->toReverseString() . - $x1->toReverseString() . - $x2->toReverseString() . - $x3->toReverseString() . - $x4->toReverseString() . - $x5->toReverseString() . - $x6->toReverseString() . - $x7->toReverseString() . - $x8->toReverseString() . - $x9->toReverseString() . - $x10->toReverseString() . - $x11->toReverseString() . - $x12->toReverseString() . - $x13->toReverseString() . - $x14->toReverseString() . - $x15->toReverseString(); - } - - /** - * @internal You should not use this directly from another application - * - * @param int $len - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function salsa20($len, $nonce, $key) - { - if (self::strlen($key) !== 32) { - throw new RangeException('Key must be 32 bytes long'); - } - $kcopy = '' . $key; - $in = self::substr($nonce, 0, 8) . str_repeat("\0", 8); - $c = ''; - while ($len >= 64) { - $c .= self::core_salsa20($in, $kcopy, null); - $u = 1; - // Internal counter. - for ($i = 8; $i < 16; ++$i) { - $u += self::chrToInt($in[$i]); - $in[$i] = self::intToChr($u & 0xff); - $u >>= 8; - } - $len -= 64; - } - if ($len > 0) { - $c .= self::substr( - self::core_salsa20($in, $kcopy, null), - 0, - $len - ); - } - try { - ParagonIE_Sodium_Compat::memzero($kcopy); - } catch (SodiumException $ex) { - $kcopy = null; - } - return $c; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $m - * @param string $n - * @param int $ic - * @param string $k - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function salsa20_xor_ic($m, $n, $ic, $k) - { - $mlen = self::strlen($m); - if ($mlen < 1) { - return ''; - } - $kcopy = self::substr($k, 0, 32); - $in = self::substr($n, 0, 8); - // Initialize the counter - $in .= ParagonIE_Sodium_Core32_Util::store64_le($ic); - - $c = ''; - while ($mlen >= 64) { - $block = self::core_salsa20($in, $kcopy, null); - $c .= self::xorStrings( - self::substr($m, 0, 64), - self::substr($block, 0, 64) - ); - $u = 1; - for ($i = 8; $i < 16; ++$i) { - $u += self::chrToInt($in[$i]); - $in[$i] = self::intToChr($u & 0xff); - $u >>= 8; - } - - $mlen -= 64; - $m = self::substr($m, 64); - } - - if ($mlen) { - $block = self::core_salsa20($in, $kcopy, null); - $c .= self::xorStrings( - self::substr($m, 0, $mlen), - self::substr($block, 0, $mlen) - ); - } - try { - ParagonIE_Sodium_Compat::memzero($block); - ParagonIE_Sodium_Compat::memzero($kcopy); - } catch (SodiumException $ex) { - $block = null; - $kcopy = null; - } - - return $c; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $message - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function salsa20_xor($message, $nonce, $key) - { - return self::xorStrings( - $message, - self::salsa20( - self::strlen($message), - $nonce, - $key - ) - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/SecretStream/State.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/SecretStream/State.php deleted file mode 100644 index 6f20486..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/SecretStream/State.php +++ /dev/null @@ -1,163 +0,0 @@ -key = $key; - $this->counter = 1; - if (is_null($nonce)) { - $nonce = str_repeat("\0", 12); - } - $this->nonce = str_pad($nonce, 12, "\0", STR_PAD_RIGHT);; - $this->_pad = str_repeat("\0", 4); - } - - /** - * @return self - */ - public function counterReset() - { - $this->counter = 1; - $this->_pad = str_repeat("\0", 4); - return $this; - } - - /** - * @return string - */ - public function getKey() - { - return $this->key; - } - - /** - * @return string - */ - public function getCounter() - { - return ParagonIE_Sodium_Core32_Util::store32_le($this->counter); - } - - /** - * @return string - */ - public function getNonce() - { - if (!is_string($this->nonce)) { - $this->nonce = str_repeat("\0", 12); - } - if (ParagonIE_Sodium_Core32_Util::strlen($this->nonce) !== 12) { - $this->nonce = str_pad($this->nonce, 12, "\0", STR_PAD_RIGHT); - } - return $this->nonce; - } - - /** - * @return string - */ - public function getCombinedNonce() - { - return $this->getCounter() . - ParagonIE_Sodium_Core32_Util::substr($this->getNonce(), 0, 8); - } - - /** - * @return self - */ - public function incrementCounter() - { - ++$this->counter; - return $this; - } - - /** - * @return bool - */ - public function needsRekey() - { - return ($this->counter & 0xffff) === 0; - } - - /** - * @param string $newKeyAndNonce - * @return self - */ - public function rekey($newKeyAndNonce) - { - $this->key = ParagonIE_Sodium_Core32_Util::substr($newKeyAndNonce, 0, 32); - $this->nonce = str_pad( - ParagonIE_Sodium_Core32_Util::substr($newKeyAndNonce, 32), - 12, - "\0", - STR_PAD_RIGHT - ); - return $this; - } - - /** - * @param string $str - * @return self - */ - public function xorNonce($str) - { - $this->nonce = ParagonIE_Sodium_Core32_Util::xorStrings( - $this->getNonce(), - str_pad( - ParagonIE_Sodium_Core32_Util::substr($str, 0, 8), - 12, - "\0", - STR_PAD_RIGHT - ) - ); - return $this; - } - - /** - * @param string $string - * @return self - */ - public static function fromString($string) - { - $state = new ParagonIE_Sodium_Core32_SecretStream_State( - ParagonIE_Sodium_Core32_Util::substr($string, 0, 32) - ); - $state->counter = ParagonIE_Sodium_Core32_Util::load_4( - ParagonIE_Sodium_Core32_Util::substr($string, 32, 4) - ); - $state->nonce = ParagonIE_Sodium_Core32_Util::substr($string, 36, 12); - $state->_pad = ParagonIE_Sodium_Core32_Util::substr($string, 48, 8); - return $state; - } - - /** - * @return string - */ - public function toString() - { - return $this->key . - $this->getCounter() . - $this->nonce . - $this->_pad; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/SipHash.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/SipHash.php deleted file mode 100644 index 079946d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/SipHash.php +++ /dev/null @@ -1,238 +0,0 @@ - $v - * @return array - */ - public static function sipRound(array $v) - { - # v0 += v1; - $v[0] = $v[0]->addInt64($v[1]); - - # v1 = ROTL(v1, 13); - $v[1] = $v[1]->rotateLeft(13); - - # v1 ^= v0; - $v[1] = $v[1]->xorInt64($v[0]); - - # v0=ROTL(v0,32); - $v[0] = $v[0]->rotateLeft(32); - - # v2 += v3; - $v[2] = $v[2]->addInt64($v[3]); - - # v3=ROTL(v3,16); - $v[3] = $v[3]->rotateLeft(16); - - # v3 ^= v2; - $v[3] = $v[3]->xorInt64($v[2]); - - # v0 += v3; - $v[0] = $v[0]->addInt64($v[3]); - - # v3=ROTL(v3,21); - $v[3] = $v[3]->rotateLeft(21); - - # v3 ^= v0; - $v[3] = $v[3]->xorInt64($v[0]); - - # v2 += v1; - $v[2] = $v[2]->addInt64($v[1]); - - # v1=ROTL(v1,17); - $v[1] = $v[1]->rotateLeft(17); - - # v1 ^= v2; - $v[1] = $v[1]->xorInt64($v[2]); - - # v2=ROTL(v2,32) - $v[2] = $v[2]->rotateLeft(32); - - return $v; - } - - /** - * @internal You should not use this directly from another application - * - * @param string $in - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sipHash24($in, $key) - { - $inlen = self::strlen($in); - - # /* "somepseudorandomlygeneratedbytes" */ - # u64 v0 = 0x736f6d6570736575ULL; - # u64 v1 = 0x646f72616e646f6dULL; - # u64 v2 = 0x6c7967656e657261ULL; - # u64 v3 = 0x7465646279746573ULL; - $v = array( - new ParagonIE_Sodium_Core32_Int64( - array(0x736f, 0x6d65, 0x7073, 0x6575) - ), - new ParagonIE_Sodium_Core32_Int64( - array(0x646f, 0x7261, 0x6e64, 0x6f6d) - ), - new ParagonIE_Sodium_Core32_Int64( - array(0x6c79, 0x6765, 0x6e65, 0x7261) - ), - new ParagonIE_Sodium_Core32_Int64( - array(0x7465, 0x6462, 0x7974, 0x6573) - ) - ); - - # u64 k0 = LOAD64_LE( k ); - # u64 k1 = LOAD64_LE( k + 8 ); - $k = array( - ParagonIE_Sodium_Core32_Int64::fromReverseString( - self::substr($key, 0, 8) - ), - ParagonIE_Sodium_Core32_Int64::fromReverseString( - self::substr($key, 8, 8) - ) - ); - - # b = ( ( u64 )inlen ) << 56; - $b = new ParagonIE_Sodium_Core32_Int64( - array(($inlen << 8) & 0xffff, 0, 0, 0) - ); - - # v3 ^= k1; - $v[3] = $v[3]->xorInt64($k[1]); - # v2 ^= k0; - $v[2] = $v[2]->xorInt64($k[0]); - # v1 ^= k1; - $v[1] = $v[1]->xorInt64($k[1]); - # v0 ^= k0; - $v[0] = $v[0]->xorInt64($k[0]); - - $left = $inlen; - # for ( ; in != end; in += 8 ) - while ($left >= 8) { - # m = LOAD64_LE( in ); - $m = ParagonIE_Sodium_Core32_Int64::fromReverseString( - self::substr($in, 0, 8) - ); - - # v3 ^= m; - $v[3] = $v[3]->xorInt64($m); - - # SIPROUND; - # SIPROUND; - $v = self::sipRound($v); - $v = self::sipRound($v); - - # v0 ^= m; - $v[0] = $v[0]->xorInt64($m); - - $in = self::substr($in, 8); - $left -= 8; - } - - # switch( left ) - # { - # case 7: b |= ( ( u64 )in[ 6] ) << 48; - # case 6: b |= ( ( u64 )in[ 5] ) << 40; - # case 5: b |= ( ( u64 )in[ 4] ) << 32; - # case 4: b |= ( ( u64 )in[ 3] ) << 24; - # case 3: b |= ( ( u64 )in[ 2] ) << 16; - # case 2: b |= ( ( u64 )in[ 1] ) << 8; - # case 1: b |= ( ( u64 )in[ 0] ); break; - # case 0: break; - # } - switch ($left) { - case 7: - $b = $b->orInt64( - ParagonIE_Sodium_Core32_Int64::fromInts( - 0, self::chrToInt($in[6]) << 16 - ) - ); - case 6: - $b = $b->orInt64( - ParagonIE_Sodium_Core32_Int64::fromInts( - 0, self::chrToInt($in[5]) << 8 - ) - ); - case 5: - $b = $b->orInt64( - ParagonIE_Sodium_Core32_Int64::fromInts( - 0, self::chrToInt($in[4]) - ) - ); - case 4: - $b = $b->orInt64( - ParagonIE_Sodium_Core32_Int64::fromInts( - self::chrToInt($in[3]) << 24, 0 - ) - ); - case 3: - $b = $b->orInt64( - ParagonIE_Sodium_Core32_Int64::fromInts( - self::chrToInt($in[2]) << 16, 0 - ) - ); - case 2: - $b = $b->orInt64( - ParagonIE_Sodium_Core32_Int64::fromInts( - self::chrToInt($in[1]) << 8, 0 - ) - ); - case 1: - $b = $b->orInt64( - ParagonIE_Sodium_Core32_Int64::fromInts( - self::chrToInt($in[0]), 0 - ) - ); - case 0: - break; - } - - # v3 ^= b; - $v[3] = $v[3]->xorInt64($b); - - # SIPROUND; - # SIPROUND; - $v = self::sipRound($v); - $v = self::sipRound($v); - - # v0 ^= b; - $v[0] = $v[0]->xorInt64($b); - - // Flip the lower 8 bits of v2 which is ($v[4], $v[5]) in our implementation - # v2 ^= 0xff; - $v[2]->limbs[3] ^= 0xff; - - # SIPROUND; - # SIPROUND; - # SIPROUND; - # SIPROUND; - $v = self::sipRound($v); - $v = self::sipRound($v); - $v = self::sipRound($v); - $v = self::sipRound($v); - - # b = v0 ^ v1 ^ v2 ^ v3; - # STORE64_LE( out, b ); - return $v[0] - ->xorInt64($v[1]) - ->xorInt64($v[2]) - ->xorInt64($v[3]) - ->toReverseString(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Util.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Util.php deleted file mode 100644 index f32e5ad..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/Util.php +++ /dev/null @@ -1,13 +0,0 @@ -toInt(); - $f1 = (int) $f[1]->toInt(); - $f2 = (int) $f[2]->toInt(); - $f3 = (int) $f[3]->toInt(); - $f4 = (int) $f[4]->toInt(); - $f5 = (int) $f[5]->toInt(); - $f6 = (int) $f[6]->toInt(); - $f7 = (int) $f[7]->toInt(); - $f8 = (int) $f[8]->toInt(); - $f9 = (int) $f[9]->toInt(); - $g0 = (int) $g[0]->toInt(); - $g1 = (int) $g[1]->toInt(); - $g2 = (int) $g[2]->toInt(); - $g3 = (int) $g[3]->toInt(); - $g4 = (int) $g[4]->toInt(); - $g5 = (int) $g[5]->toInt(); - $g6 = (int) $g[6]->toInt(); - $g7 = (int) $g[7]->toInt(); - $g8 = (int) $g[8]->toInt(); - $g9 = (int) $g[9]->toInt(); - $b = -$b; - /** @var int $x0 */ - $x0 = ($f0 ^ $g0) & $b; - /** @var int $x1 */ - $x1 = ($f1 ^ $g1) & $b; - /** @var int $x2 */ - $x2 = ($f2 ^ $g2) & $b; - /** @var int $x3 */ - $x3 = ($f3 ^ $g3) & $b; - /** @var int $x4 */ - $x4 = ($f4 ^ $g4) & $b; - /** @var int $x5 */ - $x5 = ($f5 ^ $g5) & $b; - /** @var int $x6 */ - $x6 = ($f6 ^ $g6) & $b; - /** @var int $x7 */ - $x7 = ($f7 ^ $g7) & $b; - /** @var int $x8 */ - $x8 = ($f8 ^ $g8) & $b; - /** @var int $x9 */ - $x9 = ($f9 ^ $g9) & $b; - $f[0] = ParagonIE_Sodium_Core32_Int32::fromInt($f0 ^ $x0); - $f[1] = ParagonIE_Sodium_Core32_Int32::fromInt($f1 ^ $x1); - $f[2] = ParagonIE_Sodium_Core32_Int32::fromInt($f2 ^ $x2); - $f[3] = ParagonIE_Sodium_Core32_Int32::fromInt($f3 ^ $x3); - $f[4] = ParagonIE_Sodium_Core32_Int32::fromInt($f4 ^ $x4); - $f[5] = ParagonIE_Sodium_Core32_Int32::fromInt($f5 ^ $x5); - $f[6] = ParagonIE_Sodium_Core32_Int32::fromInt($f6 ^ $x6); - $f[7] = ParagonIE_Sodium_Core32_Int32::fromInt($f7 ^ $x7); - $f[8] = ParagonIE_Sodium_Core32_Int32::fromInt($f8 ^ $x8); - $f[9] = ParagonIE_Sodium_Core32_Int32::fromInt($f9 ^ $x9); - $g[0] = ParagonIE_Sodium_Core32_Int32::fromInt($g0 ^ $x0); - $g[1] = ParagonIE_Sodium_Core32_Int32::fromInt($g1 ^ $x1); - $g[2] = ParagonIE_Sodium_Core32_Int32::fromInt($g2 ^ $x2); - $g[3] = ParagonIE_Sodium_Core32_Int32::fromInt($g3 ^ $x3); - $g[4] = ParagonIE_Sodium_Core32_Int32::fromInt($g4 ^ $x4); - $g[5] = ParagonIE_Sodium_Core32_Int32::fromInt($g5 ^ $x5); - $g[6] = ParagonIE_Sodium_Core32_Int32::fromInt($g6 ^ $x6); - $g[7] = ParagonIE_Sodium_Core32_Int32::fromInt($g7 ^ $x7); - $g[8] = ParagonIE_Sodium_Core32_Int32::fromInt($g8 ^ $x8); - $g[9] = ParagonIE_Sodium_Core32_Int32::fromInt($g9 ^ $x9); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $f - * @return ParagonIE_Sodium_Core32_Curve25519_Fe - * @throws SodiumException - * @throws TypeError - * @psalm-suppress MixedAssignment - * @psalm-suppress MixedMethodCall - */ - public static function fe_mul121666(ParagonIE_Sodium_Core32_Curve25519_Fe $f) - { - /** @var array $h */ - $h = array(); - for ($i = 0; $i < 10; ++$i) { - $h[$i] = $f[$i]->toInt64()->mulInt(121666, 17); - } - - $carry9 = $h[9]->addInt(1 << 24)->shiftRight(25); - $h[0] = $h[0]->addInt64($carry9->mulInt(19, 5)); - $h[9] = $h[9]->subInt64($carry9->shiftLeft(25)); - - $carry1 = $h[1]->addInt(1 << 24)->shiftRight(25); - $h[2] = $h[2]->addInt64($carry1); - $h[1] = $h[1]->subInt64($carry1->shiftLeft(25)); - - $carry3 = $h[3]->addInt(1 << 24)->shiftRight(25); - $h[4] = $h[4]->addInt64($carry3); - $h[3] = $h[3]->subInt64($carry3->shiftLeft(25)); - - $carry5 = $h[5]->addInt(1 << 24)->shiftRight(25); - $h[6] = $h[6]->addInt64($carry5); - $h[5] = $h[5]->subInt64($carry5->shiftLeft(25)); - - $carry7 = $h[7]->addInt(1 << 24)->shiftRight(25); - $h[8] = $h[8]->addInt64($carry7); - $h[7] = $h[7]->subInt64($carry7->shiftLeft(25)); - - $carry0 = $h[0]->addInt(1 << 25)->shiftRight(26); - $h[1] = $h[1]->addInt64($carry0); - $h[0] = $h[0]->subInt64($carry0->shiftLeft(26)); - - $carry2 = $h[2]->addInt(1 << 25)->shiftRight(26); - $h[3] = $h[3]->addInt64($carry2); - $h[2] = $h[2]->subInt64($carry2->shiftLeft(26)); - - $carry4 = $h[4]->addInt(1 << 25)->shiftRight(26); - $h[5] = $h[5]->addInt64($carry4); - $h[4] = $h[4]->subInt64($carry4->shiftLeft(26)); - - $carry6 = $h[6]->addInt(1 << 25)->shiftRight(26); - $h[7] = $h[7]->addInt64($carry6); - $h[6] = $h[6]->subInt64($carry6->shiftLeft(26)); - - $carry8 = $h[8]->addInt(1 << 25)->shiftRight(26); - $h[9] = $h[9]->addInt64($carry8); - $h[8] = $h[8]->subInt64($carry8->shiftLeft(26)); - - for ($i = 0; $i < 10; ++$i) { - $h[$i] = $h[$i]->toInt32(); - } - /** @var array $h2 */ - $h2 = $h; - return ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray($h2); - } - - /** - * @internal You should not use this directly from another application - * - * Inline comments preceded by # are from libsodium's ref10 code. - * - * @param string $n - * @param string $p - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function crypto_scalarmult_curve25519_ref10($n, $p) - { - # for (i = 0;i < 32;++i) e[i] = n[i]; - $e = '' . $n; - # e[0] &= 248; - $e[0] = self::intToChr( - self::chrToInt($e[0]) & 248 - ); - # e[31] &= 127; - # e[31] |= 64; - $e[31] = self::intToChr( - (self::chrToInt($e[31]) & 127) | 64 - ); - # fe_frombytes(x1,p); - $x1 = self::fe_frombytes($p); - # fe_1(x2); - $x2 = self::fe_1(); - # fe_0(z2); - $z2 = self::fe_0(); - # fe_copy(x3,x1); - $x3 = self::fe_copy($x1); - # fe_1(z3); - $z3 = self::fe_1(); - - # swap = 0; - /** @var int $swap */ - $swap = 0; - - # for (pos = 254;pos >= 0;--pos) { - for ($pos = 254; $pos >= 0; --$pos) { - # b = e[pos / 8] >> (pos & 7); - /** @var int $b */ - $b = self::chrToInt( - $e[(int) floor($pos / 8)] - ) >> ($pos & 7); - # b &= 1; - $b &= 1; - - # swap ^= b; - $swap ^= $b; - - # fe_cswap(x2,x3,swap); - self::fe_cswap($x2, $x3, $swap); - - # fe_cswap(z2,z3,swap); - self::fe_cswap($z2, $z3, $swap); - - # swap = b; - /** @var int $swap */ - $swap = $b; - - # fe_sub(tmp0,x3,z3); - $tmp0 = self::fe_sub($x3, $z3); - - # fe_sub(tmp1,x2,z2); - $tmp1 = self::fe_sub($x2, $z2); - - # fe_add(x2,x2,z2); - $x2 = self::fe_add($x2, $z2); - - # fe_add(z2,x3,z3); - $z2 = self::fe_add($x3, $z3); - - # fe_mul(z3,tmp0,x2); - $z3 = self::fe_mul($tmp0, $x2); - - # fe_mul(z2,z2,tmp1); - $z2 = self::fe_mul($z2, $tmp1); - - # fe_sq(tmp0,tmp1); - $tmp0 = self::fe_sq($tmp1); - - # fe_sq(tmp1,x2); - $tmp1 = self::fe_sq($x2); - - # fe_add(x3,z3,z2); - $x3 = self::fe_add($z3, $z2); - - # fe_sub(z2,z3,z2); - $z2 = self::fe_sub($z3, $z2); - - # fe_mul(x2,tmp1,tmp0); - $x2 = self::fe_mul($tmp1, $tmp0); - - # fe_sub(tmp1,tmp1,tmp0); - $tmp1 = self::fe_sub($tmp1, $tmp0); - - # fe_sq(z2,z2); - $z2 = self::fe_sq($z2); - - # fe_mul121666(z3,tmp1); - $z3 = self::fe_mul121666($tmp1); - - # fe_sq(x3,x3); - $x3 = self::fe_sq($x3); - - # fe_add(tmp0,tmp0,z3); - $tmp0 = self::fe_add($tmp0, $z3); - - # fe_mul(z3,x1,z2); - $z3 = self::fe_mul($x1, $z2); - - # fe_mul(z2,tmp1,tmp0); - $z2 = self::fe_mul($tmp1, $tmp0); - } - - # fe_cswap(x2,x3,swap); - self::fe_cswap($x2, $x3, $swap); - - # fe_cswap(z2,z3,swap); - self::fe_cswap($z2, $z3, $swap); - - # fe_invert(z2,z2); - $z2 = self::fe_invert($z2); - - # fe_mul(x2,x2,z2); - $x2 = self::fe_mul($x2, $z2); - # fe_tobytes(q,x2); - return (string) self::fe_tobytes($x2); - } - - /** - * @internal You should not use this directly from another application - * - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $edwardsY - * @param ParagonIE_Sodium_Core32_Curve25519_Fe $edwardsZ - * @return ParagonIE_Sodium_Core32_Curve25519_Fe - * @throws SodiumException - * @throws TypeError - */ - public static function edwards_to_montgomery( - ParagonIE_Sodium_Core32_Curve25519_Fe $edwardsY, - ParagonIE_Sodium_Core32_Curve25519_Fe $edwardsZ - ) { - $tempX = self::fe_add($edwardsZ, $edwardsY); - $tempZ = self::fe_sub($edwardsZ, $edwardsY); - $tempZ = self::fe_invert($tempZ); - return self::fe_mul($tempX, $tempZ); - } - - /** - * @internal You should not use this directly from another application - * - * @param string $n - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function crypto_scalarmult_curve25519_ref10_base($n) - { - # for (i = 0;i < 32;++i) e[i] = n[i]; - $e = '' . $n; - - # e[0] &= 248; - $e[0] = self::intToChr( - self::chrToInt($e[0]) & 248 - ); - - # e[31] &= 127; - # e[31] |= 64; - $e[31] = self::intToChr( - (self::chrToInt($e[31]) & 127) | 64 - ); - - $A = self::ge_scalarmult_base($e); - if ( - !($A->Y instanceof ParagonIE_Sodium_Core32_Curve25519_Fe) - || - !($A->Z instanceof ParagonIE_Sodium_Core32_Curve25519_Fe) - ) { - throw new TypeError('Null points encountered'); - } - $pk = self::edwards_to_montgomery($A->Y, $A->Z); - return self::fe_tobytes($pk); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/XChaCha20.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/XChaCha20.php deleted file mode 100644 index 1dfc859..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Core32/XChaCha20.php +++ /dev/null @@ -1,64 +0,0 @@ -update($ad); - $state->update(ParagonIE_Sodium_Core_Util::store64_le($adlen)); - $state->update($ciphertext); - $state->update(ParagonIE_Sodium_Core_Util::store64_le($clen)); - $computed_mac = $state->finish(); - - /* Compare the given MAC with the recalculated MAC: */ - if (!ParagonIE_Sodium_Core_Util::verify_16($computed_mac, $mac)) { - throw new SodiumException('Invalid MAC'); - } - - // Here, we know that the MAC is valid, so we decrypt and return the plaintext - return ParagonIE_Sodium_Core_ChaCha20::streamXorIc( - $ciphertext, - $nonce, - $key, - ParagonIE_Sodium_Core_Util::store64_le(1) - ); - } - - /** - * AEAD Encryption with ChaCha20-Poly1305 - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $ad - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function aead_chacha20poly1305_encrypt( - $message = '', - $ad = '', - $nonce = '', - $key = '' - ) { - /** @var int $len - Length of the plaintext message */ - $len = ParagonIE_Sodium_Core_Util::strlen($message); - - /** @var int $adlen - Length of the associated data */ - $adlen = ParagonIE_Sodium_Core_Util::strlen($ad); - - /** @var string The first block of the chacha20 keystream, used as a poly1305 key */ - $block0 = ParagonIE_Sodium_Core_ChaCha20::stream( - 32, - $nonce, - $key - ); - $state = new ParagonIE_Sodium_Core_Poly1305_State($block0); - try { - ParagonIE_Sodium_Compat::memzero($block0); - } catch (SodiumException $ex) { - $block0 = null; - } - - /** @var string $ciphertext - Raw encrypted data */ - $ciphertext = ParagonIE_Sodium_Core_ChaCha20::streamXorIc( - $message, - $nonce, - $key, - ParagonIE_Sodium_Core_Util::store64_le(1) - ); - - $state->update($ad); - $state->update(ParagonIE_Sodium_Core_Util::store64_le($adlen)); - $state->update($ciphertext); - $state->update(ParagonIE_Sodium_Core_Util::store64_le($len)); - return $ciphertext . $state->finish(); - } - - /** - * AEAD Decryption with ChaCha20-Poly1305, IETF mode (96-bit nonce) - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $ad - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function aead_chacha20poly1305_ietf_decrypt( - $message = '', - $ad = '', - $nonce = '', - $key = '' - ) { - /** @var int $adlen - Length of associated data */ - $adlen = ParagonIE_Sodium_Core_Util::strlen($ad); - - /** @var int $len - Length of message (ciphertext + MAC) */ - $len = ParagonIE_Sodium_Core_Util::strlen($message); - - /** @var int $clen - Length of ciphertext */ - $clen = $len - self::aead_chacha20poly1305_IETF_ABYTES; - - /** @var string The first block of the chacha20 keystream, used as a poly1305 key */ - $block0 = ParagonIE_Sodium_Core_ChaCha20::ietfStream( - 32, - $nonce, - $key - ); - - /** @var string $mac - Message authentication code */ - $mac = ParagonIE_Sodium_Core_Util::substr( - $message, - $len - self::aead_chacha20poly1305_IETF_ABYTES, - self::aead_chacha20poly1305_IETF_ABYTES - ); - - /** @var string $ciphertext - The encrypted message (sans MAC) */ - $ciphertext = ParagonIE_Sodium_Core_Util::substr( - $message, - 0, - $len - self::aead_chacha20poly1305_IETF_ABYTES - ); - - /* Recalculate the Poly1305 authentication tag (MAC): */ - $state = new ParagonIE_Sodium_Core_Poly1305_State($block0); - try { - ParagonIE_Sodium_Compat::memzero($block0); - } catch (SodiumException $ex) { - $block0 = null; - } - $state->update($ad); - $state->update(str_repeat("\x00", ((0x10 - $adlen) & 0xf))); - $state->update($ciphertext); - $state->update(str_repeat("\x00", (0x10 - $clen) & 0xf)); - $state->update(ParagonIE_Sodium_Core_Util::store64_le($adlen)); - $state->update(ParagonIE_Sodium_Core_Util::store64_le($clen)); - $computed_mac = $state->finish(); - - /* Compare the given MAC with the recalculated MAC: */ - if (!ParagonIE_Sodium_Core_Util::verify_16($computed_mac, $mac)) { - throw new SodiumException('Invalid MAC'); - } - - // Here, we know that the MAC is valid, so we decrypt and return the plaintext - return ParagonIE_Sodium_Core_ChaCha20::ietfStreamXorIc( - $ciphertext, - $nonce, - $key, - ParagonIE_Sodium_Core_Util::store64_le(1) - ); - } - - /** - * AEAD Encryption with ChaCha20-Poly1305, IETF mode (96-bit nonce) - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $ad - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function aead_chacha20poly1305_ietf_encrypt( - $message = '', - $ad = '', - $nonce = '', - $key = '' - ) { - /** @var int $len - Length of the plaintext message */ - $len = ParagonIE_Sodium_Core_Util::strlen($message); - - /** @var int $adlen - Length of the associated data */ - $adlen = ParagonIE_Sodium_Core_Util::strlen($ad); - - /** @var string The first block of the chacha20 keystream, used as a poly1305 key */ - $block0 = ParagonIE_Sodium_Core_ChaCha20::ietfStream( - 32, - $nonce, - $key - ); - $state = new ParagonIE_Sodium_Core_Poly1305_State($block0); - try { - ParagonIE_Sodium_Compat::memzero($block0); - } catch (SodiumException $ex) { - $block0 = null; - } - - /** @var string $ciphertext - Raw encrypted data */ - $ciphertext = ParagonIE_Sodium_Core_ChaCha20::ietfStreamXorIc( - $message, - $nonce, - $key, - ParagonIE_Sodium_Core_Util::store64_le(1) - ); - - $state->update($ad); - $state->update(str_repeat("\x00", ((0x10 - $adlen) & 0xf))); - $state->update($ciphertext); - $state->update(str_repeat("\x00", ((0x10 - $len) & 0xf))); - $state->update(ParagonIE_Sodium_Core_Util::store64_le($adlen)); - $state->update(ParagonIE_Sodium_Core_Util::store64_le($len)); - return $ciphertext . $state->finish(); - } - - /** - * AEAD Decryption with ChaCha20-Poly1305, IETF mode (96-bit nonce) - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $ad - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function aead_xchacha20poly1305_ietf_decrypt( - $message = '', - $ad = '', - $nonce = '', - $key = '' - ) { - $subkey = ParagonIE_Sodium_Core_HChaCha20::hChaCha20( - ParagonIE_Sodium_Core_Util::substr($nonce, 0, 16), - $key - ); - $nonceLast = "\x00\x00\x00\x00" . - ParagonIE_Sodium_Core_Util::substr($nonce, 16, 8); - - return self::aead_chacha20poly1305_ietf_decrypt($message, $ad, $nonceLast, $subkey); - } - - /** - * AEAD Encryption with ChaCha20-Poly1305, IETF mode (96-bit nonce) - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $ad - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function aead_xchacha20poly1305_ietf_encrypt( - $message = '', - $ad = '', - $nonce = '', - $key = '' - ) { - $subkey = ParagonIE_Sodium_Core_HChaCha20::hChaCha20( - ParagonIE_Sodium_Core_Util::substr($nonce, 0, 16), - $key - ); - $nonceLast = "\x00\x00\x00\x00" . - ParagonIE_Sodium_Core_Util::substr($nonce, 16, 8); - - return self::aead_chacha20poly1305_ietf_encrypt($message, $ad, $nonceLast, $subkey); - } - - /** - * HMAC-SHA-512-256 (a.k.a. the leftmost 256 bits of HMAC-SHA-512) - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $key - * @return string - * @throws TypeError - */ - public static function auth($message, $key) - { - return ParagonIE_Sodium_Core_Util::substr( - hash_hmac('sha512', $message, $key, true), - 0, - 32 - ); - } - - /** - * HMAC-SHA-512-256 validation. Constant-time via hash_equals(). - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $mac - * @param string $message - * @param string $key - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function auth_verify($mac, $message, $key) - { - return ParagonIE_Sodium_Core_Util::hashEquals( - $mac, - self::auth($message, $key) - ); - } - - /** - * X25519 key exchange followed by XSalsa20Poly1305 symmetric encryption - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $plaintext - * @param string $nonce - * @param string $keypair - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function box($plaintext, $nonce, $keypair) - { - $c = self::secretbox( - $plaintext, - $nonce, - self::box_beforenm( - self::box_secretkey($keypair), - self::box_publickey($keypair) - ) - ); - return $c; - } - - /** - * X25519-XSalsa20-Poly1305 with one ephemeral X25519 keypair. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $publicKey - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function box_seal($message, $publicKey) - { - /** @var string $ephemeralKeypair */ - $ephemeralKeypair = self::box_keypair(); - - /** @var string $ephemeralSK */ - $ephemeralSK = self::box_secretkey($ephemeralKeypair); - - /** @var string $ephemeralPK */ - $ephemeralPK = self::box_publickey($ephemeralKeypair); - - /** @var string $nonce */ - $nonce = self::generichash( - $ephemeralPK . $publicKey, - '', - 24 - ); - - /** @var string $keypair - The combined keypair used in crypto_box() */ - $keypair = self::box_keypair_from_secretkey_and_publickey($ephemeralSK, $publicKey); - - /** @var string $ciphertext Ciphertext + MAC from crypto_box */ - $ciphertext = self::box($message, $nonce, $keypair); - try { - ParagonIE_Sodium_Compat::memzero($ephemeralKeypair); - ParagonIE_Sodium_Compat::memzero($ephemeralSK); - ParagonIE_Sodium_Compat::memzero($nonce); - } catch (SodiumException $ex) { - $ephemeralKeypair = null; - $ephemeralSK = null; - $nonce = null; - } - return $ephemeralPK . $ciphertext; - } - - /** - * Opens a message encrypted via box_seal(). - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $keypair - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function box_seal_open($message, $keypair) - { - /** @var string $ephemeralPK */ - $ephemeralPK = ParagonIE_Sodium_Core_Util::substr($message, 0, 32); - - /** @var string $ciphertext (ciphertext + MAC) */ - $ciphertext = ParagonIE_Sodium_Core_Util::substr($message, 32); - - /** @var string $secretKey */ - $secretKey = self::box_secretkey($keypair); - - /** @var string $publicKey */ - $publicKey = self::box_publickey($keypair); - - /** @var string $nonce */ - $nonce = self::generichash( - $ephemeralPK . $publicKey, - '', - 24 - ); - - /** @var string $keypair */ - $keypair = self::box_keypair_from_secretkey_and_publickey($secretKey, $ephemeralPK); - - /** @var string $m */ - $m = self::box_open($ciphertext, $nonce, $keypair); - try { - ParagonIE_Sodium_Compat::memzero($secretKey); - ParagonIE_Sodium_Compat::memzero($ephemeralPK); - ParagonIE_Sodium_Compat::memzero($nonce); - } catch (SodiumException $ex) { - $secretKey = null; - $ephemeralPK = null; - $nonce = null; - } - return $m; - } - - /** - * Used by crypto_box() to get the crypto_secretbox() key. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $sk - * @param string $pk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function box_beforenm($sk, $pk) - { - return ParagonIE_Sodium_Core_HSalsa20::hsalsa20( - str_repeat("\x00", 16), - self::scalarmult($sk, $pk) - ); - } - - /** - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @return string - * @throws Exception - * @throws SodiumException - * @throws TypeError - */ - public static function box_keypair() - { - $sKey = random_bytes(32); - $pKey = self::scalarmult_base($sKey); - return $sKey . $pKey; - } - - /** - * @param string $seed - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function box_seed_keypair($seed) - { - $sKey = ParagonIE_Sodium_Core_Util::substr( - hash('sha512', $seed, true), - 0, - 32 - ); - $pKey = self::scalarmult_base($sKey); - return $sKey . $pKey; - } - - /** - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $sKey - * @param string $pKey - * @return string - * @throws TypeError - */ - public static function box_keypair_from_secretkey_and_publickey($sKey, $pKey) - { - return ParagonIE_Sodium_Core_Util::substr($sKey, 0, 32) . - ParagonIE_Sodium_Core_Util::substr($pKey, 0, 32); - } - - /** - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $keypair - * @return string - * @throws RangeException - * @throws TypeError - */ - public static function box_secretkey($keypair) - { - if (ParagonIE_Sodium_Core_Util::strlen($keypair) !== 64) { - throw new RangeException( - 'Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES bytes long.' - ); - } - return ParagonIE_Sodium_Core_Util::substr($keypair, 0, 32); - } - - /** - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $keypair - * @return string - * @throws RangeException - * @throws TypeError - */ - public static function box_publickey($keypair) - { - if (ParagonIE_Sodium_Core_Util::strlen($keypair) !== ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES) { - throw new RangeException( - 'Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES bytes long.' - ); - } - return ParagonIE_Sodium_Core_Util::substr($keypair, 32, 32); - } - - /** - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $sKey - * @return string - * @throws RangeException - * @throws SodiumException - * @throws TypeError - */ - public static function box_publickey_from_secretkey($sKey) - { - if (ParagonIE_Sodium_Core_Util::strlen($sKey) !== ParagonIE_Sodium_Compat::CRYPTO_BOX_SECRETKEYBYTES) { - throw new RangeException( - 'Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_SECRETKEYBYTES bytes long.' - ); - } - return self::scalarmult_base($sKey); - } - - /** - * Decrypt a message encrypted with box(). - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $ciphertext - * @param string $nonce - * @param string $keypair - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function box_open($ciphertext, $nonce, $keypair) - { - return self::secretbox_open( - $ciphertext, - $nonce, - self::box_beforenm( - self::box_secretkey($keypair), - self::box_publickey($keypair) - ) - ); - } - - /** - * Calculate a BLAKE2b hash. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string|null $key - * @param int $outlen - * @return string - * @throws RangeException - * @throws SodiumException - * @throws TypeError - */ - public static function generichash($message, $key = '', $outlen = 32) - { - // This ensures that ParagonIE_Sodium_Core_BLAKE2b::$iv is initialized - ParagonIE_Sodium_Core_BLAKE2b::pseudoConstructor(); - - $k = null; - if (!empty($key)) { - /** @var SplFixedArray $k */ - $k = ParagonIE_Sodium_Core_BLAKE2b::stringToSplFixedArray($key); - if ($k->count() > ParagonIE_Sodium_Core_BLAKE2b::KEYBYTES) { - throw new RangeException('Invalid key size'); - } - } - - /** @var SplFixedArray $in */ - $in = ParagonIE_Sodium_Core_BLAKE2b::stringToSplFixedArray($message); - - /** @var SplFixedArray $ctx */ - $ctx = ParagonIE_Sodium_Core_BLAKE2b::init($k, $outlen); - ParagonIE_Sodium_Core_BLAKE2b::update($ctx, $in, $in->count()); - - /** @var SplFixedArray $out */ - $out = new SplFixedArray($outlen); - $out = ParagonIE_Sodium_Core_BLAKE2b::finish($ctx, $out); - - /** @var array */ - $outArray = $out->toArray(); - return ParagonIE_Sodium_Core_Util::intArrayToString($outArray); - } - - /** - * Finalize a BLAKE2b hashing context, returning the hash. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $ctx - * @param int $outlen - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function generichash_final($ctx, $outlen = 32) - { - if (!is_string($ctx)) { - throw new TypeError('Context must be a string'); - } - $out = new SplFixedArray($outlen); - - /** @var SplFixedArray $context */ - $context = ParagonIE_Sodium_Core_BLAKE2b::stringToContext($ctx); - - /** @var SplFixedArray $out */ - $out = ParagonIE_Sodium_Core_BLAKE2b::finish($context, $out); - - /** @var array */ - $outArray = $out->toArray(); - return ParagonIE_Sodium_Core_Util::intArrayToString($outArray); - } - - /** - * Initialize a hashing context for BLAKE2b. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $key - * @param int $outputLength - * @return string - * @throws RangeException - * @throws SodiumException - * @throws TypeError - */ - public static function generichash_init($key = '', $outputLength = 32) - { - // This ensures that ParagonIE_Sodium_Core_BLAKE2b::$iv is initialized - ParagonIE_Sodium_Core_BLAKE2b::pseudoConstructor(); - - $k = null; - if (!empty($key)) { - $k = ParagonIE_Sodium_Core_BLAKE2b::stringToSplFixedArray($key); - if ($k->count() > ParagonIE_Sodium_Core_BLAKE2b::KEYBYTES) { - throw new RangeException('Invalid key size'); - } - } - - /** @var SplFixedArray $ctx */ - $ctx = ParagonIE_Sodium_Core_BLAKE2b::init($k, $outputLength); - - return ParagonIE_Sodium_Core_BLAKE2b::contextToString($ctx); - } - - /** - * Initialize a hashing context for BLAKE2b. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $key - * @param int $outputLength - * @param string $salt - * @param string $personal - * @return string - * @throws RangeException - * @throws SodiumException - * @throws TypeError - */ - public static function generichash_init_salt_personal( - $key = '', - $outputLength = 32, - $salt = '', - $personal = '' - ) { - // This ensures that ParagonIE_Sodium_Core_BLAKE2b::$iv is initialized - ParagonIE_Sodium_Core_BLAKE2b::pseudoConstructor(); - - $k = null; - if (!empty($key)) { - $k = ParagonIE_Sodium_Core_BLAKE2b::stringToSplFixedArray($key); - if ($k->count() > ParagonIE_Sodium_Core_BLAKE2b::KEYBYTES) { - throw new RangeException('Invalid key size'); - } - } - if (!empty($salt)) { - $s = ParagonIE_Sodium_Core_BLAKE2b::stringToSplFixedArray($salt); - } else { - $s = null; - } - if (!empty($salt)) { - $p = ParagonIE_Sodium_Core_BLAKE2b::stringToSplFixedArray($personal); - } else { - $p = null; - } - - /** @var SplFixedArray $ctx */ - $ctx = ParagonIE_Sodium_Core_BLAKE2b::init($k, $outputLength, $s, $p); - - return ParagonIE_Sodium_Core_BLAKE2b::contextToString($ctx); - } - - /** - * Update a hashing context for BLAKE2b with $message - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $ctx - * @param string $message - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function generichash_update($ctx, $message) - { - // This ensures that ParagonIE_Sodium_Core_BLAKE2b::$iv is initialized - ParagonIE_Sodium_Core_BLAKE2b::pseudoConstructor(); - - /** @var SplFixedArray $context */ - $context = ParagonIE_Sodium_Core_BLAKE2b::stringToContext($ctx); - - /** @var SplFixedArray $in */ - $in = ParagonIE_Sodium_Core_BLAKE2b::stringToSplFixedArray($message); - - ParagonIE_Sodium_Core_BLAKE2b::update($context, $in, $in->count()); - - return ParagonIE_Sodium_Core_BLAKE2b::contextToString($context); - } - - /** - * Libsodium's crypto_kx(). - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $my_sk - * @param string $their_pk - * @param string $client_pk - * @param string $server_pk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function keyExchange($my_sk, $their_pk, $client_pk, $server_pk) - { - return ParagonIE_Sodium_Compat::crypto_generichash( - ParagonIE_Sodium_Compat::crypto_scalarmult($my_sk, $their_pk) . - $client_pk . - $server_pk - ); - } - - /** - * ECDH over Curve25519 - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $sKey - * @param string $pKey - * @return string - * - * @throws SodiumException - * @throws TypeError - */ - public static function scalarmult($sKey, $pKey) - { - $q = ParagonIE_Sodium_Core_X25519::crypto_scalarmult_curve25519_ref10($sKey, $pKey); - self::scalarmult_throw_if_zero($q); - return $q; - } - - /** - * ECDH over Curve25519, using the basepoint. - * Used to get a secret key from a public key. - * - * @param string $secret - * @return string - * - * @throws SodiumException - * @throws TypeError - */ - public static function scalarmult_base($secret) - { - $q = ParagonIE_Sodium_Core_X25519::crypto_scalarmult_curve25519_ref10_base($secret); - self::scalarmult_throw_if_zero($q); - return $q; - } - - /** - * This throws an Error if a zero public key was passed to the function. - * - * @param string $q - * @return void - * @throws SodiumException - * @throws TypeError - */ - protected static function scalarmult_throw_if_zero($q) - { - $d = 0; - for ($i = 0; $i < self::box_curve25519xsalsa20poly1305_SECRETKEYBYTES; ++$i) { - $d |= ParagonIE_Sodium_Core_Util::chrToInt($q[$i]); - } - - /* branch-free variant of === 0 */ - if (-(1 & (($d - 1) >> 8))) { - throw new SodiumException('Zero public key is not allowed'); - } - } - - /** - * XSalsa20-Poly1305 authenticated symmetric-key encryption. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $plaintext - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function secretbox($plaintext, $nonce, $key) - { - /** @var string $subkey */ - $subkey = ParagonIE_Sodium_Core_HSalsa20::hsalsa20($nonce, $key); - - /** @var string $block0 */ - $block0 = str_repeat("\x00", 32); - - /** @var int $mlen - Length of the plaintext message */ - $mlen = ParagonIE_Sodium_Core_Util::strlen($plaintext); - $mlen0 = $mlen; - if ($mlen0 > 64 - self::secretbox_xsalsa20poly1305_ZEROBYTES) { - $mlen0 = 64 - self::secretbox_xsalsa20poly1305_ZEROBYTES; - } - $block0 .= ParagonIE_Sodium_Core_Util::substr($plaintext, 0, $mlen0); - - /** @var string $block0 */ - $block0 = ParagonIE_Sodium_Core_Salsa20::salsa20_xor( - $block0, - ParagonIE_Sodium_Core_Util::substr($nonce, 16, 8), - $subkey - ); - - /** @var string $c */ - $c = ParagonIE_Sodium_Core_Util::substr( - $block0, - self::secretbox_xsalsa20poly1305_ZEROBYTES - ); - if ($mlen > $mlen0) { - $c .= ParagonIE_Sodium_Core_Salsa20::salsa20_xor_ic( - ParagonIE_Sodium_Core_Util::substr( - $plaintext, - self::secretbox_xsalsa20poly1305_ZEROBYTES - ), - ParagonIE_Sodium_Core_Util::substr($nonce, 16, 8), - 1, - $subkey - ); - } - $state = new ParagonIE_Sodium_Core_Poly1305_State( - ParagonIE_Sodium_Core_Util::substr( - $block0, - 0, - self::onetimeauth_poly1305_KEYBYTES - ) - ); - try { - ParagonIE_Sodium_Compat::memzero($block0); - ParagonIE_Sodium_Compat::memzero($subkey); - } catch (SodiumException $ex) { - $block0 = null; - $subkey = null; - } - - $state->update($c); - - /** @var string $c - MAC || ciphertext */ - $c = $state->finish() . $c; - unset($state); - - return $c; - } - - /** - * Decrypt a ciphertext generated via secretbox(). - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $ciphertext - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function secretbox_open($ciphertext, $nonce, $key) - { - /** @var string $mac */ - $mac = ParagonIE_Sodium_Core_Util::substr( - $ciphertext, - 0, - self::secretbox_xsalsa20poly1305_MACBYTES - ); - - /** @var string $c */ - $c = ParagonIE_Sodium_Core_Util::substr( - $ciphertext, - self::secretbox_xsalsa20poly1305_MACBYTES - ); - - /** @var int $clen */ - $clen = ParagonIE_Sodium_Core_Util::strlen($c); - - /** @var string $subkey */ - $subkey = ParagonIE_Sodium_Core_HSalsa20::hsalsa20($nonce, $key); - - /** @var string $block0 */ - $block0 = ParagonIE_Sodium_Core_Salsa20::salsa20( - 64, - ParagonIE_Sodium_Core_Util::substr($nonce, 16, 8), - $subkey - ); - $verified = ParagonIE_Sodium_Core_Poly1305::onetimeauth_verify( - $mac, - $c, - ParagonIE_Sodium_Core_Util::substr($block0, 0, 32) - ); - if (!$verified) { - try { - ParagonIE_Sodium_Compat::memzero($subkey); - } catch (SodiumException $ex) { - $subkey = null; - } - throw new SodiumException('Invalid MAC'); - } - - /** @var string $m - Decrypted message */ - $m = ParagonIE_Sodium_Core_Util::xorStrings( - ParagonIE_Sodium_Core_Util::substr($block0, self::secretbox_xsalsa20poly1305_ZEROBYTES), - ParagonIE_Sodium_Core_Util::substr($c, 0, self::secretbox_xsalsa20poly1305_ZEROBYTES) - ); - if ($clen > self::secretbox_xsalsa20poly1305_ZEROBYTES) { - // We had more than 1 block, so let's continue to decrypt the rest. - $m .= ParagonIE_Sodium_Core_Salsa20::salsa20_xor_ic( - ParagonIE_Sodium_Core_Util::substr( - $c, - self::secretbox_xsalsa20poly1305_ZEROBYTES - ), - ParagonIE_Sodium_Core_Util::substr($nonce, 16, 8), - 1, - (string) $subkey - ); - } - return $m; - } - - /** - * XChaCha20-Poly1305 authenticated symmetric-key encryption. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $plaintext - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function secretbox_xchacha20poly1305($plaintext, $nonce, $key) - { - /** @var string $subkey */ - $subkey = ParagonIE_Sodium_Core_HChaCha20::hChaCha20( - ParagonIE_Sodium_Core_Util::substr($nonce, 0, 16), - $key - ); - $nonceLast = ParagonIE_Sodium_Core_Util::substr($nonce, 16, 8); - - /** @var string $block0 */ - $block0 = str_repeat("\x00", 32); - - /** @var int $mlen - Length of the plaintext message */ - $mlen = ParagonIE_Sodium_Core_Util::strlen($plaintext); - $mlen0 = $mlen; - if ($mlen0 > 64 - self::secretbox_xchacha20poly1305_ZEROBYTES) { - $mlen0 = 64 - self::secretbox_xchacha20poly1305_ZEROBYTES; - } - $block0 .= ParagonIE_Sodium_Core_Util::substr($plaintext, 0, $mlen0); - - /** @var string $block0 */ - $block0 = ParagonIE_Sodium_Core_ChaCha20::streamXorIc( - $block0, - $nonceLast, - $subkey - ); - - /** @var string $c */ - $c = ParagonIE_Sodium_Core_Util::substr( - $block0, - self::secretbox_xchacha20poly1305_ZEROBYTES - ); - if ($mlen > $mlen0) { - $c .= ParagonIE_Sodium_Core_ChaCha20::streamXorIc( - ParagonIE_Sodium_Core_Util::substr( - $plaintext, - self::secretbox_xchacha20poly1305_ZEROBYTES - ), - $nonceLast, - $subkey, - ParagonIE_Sodium_Core_Util::store64_le(1) - ); - } - $state = new ParagonIE_Sodium_Core_Poly1305_State( - ParagonIE_Sodium_Core_Util::substr( - $block0, - 0, - self::onetimeauth_poly1305_KEYBYTES - ) - ); - try { - ParagonIE_Sodium_Compat::memzero($block0); - ParagonIE_Sodium_Compat::memzero($subkey); - } catch (SodiumException $ex) { - $block0 = null; - $subkey = null; - } - - $state->update($c); - - /** @var string $c - MAC || ciphertext */ - $c = $state->finish() . $c; - unset($state); - - return $c; - } - - /** - * Decrypt a ciphertext generated via secretbox_xchacha20poly1305(). - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $ciphertext - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function secretbox_xchacha20poly1305_open($ciphertext, $nonce, $key) - { - /** @var string $mac */ - $mac = ParagonIE_Sodium_Core_Util::substr( - $ciphertext, - 0, - self::secretbox_xchacha20poly1305_MACBYTES - ); - - /** @var string $c */ - $c = ParagonIE_Sodium_Core_Util::substr( - $ciphertext, - self::secretbox_xchacha20poly1305_MACBYTES - ); - - /** @var int $clen */ - $clen = ParagonIE_Sodium_Core_Util::strlen($c); - - /** @var string $subkey */ - $subkey = ParagonIE_Sodium_Core_HChaCha20::hchacha20($nonce, $key); - - /** @var string $block0 */ - $block0 = ParagonIE_Sodium_Core_ChaCha20::stream( - 64, - ParagonIE_Sodium_Core_Util::substr($nonce, 16, 8), - $subkey - ); - $verified = ParagonIE_Sodium_Core_Poly1305::onetimeauth_verify( - $mac, - $c, - ParagonIE_Sodium_Core_Util::substr($block0, 0, 32) - ); - - if (!$verified) { - try { - ParagonIE_Sodium_Compat::memzero($subkey); - } catch (SodiumException $ex) { - $subkey = null; - } - throw new SodiumException('Invalid MAC'); - } - - /** @var string $m - Decrypted message */ - $m = ParagonIE_Sodium_Core_Util::xorStrings( - ParagonIE_Sodium_Core_Util::substr($block0, self::secretbox_xchacha20poly1305_ZEROBYTES), - ParagonIE_Sodium_Core_Util::substr($c, 0, self::secretbox_xchacha20poly1305_ZEROBYTES) - ); - - if ($clen > self::secretbox_xchacha20poly1305_ZEROBYTES) { - // We had more than 1 block, so let's continue to decrypt the rest. - $m .= ParagonIE_Sodium_Core_ChaCha20::streamXorIc( - ParagonIE_Sodium_Core_Util::substr( - $c, - self::secretbox_xchacha20poly1305_ZEROBYTES - ), - ParagonIE_Sodium_Core_Util::substr($nonce, 16, 8), - (string) $subkey, - ParagonIE_Sodium_Core_Util::store64_le(1) - ); - } - return $m; - } - - /** - * @param string $key - * @return array Returns a state and a header. - * @throws Exception - * @throws SodiumException - */ - public static function secretstream_xchacha20poly1305_init_push($key) - { - # randombytes_buf(out, crypto_secretstream_xchacha20poly1305_HEADERBYTES); - $out = random_bytes(24); - - # crypto_core_hchacha20(state->k, out, k, NULL); - $subkey = ParagonIE_Sodium_Core_HChaCha20::hChaCha20($out, $key); - $state = new ParagonIE_Sodium_Core_SecretStream_State( - $subkey, - ParagonIE_Sodium_Core_Util::substr($out, 16, 8) . str_repeat("\0", 4) - ); - - # _crypto_secretstream_xchacha20poly1305_counter_reset(state); - $state->counterReset(); - - # memcpy(STATE_INONCE(state), out + crypto_core_hchacha20_INPUTBYTES, - # crypto_secretstream_xchacha20poly1305_INONCEBYTES); - # memset(state->_pad, 0, sizeof state->_pad); - return array( - $state->toString(), - $out - ); - } - - /** - * @param string $key - * @param string $header - * @return string Returns a state. - * @throws Exception - */ - public static function secretstream_xchacha20poly1305_init_pull($key, $header) - { - # crypto_core_hchacha20(state->k, in, k, NULL); - $subkey = ParagonIE_Sodium_Core_HChaCha20::hChaCha20( - ParagonIE_Sodium_Core_Util::substr($header, 0, 16), - $key - ); - $state = new ParagonIE_Sodium_Core_SecretStream_State( - $subkey, - ParagonIE_Sodium_Core_Util::substr($header, 16) - ); - $state->counterReset(); - # memcpy(STATE_INONCE(state), in + crypto_core_hchacha20_INPUTBYTES, - # crypto_secretstream_xchacha20poly1305_INONCEBYTES); - # memset(state->_pad, 0, sizeof state->_pad); - # return 0; - return $state->toString(); - } - - /** - * @param string $state - * @param string $msg - * @param string $aad - * @param int $tag - * @return string - * @throws SodiumException - */ - public static function secretstream_xchacha20poly1305_push(&$state, $msg, $aad = '', $tag = 0) - { - $st = ParagonIE_Sodium_Core_SecretStream_State::fromString($state); - # crypto_onetimeauth_poly1305_state poly1305_state; - # unsigned char block[64U]; - # unsigned char slen[8U]; - # unsigned char *c; - # unsigned char *mac; - - $msglen = ParagonIE_Sodium_Core_Util::strlen($msg); - $aadlen = ParagonIE_Sodium_Core_Util::strlen($aad); - - if ((($msglen + 63) >> 6) > 0xfffffffe) { - throw new SodiumException( - 'message cannot be larger than SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_MESSAGEBYTES_MAX bytes' - ); - } - - # if (outlen_p != NULL) { - # *outlen_p = 0U; - # } - # if (mlen > crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX) { - # sodium_misuse(); - # } - - # crypto_stream_chacha20_ietf(block, sizeof block, state->nonce, state->k); - # crypto_onetimeauth_poly1305_init(&poly1305_state, block); - # sodium_memzero(block, sizeof block); - $auth = new ParagonIE_Sodium_Core_Poly1305_State( - ParagonIE_Sodium_Core_ChaCha20::ietfStream(32, $st->getCombinedNonce(), $st->getKey()) - ); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, ad, adlen); - $auth->update($aad); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, _pad0, - # (0x10 - adlen) & 0xf); - $auth->update(str_repeat("\0", ((0x10 - $aadlen) & 0xf))); - - # memset(block, 0, sizeof block); - # block[0] = tag; - # crypto_stream_chacha20_ietf_xor_ic(block, block, sizeof block, - # state->nonce, 1U, state->k); - $block = ParagonIE_Sodium_Core_ChaCha20::ietfStreamXorIc( - ParagonIE_Sodium_Core_Util::intToChr($tag) . str_repeat("\0", 63), - $st->getCombinedNonce(), - $st->getKey(), - ParagonIE_Sodium_Core_Util::store64_le(1) - ); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, block, sizeof block); - $auth->update($block); - - # out[0] = block[0]; - $out = $block[0]; - # c = out + (sizeof tag); - # crypto_stream_chacha20_ietf_xor_ic(c, m, mlen, state->nonce, 2U, state->k); - $cipher = ParagonIE_Sodium_Core_ChaCha20::ietfStreamXorIc( - $msg, - $st->getCombinedNonce(), - $st->getKey(), - ParagonIE_Sodium_Core_Util::store64_le(2) - ); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, c, mlen); - $auth->update($cipher); - - $out .= $cipher; - unset($cipher); - - # crypto_onetimeauth_poly1305_update - # (&poly1305_state, _pad0, (0x10 - (sizeof block) + mlen) & 0xf); - $auth->update(str_repeat("\0", ((0x10 - 64 + $msglen) & 0xf))); - - # STORE64_LE(slen, (uint64_t) adlen); - $slen = ParagonIE_Sodium_Core_Util::store64_le($aadlen); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, slen, sizeof slen); - $auth->update($slen); - - # STORE64_LE(slen, (sizeof block) + mlen); - $slen = ParagonIE_Sodium_Core_Util::store64_le(64 + $msglen); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, slen, sizeof slen); - $auth->update($slen); - - # mac = c + mlen; - # crypto_onetimeauth_poly1305_final(&poly1305_state, mac); - $mac = $auth->finish(); - $out .= $mac; - - # sodium_memzero(&poly1305_state, sizeof poly1305_state); - unset($auth); - - - # XOR_BUF(STATE_INONCE(state), mac, - # crypto_secretstream_xchacha20poly1305_INONCEBYTES); - $st->xorNonce($mac); - - # sodium_increment(STATE_COUNTER(state), - # crypto_secretstream_xchacha20poly1305_COUNTERBYTES); - $st->incrementCounter(); - // Overwrite by reference: - $state = $st->toString(); - - /** @var bool $rekey */ - $rekey = ($tag & ParagonIE_Sodium_Compat::CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY) !== 0; - # if ((tag & crypto_secretstream_xchacha20poly1305_TAG_REKEY) != 0 || - # sodium_is_zero(STATE_COUNTER(state), - # crypto_secretstream_xchacha20poly1305_COUNTERBYTES)) { - # crypto_secretstream_xchacha20poly1305_rekey(state); - # } - if ($rekey || $st->needsRekey()) { - // DO REKEY - self::secretstream_xchacha20poly1305_rekey($state); - } - # if (outlen_p != NULL) { - # *outlen_p = crypto_secretstream_xchacha20poly1305_ABYTES + mlen; - # } - return $out; - } - - /** - * @param string $state - * @param string $cipher - * @param string $aad - * @return bool|array{0: string, 1: int} - * @throws SodiumException - */ - public static function secretstream_xchacha20poly1305_pull(&$state, $cipher, $aad = '') - { - $st = ParagonIE_Sodium_Core_SecretStream_State::fromString($state); - - $cipherlen = ParagonIE_Sodium_Core_Util::strlen($cipher); - # mlen = inlen - crypto_secretstream_xchacha20poly1305_ABYTES; - $msglen = $cipherlen - ParagonIE_Sodium_Compat::CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_ABYTES; - $aadlen = ParagonIE_Sodium_Core_Util::strlen($aad); - - # if (mlen > crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX) { - # sodium_misuse(); - # } - if ((($msglen + 63) >> 6) > 0xfffffffe) { - throw new SodiumException( - 'message cannot be larger than SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_MESSAGEBYTES_MAX bytes' - ); - } - - # crypto_stream_chacha20_ietf(block, sizeof block, state->nonce, state->k); - # crypto_onetimeauth_poly1305_init(&poly1305_state, block); - # sodium_memzero(block, sizeof block); - $auth = new ParagonIE_Sodium_Core_Poly1305_State( - ParagonIE_Sodium_Core_ChaCha20::ietfStream(32, $st->getCombinedNonce(), $st->getKey()) - ); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, ad, adlen); - $auth->update($aad); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, _pad0, - # (0x10 - adlen) & 0xf); - $auth->update(str_repeat("\0", ((0x10 - $aadlen) & 0xf))); - - - # memset(block, 0, sizeof block); - # block[0] = in[0]; - # crypto_stream_chacha20_ietf_xor_ic(block, block, sizeof block, - # state->nonce, 1U, state->k); - $block = ParagonIE_Sodium_Core_ChaCha20::ietfStreamXorIc( - $cipher[0] . str_repeat("\0", 63), - $st->getCombinedNonce(), - $st->getKey(), - ParagonIE_Sodium_Core_Util::store64_le(1) - ); - # tag = block[0]; - # block[0] = in[0]; - # crypto_onetimeauth_poly1305_update(&poly1305_state, block, sizeof block); - $tag = ParagonIE_Sodium_Core_Util::chrToInt($block[0]); - $block[0] = $cipher[0]; - $auth->update($block); - - - # c = in + (sizeof tag); - # crypto_onetimeauth_poly1305_update(&poly1305_state, c, mlen); - $auth->update(ParagonIE_Sodium_Core_Util::substr($cipher, 1, $msglen)); - - # crypto_onetimeauth_poly1305_update - # (&poly1305_state, _pad0, (0x10 - (sizeof block) + mlen) & 0xf); - $auth->update(str_repeat("\0", ((0x10 - 64 + $msglen) & 0xf))); - - # STORE64_LE(slen, (uint64_t) adlen); - # crypto_onetimeauth_poly1305_update(&poly1305_state, slen, sizeof slen); - $slen = ParagonIE_Sodium_Core_Util::store64_le($aadlen); - $auth->update($slen); - - # STORE64_LE(slen, (sizeof block) + mlen); - # crypto_onetimeauth_poly1305_update(&poly1305_state, slen, sizeof slen); - $slen = ParagonIE_Sodium_Core_Util::store64_le(64 + $msglen); - $auth->update($slen); - - # crypto_onetimeauth_poly1305_final(&poly1305_state, mac); - # sodium_memzero(&poly1305_state, sizeof poly1305_state); - $mac = $auth->finish(); - - # stored_mac = c + mlen; - # if (sodium_memcmp(mac, stored_mac, sizeof mac) != 0) { - # sodium_memzero(mac, sizeof mac); - # return -1; - # } - - $stored = ParagonIE_Sodium_Core_Util::substr($cipher, $msglen + 1, 16); - if (!ParagonIE_Sodium_Core_Util::hashEquals($mac, $stored)) { - return false; - } - - # crypto_stream_chacha20_ietf_xor_ic(m, c, mlen, state->nonce, 2U, state->k); - $out = ParagonIE_Sodium_Core_ChaCha20::ietfStreamXorIc( - ParagonIE_Sodium_Core_Util::substr($cipher, 1, $msglen), - $st->getCombinedNonce(), - $st->getKey(), - ParagonIE_Sodium_Core_Util::store64_le(2) - ); - - # XOR_BUF(STATE_INONCE(state), mac, - # crypto_secretstream_xchacha20poly1305_INONCEBYTES); - $st->xorNonce($mac); - - # sodium_increment(STATE_COUNTER(state), - # crypto_secretstream_xchacha20poly1305_COUNTERBYTES); - $st->incrementCounter(); - - # if ((tag & crypto_secretstream_xchacha20poly1305_TAG_REKEY) != 0 || - # sodium_is_zero(STATE_COUNTER(state), - # crypto_secretstream_xchacha20poly1305_COUNTERBYTES)) { - # crypto_secretstream_xchacha20poly1305_rekey(state); - # } - - // Overwrite by reference: - $state = $st->toString(); - - /** @var bool $rekey */ - $rekey = ($tag & ParagonIE_Sodium_Compat::CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY) !== 0; - if ($rekey || $st->needsRekey()) { - // DO REKEY - self::secretstream_xchacha20poly1305_rekey($state); - } - return array($out, $tag); - } - - /** - * @param string $state - * @return void - * @throws SodiumException - */ - public static function secretstream_xchacha20poly1305_rekey(&$state) - { - $st = ParagonIE_Sodium_Core_SecretStream_State::fromString($state); - # unsigned char new_key_and_inonce[crypto_stream_chacha20_ietf_KEYBYTES + - # crypto_secretstream_xchacha20poly1305_INONCEBYTES]; - # size_t i; - # for (i = 0U; i < crypto_stream_chacha20_ietf_KEYBYTES; i++) { - # new_key_and_inonce[i] = state->k[i]; - # } - $new_key_and_inonce = $st->getKey(); - - # for (i = 0U; i < crypto_secretstream_xchacha20poly1305_INONCEBYTES; i++) { - # new_key_and_inonce[crypto_stream_chacha20_ietf_KEYBYTES + i] = - # STATE_INONCE(state)[i]; - # } - $new_key_and_inonce .= ParagonIE_Sodium_Core_Util::substR($st->getNonce(), 0, 8); - - # crypto_stream_chacha20_ietf_xor(new_key_and_inonce, new_key_and_inonce, - # sizeof new_key_and_inonce, - # state->nonce, state->k); - - $st->rekey(ParagonIE_Sodium_Core_ChaCha20::ietfStreamXorIc( - $new_key_and_inonce, - $st->getCombinedNonce(), - $st->getKey(), - ParagonIE_Sodium_Core_Util::store64_le(0) - )); - - # for (i = 0U; i < crypto_stream_chacha20_ietf_KEYBYTES; i++) { - # state->k[i] = new_key_and_inonce[i]; - # } - # for (i = 0U; i < crypto_secretstream_xchacha20poly1305_INONCEBYTES; i++) { - # STATE_INONCE(state)[i] = - # new_key_and_inonce[crypto_stream_chacha20_ietf_KEYBYTES + i]; - # } - # _crypto_secretstream_xchacha20poly1305_counter_reset(state); - $st->counterReset(); - - $state = $st->toString(); - } - - /** - * Detached Ed25519 signature. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $sk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sign_detached($message, $sk) - { - return ParagonIE_Sodium_Core_Ed25519::sign_detached($message, $sk); - } - - /** - * Attached Ed25519 signature. (Returns a signed message.) - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $sk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sign($message, $sk) - { - return ParagonIE_Sodium_Core_Ed25519::sign($message, $sk); - } - - /** - * Opens a signed message. If valid, returns the message. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $signedMessage - * @param string $pk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sign_open($signedMessage, $pk) - { - return ParagonIE_Sodium_Core_Ed25519::sign_open($signedMessage, $pk); - } - - /** - * Verify a detached signature of a given message and public key. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $signature - * @param string $message - * @param string $pk - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function sign_verify_detached($signature, $message, $pk) - { - return ParagonIE_Sodium_Core_Ed25519::verify_detached($signature, $message, $pk); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Crypto32.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Crypto32.php deleted file mode 100644 index 34c0d7a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/Crypto32.php +++ /dev/null @@ -1,1654 +0,0 @@ -update($ad); - $state->update(ParagonIE_Sodium_Core32_Util::store64_le($adlen)); - $state->update($ciphertext); - $state->update(ParagonIE_Sodium_Core32_Util::store64_le($clen)); - $computed_mac = $state->finish(); - - /* Compare the given MAC with the recalculated MAC: */ - if (!ParagonIE_Sodium_Core32_Util::verify_16($computed_mac, $mac)) { - throw new SodiumException('Invalid MAC'); - } - - // Here, we know that the MAC is valid, so we decrypt and return the plaintext - return ParagonIE_Sodium_Core32_ChaCha20::streamXorIc( - $ciphertext, - $nonce, - $key, - ParagonIE_Sodium_Core32_Util::store64_le(1) - ); - } - - /** - * AEAD Encryption with ChaCha20-Poly1305 - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $ad - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function aead_chacha20poly1305_encrypt( - $message = '', - $ad = '', - $nonce = '', - $key = '' - ) { - /** @var int $len - Length of the plaintext message */ - $len = ParagonIE_Sodium_Core32_Util::strlen($message); - - /** @var int $adlen - Length of the associated data */ - $adlen = ParagonIE_Sodium_Core32_Util::strlen($ad); - - /** @var string The first block of the chacha20 keystream, used as a poly1305 key */ - $block0 = ParagonIE_Sodium_Core32_ChaCha20::stream( - 32, - $nonce, - $key - ); - $state = new ParagonIE_Sodium_Core32_Poly1305_State($block0); - try { - ParagonIE_Sodium_Compat::memzero($block0); - } catch (SodiumException $ex) { - $block0 = null; - } - - /** @var string $ciphertext - Raw encrypted data */ - $ciphertext = ParagonIE_Sodium_Core32_ChaCha20::streamXorIc( - $message, - $nonce, - $key, - ParagonIE_Sodium_Core32_Util::store64_le(1) - ); - - $state->update($ad); - $state->update(ParagonIE_Sodium_Core32_Util::store64_le($adlen)); - $state->update($ciphertext); - $state->update(ParagonIE_Sodium_Core32_Util::store64_le($len)); - return $ciphertext . $state->finish(); - } - - /** - * AEAD Decryption with ChaCha20-Poly1305, IETF mode (96-bit nonce) - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $ad - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function aead_chacha20poly1305_ietf_decrypt( - $message = '', - $ad = '', - $nonce = '', - $key = '' - ) { - /** @var int $adlen - Length of associated data */ - $adlen = ParagonIE_Sodium_Core32_Util::strlen($ad); - - /** @var int $len - Length of message (ciphertext + MAC) */ - $len = ParagonIE_Sodium_Core32_Util::strlen($message); - - /** @var int $clen - Length of ciphertext */ - $clen = $len - self::aead_chacha20poly1305_IETF_ABYTES; - - /** @var string The first block of the chacha20 keystream, used as a poly1305 key */ - $block0 = ParagonIE_Sodium_Core32_ChaCha20::ietfStream( - 32, - $nonce, - $key - ); - - /** @var string $mac - Message authentication code */ - $mac = ParagonIE_Sodium_Core32_Util::substr( - $message, - $len - self::aead_chacha20poly1305_IETF_ABYTES, - self::aead_chacha20poly1305_IETF_ABYTES - ); - - /** @var string $ciphertext - The encrypted message (sans MAC) */ - $ciphertext = ParagonIE_Sodium_Core32_Util::substr( - $message, - 0, - $len - self::aead_chacha20poly1305_IETF_ABYTES - ); - - /* Recalculate the Poly1305 authentication tag (MAC): */ - $state = new ParagonIE_Sodium_Core32_Poly1305_State($block0); - try { - ParagonIE_Sodium_Compat::memzero($block0); - } catch (SodiumException $ex) { - $block0 = null; - } - $state->update($ad); - $state->update(str_repeat("\x00", ((0x10 - $adlen) & 0xf))); - $state->update($ciphertext); - $state->update(str_repeat("\x00", (0x10 - $clen) & 0xf)); - $state->update(ParagonIE_Sodium_Core32_Util::store64_le($adlen)); - $state->update(ParagonIE_Sodium_Core32_Util::store64_le($clen)); - $computed_mac = $state->finish(); - - /* Compare the given MAC with the recalculated MAC: */ - if (!ParagonIE_Sodium_Core32_Util::verify_16($computed_mac, $mac)) { - throw new SodiumException('Invalid MAC'); - } - - // Here, we know that the MAC is valid, so we decrypt and return the plaintext - return ParagonIE_Sodium_Core32_ChaCha20::ietfStreamXorIc( - $ciphertext, - $nonce, - $key, - ParagonIE_Sodium_Core32_Util::store64_le(1) - ); - } - - /** - * AEAD Encryption with ChaCha20-Poly1305, IETF mode (96-bit nonce) - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $ad - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function aead_chacha20poly1305_ietf_encrypt( - $message = '', - $ad = '', - $nonce = '', - $key = '' - ) { - /** @var int $len - Length of the plaintext message */ - $len = ParagonIE_Sodium_Core32_Util::strlen($message); - - /** @var int $adlen - Length of the associated data */ - $adlen = ParagonIE_Sodium_Core32_Util::strlen($ad); - - /** @var string The first block of the chacha20 keystream, used as a poly1305 key */ - $block0 = ParagonIE_Sodium_Core32_ChaCha20::ietfStream( - 32, - $nonce, - $key - ); - $state = new ParagonIE_Sodium_Core32_Poly1305_State($block0); - try { - ParagonIE_Sodium_Compat::memzero($block0); - } catch (SodiumException $ex) { - $block0 = null; - } - - /** @var string $ciphertext - Raw encrypted data */ - $ciphertext = ParagonIE_Sodium_Core32_ChaCha20::ietfStreamXorIc( - $message, - $nonce, - $key, - ParagonIE_Sodium_Core32_Util::store64_le(1) - ); - - $state->update($ad); - $state->update(str_repeat("\x00", ((0x10 - $adlen) & 0xf))); - $state->update($ciphertext); - $state->update(str_repeat("\x00", ((0x10 - $len) & 0xf))); - $state->update(ParagonIE_Sodium_Core32_Util::store64_le($adlen)); - $state->update(ParagonIE_Sodium_Core32_Util::store64_le($len)); - return $ciphertext . $state->finish(); - } - - /** - * AEAD Decryption with ChaCha20-Poly1305, IETF mode (96-bit nonce) - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $ad - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function aead_xchacha20poly1305_ietf_decrypt( - $message = '', - $ad = '', - $nonce = '', - $key = '' - ) { - $subkey = ParagonIE_Sodium_Core32_HChaCha20::hChaCha20( - ParagonIE_Sodium_Core32_Util::substr($nonce, 0, 16), - $key - ); - $nonceLast = "\x00\x00\x00\x00" . - ParagonIE_Sodium_Core32_Util::substr($nonce, 16, 8); - - return self::aead_chacha20poly1305_ietf_decrypt($message, $ad, $nonceLast, $subkey); - } - - /** - * AEAD Encryption with ChaCha20-Poly1305, IETF mode (96-bit nonce) - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $ad - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function aead_xchacha20poly1305_ietf_encrypt( - $message = '', - $ad = '', - $nonce = '', - $key = '' - ) { - $subkey = ParagonIE_Sodium_Core32_HChaCha20::hChaCha20( - ParagonIE_Sodium_Core32_Util::substr($nonce, 0, 16), - $key - ); - $nonceLast = "\x00\x00\x00\x00" . - ParagonIE_Sodium_Core32_Util::substr($nonce, 16, 8); - - return self::aead_chacha20poly1305_ietf_encrypt($message, $ad, $nonceLast, $subkey); - } - - /** - * HMAC-SHA-512-256 (a.k.a. the leftmost 256 bits of HMAC-SHA-512) - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $key - * @return string - * @throws TypeError - */ - public static function auth($message, $key) - { - return ParagonIE_Sodium_Core32_Util::substr( - hash_hmac('sha512', $message, $key, true), - 0, - 32 - ); - } - - /** - * HMAC-SHA-512-256 validation. Constant-time via hash_equals(). - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $mac - * @param string $message - * @param string $key - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function auth_verify($mac, $message, $key) - { - return ParagonIE_Sodium_Core32_Util::hashEquals( - $mac, - self::auth($message, $key) - ); - } - - /** - * X25519 key exchange followed by XSalsa20Poly1305 symmetric encryption - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $plaintext - * @param string $nonce - * @param string $keypair - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function box($plaintext, $nonce, $keypair) - { - return self::secretbox( - $plaintext, - $nonce, - self::box_beforenm( - self::box_secretkey($keypair), - self::box_publickey($keypair) - ) - ); - } - - /** - * X25519-XSalsa20-Poly1305 with one ephemeral X25519 keypair. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $publicKey - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function box_seal($message, $publicKey) - { - /** @var string $ephemeralKeypair */ - $ephemeralKeypair = self::box_keypair(); - - /** @var string $ephemeralSK */ - $ephemeralSK = self::box_secretkey($ephemeralKeypair); - - /** @var string $ephemeralPK */ - $ephemeralPK = self::box_publickey($ephemeralKeypair); - - /** @var string $nonce */ - $nonce = self::generichash( - $ephemeralPK . $publicKey, - '', - 24 - ); - - /** @var string $keypair - The combined keypair used in crypto_box() */ - $keypair = self::box_keypair_from_secretkey_and_publickey($ephemeralSK, $publicKey); - - /** @var string $ciphertext Ciphertext + MAC from crypto_box */ - $ciphertext = self::box($message, $nonce, $keypair); - try { - ParagonIE_Sodium_Compat::memzero($ephemeralKeypair); - ParagonIE_Sodium_Compat::memzero($ephemeralSK); - ParagonIE_Sodium_Compat::memzero($nonce); - } catch (SodiumException $ex) { - $ephemeralKeypair = null; - $ephemeralSK = null; - $nonce = null; - } - return $ephemeralPK . $ciphertext; - } - - /** - * Opens a message encrypted via box_seal(). - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $keypair - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function box_seal_open($message, $keypair) - { - /** @var string $ephemeralPK */ - $ephemeralPK = ParagonIE_Sodium_Core32_Util::substr($message, 0, 32); - - /** @var string $ciphertext (ciphertext + MAC) */ - $ciphertext = ParagonIE_Sodium_Core32_Util::substr($message, 32); - - /** @var string $secretKey */ - $secretKey = self::box_secretkey($keypair); - - /** @var string $publicKey */ - $publicKey = self::box_publickey($keypair); - - /** @var string $nonce */ - $nonce = self::generichash( - $ephemeralPK . $publicKey, - '', - 24 - ); - - /** @var string $keypair */ - $keypair = self::box_keypair_from_secretkey_and_publickey($secretKey, $ephemeralPK); - - /** @var string $m */ - $m = self::box_open($ciphertext, $nonce, $keypair); - try { - ParagonIE_Sodium_Compat::memzero($secretKey); - ParagonIE_Sodium_Compat::memzero($ephemeralPK); - ParagonIE_Sodium_Compat::memzero($nonce); - } catch (SodiumException $ex) { - $secretKey = null; - $ephemeralPK = null; - $nonce = null; - } - return $m; - } - - /** - * Used by crypto_box() to get the crypto_secretbox() key. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $sk - * @param string $pk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function box_beforenm($sk, $pk) - { - return ParagonIE_Sodium_Core32_HSalsa20::hsalsa20( - str_repeat("\x00", 16), - self::scalarmult($sk, $pk) - ); - } - - /** - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @return string - * @throws Exception - * @throws SodiumException - * @throws TypeError - */ - public static function box_keypair() - { - $sKey = random_bytes(32); - $pKey = self::scalarmult_base($sKey); - return $sKey . $pKey; - } - - /** - * @param string $seed - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function box_seed_keypair($seed) - { - $sKey = ParagonIE_Sodium_Core32_Util::substr( - hash('sha512', $seed, true), - 0, - 32 - ); - $pKey = self::scalarmult_base($sKey); - return $sKey . $pKey; - } - - /** - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $sKey - * @param string $pKey - * @return string - * @throws TypeError - */ - public static function box_keypair_from_secretkey_and_publickey($sKey, $pKey) - { - return ParagonIE_Sodium_Core32_Util::substr($sKey, 0, 32) . - ParagonIE_Sodium_Core32_Util::substr($pKey, 0, 32); - } - - /** - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $keypair - * @return string - * @throws RangeException - * @throws TypeError - */ - public static function box_secretkey($keypair) - { - if (ParagonIE_Sodium_Core32_Util::strlen($keypair) !== 64) { - throw new RangeException( - 'Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES bytes long.' - ); - } - return ParagonIE_Sodium_Core32_Util::substr($keypair, 0, 32); - } - - /** - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $keypair - * @return string - * @throws RangeException - * @throws TypeError - */ - public static function box_publickey($keypair) - { - if (ParagonIE_Sodium_Core32_Util::strlen($keypair) !== ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES) { - throw new RangeException( - 'Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES bytes long.' - ); - } - return ParagonIE_Sodium_Core32_Util::substr($keypair, 32, 32); - } - - /** - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $sKey - * @return string - * @throws RangeException - * @throws SodiumException - * @throws TypeError - */ - public static function box_publickey_from_secretkey($sKey) - { - if (ParagonIE_Sodium_Core32_Util::strlen($sKey) !== ParagonIE_Sodium_Compat::CRYPTO_BOX_SECRETKEYBYTES) { - throw new RangeException( - 'Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_SECRETKEYBYTES bytes long.' - ); - } - return self::scalarmult_base($sKey); - } - - /** - * Decrypt a message encrypted with box(). - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $ciphertext - * @param string $nonce - * @param string $keypair - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function box_open($ciphertext, $nonce, $keypair) - { - return self::secretbox_open( - $ciphertext, - $nonce, - self::box_beforenm( - self::box_secretkey($keypair), - self::box_publickey($keypair) - ) - ); - } - - /** - * Calculate a BLAKE2b hash. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string|null $key - * @param int $outlen - * @return string - * @throws RangeException - * @throws SodiumException - * @throws TypeError - */ - public static function generichash($message, $key = '', $outlen = 32) - { - // This ensures that ParagonIE_Sodium_Core32_BLAKE2b::$iv is initialized - ParagonIE_Sodium_Core32_BLAKE2b::pseudoConstructor(); - - $k = null; - if (!empty($key)) { - /** @var SplFixedArray $k */ - $k = ParagonIE_Sodium_Core32_BLAKE2b::stringToSplFixedArray($key); - if ($k->count() > ParagonIE_Sodium_Core32_BLAKE2b::KEYBYTES) { - throw new RangeException('Invalid key size'); - } - } - - /** @var SplFixedArray $in */ - $in = ParagonIE_Sodium_Core32_BLAKE2b::stringToSplFixedArray($message); - - /** @var SplFixedArray $ctx */ - $ctx = ParagonIE_Sodium_Core32_BLAKE2b::init($k, $outlen); - ParagonIE_Sodium_Core32_BLAKE2b::update($ctx, $in, $in->count()); - - /** @var SplFixedArray $out */ - $out = new SplFixedArray($outlen); - $out = ParagonIE_Sodium_Core32_BLAKE2b::finish($ctx, $out); - - /** @var array */ - $outArray = $out->toArray(); - return ParagonIE_Sodium_Core32_Util::intArrayToString($outArray); - } - - /** - * Finalize a BLAKE2b hashing context, returning the hash. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $ctx - * @param int $outlen - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function generichash_final($ctx, $outlen = 32) - { - if (!is_string($ctx)) { - throw new TypeError('Context must be a string'); - } - $out = new SplFixedArray($outlen); - - /** @var SplFixedArray $context */ - $context = ParagonIE_Sodium_Core32_BLAKE2b::stringToContext($ctx); - - /** @var SplFixedArray $out */ - $out = ParagonIE_Sodium_Core32_BLAKE2b::finish($context, $out); - - /** @var array */ - $outArray = $out->toArray(); - return ParagonIE_Sodium_Core32_Util::intArrayToString($outArray); - } - - /** - * Initialize a hashing context for BLAKE2b. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $key - * @param int $outputLength - * @return string - * @throws RangeException - * @throws SodiumException - * @throws TypeError - */ - public static function generichash_init($key = '', $outputLength = 32) - { - // This ensures that ParagonIE_Sodium_Core32_BLAKE2b::$iv is initialized - ParagonIE_Sodium_Core32_BLAKE2b::pseudoConstructor(); - - $k = null; - if (!empty($key)) { - $k = ParagonIE_Sodium_Core32_BLAKE2b::stringToSplFixedArray($key); - if ($k->count() > ParagonIE_Sodium_Core32_BLAKE2b::KEYBYTES) { - throw new RangeException('Invalid key size'); - } - } - - /** @var SplFixedArray $ctx */ - $ctx = ParagonIE_Sodium_Core32_BLAKE2b::init($k, $outputLength); - - return ParagonIE_Sodium_Core32_BLAKE2b::contextToString($ctx); - } - - /** - * Initialize a hashing context for BLAKE2b. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $key - * @param int $outputLength - * @param string $salt - * @param string $personal - * @return string - * @throws RangeException - * @throws SodiumException - * @throws TypeError - */ - public static function generichash_init_salt_personal( - $key = '', - $outputLength = 32, - $salt = '', - $personal = '' - ) { - // This ensures that ParagonIE_Sodium_Core32_BLAKE2b::$iv is initialized - ParagonIE_Sodium_Core32_BLAKE2b::pseudoConstructor(); - - $k = null; - if (!empty($key)) { - $k = ParagonIE_Sodium_Core32_BLAKE2b::stringToSplFixedArray($key); - if ($k->count() > ParagonIE_Sodium_Core32_BLAKE2b::KEYBYTES) { - throw new RangeException('Invalid key size'); - } - } - if (!empty($salt)) { - $s = ParagonIE_Sodium_Core32_BLAKE2b::stringToSplFixedArray($salt); - } else { - $s = null; - } - if (!empty($salt)) { - $p = ParagonIE_Sodium_Core32_BLAKE2b::stringToSplFixedArray($personal); - } else { - $p = null; - } - - /** @var SplFixedArray $ctx */ - $ctx = ParagonIE_Sodium_Core32_BLAKE2b::init($k, $outputLength, $s, $p); - - return ParagonIE_Sodium_Core32_BLAKE2b::contextToString($ctx); - } - - /** - * Update a hashing context for BLAKE2b with $message - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $ctx - * @param string $message - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function generichash_update($ctx, $message) - { - // This ensures that ParagonIE_Sodium_Core32_BLAKE2b::$iv is initialized - ParagonIE_Sodium_Core32_BLAKE2b::pseudoConstructor(); - - /** @var SplFixedArray $context */ - $context = ParagonIE_Sodium_Core32_BLAKE2b::stringToContext($ctx); - - /** @var SplFixedArray $in */ - $in = ParagonIE_Sodium_Core32_BLAKE2b::stringToSplFixedArray($message); - - ParagonIE_Sodium_Core32_BLAKE2b::update($context, $in, $in->count()); - - return ParagonIE_Sodium_Core32_BLAKE2b::contextToString($context); - } - - /** - * Libsodium's crypto_kx(). - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $my_sk - * @param string $their_pk - * @param string $client_pk - * @param string $server_pk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function keyExchange($my_sk, $their_pk, $client_pk, $server_pk) - { - return self::generichash( - self::scalarmult($my_sk, $their_pk) . - $client_pk . - $server_pk - ); - } - - /** - * ECDH over Curve25519 - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $sKey - * @param string $pKey - * @return string - * - * @throws SodiumException - * @throws TypeError - */ - public static function scalarmult($sKey, $pKey) - { - $q = ParagonIE_Sodium_Core32_X25519::crypto_scalarmult_curve25519_ref10($sKey, $pKey); - self::scalarmult_throw_if_zero($q); - return $q; - } - - /** - * ECDH over Curve25519, using the basepoint. - * Used to get a secret key from a public key. - * - * @param string $secret - * @return string - * - * @throws SodiumException - * @throws TypeError - */ - public static function scalarmult_base($secret) - { - $q = ParagonIE_Sodium_Core32_X25519::crypto_scalarmult_curve25519_ref10_base($secret); - self::scalarmult_throw_if_zero($q); - return $q; - } - - /** - * This throws an Error if a zero public key was passed to the function. - * - * @param string $q - * @return void - * @throws SodiumException - * @throws TypeError - */ - protected static function scalarmult_throw_if_zero($q) - { - $d = 0; - for ($i = 0; $i < self::box_curve25519xsalsa20poly1305_SECRETKEYBYTES; ++$i) { - $d |= ParagonIE_Sodium_Core32_Util::chrToInt($q[$i]); - } - - /* branch-free variant of === 0 */ - if (-(1 & (($d - 1) >> 8))) { - throw new SodiumException('Zero public key is not allowed'); - } - } - - /** - * XSalsa20-Poly1305 authenticated symmetric-key encryption. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $plaintext - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function secretbox($plaintext, $nonce, $key) - { - /** @var string $subkey */ - $subkey = ParagonIE_Sodium_Core32_HSalsa20::hsalsa20($nonce, $key); - - /** @var string $block0 */ - $block0 = str_repeat("\x00", 32); - - /** @var int $mlen - Length of the plaintext message */ - $mlen = ParagonIE_Sodium_Core32_Util::strlen($plaintext); - $mlen0 = $mlen; - if ($mlen0 > 64 - self::secretbox_xsalsa20poly1305_ZEROBYTES) { - $mlen0 = 64 - self::secretbox_xsalsa20poly1305_ZEROBYTES; - } - $block0 .= ParagonIE_Sodium_Core32_Util::substr($plaintext, 0, $mlen0); - - /** @var string $block0 */ - $block0 = ParagonIE_Sodium_Core32_Salsa20::salsa20_xor( - $block0, - ParagonIE_Sodium_Core32_Util::substr($nonce, 16, 8), - $subkey - ); - - /** @var string $c */ - $c = ParagonIE_Sodium_Core32_Util::substr( - $block0, - self::secretbox_xsalsa20poly1305_ZEROBYTES - ); - if ($mlen > $mlen0) { - $c .= ParagonIE_Sodium_Core32_Salsa20::salsa20_xor_ic( - ParagonIE_Sodium_Core32_Util::substr( - $plaintext, - self::secretbox_xsalsa20poly1305_ZEROBYTES - ), - ParagonIE_Sodium_Core32_Util::substr($nonce, 16, 8), - 1, - $subkey - ); - } - $state = new ParagonIE_Sodium_Core32_Poly1305_State( - ParagonIE_Sodium_Core32_Util::substr( - $block0, - 0, - self::onetimeauth_poly1305_KEYBYTES - ) - ); - try { - ParagonIE_Sodium_Compat::memzero($block0); - ParagonIE_Sodium_Compat::memzero($subkey); - } catch (SodiumException $ex) { - $block0 = null; - $subkey = null; - } - - $state->update($c); - - /** @var string $c - MAC || ciphertext */ - $c = $state->finish() . $c; - unset($state); - - return $c; - } - - /** - * Decrypt a ciphertext generated via secretbox(). - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $ciphertext - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function secretbox_open($ciphertext, $nonce, $key) - { - /** @var string $mac */ - $mac = ParagonIE_Sodium_Core32_Util::substr( - $ciphertext, - 0, - self::secretbox_xsalsa20poly1305_MACBYTES - ); - - /** @var string $c */ - $c = ParagonIE_Sodium_Core32_Util::substr( - $ciphertext, - self::secretbox_xsalsa20poly1305_MACBYTES - ); - - /** @var int $clen */ - $clen = ParagonIE_Sodium_Core32_Util::strlen($c); - - /** @var string $subkey */ - $subkey = ParagonIE_Sodium_Core32_HSalsa20::hsalsa20($nonce, $key); - - /** @var string $block0 */ - $block0 = ParagonIE_Sodium_Core32_Salsa20::salsa20( - 64, - ParagonIE_Sodium_Core32_Util::substr($nonce, 16, 8), - $subkey - ); - $verified = ParagonIE_Sodium_Core32_Poly1305::onetimeauth_verify( - $mac, - $c, - ParagonIE_Sodium_Core32_Util::substr($block0, 0, 32) - ); - if (!$verified) { - try { - ParagonIE_Sodium_Compat::memzero($subkey); - } catch (SodiumException $ex) { - $subkey = null; - } - throw new SodiumException('Invalid MAC'); - } - - /** @var string $m - Decrypted message */ - $m = ParagonIE_Sodium_Core32_Util::xorStrings( - ParagonIE_Sodium_Core32_Util::substr($block0, self::secretbox_xsalsa20poly1305_ZEROBYTES), - ParagonIE_Sodium_Core32_Util::substr($c, 0, self::secretbox_xsalsa20poly1305_ZEROBYTES) - ); - if ($clen > self::secretbox_xsalsa20poly1305_ZEROBYTES) { - // We had more than 1 block, so let's continue to decrypt the rest. - $m .= ParagonIE_Sodium_Core32_Salsa20::salsa20_xor_ic( - ParagonIE_Sodium_Core32_Util::substr( - $c, - self::secretbox_xsalsa20poly1305_ZEROBYTES - ), - ParagonIE_Sodium_Core32_Util::substr($nonce, 16, 8), - 1, - (string) $subkey - ); - } - return $m; - } - - /** - * XChaCha20-Poly1305 authenticated symmetric-key encryption. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $plaintext - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function secretbox_xchacha20poly1305($plaintext, $nonce, $key) - { - /** @var string $subkey */ - $subkey = ParagonIE_Sodium_Core32_HChaCha20::hChaCha20( - ParagonIE_Sodium_Core32_Util::substr($nonce, 0, 16), - $key - ); - $nonceLast = ParagonIE_Sodium_Core32_Util::substr($nonce, 16, 8); - - /** @var string $block0 */ - $block0 = str_repeat("\x00", 32); - - /** @var int $mlen - Length of the plaintext message */ - $mlen = ParagonIE_Sodium_Core32_Util::strlen($plaintext); - $mlen0 = $mlen; - if ($mlen0 > 64 - self::secretbox_xchacha20poly1305_ZEROBYTES) { - $mlen0 = 64 - self::secretbox_xchacha20poly1305_ZEROBYTES; - } - $block0 .= ParagonIE_Sodium_Core32_Util::substr($plaintext, 0, $mlen0); - - /** @var string $block0 */ - $block0 = ParagonIE_Sodium_Core32_ChaCha20::streamXorIc( - $block0, - $nonceLast, - $subkey - ); - - /** @var string $c */ - $c = ParagonIE_Sodium_Core32_Util::substr( - $block0, - self::secretbox_xchacha20poly1305_ZEROBYTES - ); - if ($mlen > $mlen0) { - $c .= ParagonIE_Sodium_Core32_ChaCha20::streamXorIc( - ParagonIE_Sodium_Core32_Util::substr( - $plaintext, - self::secretbox_xchacha20poly1305_ZEROBYTES - ), - $nonceLast, - $subkey, - ParagonIE_Sodium_Core32_Util::store64_le(1) - ); - } - $state = new ParagonIE_Sodium_Core32_Poly1305_State( - ParagonIE_Sodium_Core32_Util::substr( - $block0, - 0, - self::onetimeauth_poly1305_KEYBYTES - ) - ); - try { - ParagonIE_Sodium_Compat::memzero($block0); - ParagonIE_Sodium_Compat::memzero($subkey); - } catch (SodiumException $ex) { - $block0 = null; - $subkey = null; - } - - $state->update($c); - - /** @var string $c - MAC || ciphertext */ - $c = $state->finish() . $c; - unset($state); - - return $c; - } - - /** - * Decrypt a ciphertext generated via secretbox_xchacha20poly1305(). - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $ciphertext - * @param string $nonce - * @param string $key - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function secretbox_xchacha20poly1305_open($ciphertext, $nonce, $key) - { - /** @var string $mac */ - $mac = ParagonIE_Sodium_Core32_Util::substr( - $ciphertext, - 0, - self::secretbox_xchacha20poly1305_MACBYTES - ); - - /** @var string $c */ - $c = ParagonIE_Sodium_Core32_Util::substr( - $ciphertext, - self::secretbox_xchacha20poly1305_MACBYTES - ); - - /** @var int $clen */ - $clen = ParagonIE_Sodium_Core32_Util::strlen($c); - - /** @var string $subkey */ - $subkey = ParagonIE_Sodium_Core32_HChaCha20::hchacha20($nonce, $key); - - /** @var string $block0 */ - $block0 = ParagonIE_Sodium_Core32_ChaCha20::stream( - 64, - ParagonIE_Sodium_Core32_Util::substr($nonce, 16, 8), - $subkey - ); - $verified = ParagonIE_Sodium_Core32_Poly1305::onetimeauth_verify( - $mac, - $c, - ParagonIE_Sodium_Core32_Util::substr($block0, 0, 32) - ); - - if (!$verified) { - try { - ParagonIE_Sodium_Compat::memzero($subkey); - } catch (SodiumException $ex) { - $subkey = null; - } - throw new SodiumException('Invalid MAC'); - } - - /** @var string $m - Decrypted message */ - $m = ParagonIE_Sodium_Core32_Util::xorStrings( - ParagonIE_Sodium_Core32_Util::substr($block0, self::secretbox_xchacha20poly1305_ZEROBYTES), - ParagonIE_Sodium_Core32_Util::substr($c, 0, self::secretbox_xchacha20poly1305_ZEROBYTES) - ); - - if ($clen > self::secretbox_xchacha20poly1305_ZEROBYTES) { - // We had more than 1 block, so let's continue to decrypt the rest. - $m .= ParagonIE_Sodium_Core32_ChaCha20::streamXorIc( - ParagonIE_Sodium_Core32_Util::substr( - $c, - self::secretbox_xchacha20poly1305_ZEROBYTES - ), - ParagonIE_Sodium_Core32_Util::substr($nonce, 16, 8), - (string) $subkey, - ParagonIE_Sodium_Core32_Util::store64_le(1) - ); - } - return $m; - } - - /** - * @param string $key - * @return array Returns a state and a header. - * @throws Exception - * @throws SodiumException - */ - public static function secretstream_xchacha20poly1305_init_push($key) - { - # randombytes_buf(out, crypto_secretstream_xchacha20poly1305_HEADERBYTES); - $out = random_bytes(24); - - # crypto_core_hchacha20(state->k, out, k, NULL); - $subkey = ParagonIE_Sodium_Core32_HChaCha20::hChaCha20($out, $key); - $state = new ParagonIE_Sodium_Core32_SecretStream_State( - $subkey, - ParagonIE_Sodium_Core32_Util::substr($out, 16, 8) . str_repeat("\0", 4) - ); - - # _crypto_secretstream_xchacha20poly1305_counter_reset(state); - $state->counterReset(); - - # memcpy(STATE_INONCE(state), out + crypto_core_hchacha20_INPUTBYTES, - # crypto_secretstream_xchacha20poly1305_INONCEBYTES); - # memset(state->_pad, 0, sizeof state->_pad); - return array( - $state->toString(), - $out - ); - } - - /** - * @param string $key - * @param string $header - * @return string Returns a state. - * @throws Exception - */ - public static function secretstream_xchacha20poly1305_init_pull($key, $header) - { - # crypto_core_hchacha20(state->k, in, k, NULL); - $subkey = ParagonIE_Sodium_Core32_HChaCha20::hChaCha20( - ParagonIE_Sodium_Core32_Util::substr($header, 0, 16), - $key - ); - $state = new ParagonIE_Sodium_Core32_SecretStream_State( - $subkey, - ParagonIE_Sodium_Core32_Util::substr($header, 16) - ); - $state->counterReset(); - # memcpy(STATE_INONCE(state), in + crypto_core_hchacha20_INPUTBYTES, - # crypto_secretstream_xchacha20poly1305_INONCEBYTES); - # memset(state->_pad, 0, sizeof state->_pad); - # return 0; - return $state->toString(); - } - - /** - * @param string $state - * @param string $msg - * @param string $aad - * @param int $tag - * @return string - * @throws SodiumException - */ - public static function secretstream_xchacha20poly1305_push(&$state, $msg, $aad = '', $tag = 0) - { - $st = ParagonIE_Sodium_Core32_SecretStream_State::fromString($state); - # crypto_onetimeauth_poly1305_state poly1305_state; - # unsigned char block[64U]; - # unsigned char slen[8U]; - # unsigned char *c; - # unsigned char *mac; - - $msglen = ParagonIE_Sodium_Core32_Util::strlen($msg); - $aadlen = ParagonIE_Sodium_Core32_Util::strlen($aad); - - if ((($msglen + 63) >> 6) > 0xfffffffe) { - throw new SodiumException( - 'message cannot be larger than SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_MESSAGEBYTES_MAX bytes' - ); - } - - # if (outlen_p != NULL) { - # *outlen_p = 0U; - # } - # if (mlen > crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX) { - # sodium_misuse(); - # } - - # crypto_stream_chacha20_ietf(block, sizeof block, state->nonce, state->k); - # crypto_onetimeauth_poly1305_init(&poly1305_state, block); - # sodium_memzero(block, sizeof block); - $auth = new ParagonIE_Sodium_Core32_Poly1305_State( - ParagonIE_Sodium_Core32_ChaCha20::ietfStream(32, $st->getCombinedNonce(), $st->getKey()) - ); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, ad, adlen); - $auth->update($aad); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, _pad0, - # (0x10 - adlen) & 0xf); - $auth->update(str_repeat("\0", ((0x10 - $aadlen) & 0xf))); - - # memset(block, 0, sizeof block); - # block[0] = tag; - # crypto_stream_chacha20_ietf_xor_ic(block, block, sizeof block, - # state->nonce, 1U, state->k); - $block = ParagonIE_Sodium_Core32_ChaCha20::ietfStreamXorIc( - ParagonIE_Sodium_Core32_Util::intToChr($tag) . str_repeat("\0", 63), - $st->getCombinedNonce(), - $st->getKey(), - ParagonIE_Sodium_Core32_Util::store64_le(1) - ); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, block, sizeof block); - $auth->update($block); - - # out[0] = block[0]; - $out = $block[0]; - # c = out + (sizeof tag); - # crypto_stream_chacha20_ietf_xor_ic(c, m, mlen, state->nonce, 2U, state->k); - $cipher = ParagonIE_Sodium_Core32_ChaCha20::ietfStreamXorIc( - $msg, - $st->getCombinedNonce(), - $st->getKey(), - ParagonIE_Sodium_Core32_Util::store64_le(2) - ); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, c, mlen); - $auth->update($cipher); - - $out .= $cipher; - unset($cipher); - - # crypto_onetimeauth_poly1305_update - # (&poly1305_state, _pad0, (0x10 - (sizeof block) + mlen) & 0xf); - $auth->update(str_repeat("\0", ((0x10 - 64 + $msglen) & 0xf))); - - # STORE64_LE(slen, (uint64_t) adlen); - $slen = ParagonIE_Sodium_Core32_Util::store64_le($aadlen); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, slen, sizeof slen); - $auth->update($slen); - - # STORE64_LE(slen, (sizeof block) + mlen); - $slen = ParagonIE_Sodium_Core32_Util::store64_le(64 + $msglen); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, slen, sizeof slen); - $auth->update($slen); - - # mac = c + mlen; - # crypto_onetimeauth_poly1305_final(&poly1305_state, mac); - $mac = $auth->finish(); - $out .= $mac; - - # sodium_memzero(&poly1305_state, sizeof poly1305_state); - unset($auth); - - - # XOR_BUF(STATE_INONCE(state), mac, - # crypto_secretstream_xchacha20poly1305_INONCEBYTES); - $st->xorNonce($mac); - - # sodium_increment(STATE_COUNTER(state), - # crypto_secretstream_xchacha20poly1305_COUNTERBYTES); - $st->incrementCounter(); - // Overwrite by reference: - $state = $st->toString(); - - /** @var bool $rekey */ - $rekey = ($tag & ParagonIE_Sodium_Compat::CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY) !== 0; - # if ((tag & crypto_secretstream_xchacha20poly1305_TAG_REKEY) != 0 || - # sodium_is_zero(STATE_COUNTER(state), - # crypto_secretstream_xchacha20poly1305_COUNTERBYTES)) { - # crypto_secretstream_xchacha20poly1305_rekey(state); - # } - if ($rekey || $st->needsRekey()) { - // DO REKEY - self::secretstream_xchacha20poly1305_rekey($state); - } - # if (outlen_p != NULL) { - # *outlen_p = crypto_secretstream_xchacha20poly1305_ABYTES + mlen; - # } - return $out; - } - - /** - * @param string $state - * @param string $cipher - * @param string $aad - * @return bool|array{0: string, 1: int} - * @throws SodiumException - */ - public static function secretstream_xchacha20poly1305_pull(&$state, $cipher, $aad = '') - { - $st = ParagonIE_Sodium_Core32_SecretStream_State::fromString($state); - - $cipherlen = ParagonIE_Sodium_Core32_Util::strlen($cipher); - # mlen = inlen - crypto_secretstream_xchacha20poly1305_ABYTES; - $msglen = $cipherlen - ParagonIE_Sodium_Compat::CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_ABYTES; - $aadlen = ParagonIE_Sodium_Core32_Util::strlen($aad); - - # if (mlen > crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX) { - # sodium_misuse(); - # } - if ((($msglen + 63) >> 6) > 0xfffffffe) { - throw new SodiumException( - 'message cannot be larger than SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_MESSAGEBYTES_MAX bytes' - ); - } - - # crypto_stream_chacha20_ietf(block, sizeof block, state->nonce, state->k); - # crypto_onetimeauth_poly1305_init(&poly1305_state, block); - # sodium_memzero(block, sizeof block); - $auth = new ParagonIE_Sodium_Core32_Poly1305_State( - ParagonIE_Sodium_Core32_ChaCha20::ietfStream(32, $st->getCombinedNonce(), $st->getKey()) - ); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, ad, adlen); - $auth->update($aad); - - # crypto_onetimeauth_poly1305_update(&poly1305_state, _pad0, - # (0x10 - adlen) & 0xf); - $auth->update(str_repeat("\0", ((0x10 - $aadlen) & 0xf))); - - - # memset(block, 0, sizeof block); - # block[0] = in[0]; - # crypto_stream_chacha20_ietf_xor_ic(block, block, sizeof block, - # state->nonce, 1U, state->k); - $block = ParagonIE_Sodium_Core32_ChaCha20::ietfStreamXorIc( - $cipher[0] . str_repeat("\0", 63), - $st->getCombinedNonce(), - $st->getKey(), - ParagonIE_Sodium_Core32_Util::store64_le(1) - ); - # tag = block[0]; - # block[0] = in[0]; - # crypto_onetimeauth_poly1305_update(&poly1305_state, block, sizeof block); - $tag = ParagonIE_Sodium_Core32_Util::chrToInt($block[0]); - $block[0] = $cipher[0]; - $auth->update($block); - - - # c = in + (sizeof tag); - # crypto_onetimeauth_poly1305_update(&poly1305_state, c, mlen); - $auth->update(ParagonIE_Sodium_Core32_Util::substr($cipher, 1, $msglen)); - - # crypto_onetimeauth_poly1305_update - # (&poly1305_state, _pad0, (0x10 - (sizeof block) + mlen) & 0xf); - $auth->update(str_repeat("\0", ((0x10 - 64 + $msglen) & 0xf))); - - # STORE64_LE(slen, (uint64_t) adlen); - # crypto_onetimeauth_poly1305_update(&poly1305_state, slen, sizeof slen); - $slen = ParagonIE_Sodium_Core32_Util::store64_le($aadlen); - $auth->update($slen); - - # STORE64_LE(slen, (sizeof block) + mlen); - # crypto_onetimeauth_poly1305_update(&poly1305_state, slen, sizeof slen); - $slen = ParagonIE_Sodium_Core32_Util::store64_le(64 + $msglen); - $auth->update($slen); - - # crypto_onetimeauth_poly1305_final(&poly1305_state, mac); - # sodium_memzero(&poly1305_state, sizeof poly1305_state); - $mac = $auth->finish(); - - # stored_mac = c + mlen; - # if (sodium_memcmp(mac, stored_mac, sizeof mac) != 0) { - # sodium_memzero(mac, sizeof mac); - # return -1; - # } - - $stored = ParagonIE_Sodium_Core32_Util::substr($cipher, $msglen + 1, 16); - if (!ParagonIE_Sodium_Core32_Util::hashEquals($mac, $stored)) { - return false; - } - - # crypto_stream_chacha20_ietf_xor_ic(m, c, mlen, state->nonce, 2U, state->k); - $out = ParagonIE_Sodium_Core32_ChaCha20::ietfStreamXorIc( - ParagonIE_Sodium_Core32_Util::substr($cipher, 1, $msglen), - $st->getCombinedNonce(), - $st->getKey(), - ParagonIE_Sodium_Core32_Util::store64_le(2) - ); - - # XOR_BUF(STATE_INONCE(state), mac, - # crypto_secretstream_xchacha20poly1305_INONCEBYTES); - $st->xorNonce($mac); - - # sodium_increment(STATE_COUNTER(state), - # crypto_secretstream_xchacha20poly1305_COUNTERBYTES); - $st->incrementCounter(); - - # if ((tag & crypto_secretstream_xchacha20poly1305_TAG_REKEY) != 0 || - # sodium_is_zero(STATE_COUNTER(state), - # crypto_secretstream_xchacha20poly1305_COUNTERBYTES)) { - # crypto_secretstream_xchacha20poly1305_rekey(state); - # } - - // Overwrite by reference: - $state = $st->toString(); - - /** @var bool $rekey */ - $rekey = ($tag & ParagonIE_Sodium_Compat::CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY) !== 0; - if ($rekey || $st->needsRekey()) { - // DO REKEY - self::secretstream_xchacha20poly1305_rekey($state); - } - return array($out, $tag); - } - - /** - * @param string $state - * @return void - * @throws SodiumException - */ - public static function secretstream_xchacha20poly1305_rekey(&$state) - { - $st = ParagonIE_Sodium_Core32_SecretStream_State::fromString($state); - # unsigned char new_key_and_inonce[crypto_stream_chacha20_ietf_KEYBYTES + - # crypto_secretstream_xchacha20poly1305_INONCEBYTES]; - # size_t i; - # for (i = 0U; i < crypto_stream_chacha20_ietf_KEYBYTES; i++) { - # new_key_and_inonce[i] = state->k[i]; - # } - $new_key_and_inonce = $st->getKey(); - - # for (i = 0U; i < crypto_secretstream_xchacha20poly1305_INONCEBYTES; i++) { - # new_key_and_inonce[crypto_stream_chacha20_ietf_KEYBYTES + i] = - # STATE_INONCE(state)[i]; - # } - $new_key_and_inonce .= ParagonIE_Sodium_Core32_Util::substR($st->getNonce(), 0, 8); - - # crypto_stream_chacha20_ietf_xor(new_key_and_inonce, new_key_and_inonce, - # sizeof new_key_and_inonce, - # state->nonce, state->k); - - $st->rekey(ParagonIE_Sodium_Core32_ChaCha20::ietfStreamXorIc( - $new_key_and_inonce, - $st->getCombinedNonce(), - $st->getKey(), - ParagonIE_Sodium_Core32_Util::store64_le(0) - )); - - # for (i = 0U; i < crypto_stream_chacha20_ietf_KEYBYTES; i++) { - # state->k[i] = new_key_and_inonce[i]; - # } - # for (i = 0U; i < crypto_secretstream_xchacha20poly1305_INONCEBYTES; i++) { - # STATE_INONCE(state)[i] = - # new_key_and_inonce[crypto_stream_chacha20_ietf_KEYBYTES + i]; - # } - # _crypto_secretstream_xchacha20poly1305_counter_reset(state); - $st->counterReset(); - - $state = $st->toString(); - } - - /** - * Detached Ed25519 signature. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $sk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sign_detached($message, $sk) - { - return ParagonIE_Sodium_Core32_Ed25519::sign_detached($message, $sk); - } - - /** - * Attached Ed25519 signature. (Returns a signed message.) - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $message - * @param string $sk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sign($message, $sk) - { - return ParagonIE_Sodium_Core32_Ed25519::sign($message, $sk); - } - - /** - * Opens a signed message. If valid, returns the message. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $signedMessage - * @param string $pk - * @return string - * @throws SodiumException - * @throws TypeError - */ - public static function sign_open($signedMessage, $pk) - { - return ParagonIE_Sodium_Core32_Ed25519::sign_open($signedMessage, $pk); - } - - /** - * Verify a detached signature of a given message and public key. - * - * @internal Do not use this directly. Use ParagonIE_Sodium_Compat. - * - * @param string $signature - * @param string $message - * @param string $pk - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function sign_verify_detached($signature, $message, $pk) - { - return ParagonIE_Sodium_Core32_Ed25519::verify_detached($signature, $message, $pk); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/File.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/File.php deleted file mode 100644 index b4948db..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/File.php +++ /dev/null @@ -1,1565 +0,0 @@ - ParagonIE_Sodium_Compat::CRYPTO_GENERICHASH_KEYBYTES_MAX) { - throw new TypeError('Argument 2 must be at most CRYPTO_GENERICHASH_KEYBYTES_MAX bytes'); - } - } - if ($outputLength < ParagonIE_Sodium_Compat::CRYPTO_GENERICHASH_BYTES_MIN) { - throw new SodiumException('Argument 3 must be at least CRYPTO_GENERICHASH_BYTES_MIN'); - } - if ($outputLength > ParagonIE_Sodium_Compat::CRYPTO_GENERICHASH_BYTES_MAX) { - throw new SodiumException('Argument 3 must be at least CRYPTO_GENERICHASH_BYTES_MAX'); - } - - /** @var int $size */ - $size = filesize($filePath); - if (!is_int($size)) { - throw new SodiumException('Could not obtain the file size'); - } - - /** @var resource $fp */ - $fp = fopen($filePath, 'rb'); - if (!is_resource($fp)) { - throw new SodiumException('Could not open input file for reading'); - } - $ctx = ParagonIE_Sodium_Compat::crypto_generichash_init($key, $outputLength); - while ($size > 0) { - $blockSize = $size > 64 - ? 64 - : $size; - $read = fread($fp, $blockSize); - if (!is_string($read)) { - throw new SodiumException('Could not read input file'); - } - ParagonIE_Sodium_Compat::crypto_generichash_update($ctx, $read); - $size -= $blockSize; - } - - fclose($fp); - return ParagonIE_Sodium_Compat::crypto_generichash_final($ctx, $outputLength); - } - - /** - * Encrypt a file (rather than a string). Uses less memory than - * ParagonIE_Sodium_Compat::crypto_secretbox(), but produces - * the same result. - * - * @param string $inputFile Absolute path to a file on the filesystem - * @param string $outputFile Absolute path to a file on the filesystem - * @param string $nonce Number to be used only once - * @param string $key Encryption key - * - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function secretbox($inputFile, $outputFile, $nonce, $key) - { - /* Type checks: */ - if (!is_string($inputFile)) { - throw new TypeError('Argument 1 must be a string, ' . gettype($inputFile) . ' given..'); - } - if (!is_string($outputFile)) { - throw new TypeError('Argument 2 must be a string, ' . gettype($outputFile) . ' given.'); - } - if (!is_string($nonce)) { - throw new TypeError('Argument 3 must be a string, ' . gettype($nonce) . ' given.'); - } - - /* Input validation: */ - if (self::strlen($nonce) !== ParagonIE_Sodium_Compat::CRYPTO_SECRETBOX_NONCEBYTES) { - throw new TypeError('Argument 3 must be CRYPTO_SECRETBOX_NONCEBYTES bytes'); - } - if (!is_string($key)) { - throw new TypeError('Argument 4 must be a string, ' . gettype($key) . ' given.'); - } - if (self::strlen($key) !== ParagonIE_Sodium_Compat::CRYPTO_SECRETBOX_KEYBYTES) { - throw new TypeError('Argument 4 must be CRYPTO_SECRETBOX_KEYBYTES bytes'); - } - - /** @var int $size */ - $size = filesize($inputFile); - if (!is_int($size)) { - throw new SodiumException('Could not obtain the file size'); - } - - /** @var resource $ifp */ - $ifp = fopen($inputFile, 'rb'); - if (!is_resource($ifp)) { - throw new SodiumException('Could not open input file for reading'); - } - - /** @var resource $ofp */ - $ofp = fopen($outputFile, 'wb'); - if (!is_resource($ofp)) { - fclose($ifp); - throw new SodiumException('Could not open output file for writing'); - } - - $res = self::secretbox_encrypt($ifp, $ofp, $size, $nonce, $key); - fclose($ifp); - fclose($ofp); - return $res; - } - /** - * Seal a file (rather than a string). Uses less memory than - * ParagonIE_Sodium_Compat::crypto_secretbox_open(), but produces - * the same result. - * - * Warning: Does not protect against TOCTOU attacks. You should - * just load the file into memory and use crypto_secretbox_open() if - * you are worried about those. - * - * @param string $inputFile - * @param string $outputFile - * @param string $nonce - * @param string $key - * @return bool - * @throws SodiumException - * @throws TypeError - */ - public static function secretbox_open($inputFile, $outputFile, $nonce, $key) - { - /* Type checks: */ - if (!is_string($inputFile)) { - throw new TypeError('Argument 1 must be a string, ' . gettype($inputFile) . ' given.'); - } - if (!is_string($outputFile)) { - throw new TypeError('Argument 2 must be a string, ' . gettype($outputFile) . ' given.'); - } - if (!is_string($nonce)) { - throw new TypeError('Argument 3 must be a string, ' . gettype($nonce) . ' given.'); - } - if (!is_string($key)) { - throw new TypeError('Argument 4 must be a string, ' . gettype($key) . ' given.'); - } - - /* Input validation: */ - if (self::strlen($nonce) !== ParagonIE_Sodium_Compat::CRYPTO_SECRETBOX_NONCEBYTES) { - throw new TypeError('Argument 4 must be CRYPTO_SECRETBOX_NONCEBYTES bytes'); - } - if (self::strlen($key) !== ParagonIE_Sodium_Compat::CRYPTO_SECRETBOX_KEYBYTES) { - throw new TypeError('Argument 4 must be CRYPTO_SECRETBOXBOX_KEYBYTES bytes'); - } - - /** @var int $size */ - $size = filesize($inputFile); - if (!is_int($size)) { - throw new SodiumException('Could not obtain the file size'); - } - - /** @var resource $ifp */ - $ifp = fopen($inputFile, 'rb'); - if (!is_resource($ifp)) { - throw new SodiumException('Could not open input file for reading'); - } - - /** @var resource $ofp */ - $ofp = fopen($outputFile, 'wb'); - if (!is_resource($ofp)) { - fclose($ifp); - throw new SodiumException('Could not open output file for writing'); - } - - $res = self::secretbox_decrypt($ifp, $ofp, $size, $nonce, $key); - fclose($ifp); - fclose($ofp); - try { - ParagonIE_Sodium_Compat::memzero($key); - } catch (SodiumException $ex) { - unset($key); - } - return $res; - } - - /** - * Sign a file (rather than a string). Uses less memory than - * ParagonIE_Sodium_Compat::crypto_sign_detached(), but produces - * the same result. - * - * @param string $filePath Absolute path to a file on the filesystem - * @param string $secretKey Secret signing key - * - * @return string Ed25519 signature - * @throws SodiumException - * @throws TypeError - */ - public static function sign($filePath, $secretKey) - { - /* Type checks: */ - if (!is_string($filePath)) { - throw new TypeError('Argument 1 must be a string, ' . gettype($filePath) . ' given.'); - } - if (!is_string($secretKey)) { - throw new TypeError('Argument 2 must be a string, ' . gettype($secretKey) . ' given.'); - } - - /* Input validation: */ - if (self::strlen($secretKey) !== ParagonIE_Sodium_Compat::CRYPTO_SIGN_SECRETKEYBYTES) { - throw new TypeError('Argument 2 must be CRYPTO_SIGN_SECRETKEYBYTES bytes'); - } - if (PHP_INT_SIZE === 4) { - return self::sign_core32($filePath, $secretKey); - } - - /** @var int $size */ - $size = filesize($filePath); - if (!is_int($size)) { - throw new SodiumException('Could not obtain the file size'); - } - - /** @var resource $fp */ - $fp = fopen($filePath, 'rb'); - if (!is_resource($fp)) { - throw new SodiumException('Could not open input file for reading'); - } - - /** @var string $az */ - $az = hash('sha512', self::substr($secretKey, 0, 32), true); - - $az[0] = self::intToChr(self::chrToInt($az[0]) & 248); - $az[31] = self::intToChr((self::chrToInt($az[31]) & 63) | 64); - - $hs = hash_init('sha512'); - hash_update($hs, self::substr($az, 32, 32)); - /** @var resource $hs */ - $hs = self::updateHashWithFile($hs, $fp, $size); - - /** @var string $nonceHash */ - $nonceHash = hash_final($hs, true); - - /** @var string $pk */ - $pk = self::substr($secretKey, 32, 32); - - /** @var string $nonce */ - $nonce = ParagonIE_Sodium_Core_Ed25519::sc_reduce($nonceHash) . self::substr($nonceHash, 32); - - /** @var string $sig */ - $sig = ParagonIE_Sodium_Core_Ed25519::ge_p3_tobytes( - ParagonIE_Sodium_Core_Ed25519::ge_scalarmult_base($nonce) - ); - - $hs = hash_init('sha512'); - hash_update($hs, self::substr($sig, 0, 32)); - hash_update($hs, self::substr($pk, 0, 32)); - /** @var resource $hs */ - $hs = self::updateHashWithFile($hs, $fp, $size); - - /** @var string $hramHash */ - $hramHash = hash_final($hs, true); - - /** @var string $hram */ - $hram = ParagonIE_Sodium_Core_Ed25519::sc_reduce($hramHash); - - /** @var string $sigAfter */ - $sigAfter = ParagonIE_Sodium_Core_Ed25519::sc_muladd($hram, $az, $nonce); - - /** @var string $sig */ - $sig = self::substr($sig, 0, 32) . self::substr($sigAfter, 0, 32); - - try { - ParagonIE_Sodium_Compat::memzero($az); - } catch (SodiumException $ex) { - $az = null; - } - fclose($fp); - return $sig; - } - - /** - * Verify a file (rather than a string). Uses less memory than - * ParagonIE_Sodium_Compat::crypto_sign_verify_detached(), but - * produces the same result. - * - * @param string $sig Ed25519 signature - * @param string $filePath Absolute path to a file on the filesystem - * @param string $publicKey Signing public key - * - * @return bool - * @throws SodiumException - * @throws TypeError - * @throws Exception - */ - public static function verify($sig, $filePath, $publicKey) - { - /* Type checks: */ - if (!is_string($sig)) { - throw new TypeError('Argument 1 must be a string, ' . gettype($sig) . ' given.'); - } - if (!is_string($filePath)) { - throw new TypeError('Argument 2 must be a string, ' . gettype($filePath) . ' given.'); - } - if (!is_string($publicKey)) { - throw new TypeError('Argument 3 must be a string, ' . gettype($publicKey) . ' given.'); - } - - /* Input validation: */ - if (self::strlen($sig) !== ParagonIE_Sodium_Compat::CRYPTO_SIGN_BYTES) { - throw new TypeError('Argument 1 must be CRYPTO_SIGN_BYTES bytes'); - } - if (self::strlen($publicKey) !== ParagonIE_Sodium_Compat::CRYPTO_SIGN_PUBLICKEYBYTES) { - throw new TypeError('Argument 3 must be CRYPTO_SIGN_PUBLICKEYBYTES bytes'); - } - if (self::strlen($sig) < 64) { - throw new SodiumException('Signature is too short'); - } - - if (PHP_INT_SIZE === 4) { - return self::verify_core32($sig, $filePath, $publicKey); - } - - /* Security checks */ - if ( - (ParagonIE_Sodium_Core_Ed25519::chrToInt($sig[63]) & 240) - && - ParagonIE_Sodium_Core_Ed25519::check_S_lt_L(self::substr($sig, 32, 32)) - ) { - throw new SodiumException('S < L - Invalid signature'); - } - if (ParagonIE_Sodium_Core_Ed25519::small_order($sig)) { - throw new SodiumException('Signature is on too small of an order'); - } - if ((self::chrToInt($sig[63]) & 224) !== 0) { - throw new SodiumException('Invalid signature'); - } - $d = 0; - for ($i = 0; $i < 32; ++$i) { - $d |= self::chrToInt($publicKey[$i]); - } - if ($d === 0) { - throw new SodiumException('All zero public key'); - } - - /** @var int $size */ - $size = filesize($filePath); - if (!is_int($size)) { - throw new SodiumException('Could not obtain the file size'); - } - - /** @var resource $fp */ - $fp = fopen($filePath, 'rb'); - if (!is_resource($fp)) { - throw new SodiumException('Could not open input file for reading'); - } - - /** @var bool The original value of ParagonIE_Sodium_Compat::$fastMult */ - $orig = ParagonIE_Sodium_Compat::$fastMult; - - // Set ParagonIE_Sodium_Compat::$fastMult to true to speed up verification. - ParagonIE_Sodium_Compat::$fastMult = true; - - /** @var ParagonIE_Sodium_Core_Curve25519_Ge_P3 $A */ - $A = ParagonIE_Sodium_Core_Ed25519::ge_frombytes_negate_vartime($publicKey); - - $hs = hash_init('sha512'); - hash_update($hs, self::substr($sig, 0, 32)); - hash_update($hs, self::substr($publicKey, 0, 32)); - /** @var resource $hs */ - $hs = self::updateHashWithFile($hs, $fp, $size); - /** @var string $hDigest */ - $hDigest = hash_final($hs, true); - - /** @var string $h */ - $h = ParagonIE_Sodium_Core_Ed25519::sc_reduce($hDigest) . self::substr($hDigest, 32); - - /** @var ParagonIE_Sodium_Core_Curve25519_Ge_P2 $R */ - $R = ParagonIE_Sodium_Core_Ed25519::ge_double_scalarmult_vartime( - $h, - $A, - self::substr($sig, 32) - ); - - /** @var string $rcheck */ - $rcheck = ParagonIE_Sodium_Core_Ed25519::ge_tobytes($R); - - // Close the file handle - fclose($fp); - - // Reset ParagonIE_Sodium_Compat::$fastMult to what it was before. - ParagonIE_Sodium_Compat::$fastMult = $orig; - return self::verify_32($rcheck, self::substr($sig, 0, 32)); - } - - /** - * @param resource $ifp - * @param resource $ofp - * @param int $mlen - * @param string $nonce - * @param string $boxKeypair - * @return bool - * @throws SodiumException - * @throws TypeError - */ - protected static function box_encrypt($ifp, $ofp, $mlen, $nonce, $boxKeypair) - { - if (PHP_INT_SIZE === 4) { - return self::secretbox_encrypt( - $ifp, - $ofp, - $mlen, - $nonce, - ParagonIE_Sodium_Crypto32::box_beforenm( - ParagonIE_Sodium_Crypto32::box_secretkey($boxKeypair), - ParagonIE_Sodium_Crypto32::box_publickey($boxKeypair) - ) - ); - } - return self::secretbox_encrypt( - $ifp, - $ofp, - $mlen, - $nonce, - ParagonIE_Sodium_Crypto::box_beforenm( - ParagonIE_Sodium_Crypto::box_secretkey($boxKeypair), - ParagonIE_Sodium_Crypto::box_publickey($boxKeypair) - ) - ); - } - - - /** - * @param resource $ifp - * @param resource $ofp - * @param int $mlen - * @param string $nonce - * @param string $boxKeypair - * @return bool - * @throws SodiumException - * @throws TypeError - */ - protected static function box_decrypt($ifp, $ofp, $mlen, $nonce, $boxKeypair) - { - if (PHP_INT_SIZE === 4) { - return self::secretbox_decrypt( - $ifp, - $ofp, - $mlen, - $nonce, - ParagonIE_Sodium_Crypto32::box_beforenm( - ParagonIE_Sodium_Crypto32::box_secretkey($boxKeypair), - ParagonIE_Sodium_Crypto32::box_publickey($boxKeypair) - ) - ); - } - return self::secretbox_decrypt( - $ifp, - $ofp, - $mlen, - $nonce, - ParagonIE_Sodium_Crypto::box_beforenm( - ParagonIE_Sodium_Crypto::box_secretkey($boxKeypair), - ParagonIE_Sodium_Crypto::box_publickey($boxKeypair) - ) - ); - } - - /** - * Encrypt a file - * - * @param resource $ifp - * @param resource $ofp - * @param int $mlen - * @param string $nonce - * @param string $key - * @return bool - * @throws SodiumException - * @throws TypeError - */ - protected static function secretbox_encrypt($ifp, $ofp, $mlen, $nonce, $key) - { - if (PHP_INT_SIZE === 4) { - return self::secretbox_encrypt_core32($ifp, $ofp, $mlen, $nonce, $key); - } - - $plaintext = fread($ifp, 32); - if (!is_string($plaintext)) { - throw new SodiumException('Could not read input file'); - } - $first32 = self::ftell($ifp); - - /** @var string $subkey */ - $subkey = ParagonIE_Sodium_Core_HSalsa20::hsalsa20($nonce, $key); - - /** @var string $realNonce */ - $realNonce = ParagonIE_Sodium_Core_Util::substr($nonce, 16, 8); - - /** @var string $block0 */ - $block0 = str_repeat("\x00", 32); - - /** @var int $mlen - Length of the plaintext message */ - $mlen0 = $mlen; - if ($mlen0 > 64 - ParagonIE_Sodium_Crypto::secretbox_xsalsa20poly1305_ZEROBYTES) { - $mlen0 = 64 - ParagonIE_Sodium_Crypto::secretbox_xsalsa20poly1305_ZEROBYTES; - } - $block0 .= ParagonIE_Sodium_Core_Util::substr($plaintext, 0, $mlen0); - - /** @var string $block0 */ - $block0 = ParagonIE_Sodium_Core_Salsa20::salsa20_xor( - $block0, - $realNonce, - $subkey - ); - - $state = new ParagonIE_Sodium_Core_Poly1305_State( - ParagonIE_Sodium_Core_Util::substr( - $block0, - 0, - ParagonIE_Sodium_Crypto::onetimeauth_poly1305_KEYBYTES - ) - ); - - // Pre-write 16 blank bytes for the Poly1305 tag - $start = self::ftell($ofp); - fwrite($ofp, str_repeat("\x00", 16)); - - /** @var string $c */ - $cBlock = ParagonIE_Sodium_Core_Util::substr( - $block0, - ParagonIE_Sodium_Crypto::secretbox_xsalsa20poly1305_ZEROBYTES - ); - $state->update($cBlock); - fwrite($ofp, $cBlock); - $mlen -= 32; - - /** @var int $iter */ - $iter = 1; - - /** @var int $incr */ - $incr = self::BUFFER_SIZE >> 6; - - /* - * Set the cursor to the end of the first half-block. All future bytes will - * generated from salsa20_xor_ic, starting from 1 (second block). - */ - fseek($ifp, $first32, SEEK_SET); - - while ($mlen > 0) { - $blockSize = $mlen > self::BUFFER_SIZE - ? self::BUFFER_SIZE - : $mlen; - $plaintext = fread($ifp, $blockSize); - if (!is_string($plaintext)) { - throw new SodiumException('Could not read input file'); - } - $cBlock = ParagonIE_Sodium_Core_Salsa20::salsa20_xor_ic( - $plaintext, - $realNonce, - $iter, - $subkey - ); - fwrite($ofp, $cBlock, $blockSize); - $state->update($cBlock); - - $mlen -= $blockSize; - $iter += $incr; - } - try { - ParagonIE_Sodium_Compat::memzero($block0); - ParagonIE_Sodium_Compat::memzero($subkey); - } catch (SodiumException $ex) { - $block0 = null; - $subkey = null; - } - $end = self::ftell($ofp); - - /* - * Write the Poly1305 authentication tag that provides integrity - * over the ciphertext (encrypt-then-MAC) - */ - fseek($ofp, $start, SEEK_SET); - fwrite($ofp, $state->finish(), ParagonIE_Sodium_Compat::CRYPTO_SECRETBOX_MACBYTES); - fseek($ofp, $end, SEEK_SET); - unset($state); - - return true; - } - - /** - * Decrypt a file - * - * @param resource $ifp - * @param resource $ofp - * @param int $mlen - * @param string $nonce - * @param string $key - * @return bool - * @throws SodiumException - * @throws TypeError - */ - protected static function secretbox_decrypt($ifp, $ofp, $mlen, $nonce, $key) - { - if (PHP_INT_SIZE === 4) { - return self::secretbox_decrypt_core32($ifp, $ofp, $mlen, $nonce, $key); - } - $tag = fread($ifp, 16); - if (!is_string($tag)) { - throw new SodiumException('Could not read input file'); - } - - /** @var string $subkey */ - $subkey = ParagonIE_Sodium_Core_HSalsa20::hsalsa20($nonce, $key); - - /** @var string $realNonce */ - $realNonce = ParagonIE_Sodium_Core_Util::substr($nonce, 16, 8); - - /** @var string $block0 */ - $block0 = ParagonIE_Sodium_Core_Salsa20::salsa20( - 64, - ParagonIE_Sodium_Core_Util::substr($nonce, 16, 8), - $subkey - ); - - /* Verify the Poly1305 MAC -before- attempting to decrypt! */ - $state = new ParagonIE_Sodium_Core_Poly1305_State(self::substr($block0, 0, 32)); - if (!self::onetimeauth_verify($state, $ifp, $tag, $mlen)) { - throw new SodiumException('Invalid MAC'); - } - - /* - * Set the cursor to the end of the first half-block. All future bytes will - * generated from salsa20_xor_ic, starting from 1 (second block). - */ - $first32 = fread($ifp, 32); - if (!is_string($first32)) { - throw new SodiumException('Could not read input file'); - } - $first32len = self::strlen($first32); - fwrite( - $ofp, - self::xorStrings( - self::substr($block0, 32, $first32len), - self::substr($first32, 0, $first32len) - ) - ); - $mlen -= 32; - - /** @var int $iter */ - $iter = 1; - - /** @var int $incr */ - $incr = self::BUFFER_SIZE >> 6; - - /* Decrypts ciphertext, writes to output file. */ - while ($mlen > 0) { - $blockSize = $mlen > self::BUFFER_SIZE - ? self::BUFFER_SIZE - : $mlen; - $ciphertext = fread($ifp, $blockSize); - if (!is_string($ciphertext)) { - throw new SodiumException('Could not read input file'); - } - $pBlock = ParagonIE_Sodium_Core_Salsa20::salsa20_xor_ic( - $ciphertext, - $realNonce, - $iter, - $subkey - ); - fwrite($ofp, $pBlock, $blockSize); - $mlen -= $blockSize; - $iter += $incr; - } - return true; - } - - /** - * @param ParagonIE_Sodium_Core_Poly1305_State $state - * @param resource $ifp - * @param string $tag - * @param int $mlen - * @return bool - * @throws SodiumException - * @throws TypeError - */ - protected static function onetimeauth_verify( - ParagonIE_Sodium_Core_Poly1305_State $state, - $ifp, - $tag = '', - $mlen = 0 - ) { - /** @var int $pos */ - $pos = self::ftell($ifp); - - /** @var int $iter */ - $iter = 1; - - /** @var int $incr */ - $incr = self::BUFFER_SIZE >> 6; - - while ($mlen > 0) { - $blockSize = $mlen > self::BUFFER_SIZE - ? self::BUFFER_SIZE - : $mlen; - $ciphertext = fread($ifp, $blockSize); - if (!is_string($ciphertext)) { - throw new SodiumException('Could not read input file'); - } - $state->update($ciphertext); - $mlen -= $blockSize; - $iter += $incr; - } - $res = ParagonIE_Sodium_Core_Util::verify_16($tag, $state->finish()); - - fseek($ifp, $pos, SEEK_SET); - return $res; - } - - /** - * Update a hash context with the contents of a file, without - * loading the entire file into memory. - * - * @param resource|object $hash - * @param resource $fp - * @param int $size - * @return resource|object Resource on PHP < 7.2, HashContext object on PHP >= 7.2 - * @throws SodiumException - * @throws TypeError - * @psalm-suppress PossiblyInvalidArgument - * PHP 7.2 changes from a resource to an object, - * which causes Psalm to complain about an error. - * @psalm-suppress TypeCoercion - * Ditto. - */ - public static function updateHashWithFile($hash, $fp, $size = 0) - { - /* Type checks: */ - if (PHP_VERSION_ID < 70200) { - if (!is_resource($hash)) { - throw new TypeError('Argument 1 must be a resource, ' . gettype($hash) . ' given.'); - } - } else { - if (!is_object($hash)) { - throw new TypeError('Argument 1 must be an object (PHP 7.2+), ' . gettype($hash) . ' given.'); - } - } - - if (!is_resource($fp)) { - throw new TypeError('Argument 2 must be a resource, ' . gettype($fp) . ' given.'); - } - if (!is_int($size)) { - throw new TypeError('Argument 3 must be an integer, ' . gettype($size) . ' given.'); - } - - /** @var int $originalPosition */ - $originalPosition = self::ftell($fp); - - // Move file pointer to beginning of file - fseek($fp, 0, SEEK_SET); - for ($i = 0; $i < $size; $i += self::BUFFER_SIZE) { - /** @var string|bool $message */ - $message = fread( - $fp, - ($size - $i) > self::BUFFER_SIZE - ? $size - $i - : self::BUFFER_SIZE - ); - if (!is_string($message)) { - throw new SodiumException('Unexpected error reading from file.'); - } - /** @var string $message */ - /** @psalm-suppress InvalidArgument */ - hash_update($hash, $message); - } - // Reset file pointer's position - fseek($fp, $originalPosition, SEEK_SET); - return $hash; - } - - /** - * Sign a file (rather than a string). Uses less memory than - * ParagonIE_Sodium_Compat::crypto_sign_detached(), but produces - * the same result. (32-bit) - * - * @param string $filePath Absolute path to a file on the filesystem - * @param string $secretKey Secret signing key - * - * @return string Ed25519 signature - * @throws SodiumException - * @throws TypeError - */ - private static function sign_core32($filePath, $secretKey) - { - /** @var int|bool $size */ - $size = filesize($filePath); - if (!is_int($size)) { - throw new SodiumException('Could not obtain the file size'); - } - /** @var int $size */ - - /** @var resource|bool $fp */ - $fp = fopen($filePath, 'rb'); - if (!is_resource($fp)) { - throw new SodiumException('Could not open input file for reading'); - } - /** @var resource $fp */ - - /** @var string $az */ - $az = hash('sha512', self::substr($secretKey, 0, 32), true); - - $az[0] = self::intToChr(self::chrToInt($az[0]) & 248); - $az[31] = self::intToChr((self::chrToInt($az[31]) & 63) | 64); - - $hs = hash_init('sha512'); - hash_update($hs, self::substr($az, 32, 32)); - /** @var resource $hs */ - $hs = self::updateHashWithFile($hs, $fp, $size); - - /** @var string $nonceHash */ - $nonceHash = hash_final($hs, true); - - /** @var string $pk */ - $pk = self::substr($secretKey, 32, 32); - - /** @var string $nonce */ - $nonce = ParagonIE_Sodium_Core32_Ed25519::sc_reduce($nonceHash) . self::substr($nonceHash, 32); - - /** @var string $sig */ - $sig = ParagonIE_Sodium_Core32_Ed25519::ge_p3_tobytes( - ParagonIE_Sodium_Core32_Ed25519::ge_scalarmult_base($nonce) - ); - - $hs = hash_init('sha512'); - hash_update($hs, self::substr($sig, 0, 32)); - hash_update($hs, self::substr($pk, 0, 32)); - /** @var resource $hs */ - $hs = self::updateHashWithFile($hs, $fp, $size); - - /** @var string $hramHash */ - $hramHash = hash_final($hs, true); - - /** @var string $hram */ - $hram = ParagonIE_Sodium_Core32_Ed25519::sc_reduce($hramHash); - - /** @var string $sigAfter */ - $sigAfter = ParagonIE_Sodium_Core32_Ed25519::sc_muladd($hram, $az, $nonce); - - /** @var string $sig */ - $sig = self::substr($sig, 0, 32) . self::substr($sigAfter, 0, 32); - - try { - ParagonIE_Sodium_Compat::memzero($az); - } catch (SodiumException $ex) { - $az = null; - } - fclose($fp); - return $sig; - } - - /** - * - * Verify a file (rather than a string). Uses less memory than - * ParagonIE_Sodium_Compat::crypto_sign_verify_detached(), but - * produces the same result. (32-bit) - * - * @param string $sig Ed25519 signature - * @param string $filePath Absolute path to a file on the filesystem - * @param string $publicKey Signing public key - * - * @return bool - * @throws SodiumException - * @throws Exception - */ - public static function verify_core32($sig, $filePath, $publicKey) - { - /* Security checks */ - if (ParagonIE_Sodium_Core32_Ed25519::check_S_lt_L(self::substr($sig, 32, 32))) { - throw new SodiumException('S < L - Invalid signature'); - } - if (ParagonIE_Sodium_Core32_Ed25519::small_order($sig)) { - throw new SodiumException('Signature is on too small of an order'); - } - if ((self::chrToInt($sig[63]) & 224) !== 0) { - throw new SodiumException('Invalid signature'); - } - $d = 0; - for ($i = 0; $i < 32; ++$i) { - $d |= self::chrToInt($publicKey[$i]); - } - if ($d === 0) { - throw new SodiumException('All zero public key'); - } - - /** @var int|bool $size */ - $size = filesize($filePath); - if (!is_int($size)) { - throw new SodiumException('Could not obtain the file size'); - } - /** @var int $size */ - - /** @var resource|bool $fp */ - $fp = fopen($filePath, 'rb'); - if (!is_resource($fp)) { - throw new SodiumException('Could not open input file for reading'); - } - /** @var resource $fp */ - - /** @var bool The original value of ParagonIE_Sodium_Compat::$fastMult */ - $orig = ParagonIE_Sodium_Compat::$fastMult; - - // Set ParagonIE_Sodium_Compat::$fastMult to true to speed up verification. - ParagonIE_Sodium_Compat::$fastMult = true; - - /** @var ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $A */ - $A = ParagonIE_Sodium_Core32_Ed25519::ge_frombytes_negate_vartime($publicKey); - - $hs = hash_init('sha512'); - hash_update($hs, self::substr($sig, 0, 32)); - hash_update($hs, self::substr($publicKey, 0, 32)); - /** @var resource $hs */ - $hs = self::updateHashWithFile($hs, $fp, $size); - /** @var string $hDigest */ - $hDigest = hash_final($hs, true); - - /** @var string $h */ - $h = ParagonIE_Sodium_Core32_Ed25519::sc_reduce($hDigest) . self::substr($hDigest, 32); - - /** @var ParagonIE_Sodium_Core32_Curve25519_Ge_P2 $R */ - $R = ParagonIE_Sodium_Core32_Ed25519::ge_double_scalarmult_vartime( - $h, - $A, - self::substr($sig, 32) - ); - - /** @var string $rcheck */ - $rcheck = ParagonIE_Sodium_Core32_Ed25519::ge_tobytes($R); - - // Close the file handle - fclose($fp); - - // Reset ParagonIE_Sodium_Compat::$fastMult to what it was before. - ParagonIE_Sodium_Compat::$fastMult = $orig; - return self::verify_32($rcheck, self::substr($sig, 0, 32)); - } - - /** - * Encrypt a file (32-bit) - * - * @param resource $ifp - * @param resource $ofp - * @param int $mlen - * @param string $nonce - * @param string $key - * @return bool - * @throws SodiumException - * @throws TypeError - */ - protected static function secretbox_encrypt_core32($ifp, $ofp, $mlen, $nonce, $key) - { - $plaintext = fread($ifp, 32); - if (!is_string($plaintext)) { - throw new SodiumException('Could not read input file'); - } - $first32 = self::ftell($ifp); - - /** @var string $subkey */ - $subkey = ParagonIE_Sodium_Core32_HSalsa20::hsalsa20($nonce, $key); - - /** @var string $realNonce */ - $realNonce = ParagonIE_Sodium_Core32_Util::substr($nonce, 16, 8); - - /** @var string $block0 */ - $block0 = str_repeat("\x00", 32); - - /** @var int $mlen - Length of the plaintext message */ - $mlen0 = $mlen; - if ($mlen0 > 64 - ParagonIE_Sodium_Crypto::secretbox_xsalsa20poly1305_ZEROBYTES) { - $mlen0 = 64 - ParagonIE_Sodium_Crypto::secretbox_xsalsa20poly1305_ZEROBYTES; - } - $block0 .= ParagonIE_Sodium_Core32_Util::substr($plaintext, 0, $mlen0); - - /** @var string $block0 */ - $block0 = ParagonIE_Sodium_Core32_Salsa20::salsa20_xor( - $block0, - $realNonce, - $subkey - ); - - $state = new ParagonIE_Sodium_Core32_Poly1305_State( - ParagonIE_Sodium_Core32_Util::substr( - $block0, - 0, - ParagonIE_Sodium_Crypto::onetimeauth_poly1305_KEYBYTES - ) - ); - - // Pre-write 16 blank bytes for the Poly1305 tag - $start = self::ftell($ofp); - fwrite($ofp, str_repeat("\x00", 16)); - - /** @var string $c */ - $cBlock = ParagonIE_Sodium_Core32_Util::substr( - $block0, - ParagonIE_Sodium_Crypto::secretbox_xsalsa20poly1305_ZEROBYTES - ); - $state->update($cBlock); - fwrite($ofp, $cBlock); - $mlen -= 32; - - /** @var int $iter */ - $iter = 1; - - /** @var int $incr */ - $incr = self::BUFFER_SIZE >> 6; - - /* - * Set the cursor to the end of the first half-block. All future bytes will - * generated from salsa20_xor_ic, starting from 1 (second block). - */ - fseek($ifp, $first32, SEEK_SET); - - while ($mlen > 0) { - $blockSize = $mlen > self::BUFFER_SIZE - ? self::BUFFER_SIZE - : $mlen; - $plaintext = fread($ifp, $blockSize); - if (!is_string($plaintext)) { - throw new SodiumException('Could not read input file'); - } - $cBlock = ParagonIE_Sodium_Core32_Salsa20::salsa20_xor_ic( - $plaintext, - $realNonce, - $iter, - $subkey - ); - fwrite($ofp, $cBlock, $blockSize); - $state->update($cBlock); - - $mlen -= $blockSize; - $iter += $incr; - } - try { - ParagonIE_Sodium_Compat::memzero($block0); - ParagonIE_Sodium_Compat::memzero($subkey); - } catch (SodiumException $ex) { - $block0 = null; - $subkey = null; - } - $end = self::ftell($ofp); - - /* - * Write the Poly1305 authentication tag that provides integrity - * over the ciphertext (encrypt-then-MAC) - */ - fseek($ofp, $start, SEEK_SET); - fwrite($ofp, $state->finish(), ParagonIE_Sodium_Compat::CRYPTO_SECRETBOX_MACBYTES); - fseek($ofp, $end, SEEK_SET); - unset($state); - - return true; - } - - /** - * Decrypt a file (32-bit) - * - * @param resource $ifp - * @param resource $ofp - * @param int $mlen - * @param string $nonce - * @param string $key - * @return bool - * @throws SodiumException - * @throws TypeError - */ - protected static function secretbox_decrypt_core32($ifp, $ofp, $mlen, $nonce, $key) - { - $tag = fread($ifp, 16); - if (!is_string($tag)) { - throw new SodiumException('Could not read input file'); - } - - /** @var string $subkey */ - $subkey = ParagonIE_Sodium_Core32_HSalsa20::hsalsa20($nonce, $key); - - /** @var string $realNonce */ - $realNonce = ParagonIE_Sodium_Core32_Util::substr($nonce, 16, 8); - - /** @var string $block0 */ - $block0 = ParagonIE_Sodium_Core32_Salsa20::salsa20( - 64, - ParagonIE_Sodium_Core32_Util::substr($nonce, 16, 8), - $subkey - ); - - /* Verify the Poly1305 MAC -before- attempting to decrypt! */ - $state = new ParagonIE_Sodium_Core32_Poly1305_State(self::substr($block0, 0, 32)); - if (!self::onetimeauth_verify_core32($state, $ifp, $tag, $mlen)) { - throw new SodiumException('Invalid MAC'); - } - - /* - * Set the cursor to the end of the first half-block. All future bytes will - * generated from salsa20_xor_ic, starting from 1 (second block). - */ - $first32 = fread($ifp, 32); - if (!is_string($first32)) { - throw new SodiumException('Could not read input file'); - } - $first32len = self::strlen($first32); - fwrite( - $ofp, - self::xorStrings( - self::substr($block0, 32, $first32len), - self::substr($first32, 0, $first32len) - ) - ); - $mlen -= 32; - - /** @var int $iter */ - $iter = 1; - - /** @var int $incr */ - $incr = self::BUFFER_SIZE >> 6; - - /* Decrypts ciphertext, writes to output file. */ - while ($mlen > 0) { - $blockSize = $mlen > self::BUFFER_SIZE - ? self::BUFFER_SIZE - : $mlen; - $ciphertext = fread($ifp, $blockSize); - if (!is_string($ciphertext)) { - throw new SodiumException('Could not read input file'); - } - $pBlock = ParagonIE_Sodium_Core32_Salsa20::salsa20_xor_ic( - $ciphertext, - $realNonce, - $iter, - $subkey - ); - fwrite($ofp, $pBlock, $blockSize); - $mlen -= $blockSize; - $iter += $incr; - } - return true; - } - - /** - * One-time message authentication for 32-bit systems - * - * @param ParagonIE_Sodium_Core32_Poly1305_State $state - * @param resource $ifp - * @param string $tag - * @param int $mlen - * @return bool - * @throws SodiumException - * @throws TypeError - */ - protected static function onetimeauth_verify_core32( - ParagonIE_Sodium_Core32_Poly1305_State $state, - $ifp, - $tag = '', - $mlen = 0 - ) { - /** @var int $pos */ - $pos = self::ftell($ifp); - - /** @var int $iter */ - $iter = 1; - - /** @var int $incr */ - $incr = self::BUFFER_SIZE >> 6; - - while ($mlen > 0) { - $blockSize = $mlen > self::BUFFER_SIZE - ? self::BUFFER_SIZE - : $mlen; - $ciphertext = fread($ifp, $blockSize); - if (!is_string($ciphertext)) { - throw new SodiumException('Could not read input file'); - } - $state->update($ciphertext); - $mlen -= $blockSize; - $iter += $incr; - } - $res = ParagonIE_Sodium_Core32_Util::verify_16($tag, $state->finish()); - - fseek($ifp, $pos, SEEK_SET); - return $res; - } - - /** - * @param resource $resource - * @return int - * @throws SodiumException - */ - private static function ftell($resource) - { - $return = ftell($resource); - if (!is_int($return)) { - throw new SodiumException('ftell() returned false'); - } - return (int) $return; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/PHP52/SplFixedArray.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/PHP52/SplFixedArray.php deleted file mode 100644 index 9279f60..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/PHP52/SplFixedArray.php +++ /dev/null @@ -1,187 +0,0 @@ - */ - private $internalArray = array(); - - /** @var int $size */ - private $size = 0; - - /** - * SplFixedArray constructor. - * @param int $size - */ - public function __construct($size = 0) - { - $this->size = $size; - $this->internalArray = array(); - } - - /** - * @return int - */ - public function count() - { - return count($this->internalArray); - } - - /** - * @return array - */ - public function toArray() - { - ksort($this->internalArray); - return (array) $this->internalArray; - } - - /** - * @param array $array - * @param bool $save_indexes - * @return SplFixedArray - * @psalm-suppress MixedAssignment - */ - public static function fromArray(array $array, $save_indexes = true) - { - $self = new SplFixedArray(count($array)); - if($save_indexes) { - foreach($array as $key => $value) { - $self[(int) $key] = $value; - } - } else { - $i = 0; - foreach (array_values($array) as $value) { - $self[$i] = $value; - $i++; - } - } - return $self; - } - - /** - * @return int - */ - public function getSize() - { - return $this->size; - } - - /** - * @param int $size - * @return bool - */ - public function setSize($size) - { - $this->size = $size; - return true; - } - - /** - * @param string|int $index - * @return bool - */ - public function offsetExists($index) - { - return array_key_exists((int) $index, $this->internalArray); - } - - /** - * @param string|int $index - * @return mixed - */ - public function offsetGet($index) - { - return $this->internalArray[(int) $index]; - } - - /** - * @param string|int $index - * @param mixed $newval - * @psalm-suppress MixedAssignment - */ - public function offsetSet($index, $newval) - { - $this->internalArray[(int) $index] = $newval; - } - - /** - * @param string|int $index - */ - public function offsetUnset($index) - { - unset($this->internalArray[(int) $index]); - } - - /** - * Rewind iterator back to the start - * @link https://php.net/manual/en/splfixedarray.rewind.php - * @return void - * @since 5.3.0 - */ - public function rewind() - { - reset($this->internalArray); - } - - /** - * Return current array entry - * @link https://php.net/manual/en/splfixedarray.current.php - * @return mixed The current element value. - * @since 5.3.0 - */ - public function current() - { - return current($this->internalArray); - } - - /** - * Return current array index - * @return int The current array index. - */ - public function key() - { - return key($this->internalArray); - } - - /** - * @return void - */ - public function next() - { - next($this->internalArray); - } - - /** - * Check whether the array contains more elements - * @link https://php.net/manual/en/splfixedarray.valid.php - * @return bool true if the array contains any more elements, false otherwise. - */ - public function valid() - { - if (empty($this->internalArray)) { - return false; - } - $result = next($this->internalArray) !== false; - prev($this->internalArray); - return $result; - } - - /** - * Do nothing. - */ - public function __wakeup() - { - // NOP - } -} \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/SodiumException.php b/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/SodiumException.php deleted file mode 100644 index a3176d7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/paragonie/sodium_compat/src/SodiumException.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Content-Type', - 'CONTENT_LENGTH' => 'Content-Length', - 'CONTENT_MD5' => 'Content-Md5', - ); - - foreach ($_SERVER as $key => $value) { - if (substr($key, 0, 5) === 'HTTP_') { - $key = substr($key, 5); - if (!isset($copy_server[$key]) || !isset($_SERVER[$key])) { - $key = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', $key)))); - $headers[$key] = $value; - } - } elseif (isset($copy_server[$key])) { - $headers[$copy_server[$key]] = $value; - } - } - - if (!isset($headers['Authorization'])) { - if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) { - $headers['Authorization'] = $_SERVER['REDIRECT_HTTP_AUTHORIZATION']; - } elseif (isset($_SERVER['PHP_AUTH_USER'])) { - $basic_pass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : ''; - $headers['Authorization'] = 'Basic ' . base64_encode($_SERVER['PHP_AUTH_USER'] . ':' . $basic_pass); - } elseif (isset($_SERVER['PHP_AUTH_DIGEST'])) { - $headers['Authorization'] = $_SERVER['PHP_AUTH_DIGEST']; - } - } - - return $headers; - } - -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/action-scheduler.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/action-scheduler.php deleted file mode 100644 index 53e9cab..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/action-scheduler.php +++ /dev/null @@ -1,53 +0,0 @@ -. - * - */ - -if ( ! function_exists( 'action_scheduler_register_3_dot_1_dot_6' ) ) { - - if ( ! class_exists( 'ActionScheduler_Versions' ) ) { - require_once( 'classes/ActionScheduler_Versions.php' ); - add_action( 'plugins_loaded', array( 'ActionScheduler_Versions', 'initialize_latest_version' ), 1, 0 ); - } - - add_action( 'plugins_loaded', 'action_scheduler_register_3_dot_1_dot_6', 0, 0 ); - - function action_scheduler_register_3_dot_1_dot_6() { - $versions = ActionScheduler_Versions::instance(); - $versions->register( '3.1.6', 'action_scheduler_initialize_3_dot_1_dot_6' ); - } - - function action_scheduler_initialize_3_dot_1_dot_6() { - require_once( 'classes/abstracts/ActionScheduler.php' ); - ActionScheduler::init( __FILE__ ); - } - - // Support usage in themes - load this version if no plugin has loaded a version yet. - if ( did_action( 'plugins_loaded' ) && ! class_exists( 'ActionScheduler' ) ) { - action_scheduler_initialize_3_dot_1_dot_6(); - do_action( 'action_scheduler_pre_theme_init' ); - ActionScheduler_Versions::initialize_latest_version(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionClaim.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionClaim.php deleted file mode 100644 index 8b56816..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionClaim.php +++ /dev/null @@ -1,23 +0,0 @@ -id = $id; - $this->action_ids = $action_ids; - } - - public function get_id() { - return $this->id; - } - - public function get_actions() { - return $this->action_ids; - } -} - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionFactory.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionFactory.php deleted file mode 100644 index 545277f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionFactory.php +++ /dev/null @@ -1,179 +0,0 @@ -get_date() ); - } - break; - default : - $action_class = 'ActionScheduler_FinishedAction'; - break; - } - - $action_class = apply_filters( 'action_scheduler_stored_action_class', $action_class, $status, $hook, $args, $schedule, $group ); - - $action = new $action_class( $hook, $args, $schedule, $group ); - - /** - * Allow 3rd party code to change the instantiated action for a given hook, args, schedule and group. - * - * @param ActionScheduler_Action $action The instantiated action. - * @param string $hook The instantiated action's hook. - * @param array $args The instantiated action's args. - * @param ActionScheduler_Schedule $schedule The instantiated action's schedule. - * @param string $group The instantiated action's group. - */ - return apply_filters( 'action_scheduler_stored_action_instance', $action, $hook, $args, $schedule, $group ); - } - - /** - * Enqueue an action to run one time, as soon as possible (rather a specific scheduled time). - * - * This method creates a new action with the NULLSchedule. This schedule maps to a MySQL datetime string of - * 0000-00-00 00:00:00. This is done to create a psuedo "async action" type that is fully backward compatible. - * Existing queries to claim actions claim by date, meaning actions scheduled for 0000-00-00 00:00:00 will - * always be claimed prior to actions scheduled for a specific date. This makes sure that any async action is - * given priority in queue processing. This has the added advantage of making sure async actions can be - * claimed by both the existing WP Cron and WP CLI runners, as well as a new async request runner. - * - * @param string $hook The hook to trigger when this action runs - * @param array $args Args to pass when the hook is triggered - * @param string $group A group to put the action in - * - * @return int The ID of the stored action - */ - public function async( $hook, $args = array(), $group = '' ) { - $schedule = new ActionScheduler_NullSchedule(); - $action = new ActionScheduler_Action( $hook, $args, $schedule, $group ); - return $this->store( $action ); - } - - /** - * @param string $hook The hook to trigger when this action runs - * @param array $args Args to pass when the hook is triggered - * @param int $when Unix timestamp when the action will run - * @param string $group A group to put the action in - * - * @return int The ID of the stored action - */ - public function single( $hook, $args = array(), $when = null, $group = '' ) { - $date = as_get_datetime_object( $when ); - $schedule = new ActionScheduler_SimpleSchedule( $date ); - $action = new ActionScheduler_Action( $hook, $args, $schedule, $group ); - return $this->store( $action ); - } - - /** - * Create the first instance of an action recurring on a given interval. - * - * @param string $hook The hook to trigger when this action runs - * @param array $args Args to pass when the hook is triggered - * @param int $first Unix timestamp for the first run - * @param int $interval Seconds between runs - * @param string $group A group to put the action in - * - * @return int The ID of the stored action - */ - public function recurring( $hook, $args = array(), $first = null, $interval = null, $group = '' ) { - if ( empty($interval) ) { - return $this->single( $hook, $args, $first, $group ); - } - $date = as_get_datetime_object( $first ); - $schedule = new ActionScheduler_IntervalSchedule( $date, $interval ); - $action = new ActionScheduler_Action( $hook, $args, $schedule, $group ); - return $this->store( $action ); - } - - /** - * Create the first instance of an action recurring on a Cron schedule. - * - * @param string $hook The hook to trigger when this action runs - * @param array $args Args to pass when the hook is triggered - * @param int $base_timestamp The first instance of the action will be scheduled - * to run at a time calculated after this timestamp matching the cron - * expression. This can be used to delay the first instance of the action. - * @param int $schedule A cron definition string - * @param string $group A group to put the action in - * - * @return int The ID of the stored action - */ - public function cron( $hook, $args = array(), $base_timestamp = null, $schedule = null, $group = '' ) { - if ( empty($schedule) ) { - return $this->single( $hook, $args, $base_timestamp, $group ); - } - $date = as_get_datetime_object( $base_timestamp ); - $cron = CronExpression::factory( $schedule ); - $schedule = new ActionScheduler_CronSchedule( $date, $cron ); - $action = new ActionScheduler_Action( $hook, $args, $schedule, $group ); - return $this->store( $action ); - } - - /** - * Create a successive instance of a recurring or cron action. - * - * Importantly, the action will be rescheduled to run based on the current date/time. - * That means when the action is scheduled to run in the past, the next scheduled date - * will be pushed forward. For example, if a recurring action set to run every hour - * was scheduled to run 5 seconds ago, it will be next scheduled for 1 hour in the - * future, which is 1 hour and 5 seconds from when it was last scheduled to run. - * - * Alternatively, if the action is scheduled to run in the future, and is run early, - * likely via manual intervention, then its schedule will change based on the time now. - * For example, if a recurring action set to run every day, and is run 12 hours early, - * it will run again in 24 hours, not 36 hours. - * - * This slippage is less of an issue with Cron actions, as the specific run time can - * be set for them to run, e.g. 1am each day. In those cases, and entire period would - * need to be missed before there was any change is scheduled, e.g. in the case of an - * action scheduled for 1am each day, the action would need to run an entire day late. - * - * @param ActionScheduler_Action $action The existing action. - * - * @return string The ID of the stored action - * @throws InvalidArgumentException If $action is not a recurring action. - */ - public function repeat( $action ) { - $schedule = $action->get_schedule(); - $next = $schedule->get_next( as_get_datetime_object() ); - - if ( is_null( $next ) || ! $schedule->is_recurring() ) { - throw new InvalidArgumentException( __( 'Invalid action - must be a recurring action.', 'action-scheduler' ) ); - } - - $schedule_class = get_class( $schedule ); - $new_schedule = new $schedule( $next, $schedule->get_recurrence(), $schedule->get_first_date() ); - $new_action = new ActionScheduler_Action( $action->get_hook(), $action->get_args(), $new_schedule, $action->get_group() ); - return $this->store( $new_action ); - } - - /** - * @param ActionScheduler_Action $action - * - * @return int The ID of the stored action - */ - protected function store( ActionScheduler_Action $action ) { - $store = ActionScheduler_Store::instance(); - return $store->save_action( $action ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AdminView.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AdminView.php deleted file mode 100644 index c1fd0d7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AdminView.php +++ /dev/null @@ -1,154 +0,0 @@ -render(); - } - - /** - * Registers action-scheduler into WooCommerce > System status. - * - * @param array $tabs An associative array of tab key => label. - * @return array $tabs An associative array of tab key => label, including Action Scheduler's tabs - */ - public function register_system_status_tab( array $tabs ) { - $tabs['action-scheduler'] = __( 'Scheduled Actions', 'action-scheduler' ); - - return $tabs; - } - - /** - * Include Action Scheduler's administration under the Tools menu. - * - * A menu under the Tools menu is important for backward compatibility (as that's - * where it started), and also provides more convenient access than the WooCommerce - * System Status page, and for sites where WooCommerce isn't active. - */ - public function register_menu() { - $hook_suffix = add_submenu_page( - 'tools.php', - __( 'Scheduled Actions', 'action-scheduler' ), - __( 'Scheduled Actions', 'action-scheduler' ), - 'manage_options', - 'action-scheduler', - array( $this, 'render_admin_ui' ) - ); - add_action( 'load-' . $hook_suffix , array( $this, 'process_admin_ui' ) ); - } - - /** - * Triggers processing of any pending actions. - */ - public function process_admin_ui() { - $this->get_list_table(); - } - - /** - * Renders the Admin UI - */ - public function render_admin_ui() { - $table = $this->get_list_table(); - $table->display_page(); - } - - /** - * Get the admin UI object and process any requested actions. - * - * @return ActionScheduler_ListTable - */ - protected function get_list_table() { - if ( null === $this->list_table ) { - $this->list_table = new ActionScheduler_ListTable( ActionScheduler::store(), ActionScheduler::logger(), ActionScheduler::runner() ); - $this->list_table->process_actions(); - } - - return $this->list_table; - } - - /** - * Provide more information about the screen and its data in the help tab. - */ - public function add_help_tabs() { - $screen = get_current_screen(); - - if ( ! $screen || self::$screen_id != $screen->id ) { - return; - } - - $as_version = ActionScheduler_Versions::instance()->latest_version(); - $screen->add_help_tab( - array( - 'id' => 'action_scheduler_about', - 'title' => __( 'About', 'action-scheduler' ), - 'content' => - '

' . sprintf( __( 'About Action Scheduler %s', 'action-scheduler' ), $as_version ) . '

' . - '

' . - __( 'Action Scheduler is a scalable, traceable job queue for background processing large sets of actions. Action Scheduler works by triggering an action hook to run at some time in the future. Scheduled actions can also be scheduled to run on a recurring schedule.', 'action-scheduler' ) . - '

', - ) - ); - - $screen->add_help_tab( - array( - 'id' => 'action_scheduler_columns', - 'title' => __( 'Columns', 'action-scheduler' ), - 'content' => - '

' . __( 'Scheduled Action Columns', 'action-scheduler' ) . '

' . - '
    ' . - sprintf( '
  • %1$s: %2$s
  • ', __( 'Hook', 'action-scheduler' ), __( 'Name of the action hook that will be triggered.', 'action-scheduler' ) ) . - sprintf( '
  • %1$s: %2$s
  • ', __( 'Status', 'action-scheduler' ), __( 'Action statuses are Pending, Complete, Canceled, Failed', 'action-scheduler' ) ) . - sprintf( '
  • %1$s: %2$s
  • ', __( 'Arguments', 'action-scheduler' ), __( 'Optional data array passed to the action hook.', 'action-scheduler' ) ) . - sprintf( '
  • %1$s: %2$s
  • ', __( 'Group', 'action-scheduler' ), __( 'Optional action group.', 'action-scheduler' ) ) . - sprintf( '
  • %1$s: %2$s
  • ', __( 'Recurrence', 'action-scheduler' ), __( 'The action\'s schedule frequency.', 'action-scheduler' ) ) . - sprintf( '
  • %1$s: %2$s
  • ', __( 'Scheduled', 'action-scheduler' ), __( 'The date/time the action is/was scheduled to run.', 'action-scheduler' ) ) . - sprintf( '
  • %1$s: %2$s
  • ', __( 'Log', 'action-scheduler' ), __( 'Activity log for the action.', 'action-scheduler' ) ) . - '
', - ) - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AsyncRequest_QueueRunner.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AsyncRequest_QueueRunner.php deleted file mode 100644 index 57706a2..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AsyncRequest_QueueRunner.php +++ /dev/null @@ -1,97 +0,0 @@ -store = $store; - } - - /** - * Handle async requests - * - * Run a queue, and maybe dispatch another async request to run another queue - * if there are still pending actions after completing a queue in this request. - */ - protected function handle() { - do_action( 'action_scheduler_run_queue', 'Async Request' ); // run a queue in the same way as WP Cron, but declare the Async Request context - - $sleep_seconds = $this->get_sleep_seconds(); - - if ( $sleep_seconds ) { - sleep( $sleep_seconds ); - } - - $this->maybe_dispatch(); - } - - /** - * If the async request runner is needed and allowed to run, dispatch a request. - */ - public function maybe_dispatch() { - if ( ! $this->allow() ) { - return; - } - - $this->dispatch(); - ActionScheduler_QueueRunner::instance()->unhook_dispatch_async_request(); - } - - /** - * Only allow async requests when needed. - * - * Also allow 3rd party code to disable running actions via async requests. - */ - protected function allow() { - - if ( ! has_action( 'action_scheduler_run_queue' ) || ActionScheduler::runner()->has_maximum_concurrent_batches() || ! $this->store->has_pending_actions_due() ) { - $allow = false; - } else { - $allow = true; - } - - return apply_filters( 'action_scheduler_allow_async_request_runner', $allow ); - } - - /** - * Chaining async requests can crash MySQL. A brief sleep call in PHP prevents that. - */ - protected function get_sleep_seconds() { - return apply_filters( 'action_scheduler_async_request_sleep_seconds', 5, $this ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Compatibility.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Compatibility.php deleted file mode 100644 index c06e5a4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Compatibility.php +++ /dev/null @@ -1,99 +0,0 @@ - $wp_max_limit_int && $filtered_limit_int > $current_limit_int ) ) { - if ( false !== @ini_set( 'memory_limit', $filtered_limit ) ) { - return $filtered_limit; - } else { - return false; - } - } elseif ( -1 === $wp_max_limit_int || $wp_max_limit_int > $current_limit_int ) { - if ( false !== @ini_set( 'memory_limit', $wp_max_limit ) ) { - return $wp_max_limit; - } else { - return false; - } - } - return false; - } - - /** - * Attempts to raise the PHP timeout for time intensive processes. - * - * Only allows raising the existing limit and prevents lowering it. Wrapper for wc_set_time_limit(), when available. - * - * @param int The time limit in seconds. - */ - public static function raise_time_limit( $limit = 0 ) { - if ( $limit < ini_get( 'max_execution_time' ) ) { - return; - } - - if ( function_exists( 'wc_set_time_limit' ) ) { - wc_set_time_limit( $limit ); - } elseif ( function_exists( 'set_time_limit' ) && false === strpos( ini_get( 'disable_functions' ), 'set_time_limit' ) && ! ini_get( 'safe_mode' ) ) { - @set_time_limit( $limit ); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DataController.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DataController.php deleted file mode 100644 index eb69847..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DataController.php +++ /dev/null @@ -1,187 +0,0 @@ -=' ); - return $php_support && apply_filters( 'action_scheduler_migration_dependencies_met', true ); - } - - /** - * Get a flag indicating whether the migration is complete. - * - * @return bool Whether the flag has been set marking the migration as complete - */ - public static function is_migration_complete() { - return get_option( self::STATUS_FLAG ) === self::STATUS_COMPLETE; - } - - /** - * Mark the migration as complete. - */ - public static function mark_migration_complete() { - update_option( self::STATUS_FLAG, self::STATUS_COMPLETE ); - } - - /** - * Unmark migration when a plugin is de-activated. Will not work in case of silent activation, for example in an update. - * We do this to mitigate the bug of lost actions which happens if there was an AS 2.x to AS 3.x migration in the past, but that plugin is now - * deactivated and the site was running on AS 2.x again. - */ - public static function mark_migration_incomplete() { - delete_option( self::STATUS_FLAG ); - } - - /** - * Set the action store class name. - * - * @param string $class Classname of the store class. - * - * @return string - */ - public static function set_store_class( $class ) { - return self::DATASTORE_CLASS; - } - - /** - * Set the action logger class name. - * - * @param string $class Classname of the logger class. - * - * @return string - */ - public static function set_logger_class( $class ) { - return self::LOGGER_CLASS; - } - - /** - * Set the sleep time in seconds. - * - * @param integer $sleep_time The number of seconds to pause before resuming operation. - */ - public static function set_sleep_time( $sleep_time ) { - self::$sleep_time = (int) $sleep_time; - } - - /** - * Set the tick count required for freeing memory. - * - * @param integer $free_ticks The number of ticks to free memory on. - */ - public static function set_free_ticks( $free_ticks ) { - self::$free_ticks = (int) $free_ticks; - } - - /** - * Free memory if conditions are met. - * - * @param int $ticks Current tick count. - */ - public static function maybe_free_memory( $ticks ) { - if ( self::$free_ticks && 0 === $ticks % self::$free_ticks ) { - self::free_memory(); - } - } - - /** - * Reduce memory footprint by clearing the database query and object caches. - */ - public static function free_memory() { - if ( 0 < self::$sleep_time ) { - /* translators: %d: amount of time */ - \WP_CLI::warning( sprintf( _n( 'Stopped the insanity for %d second', 'Stopped the insanity for %d seconds', self::$sleep_time, 'action-scheduler' ), self::$sleep_time ) ); - sleep( self::$sleep_time ); - } - - \WP_CLI::warning( __( 'Attempting to reduce used memory...', 'action-scheduler' ) ); - - /** - * @var $wpdb \wpdb - * @var $wp_object_cache \WP_Object_Cache - */ - global $wpdb, $wp_object_cache; - - $wpdb->queries = array(); - - if ( ! is_a( $wp_object_cache, 'WP_Object_Cache' ) ) { - return; - } - - $wp_object_cache->group_ops = array(); - $wp_object_cache->stats = array(); - $wp_object_cache->memcache_debug = array(); - $wp_object_cache->cache = array(); - - if ( is_callable( array( $wp_object_cache, '__remoteset' ) ) ) { - call_user_func( array( $wp_object_cache, '__remoteset' ) ); // important - } - } - - /** - * Connect to table datastores if migration is complete. - * Otherwise, proceed with the migration if the dependencies have been met. - */ - public static function init() { - if ( self::is_migration_complete() ) { - add_filter( 'action_scheduler_store_class', array( 'ActionScheduler_DataController', 'set_store_class' ), 100 ); - add_filter( 'action_scheduler_logger_class', array( 'ActionScheduler_DataController', 'set_logger_class' ), 100 ); - add_action( 'deactivate_plugin', array( 'ActionScheduler_DataController', 'mark_migration_incomplete' ) ); - } elseif ( self::dependencies_met() ) { - Controller::init(); - } - - add_action( 'action_scheduler/progress_tick', array( 'ActionScheduler_DataController', 'maybe_free_memory' ) ); - } - - /** - * Singleton factory. - */ - public static function instance() { - if ( ! isset( self::$instance ) ) { - self::$instance = new static(); - } - - return self::$instance; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php deleted file mode 100644 index 5e8743c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php +++ /dev/null @@ -1,76 +0,0 @@ -format( 'U' ); - } - - /** - * Set the UTC offset. - * - * This represents a fixed offset instead of a timezone setting. - * - * @param $offset - */ - public function setUtcOffset( $offset ) { - $this->utcOffset = intval( $offset ); - } - - /** - * Returns the timezone offset. - * - * @return int - * @link http://php.net/manual/en/datetime.getoffset.php - */ - public function getOffset() { - return $this->utcOffset ? $this->utcOffset : parent::getOffset(); - } - - /** - * Set the TimeZone associated with the DateTime - * - * @param DateTimeZone $timezone - * - * @return static - * @link http://php.net/manual/en/datetime.settimezone.php - */ - public function setTimezone( $timezone ) { - $this->utcOffset = 0; - parent::setTimezone( $timezone ); - - return $this; - } - - /** - * Get the timestamp with the WordPress timezone offset added or subtracted. - * - * @since 3.0.0 - * @return int - */ - public function getOffsetTimestamp() { - return $this->getTimestamp() + $this->getOffset(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Exception.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Exception.php deleted file mode 100644 index 353d3c0..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Exception.php +++ /dev/null @@ -1,11 +0,0 @@ -store = $store; - } - - public function attach( ActionScheduler_ActionClaim $claim ) { - $this->claim = $claim; - add_action( 'shutdown', array( $this, 'handle_unexpected_shutdown' ) ); - add_action( 'action_scheduler_before_execute', array( $this, 'track_current_action' ), 0, 1 ); - add_action( 'action_scheduler_after_execute', array( $this, 'untrack_action' ), 0, 0 ); - add_action( 'action_scheduler_execution_ignored', array( $this, 'untrack_action' ), 0, 0 ); - add_action( 'action_scheduler_failed_execution', array( $this, 'untrack_action' ), 0, 0 ); - } - - public function detach() { - $this->claim = NULL; - $this->untrack_action(); - remove_action( 'shutdown', array( $this, 'handle_unexpected_shutdown' ) ); - remove_action( 'action_scheduler_before_execute', array( $this, 'track_current_action' ), 0 ); - remove_action( 'action_scheduler_after_execute', array( $this, 'untrack_action' ), 0 ); - remove_action( 'action_scheduler_execution_ignored', array( $this, 'untrack_action' ), 0 ); - remove_action( 'action_scheduler_failed_execution', array( $this, 'untrack_action' ), 0 ); - } - - public function track_current_action( $action_id ) { - $this->action_id = $action_id; - } - - public function untrack_action() { - $this->action_id = 0; - } - - public function handle_unexpected_shutdown() { - if ( $error = error_get_last() ) { - if ( in_array( $error['type'], array( E_ERROR, E_PARSE, E_COMPILE_ERROR, E_USER_ERROR, E_RECOVERABLE_ERROR ) ) ) { - if ( !empty($this->action_id) ) { - $this->store->mark_failure( $this->action_id ); - do_action( 'action_scheduler_unexpected_shutdown', $this->action_id, $error ); - } - } - $this->store->release_claim( $this->claim ); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_InvalidActionException.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_InvalidActionException.php deleted file mode 100644 index 40b4559..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_InvalidActionException.php +++ /dev/null @@ -1,47 +0,0 @@ - label). - * - * @var array - */ - protected $columns = array(); - - /** - * Actions (name => label). - * - * @var array - */ - protected $row_actions = array(); - - /** - * The active data stores - * - * @var ActionScheduler_Store - */ - protected $store; - - /** - * A logger to use for getting action logs to display - * - * @var ActionScheduler_Logger - */ - protected $logger; - - /** - * A ActionScheduler_QueueRunner runner instance (or child class) - * - * @var ActionScheduler_QueueRunner - */ - protected $runner; - - /** - * Bulk actions. The key of the array is the method name of the implementation: - * - * bulk_(array $ids, string $sql_in). - * - * See the comments in the parent class for further details - * - * @var array - */ - protected $bulk_actions = array(); - - /** - * Flag variable to render our notifications, if any, once. - * - * @var bool - */ - protected static $did_notification = false; - - /** - * Array of seconds for common time periods, like week or month, alongside an internationalised string representation, i.e. "Day" or "Days" - * - * @var array - */ - private static $time_periods; - - /** - * Sets the current data store object into `store->action` and initialises the object. - * - * @param ActionScheduler_Store $store - * @param ActionScheduler_Logger $logger - * @param ActionScheduler_QueueRunner $runner - */ - public function __construct( ActionScheduler_Store $store, ActionScheduler_Logger $logger, ActionScheduler_QueueRunner $runner ) { - - $this->store = $store; - $this->logger = $logger; - $this->runner = $runner; - - $this->table_header = __( 'Scheduled Actions', 'action-scheduler' ); - - $this->bulk_actions = array( - 'delete' => __( 'Delete', 'action-scheduler' ), - ); - - $this->columns = array( - 'hook' => __( 'Hook', 'action-scheduler' ), - 'status' => __( 'Status', 'action-scheduler' ), - 'args' => __( 'Arguments', 'action-scheduler' ), - 'group' => __( 'Group', 'action-scheduler' ), - 'recurrence' => __( 'Recurrence', 'action-scheduler' ), - 'schedule' => __( 'Scheduled Date', 'action-scheduler' ), - 'log_entries' => __( 'Log', 'action-scheduler' ), - ); - - $this->sort_by = array( - 'schedule', - 'hook', - 'group', - ); - - $this->search_by = array( - 'hook', - 'args', - 'claim_id', - ); - - $request_status = $this->get_request_status(); - - if ( empty( $request_status ) ) { - $this->sort_by[] = 'status'; - } elseif ( in_array( $request_status, array( 'in-progress', 'failed' ) ) ) { - $this->columns += array( 'claim_id' => __( 'Claim ID', 'action-scheduler' ) ); - $this->sort_by[] = 'claim_id'; - } - - $this->row_actions = array( - 'hook' => array( - 'run' => array( - 'name' => __( 'Run', 'action-scheduler' ), - 'desc' => __( 'Process the action now as if it were run as part of a queue', 'action-scheduler' ), - ), - 'cancel' => array( - 'name' => __( 'Cancel', 'action-scheduler' ), - 'desc' => __( 'Cancel the action now to avoid it being run in future', 'action-scheduler' ), - 'class' => 'cancel trash', - ), - ), - ); - - self::$time_periods = array( - array( - 'seconds' => YEAR_IN_SECONDS, - /* translators: %s: amount of time */ - 'names' => _n_noop( '%s year', '%s years', 'action-scheduler' ), - ), - array( - 'seconds' => MONTH_IN_SECONDS, - /* translators: %s: amount of time */ - 'names' => _n_noop( '%s month', '%s months', 'action-scheduler' ), - ), - array( - 'seconds' => WEEK_IN_SECONDS, - /* translators: %s: amount of time */ - 'names' => _n_noop( '%s week', '%s weeks', 'action-scheduler' ), - ), - array( - 'seconds' => DAY_IN_SECONDS, - /* translators: %s: amount of time */ - 'names' => _n_noop( '%s day', '%s days', 'action-scheduler' ), - ), - array( - 'seconds' => HOUR_IN_SECONDS, - /* translators: %s: amount of time */ - 'names' => _n_noop( '%s hour', '%s hours', 'action-scheduler' ), - ), - array( - 'seconds' => MINUTE_IN_SECONDS, - /* translators: %s: amount of time */ - 'names' => _n_noop( '%s minute', '%s minutes', 'action-scheduler' ), - ), - array( - 'seconds' => 1, - /* translators: %s: amount of time */ - 'names' => _n_noop( '%s second', '%s seconds', 'action-scheduler' ), - ), - ); - - parent::__construct( array( - 'singular' => 'action-scheduler', - 'plural' => 'action-scheduler', - 'ajax' => false, - ) ); - } - - /** - * Convert an interval of seconds into a two part human friendly string. - * - * The WordPress human_time_diff() function only calculates the time difference to one degree, meaning - * even if an action is 1 day and 11 hours away, it will display "1 day". This function goes one step - * further to display two degrees of accuracy. - * - * Inspired by the Crontrol::interval() function by Edward Dale: https://wordpress.org/plugins/wp-crontrol/ - * - * @param int $interval A interval in seconds. - * @param int $periods_to_include Depth of time periods to include, e.g. for an interval of 70, and $periods_to_include of 2, both minutes and seconds would be included. With a value of 1, only minutes would be included. - * @return string A human friendly string representation of the interval. - */ - private static function human_interval( $interval, $periods_to_include = 2 ) { - - if ( $interval <= 0 ) { - return __( 'Now!', 'action-scheduler' ); - } - - $output = ''; - - for ( $time_period_index = 0, $periods_included = 0, $seconds_remaining = $interval; $time_period_index < count( self::$time_periods ) && $seconds_remaining > 0 && $periods_included < $periods_to_include; $time_period_index++ ) { - - $periods_in_interval = floor( $seconds_remaining / self::$time_periods[ $time_period_index ]['seconds'] ); - - if ( $periods_in_interval > 0 ) { - if ( ! empty( $output ) ) { - $output .= ' '; - } - $output .= sprintf( _n( self::$time_periods[ $time_period_index ]['names'][0], self::$time_periods[ $time_period_index ]['names'][1], $periods_in_interval, 'action-scheduler' ), $periods_in_interval ); - $seconds_remaining -= $periods_in_interval * self::$time_periods[ $time_period_index ]['seconds']; - $periods_included++; - } - } - - return $output; - } - - /** - * Returns the recurrence of an action or 'Non-repeating'. The output is human readable. - * - * @param ActionScheduler_Action $action - * - * @return string - */ - protected function get_recurrence( $action ) { - $schedule = $action->get_schedule(); - if ( $schedule->is_recurring() ) { - $recurrence = $schedule->get_recurrence(); - - if ( is_numeric( $recurrence ) ) { - /* translators: %s: time interval */ - return sprintf( __( 'Every %s', 'action-scheduler' ), self::human_interval( $recurrence ) ); - } else { - return $recurrence; - } - } - - return __( 'Non-repeating', 'action-scheduler' ); - } - - /** - * Serializes the argument of an action to render it in a human friendly format. - * - * @param array $row The array representation of the current row of the table - * - * @return string - */ - public function column_args( array $row ) { - if ( empty( $row['args'] ) ) { - return apply_filters( 'action_scheduler_list_table_column_args', '', $row ); - } - - $row_html = '
    '; - foreach ( $row['args'] as $key => $value ) { - $row_html .= sprintf( '
  • %s => %s
  • ', esc_html( var_export( $key, true ) ), esc_html( var_export( $value, true ) ) ); - } - $row_html .= '
'; - - return apply_filters( 'action_scheduler_list_table_column_args', $row_html, $row ); - } - - /** - * Prints the logs entries inline. We do so to avoid loading Javascript and other hacks to show it in a modal. - * - * @param array $row Action array. - * @return string - */ - public function column_log_entries( array $row ) { - - $log_entries_html = '
    '; - - $timezone = new DateTimezone( 'UTC' ); - - foreach ( $row['log_entries'] as $log_entry ) { - $log_entries_html .= $this->get_log_entry_html( $log_entry, $timezone ); - } - - $log_entries_html .= '
'; - - return $log_entries_html; - } - - /** - * Prints the logs entries inline. We do so to avoid loading Javascript and other hacks to show it in a modal. - * - * @param ActionScheduler_LogEntry $log_entry - * @param DateTimezone $timezone - * @return string - */ - protected function get_log_entry_html( ActionScheduler_LogEntry $log_entry, DateTimezone $timezone ) { - $date = $log_entry->get_date(); - $date->setTimezone( $timezone ); - return sprintf( '
  • %s
    %s
  • ', esc_html( $date->format( 'Y-m-d H:i:s O' ) ), esc_html( $log_entry->get_message() ) ); - } - - /** - * Only display row actions for pending actions. - * - * @param array $row Row to render - * @param string $column_name Current row - * - * @return string - */ - protected function maybe_render_actions( $row, $column_name ) { - if ( 'pending' === strtolower( $row[ 'status_name' ] ) ) { - return parent::maybe_render_actions( $row, $column_name ); - } - - return ''; - } - - /** - * Renders admin notifications - * - * Notifications: - * 1. When the maximum number of tasks are being executed simultaneously. - * 2. Notifications when a task is manually executed. - * 3. Tables are missing. - */ - public function display_admin_notices() { - global $wpdb; - - if ( ( is_a( $this->store, 'ActionScheduler_HybridStore' ) || is_a( $this->store, 'ActionScheduler_DBStore' ) ) && apply_filters( 'action_scheduler_enable_recreate_data_store', true ) ) { - $table_list = array( - 'actionscheduler_actions', - 'actionscheduler_logs', - 'actionscheduler_groups', - 'actionscheduler_claims', - ); - - $found_tables = $wpdb->get_col( "SHOW TABLES LIKE '{$wpdb->prefix}actionscheduler%'" ); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared - foreach ( $table_list as $table_name ) { - if ( ! in_array( $wpdb->prefix . $table_name, $found_tables ) ) { - $this->admin_notices[] = array( - 'class' => 'error', - 'message' => __( 'It appears one or more database tables were missing. Attempting to re-create the missing table(s).' , 'action-scheduler' ), - ); - $this->recreate_tables(); - parent::display_admin_notices(); - - return; - } - } - } - - if ( $this->runner->has_maximum_concurrent_batches() ) { - $claim_count = $this->store->get_claim_count(); - $this->admin_notices[] = array( - 'class' => 'updated', - 'message' => sprintf( - /* translators: %s: amount of claims */ - _n( - 'Maximum simultaneous queues already in progress (%s queue). No additional queues will begin processing until the current queues are complete.', - 'Maximum simultaneous queues already in progress (%s queues). No additional queues will begin processing until the current queues are complete.', - $claim_count, - 'action-scheduler' - ), - $claim_count - ), - ); - } elseif ( $this->store->has_pending_actions_due() ) { - - $async_request_lock_expiration = ActionScheduler::lock()->get_expiration( 'async-request-runner' ); - - // No lock set or lock expired - if ( false === $async_request_lock_expiration || $async_request_lock_expiration < time() ) { - $in_progress_url = add_query_arg( 'status', 'in-progress', remove_query_arg( 'status' ) ); - /* translators: %s: process URL */ - $async_request_message = sprintf( __( 'A new queue has begun processing. View actions in-progress »', 'action-scheduler' ), esc_url( $in_progress_url ) ); - } else { - /* translators: %d: seconds */ - $async_request_message = sprintf( __( 'The next queue will begin processing in approximately %d seconds.', 'action-scheduler' ), $async_request_lock_expiration - time() ); - } - - $this->admin_notices[] = array( - 'class' => 'notice notice-info', - 'message' => $async_request_message, - ); - } - - $notification = get_transient( 'action_scheduler_admin_notice' ); - - if ( is_array( $notification ) ) { - delete_transient( 'action_scheduler_admin_notice' ); - - $action = $this->store->fetch_action( $notification['action_id'] ); - $action_hook_html = '' . $action->get_hook() . ''; - if ( 1 == $notification['success'] ) { - $class = 'updated'; - switch ( $notification['row_action_type'] ) { - case 'run' : - /* translators: %s: action HTML */ - $action_message_html = sprintf( __( 'Successfully executed action: %s', 'action-scheduler' ), $action_hook_html ); - break; - case 'cancel' : - /* translators: %s: action HTML */ - $action_message_html = sprintf( __( 'Successfully canceled action: %s', 'action-scheduler' ), $action_hook_html ); - break; - default : - /* translators: %s: action HTML */ - $action_message_html = sprintf( __( 'Successfully processed change for action: %s', 'action-scheduler' ), $action_hook_html ); - break; - } - } else { - $class = 'error'; - /* translators: 1: action HTML 2: action ID 3: error message */ - $action_message_html = sprintf( __( 'Could not process change for action: "%1$s" (ID: %2$d). Error: %3$s', 'action-scheduler' ), $action_hook_html, esc_html( $notification['action_id'] ), esc_html( $notification['error_message'] ) ); - } - - $action_message_html = apply_filters( 'action_scheduler_admin_notice_html', $action_message_html, $action, $notification ); - - $this->admin_notices[] = array( - 'class' => $class, - 'message' => $action_message_html, - ); - } - - parent::display_admin_notices(); - } - - /** - * Prints the scheduled date in a human friendly format. - * - * @param array $row The array representation of the current row of the table - * - * @return string - */ - public function column_schedule( $row ) { - return $this->get_schedule_display_string( $row['schedule'] ); - } - - /** - * Get the scheduled date in a human friendly format. - * - * @param ActionScheduler_Schedule $schedule - * @return string - */ - protected function get_schedule_display_string( ActionScheduler_Schedule $schedule ) { - - $schedule_display_string = ''; - - if ( ! $schedule->get_date() ) { - return '0000-00-00 00:00:00'; - } - - $next_timestamp = $schedule->get_date()->getTimestamp(); - - $schedule_display_string .= $schedule->get_date()->format( 'Y-m-d H:i:s O' ); - $schedule_display_string .= '
    '; - - if ( gmdate( 'U' ) > $next_timestamp ) { - /* translators: %s: date interval */ - $schedule_display_string .= sprintf( __( ' (%s ago)', 'action-scheduler' ), self::human_interval( gmdate( 'U' ) - $next_timestamp ) ); - } else { - /* translators: %s: date interval */ - $schedule_display_string .= sprintf( __( ' (%s)', 'action-scheduler' ), self::human_interval( $next_timestamp - gmdate( 'U' ) ) ); - } - - return $schedule_display_string; - } - - /** - * Bulk delete - * - * Deletes actions based on their ID. This is the handler for the bulk delete. It assumes the data - * properly validated by the callee and it will delete the actions without any extra validation. - * - * @param array $ids - * @param string $ids_sql Inherited and unused - */ - protected function bulk_delete( array $ids, $ids_sql ) { - foreach ( $ids as $id ) { - $this->store->delete_action( $id ); - } - } - - /** - * Implements the logic behind running an action. ActionScheduler_Abstract_ListTable validates the request and their - * parameters are valid. - * - * @param int $action_id - */ - protected function row_action_cancel( $action_id ) { - $this->process_row_action( $action_id, 'cancel' ); - } - - /** - * Implements the logic behind running an action. ActionScheduler_Abstract_ListTable validates the request and their - * parameters are valid. - * - * @param int $action_id - */ - protected function row_action_run( $action_id ) { - $this->process_row_action( $action_id, 'run' ); - } - - /** - * Force the data store schema updates. - */ - protected function recreate_tables() { - if ( is_a( $this->store, 'ActionScheduler_HybridStore' ) ) { - $store = $this->store; - } else { - $store = new ActionScheduler_HybridStore(); - } - add_action( 'action_scheduler/created_table', array( $store, 'set_autoincrement' ), 10, 2 ); - - $store_schema = new ActionScheduler_StoreSchema(); - $logger_schema = new ActionScheduler_LoggerSchema(); - $store_schema->register_tables( true ); - $logger_schema->register_tables( true ); - - remove_action( 'action_scheduler/created_table', array( $store, 'set_autoincrement' ), 10 ); - } - /** - * Implements the logic behind processing an action once an action link is clicked on the list table. - * - * @param int $action_id - * @param string $row_action_type The type of action to perform on the action. - */ - protected function process_row_action( $action_id, $row_action_type ) { - try { - switch ( $row_action_type ) { - case 'run' : - $this->runner->process_action( $action_id, 'Admin List Table' ); - break; - case 'cancel' : - $this->store->cancel_action( $action_id ); - break; - } - $success = 1; - $error_message = ''; - } catch ( Exception $e ) { - $success = 0; - $error_message = $e->getMessage(); - } - - set_transient( 'action_scheduler_admin_notice', compact( 'action_id', 'success', 'error_message', 'row_action_type' ), 30 ); - } - - /** - * {@inheritDoc} - */ - public function prepare_items() { - $this->prepare_column_headers(); - - $per_page = $this->get_items_per_page( $this->package . '_items_per_page', $this->items_per_page ); - $query = array( - 'per_page' => $per_page, - 'offset' => $this->get_items_offset(), - 'status' => $this->get_request_status(), - 'orderby' => $this->get_request_orderby(), - 'order' => $this->get_request_order(), - 'search' => $this->get_request_search_query(), - ); - - $this->items = array(); - - $total_items = $this->store->query_actions( $query, 'count' ); - - $status_labels = $this->store->get_status_labels(); - - foreach ( $this->store->query_actions( $query ) as $action_id ) { - try { - $action = $this->store->fetch_action( $action_id ); - } catch ( Exception $e ) { - continue; - } - if ( is_a( $action, 'ActionScheduler_NullAction' ) ) { - continue; - } - $this->items[ $action_id ] = array( - 'ID' => $action_id, - 'hook' => $action->get_hook(), - 'status_name' => $this->store->get_status( $action_id ), - 'status' => $status_labels[ $this->store->get_status( $action_id ) ], - 'args' => $action->get_args(), - 'group' => $action->get_group(), - 'log_entries' => $this->logger->get_logs( $action_id ), - 'claim_id' => $this->store->get_claim_id( $action_id ), - 'recurrence' => $this->get_recurrence( $action ), - 'schedule' => $action->get_schedule(), - ); - } - - $this->set_pagination_args( array( - 'total_items' => $total_items, - 'per_page' => $per_page, - 'total_pages' => ceil( $total_items / $per_page ), - ) ); - } - - /** - * Prints the available statuses so the user can click to filter. - */ - protected function display_filter_by_status() { - $this->status_counts = $this->store->action_counts(); - parent::display_filter_by_status(); - } - - /** - * Get the text to display in the search box on the list table. - */ - protected function get_search_box_button_text() { - return __( 'Search hook, args and claim ID', 'action-scheduler' ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_LogEntry.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_LogEntry.php deleted file mode 100644 index 649636d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_LogEntry.php +++ /dev/null @@ -1,67 +0,0 @@ -comment_type - * to ActionScheduler_LogEntry::__construct(), goodness knows why, and the Follow-up Emails plugin - * hard-codes loading its own version of ActionScheduler_wpCommentLogger with that out-dated method, - * goodness knows why, so we need to guard against that here instead of using a DateTime type declaration - * for the constructor's 3rd param of $date and causing a fatal error with older versions of FUE. - */ - if ( null !== $date && ! is_a( $date, 'DateTime' ) ) { - _doing_it_wrong( __METHOD__, 'The third parameter must be a valid DateTime instance, or null.', '2.0.0' ); - $date = null; - } - - $this->action_id = $action_id; - $this->message = $message; - $this->date = $date ? $date : new Datetime; - } - - /** - * Returns the date when this log entry was created - * - * @return Datetime - */ - public function get_date() { - return $this->date; - } - - public function get_action_id() { - return $this->action_id; - } - - public function get_message() { - return $this->message; - } -} - diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_NullLogEntry.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_NullLogEntry.php deleted file mode 100644 index 6f8f218..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_NullLogEntry.php +++ /dev/null @@ -1,11 +0,0 @@ -maybe_dispatch_async_request() uses a lock to avoid - * calling ActionScheduler_QueueRunner->has_maximum_concurrent_batches() every time the 'shutdown', - * hook is triggered, because that method calls ActionScheduler_QueueRunner->store->get_claim_count() - * to find the current number of claims in the database. - * - * @param string $lock_type A string to identify different lock types. - * @bool True if lock value has changed, false if not or if set failed. - */ - public function set( $lock_type ) { - return update_option( $this->get_key( $lock_type ), time() + $this->get_duration( $lock_type ) ); - } - - /** - * If a lock is set, return the timestamp it was set to expiry. - * - * @param string $lock_type A string to identify different lock types. - * @return bool|int False if no lock is set, otherwise the timestamp for when the lock is set to expire. - */ - public function get_expiration( $lock_type ) { - return get_option( $this->get_key( $lock_type ) ); - } - - /** - * Get the key to use for storing the lock in the transient - * - * @param string $lock_type A string to identify different lock types. - * @return string - */ - protected function get_key( $lock_type ) { - return sprintf( 'action_scheduler_lock_%s', $lock_type ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueCleaner.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueCleaner.php deleted file mode 100644 index 1da13ab..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueCleaner.php +++ /dev/null @@ -1,155 +0,0 @@ -store = $store ? $store : ActionScheduler_Store::instance(); - $this->batch_size = $batch_size; - } - - public function delete_old_actions() { - $lifespan = apply_filters( 'action_scheduler_retention_period', $this->month_in_seconds ); - $cutoff = as_get_datetime_object($lifespan.' seconds ago'); - - $statuses_to_purge = array( - ActionScheduler_Store::STATUS_COMPLETE, - ActionScheduler_Store::STATUS_CANCELED, - ); - - foreach ( $statuses_to_purge as $status ) { - $actions_to_delete = $this->store->query_actions( array( - 'status' => $status, - 'modified' => $cutoff, - 'modified_compare' => '<=', - 'per_page' => $this->get_batch_size(), - ) ); - - foreach ( $actions_to_delete as $action_id ) { - try { - $this->store->delete_action( $action_id ); - } catch ( Exception $e ) { - - /** - * Notify 3rd party code of exceptions when deleting a completed action older than the retention period - * - * This hook provides a way for 3rd party code to log or otherwise handle exceptions relating to their - * actions. - * - * @since 2.0.0 - * - * @param int $action_id The scheduled actions ID in the data store - * @param Exception $e The exception thrown when attempting to delete the action from the data store - * @param int $lifespan The retention period, in seconds, for old actions - * @param int $count_of_actions_to_delete The number of old actions being deleted in this batch - */ - do_action( 'action_scheduler_failed_old_action_deletion', $action_id, $e, $lifespan, count( $actions_to_delete ) ); - } - } - } - } - - /** - * Unclaim pending actions that have not been run within a given time limit. - * - * When called by ActionScheduler_Abstract_QueueRunner::run_cleanup(), the time limit passed - * as a parameter is 10x the time limit used for queue processing. - * - * @param int $time_limit The number of seconds to allow a queue to run before unclaiming its pending actions. Default 300 (5 minutes). - */ - public function reset_timeouts( $time_limit = 300 ) { - $timeout = apply_filters( 'action_scheduler_timeout_period', $time_limit ); - if ( $timeout < 0 ) { - return; - } - $cutoff = as_get_datetime_object($timeout.' seconds ago'); - $actions_to_reset = $this->store->query_actions( array( - 'status' => ActionScheduler_Store::STATUS_PENDING, - 'modified' => $cutoff, - 'modified_compare' => '<=', - 'claimed' => true, - 'per_page' => $this->get_batch_size(), - ) ); - - foreach ( $actions_to_reset as $action_id ) { - $this->store->unclaim_action( $action_id ); - do_action( 'action_scheduler_reset_action', $action_id ); - } - } - - /** - * Mark actions that have been running for more than a given time limit as failed, based on - * the assumption some uncatachable and unloggable fatal error occurred during processing. - * - * When called by ActionScheduler_Abstract_QueueRunner::run_cleanup(), the time limit passed - * as a parameter is 10x the time limit used for queue processing. - * - * @param int $time_limit The number of seconds to allow an action to run before it is considered to have failed. Default 300 (5 minutes). - */ - public function mark_failures( $time_limit = 300 ) { - $timeout = apply_filters( 'action_scheduler_failure_period', $time_limit ); - if ( $timeout < 0 ) { - return; - } - $cutoff = as_get_datetime_object($timeout.' seconds ago'); - $actions_to_reset = $this->store->query_actions( array( - 'status' => ActionScheduler_Store::STATUS_RUNNING, - 'modified' => $cutoff, - 'modified_compare' => '<=', - 'per_page' => $this->get_batch_size(), - ) ); - - foreach ( $actions_to_reset as $action_id ) { - $this->store->mark_failure( $action_id ); - do_action( 'action_scheduler_failed_action', $action_id, $timeout ); - } - } - - /** - * Do all of the cleaning actions. - * - * @param int $time_limit The number of seconds to use as the timeout and failure period. Default 300 (5 minutes). - * @author Jeremy Pry - */ - public function clean( $time_limit = 300 ) { - $this->delete_old_actions(); - $this->reset_timeouts( $time_limit ); - $this->mark_failures( $time_limit ); - } - - /** - * Get the batch size for cleaning the queue. - * - * @author Jeremy Pry - * @return int - */ - protected function get_batch_size() { - /** - * Filter the batch size when cleaning the queue. - * - * @param int $batch_size The number of actions to clean in one batch. - */ - return absint( apply_filters( 'action_scheduler_cleanup_batch_size', $this->batch_size ) ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueRunner.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueRunner.php deleted file mode 100644 index cd76807..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueRunner.php +++ /dev/null @@ -1,197 +0,0 @@ -store ); - } - - $this->async_request = $async_request; - } - - /** - * @codeCoverageIgnore - */ - public function init() { - - add_filter( 'cron_schedules', array( self::instance(), 'add_wp_cron_schedule' ) ); - - // Check for and remove any WP Cron hook scheduled by Action Scheduler < 3.0.0, which didn't include the $context param - $next_timestamp = wp_next_scheduled( self::WP_CRON_HOOK ); - if ( $next_timestamp ) { - wp_unschedule_event( $next_timestamp, self::WP_CRON_HOOK ); - } - - $cron_context = array( 'WP Cron' ); - - if ( ! wp_next_scheduled( self::WP_CRON_HOOK, $cron_context ) ) { - $schedule = apply_filters( 'action_scheduler_run_schedule', self::WP_CRON_SCHEDULE ); - wp_schedule_event( time(), $schedule, self::WP_CRON_HOOK, $cron_context ); - } - - add_action( self::WP_CRON_HOOK, array( self::instance(), 'run' ) ); - $this->hook_dispatch_async_request(); - } - - /** - * Hook check for dispatching an async request. - */ - public function hook_dispatch_async_request() { - add_action( 'shutdown', array( $this, 'maybe_dispatch_async_request' ) ); - } - - /** - * Unhook check for dispatching an async request. - */ - public function unhook_dispatch_async_request() { - remove_action( 'shutdown', array( $this, 'maybe_dispatch_async_request' ) ); - } - - /** - * Check if we should dispatch an async request to process actions. - * - * This method is attached to 'shutdown', so is called frequently. To avoid slowing down - * the site, it mitigates the work performed in each request by: - * 1. checking if it's in the admin context and then - * 2. haven't run on the 'shutdown' hook within the lock time (60 seconds by default) - * 3. haven't exceeded the number of allowed batches. - * - * The order of these checks is important, because they run from a check on a value: - * 1. in memory - is_admin() maps to $GLOBALS or the WP_ADMIN constant - * 2. in memory - transients use autoloaded options by default - * 3. from a database query - has_maximum_concurrent_batches() run the query - * $this->store->get_claim_count() to find the current number of claims in the DB. - * - * If all of these conditions are met, then we request an async runner check whether it - * should dispatch a request to process pending actions. - */ - public function maybe_dispatch_async_request() { - if ( is_admin() && ! ActionScheduler::lock()->is_locked( 'async-request-runner' ) ) { - // Only start an async queue at most once every 60 seconds - ActionScheduler::lock()->set( 'async-request-runner' ); - $this->async_request->maybe_dispatch(); - } - } - - /** - * Process actions in the queue. Attached to self::WP_CRON_HOOK i.e. 'action_scheduler_run_queue' - * - * The $context param of this method defaults to 'WP Cron', because prior to Action Scheduler 3.0.0 - * that was the only context in which this method was run, and the self::WP_CRON_HOOK hook had no context - * passed along with it. New code calling this method directly, or by triggering the self::WP_CRON_HOOK, - * should set a context as the first parameter. For an example of this, refer to the code seen in - * @see ActionScheduler_AsyncRequest_QueueRunner::handle() - * - * @param string $context Optional identifer for the context in which this action is being processed, e.g. 'WP CLI' or 'WP Cron' - * Generally, this should be capitalised and not localised as it's a proper noun. - * @return int The number of actions processed. - */ - public function run( $context = 'WP Cron' ) { - ActionScheduler_Compatibility::raise_memory_limit(); - ActionScheduler_Compatibility::raise_time_limit( $this->get_time_limit() ); - do_action( 'action_scheduler_before_process_queue' ); - $this->run_cleanup(); - $processed_actions = 0; - if ( false === $this->has_maximum_concurrent_batches() ) { - $batch_size = apply_filters( 'action_scheduler_queue_runner_batch_size', 25 ); - do { - $processed_actions_in_batch = $this->do_batch( $batch_size, $context ); - $processed_actions += $processed_actions_in_batch; - } while ( $processed_actions_in_batch > 0 && ! $this->batch_limits_exceeded( $processed_actions ) ); // keep going until we run out of actions, time, or memory - } - - do_action( 'action_scheduler_after_process_queue' ); - return $processed_actions; - } - - /** - * Process a batch of actions pending in the queue. - * - * Actions are processed by claiming a set of pending actions then processing each one until either the batch - * size is completed, or memory or time limits are reached, defined by @see $this->batch_limits_exceeded(). - * - * @param int $size The maximum number of actions to process in the batch. - * @param string $context Optional identifer for the context in which this action is being processed, e.g. 'WP CLI' or 'WP Cron' - * Generally, this should be capitalised and not localised as it's a proper noun. - * @return int The number of actions processed. - */ - protected function do_batch( $size = 100, $context = '' ) { - $claim = $this->store->stake_claim($size); - $this->monitor->attach($claim); - $processed_actions = 0; - - foreach ( $claim->get_actions() as $action_id ) { - // bail if we lost the claim - if ( ! in_array( $action_id, $this->store->find_actions_by_claim_id( $claim->get_id() ) ) ) { - break; - } - $this->process_action( $action_id, $context ); - $processed_actions++; - - if ( $this->batch_limits_exceeded( $processed_actions ) ) { - break; - } - } - $this->store->release_claim($claim); - $this->monitor->detach(); - $this->clear_caches(); - return $processed_actions; - } - - /** - * Running large batches can eat up memory, as WP adds data to its object cache. - * - * If using a persistent object store, this has the side effect of flushing that - * as well, so this is disabled by default. To enable: - * - * add_filter( 'action_scheduler_queue_runner_flush_cache', '__return_true' ); - */ - protected function clear_caches() { - if ( ! wp_using_ext_object_cache() || apply_filters( 'action_scheduler_queue_runner_flush_cache', false ) ) { - wp_cache_flush(); - } - } - - public function add_wp_cron_schedule( $schedules ) { - $schedules['every_minute'] = array( - 'interval' => 60, // in seconds - 'display' => __( 'Every minute', 'action-scheduler' ), - ); - - return $schedules; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Versions.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Versions.php deleted file mode 100644 index 915c2e6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Versions.php +++ /dev/null @@ -1,62 +0,0 @@ -versions[$version_string]) ) { - return FALSE; - } - $this->versions[$version_string] = $initialization_callback; - return TRUE; - } - - public function get_versions() { - return $this->versions; - } - - public function latest_version() { - $keys = array_keys($this->versions); - if ( empty($keys) ) { - return false; - } - uasort( $keys, 'version_compare' ); - return end($keys); - } - - public function latest_version_callback() { - $latest = $this->latest_version(); - if ( empty($latest) || !isset($this->versions[$latest]) ) { - return '__return_null'; - } - return $this->versions[$latest]; - } - - /** - * @return ActionScheduler_Versions - * @codeCoverageIgnore - */ - public static function instance() { - if ( empty(self::$instance) ) { - self::$instance = new self(); - } - return self::$instance; - } - - /** - * @codeCoverageIgnore - */ - public static function initialize_latest_version() { - $self = self::instance(); - call_user_func($self->latest_version_callback()); - } -} - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php deleted file mode 100644 index 1ba552c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php +++ /dev/null @@ -1,115 +0,0 @@ - Status administration screen - add_action( 'load-tools_page_action-scheduler', array( __CLASS__, 'register_admin_notice' ) ); - add_action( 'load-woocommerce_page_wc-status', array( __CLASS__, 'register_admin_notice' ) ); - } - - /** - * Determines if there are log entries in the wp comments table. - * - * Uses the flag set on migration completion set by @see self::maybe_schedule_cleanup(). - * - * @return boolean Whether there are scheduled action comments in the comments table. - */ - public static function has_logs() { - return 'yes' === get_option( self::$has_logs_option_key ); - } - - /** - * Schedules the WP Post comment table cleanup to run in 6 months if it's not already scheduled. - * Attached to the migration complete hook 'action_scheduler/migration_complete'. - */ - public static function maybe_schedule_cleanup() { - if ( (bool) get_comments( array( 'type' => ActionScheduler_wpCommentLogger::TYPE, 'number' => 1, 'fields' => 'ids' ) ) ) { - update_option( self::$has_logs_option_key, 'yes' ); - - if ( ! as_next_scheduled_action( self::$cleanup_hook ) ) { - as_schedule_single_action( gmdate( 'U' ) + ( 6 * MONTH_IN_SECONDS ), self::$cleanup_hook ); - } - } - } - - /** - * Delete all action comments from the WP Comments table. - */ - public static function delete_all_action_comments() { - global $wpdb; - $wpdb->delete( $wpdb->comments, array( 'comment_type' => ActionScheduler_wpCommentLogger::TYPE, 'comment_agent' => ActionScheduler_wpCommentLogger::AGENT ) ); - delete_option( self::$has_logs_option_key ); - } - - /** - * Registers admin notices about the orphaned action logs. - */ - public static function register_admin_notice() { - add_action( 'admin_notices', array( __CLASS__, 'print_admin_notice' ) ); - } - - /** - * Prints details about the orphaned action logs and includes information on where to learn more. - */ - public static function print_admin_notice() { - $next_cleanup_message = ''; - $next_scheduled_cleanup_hook = as_next_scheduled_action( self::$cleanup_hook ); - - if ( $next_scheduled_cleanup_hook ) { - /* translators: %s: date interval */ - $next_cleanup_message = sprintf( __( 'This data will be deleted in %s.', 'action-scheduler' ), human_time_diff( gmdate( 'U' ), $next_scheduled_cleanup_hook ) ); - } - - $notice = sprintf( - /* translators: 1: next cleanup message 2: github issue URL */ - __( 'Action Scheduler has migrated data to custom tables; however, orphaned log entries exist in the WordPress Comments table. %1$s Learn more »', 'action-scheduler' ), - $next_cleanup_message, - 'https://github.com/woocommerce/action-scheduler/issues/368' - ); - - echo '

    ' . wp_kses_post( $notice ) . '

    '; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_wcSystemStatus.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_wcSystemStatus.php deleted file mode 100644 index e81382a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/ActionScheduler_wcSystemStatus.php +++ /dev/null @@ -1,152 +0,0 @@ -store = $store; - } - - /** - * Display action data, including number of actions grouped by status and the oldest & newest action in each status. - * - * Helpful to identify issues, like a clogged queue. - */ - public function render() { - $action_counts = $this->store->action_counts(); - $status_labels = $this->store->get_status_labels(); - $oldest_and_newest = $this->get_oldest_and_newest( array_keys( $status_labels ) ); - - $this->get_template( $status_labels, $action_counts, $oldest_and_newest ); - } - - /** - * Get oldest and newest scheduled dates for a given set of statuses. - * - * @param array $status_keys Set of statuses to find oldest & newest action for. - * @return array - */ - protected function get_oldest_and_newest( $status_keys ) { - - $oldest_and_newest = array(); - - foreach ( $status_keys as $status ) { - $oldest_and_newest[ $status ] = array( - 'oldest' => '–', - 'newest' => '–', - ); - - if ( 'in-progress' === $status ) { - continue; - } - - $oldest_and_newest[ $status ]['oldest'] = $this->get_action_status_date( $status, 'oldest' ); - $oldest_and_newest[ $status ]['newest'] = $this->get_action_status_date( $status, 'newest' ); - } - - return $oldest_and_newest; - } - - /** - * Get oldest or newest scheduled date for a given status. - * - * @param string $status Action status label/name string. - * @param string $date_type Oldest or Newest. - * @return DateTime - */ - protected function get_action_status_date( $status, $date_type = 'oldest' ) { - - $order = 'oldest' === $date_type ? 'ASC' : 'DESC'; - - $action = $this->store->query_actions( array( - 'claimed' => false, - 'status' => $status, - 'per_page' => 1, - 'order' => $order, - ) ); - - if ( ! empty( $action ) ) { - $date_object = $this->store->get_date( $action[0] ); - $action_date = $date_object->format( 'Y-m-d H:i:s O' ); - } else { - $action_date = '–'; - } - - return $action_date; - } - - /** - * Get oldest or newest scheduled date for a given status. - * - * @param array $status_labels Set of statuses to find oldest & newest action for. - * @param array $action_counts Number of actions grouped by status. - * @param array $oldest_and_newest Date of the oldest and newest action with each status. - */ - protected function get_template( $status_labels, $action_counts, $oldest_and_newest ) { - $as_version = ActionScheduler_Versions::instance()->latest_version(); - ?> - - - - - - - - - - - - - - - - - - - - $count ) { - // WC uses the 3rd column for export, so we need to display more data in that (hidden when viewed as part of the table) and add an empty 2nd column. - printf( - '', - esc_html( $status_labels[ $status ] ), - number_format_i18n( $count ), - $oldest_and_newest[ $status ]['oldest'], - $oldest_and_newest[ $status ]['newest'] - ); - } - ?> - -

     
    %1$s %2$s, Oldest: %3$s, Newest: %4$s%3$s%4$s
    - - run_cleanup(); - $this->add_hooks(); - - // Check to make sure there aren't too many concurrent processes running. - if ( $this->has_maximum_concurrent_batches() ) { - if ( $force ) { - WP_CLI::warning( __( 'There are too many concurrent batches, but the run is forced to continue.', 'action-scheduler' ) ); - } else { - WP_CLI::error( __( 'There are too many concurrent batches.', 'action-scheduler' ) ); - } - } - - // Stake a claim and store it. - $this->claim = $this->store->stake_claim( $batch_size, null, $hooks, $group ); - $this->monitor->attach( $this->claim ); - $this->actions = $this->claim->get_actions(); - - return count( $this->actions ); - } - - /** - * Add our hooks to the appropriate actions. - * - * @author Jeremy Pry - */ - protected function add_hooks() { - add_action( 'action_scheduler_before_execute', array( $this, 'before_execute' ) ); - add_action( 'action_scheduler_after_execute', array( $this, 'after_execute' ), 10, 2 ); - add_action( 'action_scheduler_failed_execution', array( $this, 'action_failed' ), 10, 2 ); - } - - /** - * Set up the WP CLI progress bar. - * - * @author Jeremy Pry - */ - protected function setup_progress_bar() { - $count = count( $this->actions ); - $this->progress_bar = new ProgressBar( - /* translators: %d: amount of actions */ - sprintf( _n( 'Running %d action', 'Running %d actions', $count, 'action-scheduler' ), number_format_i18n( $count ) ), - $count - ); - } - - /** - * Process actions in the queue. - * - * @author Jeremy Pry - * - * @param string $context Optional runner context. Default 'WP CLI'. - * - * @return int The number of actions processed. - */ - public function run( $context = 'WP CLI' ) { - do_action( 'action_scheduler_before_process_queue' ); - $this->setup_progress_bar(); - foreach ( $this->actions as $action_id ) { - // Error if we lost the claim. - if ( ! in_array( $action_id, $this->store->find_actions_by_claim_id( $this->claim->get_id() ) ) ) { - WP_CLI::warning( __( 'The claim has been lost. Aborting current batch.', 'action-scheduler' ) ); - break; - } - - $this->process_action( $action_id, $context ); - $this->progress_bar->tick(); - } - - $completed = $this->progress_bar->current(); - $this->progress_bar->finish(); - $this->store->release_claim( $this->claim ); - do_action( 'action_scheduler_after_process_queue' ); - - return $completed; - } - - /** - * Handle WP CLI message when the action is starting. - * - * @author Jeremy Pry - * - * @param $action_id - */ - public function before_execute( $action_id ) { - /* translators: %s refers to the action ID */ - WP_CLI::log( sprintf( __( 'Started processing action %s', 'action-scheduler' ), $action_id ) ); - } - - /** - * Handle WP CLI message when the action has completed. - * - * @author Jeremy Pry - * - * @param int $action_id - * @param null|ActionScheduler_Action $action The instance of the action. Default to null for backward compatibility. - */ - public function after_execute( $action_id, $action = null ) { - // backward compatibility - if ( null === $action ) { - $action = $this->store->fetch_action( $action_id ); - } - /* translators: 1: action ID 2: hook name */ - WP_CLI::log( sprintf( __( 'Completed processing action %1$s with hook: %2$s', 'action-scheduler' ), $action_id, $action->get_hook() ) ); - } - - /** - * Handle WP CLI message when the action has failed. - * - * @author Jeremy Pry - * - * @param int $action_id - * @param Exception $exception - * @throws \WP_CLI\ExitException With failure message. - */ - public function action_failed( $action_id, $exception ) { - WP_CLI::error( - /* translators: 1: action ID 2: exception message */ - sprintf( __( 'Error processing action %1$s: %2$s', 'action-scheduler' ), $action_id, $exception->getMessage() ), - false - ); - } - - /** - * Sleep and help avoid hitting memory limit - * - * @param int $sleep_time Amount of seconds to sleep - * @deprecated 3.0.0 - */ - protected function stop_the_insanity( $sleep_time = 0 ) { - _deprecated_function( 'ActionScheduler_WPCLI_QueueRunner::stop_the_insanity', '3.0.0', 'ActionScheduler_DataController::free_memory' ); - - ActionScheduler_DataController::free_memory(); - } - - /** - * Maybe trigger the stop_the_insanity() method to free up memory. - */ - protected function maybe_stop_the_insanity() { - // The value returned by progress_bar->current() might be padded. Remove padding, and convert to int. - $current_iteration = intval( trim( $this->progress_bar->current() ) ); - if ( 0 === $current_iteration % 50 ) { - $this->stop_the_insanity(); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_Scheduler_command.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_Scheduler_command.php deleted file mode 100644 index 6cf27d4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_Scheduler_command.php +++ /dev/null @@ -1,158 +0,0 @@ -] - * : The maximum number of actions to run. Defaults to 100. - * - * [--batches=] - * : Limit execution to a number of batches. Defaults to 0, meaning batches will continue being executed until all actions are complete. - * - * [--cleanup-batch-size=] - * : The maximum number of actions to clean up. Defaults to the value of --batch-size. - * - * [--hooks=] - * : Only run actions with the specified hook. Omitting this option runs actions with any hook. Define multiple hooks as a comma separated string (without spaces), e.g. `--hooks=hook_one,hook_two,hook_three` - * - * [--group=] - * : Only run actions from the specified group. Omitting this option runs actions from all groups. - * - * [--free-memory-on=] - * : The number of actions to process between freeing memory. 0 disables freeing memory. Default 50. - * - * [--pause=] - * : The number of seconds to pause when freeing memory. Default no pause. - * - * [--force] - * : Whether to force execution despite the maximum number of concurrent processes being exceeded. - * - * @param array $args Positional arguments. - * @param array $assoc_args Keyed arguments. - * @throws \WP_CLI\ExitException When an error occurs. - * - * @subcommand run - */ - public function run( $args, $assoc_args ) { - // Handle passed arguments. - $batch = absint( \WP_CLI\Utils\get_flag_value( $assoc_args, 'batch-size', 100 ) ); - $batches = absint( \WP_CLI\Utils\get_flag_value( $assoc_args, 'batches', 0 ) ); - $clean = absint( \WP_CLI\Utils\get_flag_value( $assoc_args, 'cleanup-batch-size', $batch ) ); - $hooks = explode( ',', WP_CLI\Utils\get_flag_value( $assoc_args, 'hooks', '' ) ); - $hooks = array_filter( array_map( 'trim', $hooks ) ); - $group = \WP_CLI\Utils\get_flag_value( $assoc_args, 'group', '' ); - $free_on = \WP_CLI\Utils\get_flag_value( $assoc_args, 'free-memory-on', 50 ); - $sleep = \WP_CLI\Utils\get_flag_value( $assoc_args, 'pause', 0 ); - $force = \WP_CLI\Utils\get_flag_value( $assoc_args, 'force', false ); - - ActionScheduler_DataController::set_free_ticks( $free_on ); - ActionScheduler_DataController::set_sleep_time( $sleep ); - - $batches_completed = 0; - $actions_completed = 0; - $unlimited = $batches === 0; - - try { - // Custom queue cleaner instance. - $cleaner = new ActionScheduler_QueueCleaner( null, $clean ); - - // Get the queue runner instance - $runner = new ActionScheduler_WPCLI_QueueRunner( null, null, $cleaner ); - - // Determine how many tasks will be run in the first batch. - $total = $runner->setup( $batch, $hooks, $group, $force ); - - // Run actions for as long as possible. - while ( $total > 0 ) { - $this->print_total_actions( $total ); - $actions_completed += $runner->run(); - $batches_completed++; - - // Maybe set up tasks for the next batch. - $total = ( $unlimited || $batches_completed < $batches ) ? $runner->setup( $batch, $hooks, $group, $force ) : 0; - } - } catch ( Exception $e ) { - $this->print_error( $e ); - } - - $this->print_total_batches( $batches_completed ); - $this->print_success( $actions_completed ); - } - - /** - * Print WP CLI message about how many actions are about to be processed. - * - * @author Jeremy Pry - * - * @param int $total - */ - protected function print_total_actions( $total ) { - WP_CLI::log( - sprintf( - /* translators: %d refers to how many scheduled taks were found to run */ - _n( 'Found %d scheduled task', 'Found %d scheduled tasks', $total, 'action-scheduler' ), - number_format_i18n( $total ) - ) - ); - } - - /** - * Print WP CLI message about how many batches of actions were processed. - * - * @author Jeremy Pry - * - * @param int $batches_completed - */ - protected function print_total_batches( $batches_completed ) { - WP_CLI::log( - sprintf( - /* translators: %d refers to the total number of batches executed */ - _n( '%d batch executed.', '%d batches executed.', $batches_completed, 'action-scheduler' ), - number_format_i18n( $batches_completed ) - ) - ); - } - - /** - * Convert an exception into a WP CLI error. - * - * @author Jeremy Pry - * - * @param Exception $e The error object. - * - * @throws \WP_CLI\ExitException - */ - protected function print_error( Exception $e ) { - WP_CLI::error( - sprintf( - /* translators: %s refers to the exception error message */ - __( 'There was an error running the action scheduler: %s', 'action-scheduler' ), - $e->getMessage() - ) - ); - } - - /** - * Print a success message with the number of completed actions. - * - * @author Jeremy Pry - * - * @param int $actions_completed - */ - protected function print_success( $actions_completed ) { - WP_CLI::success( - sprintf( - /* translators: %d refers to the total number of taskes completed */ - _n( '%d scheduled task completed.', '%d scheduled tasks completed.', $actions_completed, 'action-scheduler' ), - number_format_i18n( $actions_completed ) - ) - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/WP_CLI/Migration_Command.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/WP_CLI/Migration_Command.php deleted file mode 100644 index 066697e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/WP_CLI/Migration_Command.php +++ /dev/null @@ -1,148 +0,0 @@ - 'Migrates actions to the DB tables store', - 'synopsis' => [ - [ - 'type' => 'assoc', - 'name' => 'batch-size', - 'optional' => true, - 'default' => 100, - 'description' => 'The number of actions to process in each batch', - ], - [ - 'type' => 'assoc', - 'name' => 'free-memory-on', - 'optional' => true, - 'default' => 50, - 'description' => 'The number of actions to process between freeing memory. 0 disables freeing memory', - ], - [ - 'type' => 'assoc', - 'name' => 'pause', - 'optional' => true, - 'default' => 0, - 'description' => 'The number of seconds to pause when freeing memory', - ], - [ - 'type' => 'flag', - 'name' => 'dry-run', - 'optional' => true, - 'description' => 'Reports on the actions that would have been migrated, but does not change any data', - ], - ], - ] ); - } - - /** - * Process the data migration. - * - * @param array $positional_args Required for WP CLI. Not used in migration. - * @param array $assoc_args Optional arguments. - * - * @return void - */ - public function migrate( $positional_args, $assoc_args ) { - $this->init_logging(); - - $config = $this->get_migration_config( $assoc_args ); - $runner = new Runner( $config ); - $runner->init_destination(); - - $batch_size = isset( $assoc_args[ 'batch-size' ] ) ? (int) $assoc_args[ 'batch-size' ] : 100; - $free_on = isset( $assoc_args[ 'free-memory-on' ] ) ? (int) $assoc_args[ 'free-memory-on' ] : 50; - $sleep = isset( $assoc_args[ 'pause' ] ) ? (int) $assoc_args[ 'pause' ] : 0; - \ActionScheduler_DataController::set_free_ticks( $free_on ); - \ActionScheduler_DataController::set_sleep_time( $sleep ); - - do { - $actions_processed = $runner->run( $batch_size ); - $this->total_processed += $actions_processed; - } while ( $actions_processed > 0 ); - - if ( ! $config->get_dry_run() ) { - // let the scheduler know that there's nothing left to do - $scheduler = new Scheduler(); - $scheduler->mark_complete(); - } - - WP_CLI::success( sprintf( '%s complete. %d actions processed.', $config->get_dry_run() ? 'Dry run' : 'Migration', $this->total_processed ) ); - } - - /** - * Build the config object used to create the Runner - * - * @param array $args Optional arguments. - * - * @return ActionScheduler\Migration\Config - */ - private function get_migration_config( $args ) { - $args = wp_parse_args( $args, [ - 'dry-run' => false, - ] ); - - $config = Controller::instance()->get_migration_config_object(); - $config->set_dry_run( ! empty( $args[ 'dry-run' ] ) ); - - return $config; - } - - /** - * Hook command line logging into migration actions. - */ - private function init_logging() { - add_action( 'action_scheduler/migrate_action_dry_run', function ( $action_id ) { - WP_CLI::debug( sprintf( 'Dry-run: migrated action %d', $action_id ) ); - }, 10, 1 ); - add_action( 'action_scheduler/no_action_to_migrate', function ( $action_id ) { - WP_CLI::debug( sprintf( 'No action found to migrate for ID %d', $action_id ) ); - }, 10, 1 ); - add_action( 'action_scheduler/migrate_action_failed', function ( $action_id ) { - WP_CLI::warning( sprintf( 'Failed migrating action with ID %d', $action_id ) ); - }, 10, 1 ); - add_action( 'action_scheduler/migrate_action_incomplete', function ( $source_id, $destination_id ) { - WP_CLI::warning( sprintf( 'Unable to remove source action with ID %d after migrating to new ID %d', $source_id, $destination_id ) ); - }, 10, 2 ); - add_action( 'action_scheduler/migrated_action', function ( $source_id, $destination_id ) { - WP_CLI::debug( sprintf( 'Migrated source action with ID %d to new store with ID %d', $source_id, $destination_id ) ); - }, 10, 2 ); - add_action( 'action_scheduler/migration_batch_starting', function ( $batch ) { - WP_CLI::debug( 'Beginning migration of batch: ' . print_r( $batch, true ) ); - }, 10, 1 ); - add_action( 'action_scheduler/migration_batch_complete', function ( $batch ) { - WP_CLI::log( sprintf( 'Completed migration of %d actions', count( $batch ) ) ); - }, 10, 1 ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/WP_CLI/ProgressBar.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/WP_CLI/ProgressBar.php deleted file mode 100644 index c86c74e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/WP_CLI/ProgressBar.php +++ /dev/null @@ -1,119 +0,0 @@ -total_ticks = 0; - $this->message = $message; - $this->count = $count; - $this->interval = $interval; - } - - /** - * Increment the progress bar ticks. - */ - public function tick() { - if ( null === $this->progress_bar ) { - $this->setup_progress_bar(); - } - - $this->progress_bar->tick(); - $this->total_ticks++; - - do_action( 'action_scheduler/progress_tick', $this->total_ticks ); - } - - /** - * Get the progress bar tick count. - * - * @return int - */ - public function current() { - return $this->progress_bar ? $this->progress_bar->current() : 0; - } - - /** - * Finish the current progress bar. - */ - public function finish() { - if ( null !== $this->progress_bar ) { - $this->progress_bar->finish(); - } - - $this->progress_bar = null; - } - - /** - * Set the message used when creating the progress bar. - * - * @param string $message The message to be used when the next progress bar is created. - */ - public function set_message( $message ) { - $this->message = $message; - } - - /** - * Set the count for a new progress bar. - * - * @param integer $count The total number of ticks expected to complete. - */ - public function set_count( $count ) { - $this->count = $count; - $this->finish(); - } - - /** - * Set up the progress bar. - */ - protected function setup_progress_bar() { - $this->progress_bar = \WP_CLI\Utils\make_progress_bar( - $this->message, - $this->count, - $this->interval - ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler.php deleted file mode 100644 index a5a6161..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler.php +++ /dev/null @@ -1,304 +0,0 @@ -init(); - $store->init(); - $logger->init(); - $runner->init(); - } - - if ( apply_filters( 'action_scheduler_load_deprecated_functions', true ) ) { - require_once( self::plugin_path( 'deprecated/functions.php' ) ); - } - - if ( defined( 'WP_CLI' ) && WP_CLI ) { - WP_CLI::add_command( 'action-scheduler', 'ActionScheduler_WPCLI_Scheduler_command' ); - if ( ! ActionScheduler_DataController::is_migration_complete() && Controller::instance()->allow_migration() ) { - $command = new Migration_Command(); - $command->register(); - } - } - - self::$data_store_initialized = true; - - /** - * Handle WP comment cleanup after migration. - */ - if ( is_a( $logger, 'ActionScheduler_DBLogger' ) && ActionScheduler_DataController::is_migration_complete() && ActionScheduler_WPCommentCleaner::has_logs() ) { - ActionScheduler_WPCommentCleaner::init(); - } - - add_action( 'action_scheduler/migration_complete', 'ActionScheduler_WPCommentCleaner::maybe_schedule_cleanup' ); - } - - /** - * Check whether the AS data store has been initialized. - * - * @param string $function_name The name of the function being called. Optional. Default `null`. - * @return bool - */ - public static function is_initialized( $function_name = null ) { - if ( ! self::$data_store_initialized && ! empty( $function_name ) ) { - $message = sprintf( __( '%s() was called before the Action Scheduler data store was initialized', 'action-scheduler' ), esc_attr( $function_name ) ); - error_log( $message, E_WARNING ); - } - - return self::$data_store_initialized; - } - - /** - * Determine if the class is one of our abstract classes. - * - * @since 3.0.0 - * - * @param string $class The class name. - * - * @return bool - */ - protected static function is_class_abstract( $class ) { - static $abstracts = array( - 'ActionScheduler' => true, - 'ActionScheduler_Abstract_ListTable' => true, - 'ActionScheduler_Abstract_QueueRunner' => true, - 'ActionScheduler_Abstract_Schedule' => true, - 'ActionScheduler_Abstract_RecurringSchedule' => true, - 'ActionScheduler_Lock' => true, - 'ActionScheduler_Logger' => true, - 'ActionScheduler_Abstract_Schema' => true, - 'ActionScheduler_Store' => true, - 'ActionScheduler_TimezoneHelper' => true, - ); - - return isset( $abstracts[ $class ] ) && $abstracts[ $class ]; - } - - /** - * Determine if the class is one of our migration classes. - * - * @since 3.0.0 - * - * @param string $class The class name. - * - * @return bool - */ - protected static function is_class_migration( $class ) { - static $migration_segments = array( - 'ActionMigrator' => true, - 'BatchFetcher' => true, - 'DBStoreMigrator' => true, - 'DryRun' => true, - 'LogMigrator' => true, - 'Config' => true, - 'Controller' => true, - 'Runner' => true, - 'Scheduler' => true, - ); - - $segments = explode( '_', $class ); - $segment = isset( $segments[ 1 ] ) ? $segments[ 1 ] : $class; - - return isset( $migration_segments[ $segment ] ) && $migration_segments[ $segment ]; - } - - /** - * Determine if the class is one of our WP CLI classes. - * - * @since 3.0.0 - * - * @param string $class The class name. - * - * @return bool - */ - protected static function is_class_cli( $class ) { - static $cli_segments = array( - 'QueueRunner' => true, - 'Command' => true, - 'ProgressBar' => true, - ); - - $segments = explode( '_', $class ); - $segment = isset( $segments[ 1 ] ) ? $segments[ 1 ] : $class; - - return isset( $cli_segments[ $segment ] ) && $cli_segments[ $segment ]; - } - - final public function __clone() { - trigger_error("Singleton. No cloning allowed!", E_USER_ERROR); - } - - final public function __wakeup() { - trigger_error("Singleton. No serialization allowed!", E_USER_ERROR); - } - - final private function __construct() {} - - /** Deprecated **/ - - public static function get_datetime_object( $when = null, $timezone = 'UTC' ) { - _deprecated_function( __METHOD__, '2.0', 'wcs_add_months()' ); - return as_get_datetime_object( $when, $timezone ); - } - - /** - * Issue deprecated warning if an Action Scheduler function is called in the shutdown hook. - * - * @param string $function_name The name of the function being called. - * @deprecated 3.1.6. - */ - public static function check_shutdown_hook( $function_name ) { - _deprecated_function( __FUNCTION__, '3.1.6' ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_ListTable.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_ListTable.php deleted file mode 100644 index 334d5b5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_ListTable.php +++ /dev/null @@ -1,674 +0,0 @@ - value pair. The - * key must much the table column name and the value is the label, which is - * automatically translated. - */ - protected $columns = array(); - - /** - * Defines the row-actions. It expects an array where the key - * is the column name and the value is an array of actions. - * - * The array of actions are key => value, where key is the method name - * (with the prefix row_action_) and the value is the label - * and title. - */ - protected $row_actions = array(); - - /** - * The Primary key of our table - */ - protected $ID = 'ID'; - - /** - * Enables sorting, it expects an array - * of columns (the column names are the values) - */ - protected $sort_by = array(); - - protected $filter_by = array(); - - /** - * @var array The status name => count combinations for this table's items. Used to display status filters. - */ - protected $status_counts = array(); - - /** - * @var array Notices to display when loading the table. Array of arrays of form array( 'class' => {updated|error}, 'message' => 'This is the notice text display.' ). - */ - protected $admin_notices = array(); - - /** - * @var string Localised string displayed in the

    element above the able. - */ - protected $table_header; - - /** - * Enables bulk actions. It must be an array where the key is the action name - * and the value is the label (which is translated automatically). It is important - * to notice that it will check that the method exists (`bulk_$name`) and will throw - * an exception if it does not exists. - * - * This class will automatically check if the current request has a bulk action, will do the - * validations and afterwards will execute the bulk method, with two arguments. The first argument - * is the array with primary keys, the second argument is a string with a list of the primary keys, - * escaped and ready to use (with `IN`). - */ - protected $bulk_actions = array(); - - /** - * Makes translation easier, it basically just wraps - * `_x` with some default (the package name). - * - * @deprecated 3.0.0 - */ - protected function translate( $text, $context = '' ) { - return $text; - } - - /** - * Reads `$this->bulk_actions` and returns an array that WP_List_Table understands. It - * also validates that the bulk method handler exists. It throws an exception because - * this is a library meant for developers and missing a bulk method is a development-time error. - */ - protected function get_bulk_actions() { - $actions = array(); - - foreach ( $this->bulk_actions as $action => $label ) { - if ( ! is_callable( array( $this, 'bulk_' . $action ) ) ) { - throw new RuntimeException( "The bulk action $action does not have a callback method" ); - } - - $actions[ $action ] = $label; - } - - return $actions; - } - - /** - * Checks if the current request has a bulk action. If that is the case it will validate and will - * execute the bulk method handler. Regardless if the action is valid or not it will redirect to - * the previous page removing the current arguments that makes this request a bulk action. - */ - protected function process_bulk_action() { - global $wpdb; - // Detect when a bulk action is being triggered. - $action = $this->current_action(); - if ( ! $action ) { - return; - } - - check_admin_referer( 'bulk-' . $this->_args['plural'] ); - - $method = 'bulk_' . $action; - if ( array_key_exists( $action, $this->bulk_actions ) && is_callable( array( $this, $method ) ) && ! empty( $_GET['ID'] ) && is_array( $_GET['ID'] ) ) { - $ids_sql = '(' . implode( ',', array_fill( 0, count( $_GET['ID'] ), '%s' ) ) . ')'; - $this->$method( $_GET['ID'], $wpdb->prepare( $ids_sql, $_GET['ID'] ) ); - } - - wp_redirect( remove_query_arg( - array( '_wp_http_referer', '_wpnonce', 'ID', 'action', 'action2' ), - wp_unslash( $_SERVER['REQUEST_URI'] ) - ) ); - exit; - } - - /** - * Default code for deleting entries. - * validated already by process_bulk_action() - */ - protected function bulk_delete( array $ids, $ids_sql ) { - $store = ActionScheduler::store(); - foreach ( $ids as $action_id ) { - $store->delete( $action_id ); - } - } - - /** - * Prepares the _column_headers property which is used by WP_Table_List at rendering. - * It merges the columns and the sortable columns. - */ - protected function prepare_column_headers() { - $this->_column_headers = array( - $this->get_columns(), - array(), - $this->get_sortable_columns(), - ); - } - - /** - * Reads $this->sort_by and returns the columns name in a format that WP_Table_List - * expects - */ - public function get_sortable_columns() { - $sort_by = array(); - foreach ( $this->sort_by as $column ) { - $sort_by[ $column ] = array( $column, true ); - } - return $sort_by; - } - - /** - * Returns the columns names for rendering. It adds a checkbox for selecting everything - * as the first column - */ - public function get_columns() { - $columns = array_merge( - array( 'cb' => '' ), - $this->columns - ); - - return $columns; - } - - /** - * Get prepared LIMIT clause for items query - * - * @global wpdb $wpdb - * - * @return string Prepared LIMIT clause for items query. - */ - protected function get_items_query_limit() { - global $wpdb; - - $per_page = $this->get_items_per_page( $this->package . '_items_per_page', $this->items_per_page ); - return $wpdb->prepare( 'LIMIT %d', $per_page ); - } - - /** - * Returns the number of items to offset/skip for this current view. - * - * @return int - */ - protected function get_items_offset() { - $per_page = $this->get_items_per_page( $this->package . '_items_per_page', $this->items_per_page ); - $current_page = $this->get_pagenum(); - if ( 1 < $current_page ) { - $offset = $per_page * ( $current_page - 1 ); - } else { - $offset = 0; - } - - return $offset; - } - - /** - * Get prepared OFFSET clause for items query - * - * @global wpdb $wpdb - * - * @return string Prepared OFFSET clause for items query. - */ - protected function get_items_query_offset() { - global $wpdb; - - return $wpdb->prepare( 'OFFSET %d', $this->get_items_offset() ); - } - - /** - * Prepares the ORDER BY sql statement. It uses `$this->sort_by` to know which - * columns are sortable. This requests validates the orderby $_GET parameter is a valid - * column and sortable. It will also use order (ASC|DESC) using DESC by default. - */ - protected function get_items_query_order() { - if ( empty( $this->sort_by ) ) { - return ''; - } - - $orderby = esc_sql( $this->get_request_orderby() ); - $order = esc_sql( $this->get_request_order() ); - - return "ORDER BY {$orderby} {$order}"; - } - - /** - * Return the sortable column specified for this request to order the results by, if any. - * - * @return string - */ - protected function get_request_orderby() { - - $valid_sortable_columns = array_values( $this->sort_by ); - - if ( ! empty( $_GET['orderby'] ) && in_array( $_GET['orderby'], $valid_sortable_columns ) ) { - $orderby = sanitize_text_field( $_GET['orderby'] ); - } else { - $orderby = $valid_sortable_columns[0]; - } - - return $orderby; - } - - /** - * Return the sortable column order specified for this request. - * - * @return string - */ - protected function get_request_order() { - - if ( ! empty( $_GET['order'] ) && 'desc' === strtolower( $_GET['order'] ) ) { - $order = 'DESC'; - } else { - $order = 'ASC'; - } - - return $order; - } - - /** - * Return the status filter for this request, if any. - * - * @return string - */ - protected function get_request_status() { - $status = ( ! empty( $_GET['status'] ) ) ? $_GET['status'] : ''; - return $status; - } - - /** - * Return the search filter for this request, if any. - * - * @return string - */ - protected function get_request_search_query() { - $search_query = ( ! empty( $_GET['s'] ) ) ? $_GET['s'] : ''; - return $search_query; - } - - /** - * Process and return the columns name. This is meant for using with SQL, this means it - * always includes the primary key. - * - * @return array - */ - protected function get_table_columns() { - $columns = array_keys( $this->columns ); - if ( ! in_array( $this->ID, $columns ) ) { - $columns[] = $this->ID; - } - - return $columns; - } - - /** - * Check if the current request is doing a "full text" search. If that is the case - * prepares the SQL to search texts using LIKE. - * - * If the current request does not have any search or if this list table does not support - * that feature it will return an empty string. - * - * TODO: - * - Improve search doing LIKE by word rather than by phrases. - * - * @return string - */ - protected function get_items_query_search() { - global $wpdb; - - if ( empty( $_GET['s'] ) || empty( $this->search_by ) ) { - return ''; - } - - $filter = array(); - foreach ( $this->search_by as $column ) { - $filter[] = $wpdb->prepare('`' . $column . '` like "%%s%"', $wpdb->esc_like( $_GET['s'] )); - } - return implode( ' OR ', $filter ); - } - - /** - * Prepares the SQL to filter rows by the options defined at `$this->filter_by`. Before trusting - * any data sent by the user it validates that it is a valid option. - */ - protected function get_items_query_filters() { - global $wpdb; - - if ( ! $this->filter_by || empty( $_GET['filter_by'] ) || ! is_array( $_GET['filter_by'] ) ) { - return ''; - } - - $filter = array(); - - foreach ( $this->filter_by as $column => $options ) { - if ( empty( $_GET['filter_by'][ $column ] ) || empty( $options[ $_GET['filter_by'][ $column ] ] ) ) { - continue; - } - - $filter[] = $wpdb->prepare( "`$column` = %s", $_GET['filter_by'][ $column ] ); - } - - return implode( ' AND ', $filter ); - - } - - /** - * Prepares the data to feed WP_Table_List. - * - * This has the core for selecting, sorting and filting data. To keep the code simple - * its logic is split among many methods (get_items_query_*). - * - * Beside populating the items this function will also count all the records that matches - * the filtering criteria and will do fill the pagination variables. - */ - public function prepare_items() { - global $wpdb; - - $this->process_bulk_action(); - - $this->process_row_actions(); - - if ( ! empty( $_REQUEST['_wp_http_referer'] ) ) { - // _wp_http_referer is used only on bulk actions, we remove it to keep the $_GET shorter - wp_redirect( remove_query_arg( array( '_wp_http_referer', '_wpnonce' ), wp_unslash( $_SERVER['REQUEST_URI'] ) ) ); - exit; - } - - $this->prepare_column_headers(); - - $limit = $this->get_items_query_limit(); - $offset = $this->get_items_query_offset(); - $order = $this->get_items_query_order(); - $where = array_filter(array( - $this->get_items_query_search(), - $this->get_items_query_filters(), - )); - $columns = '`' . implode( '`, `', $this->get_table_columns() ) . '`'; - - if ( ! empty( $where ) ) { - $where = 'WHERE ('. implode( ') AND (', $where ) . ')'; - } else { - $where = ''; - } - - $sql = "SELECT $columns FROM {$this->table_name} {$where} {$order} {$limit} {$offset}"; - - $this->set_items( $wpdb->get_results( $sql, ARRAY_A ) ); - - $query_count = "SELECT COUNT({$this->ID}) FROM {$this->table_name} {$where}"; - $total_items = $wpdb->get_var( $query_count ); - $per_page = $this->get_items_per_page( $this->package . '_items_per_page', $this->items_per_page ); - $this->set_pagination_args( array( - 'total_items' => $total_items, - 'per_page' => $per_page, - 'total_pages' => ceil( $total_items / $per_page ), - ) ); - } - - public function extra_tablenav( $which ) { - if ( ! $this->filter_by || 'top' !== $which ) { - return; - } - - echo '
    '; - - foreach ( $this->filter_by as $id => $options ) { - $default = ! empty( $_GET['filter_by'][ $id ] ) ? $_GET['filter_by'][ $id ] : ''; - if ( empty( $options[ $default ] ) ) { - $default = ''; - } - - echo ''; - } - - submit_button( esc_html__( 'Filter', 'action-scheduler' ), '', 'filter_action', false, array( 'id' => 'post-query-submit' ) ); - echo '
    '; - } - - /** - * Set the data for displaying. It will attempt to unserialize (There is a chance that some columns - * are serialized). This can be override in child classes for futher data transformation. - */ - protected function set_items( array $items ) { - $this->items = array(); - foreach ( $items as $item ) { - $this->items[ $item[ $this->ID ] ] = array_map( 'maybe_unserialize', $item ); - } - } - - /** - * Renders the checkbox for each row, this is the first column and it is named ID regardless - * of how the primary key is named (to keep the code simpler). The bulk actions will do the proper - * name transformation though using `$this->ID`. - */ - public function column_cb( $row ) { - return ''; - } - - /** - * Renders the row-actions. - * - * This method renders the action menu, it reads the definition from the $row_actions property, - * and it checks that the row action method exists before rendering it. - * - * @param array $row Row to render - * @param $column_name Current row - * @return - */ - protected function maybe_render_actions( $row, $column_name ) { - if ( empty( $this->row_actions[ $column_name ] ) ) { - return; - } - - $row_id = $row[ $this->ID ]; - - $actions = '
    '; - $action_count = 0; - foreach ( $this->row_actions[ $column_name ] as $action_key => $action ) { - - $action_count++; - - if ( ! method_exists( $this, 'row_action_' . $action_key ) ) { - continue; - } - - $action_link = ! empty( $action['link'] ) ? $action['link'] : add_query_arg( array( 'row_action' => $action_key, 'row_id' => $row_id, 'nonce' => wp_create_nonce( $action_key . '::' . $row_id ) ) ); - $span_class = ! empty( $action['class'] ) ? $action['class'] : $action_key; - $separator = ( $action_count < count( $this->row_actions[ $column_name ] ) ) ? ' | ' : ''; - - $actions .= sprintf( '', esc_attr( $span_class ) ); - $actions .= sprintf( '%3$s', esc_url( $action_link ), esc_attr( $action['desc'] ), esc_html( $action['name'] ) ); - $actions .= sprintf( '%s', $separator ); - } - $actions .= '
    '; - return $actions; - } - - protected function process_row_actions() { - $parameters = array( 'row_action', 'row_id', 'nonce' ); - foreach ( $parameters as $parameter ) { - if ( empty( $_REQUEST[ $parameter ] ) ) { - return; - } - } - - $method = 'row_action_' . $_REQUEST['row_action']; - - if ( $_REQUEST['nonce'] === wp_create_nonce( $_REQUEST[ 'row_action' ] . '::' . $_REQUEST[ 'row_id' ] ) && method_exists( $this, $method ) ) { - $this->$method( $_REQUEST['row_id'] ); - } - - wp_redirect( remove_query_arg( - array( 'row_id', 'row_action', 'nonce' ), - wp_unslash( $_SERVER['REQUEST_URI'] ) - ) ); - exit; - } - - /** - * Default column formatting, it will escape everythig for security. - */ - public function column_default( $item, $column_name ) { - $column_html = esc_html( $item[ $column_name ] ); - $column_html .= $this->maybe_render_actions( $item, $column_name ); - return $column_html; - } - - /** - * Display the table heading and search query, if any - */ - protected function display_header() { - echo '

    ' . esc_attr( $this->table_header ) . '

    '; - if ( $this->get_request_search_query() ) { - /* translators: %s: search query */ - echo '' . esc_attr( sprintf( __( 'Search results for "%s"', 'action-scheduler' ), $this->get_request_search_query() ) ) . ''; - } - echo '
    '; - } - - /** - * Display the table heading and search query, if any - */ - protected function display_admin_notices() { - foreach ( $this->admin_notices as $notice ) { - echo '
    '; - echo '

    ' . wp_kses_post( $notice['message'] ) . '

    '; - echo '
    '; - } - } - - /** - * Prints the available statuses so the user can click to filter. - */ - protected function display_filter_by_status() { - - $status_list_items = array(); - $request_status = $this->get_request_status(); - - // Helper to set 'all' filter when not set on status counts passed in - if ( ! isset( $this->status_counts['all'] ) ) { - $this->status_counts = array( 'all' => array_sum( $this->status_counts ) ) + $this->status_counts; - } - - foreach ( $this->status_counts as $status_name => $count ) { - - if ( 0 === $count ) { - continue; - } - - if ( $status_name === $request_status || ( empty( $request_status ) && 'all' === $status_name ) ) { - $status_list_item = '
  • %3$s (%4$d)
  • '; - } else { - $status_list_item = '
  • %3$s (%4$d)
  • '; - } - - $status_filter_url = ( 'all' === $status_name ) ? remove_query_arg( 'status' ) : add_query_arg( 'status', $status_name ); - $status_filter_url = remove_query_arg( array( 'paged', 's' ), $status_filter_url ); - $status_list_items[] = sprintf( $status_list_item, esc_attr( $status_name ), esc_url( $status_filter_url ), esc_html( ucfirst( $status_name ) ), absint( $count ) ); - } - - if ( $status_list_items ) { - echo '
      '; - echo implode( " | \n", $status_list_items ); - echo '
    '; - } - } - - /** - * Renders the table list, we override the original class to render the table inside a form - * and to render any needed HTML (like the search box). By doing so the callee of a function can simple - * forget about any extra HTML. - */ - protected function display_table() { - echo '
    '; - foreach ( $_GET as $key => $value ) { - if ( '_' === $key[0] || 'paged' === $key ) { - continue; - } - echo ''; - } - if ( ! empty( $this->search_by ) ) { - echo $this->search_box( $this->get_search_box_button_text(), 'plugin' ); // WPCS: XSS OK - } - parent::display(); - echo '
    '; - } - - /** - * Process any pending actions. - */ - public function process_actions() { - $this->process_bulk_action(); - $this->process_row_actions(); - - if ( ! empty( $_REQUEST['_wp_http_referer'] ) ) { - // _wp_http_referer is used only on bulk actions, we remove it to keep the $_GET shorter - wp_redirect( remove_query_arg( array( '_wp_http_referer', '_wpnonce' ), wp_unslash( $_SERVER['REQUEST_URI'] ) ) ); - exit; - } - } - - /** - * Render the list table page, including header, notices, status filters and table. - */ - public function display_page() { - $this->prepare_items(); - - echo '
    '; - $this->display_header(); - $this->display_admin_notices(); - $this->display_filter_by_status(); - $this->display_table(); - echo '
    '; - } - - /** - * Get the text to display in the search box on the list table. - */ - protected function get_search_box_placeholder() { - return esc_html__( 'Search', 'action-scheduler' ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_QueueRunner.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_QueueRunner.php deleted file mode 100644 index 82ecbc6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_QueueRunner.php +++ /dev/null @@ -1,240 +0,0 @@ -created_time = microtime( true ); - - $this->store = $store ? $store : ActionScheduler_Store::instance(); - $this->monitor = $monitor ? $monitor : new ActionScheduler_FatalErrorMonitor( $this->store ); - $this->cleaner = $cleaner ? $cleaner : new ActionScheduler_QueueCleaner( $this->store ); - } - - /** - * Process an individual action. - * - * @param int $action_id The action ID to process. - * @param string $context Optional identifer for the context in which this action is being processed, e.g. 'WP CLI' or 'WP Cron' - * Generally, this should be capitalised and not localised as it's a proper noun. - */ - public function process_action( $action_id, $context = '' ) { - try { - $valid_action = false; - do_action( 'action_scheduler_before_execute', $action_id, $context ); - - if ( ActionScheduler_Store::STATUS_PENDING !== $this->store->get_status( $action_id ) ) { - do_action( 'action_scheduler_execution_ignored', $action_id, $context ); - return; - } - - $valid_action = true; - do_action( 'action_scheduler_begin_execute', $action_id, $context ); - - $action = $this->store->fetch_action( $action_id ); - $this->store->log_execution( $action_id ); - $action->execute(); - do_action( 'action_scheduler_after_execute', $action_id, $action, $context ); - $this->store->mark_complete( $action_id ); - } catch ( Exception $e ) { - if ( $valid_action ) { - $this->store->mark_failure( $action_id ); - do_action( 'action_scheduler_failed_execution', $action_id, $e, $context ); - } else { - do_action( 'action_scheduler_failed_validation', $action_id, $e, $context ); - } - } - - if ( isset( $action ) && is_a( $action, 'ActionScheduler_Action' ) && $action->get_schedule()->is_recurring() ) { - $this->schedule_next_instance( $action, $action_id ); - } - } - - /** - * Schedule the next instance of the action if necessary. - * - * @param ActionScheduler_Action $action - * @param int $action_id - */ - protected function schedule_next_instance( ActionScheduler_Action $action, $action_id ) { - try { - ActionScheduler::factory()->repeat( $action ); - } catch ( Exception $e ) { - do_action( 'action_scheduler_failed_to_schedule_next_instance', $action_id, $e, $action ); - } - } - - /** - * Run the queue cleaner. - * - * @author Jeremy Pry - */ - protected function run_cleanup() { - $this->cleaner->clean( 10 * $this->get_time_limit() ); - } - - /** - * Get the number of concurrent batches a runner allows. - * - * @return int - */ - public function get_allowed_concurrent_batches() { - return apply_filters( 'action_scheduler_queue_runner_concurrent_batches', 1 ); - } - - /** - * Check if the number of allowed concurrent batches is met or exceeded. - * - * @return bool - */ - public function has_maximum_concurrent_batches() { - return $this->store->get_claim_count() >= $this->get_allowed_concurrent_batches(); - } - - /** - * Get the maximum number of seconds a batch can run for. - * - * @return int The number of seconds. - */ - protected function get_time_limit() { - - $time_limit = 30; - - // Apply deprecated filter from deprecated get_maximum_execution_time() method - if ( has_filter( 'action_scheduler_maximum_execution_time' ) ) { - _deprecated_function( 'action_scheduler_maximum_execution_time', '2.1.1', 'action_scheduler_queue_runner_time_limit' ); - $time_limit = apply_filters( 'action_scheduler_maximum_execution_time', $time_limit ); - } - - return absint( apply_filters( 'action_scheduler_queue_runner_time_limit', $time_limit ) ); - } - - /** - * Get the number of seconds the process has been running. - * - * @return int The number of seconds. - */ - protected function get_execution_time() { - $execution_time = microtime( true ) - $this->created_time; - - // Get the CPU time if the hosting environment uses it rather than wall-clock time to calculate a process's execution time. - if ( function_exists( 'getrusage' ) && apply_filters( 'action_scheduler_use_cpu_execution_time', defined( 'PANTHEON_ENVIRONMENT' ) ) ) { - $resource_usages = getrusage(); - - if ( isset( $resource_usages['ru_stime.tv_usec'], $resource_usages['ru_stime.tv_usec'] ) ) { - $execution_time = $resource_usages['ru_stime.tv_sec'] + ( $resource_usages['ru_stime.tv_usec'] / 1000000 ); - } - } - - return $execution_time; - } - - /** - * Check if the host's max execution time is (likely) to be exceeded if processing more actions. - * - * @param int $processed_actions The number of actions processed so far - used to determine the likelihood of exceeding the time limit if processing another action - * @return bool - */ - protected function time_likely_to_be_exceeded( $processed_actions ) { - - $execution_time = $this->get_execution_time(); - $max_execution_time = $this->get_time_limit(); - $time_per_action = $execution_time / $processed_actions; - $estimated_time = $execution_time + ( $time_per_action * 3 ); - $likely_to_be_exceeded = $estimated_time > $max_execution_time; - - return apply_filters( 'action_scheduler_maximum_execution_time_likely_to_be_exceeded', $likely_to_be_exceeded, $this, $processed_actions, $execution_time, $max_execution_time ); - } - - /** - * Get memory limit - * - * Based on WP_Background_Process::get_memory_limit() - * - * @return int - */ - protected function get_memory_limit() { - if ( function_exists( 'ini_get' ) ) { - $memory_limit = ini_get( 'memory_limit' ); - } else { - $memory_limit = '128M'; // Sensible default, and minimum required by WooCommerce - } - - if ( ! $memory_limit || -1 === $memory_limit || '-1' === $memory_limit ) { - // Unlimited, set to 32GB. - $memory_limit = '32G'; - } - - return ActionScheduler_Compatibility::convert_hr_to_bytes( $memory_limit ); - } - - /** - * Memory exceeded - * - * Ensures the batch process never exceeds 90% of the maximum WordPress memory. - * - * Based on WP_Background_Process::memory_exceeded() - * - * @return bool - */ - protected function memory_exceeded() { - - $memory_limit = $this->get_memory_limit() * 0.90; - $current_memory = memory_get_usage( true ); - $memory_exceeded = $current_memory >= $memory_limit; - - return apply_filters( 'action_scheduler_memory_exceeded', $memory_exceeded, $this ); - } - - /** - * See if the batch limits have been exceeded, which is when memory usage is almost at - * the maximum limit, or the time to process more actions will exceed the max time limit. - * - * Based on WC_Background_Process::batch_limits_exceeded() - * - * @param int $processed_actions The number of actions processed so far - used to determine the likelihood of exceeding the time limit if processing another action - * @return bool - */ - protected function batch_limits_exceeded( $processed_actions ) { - return $this->memory_exceeded() || $this->time_likely_to_be_exceeded( $processed_actions ); - } - - /** - * Process actions in the queue. - * - * @author Jeremy Pry - * @param string $context Optional identifer for the context in which this action is being processed, e.g. 'WP CLI' or 'WP Cron' - * Generally, this should be capitalised and not localised as it's a proper noun. - * @return int The number of actions processed. - */ - abstract public function run( $context = '' ); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_RecurringSchedule.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_RecurringSchedule.php deleted file mode 100644 index 131d475..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_RecurringSchedule.php +++ /dev/null @@ -1,102 +0,0 @@ -start - and logic to calculate the next run date after - * that - @see $this->calculate_next(). The $first_date property also keeps a record of when the very - * first instance of this chain of schedules ran. - * - * @var DateTime - */ - private $first_date = NULL; - - /** - * Timestamp equivalent of @see $this->first_date - * - * @var int - */ - protected $first_timestamp = NULL; - - /** - * The recurrance between each time an action is run using this schedule. - * Used to calculate the start date & time. Can be a number of seconds, in the - * case of ActionScheduler_IntervalSchedule, or a cron expression, as in the - * case of ActionScheduler_CronSchedule. Or something else. - * - * @var mixed - */ - protected $recurrence; - - /** - * @param DateTime $date The date & time to run the action. - * @param mixed $recurrence The data used to determine the schedule's recurrance. - * @param DateTime|null $first (Optional) The date & time the first instance of this interval schedule ran. Default null, meaning this is the first instance. - */ - public function __construct( DateTime $date, $recurrence, DateTime $first = null ) { - parent::__construct( $date ); - $this->first_date = empty( $first ) ? $date : $first; - $this->recurrence = $recurrence; - } - - /** - * @return bool - */ - public function is_recurring() { - return true; - } - - /** - * Get the date & time of the first schedule in this recurring series. - * - * @return DateTime|null - */ - public function get_first_date() { - return clone $this->first_date; - } - - /** - * @return string - */ - public function get_recurrence() { - return $this->recurrence; - } - - /** - * For PHP 5.2 compat, since DateTime objects can't be serialized - * @return array - */ - public function __sleep() { - $sleep_params = parent::__sleep(); - $this->first_timestamp = $this->first_date->getTimestamp(); - return array_merge( $sleep_params, array( - 'first_timestamp', - 'recurrence' - ) ); - } - - /** - * Unserialize recurring schedules serialized/stored prior to AS 3.0.0 - * - * Prior to Action Scheduler 3.0.0, schedules used different property names to refer - * to equivalent data. For example, ActionScheduler_IntervalSchedule::start_timestamp - * was the same as ActionScheduler_SimpleSchedule::timestamp. This was addressed in - * Action Scheduler 3.0.0, where properties and property names were aligned for better - * inheritance. To maintain backward compatibility with scheduled serialized and stored - * prior to 3.0, we need to correctly map the old property names. - */ - public function __wakeup() { - parent::__wakeup(); - if ( $this->first_timestamp > 0 ) { - $this->first_date = as_get_datetime_object( $this->first_timestamp ); - } else { - $this->first_date = $this->get_date(); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schedule.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schedule.php deleted file mode 100644 index 2631ef5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schedule.php +++ /dev/null @@ -1,83 +0,0 @@ -scheduled_date - * - * @var int - */ - protected $scheduled_timestamp = NULL; - - /** - * @param DateTime $date The date & time to run the action. - */ - public function __construct( DateTime $date ) { - $this->scheduled_date = $date; - } - - /** - * Check if a schedule should recur. - * - * @return bool - */ - abstract public function is_recurring(); - - /** - * Calculate when the next instance of this schedule would run based on a given date & time. - * - * @param DateTime $after - * @return DateTime - */ - abstract protected function calculate_next( DateTime $after ); - - /** - * Get the next date & time when this schedule should run after a given date & time. - * - * @param DateTime $after - * @return DateTime|null - */ - public function get_next( DateTime $after ) { - $after = clone $after; - if ( $after > $this->scheduled_date ) { - $after = $this->calculate_next( $after ); - return $after; - } - return clone $this->scheduled_date; - } - - /** - * Get the date & time the schedule is set to run. - * - * @return DateTime|null - */ - public function get_date() { - return $this->scheduled_date; - } - - /** - * For PHP 5.2 compat, since DateTime objects can't be serialized - * @return array - */ - public function __sleep() { - $this->scheduled_timestamp = $this->scheduled_date->getTimestamp(); - return array( - 'scheduled_timestamp', - ); - } - - public function __wakeup() { - $this->scheduled_date = as_get_datetime_object( $this->scheduled_timestamp ); - unset( $this->scheduled_timestamp ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schema.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schema.php deleted file mode 100644 index 62699c7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schema.php +++ /dev/null @@ -1,135 +0,0 @@ -tables as $table ) { - $wpdb->tables[] = $table; - $name = $this->get_full_table_name( $table ); - $wpdb->$table = $name; - } - - // create the tables - if ( $this->schema_update_required() || $force_update ) { - foreach ( $this->tables as $table ) { - $this->update_table( $table ); - } - $this->mark_schema_update_complete(); - } - } - - /** - * @param string $table The name of the table - * - * @return string The CREATE TABLE statement, suitable for passing to dbDelta - */ - abstract protected function get_table_definition( $table ); - - /** - * Determine if the database schema is out of date - * by comparing the integer found in $this->schema_version - * with the option set in the WordPress options table - * - * @return bool - */ - private function schema_update_required() { - $option_name = 'schema-' . static::class; - $version_found_in_db = get_option( $option_name, 0 ); - - // Check for schema option stored by the Action Scheduler Custom Tables plugin in case site has migrated from that plugin with an older schema - if ( 0 === $version_found_in_db ) { - - $plugin_option_name = 'schema-'; - - switch ( static::class ) { - case 'ActionScheduler_StoreSchema' : - $plugin_option_name .= 'Action_Scheduler\Custom_Tables\DB_Store_Table_Maker'; - break; - case 'ActionScheduler_LoggerSchema' : - $plugin_option_name .= 'Action_Scheduler\Custom_Tables\DB_Logger_Table_Maker'; - break; - } - - $version_found_in_db = get_option( $plugin_option_name, 0 ); - - delete_option( $plugin_option_name ); - } - - return version_compare( $version_found_in_db, $this->schema_version, '<' ); - } - - /** - * Update the option in WordPress to indicate that - * our schema is now up to date - * - * @return void - */ - private function mark_schema_update_complete() { - $option_name = 'schema-' . static::class; - - // work around race conditions and ensure that our option updates - $value_to_save = (string) $this->schema_version . '.0.' . time(); - - update_option( $option_name, $value_to_save ); - } - - /** - * Update the schema for the given table - * - * @param string $table The name of the table to update - * - * @return void - */ - private function update_table( $table ) { - require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); - $definition = $this->get_table_definition( $table ); - if ( $definition ) { - $updated = dbDelta( $definition ); - foreach ( $updated as $updated_table => $update_description ) { - if ( strpos( $update_description, 'Created table' ) === 0 ) { - do_action( 'action_scheduler/created_table', $updated_table, $table ); - } - } - } - } - - /** - * @param string $table - * - * @return string The full name of the table, including the - * table prefix for the current blog - */ - protected function get_full_table_name( $table ) { - return $GLOBALS[ 'wpdb' ]->prefix . $table; - } -} \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Lock.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Lock.php deleted file mode 100644 index 86e8528..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Lock.php +++ /dev/null @@ -1,62 +0,0 @@ -get_expiration( $lock_type ) >= time() ); - } - - /** - * Set a lock. - * - * @param string $lock_type A string to identify different lock types. - * @return bool - */ - abstract public function set( $lock_type ); - - /** - * If a lock is set, return the timestamp it was set to expiry. - * - * @param string $lock_type A string to identify different lock types. - * @return bool|int False if no lock is set, otherwise the timestamp for when the lock is set to expire. - */ - abstract public function get_expiration( $lock_type ); - - /** - * Get the amount of time to set for a given lock. 60 seconds by default. - * - * @param string $lock_type A string to identify different lock types. - * @return int - */ - protected function get_duration( $lock_type ) { - return apply_filters( 'action_scheduler_lock_duration', self::$lock_duration, $lock_type ); - } - - /** - * @return ActionScheduler_Lock - */ - public static function instance() { - if ( empty( self::$locker ) ) { - $class = apply_filters( 'action_scheduler_lock_class', 'ActionScheduler_OptionLock' ); - self::$locker = new $class(); - } - return self::$locker; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Logger.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Logger.php deleted file mode 100644 index 3e7252c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Logger.php +++ /dev/null @@ -1,176 +0,0 @@ -hook_stored_action(); - add_action( 'action_scheduler_canceled_action', array( $this, 'log_canceled_action' ), 10, 1 ); - add_action( 'action_scheduler_begin_execute', array( $this, 'log_started_action' ), 10, 2 ); - add_action( 'action_scheduler_after_execute', array( $this, 'log_completed_action' ), 10, 3 ); - add_action( 'action_scheduler_failed_execution', array( $this, 'log_failed_action' ), 10, 3 ); - add_action( 'action_scheduler_failed_action', array( $this, 'log_timed_out_action' ), 10, 2 ); - add_action( 'action_scheduler_unexpected_shutdown', array( $this, 'log_unexpected_shutdown' ), 10, 2 ); - add_action( 'action_scheduler_reset_action', array( $this, 'log_reset_action' ), 10, 1 ); - add_action( 'action_scheduler_execution_ignored', array( $this, 'log_ignored_action' ), 10, 2 ); - add_action( 'action_scheduler_failed_fetch_action', array( $this, 'log_failed_fetch_action' ), 10, 2 ); - add_action( 'action_scheduler_failed_to_schedule_next_instance', array( $this, 'log_failed_schedule_next_instance' ), 10, 2 ); - add_action( 'action_scheduler_bulk_cancel_actions', array( $this, 'bulk_log_cancel_actions' ), 10, 1 ); - } - - public function hook_stored_action() { - add_action( 'action_scheduler_stored_action', array( $this, 'log_stored_action' ) ); - } - - public function unhook_stored_action() { - remove_action( 'action_scheduler_stored_action', array( $this, 'log_stored_action' ) ); - } - - public function log_stored_action( $action_id ) { - $this->log( $action_id, __( 'action created', 'action-scheduler' ) ); - } - - public function log_canceled_action( $action_id ) { - $this->log( $action_id, __( 'action canceled', 'action-scheduler' ) ); - } - - public function log_started_action( $action_id, $context = '' ) { - if ( ! empty( $context ) ) { - /* translators: %s: context */ - $message = sprintf( __( 'action started via %s', 'action-scheduler' ), $context ); - } else { - $message = __( 'action started', 'action-scheduler' ); - } - $this->log( $action_id, $message ); - } - - public function log_completed_action( $action_id, $action = NULL, $context = '' ) { - if ( ! empty( $context ) ) { - /* translators: %s: context */ - $message = sprintf( __( 'action complete via %s', 'action-scheduler' ), $context ); - } else { - $message = __( 'action complete', 'action-scheduler' ); - } - $this->log( $action_id, $message ); - } - - public function log_failed_action( $action_id, Exception $exception, $context = '' ) { - if ( ! empty( $context ) ) { - /* translators: 1: context 2: exception message */ - $message = sprintf( __( 'action failed via %1$s: %2$s', 'action-scheduler' ), $context, $exception->getMessage() ); - } else { - /* translators: %s: exception message */ - $message = sprintf( __( 'action failed: %s', 'action-scheduler' ), $exception->getMessage() ); - } - $this->log( $action_id, $message ); - } - - public function log_timed_out_action( $action_id, $timeout ) { - /* translators: %s: amount of time */ - $this->log( $action_id, sprintf( __( 'action timed out after %s seconds', 'action-scheduler' ), $timeout ) ); - } - - public function log_unexpected_shutdown( $action_id, $error ) { - if ( ! empty( $error ) ) { - /* translators: 1: error message 2: filename 3: line */ - $this->log( $action_id, sprintf( __( 'unexpected shutdown: PHP Fatal error %1$s in %2$s on line %3$s', 'action-scheduler' ), $error['message'], $error['file'], $error['line'] ) ); - } - } - - public function log_reset_action( $action_id ) { - $this->log( $action_id, __( 'action reset', 'action-scheduler' ) ); - } - - public function log_ignored_action( $action_id, $context = '' ) { - if ( ! empty( $context ) ) { - /* translators: %s: context */ - $message = sprintf( __( 'action ignored via %s', 'action-scheduler' ), $context ); - } else { - $message = __( 'action ignored', 'action-scheduler' ); - } - $this->log( $action_id, $message ); - } - - /** - * @param string $action_id - * @param Exception|NULL $exception The exception which occured when fetching the action. NULL by default for backward compatibility. - * - * @return ActionScheduler_LogEntry[] - */ - public function log_failed_fetch_action( $action_id, Exception $exception = NULL ) { - - if ( ! is_null( $exception ) ) { - /* translators: %s: exception message */ - $log_message = sprintf( __( 'There was a failure fetching this action: %s', 'action-scheduler' ), $exception->getMessage() ); - } else { - $log_message = __( 'There was a failure fetching this action', 'action-scheduler' ); - } - - $this->log( $action_id, $log_message ); - } - - public function log_failed_schedule_next_instance( $action_id, Exception $exception ) { - /* translators: %s: exception message */ - $this->log( $action_id, sprintf( __( 'There was a failure scheduling the next instance of this action: %s', 'action-scheduler' ), $exception->getMessage() ) ); - } - - /** - * Bulk add cancel action log entries. - * - * Implemented here for backward compatibility. Should be implemented in parent loggers - * for more performant bulk logging. - * - * @param array $action_ids List of action ID. - */ - public function bulk_log_cancel_actions( $action_ids ) { - if ( empty( $action_ids ) ) { - return; - } - - foreach ( $action_ids as $action_id ) { - $this->log_canceled_action( $action_id ); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Store.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Store.php deleted file mode 100644 index 95b5ee7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Store.php +++ /dev/null @@ -1,345 +0,0 @@ -', '>=', '<', '<=', '=') ) ) { - return $comparison_operator; - } - return '='; - } - - /** - * Get the time MySQL formated date/time string for an action's (next) scheduled date. - * - * @param ActionScheduler_Action $action - * @param DateTime $scheduled_date (optional) - * @return string - */ - protected function get_scheduled_date_string( ActionScheduler_Action $action, DateTime $scheduled_date = NULL ) { - $next = null === $scheduled_date ? $action->get_schedule()->get_date() : $scheduled_date; - if ( ! $next ) { - return '0000-00-00 00:00:00'; - } - $next->setTimezone( new DateTimeZone( 'UTC' ) ); - - return $next->format( 'Y-m-d H:i:s' ); - } - - /** - * Get the time MySQL formated date/time string for an action's (next) scheduled date. - * - * @param ActionScheduler_Action $action - * @param DateTime $scheduled_date (optional) - * @return string - */ - protected function get_scheduled_date_string_local( ActionScheduler_Action $action, DateTime $scheduled_date = NULL ) { - $next = null === $scheduled_date ? $action->get_schedule()->get_date() : $scheduled_date; - if ( ! $next ) { - return '0000-00-00 00:00:00'; - } - - ActionScheduler_TimezoneHelper::set_local_timezone( $next ); - return $next->format( 'Y-m-d H:i:s' ); - } - - /** - * Validate that we could decode action arguments. - * - * @param mixed $args The decoded arguments. - * @param int $action_id The action ID. - * - * @throws ActionScheduler_InvalidActionException When the decoded arguments are invalid. - */ - protected function validate_args( $args, $action_id ) { - // Ensure we have an array of args. - if ( ! is_array( $args ) ) { - throw ActionScheduler_InvalidActionException::from_decoding_args( $action_id ); - } - - // Validate JSON decoding if possible. - if ( function_exists( 'json_last_error' ) && JSON_ERROR_NONE !== json_last_error() ) { - throw ActionScheduler_InvalidActionException::from_decoding_args( $action_id, $args ); - } - } - - /** - * Validate a ActionScheduler_Schedule object. - * - * @param mixed $schedule The unserialized ActionScheduler_Schedule object. - * @param int $action_id The action ID. - * - * @throws ActionScheduler_InvalidActionException When the schedule is invalid. - */ - protected function validate_schedule( $schedule, $action_id ) { - if ( empty( $schedule ) || ! is_a( $schedule, 'ActionScheduler_Schedule' ) ) { - throw ActionScheduler_InvalidActionException::from_schedule( $action_id, $schedule ); - } - } - - /** - * InnoDB indexes have a maximum size of 767 bytes by default, which is only 191 characters with utf8mb4. - * - * Previously, AS wasn't concerned about args length, as we used the (unindex) post_content column. However, - * with custom tables, we use an indexed VARCHAR column instead. - * - * @param ActionScheduler_Action $action Action to be validated. - * @throws InvalidArgumentException When json encoded args is too long. - */ - protected function validate_action( ActionScheduler_Action $action ) { - if ( strlen( json_encode( $action->get_args() ) ) > static::$max_args_length ) { - throw new InvalidArgumentException( sprintf( __( 'ActionScheduler_Action::$args too long. To ensure the args column can be indexed, action args should not be more than %d characters when encoded as JSON.', 'action-scheduler' ), static::$max_args_length ) ); - } - } - - /** - * Cancel pending actions by hook. - * - * @since 3.0.0 - * - * @param string $hook Hook name. - * - * @return void - */ - public function cancel_actions_by_hook( $hook ) { - $action_ids = true; - while ( ! empty( $action_ids ) ) { - $action_ids = $this->query_actions( - array( - 'hook' => $hook, - 'status' => self::STATUS_PENDING, - 'per_page' => 1000, - ) - ); - - $this->bulk_cancel_actions( $action_ids ); - } - } - - /** - * Cancel pending actions by group. - * - * @since 3.0.0 - * - * @param string $group Group slug. - * - * @return void - */ - public function cancel_actions_by_group( $group ) { - $action_ids = true; - while ( ! empty( $action_ids ) ) { - $action_ids = $this->query_actions( - array( - 'group' => $group, - 'status' => self::STATUS_PENDING, - 'per_page' => 1000, - ) - ); - - $this->bulk_cancel_actions( $action_ids ); - } - } - - /** - * Cancel a set of action IDs. - * - * @since 3.0.0 - * - * @param array $action_ids List of action IDs. - * - * @return void - */ - private function bulk_cancel_actions( $action_ids ) { - foreach ( $action_ids as $action_id ) { - $this->cancel_action( $action_id ); - } - - do_action( 'action_scheduler_bulk_cancel_actions', $action_ids ); - } - - /** - * @return array - */ - public function get_status_labels() { - return array( - self::STATUS_COMPLETE => __( 'Complete', 'action-scheduler' ), - self::STATUS_PENDING => __( 'Pending', 'action-scheduler' ), - self::STATUS_RUNNING => __( 'In-progress', 'action-scheduler' ), - self::STATUS_FAILED => __( 'Failed', 'action-scheduler' ), - self::STATUS_CANCELED => __( 'Canceled', 'action-scheduler' ), - ); - } - - /** - * Check if there are any pending scheduled actions due to run. - * - * @param ActionScheduler_Action $action - * @param DateTime $scheduled_date (optional) - * @return string - */ - public function has_pending_actions_due() { - $pending_actions = $this->query_actions( array( - 'date' => as_get_datetime_object(), - 'status' => ActionScheduler_Store::STATUS_PENDING, - ) ); - - return ! empty( $pending_actions ); - } - - /** - * Callable initialization function optionally overridden in derived classes. - */ - public function init() {} - - /** - * Callable function to mark an action as migrated optionally overridden in derived classes. - */ - public function mark_migrated( $action_id ) {} - - /** - * @return ActionScheduler_Store - */ - public static function instance() { - if ( empty( self::$store ) ) { - $class = apply_filters( 'action_scheduler_store_class', self::DEFAULT_CLASS ); - self::$store = new $class(); - } - return self::$store; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_TimezoneHelper.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_TimezoneHelper.php deleted file mode 100644 index fd01449..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_TimezoneHelper.php +++ /dev/null @@ -1,152 +0,0 @@ -format( 'U' ) ); - } - - if ( get_option( 'timezone_string' ) ) { - $date->setTimezone( new DateTimeZone( self::get_local_timezone_string() ) ); - } else { - $date->setUtcOffset( self::get_local_timezone_offset() ); - } - - return $date; - } - - /** - * Helper to retrieve the timezone string for a site until a WP core method exists - * (see https://core.trac.wordpress.org/ticket/24730). - * - * Adapted from wc_timezone_string() and https://secure.php.net/manual/en/function.timezone-name-from-abbr.php#89155. - * - * If no timezone string is set, and its not possible to match the UTC offset set for the site to a timezone - * string, then an empty string will be returned, and the UTC offset should be used to set a DateTime's - * timezone. - * - * @since 2.1.0 - * @return string PHP timezone string for the site or empty if no timezone string is available. - */ - protected static function get_local_timezone_string( $reset = false ) { - // If site timezone string exists, return it. - $timezone = get_option( 'timezone_string' ); - if ( $timezone ) { - return $timezone; - } - - // Get UTC offset, if it isn't set then return UTC. - $utc_offset = intval( get_option( 'gmt_offset', 0 ) ); - if ( 0 === $utc_offset ) { - return 'UTC'; - } - - // Adjust UTC offset from hours to seconds. - $utc_offset *= 3600; - - // Attempt to guess the timezone string from the UTC offset. - $timezone = timezone_name_from_abbr( '', $utc_offset ); - if ( $timezone ) { - return $timezone; - } - - // Last try, guess timezone string manually. - foreach ( timezone_abbreviations_list() as $abbr ) { - foreach ( $abbr as $city ) { - if ( (bool) date( 'I' ) === (bool) $city['dst'] && $city['timezone_id'] && intval( $city['offset'] ) === $utc_offset ) { - return $city['timezone_id']; - } - } - } - - // No timezone string - return ''; - } - - /** - * Get timezone offset in seconds. - * - * @since 2.1.0 - * @return float - */ - protected static function get_local_timezone_offset() { - $timezone = get_option( 'timezone_string' ); - - if ( $timezone ) { - $timezone_object = new DateTimeZone( $timezone ); - return $timezone_object->getOffset( new DateTime( 'now' ) ); - } else { - return floatval( get_option( 'gmt_offset', 0 ) ) * HOUR_IN_SECONDS; - } - } - - /** - * @deprecated 2.1.0 - */ - public static function get_local_timezone( $reset = FALSE ) { - _deprecated_function( __FUNCTION__, '2.1.0', 'ActionScheduler_TimezoneHelper::set_local_timezone()' ); - if ( $reset ) { - self::$local_timezone = NULL; - } - if ( !isset(self::$local_timezone) ) { - $tzstring = get_option('timezone_string'); - - if ( empty($tzstring) ) { - $gmt_offset = get_option('gmt_offset'); - if ( $gmt_offset == 0 ) { - $tzstring = 'UTC'; - } else { - $gmt_offset *= HOUR_IN_SECONDS; - $tzstring = timezone_name_from_abbr( '', $gmt_offset, 1 ); - - // If there's no timezone string, try again with no DST. - if ( false === $tzstring ) { - $tzstring = timezone_name_from_abbr( '', $gmt_offset, 0 ); - } - - // Try mapping to the first abbreviation we can find. - if ( false === $tzstring ) { - $is_dst = date( 'I' ); - foreach ( timezone_abbreviations_list() as $abbr ) { - foreach ( $abbr as $city ) { - if ( $city['dst'] == $is_dst && $city['offset'] == $gmt_offset ) { - // If there's no valid timezone ID, keep looking. - if ( null === $city['timezone_id'] ) { - continue; - } - - $tzstring = $city['timezone_id']; - break 2; - } - } - } - } - - // If we still have no valid string, then fall back to UTC. - if ( false === $tzstring ) { - $tzstring = 'UTC'; - } - } - } - - self::$local_timezone = new DateTimeZone($tzstring); - } - return self::$local_timezone; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_Action.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_Action.php deleted file mode 100644 index 6258ba1..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_Action.php +++ /dev/null @@ -1,75 +0,0 @@ -set_hook($hook); - $this->set_schedule($schedule); - $this->set_args($args); - $this->set_group($group); - } - - public function execute() { - return do_action_ref_array($this->get_hook(), $this->get_args()); - } - - /** - * @param string $hook - */ - protected function set_hook( $hook ) { - $this->hook = $hook; - } - - public function get_hook() { - return $this->hook; - } - - protected function set_schedule( ActionScheduler_Schedule $schedule ) { - $this->schedule = $schedule; - } - - /** - * @return ActionScheduler_Schedule - */ - public function get_schedule() { - return $this->schedule; - } - - protected function set_args( array $args ) { - $this->args = $args; - } - - public function get_args() { - return $this->args; - } - - /** - * @param string $group - */ - protected function set_group( $group ) { - $this->group = $group; - } - - /** - * @return string - */ - public function get_group() { - return $this->group; - } - - /** - * @return bool If the action has been finished - */ - public function is_finished() { - return FALSE; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_CanceledAction.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_CanceledAction.php deleted file mode 100644 index 8bbc5d1..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_CanceledAction.php +++ /dev/null @@ -1,23 +0,0 @@ -set_schedule( new ActionScheduler_NullSchedule() ); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_FinishedAction.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_FinishedAction.php deleted file mode 100644 index b23a56c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_FinishedAction.php +++ /dev/null @@ -1,16 +0,0 @@ -set_schedule( new ActionScheduler_NullSchedule() ); - } - - public function execute() { - // don't execute - } -} - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBLogger.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBLogger.php deleted file mode 100644 index d21e869..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBLogger.php +++ /dev/null @@ -1,146 +0,0 @@ -format( 'Y-m-d H:i:s' ); - ActionScheduler_TimezoneHelper::set_local_timezone( $date ); - $date_local = $date->format( 'Y-m-d H:i:s' ); - - /** @var \wpdb $wpdb */ - global $wpdb; - $wpdb->insert( $wpdb->actionscheduler_logs, [ - 'action_id' => $action_id, - 'message' => $message, - 'log_date_gmt' => $date_gmt, - 'log_date_local' => $date_local, - ], [ '%d', '%s', '%s', '%s' ] ); - - return $wpdb->insert_id; - } - - /** - * Retrieve an action log entry. - * - * @param int $entry_id Log entry ID. - * - * @return ActionScheduler_LogEntry - */ - public function get_entry( $entry_id ) { - /** @var \wpdb $wpdb */ - global $wpdb; - $entry = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->actionscheduler_logs} WHERE log_id=%d", $entry_id ) ); - - return $this->create_entry_from_db_record( $entry ); - } - - /** - * Create an action log entry from a database record. - * - * @param object $record Log entry database record object. - * - * @return ActionScheduler_LogEntry - */ - private function create_entry_from_db_record( $record ) { - if ( empty( $record ) ) { - return new ActionScheduler_NullLogEntry(); - } - - $date = as_get_datetime_object( $record->log_date_gmt ); - - return new ActionScheduler_LogEntry( $record->action_id, $record->message, $date ); - } - - /** - * Retrieve the an action's log entries from the database. - * - * @param int $action_id Action ID. - * - * @return ActionScheduler_LogEntry[] - */ - public function get_logs( $action_id ) { - /** @var \wpdb $wpdb */ - global $wpdb; - - $records = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->actionscheduler_logs} WHERE action_id=%d", $action_id ) ); - - return array_map( [ $this, 'create_entry_from_db_record' ], $records ); - } - - /** - * Initialize the data store. - * - * @codeCoverageIgnore - */ - public function init() { - - $table_maker = new ActionScheduler_LoggerSchema(); - $table_maker->register_tables(); - - parent::init(); - - add_action( 'action_scheduler_deleted_action', [ $this, 'clear_deleted_action_logs' ], 10, 1 ); - } - - /** - * Delete the action logs for an action. - * - * @param int $action_id Action ID. - */ - public function clear_deleted_action_logs( $action_id ) { - /** @var \wpdb $wpdb */ - global $wpdb; - $wpdb->delete( $wpdb->actionscheduler_logs, [ 'action_id' => $action_id, ], [ '%d' ] ); - } - - /** - * Bulk add cancel action log entries. - * - * @param array $action_ids List of action ID. - */ - public function bulk_log_cancel_actions( $action_ids ) { - if ( empty( $action_ids ) ) { - return; - } - - /** @var \wpdb $wpdb */ - global $wpdb; - $date = as_get_datetime_object(); - $date_gmt = $date->format( 'Y-m-d H:i:s' ); - ActionScheduler_TimezoneHelper::set_local_timezone( $date ); - $date_local = $date->format( 'Y-m-d H:i:s' ); - $message = __( 'action canceled', 'action-scheduler' ); - $format = '(%d, ' . $wpdb->prepare( '%s, %s, %s', $message, $date_gmt, $date_local ) . ')'; - $sql_query = "INSERT {$wpdb->actionscheduler_logs} (action_id, message, log_date_gmt, log_date_local) VALUES "; - $value_rows = []; - - foreach ( $action_ids as $action_id ) { - $value_rows[] = $wpdb->prepare( $format, $action_id ); - } - $sql_query .= implode( ',', $value_rows ); - - $wpdb->query( $sql_query ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php deleted file mode 100644 index d70e4ce..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php +++ /dev/null @@ -1,845 +0,0 @@ -register_tables(); - } - - /** - * Save an action. - * - * @param ActionScheduler_Action $action Action object. - * @param DateTime $date Optional schedule date. Default null. - * - * @return int Action ID. - */ - public function save_action( ActionScheduler_Action $action, \DateTime $date = null ) { - try { - - $this->validate_action( $action ); - - /** @var \wpdb $wpdb */ - global $wpdb; - $data = [ - 'hook' => $action->get_hook(), - 'status' => ( $action->is_finished() ? self::STATUS_COMPLETE : self::STATUS_PENDING ), - 'scheduled_date_gmt' => $this->get_scheduled_date_string( $action, $date ), - 'scheduled_date_local' => $this->get_scheduled_date_string_local( $action, $date ), - 'schedule' => serialize( $action->get_schedule() ), - 'group_id' => $this->get_group_id( $action->get_group() ), - ]; - $args = wp_json_encode( $action->get_args() ); - if ( strlen( $args ) <= static::$max_index_length ) { - $data['args'] = $args; - } else { - $data['args'] = $this->hash_args( $args ); - $data['extended_args'] = $args; - } - - $table_name = ! empty( $wpdb->actionscheduler_actions ) ? $wpdb->actionscheduler_actions : $wpdb->prefix . 'actionscheduler_actions'; - $wpdb->insert( $table_name, $data ); - $action_id = $wpdb->insert_id; - - if ( is_wp_error( $action_id ) ) { - throw new RuntimeException( $action_id->get_error_message() ); - } - elseif ( empty( $action_id ) ) { - throw new RuntimeException( $wpdb->last_error ? $wpdb->last_error : __( 'Database error.', 'action-scheduler' ) ); - } - - do_action( 'action_scheduler_stored_action', $action_id ); - - return $action_id; - } catch ( \Exception $e ) { - /* translators: %s: error message */ - throw new \RuntimeException( sprintf( __( 'Error saving action: %s', 'action-scheduler' ), $e->getMessage() ), 0 ); - } - } - - /** - * Generate a hash from json_encoded $args using MD5 as this isn't for security. - * - * @param string $args JSON encoded action args. - * @return string - */ - protected function hash_args( $args ) { - return md5( $args ); - } - - /** - * Get action args query param value from action args. - * - * @param array $args Action args. - * @return string - */ - protected function get_args_for_query( $args ) { - $encoded = wp_json_encode( $args ); - if ( strlen( $encoded ) <= static::$max_index_length ) { - return $encoded; - } - return $this->hash_args( $encoded ); - } - /** - * Get a group's ID based on its name/slug. - * - * @param string $slug The string name of a group. - * @param bool $create_if_not_exists Whether to create the group if it does not already exist. Default, true - create the group. - * - * @return int The group's ID, if it exists or is created, or 0 if it does not exist and is not created. - */ - protected function get_group_id( $slug, $create_if_not_exists = true ) { - if ( empty( $slug ) ) { - return 0; - } - /** @var \wpdb $wpdb */ - global $wpdb; - $group_id = (int) $wpdb->get_var( $wpdb->prepare( "SELECT group_id FROM {$wpdb->actionscheduler_groups} WHERE slug=%s", $slug ) ); - if ( empty( $group_id ) && $create_if_not_exists ) { - $group_id = $this->create_group( $slug ); - } - - return $group_id; - } - - /** - * Create an action group. - * - * @param string $slug Group slug. - * - * @return int Group ID. - */ - protected function create_group( $slug ) { - /** @var \wpdb $wpdb */ - global $wpdb; - $wpdb->insert( $wpdb->actionscheduler_groups, [ 'slug' => $slug ] ); - - return (int) $wpdb->insert_id; - } - - /** - * Retrieve an action. - * - * @param int $action_id Action ID. - * - * @return ActionScheduler_Action - */ - public function fetch_action( $action_id ) { - /** @var \wpdb $wpdb */ - global $wpdb; - $data = $wpdb->get_row( $wpdb->prepare( - "SELECT a.*, g.slug AS `group` FROM {$wpdb->actionscheduler_actions} a LEFT JOIN {$wpdb->actionscheduler_groups} g ON a.group_id=g.group_id WHERE a.action_id=%d", - $action_id - ) ); - - if ( empty( $data ) ) { - return $this->get_null_action(); - } - - if ( ! empty( $data->extended_args ) ) { - $data->args = $data->extended_args; - unset( $data->extended_args ); - } - - try { - $action = $this->make_action_from_db_record( $data ); - } catch ( ActionScheduler_InvalidActionException $exception ) { - do_action( 'action_scheduler_failed_fetch_action', $action_id, $exception ); - return $this->get_null_action(); - } - - return $action; - } - - /** - * Create a null action. - * - * @return ActionScheduler_NullAction - */ - protected function get_null_action() { - return new ActionScheduler_NullAction(); - } - - /** - * Create an action from a database record. - * - * @param object $data Action database record. - * - * @return ActionScheduler_Action|ActionScheduler_CanceledAction|ActionScheduler_FinishedAction - */ - protected function make_action_from_db_record( $data ) { - - $hook = $data->hook; - $args = json_decode( $data->args, true ); - $schedule = unserialize( $data->schedule ); - - $this->validate_args( $args, $data->action_id ); - $this->validate_schedule( $schedule, $data->action_id ); - - if ( empty( $schedule ) ) { - $schedule = new ActionScheduler_NullSchedule(); - } - $group = $data->group ? $data->group : ''; - - return ActionScheduler::factory()->get_stored_action( $data->status, $data->hook, $args, $schedule, $group ); - } - - /** - * Find an action. - * - * @param string $hook Action hook. - * @param array $params Parameters of the action to find. - * - * @return string|null ID of the next action matching the criteria or NULL if not found. - */ - public function find_action( $hook, $params = [] ) { - $params = wp_parse_args( $params, [ - 'args' => null, - 'status' => self::STATUS_PENDING, - 'group' => '', - ] ); - - /** @var wpdb $wpdb */ - global $wpdb; - $query = "SELECT a.action_id FROM {$wpdb->actionscheduler_actions} a"; - $args = []; - if ( ! empty( $params[ 'group' ] ) ) { - $query .= " INNER JOIN {$wpdb->actionscheduler_groups} g ON g.group_id=a.group_id AND g.slug=%s"; - $args[] = $params[ 'group' ]; - } - $query .= " WHERE a.hook=%s"; - $args[] = $hook; - if ( ! is_null( $params[ 'args' ] ) ) { - $query .= " AND a.args=%s"; - $args[] = $this->get_args_for_query( $params[ 'args' ] ); - } - - $order = 'ASC'; - if ( ! empty( $params[ 'status' ] ) ) { - $query .= " AND a.status=%s"; - $args[] = $params[ 'status' ]; - - if ( self::STATUS_PENDING == $params[ 'status' ] ) { - $order = 'ASC'; // Find the next action that matches. - } else { - $order = 'DESC'; // Find the most recent action that matches. - } - } - - $query .= " ORDER BY scheduled_date_gmt $order LIMIT 1"; - - $query = $wpdb->prepare( $query, $args ); - - $id = $wpdb->get_var( $query ); - - return $id; - } - - /** - * Returns the SQL statement to query (or count) actions. - * - * @param array $query Filtering options. - * @param string $select_or_count Whether the SQL should select and return the IDs or just the row count. - * - * @return string SQL statement already properly escaped. - */ - protected function get_query_actions_sql( array $query, $select_or_count = 'select' ) { - - if ( ! in_array( $select_or_count, array( 'select', 'count' ) ) ) { - throw new InvalidArgumentException( __( 'Invalid value for select or count parameter. Cannot query actions.', 'action-scheduler' ) ); - } - - $query = wp_parse_args( $query, [ - 'hook' => '', - 'args' => null, - 'date' => null, - 'date_compare' => '<=', - 'modified' => null, - 'modified_compare' => '<=', - 'group' => '', - 'status' => '', - 'claimed' => null, - 'per_page' => 5, - 'offset' => 0, - 'orderby' => 'date', - 'order' => 'ASC', - ] ); - - /** @var \wpdb $wpdb */ - global $wpdb; - $sql = ( 'count' === $select_or_count ) ? 'SELECT count(a.action_id)' : 'SELECT a.action_id'; - $sql .= " FROM {$wpdb->actionscheduler_actions} a"; - $sql_params = []; - - if ( ! empty( $query[ 'group' ] ) || 'group' === $query[ 'orderby' ] ) { - $sql .= " LEFT JOIN {$wpdb->actionscheduler_groups} g ON g.group_id=a.group_id"; - } - - $sql .= " WHERE 1=1"; - - if ( ! empty( $query[ 'group' ] ) ) { - $sql .= " AND g.slug=%s"; - $sql_params[] = $query[ 'group' ]; - } - - if ( $query[ 'hook' ] ) { - $sql .= " AND a.hook=%s"; - $sql_params[] = $query[ 'hook' ]; - } - if ( ! is_null( $query[ 'args' ] ) ) { - $sql .= " AND a.args=%s"; - $sql_params[] = $this->get_args_for_query( $query[ 'args' ] ); - } - - if ( $query[ 'status' ] ) { - $sql .= " AND a.status=%s"; - $sql_params[] = $query[ 'status' ]; - } - - if ( $query[ 'date' ] instanceof \DateTime ) { - $date = clone $query[ 'date' ]; - $date->setTimezone( new \DateTimeZone( 'UTC' ) ); - $date_string = $date->format( 'Y-m-d H:i:s' ); - $comparator = $this->validate_sql_comparator( $query[ 'date_compare' ] ); - $sql .= " AND a.scheduled_date_gmt $comparator %s"; - $sql_params[] = $date_string; - } - - if ( $query[ 'modified' ] instanceof \DateTime ) { - $modified = clone $query[ 'modified' ]; - $modified->setTimezone( new \DateTimeZone( 'UTC' ) ); - $date_string = $modified->format( 'Y-m-d H:i:s' ); - $comparator = $this->validate_sql_comparator( $query[ 'modified_compare' ] ); - $sql .= " AND a.last_attempt_gmt $comparator %s"; - $sql_params[] = $date_string; - } - - if ( $query[ 'claimed' ] === true ) { - $sql .= " AND a.claim_id != 0"; - } elseif ( $query[ 'claimed' ] === false ) { - $sql .= " AND a.claim_id = 0"; - } elseif ( ! is_null( $query[ 'claimed' ] ) ) { - $sql .= " AND a.claim_id = %d"; - $sql_params[] = $query[ 'claimed' ]; - } - - if ( ! empty( $query['search'] ) ) { - $sql .= " AND (a.hook LIKE %s OR (a.extended_args IS NULL AND a.args LIKE %s) OR a.extended_args LIKE %s"; - for( $i = 0; $i < 3; $i++ ) { - $sql_params[] = sprintf( '%%%s%%', $query['search'] ); - } - - $search_claim_id = (int) $query['search']; - if ( $search_claim_id ) { - $sql .= ' OR a.claim_id = %d'; - $sql_params[] = $search_claim_id; - } - - $sql .= ')'; - } - - if ( 'select' === $select_or_count ) { - switch ( $query['orderby'] ) { - case 'hook': - $orderby = 'a.hook'; - break; - case 'group': - $orderby = 'g.slug'; - break; - case 'modified': - $orderby = 'a.last_attempt_gmt'; - break; - case 'date': - default: - $orderby = 'a.scheduled_date_gmt'; - break; - } - if ( strtoupper( $query[ 'order' ] ) == 'ASC' ) { - $order = 'ASC'; - } else { - $order = 'DESC'; - } - $sql .= " ORDER BY $orderby $order"; - if ( $query[ 'per_page' ] > 0 ) { - $sql .= " LIMIT %d, %d"; - $sql_params[] = $query[ 'offset' ]; - $sql_params[] = $query[ 'per_page' ]; - } - } - - if ( ! empty( $sql_params ) ) { - $sql = $wpdb->prepare( $sql, $sql_params ); - } - - return $sql; - } - - /** - * Query for action count of list of action IDs. - * - * @param array $query Query parameters. - * @param string $query_type Whether to select or count the results. Default, select. - * - * @return null|string|array The IDs of actions matching the query - */ - public function query_actions( $query = [], $query_type = 'select' ) { - /** @var wpdb $wpdb */ - global $wpdb; - - $sql = $this->get_query_actions_sql( $query, $query_type ); - - return ( 'count' === $query_type ) ? $wpdb->get_var( $sql ) : $wpdb->get_col( $sql ); - } - - /** - * Get a count of all actions in the store, grouped by status. - * - * @return array Set of 'status' => int $count pairs for statuses with 1 or more actions of that status. - */ - public function action_counts() { - global $wpdb; - - $sql = "SELECT a.status, count(a.status) as 'count'"; - $sql .= " FROM {$wpdb->actionscheduler_actions} a"; - $sql .= " GROUP BY a.status"; - - $actions_count_by_status = array(); - $action_stati_and_labels = $this->get_status_labels(); - - foreach ( $wpdb->get_results( $sql ) as $action_data ) { - // Ignore any actions with invalid status - if ( array_key_exists( $action_data->status, $action_stati_and_labels ) ) { - $actions_count_by_status[ $action_data->status ] = $action_data->count; - } - } - - return $actions_count_by_status; - } - - /** - * Cancel an action. - * - * @param int $action_id Action ID. - * - * @return void - */ - public function cancel_action( $action_id ) { - /** @var \wpdb $wpdb */ - global $wpdb; - - $updated = $wpdb->update( - $wpdb->actionscheduler_actions, - [ 'status' => self::STATUS_CANCELED ], - [ 'action_id' => $action_id ], - [ '%s' ], - [ '%d' ] - ); - if ( empty( $updated ) ) { - /* translators: %s: action ID */ - throw new \InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'action-scheduler' ), $action_id ) ); - } - do_action( 'action_scheduler_canceled_action', $action_id ); - } - - /** - * Cancel pending actions by hook. - * - * @since 3.0.0 - * - * @param string $hook Hook name. - * - * @return void - */ - public function cancel_actions_by_hook( $hook ) { - $this->bulk_cancel_actions( [ 'hook' => $hook ] ); - } - - /** - * Cancel pending actions by group. - * - * @param string $group Group slug. - * - * @return void - */ - public function cancel_actions_by_group( $group ) { - $this->bulk_cancel_actions( [ 'group' => $group ] ); - } - - /** - * Bulk cancel actions. - * - * @since 3.0.0 - * - * @param array $query_args Query parameters. - */ - protected function bulk_cancel_actions( $query_args ) { - /** @var \wpdb $wpdb */ - global $wpdb; - - if ( ! is_array( $query_args ) ) { - return; - } - - // Don't cancel actions that are already canceled. - if ( isset( $query_args['status'] ) && $query_args['status'] == self::STATUS_CANCELED ) { - return; - } - - $action_ids = true; - $query_args = wp_parse_args( - $query_args, - [ - 'per_page' => 1000, - 'status' => self::STATUS_PENDING, - ] - ); - - while ( $action_ids ) { - $action_ids = $this->query_actions( $query_args ); - if ( empty( $action_ids ) ) { - break; - } - - $format = array_fill( 0, count( $action_ids ), '%d' ); - $query_in = '(' . implode( ',', $format ) . ')'; - $parameters = $action_ids; - array_unshift( $parameters, self::STATUS_CANCELED ); - - $wpdb->query( - $wpdb->prepare( // wpcs: PreparedSQLPlaceholders replacement count ok. - "UPDATE {$wpdb->actionscheduler_actions} SET status = %s WHERE action_id IN {$query_in}", - $parameters - ) - ); - - do_action( 'action_scheduler_bulk_cancel_actions', $action_ids ); - } - } - - /** - * Delete an action. - * - * @param int $action_id Action ID. - */ - public function delete_action( $action_id ) { - /** @var \wpdb $wpdb */ - global $wpdb; - $deleted = $wpdb->delete( $wpdb->actionscheduler_actions, [ 'action_id' => $action_id ], [ '%d' ] ); - if ( empty( $deleted ) ) { - throw new \InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'action-scheduler' ), $action_id ) ); - } - do_action( 'action_scheduler_deleted_action', $action_id ); - } - - /** - * Get the schedule date for an action. - * - * @param string $action_id Action ID. - * - * @throws \InvalidArgumentException - * @return \DateTime The local date the action is scheduled to run, or the date that it ran. - */ - public function get_date( $action_id ) { - $date = $this->get_date_gmt( $action_id ); - ActionScheduler_TimezoneHelper::set_local_timezone( $date ); - return $date; - } - - /** - * Get the GMT schedule date for an action. - * - * @param int $action_id Action ID. - * - * @throws \InvalidArgumentException - * @return \DateTime The GMT date the action is scheduled to run, or the date that it ran. - */ - protected function get_date_gmt( $action_id ) { - /** @var \wpdb $wpdb */ - global $wpdb; - $record = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->actionscheduler_actions} WHERE action_id=%d", $action_id ) ); - if ( empty( $record ) ) { - throw new \InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'action-scheduler' ), $action_id ) ); - } - if ( $record->status == self::STATUS_PENDING ) { - return as_get_datetime_object( $record->scheduled_date_gmt ); - } else { - return as_get_datetime_object( $record->last_attempt_gmt ); - } - } - - /** - * Stake a claim on actions. - * - * @param int $max_actions Maximum number of action to include in claim. - * @param \DateTime $before_date Jobs must be schedule before this date. Defaults to now. - * - * @return ActionScheduler_ActionClaim - */ - public function stake_claim( $max_actions = 10, \DateTime $before_date = null, $hooks = array(), $group = '' ) { - $claim_id = $this->generate_claim_id(); - $this->claim_actions( $claim_id, $max_actions, $before_date, $hooks, $group ); - $action_ids = $this->find_actions_by_claim_id( $claim_id ); - - return new ActionScheduler_ActionClaim( $claim_id, $action_ids ); - } - - /** - * Generate a new action claim. - * - * @return int Claim ID. - */ - protected function generate_claim_id() { - /** @var \wpdb $wpdb */ - global $wpdb; - $now = as_get_datetime_object(); - $wpdb->insert( $wpdb->actionscheduler_claims, [ 'date_created_gmt' => $now->format( 'Y-m-d H:i:s' ) ] ); - - return $wpdb->insert_id; - } - - /** - * Mark actions claimed. - * - * @param string $claim_id Claim Id. - * @param int $limit Number of action to include in claim. - * @param \DateTime $before_date Should use UTC timezone. - * - * @return int The number of actions that were claimed. - * @throws \RuntimeException - */ - protected function claim_actions( $claim_id, $limit, \DateTime $before_date = null, $hooks = array(), $group = '' ) { - /** @var \wpdb $wpdb */ - global $wpdb; - - $now = as_get_datetime_object(); - $date = is_null( $before_date ) ? $now : clone $before_date; - - // can't use $wpdb->update() because of the <= condition - $update = "UPDATE {$wpdb->actionscheduler_actions} SET claim_id=%d, last_attempt_gmt=%s, last_attempt_local=%s"; - $params = array( - $claim_id, - $now->format( 'Y-m-d H:i:s' ), - current_time( 'mysql' ), - ); - - $where = "WHERE claim_id = 0 AND scheduled_date_gmt <= %s AND status=%s"; - $params[] = $date->format( 'Y-m-d H:i:s' ); - $params[] = self::STATUS_PENDING; - - if ( ! empty( $hooks ) ) { - $placeholders = array_fill( 0, count( $hooks ), '%s' ); - $where .= ' AND hook IN (' . join( ', ', $placeholders ) . ')'; - $params = array_merge( $params, array_values( $hooks ) ); - } - - if ( ! empty( $group ) ) { - - $group_id = $this->get_group_id( $group, false ); - - // throw exception if no matching group found, this matches ActionScheduler_wpPostStore's behaviour - if ( empty( $group_id ) ) { - /* translators: %s: group name */ - throw new InvalidArgumentException( sprintf( __( 'The group "%s" does not exist.', 'action-scheduler' ), $group ) ); - } - - $where .= ' AND group_id = %d'; - $params[] = $group_id; - } - - $order = "ORDER BY attempts ASC, scheduled_date_gmt ASC, action_id ASC LIMIT %d"; - $params[] = $limit; - - $sql = $wpdb->prepare( "{$update} {$where} {$order}", $params ); - - $rows_affected = $wpdb->query( $sql ); - if ( $rows_affected === false ) { - throw new \RuntimeException( __( 'Unable to claim actions. Database error.', 'action-scheduler' ) ); - } - - return (int) $rows_affected; - } - - /** - * Get the number of active claims. - * - * @return int - */ - public function get_claim_count() { - global $wpdb; - - $sql = "SELECT COUNT(DISTINCT claim_id) FROM {$wpdb->actionscheduler_actions} WHERE claim_id != 0 AND status IN ( %s, %s)"; - $sql = $wpdb->prepare( $sql, [ self::STATUS_PENDING, self::STATUS_RUNNING ] ); - - return (int) $wpdb->get_var( $sql ); - } - - /** - * Return an action's claim ID, as stored in the claim_id column. - * - * @param string $action_id Action ID. - * @return mixed - */ - public function get_claim_id( $action_id ) { - /** @var \wpdb $wpdb */ - global $wpdb; - - $sql = "SELECT claim_id FROM {$wpdb->actionscheduler_actions} WHERE action_id=%d"; - $sql = $wpdb->prepare( $sql, $action_id ); - - return (int) $wpdb->get_var( $sql ); - } - - /** - * Retrieve the action IDs of action in a claim. - * - * @param string $claim_id Claim ID. - * - * @return int[] - */ - public function find_actions_by_claim_id( $claim_id ) { - /** @var \wpdb $wpdb */ - global $wpdb; - - $sql = "SELECT action_id FROM {$wpdb->actionscheduler_actions} WHERE claim_id=%d"; - $sql = $wpdb->prepare( $sql, $claim_id ); - - $action_ids = $wpdb->get_col( $sql ); - - return array_map( 'intval', $action_ids ); - } - - /** - * Release actions from a claim and delete the claim. - * - * @param ActionScheduler_ActionClaim $claim Claim object. - */ - public function release_claim( ActionScheduler_ActionClaim $claim ) { - /** @var \wpdb $wpdb */ - global $wpdb; - $wpdb->update( $wpdb->actionscheduler_actions, [ 'claim_id' => 0 ], [ 'claim_id' => $claim->get_id() ], [ '%d' ], [ '%d' ] ); - $wpdb->delete( $wpdb->actionscheduler_claims, [ 'claim_id' => $claim->get_id() ], [ '%d' ] ); - } - - /** - * Remove the claim from an action. - * - * @param int $action_id Action ID. - * - * @return void - */ - public function unclaim_action( $action_id ) { - /** @var \wpdb $wpdb */ - global $wpdb; - $wpdb->update( - $wpdb->actionscheduler_actions, - [ 'claim_id' => 0 ], - [ 'action_id' => $action_id ], - [ '%s' ], - [ '%d' ] - ); - } - - /** - * Mark an action as failed. - * - * @param int $action_id Action ID. - */ - public function mark_failure( $action_id ) { - /** @var \wpdb $wpdb */ - global $wpdb; - $updated = $wpdb->update( - $wpdb->actionscheduler_actions, - [ 'status' => self::STATUS_FAILED ], - [ 'action_id' => $action_id ], - [ '%s' ], - [ '%d' ] - ); - if ( empty( $updated ) ) { - throw new \InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'action-scheduler' ), $action_id ) ); - } - } - - /** - * Add execution message to action log. - * - * @param int $action_id Action ID. - * - * @return void - */ - public function log_execution( $action_id ) { - /** @var \wpdb $wpdb */ - global $wpdb; - - $sql = "UPDATE {$wpdb->actionscheduler_actions} SET attempts = attempts+1, status=%s, last_attempt_gmt = %s, last_attempt_local = %s WHERE action_id = %d"; - $sql = $wpdb->prepare( $sql, self::STATUS_RUNNING, current_time( 'mysql', true ), current_time( 'mysql' ), $action_id ); - $wpdb->query( $sql ); - } - - /** - * Mark an action as complete. - * - * @param int $action_id Action ID. - * - * @return void - */ - public function mark_complete( $action_id ) { - /** @var \wpdb $wpdb */ - global $wpdb; - $updated = $wpdb->update( - $wpdb->actionscheduler_actions, - [ - 'status' => self::STATUS_COMPLETE, - 'last_attempt_gmt' => current_time( 'mysql', true ), - 'last_attempt_local' => current_time( 'mysql' ), - ], - [ 'action_id' => $action_id ], - [ '%s' ], - [ '%d' ] - ); - if ( empty( $updated ) ) { - throw new \InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'action-scheduler' ), $action_id ) ); - } - } - - /** - * Get an action's status. - * - * @param int $action_id Action ID. - * - * @return string - */ - public function get_status( $action_id ) { - /** @var \wpdb $wpdb */ - global $wpdb; - $sql = "SELECT status FROM {$wpdb->actionscheduler_actions} WHERE action_id=%d"; - $sql = $wpdb->prepare( $sql, $action_id ); - $status = $wpdb->get_var( $sql ); - - if ( $status === null ) { - throw new \InvalidArgumentException( __( 'Invalid action ID. No status found.', 'action-scheduler' ) ); - } elseif ( empty( $status ) ) { - throw new \RuntimeException( __( 'Unknown status found for action.', 'action-scheduler' ) ); - } else { - return $status; - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_HybridStore.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_HybridStore.php deleted file mode 100644 index 22d61a6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_HybridStore.php +++ /dev/null @@ -1,426 +0,0 @@ -demarkation_id = (int) get_option( self::DEMARKATION_OPTION, 0 ); - if ( empty( $config ) ) { - $config = Controller::instance()->get_migration_config_object(); - } - $this->primary_store = $config->get_destination_store(); - $this->secondary_store = $config->get_source_store(); - $this->migration_runner = new Runner( $config ); - } - - /** - * Initialize the table data store tables. - * - * @codeCoverageIgnore - */ - public function init() { - add_action( 'action_scheduler/created_table', [ $this, 'set_autoincrement' ], 10, 2 ); - $this->primary_store->init(); - $this->secondary_store->init(); - remove_action( 'action_scheduler/created_table', [ $this, 'set_autoincrement' ], 10 ); - } - - /** - * When the actions table is created, set its autoincrement - * value to be one higher than the posts table to ensure that - * there are no ID collisions. - * - * @param string $table_name - * @param string $table_suffix - * - * @return void - * @codeCoverageIgnore - */ - public function set_autoincrement( $table_name, $table_suffix ) { - if ( ActionScheduler_StoreSchema::ACTIONS_TABLE === $table_suffix ) { - if ( empty( $this->demarkation_id ) ) { - $this->demarkation_id = $this->set_demarkation_id(); - } - /** @var \wpdb $wpdb */ - global $wpdb; - /** - * A default date of '0000-00-00 00:00:00' is invalid in MySQL 5.7 when configured with - * sql_mode including both STRICT_TRANS_TABLES and NO_ZERO_DATE. - */ - $default_date = new DateTime( 'tomorrow' ); - $null_action = new ActionScheduler_NullAction(); - $date_gmt = $this->get_scheduled_date_string( $null_action, $default_date ); - $date_local = $this->get_scheduled_date_string_local( $null_action, $default_date ); - - $row_count = $wpdb->insert( - $wpdb->{ActionScheduler_StoreSchema::ACTIONS_TABLE}, - [ - 'action_id' => $this->demarkation_id, - 'hook' => '', - 'status' => '', - 'scheduled_date_gmt' => $date_gmt, - 'scheduled_date_local' => $date_local, - 'last_attempt_gmt' => $date_gmt, - 'last_attempt_local' => $date_local, - ] - ); - if ( $row_count > 0 ) { - $wpdb->delete( - $wpdb->{ActionScheduler_StoreSchema::ACTIONS_TABLE}, - [ 'action_id' => $this->demarkation_id ] - ); - } - } - } - - /** - * Store the demarkation id in WP options. - * - * @param int $id The ID to set as the demarkation point between the two stores - * Leave null to use the next ID from the WP posts table. - * - * @return int The new ID. - * - * @codeCoverageIgnore - */ - private function set_demarkation_id( $id = null ) { - if ( empty( $id ) ) { - /** @var \wpdb $wpdb */ - global $wpdb; - $id = (int) $wpdb->get_var( "SELECT MAX(ID) FROM $wpdb->posts" ); - $id ++; - } - update_option( self::DEMARKATION_OPTION, $id ); - - return $id; - } - - /** - * Find the first matching action from the secondary store. - * If it exists, migrate it to the primary store immediately. - * After it migrates, the secondary store will logically contain - * the next matching action, so return the result thence. - * - * @param string $hook - * @param array $params - * - * @return string - */ - public function find_action( $hook, $params = [] ) { - $found_unmigrated_action = $this->secondary_store->find_action( $hook, $params ); - if ( ! empty( $found_unmigrated_action ) ) { - $this->migrate( [ $found_unmigrated_action ] ); - } - - return $this->primary_store->find_action( $hook, $params ); - } - - /** - * Find actions matching the query in the secondary source first. - * If any are found, migrate them immediately. Then the secondary - * store will contain the canonical results. - * - * @param array $query - * @param string $query_type Whether to select or count the results. Default, select. - * - * @return int[] - */ - public function query_actions( $query = [], $query_type = 'select' ) { - $found_unmigrated_actions = $this->secondary_store->query_actions( $query, 'select' ); - if ( ! empty( $found_unmigrated_actions ) ) { - $this->migrate( $found_unmigrated_actions ); - } - - return $this->primary_store->query_actions( $query, $query_type ); - } - - /** - * Get a count of all actions in the store, grouped by status - * - * @return array Set of 'status' => int $count pairs for statuses with 1 or more actions of that status. - */ - public function action_counts() { - $unmigrated_actions_count = $this->secondary_store->action_counts(); - $migrated_actions_count = $this->primary_store->action_counts(); - $actions_count_by_status = array(); - - foreach ( $this->get_status_labels() as $status_key => $status_label ) { - - $count = 0; - - if ( isset( $unmigrated_actions_count[ $status_key ] ) ) { - $count += $unmigrated_actions_count[ $status_key ]; - } - - if ( isset( $migrated_actions_count[ $status_key ] ) ) { - $count += $migrated_actions_count[ $status_key ]; - } - - $actions_count_by_status[ $status_key ] = $count; - } - - $actions_count_by_status = array_filter( $actions_count_by_status ); - - return $actions_count_by_status; - } - - /** - * If any actions would have been claimed by the secondary store, - * migrate them immediately, then ask the primary store for the - * canonical claim. - * - * @param int $max_actions - * @param DateTime|null $before_date - * - * @return ActionScheduler_ActionClaim - */ - public function stake_claim( $max_actions = 10, DateTime $before_date = null, $hooks = array(), $group = '' ) { - $claim = $this->secondary_store->stake_claim( $max_actions, $before_date, $hooks, $group ); - - $claimed_actions = $claim->get_actions(); - if ( ! empty( $claimed_actions ) ) { - $this->migrate( $claimed_actions ); - } - - $this->secondary_store->release_claim( $claim ); - - return $this->primary_store->stake_claim( $max_actions, $before_date, $hooks, $group ); - } - - /** - * Migrate a list of actions to the table data store. - * - * @param array $action_ids List of action IDs. - */ - private function migrate( $action_ids ) { - $this->migration_runner->migrate_actions( $action_ids ); - } - - /** - * Save an action to the primary store. - * - * @param ActionScheduler_Action $action Action object to be saved. - * @param DateTime $date Optional. Schedule date. Default null. - * - * @return int The action ID - */ - public function save_action( ActionScheduler_Action $action, DateTime $date = null ) { - return $this->primary_store->save_action( $action, $date ); - } - - /** - * Retrieve an existing action whether migrated or not. - * - * @param int $action_id Action ID. - */ - public function fetch_action( $action_id ) { - $store = $this->get_store_from_action_id( $action_id, true ); - if ( $store ) { - return $store->fetch_action( $action_id ); - } else { - return new ActionScheduler_NullAction(); - } - } - - /** - * Cancel an existing action whether migrated or not. - * - * @param int $action_id Action ID. - */ - public function cancel_action( $action_id ) { - $store = $this->get_store_from_action_id( $action_id ); - if ( $store ) { - $store->cancel_action( $action_id ); - } - } - - /** - * Delete an existing action whether migrated or not. - * - * @param int $action_id Action ID. - */ - public function delete_action( $action_id ) { - $store = $this->get_store_from_action_id( $action_id ); - if ( $store ) { - $store->delete_action( $action_id ); - } - } - - /** - * Get the schedule date an existing action whether migrated or not. - * - * @param int $action_id Action ID. - */ - public function get_date( $action_id ) { - $store = $this->get_store_from_action_id( $action_id ); - if ( $store ) { - return $store->get_date( $action_id ); - } else { - return null; - } - } - - /** - * Mark an existing action as failed whether migrated or not. - * - * @param int $action_id Action ID. - */ - public function mark_failure( $action_id ) { - $store = $this->get_store_from_action_id( $action_id ); - if ( $store ) { - $store->mark_failure( $action_id ); - } - } - - /** - * Log the execution of an existing action whether migrated or not. - * - * @param int $action_id Action ID. - */ - public function log_execution( $action_id ) { - $store = $this->get_store_from_action_id( $action_id ); - if ( $store ) { - $store->log_execution( $action_id ); - } - } - - /** - * Mark an existing action complete whether migrated or not. - * - * @param int $action_id Action ID. - */ - public function mark_complete( $action_id ) { - $store = $this->get_store_from_action_id( $action_id ); - if ( $store ) { - $store->mark_complete( $action_id ); - } - } - - /** - * Get an existing action status whether migrated or not. - * - * @param int $action_id Action ID. - */ - public function get_status( $action_id ) { - $store = $this->get_store_from_action_id( $action_id ); - if ( $store ) { - return $store->get_status( $action_id ); - } - return null; - } - - /** - * Return which store an action is stored in. - * - * @param int $action_id ID of the action. - * @param bool $primary_first Optional flag indicating search the primary store first. - * @return ActionScheduler_Store - */ - protected function get_store_from_action_id( $action_id, $primary_first = false ) { - if ( $primary_first ) { - $stores = [ - $this->primary_store, - $this->secondary_store, - ]; - } elseif ( $action_id < $this->demarkation_id ) { - $stores = [ - $this->secondary_store, - $this->primary_store, - ]; - } else { - $stores = [ - $this->primary_store, - ]; - } - - foreach ( $stores as $store ) { - $action = $store->fetch_action( $action_id ); - if ( ! is_a( $action, 'ActionScheduler_NullAction' ) ) { - return $store; - } - } - return null; - } - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * All claim-related functions should operate solely - * on the primary store. - * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - /** - * Get the claim count from the table data store. - */ - public function get_claim_count() { - return $this->primary_store->get_claim_count(); - } - - /** - * Retrieve the claim ID for an action from the table data store. - * - * @param int $action_id Action ID. - */ - public function get_claim_id( $action_id ) { - return $this->primary_store->get_claim_id( $action_id ); - } - - /** - * Release a claim in the table data store. - * - * @param ActionScheduler_ActionClaim $claim Claim object. - */ - public function release_claim( ActionScheduler_ActionClaim $claim ) { - $this->primary_store->release_claim( $claim ); - } - - /** - * Release claims on an action in the table data store. - * - * @param int $action_id Action ID. - */ - public function unclaim_action( $action_id ) { - $this->primary_store->unclaim_action( $action_id ); - } - - /** - * Retrieve a list of action IDs by claim. - * - * @param int $claim_id Claim ID. - */ - public function find_actions_by_claim_id( $claim_id ) { - return $this->primary_store->find_actions_by_claim_id( $claim_id ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php deleted file mode 100644 index 7215ddd..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php +++ /dev/null @@ -1,240 +0,0 @@ -create_wp_comment( $action_id, $message, $date ); - return $comment_id; - } - - protected function create_wp_comment( $action_id, $message, DateTime $date ) { - - $comment_date_gmt = $date->format('Y-m-d H:i:s'); - ActionScheduler_TimezoneHelper::set_local_timezone( $date ); - $comment_data = array( - 'comment_post_ID' => $action_id, - 'comment_date' => $date->format('Y-m-d H:i:s'), - 'comment_date_gmt' => $comment_date_gmt, - 'comment_author' => self::AGENT, - 'comment_content' => $message, - 'comment_agent' => self::AGENT, - 'comment_type' => self::TYPE, - ); - return wp_insert_comment($comment_data); - } - - /** - * @param string $entry_id - * - * @return ActionScheduler_LogEntry - */ - public function get_entry( $entry_id ) { - $comment = $this->get_comment( $entry_id ); - if ( empty($comment) || $comment->comment_type != self::TYPE ) { - return new ActionScheduler_NullLogEntry(); - } - - $date = as_get_datetime_object( $comment->comment_date_gmt ); - ActionScheduler_TimezoneHelper::set_local_timezone( $date ); - return new ActionScheduler_LogEntry( $comment->comment_post_ID, $comment->comment_content, $date ); - } - - /** - * @param string $action_id - * - * @return ActionScheduler_LogEntry[] - */ - public function get_logs( $action_id ) { - $status = 'all'; - if ( get_post_status($action_id) == 'trash' ) { - $status = 'post-trashed'; - } - $comments = get_comments(array( - 'post_id' => $action_id, - 'orderby' => 'comment_date_gmt', - 'order' => 'ASC', - 'type' => self::TYPE, - 'status' => $status, - )); - $logs = array(); - foreach ( $comments as $c ) { - $entry = $this->get_entry( $c ); - if ( !empty($entry) ) { - $logs[] = $entry; - } - } - return $logs; - } - - protected function get_comment( $comment_id ) { - return get_comment( $comment_id ); - } - - - - /** - * @param WP_Comment_Query $query - */ - public function filter_comment_queries( $query ) { - foreach ( array('ID', 'parent', 'post_author', 'post_name', 'post_parent', 'type', 'post_type', 'post_id', 'post_ID') as $key ) { - if ( !empty($query->query_vars[$key]) ) { - return; // don't slow down queries that wouldn't include action_log comments anyway - } - } - $query->query_vars['action_log_filter'] = TRUE; - add_filter( 'comments_clauses', array( $this, 'filter_comment_query_clauses' ), 10, 2 ); - } - - /** - * @param array $clauses - * @param WP_Comment_Query $query - * - * @return array - */ - public function filter_comment_query_clauses( $clauses, $query ) { - if ( !empty($query->query_vars['action_log_filter']) ) { - $clauses['where'] .= $this->get_where_clause(); - } - return $clauses; - } - - /** - * Make sure Action Scheduler logs are excluded from comment feeds, which use WP_Query, not - * the WP_Comment_Query class handled by @see self::filter_comment_queries(). - * - * @param string $where - * @param WP_Query $query - * - * @return string - */ - public function filter_comment_feed( $where, $query ) { - if ( is_comment_feed() ) { - $where .= $this->get_where_clause(); - } - return $where; - } - - /** - * Return a SQL clause to exclude Action Scheduler comments. - * - * @return string - */ - protected function get_where_clause() { - global $wpdb; - return sprintf( " AND {$wpdb->comments}.comment_type != '%s'", self::TYPE ); - } - - /** - * Remove action log entries from wp_count_comments() - * - * @param array $stats - * @param int $post_id - * - * @return object - */ - public function filter_comment_count( $stats, $post_id ) { - global $wpdb; - - if ( 0 === $post_id ) { - $stats = $this->get_comment_count(); - } - - return $stats; - } - - /** - * Retrieve the comment counts from our cache, or the database if the cached version isn't set. - * - * @return object - */ - protected function get_comment_count() { - global $wpdb; - - $stats = get_transient( 'as_comment_count' ); - - if ( ! $stats ) { - $stats = array(); - - $count = $wpdb->get_results( "SELECT comment_approved, COUNT( * ) AS num_comments FROM {$wpdb->comments} WHERE comment_type NOT IN('order_note','action_log') GROUP BY comment_approved", ARRAY_A ); - - $total = 0; - $stats = array(); - $approved = array( '0' => 'moderated', '1' => 'approved', 'spam' => 'spam', 'trash' => 'trash', 'post-trashed' => 'post-trashed' ); - - foreach ( (array) $count as $row ) { - // Don't count post-trashed toward totals - if ( 'post-trashed' != $row['comment_approved'] && 'trash' != $row['comment_approved'] ) { - $total += $row['num_comments']; - } - if ( isset( $approved[ $row['comment_approved'] ] ) ) { - $stats[ $approved[ $row['comment_approved'] ] ] = $row['num_comments']; - } - } - - $stats['total_comments'] = $total; - $stats['all'] = $total; - - foreach ( $approved as $key ) { - if ( empty( $stats[ $key ] ) ) { - $stats[ $key ] = 0; - } - } - - $stats = (object) $stats; - set_transient( 'as_comment_count', $stats ); - } - - return $stats; - } - - /** - * Delete comment count cache whenever there is new comment or the status of a comment changes. Cache - * will be regenerated next time ActionScheduler_wpCommentLogger::filter_comment_count() is called. - */ - public function delete_comment_count_cache() { - delete_transient( 'as_comment_count' ); - } - - /** - * @codeCoverageIgnore - */ - public function init() { - add_action( 'action_scheduler_before_process_queue', array( $this, 'disable_comment_counting' ), 10, 0 ); - add_action( 'action_scheduler_after_process_queue', array( $this, 'enable_comment_counting' ), 10, 0 ); - - parent::init(); - - add_action( 'pre_get_comments', array( $this, 'filter_comment_queries' ), 10, 1 ); - add_action( 'wp_count_comments', array( $this, 'filter_comment_count' ), 20, 2 ); // run after WC_Comments::wp_count_comments() to make sure we exclude order notes and action logs - add_action( 'comment_feed_where', array( $this, 'filter_comment_feed' ), 10, 2 ); - - // Delete comments count cache whenever there is a new comment or a comment status changes - add_action( 'wp_insert_comment', array( $this, 'delete_comment_count_cache' ) ); - add_action( 'wp_set_comment_status', array( $this, 'delete_comment_count_cache' ) ); - } - - public function disable_comment_counting() { - wp_defer_comment_counting(true); - } - public function enable_comment_counting() { - wp_defer_comment_counting(false); - } - -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php deleted file mode 100644 index 3618b1e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php +++ /dev/null @@ -1,860 +0,0 @@ -validate_action( $action ); - $post_array = $this->create_post_array( $action, $scheduled_date ); - $post_id = $this->save_post_array( $post_array ); - $this->save_post_schedule( $post_id, $action->get_schedule() ); - $this->save_action_group( $post_id, $action->get_group() ); - do_action( 'action_scheduler_stored_action', $post_id ); - return $post_id; - } catch ( Exception $e ) { - throw new RuntimeException( sprintf( __( 'Error saving action: %s', 'action-scheduler' ), $e->getMessage() ), 0 ); - } - } - - protected function create_post_array( ActionScheduler_Action $action, DateTime $scheduled_date = NULL ) { - $post = array( - 'post_type' => self::POST_TYPE, - 'post_title' => $action->get_hook(), - 'post_content' => json_encode($action->get_args()), - 'post_status' => ( $action->is_finished() ? 'publish' : 'pending' ), - 'post_date_gmt' => $this->get_scheduled_date_string( $action, $scheduled_date ), - 'post_date' => $this->get_scheduled_date_string_local( $action, $scheduled_date ), - ); - return $post; - } - - protected function save_post_array( $post_array ) { - add_filter( 'wp_insert_post_data', array( $this, 'filter_insert_post_data' ), 10, 1 ); - add_filter( 'pre_wp_unique_post_slug', array( $this, 'set_unique_post_slug' ), 10, 5 ); - - $has_kses = false !== has_filter( 'content_save_pre', 'wp_filter_post_kses' ); - - if ( $has_kses ) { - // Prevent KSES from corrupting JSON in post_content. - kses_remove_filters(); - } - - $post_id = wp_insert_post($post_array); - - if ( $has_kses ) { - kses_init_filters(); - } - - remove_filter( 'wp_insert_post_data', array( $this, 'filter_insert_post_data' ), 10 ); - remove_filter( 'pre_wp_unique_post_slug', array( $this, 'set_unique_post_slug' ), 10 ); - - if ( is_wp_error($post_id) || empty($post_id) ) { - throw new RuntimeException( __( 'Unable to save action.', 'action-scheduler' ) ); - } - return $post_id; - } - - public function filter_insert_post_data( $postdata ) { - if ( $postdata['post_type'] == self::POST_TYPE ) { - $postdata['post_author'] = 0; - if ( $postdata['post_status'] == 'future' ) { - $postdata['post_status'] = 'publish'; - } - } - return $postdata; - } - - /** - * Create a (probably unique) post name for scheduled actions in a more performant manner than wp_unique_post_slug(). - * - * When an action's post status is transitioned to something other than 'draft', 'pending' or 'auto-draft, like 'publish' - * or 'failed' or 'trash', WordPress will find a unique slug (stored in post_name column) using the wp_unique_post_slug() - * function. This is done to ensure URL uniqueness. The approach taken by wp_unique_post_slug() is to iterate over existing - * post_name values that match, and append a number 1 greater than the largest. This makes sense when manually creating a - * post from the Edit Post screen. It becomes a bottleneck when automatically processing thousands of actions, with a - * database containing thousands of related post_name values. - * - * WordPress 5.1 introduces the 'pre_wp_unique_post_slug' filter for plugins to address this issue. - * - * We can short-circuit WordPress's wp_unique_post_slug() approach using the 'pre_wp_unique_post_slug' filter. This - * method is available to be used as a callback on that filter. It provides a more scalable approach to generating a - * post_name/slug that is probably unique. Because Action Scheduler never actually uses the post_name field, or an - * action's slug, being probably unique is good enough. - * - * For more backstory on this issue, see: - * - https://github.com/woocommerce/action-scheduler/issues/44 and - * - https://core.trac.wordpress.org/ticket/21112 - * - * @param string $override_slug Short-circuit return value. - * @param string $slug The desired slug (post_name). - * @param int $post_ID Post ID. - * @param string $post_status The post status. - * @param string $post_type Post type. - * @return string - */ - public function set_unique_post_slug( $override_slug, $slug, $post_ID, $post_status, $post_type ) { - if ( self::POST_TYPE == $post_type ) { - $override_slug = uniqid( self::POST_TYPE . '-', true ) . '-' . wp_generate_password( 32, false ); - } - return $override_slug; - } - - protected function save_post_schedule( $post_id, $schedule ) { - update_post_meta( $post_id, self::SCHEDULE_META_KEY, $schedule ); - } - - protected function save_action_group( $post_id, $group ) { - if ( empty($group) ) { - wp_set_object_terms( $post_id, array(), self::GROUP_TAXONOMY, FALSE ); - } else { - wp_set_object_terms( $post_id, array($group), self::GROUP_TAXONOMY, FALSE ); - } - } - - public function fetch_action( $action_id ) { - $post = $this->get_post( $action_id ); - if ( empty($post) || $post->post_type != self::POST_TYPE ) { - return $this->get_null_action(); - } - - try { - $action = $this->make_action_from_post( $post ); - } catch ( ActionScheduler_InvalidActionException $exception ) { - do_action( 'action_scheduler_failed_fetch_action', $post->ID, $exception ); - return $this->get_null_action(); - } - - return $action; - } - - protected function get_post( $action_id ) { - if ( empty($action_id) ) { - return NULL; - } - return get_post($action_id); - } - - protected function get_null_action() { - return new ActionScheduler_NullAction(); - } - - protected function make_action_from_post( $post ) { - $hook = $post->post_title; - - $args = json_decode( $post->post_content, true ); - $this->validate_args( $args, $post->ID ); - - $schedule = get_post_meta( $post->ID, self::SCHEDULE_META_KEY, true ); - $this->validate_schedule( $schedule, $post->ID ); - - $group = wp_get_object_terms( $post->ID, self::GROUP_TAXONOMY, array('fields' => 'names') ); - $group = empty( $group ) ? '' : reset($group); - - return ActionScheduler::factory()->get_stored_action( $this->get_action_status_by_post_status( $post->post_status ), $hook, $args, $schedule, $group ); - } - - /** - * @param string $post_status - * - * @throws InvalidArgumentException if $post_status not in known status fields returned by $this->get_status_labels() - * @return string - */ - protected function get_action_status_by_post_status( $post_status ) { - - switch ( $post_status ) { - case 'publish' : - $action_status = self::STATUS_COMPLETE; - break; - case 'trash' : - $action_status = self::STATUS_CANCELED; - break; - default : - if ( ! array_key_exists( $post_status, $this->get_status_labels() ) ) { - throw new InvalidArgumentException( sprintf( 'Invalid post status: "%s". No matching action status available.', $post_status ) ); - } - $action_status = $post_status; - break; - } - - return $action_status; - } - - /** - * @param string $action_status - * @throws InvalidArgumentException if $post_status not in known status fields returned by $this->get_status_labels() - * @return string - */ - protected function get_post_status_by_action_status( $action_status ) { - - switch ( $action_status ) { - case self::STATUS_COMPLETE : - $post_status = 'publish'; - break; - case self::STATUS_CANCELED : - $post_status = 'trash'; - break; - default : - if ( ! array_key_exists( $action_status, $this->get_status_labels() ) ) { - throw new InvalidArgumentException( sprintf( 'Invalid action status: "%s".', $action_status ) ); - } - $post_status = $action_status; - break; - } - - return $post_status; - } - - /** - * @param string $hook - * @param array $params - * - * @return string ID of the next action matching the criteria or NULL if not found - */ - public function find_action( $hook, $params = array() ) { - $params = wp_parse_args( $params, array( - 'args' => NULL, - 'status' => ActionScheduler_Store::STATUS_PENDING, - 'group' => '', - )); - /** @var wpdb $wpdb */ - global $wpdb; - $query = "SELECT p.ID FROM {$wpdb->posts} p"; - $args = array(); - if ( !empty($params['group']) ) { - $query .= " INNER JOIN {$wpdb->term_relationships} tr ON tr.object_id=p.ID"; - $query .= " INNER JOIN {$wpdb->term_taxonomy} tt ON tr.term_taxonomy_id=tt.term_taxonomy_id"; - $query .= " INNER JOIN {$wpdb->terms} t ON tt.term_id=t.term_id AND t.slug=%s"; - $args[] = $params['group']; - } - $query .= " WHERE p.post_title=%s"; - $args[] = $hook; - $query .= " AND p.post_type=%s"; - $args[] = self::POST_TYPE; - if ( !is_null($params['args']) ) { - $query .= " AND p.post_content=%s"; - $args[] = json_encode($params['args']); - } - - if ( ! empty( $params['status'] ) ) { - $query .= " AND p.post_status=%s"; - $args[] = $this->get_post_status_by_action_status( $params['status'] ); - } - - switch ( $params['status'] ) { - case self::STATUS_COMPLETE: - case self::STATUS_RUNNING: - case self::STATUS_FAILED: - $order = 'DESC'; // Find the most recent action that matches - break; - case self::STATUS_PENDING: - default: - $order = 'ASC'; // Find the next action that matches - break; - } - $query .= " ORDER BY post_date_gmt $order LIMIT 1"; - - $query = $wpdb->prepare( $query, $args ); - - $id = $wpdb->get_var($query); - return $id; - } - - /** - * Returns the SQL statement to query (or count) actions. - * - * @param array $query Filtering options - * @param string $select_or_count Whether the SQL should select and return the IDs or just the row count - * @throws InvalidArgumentException if $select_or_count not count or select - * @return string SQL statement. The returned SQL is already properly escaped. - */ - protected function get_query_actions_sql( array $query, $select_or_count = 'select' ) { - - if ( ! in_array( $select_or_count, array( 'select', 'count' ) ) ) { - throw new InvalidArgumentException( __( 'Invalid schedule. Cannot save action.', 'action-scheduler' ) ); - } - - $query = wp_parse_args( $query, array( - 'hook' => '', - 'args' => NULL, - 'date' => NULL, - 'date_compare' => '<=', - 'modified' => NULL, - 'modified_compare' => '<=', - 'group' => '', - 'status' => '', - 'claimed' => NULL, - 'per_page' => 5, - 'offset' => 0, - 'orderby' => 'date', - 'order' => 'ASC', - 'search' => '', - ) ); - - /** @var wpdb $wpdb */ - global $wpdb; - $sql = ( 'count' === $select_or_count ) ? 'SELECT count(p.ID)' : 'SELECT p.ID '; - $sql .= "FROM {$wpdb->posts} p"; - $sql_params = array(); - if ( empty( $query['group'] ) && 'group' === $query['orderby'] ) { - $sql .= " LEFT JOIN {$wpdb->term_relationships} tr ON tr.object_id=p.ID"; - $sql .= " LEFT JOIN {$wpdb->term_taxonomy} tt ON tr.term_taxonomy_id=tt.term_taxonomy_id"; - $sql .= " LEFT JOIN {$wpdb->terms} t ON tt.term_id=t.term_id"; - } elseif ( ! empty( $query['group'] ) ) { - $sql .= " INNER JOIN {$wpdb->term_relationships} tr ON tr.object_id=p.ID"; - $sql .= " INNER JOIN {$wpdb->term_taxonomy} tt ON tr.term_taxonomy_id=tt.term_taxonomy_id"; - $sql .= " INNER JOIN {$wpdb->terms} t ON tt.term_id=t.term_id"; - $sql .= " AND t.slug=%s"; - $sql_params[] = $query['group']; - } - $sql .= " WHERE post_type=%s"; - $sql_params[] = self::POST_TYPE; - if ( $query['hook'] ) { - $sql .= " AND p.post_title=%s"; - $sql_params[] = $query['hook']; - } - if ( !is_null($query['args']) ) { - $sql .= " AND p.post_content=%s"; - $sql_params[] = json_encode($query['args']); - } - - if ( ! empty( $query['status'] ) ) { - $sql .= " AND p.post_status=%s"; - $sql_params[] = $this->get_post_status_by_action_status( $query['status'] ); - } - - if ( $query['date'] instanceof DateTime ) { - $date = clone $query['date']; - $date->setTimezone( new DateTimeZone('UTC') ); - $date_string = $date->format('Y-m-d H:i:s'); - $comparator = $this->validate_sql_comparator($query['date_compare']); - $sql .= " AND p.post_date_gmt $comparator %s"; - $sql_params[] = $date_string; - } - - if ( $query['modified'] instanceof DateTime ) { - $modified = clone $query['modified']; - $modified->setTimezone( new DateTimeZone('UTC') ); - $date_string = $modified->format('Y-m-d H:i:s'); - $comparator = $this->validate_sql_comparator($query['modified_compare']); - $sql .= " AND p.post_modified_gmt $comparator %s"; - $sql_params[] = $date_string; - } - - if ( $query['claimed'] === TRUE ) { - $sql .= " AND p.post_password != ''"; - } elseif ( $query['claimed'] === FALSE ) { - $sql .= " AND p.post_password = ''"; - } elseif ( !is_null($query['claimed']) ) { - $sql .= " AND p.post_password = %s"; - $sql_params[] = $query['claimed']; - } - - if ( ! empty( $query['search'] ) ) { - $sql .= " AND (p.post_title LIKE %s OR p.post_content LIKE %s OR p.post_password LIKE %s)"; - for( $i = 0; $i < 3; $i++ ) { - $sql_params[] = sprintf( '%%%s%%', $query['search'] ); - } - } - - if ( 'select' === $select_or_count ) { - switch ( $query['orderby'] ) { - case 'hook': - $orderby = 'p.post_title'; - break; - case 'group': - $orderby = 't.name'; - break; - case 'status': - $orderby = 'p.post_status'; - break; - case 'modified': - $orderby = 'p.post_modified'; - break; - case 'claim_id': - $orderby = 'p.post_password'; - break; - case 'schedule': - case 'date': - default: - $orderby = 'p.post_date_gmt'; - break; - } - if ( 'ASC' === strtoupper( $query['order'] ) ) { - $order = 'ASC'; - } else { - $order = 'DESC'; - } - $sql .= " ORDER BY $orderby $order"; - if ( $query['per_page'] > 0 ) { - $sql .= " LIMIT %d, %d"; - $sql_params[] = $query['offset']; - $sql_params[] = $query['per_page']; - } - } - - return $wpdb->prepare( $sql, $sql_params ); - } - - /** - * @param array $query - * @param string $query_type Whether to select or count the results. Default, select. - * @return string|array The IDs of actions matching the query - */ - public function query_actions( $query = array(), $query_type = 'select' ) { - /** @var wpdb $wpdb */ - global $wpdb; - - $sql = $this->get_query_actions_sql( $query, $query_type ); - - return ( 'count' === $query_type ) ? $wpdb->get_var( $sql ) : $wpdb->get_col( $sql ); - } - - /** - * Get a count of all actions in the store, grouped by status - * - * @return array - */ - public function action_counts() { - - $action_counts_by_status = array(); - $action_stati_and_labels = $this->get_status_labels(); - $posts_count_by_status = (array) wp_count_posts( self::POST_TYPE, 'readable' ); - - foreach ( $posts_count_by_status as $post_status_name => $count ) { - - try { - $action_status_name = $this->get_action_status_by_post_status( $post_status_name ); - } catch ( Exception $e ) { - // Ignore any post statuses that aren't for actions - continue; - } - if ( array_key_exists( $action_status_name, $action_stati_and_labels ) ) { - $action_counts_by_status[ $action_status_name ] = $count; - } - } - - return $action_counts_by_status; - } - - /** - * @param string $action_id - * - * @throws InvalidArgumentException - */ - public function cancel_action( $action_id ) { - $post = get_post( $action_id ); - if ( empty( $post ) || ( $post->post_type != self::POST_TYPE ) ) { - throw new InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'action-scheduler' ), $action_id ) ); - } - do_action( 'action_scheduler_canceled_action', $action_id ); - add_filter( 'pre_wp_unique_post_slug', array( $this, 'set_unique_post_slug' ), 10, 5 ); - wp_trash_post( $action_id ); - remove_filter( 'pre_wp_unique_post_slug', array( $this, 'set_unique_post_slug' ), 10 ); - } - - public function delete_action( $action_id ) { - $post = get_post( $action_id ); - if ( empty( $post ) || ( $post->post_type != self::POST_TYPE ) ) { - throw new InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'action-scheduler' ), $action_id ) ); - } - do_action( 'action_scheduler_deleted_action', $action_id ); - - wp_delete_post( $action_id, TRUE ); - } - - /** - * @param string $action_id - * - * @throws InvalidArgumentException - * @return ActionScheduler_DateTime The date the action is schedule to run, or the date that it ran. - */ - public function get_date( $action_id ) { - $next = $this->get_date_gmt( $action_id ); - return ActionScheduler_TimezoneHelper::set_local_timezone( $next ); - } - - /** - * @param string $action_id - * - * @throws InvalidArgumentException - * @return ActionScheduler_DateTime The date the action is schedule to run, or the date that it ran. - */ - public function get_date_gmt( $action_id ) { - $post = get_post( $action_id ); - if ( empty( $post ) || ( $post->post_type != self::POST_TYPE ) ) { - throw new InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'action-scheduler' ), $action_id ) ); - } - if ( $post->post_status == 'publish' ) { - return as_get_datetime_object( $post->post_modified_gmt ); - } else { - return as_get_datetime_object( $post->post_date_gmt ); - } - } - - /** - * @param int $max_actions - * @param DateTime $before_date Jobs must be schedule before this date. Defaults to now. - * @param array $hooks Claim only actions with a hook or hooks. - * @param string $group Claim only actions in the given group. - * - * @return ActionScheduler_ActionClaim - * @throws RuntimeException When there is an error staking a claim. - * @throws InvalidArgumentException When the given group is not valid. - */ - public function stake_claim( $max_actions = 10, DateTime $before_date = null, $hooks = array(), $group = '' ) { - $claim_id = $this->generate_claim_id(); - $this->claim_actions( $claim_id, $max_actions, $before_date, $hooks, $group ); - $action_ids = $this->find_actions_by_claim_id( $claim_id ); - - return new ActionScheduler_ActionClaim( $claim_id, $action_ids ); - } - - /** - * @return int - */ - public function get_claim_count(){ - global $wpdb; - - $sql = "SELECT COUNT(DISTINCT post_password) FROM {$wpdb->posts} WHERE post_password != '' AND post_type = %s AND post_status IN ('in-progress','pending')"; - $sql = $wpdb->prepare( $sql, array( self::POST_TYPE ) ); - - return $wpdb->get_var( $sql ); - } - - protected function generate_claim_id() { - $claim_id = md5(microtime(true) . rand(0,1000)); - return substr($claim_id, 0, 20); // to fit in db field with 20 char limit - } - - /** - * @param string $claim_id - * @param int $limit - * @param DateTime $before_date Should use UTC timezone. - * @param array $hooks Claim only actions with a hook or hooks. - * @param string $group Claim only actions in the given group. - * - * @return int The number of actions that were claimed - * @throws RuntimeException When there is a database error. - * @throws InvalidArgumentException When the group is invalid. - */ - protected function claim_actions( $claim_id, $limit, DateTime $before_date = null, $hooks = array(), $group = '' ) { - // Set up initial variables. - $date = null === $before_date ? as_get_datetime_object() : clone $before_date; - $limit_ids = ! empty( $group ); - $ids = $limit_ids ? $this->get_actions_by_group( $group, $limit, $date ) : array(); - - // If limiting by IDs and no posts found, then return early since we have nothing to update. - if ( $limit_ids && 0 === count( $ids ) ) { - return 0; - } - - /** @var wpdb $wpdb */ - global $wpdb; - - /* - * Build up custom query to update the affected posts. Parameters are built as a separate array - * to make it easier to identify where they are in the query. - * - * We can't use $wpdb->update() here because of the "ID IN ..." clause. - */ - $update = "UPDATE {$wpdb->posts} SET post_password = %s, post_modified_gmt = %s, post_modified = %s"; - $params = array( - $claim_id, - current_time( 'mysql', true ), - current_time( 'mysql' ), - ); - - // Build initial WHERE clause. - $where = "WHERE post_type = %s AND post_status = %s AND post_password = ''"; - $params[] = self::POST_TYPE; - $params[] = ActionScheduler_Store::STATUS_PENDING; - - if ( ! empty( $hooks ) ) { - $placeholders = array_fill( 0, count( $hooks ), '%s' ); - $where .= ' AND post_title IN (' . join( ', ', $placeholders ) . ')'; - $params = array_merge( $params, array_values( $hooks ) ); - } - - /* - * Add the IDs to the WHERE clause. IDs not escaped because they came directly from a prior DB query. - * - * If we're not limiting by IDs, then include the post_date_gmt clause. - */ - if ( $limit_ids ) { - $where .= ' AND ID IN (' . join( ',', $ids ) . ')'; - } else { - $where .= ' AND post_date_gmt <= %s'; - $params[] = $date->format( 'Y-m-d H:i:s' ); - } - - // Add the ORDER BY clause and,ms limit. - $order = 'ORDER BY menu_order ASC, post_date_gmt ASC, ID ASC LIMIT %d'; - $params[] = $limit; - - // Run the query and gather results. - $rows_affected = $wpdb->query( $wpdb->prepare( "{$update} {$where} {$order}", $params ) ); - if ( $rows_affected === false ) { - throw new RuntimeException( __( 'Unable to claim actions. Database error.', 'action-scheduler' ) ); - } - - return (int) $rows_affected; - } - - /** - * Get IDs of actions within a certain group and up to a certain date/time. - * - * @param string $group The group to use in finding actions. - * @param int $limit The number of actions to retrieve. - * @param DateTime $date DateTime object representing cutoff time for actions. Actions retrieved will be - * up to and including this DateTime. - * - * @return array IDs of actions in the appropriate group and before the appropriate time. - * @throws InvalidArgumentException When the group does not exist. - */ - protected function get_actions_by_group( $group, $limit, DateTime $date ) { - // Ensure the group exists before continuing. - if ( ! term_exists( $group, self::GROUP_TAXONOMY )) { - throw new InvalidArgumentException( sprintf( __( 'The group "%s" does not exist.', 'action-scheduler' ), $group ) ); - } - - // Set up a query for post IDs to use later. - $query = new WP_Query(); - $query_args = array( - 'fields' => 'ids', - 'post_type' => self::POST_TYPE, - 'post_status' => ActionScheduler_Store::STATUS_PENDING, - 'has_password' => false, - 'posts_per_page' => $limit * 3, - 'suppress_filters' => true, - 'no_found_rows' => true, - 'orderby' => array( - 'menu_order' => 'ASC', - 'date' => 'ASC', - 'ID' => 'ASC', - ), - 'date_query' => array( - 'column' => 'post_date_gmt', - 'before' => $date->format( 'Y-m-d H:i' ), - 'inclusive' => true, - ), - 'tax_query' => array( - array( - 'taxonomy' => self::GROUP_TAXONOMY, - 'field' => 'slug', - 'terms' => $group, - 'include_children' => false, - ), - ), - ); - - return $query->query( $query_args ); - } - - /** - * @param string $claim_id - * @return array - */ - public function find_actions_by_claim_id( $claim_id ) { - /** @var wpdb $wpdb */ - global $wpdb; - $sql = "SELECT ID FROM {$wpdb->posts} WHERE post_type = %s AND post_password = %s"; - $sql = $wpdb->prepare( $sql, array( self::POST_TYPE, $claim_id ) ); - $action_ids = $wpdb->get_col( $sql ); - return $action_ids; - } - - public function release_claim( ActionScheduler_ActionClaim $claim ) { - $action_ids = $this->find_actions_by_claim_id( $claim->get_id() ); - if ( empty( $action_ids ) ) { - return; // nothing to do - } - $action_id_string = implode( ',', array_map( 'intval', $action_ids ) ); - /** @var wpdb $wpdb */ - global $wpdb; - $sql = "UPDATE {$wpdb->posts} SET post_password = '' WHERE ID IN ($action_id_string) AND post_password = %s"; - $sql = $wpdb->prepare( $sql, array( $claim->get_id() ) ); - $result = $wpdb->query( $sql ); - if ( $result === false ) { - /* translators: %s: claim ID */ - throw new RuntimeException( sprintf( __( 'Unable to unlock claim %s. Database error.', 'action-scheduler' ), $claim->get_id() ) ); - } - } - - /** - * @param string $action_id - */ - public function unclaim_action( $action_id ) { - /** @var wpdb $wpdb */ - global $wpdb; - $sql = "UPDATE {$wpdb->posts} SET post_password = '' WHERE ID = %d AND post_type = %s"; - $sql = $wpdb->prepare( $sql, $action_id, self::POST_TYPE ); - $result = $wpdb->query( $sql ); - if ( $result === false ) { - /* translators: %s: action ID */ - throw new RuntimeException( sprintf( __( 'Unable to unlock claim on action %s. Database error.', 'action-scheduler' ), $action_id ) ); - } - } - - public function mark_failure( $action_id ) { - /** @var wpdb $wpdb */ - global $wpdb; - $sql = "UPDATE {$wpdb->posts} SET post_status = %s WHERE ID = %d AND post_type = %s"; - $sql = $wpdb->prepare( $sql, self::STATUS_FAILED, $action_id, self::POST_TYPE ); - $result = $wpdb->query( $sql ); - if ( $result === false ) { - /* translators: %s: action ID */ - throw new RuntimeException( sprintf( __( 'Unable to mark failure on action %s. Database error.', 'action-scheduler' ), $action_id ) ); - } - } - - /** - * Return an action's claim ID, as stored in the post password column - * - * @param string $action_id - * @return mixed - */ - public function get_claim_id( $action_id ) { - return $this->get_post_column( $action_id, 'post_password' ); - } - - /** - * Return an action's status, as stored in the post status column - * - * @param string $action_id - * @return mixed - */ - public function get_status( $action_id ) { - $status = $this->get_post_column( $action_id, 'post_status' ); - - if ( $status === null ) { - throw new InvalidArgumentException( __( 'Invalid action ID. No status found.', 'action-scheduler' ) ); - } - - return $this->get_action_status_by_post_status( $status ); - } - - private function get_post_column( $action_id, $column_name ) { - /** @var \wpdb $wpdb */ - global $wpdb; - return $wpdb->get_var( $wpdb->prepare( "SELECT {$column_name} FROM {$wpdb->posts} WHERE ID=%d AND post_type=%s", $action_id, self::POST_TYPE ) ); - } - - /** - * @param string $action_id - */ - public function log_execution( $action_id ) { - /** @var wpdb $wpdb */ - global $wpdb; - - $sql = "UPDATE {$wpdb->posts} SET menu_order = menu_order+1, post_status=%s, post_modified_gmt = %s, post_modified = %s WHERE ID = %d AND post_type = %s"; - $sql = $wpdb->prepare( $sql, self::STATUS_RUNNING, current_time('mysql', true), current_time('mysql'), $action_id, self::POST_TYPE ); - $wpdb->query($sql); - } - - /** - * Record that an action was completed. - * - * @param int $action_id ID of the completed action. - * @throws InvalidArgumentException|RuntimeException - */ - public function mark_complete( $action_id ) { - $post = get_post( $action_id ); - if ( empty( $post ) || ( $post->post_type != self::POST_TYPE ) ) { - throw new InvalidArgumentException( sprintf( __( 'Unidentified action %s', 'action-scheduler' ), $action_id ) ); - } - add_filter( 'wp_insert_post_data', array( $this, 'filter_insert_post_data' ), 10, 1 ); - add_filter( 'pre_wp_unique_post_slug', array( $this, 'set_unique_post_slug' ), 10, 5 ); - $result = wp_update_post(array( - 'ID' => $action_id, - 'post_status' => 'publish', - ), TRUE); - remove_filter( 'wp_insert_post_data', array( $this, 'filter_insert_post_data' ), 10 ); - remove_filter( 'pre_wp_unique_post_slug', array( $this, 'set_unique_post_slug' ), 10 ); - if ( is_wp_error( $result ) ) { - throw new RuntimeException( $result->get_error_message() ); - } - } - - /** - * Mark action as migrated when there is an error deleting the action. - * - * @param int $action_id Action ID. - */ - public function mark_migrated( $action_id ) { - wp_update_post( - array( - 'ID' => $action_id, - 'post_status' => 'migrated' - ) - ); - } - - /** - * Determine whether the post store can be migrated. - * - * @return bool - */ - public function migration_dependencies_met( $setting ) { - global $wpdb; - - $dependencies_met = get_transient( self::DEPENDENCIES_MET ); - if ( empty( $dependencies_met ) ) { - $maximum_args_length = apply_filters( 'action_scheduler_maximum_args_length', 191 ); - $found_action = $wpdb->get_var( - $wpdb->prepare( - "SELECT ID FROM {$wpdb->posts} WHERE post_type = %s AND CHAR_LENGTH(post_content) > %d LIMIT 1", - $maximum_args_length, - self::POST_TYPE - ) - ); - $dependencies_met = $found_action ? 'no' : 'yes'; - set_transient( self::DEPENDENCIES_MET, $dependencies_met, DAY_IN_SECONDS ); - } - - return 'yes' == $dependencies_met ? $setting : false; - } - - /** - * InnoDB indexes have a maximum size of 767 bytes by default, which is only 191 characters with utf8mb4. - * - * Previously, AS wasn't concerned about args length, as we used the (unindex) post_content column. However, - * as we prepare to move to custom tables, and can use an indexed VARCHAR column instead, we want to warn - * developers of this impending requirement. - * - * @param ActionScheduler_Action $action - */ - protected function validate_action( ActionScheduler_Action $action ) { - try { - parent::validate_action( $action ); - } catch ( Exception $e ) { - $message = sprintf( __( '%s Support for strings longer than this will be removed in a future version.', 'action-scheduler' ), $e->getMessage() ); - _doing_it_wrong( 'ActionScheduler_Action::$args', $message, '2.1.0' ); - } - } - - /** - * @codeCoverageIgnore - */ - public function init() { - add_filter( 'action_scheduler_migration_dependencies_met', array( $this, 'migration_dependencies_met' ) ); - - $post_type_registrar = new ActionScheduler_wpPostStore_PostTypeRegistrar(); - $post_type_registrar->register(); - - $post_status_registrar = new ActionScheduler_wpPostStore_PostStatusRegistrar(); - $post_status_registrar->register(); - - $taxonomy_registrar = new ActionScheduler_wpPostStore_TaxonomyRegistrar(); - $taxonomy_registrar->register(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_PostStatusRegistrar.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_PostStatusRegistrar.php deleted file mode 100644 index 246bc34..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_PostStatusRegistrar.php +++ /dev/null @@ -1,58 +0,0 @@ -post_status_args(), $this->post_status_running_labels() ) ); - register_post_status( ActionScheduler_Store::STATUS_FAILED, array_merge( $this->post_status_args(), $this->post_status_failed_labels() ) ); - } - - /** - * Build the args array for the post type definition - * - * @return array - */ - protected function post_status_args() { - $args = array( - 'public' => false, - 'exclude_from_search' => false, - 'show_in_admin_all_list' => true, - 'show_in_admin_status_list' => true, - ); - - return apply_filters( 'action_scheduler_post_status_args', $args ); - } - - /** - * Build the args array for the post type definition - * - * @return array - */ - protected function post_status_failed_labels() { - $labels = array( - 'label' => _x( 'Failed', 'post', 'action-scheduler' ), - /* translators: %s: count */ - 'label_count' => _n_noop( 'Failed (%s)', 'Failed (%s)', 'action-scheduler' ), - ); - - return apply_filters( 'action_scheduler_post_status_failed_labels', $labels ); - } - - /** - * Build the args array for the post type definition - * - * @return array - */ - protected function post_status_running_labels() { - $labels = array( - 'label' => _x( 'In-Progress', 'post', 'action-scheduler' ), - /* translators: %s: count */ - 'label_count' => _n_noop( 'In-Progress (%s)', 'In-Progress (%s)', 'action-scheduler' ), - ); - - return apply_filters( 'action_scheduler_post_status_running_labels', $labels ); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_PostTypeRegistrar.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_PostTypeRegistrar.php deleted file mode 100644 index 8c63bd0..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_PostTypeRegistrar.php +++ /dev/null @@ -1,50 +0,0 @@ -post_type_args() ); - } - - /** - * Build the args array for the post type definition - * - * @return array - */ - protected function post_type_args() { - $args = array( - 'label' => __( 'Scheduled Actions', 'action-scheduler' ), - 'description' => __( 'Scheduled actions are hooks triggered on a cetain date and time.', 'action-scheduler' ), - 'public' => false, - 'map_meta_cap' => true, - 'hierarchical' => false, - 'supports' => array('title', 'editor','comments'), - 'rewrite' => false, - 'query_var' => false, - 'can_export' => true, - 'ep_mask' => EP_NONE, - 'labels' => array( - 'name' => __( 'Scheduled Actions', 'action-scheduler' ), - 'singular_name' => __( 'Scheduled Action', 'action-scheduler' ), - 'menu_name' => _x( 'Scheduled Actions', 'Admin menu name', 'action-scheduler' ), - 'add_new' => __( 'Add', 'action-scheduler' ), - 'add_new_item' => __( 'Add New Scheduled Action', 'action-scheduler' ), - 'edit' => __( 'Edit', 'action-scheduler' ), - 'edit_item' => __( 'Edit Scheduled Action', 'action-scheduler' ), - 'new_item' => __( 'New Scheduled Action', 'action-scheduler' ), - 'view' => __( 'View Action', 'action-scheduler' ), - 'view_item' => __( 'View Action', 'action-scheduler' ), - 'search_items' => __( 'Search Scheduled Actions', 'action-scheduler' ), - 'not_found' => __( 'No actions found', 'action-scheduler' ), - 'not_found_in_trash' => __( 'No actions found in trash', 'action-scheduler' ), - ), - ); - - $args = apply_filters('action_scheduler_post_type_args', $args); - return $args; - } -} - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_TaxonomyRegistrar.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_TaxonomyRegistrar.php deleted file mode 100644 index 367401f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_TaxonomyRegistrar.php +++ /dev/null @@ -1,26 +0,0 @@ -taxonomy_args() ); - } - - protected function taxonomy_args() { - $args = array( - 'label' => __( 'Action Group', 'action-scheduler' ), - 'public' => false, - 'hierarchical' => false, - 'show_admin_column' => true, - 'query_var' => false, - 'rewrite' => false, - ); - - $args = apply_filters( 'action_scheduler_taxonomy_args', $args ); - return $args; - } -} - \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/ActionMigrator.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/ActionMigrator.php deleted file mode 100644 index c77d083..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/ActionMigrator.php +++ /dev/null @@ -1,109 +0,0 @@ -source = $source_store; - $this->destination = $destination_store; - $this->log_migrator = $log_migrator; - } - - /** - * Migrate an action. - * - * @param int $source_action_id Action ID. - * - * @return int 0|new action ID - */ - public function migrate( $source_action_id ) { - try { - $action = $this->source->fetch_action( $source_action_id ); - $status = $this->source->get_status( $source_action_id ); - } catch ( \Exception $e ) { - $action = null; - $status = ''; - } - - if ( is_null( $action ) || empty( $status ) || ! $action->get_schedule()->get_date() ) { - // null action or empty status means the fetch operation failed or the action didn't exist - // null schedule means it's missing vital data - // delete it and move on - try { - $this->source->delete_action( $source_action_id ); - } catch ( \Exception $e ) { - // nothing to do, it didn't exist in the first place - } - do_action( 'action_scheduler/no_action_to_migrate', $source_action_id, $this->source, $this->destination ); - - return 0; - } - - try { - - // Make sure the last attempt date is set correctly for completed and failed actions - $last_attempt_date = ( $status !== \ActionScheduler_Store::STATUS_PENDING ) ? $this->source->get_date( $source_action_id ) : null; - - $destination_action_id = $this->destination->save_action( $action, null, $last_attempt_date ); - } catch ( \Exception $e ) { - do_action( 'action_scheduler/migrate_action_failed', $source_action_id, $this->source, $this->destination ); - - return 0; // could not save the action in the new store - } - - try { - switch ( $status ) { - case \ActionScheduler_Store::STATUS_FAILED : - $this->destination->mark_failure( $destination_action_id ); - break; - case \ActionScheduler_Store::STATUS_CANCELED : - $this->destination->cancel_action( $destination_action_id ); - break; - } - - $this->log_migrator->migrate( $source_action_id, $destination_action_id ); - $this->source->delete_action( $source_action_id ); - - $test_action = $this->source->fetch_action( $source_action_id ); - if ( ! is_a( $test_action, 'ActionScheduler_NullAction' ) ) { - throw new \RuntimeException( sprintf( __( 'Unable to remove source migrated action %s', 'action-scheduler' ), $source_action_id ) ); - } - do_action( 'action_scheduler/migrated_action', $source_action_id, $destination_action_id, $this->source, $this->destination ); - - return $destination_action_id; - } catch ( \Exception $e ) { - // could not delete from the old store - $this->source->mark_migrated( $source_action_id ); - do_action( 'action_scheduler/migrate_action_incomplete', $source_action_id, $destination_action_id, $this->source, $this->destination ); - do_action( 'action_scheduler/migrated_action', $source_action_id, $destination_action_id, $this->source, $this->destination ); - - return $destination_action_id; - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/ActionScheduler_DBStoreMigrator.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/ActionScheduler_DBStoreMigrator.php deleted file mode 100644 index 41c21da..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/ActionScheduler_DBStoreMigrator.php +++ /dev/null @@ -1,47 +0,0 @@ - $this->get_scheduled_date_string( $action, $last_attempt_date ), - 'last_attempt_local' => $this->get_scheduled_date_string_local( $action, $last_attempt_date ), - ]; - - $wpdb->update( $wpdb->actionscheduler_actions, $data, array( 'action_id' => $action_id ), array( '%s', '%s' ), array( '%d' ) ); - } - - return $action_id; - } catch ( \Exception $e ) { - throw new \RuntimeException( sprintf( __( 'Error saving action: %s', 'action-scheduler' ), $e->getMessage() ), 0 ); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/BatchFetcher.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/BatchFetcher.php deleted file mode 100644 index 4872801..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/BatchFetcher.php +++ /dev/null @@ -1,86 +0,0 @@ -store = $source_store; - } - - /** - * Retrieve a list of actions. - * - * @param int $count The number of actions to retrieve - * - * @return int[] A list of action IDs - */ - public function fetch( $count = 10 ) { - foreach ( $this->get_query_strategies( $count ) as $query ) { - $action_ids = $this->store->query_actions( $query ); - if ( ! empty( $action_ids ) ) { - return $action_ids; - } - } - - return []; - } - - /** - * Generate a list of prioritized of action search parameters. - * - * @param int $count Number of actions to find. - * - * @return array - */ - private function get_query_strategies( $count ) { - $now = as_get_datetime_object(); - $args = [ - 'date' => $now, - 'per_page' => $count, - 'offset' => 0, - 'orderby' => 'date', - 'order' => 'ASC', - ]; - - $priorities = [ - Store::STATUS_PENDING, - Store::STATUS_FAILED, - Store::STATUS_CANCELED, - Store::STATUS_COMPLETE, - Store::STATUS_RUNNING, - '', // any other unanticipated status - ]; - - foreach ( $priorities as $status ) { - yield wp_parse_args( [ - 'status' => $status, - 'date_compare' => '<=', - ], $args ); - yield wp_parse_args( [ - 'status' => $status, - 'date_compare' => '>=', - ], $args ); - } - } -} \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Config.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Config.php deleted file mode 100644 index 50f41ff..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Config.php +++ /dev/null @@ -1,168 +0,0 @@ -source_store ) ) { - throw new \RuntimeException( __( 'Source store must be configured before running a migration', 'action-scheduler' ) ); - } - - return $this->source_store; - } - - /** - * Set the configured source store. - * - * @param ActionScheduler_Store $store Source store object. - */ - public function set_source_store( Store $store ) { - $this->source_store = $store; - } - - /** - * Get the configured source loger. - * - * @return ActionScheduler_Logger - */ - public function get_source_logger() { - if ( empty( $this->source_logger ) ) { - throw new \RuntimeException( __( 'Source logger must be configured before running a migration', 'action-scheduler' ) ); - } - - return $this->source_logger; - } - - /** - * Set the configured source logger. - * - * @param ActionScheduler_Logger $logger - */ - public function set_source_logger( Logger $logger ) { - $this->source_logger = $logger; - } - - /** - * Get the configured destination store. - * - * @return ActionScheduler_Store - */ - public function get_destination_store() { - if ( empty( $this->destination_store ) ) { - throw new \RuntimeException( __( 'Destination store must be configured before running a migration', 'action-scheduler' ) ); - } - - return $this->destination_store; - } - - /** - * Set the configured destination store. - * - * @param ActionScheduler_Store $store - */ - public function set_destination_store( Store $store ) { - $this->destination_store = $store; - } - - /** - * Get the configured destination logger. - * - * @return ActionScheduler_Logger - */ - public function get_destination_logger() { - if ( empty( $this->destination_logger ) ) { - throw new \RuntimeException( __( 'Destination logger must be configured before running a migration', 'action-scheduler' ) ); - } - - return $this->destination_logger; - } - - /** - * Set the configured destination logger. - * - * @param ActionScheduler_Logger $logger - */ - public function set_destination_logger( Logger $logger ) { - $this->destination_logger = $logger; - } - - /** - * Get flag indicating whether it's a dry run. - * - * @return bool - */ - public function get_dry_run() { - return $this->dry_run; - } - - /** - * Set flag indicating whether it's a dry run. - * - * @param bool $dry_run - */ - public function set_dry_run( $dry_run ) { - $this->dry_run = (bool) $dry_run; - } - - /** - * Get progress bar object. - * - * @return ActionScheduler\WPCLI\ProgressBar - */ - public function get_progress_bar() { - return $this->progress_bar; - } - - /** - * Set progress bar object. - * - * @param ActionScheduler\WPCLI\ProgressBar $progress_bar - */ - public function set_progress_bar( ProgressBar $progress_bar ) { - $this->progress_bar = $progress_bar; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Controller.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Controller.php deleted file mode 100644 index fb282fb..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Controller.php +++ /dev/null @@ -1,206 +0,0 @@ -migration_scheduler = $migration_scheduler; - $this->store_classname = ''; - } - - /** - * Set the action store class name. - * - * @param string $class Classname of the store class. - * - * @return string - */ - public function get_store_class( $class ) { - if ( \ActionScheduler_DataController::is_migration_complete() ) { - return \ActionScheduler_DataController::DATASTORE_CLASS; - } elseif ( \ActionScheduler_Store::DEFAULT_CLASS !== $class ) { - $this->store_classname = $class; - return $class; - } else { - return 'ActionScheduler_HybridStore'; - } - } - - /** - * Set the action logger class name. - * - * @param string $class Classname of the logger class. - * - * @return string - */ - public function get_logger_class( $class ) { - \ActionScheduler_Store::instance(); - - if ( $this->has_custom_datastore() ) { - $this->logger_classname = $class; - return $class; - } else { - return \ActionScheduler_DataController::LOGGER_CLASS; - } - } - - /** - * Get flag indicating whether a custom datastore is in use. - * - * @return bool - */ - public function has_custom_datastore() { - return (bool) $this->store_classname; - } - - /** - * Set up the background migration process - * - * @return void - */ - public function schedule_migration() { - if ( \ActionScheduler_DataController::is_migration_complete() || $this->migration_scheduler->is_migration_scheduled() ) { - return; - } - - $this->migration_scheduler->schedule_migration(); - } - - /** - * Get the default migration config object - * - * @return ActionScheduler\Migration\Config - */ - public function get_migration_config_object() { - static $config = null; - - if ( ! $config ) { - $source_store = $this->store_classname ? new $this->store_classname() : new \ActionScheduler_wpPostStore(); - $source_logger = $this->logger_classname ? new $this->logger_classname() : new \ActionScheduler_wpCommentLogger(); - - $config = new Config(); - $config->set_source_store( $source_store ); - $config->set_source_logger( $source_logger ); - $config->set_destination_store( new \ActionScheduler_DBStoreMigrator() ); - $config->set_destination_logger( new \ActionScheduler_DBLogger() ); - - if ( defined( 'WP_CLI' ) && WP_CLI ) { - $config->set_progress_bar( new ProgressBar( '', 0 ) ); - } - } - - return apply_filters( 'action_scheduler/migration_config', $config ); - } - - /** - * Hook dashboard migration notice. - */ - public function hook_admin_notices() { - if ( ! $this->allow_migration() || \ActionScheduler_DataController::is_migration_complete() ) { - return; - } - add_action( 'admin_notices', array( $this, 'display_migration_notice' ), 10, 0 ); - } - - /** - * Show a dashboard notice that migration is in progress. - */ - public function display_migration_notice() { - printf( '

    %s

    ', __( 'Action Scheduler migration in progress. The list of scheduled actions may be incomplete.', 'action-scheduler' ) ); - } - - /** - * Add store classes. Hook migration. - */ - private function hook() { - add_filter( 'action_scheduler_store_class', array( $this, 'get_store_class' ), 100, 1 ); - add_filter( 'action_scheduler_logger_class', array( $this, 'get_logger_class' ), 100, 1 ); - add_action( 'init', array( $this, 'maybe_hook_migration' ) ); - add_action( 'wp_loaded', array( $this, 'schedule_migration' ) ); - - // Action Scheduler may be displayed as a Tools screen or WooCommerce > Status administration screen - add_action( 'load-tools_page_action-scheduler', array( $this, 'hook_admin_notices' ), 10, 0 ); - add_action( 'load-woocommerce_page_wc-status', array( $this, 'hook_admin_notices' ), 10, 0 ); - } - - /** - * Possibly hook the migration scheduler action. - * - * @author Jeremy Pry - */ - public function maybe_hook_migration() { - if ( ! $this->allow_migration() || \ActionScheduler_DataController::is_migration_complete() ) { - return; - } - - $this->migration_scheduler->hook(); - } - - /** - * Allow datastores to enable migration to AS tables. - */ - public function allow_migration() { - if ( ! \ActionScheduler_DataController::dependencies_met() ) { - return false; - } - - if ( null === $this->migrate_custom_store ) { - $this->migrate_custom_store = apply_filters( 'action_scheduler_migrate_data_store', false ); - } - - return ( ! $this->has_custom_datastore() ) || $this->migrate_custom_store; - } - - /** - * Proceed with the migration if the dependencies have been met. - */ - public static function init() { - if ( \ActionScheduler_DataController::dependencies_met() ) { - self::instance()->hook(); - } - } - - /** - * Singleton factory. - */ - public static function instance() { - if ( ! isset( self::$instance ) ) { - self::$instance = new static( new Scheduler() ); - } - - return self::$instance; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/DryRun_ActionMigrator.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/DryRun_ActionMigrator.php deleted file mode 100644 index ffc21c2..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/DryRun_ActionMigrator.php +++ /dev/null @@ -1,28 +0,0 @@ -source = $source_logger; - $this->destination = $destination_Logger; - } - - /** - * Migrate an action log. - * - * @param int $source_action_id Source logger object. - * @param int $destination_action_id Destination logger object. - */ - public function migrate( $source_action_id, $destination_action_id ) { - $logs = $this->source->get_logs( $source_action_id ); - foreach ( $logs as $log ) { - if ( $log->get_action_id() == $source_action_id ) { - $this->destination->log( $destination_action_id, $log->get_message(), $log->get_date() ); - } - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Runner.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Runner.php deleted file mode 100644 index 867c5de..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Runner.php +++ /dev/null @@ -1,136 +0,0 @@ -source_store = $config->get_source_store(); - $this->destination_store = $config->get_destination_store(); - $this->source_logger = $config->get_source_logger(); - $this->destination_logger = $config->get_destination_logger(); - - $this->batch_fetcher = new BatchFetcher( $this->source_store ); - if ( $config->get_dry_run() ) { - $this->log_migrator = new DryRun_LogMigrator( $this->source_logger, $this->destination_logger ); - $this->action_migrator = new DryRun_ActionMigrator( $this->source_store, $this->destination_store, $this->log_migrator ); - } else { - $this->log_migrator = new LogMigrator( $this->source_logger, $this->destination_logger ); - $this->action_migrator = new ActionMigrator( $this->source_store, $this->destination_store, $this->log_migrator ); - } - - if ( defined( 'WP_CLI' ) && WP_CLI ) { - $this->progress_bar = $config->get_progress_bar(); - } - } - - /** - * Run migration batch. - * - * @param int $batch_size Optional batch size. Default 10. - * - * @return int Size of batch processed. - */ - public function run( $batch_size = 10 ) { - $batch = $this->batch_fetcher->fetch( $batch_size ); - $batch_size = count( $batch ); - - if ( ! $batch_size ) { - return 0; - } - - if ( $this->progress_bar ) { - /* translators: %d: amount of actions */ - $this->progress_bar->set_message( sprintf( _n( 'Migrating %d action', 'Migrating %d actions', $batch_size, 'action-scheduler' ), number_format_i18n( $batch_size ) ) ); - $this->progress_bar->set_count( $batch_size ); - } - - $this->migrate_actions( $batch ); - - return $batch_size; - } - - /** - * Migration a batch of actions. - * - * @param array $action_ids List of action IDs to migrate. - */ - public function migrate_actions( array $action_ids ) { - do_action( 'action_scheduler/migration_batch_starting', $action_ids ); - - \ActionScheduler::logger()->unhook_stored_action(); - $this->destination_logger->unhook_stored_action(); - - foreach ( $action_ids as $source_action_id ) { - $destination_action_id = $this->action_migrator->migrate( $source_action_id ); - if ( $destination_action_id ) { - $this->destination_logger->log( $destination_action_id, sprintf( - /* translators: 1: source action ID 2: source store class 3: destination action ID 4: destination store class */ - __( 'Migrated action with ID %1$d in %2$s to ID %3$d in %4$s', 'action-scheduler' ), - $source_action_id, - get_class( $this->source_store ), - $destination_action_id, - get_class( $this->destination_store ) - ) ); - } - - if ( $this->progress_bar ) { - $this->progress_bar->tick(); - } - } - - if ( $this->progress_bar ) { - $this->progress_bar->finish(); - } - - \ActionScheduler::logger()->hook_stored_action(); - - do_action( 'action_scheduler/migration_batch_complete', $action_ids ); - } - - /** - * Initialize destination store and logger. - */ - public function init_destination() { - $this->destination_store->init(); - $this->destination_logger->init(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Scheduler.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Scheduler.php deleted file mode 100644 index dcbe2db..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/migration/Scheduler.php +++ /dev/null @@ -1,128 +0,0 @@ -get_migration_runner(); - $count = $migration_runner->run( $this->get_batch_size() ); - - if ( $count === 0 ) { - $this->mark_complete(); - } else { - $this->schedule_migration( time() + $this->get_schedule_interval() ); - } - } - - /** - * Mark the migration complete. - */ - public function mark_complete() { - $this->unschedule_migration(); - - \ActionScheduler_DataController::mark_migration_complete(); - do_action( 'action_scheduler/migration_complete' ); - } - - /** - * Get a flag indicating whether the migration is scheduled. - * - * @return bool Whether there is a pending action in the store to handle the migration - */ - public function is_migration_scheduled() { - $next = as_next_scheduled_action( self::HOOK ); - - return ! empty( $next ); - } - - /** - * Schedule the migration. - * - * @param int $when Optional timestamp to run the next migration batch. Defaults to now. - * - * @return string The action ID - */ - public function schedule_migration( $when = 0 ) { - $next = as_next_scheduled_action( self::HOOK ); - - if ( ! empty( $next ) ) { - return $next; - } - - if ( empty( $when ) ) { - $when = time() + MINUTE_IN_SECONDS; - } - - return as_schedule_single_action( $when, self::HOOK, array(), self::GROUP ); - } - - /** - * Remove the scheduled migration action. - */ - public function unschedule_migration() { - as_unschedule_action( self::HOOK, null, self::GROUP ); - } - - /** - * Get migration batch schedule interval. - * - * @return int Seconds between migration runs. Defaults to 0 seconds to allow chaining migration via Async Runners. - */ - private function get_schedule_interval() { - return (int) apply_filters( 'action_scheduler/migration_interval', 0 ); - } - - /** - * Get migration batch size. - * - * @return int Number of actions to migrate in each batch. Defaults to 250. - */ - private function get_batch_size() { - return (int) apply_filters( 'action_scheduler/migration_batch_size', 250 ); - } - - /** - * Get migration runner object. - * - * @return Runner - */ - private function get_migration_runner() { - $config = Controller::instance()->get_migration_config_object(); - - return new Runner( $config ); - } - -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_CanceledSchedule.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_CanceledSchedule.php deleted file mode 100644 index 840e482..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_CanceledSchedule.php +++ /dev/null @@ -1,57 +0,0 @@ -__wakeup() for details. - **/ - private $timestamp = NULL; - - /** - * @param DateTime $after - * - * @return DateTime|null - */ - public function calculate_next( DateTime $after ) { - return null; - } - - /** - * Cancelled actions should never have a next schedule, even if get_next() - * is called with $after < $this->scheduled_date. - * - * @param DateTime $after - * @return DateTime|null - */ - public function get_next( DateTime $after ) { - return null; - } - - /** - * @return bool - */ - public function is_recurring() { - return false; - } - - /** - * Unserialize recurring schedules serialized/stored prior to AS 3.0.0 - * - * Prior to Action Scheduler 3.0.0, schedules used different property names to refer - * to equivalent data. For example, ActionScheduler_IntervalSchedule::start_timestamp - * was the same as ActionScheduler_SimpleSchedule::timestamp. Action Scheduler 3.0.0 - * aligned properties and property names for better inheritance. To maintain backward - * compatibility with schedules serialized and stored prior to 3.0, we need to correctly - * map the old property names with matching visibility. - */ - public function __wakeup() { - if ( ! is_null( $this->timestamp ) ) { - $this->scheduled_timestamp = $this->timestamp; - unset( $this->timestamp ); - } - parent::__wakeup(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_CronSchedule.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_CronSchedule.php deleted file mode 100644 index 7859307..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_CronSchedule.php +++ /dev/null @@ -1,102 +0,0 @@ -__wakeup() for details. - **/ - private $start_timestamp = NULL; - - /** - * Deprecated property @see $this->__wakeup() for details. - **/ - private $cron = NULL; - - /** - * Wrapper for parent constructor to accept a cron expression string and map it to a CronExpression for this - * objects $recurrence property. - * - * @param DateTime $start The date & time to run the action at or after. If $start aligns with the CronSchedule passed via $recurrence, it will be used. If it does not align, the first matching date after it will be used. - * @param CronExpression|string $recurrence The CronExpression used to calculate the schedule's next instance. - * @param DateTime|null $first (Optional) The date & time the first instance of this interval schedule ran. Default null, meaning this is the first instance. - */ - public function __construct( DateTime $start, $recurrence, DateTime $first = null ) { - if ( ! is_a( $recurrence, 'CronExpression' ) ) { - $recurrence = CronExpression::factory( $recurrence ); - } - - // For backward compatibility, we need to make sure the date is set to the first matching cron date, not whatever date is passed in. Importantly, by passing true as the 3rd param, if $start matches the cron expression, then it will be used. This was previously handled in the now deprecated next() method. - $date = $recurrence->getNextRunDate( $start, 0, true ); - - // parent::__construct() will set this to $date by default, but that may be different to $start now. - $first = empty( $first ) ? $start : $first; - - parent::__construct( $date, $recurrence, $first ); - } - - /** - * Calculate when an instance of this schedule would start based on a given - * date & time using its the CronExpression. - * - * @param DateTime $after - * @return DateTime - */ - protected function calculate_next( DateTime $after ) { - return $this->recurrence->getNextRunDate( $after, 0, false ); - } - - /** - * @return string - */ - public function get_recurrence() { - return strval( $this->recurrence ); - } - - /** - * Serialize cron schedules with data required prior to AS 3.0.0 - * - * Prior to Action Scheduler 3.0.0, reccuring schedules used different property names to - * refer to equivalent data. For example, ActionScheduler_IntervalSchedule::start_timestamp - * was the same as ActionScheduler_SimpleSchedule::timestamp. Action Scheduler 3.0.0 - * aligned properties and property names for better inheritance. To guard against the - * possibility of infinite loops if downgrading to Action Scheduler < 3.0.0, we need to - * also store the data with the old property names so if it's unserialized in AS < 3.0, - * the schedule doesn't end up with a null recurrence. - * - * @return array - */ - public function __sleep() { - - $sleep_params = parent::__sleep(); - - $this->start_timestamp = $this->scheduled_timestamp; - $this->cron = $this->recurrence; - - return array_merge( $sleep_params, array( - 'start_timestamp', - 'cron' - ) ); - } - - /** - * Unserialize cron schedules serialized/stored prior to AS 3.0.0 - * - * For more background, @see ActionScheduler_Abstract_RecurringSchedule::__wakeup(). - */ - public function __wakeup() { - if ( is_null( $this->scheduled_timestamp ) && ! is_null( $this->start_timestamp ) ) { - $this->scheduled_timestamp = $this->start_timestamp; - unset( $this->start_timestamp ); - } - - if ( is_null( $this->recurrence ) && ! is_null( $this->cron ) ) { - $this->recurrence = $this->cron; - unset( $this->cron ); - } - parent::__wakeup(); - } -} - diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_IntervalSchedule.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_IntervalSchedule.php deleted file mode 100644 index 11a591e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_IntervalSchedule.php +++ /dev/null @@ -1,81 +0,0 @@ -__wakeup() for details. - **/ - private $start_timestamp = NULL; - - /** - * Deprecated property @see $this->__wakeup() for details. - **/ - private $interval_in_seconds = NULL; - - /** - * Calculate when this schedule should start after a given date & time using - * the number of seconds between recurrences. - * - * @param DateTime $after - * @return DateTime - */ - protected function calculate_next( DateTime $after ) { - $after->modify( '+' . (int) $this->get_recurrence() . ' seconds' ); - return $after; - } - - /** - * @return int - */ - public function interval_in_seconds() { - _deprecated_function( __METHOD__, '3.0.0', '(int)ActionScheduler_Abstract_RecurringSchedule::get_recurrence()' ); - return (int) $this->get_recurrence(); - } - - /** - * Serialize interval schedules with data required prior to AS 3.0.0 - * - * Prior to Action Scheduler 3.0.0, reccuring schedules used different property names to - * refer to equivalent data. For example, ActionScheduler_IntervalSchedule::start_timestamp - * was the same as ActionScheduler_SimpleSchedule::timestamp. Action Scheduler 3.0.0 - * aligned properties and property names for better inheritance. To guard against the - * possibility of infinite loops if downgrading to Action Scheduler < 3.0.0, we need to - * also store the data with the old property names so if it's unserialized in AS < 3.0, - * the schedule doesn't end up with a null/false/0 recurrence. - * - * @return array - */ - public function __sleep() { - - $sleep_params = parent::__sleep(); - - $this->start_timestamp = $this->scheduled_timestamp; - $this->interval_in_seconds = $this->recurrence; - - return array_merge( $sleep_params, array( - 'start_timestamp', - 'interval_in_seconds' - ) ); - } - - /** - * Unserialize interval schedules serialized/stored prior to AS 3.0.0 - * - * For more background, @see ActionScheduler_Abstract_RecurringSchedule::__wakeup(). - */ - public function __wakeup() { - if ( is_null( $this->scheduled_timestamp ) && ! is_null( $this->start_timestamp ) ) { - $this->scheduled_timestamp = $this->start_timestamp; - unset( $this->start_timestamp ); - } - - if ( is_null( $this->recurrence ) && ! is_null( $this->interval_in_seconds ) ) { - $this->recurrence = $this->interval_in_seconds; - unset( $this->interval_in_seconds ); - } - parent::__wakeup(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_NullSchedule.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_NullSchedule.php deleted file mode 100644 index 0ca9f7c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_NullSchedule.php +++ /dev/null @@ -1,28 +0,0 @@ -scheduled_date = null; - } - - /** - * This schedule has no scheduled DateTime, so we need to override the parent __sleep() - * @return array - */ - public function __sleep() { - return array(); - } - - public function __wakeup() { - $this->scheduled_date = null; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_Schedule.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_Schedule.php deleted file mode 100644 index d61a9f7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_Schedule.php +++ /dev/null @@ -1,18 +0,0 @@ -__wakeup() for details. - **/ - private $timestamp = NULL; - - /** - * @param DateTime $after - * - * @return DateTime|null - */ - public function calculate_next( DateTime $after ) { - return null; - } - - /** - * @return bool - */ - public function is_recurring() { - return false; - } - - /** - * Serialize schedule with data required prior to AS 3.0.0 - * - * Prior to Action Scheduler 3.0.0, schedules used different property names to refer - * to equivalent data. For example, ActionScheduler_IntervalSchedule::start_timestamp - * was the same as ActionScheduler_SimpleSchedule::timestamp. Action Scheduler 3.0.0 - * aligned properties and property names for better inheritance. To guard against the - * scheduled date for single actions always being seen as "now" if downgrading to - * Action Scheduler < 3.0.0, we need to also store the data with the old property names - * so if it's unserialized in AS < 3.0, the schedule doesn't end up with a null recurrence. - * - * @return array - */ - public function __sleep() { - - $sleep_params = parent::__sleep(); - - $this->timestamp = $this->scheduled_timestamp; - - return array_merge( $sleep_params, array( - 'timestamp', - ) ); - } - - /** - * Unserialize recurring schedules serialized/stored prior to AS 3.0.0 - * - * Prior to Action Scheduler 3.0.0, schedules used different property names to refer - * to equivalent data. For example, ActionScheduler_IntervalSchedule::start_timestamp - * was the same as ActionScheduler_SimpleSchedule::timestamp. Action Scheduler 3.0.0 - * aligned properties and property names for better inheritance. To maintain backward - * compatibility with schedules serialized and stored prior to 3.0, we need to correctly - * map the old property names with matching visibility. - */ - public function __wakeup() { - - if ( is_null( $this->scheduled_timestamp ) && ! is_null( $this->timestamp ) ) { - $this->scheduled_timestamp = $this->timestamp; - unset( $this->timestamp ); - } - parent::__wakeup(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_LoggerSchema.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_LoggerSchema.php deleted file mode 100644 index 0db5fbd..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_LoggerSchema.php +++ /dev/null @@ -1,47 +0,0 @@ -tables = [ - self::LOG_TABLE, - ]; - } - - protected function get_table_definition( $table ) { - global $wpdb; - $table_name = $wpdb->$table; - $charset_collate = $wpdb->get_charset_collate(); - switch ( $table ) { - - case self::LOG_TABLE: - - return "CREATE TABLE {$table_name} ( - log_id bigint(20) unsigned NOT NULL auto_increment, - action_id bigint(20) unsigned NOT NULL, - message text NOT NULL, - log_date_gmt datetime NOT NULL default '0000-00-00 00:00:00', - log_date_local datetime NOT NULL default '0000-00-00 00:00:00', - PRIMARY KEY (log_id), - KEY action_id (action_id), - KEY log_date_gmt (log_date_gmt) - ) $charset_collate"; - - default: - return ''; - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_StoreSchema.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_StoreSchema.php deleted file mode 100644 index c36783c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_StoreSchema.php +++ /dev/null @@ -1,83 +0,0 @@ -tables = [ - self::ACTIONS_TABLE, - self::CLAIMS_TABLE, - self::GROUPS_TABLE, - ]; - } - - protected function get_table_definition( $table ) { - global $wpdb; - $table_name = $wpdb->$table; - $charset_collate = $wpdb->get_charset_collate(); - $max_index_length = 191; // @see wp_get_db_schema() - switch ( $table ) { - - case self::ACTIONS_TABLE: - - return "CREATE TABLE {$table_name} ( - action_id bigint(20) unsigned NOT NULL auto_increment, - hook varchar(191) NOT NULL, - status varchar(20) NOT NULL, - scheduled_date_gmt datetime NOT NULL default '0000-00-00 00:00:00', - scheduled_date_local datetime NOT NULL default '0000-00-00 00:00:00', - args varchar($max_index_length), - schedule longtext, - group_id bigint(20) unsigned NOT NULL default '0', - attempts int(11) NOT NULL default '0', - last_attempt_gmt datetime NOT NULL default '0000-00-00 00:00:00', - last_attempt_local datetime NOT NULL default '0000-00-00 00:00:00', - claim_id bigint(20) unsigned NOT NULL default '0', - extended_args varchar(8000) DEFAULT NULL, - PRIMARY KEY (action_id), - KEY hook (hook($max_index_length)), - KEY status (status), - KEY scheduled_date_gmt (scheduled_date_gmt), - KEY args (args($max_index_length)), - KEY group_id (group_id), - KEY last_attempt_gmt (last_attempt_gmt), - KEY claim_id (claim_id) - ) $charset_collate"; - - case self::CLAIMS_TABLE: - - return "CREATE TABLE {$table_name} ( - claim_id bigint(20) unsigned NOT NULL auto_increment, - date_created_gmt datetime NOT NULL default '0000-00-00 00:00:00', - PRIMARY KEY (claim_id), - KEY date_created_gmt (date_created_gmt) - ) $charset_collate"; - - case self::GROUPS_TABLE: - - return "CREATE TABLE {$table_name} ( - group_id bigint(20) unsigned NOT NULL auto_increment, - slug varchar(255) NOT NULL, - PRIMARY KEY (group_id), - KEY slug (slug($max_index_length)) - ) $charset_collate"; - - default: - return ''; - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Abstract_QueueRunner_Deprecated.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Abstract_QueueRunner_Deprecated.php deleted file mode 100644 index dac17aa..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Abstract_QueueRunner_Deprecated.php +++ /dev/null @@ -1,27 +0,0 @@ -get_date(); - $replacement_method = 'get_date()'; - } else { - $return_value = $this->get_next( $after ); - $replacement_method = 'get_next( $after )'; - } - - _deprecated_function( __METHOD__, '3.0.0', __CLASS__ . '::' . $replacement_method ); - - return $return_value; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Store_Deprecated.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Store_Deprecated.php deleted file mode 100644 index 002dc75..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Store_Deprecated.php +++ /dev/null @@ -1,49 +0,0 @@ -mark_failure( $action_id ); - } - - /** - * Add base hooks - * - * @since 2.2.6 - */ - protected static function hook() { - _deprecated_function( __METHOD__, '3.0.0' ); - } - - /** - * Remove base hooks - * - * @since 2.2.6 - */ - protected static function unhook() { - _deprecated_function( __METHOD__, '3.0.0' ); - } - - /** - * Get the site's local time. - * - * @deprecated 2.1.0 - * @return DateTimeZone - */ - protected function get_local_timezone() { - _deprecated_function( __FUNCTION__, '2.1.0', 'ActionScheduler_TimezoneHelper::set_local_timezone()' ); - return ActionScheduler_TimezoneHelper::get_local_timezone(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/deprecated/functions.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/deprecated/functions.php deleted file mode 100644 index f782c4b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/deprecated/functions.php +++ /dev/null @@ -1,126 +0,0 @@ - '' - the name of the action that will be triggered - * 'args' => NULL - the args array that will be passed with the action - * 'date' => NULL - the scheduled date of the action. Expects a DateTime object, a unix timestamp, or a string that can parsed with strtotime(). Used in UTC timezone. - * 'date_compare' => '<=' - operator for testing "date". accepted values are '!=', '>', '>=', '<', '<=', '=' - * 'modified' => NULL - the date the action was last updated. Expects a DateTime object, a unix timestamp, or a string that can parsed with strtotime(). Used in UTC timezone. - * 'modified_compare' => '<=' - operator for testing "modified". accepted values are '!=', '>', '>=', '<', '<=', '=' - * 'group' => '' - the group the action belongs to - * 'status' => '' - ActionScheduler_Store::STATUS_COMPLETE or ActionScheduler_Store::STATUS_PENDING - * 'claimed' => NULL - TRUE to find claimed actions, FALSE to find unclaimed actions, a string to find a specific claim ID - * 'per_page' => 5 - Number of results to return - * 'offset' => 0 - * 'orderby' => 'date' - accepted values are 'hook', 'group', 'modified', or 'date' - * 'order' => 'ASC' - * @param string $return_format OBJECT, ARRAY_A, or ids - * - * @deprecated 2.1.0 - * - * @return array - */ -function wc_get_scheduled_actions( $args = array(), $return_format = OBJECT ) { - _deprecated_function( __FUNCTION__, '2.1.0', 'as_get_scheduled_actions()' ); - return as_get_scheduled_actions( $args, $return_format ); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/functions.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/functions.php deleted file mode 100644 index 241c387..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/functions.php +++ /dev/null @@ -1,275 +0,0 @@ -async( $hook, $args, $group ); -} - -/** - * Schedule an action to run one time - * - * @param int $timestamp When the job will run. - * @param string $hook The hook to trigger. - * @param array $args Arguments to pass when the hook triggers. - * @param string $group The group to assign this job to. - * - * @return int The action ID. - */ -function as_schedule_single_action( $timestamp, $hook, $args = array(), $group = '' ) { - if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) { - return 0; - } - return ActionScheduler::factory()->single( $hook, $args, $timestamp, $group ); -} - -/** - * Schedule a recurring action - * - * @param int $timestamp When the first instance of the job will run. - * @param int $interval_in_seconds How long to wait between runs. - * @param string $hook The hook to trigger. - * @param array $args Arguments to pass when the hook triggers. - * @param string $group The group to assign this job to. - * - * @return int The action ID. - */ -function as_schedule_recurring_action( $timestamp, $interval_in_seconds, $hook, $args = array(), $group = '' ) { - if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) { - return 0; - } - return ActionScheduler::factory()->recurring( $hook, $args, $timestamp, $interval_in_seconds, $group ); -} - -/** - * Schedule an action that recurs on a cron-like schedule. - * - * @param int $base_timestamp The first instance of the action will be scheduled - * to run at a time calculated after this timestamp matching the cron - * expression. This can be used to delay the first instance of the action. - * @param string $schedule A cron-link schedule string - * @see http://en.wikipedia.org/wiki/Cron - * * * * * * * - * ┬ ┬ ┬ ┬ ┬ ┬ - * | | | | | | - * | | | | | + year [optional] - * | | | | +----- day of week (0 - 7) (Sunday=0 or 7) - * | | | +---------- month (1 - 12) - * | | +--------------- day of month (1 - 31) - * | +-------------------- hour (0 - 23) - * +------------------------- min (0 - 59) - * @param string $hook The hook to trigger. - * @param array $args Arguments to pass when the hook triggers. - * @param string $group The group to assign this job to. - * - * @return int The action ID. - */ -function as_schedule_cron_action( $timestamp, $schedule, $hook, $args = array(), $group = '' ) { - if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) { - return 0; - } - return ActionScheduler::factory()->cron( $hook, $args, $timestamp, $schedule, $group ); -} - -/** - * Cancel the next occurrence of a scheduled action. - * - * While only the next instance of a recurring or cron action is unscheduled by this method, that will also prevent - * all future instances of that recurring or cron action from being run. Recurring and cron actions are scheduled in - * a sequence instead of all being scheduled at once. Each successive occurrence of a recurring action is scheduled - * only after the former action is run. If the next instance is never run, because it's unscheduled by this function, - * then the following instance will never be scheduled (or exist), which is effectively the same as being unscheduled - * by this method also. - * - * @param string $hook The hook that the job will trigger. - * @param array $args Args that would have been passed to the job. - * @param string $group The group the job is assigned to. - * - * @return string|null The scheduled action ID if a scheduled action was found, or null if no matching action found. - */ -function as_unschedule_action( $hook, $args = array(), $group = '' ) { - if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) { - return 0; - } - $params = array(); - if ( is_array($args) ) { - $params['args'] = $args; - } - if ( !empty($group) ) { - $params['group'] = $group; - } - $job_id = ActionScheduler::store()->find_action( $hook, $params ); - - if ( ! empty( $job_id ) ) { - ActionScheduler::store()->cancel_action( $job_id ); - } - - return $job_id; -} - -/** - * Cancel all occurrences of a scheduled action. - * - * @param string $hook The hook that the job will trigger. - * @param array $args Args that would have been passed to the job. - * @param string $group The group the job is assigned to. - */ -function as_unschedule_all_actions( $hook, $args = array(), $group = '' ) { - if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) { - return; - } - if ( empty( $args ) ) { - if ( ! empty( $hook ) && empty( $group ) ) { - ActionScheduler_Store::instance()->cancel_actions_by_hook( $hook ); - return; - } - if ( ! empty( $group ) && empty( $hook ) ) { - ActionScheduler_Store::instance()->cancel_actions_by_group( $group ); - return; - } - } - do { - $unscheduled_action = as_unschedule_action( $hook, $args, $group ); - } while ( ! empty( $unscheduled_action ) ); -} - -/** - * Check if there is an existing action in the queue with a given hook, args and group combination. - * - * An action in the queue could be pending, in-progress or async. If the is pending for a time in - * future, its scheduled date will be returned as a timestamp. If it is currently being run, or an - * async action sitting in the queue waiting to be processed, in which case boolean true will be - * returned. Or there may be no async, in-progress or pending action for this hook, in which case, - * boolean false will be the return value. - * - * @param string $hook - * @param array $args - * @param string $group - * - * @return int|bool The timestamp for the next occurrence of a pending scheduled action, true for an async or in-progress action or false if there is no matching action. - */ -function as_next_scheduled_action( $hook, $args = NULL, $group = '' ) { - if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) { - return false; - } - $params = array(); - if ( is_array($args) ) { - $params['args'] = $args; - } - if ( !empty($group) ) { - $params['group'] = $group; - } - - $params['status'] = ActionScheduler_Store::STATUS_RUNNING; - $job_id = ActionScheduler::store()->find_action( $hook, $params ); - if ( ! empty( $job_id ) ) { - return true; - } - - $params['status'] = ActionScheduler_Store::STATUS_PENDING; - $job_id = ActionScheduler::store()->find_action( $hook, $params ); - if ( empty($job_id) ) { - return false; - } - $job = ActionScheduler::store()->fetch_action( $job_id ); - $scheduled_date = $job->get_schedule()->get_date(); - if ( $scheduled_date ) { - return (int) $scheduled_date->format( 'U' ); - } elseif ( NULL === $scheduled_date ) { // pending async action with NullSchedule - return true; - } - return false; -} - -/** - * Find scheduled actions - * - * @param array $args Possible arguments, with their default values: - * 'hook' => '' - the name of the action that will be triggered - * 'args' => NULL - the args array that will be passed with the action - * 'date' => NULL - the scheduled date of the action. Expects a DateTime object, a unix timestamp, or a string that can parsed with strtotime(). Used in UTC timezone. - * 'date_compare' => '<=' - operator for testing "date". accepted values are '!=', '>', '>=', '<', '<=', '=' - * 'modified' => NULL - the date the action was last updated. Expects a DateTime object, a unix timestamp, or a string that can parsed with strtotime(). Used in UTC timezone. - * 'modified_compare' => '<=' - operator for testing "modified". accepted values are '!=', '>', '>=', '<', '<=', '=' - * 'group' => '' - the group the action belongs to - * 'status' => '' - ActionScheduler_Store::STATUS_COMPLETE or ActionScheduler_Store::STATUS_PENDING - * 'claimed' => NULL - TRUE to find claimed actions, FALSE to find unclaimed actions, a string to find a specific claim ID - * 'per_page' => 5 - Number of results to return - * 'offset' => 0 - * 'orderby' => 'date' - accepted values are 'hook', 'group', 'modified', or 'date' - * 'order' => 'ASC' - * - * @param string $return_format OBJECT, ARRAY_A, or ids. - * - * @return array - */ -function as_get_scheduled_actions( $args = array(), $return_format = OBJECT ) { - if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) { - return array(); - } - $store = ActionScheduler::store(); - foreach ( array('date', 'modified') as $key ) { - if ( isset($args[$key]) ) { - $args[$key] = as_get_datetime_object($args[$key]); - } - } - $ids = $store->query_actions( $args ); - - if ( $return_format == 'ids' || $return_format == 'int' ) { - return $ids; - } - - $actions = array(); - foreach ( $ids as $action_id ) { - $actions[$action_id] = $store->fetch_action( $action_id ); - } - - if ( $return_format == ARRAY_A ) { - foreach ( $actions as $action_id => $action_object ) { - $actions[$action_id] = get_object_vars($action_object); - } - } - - return $actions; -} - -/** - * Helper function to create an instance of DateTime based on a given - * string and timezone. By default, will return the current date/time - * in the UTC timezone. - * - * Needed because new DateTime() called without an explicit timezone - * will create a date/time in PHP's timezone, but we need to have - * assurance that a date/time uses the right timezone (which we almost - * always want to be UTC), which means we need to always include the - * timezone when instantiating datetimes rather than leaving it up to - * the PHP default. - * - * @param mixed $date_string A date/time string. Valid formats are explained in http://php.net/manual/en/datetime.formats.php. - * @param string $timezone A timezone identifier, like UTC or Europe/Lisbon. The list of valid identifiers is available http://php.net/manual/en/timezones.php. - * - * @return ActionScheduler_DateTime - */ -function as_get_datetime_object( $date_string = null, $timezone = 'UTC' ) { - if ( is_object( $date_string ) && $date_string instanceof DateTime ) { - $date = new ActionScheduler_DateTime( $date_string->format( 'Y-m-d H:i:s' ), new DateTimeZone( $timezone ) ); - } elseif ( is_numeric( $date_string ) ) { - $date = new ActionScheduler_DateTime( '@' . $date_string, new DateTimeZone( $timezone ) ); - } else { - $date = new ActionScheduler_DateTime( $date_string, new DateTimeZone( $timezone ) ); - } - return $date; -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/WP_Async_Request.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/WP_Async_Request.php deleted file mode 100644 index d7dea1c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/WP_Async_Request.php +++ /dev/null @@ -1,170 +0,0 @@ -identifier = $this->prefix . '_' . $this->action; - - add_action( 'wp_ajax_' . $this->identifier, array( $this, 'maybe_handle' ) ); - add_action( 'wp_ajax_nopriv_' . $this->identifier, array( $this, 'maybe_handle' ) ); - } - - /** - * Set data used during the request - * - * @param array $data Data. - * - * @return $this - */ - public function data( $data ) { - $this->data = $data; - - return $this; - } - - /** - * Dispatch the async request - * - * @return array|WP_Error - */ - public function dispatch() { - $url = add_query_arg( $this->get_query_args(), $this->get_query_url() ); - $args = $this->get_post_args(); - - return wp_remote_post( esc_url_raw( $url ), $args ); - } - - /** - * Get query args - * - * @return array - */ - protected function get_query_args() { - if ( property_exists( $this, 'query_args' ) ) { - return $this->query_args; - } - - return array( - 'action' => $this->identifier, - 'nonce' => wp_create_nonce( $this->identifier ), - ); - } - - /** - * Get query URL - * - * @return string - */ - protected function get_query_url() { - if ( property_exists( $this, 'query_url' ) ) { - return $this->query_url; - } - - return admin_url( 'admin-ajax.php' ); - } - - /** - * Get post args - * - * @return array - */ - protected function get_post_args() { - if ( property_exists( $this, 'post_args' ) ) { - return $this->post_args; - } - - return array( - 'timeout' => 0.01, - 'blocking' => false, - 'body' => $this->data, - 'cookies' => $_COOKIE, - 'sslverify' => apply_filters( 'https_local_ssl_verify', false ), - ); - } - - /** - * Maybe handle - * - * Check for correct nonce and pass to handler. - */ - public function maybe_handle() { - // Don't lock up other requests while processing - session_write_close(); - - check_ajax_referer( $this->identifier, 'nonce' ); - - $this->handle(); - - wp_die(); - } - - /** - * Handle - * - * Override this method to perform any actions required - * during the async request. - */ - abstract protected function handle(); - - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression.php deleted file mode 100644 index 7f33c37..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression.php +++ /dev/null @@ -1,318 +0,0 @@ - - * @link http://en.wikipedia.org/wiki/Cron - */ -class CronExpression -{ - const MINUTE = 0; - const HOUR = 1; - const DAY = 2; - const MONTH = 3; - const WEEKDAY = 4; - const YEAR = 5; - - /** - * @var array CRON expression parts - */ - private $cronParts; - - /** - * @var CronExpression_FieldFactory CRON field factory - */ - private $fieldFactory; - - /** - * @var array Order in which to test of cron parts - */ - private static $order = array(self::YEAR, self::MONTH, self::DAY, self::WEEKDAY, self::HOUR, self::MINUTE); - - /** - * Factory method to create a new CronExpression. - * - * @param string $expression The CRON expression to create. There are - * several special predefined values which can be used to substitute the - * CRON expression: - * - * @yearly, @annually) - Run once a year, midnight, Jan. 1 - 0 0 1 1 * - * @monthly - Run once a month, midnight, first of month - 0 0 1 * * - * @weekly - Run once a week, midnight on Sun - 0 0 * * 0 - * @daily - Run once a day, midnight - 0 0 * * * - * @hourly - Run once an hour, first minute - 0 * * * * - * -*@param CronExpression_FieldFactory $fieldFactory (optional) Field factory to use - * - * @return CronExpression - */ - public static function factory($expression, CronExpression_FieldFactory $fieldFactory = null) - { - $mappings = array( - '@yearly' => '0 0 1 1 *', - '@annually' => '0 0 1 1 *', - '@monthly' => '0 0 1 * *', - '@weekly' => '0 0 * * 0', - '@daily' => '0 0 * * *', - '@hourly' => '0 * * * *' - ); - - if (isset($mappings[$expression])) { - $expression = $mappings[$expression]; - } - - return new self($expression, $fieldFactory ? $fieldFactory : new CronExpression_FieldFactory()); - } - - /** - * Parse a CRON expression - * - * @param string $expression CRON expression (e.g. '8 * * * *') - * @param CronExpression_FieldFactory $fieldFactory Factory to create cron fields - */ - public function __construct($expression, CronExpression_FieldFactory $fieldFactory) - { - $this->fieldFactory = $fieldFactory; - $this->setExpression($expression); - } - - /** - * Set or change the CRON expression - * - * @param string $value CRON expression (e.g. 8 * * * *) - * - * @return CronExpression - * @throws InvalidArgumentException if not a valid CRON expression - */ - public function setExpression($value) - { - $this->cronParts = preg_split('/\s/', $value, -1, PREG_SPLIT_NO_EMPTY); - if (count($this->cronParts) < 5) { - throw new InvalidArgumentException( - $value . ' is not a valid CRON expression' - ); - } - - foreach ($this->cronParts as $position => $part) { - $this->setPart($position, $part); - } - - return $this; - } - - /** - * Set part of the CRON expression - * - * @param int $position The position of the CRON expression to set - * @param string $value The value to set - * - * @return CronExpression - * @throws InvalidArgumentException if the value is not valid for the part - */ - public function setPart($position, $value) - { - if (!$this->fieldFactory->getField($position)->validate($value)) { - throw new InvalidArgumentException( - 'Invalid CRON field value ' . $value . ' as position ' . $position - ); - } - - $this->cronParts[$position] = $value; - - return $this; - } - - /** - * Get a next run date relative to the current date or a specific date - * - * @param string|DateTime $currentTime (optional) Relative calculation date - * @param int $nth (optional) Number of matches to skip before returning a - * matching next run date. 0, the default, will return the current - * date and time if the next run date falls on the current date and - * time. Setting this value to 1 will skip the first match and go to - * the second match. Setting this value to 2 will skip the first 2 - * matches and so on. - * @param bool $allowCurrentDate (optional) Set to TRUE to return the - * current date if it matches the cron expression - * - * @return DateTime - * @throws RuntimeException on too many iterations - */ - public function getNextRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false) - { - return $this->getRunDate($currentTime, $nth, false, $allowCurrentDate); - } - - /** - * Get a previous run date relative to the current date or a specific date - * - * @param string|DateTime $currentTime (optional) Relative calculation date - * @param int $nth (optional) Number of matches to skip before returning - * @param bool $allowCurrentDate (optional) Set to TRUE to return the - * current date if it matches the cron expression - * - * @return DateTime - * @throws RuntimeException on too many iterations - * @see CronExpression::getNextRunDate - */ - public function getPreviousRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false) - { - return $this->getRunDate($currentTime, $nth, true, $allowCurrentDate); - } - - /** - * Get multiple run dates starting at the current date or a specific date - * - * @param int $total Set the total number of dates to calculate - * @param string|DateTime $currentTime (optional) Relative calculation date - * @param bool $invert (optional) Set to TRUE to retrieve previous dates - * @param bool $allowCurrentDate (optional) Set to TRUE to return the - * current date if it matches the cron expression - * - * @return array Returns an array of run dates - */ - public function getMultipleRunDates($total, $currentTime = 'now', $invert = false, $allowCurrentDate = false) - { - $matches = array(); - for ($i = 0; $i < max(0, $total); $i++) { - $matches[] = $this->getRunDate($currentTime, $i, $invert, $allowCurrentDate); - } - - return $matches; - } - - /** - * Get all or part of the CRON expression - * - * @param string $part (optional) Specify the part to retrieve or NULL to - * get the full cron schedule string. - * - * @return string|null Returns the CRON expression, a part of the - * CRON expression, or NULL if the part was specified but not found - */ - public function getExpression($part = null) - { - if (null === $part) { - return implode(' ', $this->cronParts); - } elseif (array_key_exists($part, $this->cronParts)) { - return $this->cronParts[$part]; - } - - return null; - } - - /** - * Helper method to output the full expression. - * - * @return string Full CRON expression - */ - public function __toString() - { - return $this->getExpression(); - } - - /** - * Determine if the cron is due to run based on the current date or a - * specific date. This method assumes that the current number of - * seconds are irrelevant, and should be called once per minute. - * - * @param string|DateTime $currentTime (optional) Relative calculation date - * - * @return bool Returns TRUE if the cron is due to run or FALSE if not - */ - public function isDue($currentTime = 'now') - { - if ('now' === $currentTime) { - $currentDate = date('Y-m-d H:i'); - $currentTime = strtotime($currentDate); - } elseif ($currentTime instanceof DateTime) { - $currentDate = $currentTime->format('Y-m-d H:i'); - $currentTime = strtotime($currentDate); - } else { - $currentTime = new DateTime($currentTime); - $currentTime->setTime($currentTime->format('H'), $currentTime->format('i'), 0); - $currentDate = $currentTime->format('Y-m-d H:i'); - $currentTime = (int)($currentTime->getTimestamp()); - } - - return $this->getNextRunDate($currentDate, 0, true)->getTimestamp() == $currentTime; - } - - /** - * Get the next or previous run date of the expression relative to a date - * - * @param string|DateTime $currentTime (optional) Relative calculation date - * @param int $nth (optional) Number of matches to skip before returning - * @param bool $invert (optional) Set to TRUE to go backwards in time - * @param bool $allowCurrentDate (optional) Set to TRUE to return the - * current date if it matches the cron expression - * - * @return DateTime - * @throws RuntimeException on too many iterations - */ - protected function getRunDate($currentTime = null, $nth = 0, $invert = false, $allowCurrentDate = false) - { - if ($currentTime instanceof DateTime) { - $currentDate = $currentTime; - } else { - $currentDate = new DateTime($currentTime ? $currentTime : 'now'); - $currentDate->setTimezone(new DateTimeZone(date_default_timezone_get())); - } - - $currentDate->setTime($currentDate->format('H'), $currentDate->format('i'), 0); - $nextRun = clone $currentDate; - $nth = (int) $nth; - - // Set a hard limit to bail on an impossible date - for ($i = 0; $i < 1000; $i++) { - - foreach (self::$order as $position) { - $part = $this->getExpression($position); - if (null === $part) { - continue; - } - - $satisfied = false; - // Get the field object used to validate this part - $field = $this->fieldFactory->getField($position); - // Check if this is singular or a list - if (strpos($part, ',') === false) { - $satisfied = $field->isSatisfiedBy($nextRun, $part); - } else { - foreach (array_map('trim', explode(',', $part)) as $listPart) { - if ($field->isSatisfiedBy($nextRun, $listPart)) { - $satisfied = true; - break; - } - } - } - - // If the field is not satisfied, then start over - if (!$satisfied) { - $field->increment($nextRun, $invert); - continue 2; - } - } - - // Skip this match if needed - if ((!$allowCurrentDate && $nextRun == $currentDate) || --$nth > -1) { - $this->fieldFactory->getField(0)->increment($nextRun, $invert); - continue; - } - - return $nextRun; - } - - // @codeCoverageIgnoreStart - throw new RuntimeException('Impossible CRON expression'); - // @codeCoverageIgnoreEnd - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_AbstractField.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_AbstractField.php deleted file mode 100644 index f8d5c00..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_AbstractField.php +++ /dev/null @@ -1,100 +0,0 @@ - - */ -abstract class CronExpression_AbstractField implements CronExpression_FieldInterface -{ - /** - * Check to see if a field is satisfied by a value - * - * @param string $dateValue Date value to check - * @param string $value Value to test - * - * @return bool - */ - public function isSatisfied($dateValue, $value) - { - if ($this->isIncrementsOfRanges($value)) { - return $this->isInIncrementsOfRanges($dateValue, $value); - } elseif ($this->isRange($value)) { - return $this->isInRange($dateValue, $value); - } - - return $value == '*' || $dateValue == $value; - } - - /** - * Check if a value is a range - * - * @param string $value Value to test - * - * @return bool - */ - public function isRange($value) - { - return strpos($value, '-') !== false; - } - - /** - * Check if a value is an increments of ranges - * - * @param string $value Value to test - * - * @return bool - */ - public function isIncrementsOfRanges($value) - { - return strpos($value, '/') !== false; - } - - /** - * Test if a value is within a range - * - * @param string $dateValue Set date value - * @param string $value Value to test - * - * @return bool - */ - public function isInRange($dateValue, $value) - { - $parts = array_map('trim', explode('-', $value, 2)); - - return $dateValue >= $parts[0] && $dateValue <= $parts[1]; - } - - /** - * Test if a value is within an increments of ranges (offset[-to]/step size) - * - * @param string $dateValue Set date value - * @param string $value Value to test - * - * @return bool - */ - public function isInIncrementsOfRanges($dateValue, $value) - { - $parts = array_map('trim', explode('/', $value, 2)); - $stepSize = isset($parts[1]) ? $parts[1] : 0; - if ($parts[0] == '*' || $parts[0] === '0') { - return (int) $dateValue % $stepSize == 0; - } - - $range = explode('-', $parts[0], 2); - $offset = $range[0]; - $to = isset($range[1]) ? $range[1] : $dateValue; - // Ensure that the date value is within the range - if ($dateValue < $offset || $dateValue > $to) { - return false; - } - - for ($i = $offset; $i <= $to; $i+= $stepSize) { - if ($i == $dateValue) { - return true; - } - } - - return false; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_DayOfMonthField.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_DayOfMonthField.php deleted file mode 100644 index 40c1d6c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_DayOfMonthField.php +++ /dev/null @@ -1,110 +0,0 @@ - - */ -class CronExpression_DayOfMonthField extends CronExpression_AbstractField -{ - /** - * Get the nearest day of the week for a given day in a month - * - * @param int $currentYear Current year - * @param int $currentMonth Current month - * @param int $targetDay Target day of the month - * - * @return DateTime Returns the nearest date - */ - private static function getNearestWeekday($currentYear, $currentMonth, $targetDay) - { - $tday = str_pad($targetDay, 2, '0', STR_PAD_LEFT); - $target = new DateTime("$currentYear-$currentMonth-$tday"); - $currentWeekday = (int) $target->format('N'); - - if ($currentWeekday < 6) { - return $target; - } - - $lastDayOfMonth = $target->format('t'); - - foreach (array(-1, 1, -2, 2) as $i) { - $adjusted = $targetDay + $i; - if ($adjusted > 0 && $adjusted <= $lastDayOfMonth) { - $target->setDate($currentYear, $currentMonth, $adjusted); - if ($target->format('N') < 6 && $target->format('m') == $currentMonth) { - return $target; - } - } - } - } - - /** - * {@inheritdoc} - */ - public function isSatisfiedBy(DateTime $date, $value) - { - // ? states that the field value is to be skipped - if ($value == '?') { - return true; - } - - $fieldValue = $date->format('d'); - - // Check to see if this is the last day of the month - if ($value == 'L') { - return $fieldValue == $date->format('t'); - } - - // Check to see if this is the nearest weekday to a particular value - if (strpos($value, 'W')) { - // Parse the target day - $targetDay = substr($value, 0, strpos($value, 'W')); - // Find out if the current day is the nearest day of the week - return $date->format('j') == self::getNearestWeekday( - $date->format('Y'), - $date->format('m'), - $targetDay - )->format('j'); - } - - return $this->isSatisfied($date->format('d'), $value); - } - - /** - * {@inheritdoc} - */ - public function increment(DateTime $date, $invert = false) - { - if ($invert) { - $date->modify('previous day'); - $date->setTime(23, 59); - } else { - $date->modify('next day'); - $date->setTime(0, 0); - } - - return $this; - } - - /** - * {@inheritdoc} - */ - public function validate($value) - { - return (bool) preg_match('/[\*,\/\-\?LW0-9A-Za-z]+/', $value); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_DayOfWeekField.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_DayOfWeekField.php deleted file mode 100644 index e9f68a7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_DayOfWeekField.php +++ /dev/null @@ -1,124 +0,0 @@ - - */ -class CronExpression_DayOfWeekField extends CronExpression_AbstractField -{ - /** - * {@inheritdoc} - */ - public function isSatisfiedBy(DateTime $date, $value) - { - if ($value == '?') { - return true; - } - - // Convert text day of the week values to integers - $value = str_ireplace( - array('SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'), - range(0, 6), - $value - ); - - $currentYear = $date->format('Y'); - $currentMonth = $date->format('m'); - $lastDayOfMonth = $date->format('t'); - - // Find out if this is the last specific weekday of the month - if (strpos($value, 'L')) { - $weekday = str_replace('7', '0', substr($value, 0, strpos($value, 'L'))); - $tdate = clone $date; - $tdate->setDate($currentYear, $currentMonth, $lastDayOfMonth); - while ($tdate->format('w') != $weekday) { - $tdate->setDate($currentYear, $currentMonth, --$lastDayOfMonth); - } - - return $date->format('j') == $lastDayOfMonth; - } - - // Handle # hash tokens - if (strpos($value, '#')) { - list($weekday, $nth) = explode('#', $value); - // Validate the hash fields - if ($weekday < 1 || $weekday > 5) { - throw new InvalidArgumentException("Weekday must be a value between 1 and 5. {$weekday} given"); - } - if ($nth > 5) { - throw new InvalidArgumentException('There are never more than 5 of a given weekday in a month'); - } - // The current weekday must match the targeted weekday to proceed - if ($date->format('N') != $weekday) { - return false; - } - - $tdate = clone $date; - $tdate->setDate($currentYear, $currentMonth, 1); - $dayCount = 0; - $currentDay = 1; - while ($currentDay < $lastDayOfMonth + 1) { - if ($tdate->format('N') == $weekday) { - if (++$dayCount >= $nth) { - break; - } - } - $tdate->setDate($currentYear, $currentMonth, ++$currentDay); - } - - return $date->format('j') == $currentDay; - } - - // Handle day of the week values - if (strpos($value, '-')) { - $parts = explode('-', $value); - if ($parts[0] == '7') { - $parts[0] = '0'; - } elseif ($parts[1] == '0') { - $parts[1] = '7'; - } - $value = implode('-', $parts); - } - - // Test to see which Sunday to use -- 0 == 7 == Sunday - $format = in_array(7, str_split($value)) ? 'N' : 'w'; - $fieldValue = $date->format($format); - - return $this->isSatisfied($fieldValue, $value); - } - - /** - * {@inheritdoc} - */ - public function increment(DateTime $date, $invert = false) - { - if ($invert) { - $date->modify('-1 day'); - $date->setTime(23, 59, 0); - } else { - $date->modify('+1 day'); - $date->setTime(0, 0, 0); - } - - return $this; - } - - /** - * {@inheritdoc} - */ - public function validate($value) - { - return (bool) preg_match('/[\*,\/\-0-9A-Z]+/', $value); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_FieldFactory.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_FieldFactory.php deleted file mode 100644 index 556ba1a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_FieldFactory.php +++ /dev/null @@ -1,55 +0,0 @@ - - * @link http://en.wikipedia.org/wiki/Cron - */ -class CronExpression_FieldFactory -{ - /** - * @var array Cache of instantiated fields - */ - private $fields = array(); - - /** - * Get an instance of a field object for a cron expression position - * - * @param int $position CRON expression position value to retrieve - * - * @return CronExpression_FieldInterface - * @throws InvalidArgumentException if a position is not valid - */ - public function getField($position) - { - if (!isset($this->fields[$position])) { - switch ($position) { - case 0: - $this->fields[$position] = new CronExpression_MinutesField(); - break; - case 1: - $this->fields[$position] = new CronExpression_HoursField(); - break; - case 2: - $this->fields[$position] = new CronExpression_DayOfMonthField(); - break; - case 3: - $this->fields[$position] = new CronExpression_MonthField(); - break; - case 4: - $this->fields[$position] = new CronExpression_DayOfWeekField(); - break; - case 5: - $this->fields[$position] = new CronExpression_YearField(); - break; - default: - throw new InvalidArgumentException( - $position . ' is not a valid position' - ); - } - } - - return $this->fields[$position]; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_FieldInterface.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_FieldInterface.php deleted file mode 100644 index 5d5109b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_FieldInterface.php +++ /dev/null @@ -1,39 +0,0 @@ - - */ -interface CronExpression_FieldInterface -{ - /** - * Check if the respective value of a DateTime field satisfies a CRON exp - * - * @param DateTime $date DateTime object to check - * @param string $value CRON expression to test against - * - * @return bool Returns TRUE if satisfied, FALSE otherwise - */ - public function isSatisfiedBy(DateTime $date, $value); - - /** - * When a CRON expression is not satisfied, this method is used to increment - * or decrement a DateTime object by the unit of the cron field - * - * @param DateTime $date DateTime object to change - * @param bool $invert (optional) Set to TRUE to decrement - * - * @return CronExpression_FieldInterface - */ - public function increment(DateTime $date, $invert = false); - - /** - * Validates a CRON expression for a given field - * - * @param string $value CRON expression value to validate - * - * @return bool Returns TRUE if valid, FALSE otherwise - */ - public function validate($value); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_HoursField.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_HoursField.php deleted file mode 100644 index 088ca73..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_HoursField.php +++ /dev/null @@ -1,47 +0,0 @@ - - */ -class CronExpression_HoursField extends CronExpression_AbstractField -{ - /** - * {@inheritdoc} - */ - public function isSatisfiedBy(DateTime $date, $value) - { - return $this->isSatisfied($date->format('H'), $value); - } - - /** - * {@inheritdoc} - */ - public function increment(DateTime $date, $invert = false) - { - // Change timezone to UTC temporarily. This will - // allow us to go back or forwards and hour even - // if DST will be changed between the hours. - $timezone = $date->getTimezone(); - $date->setTimezone(new DateTimeZone('UTC')); - if ($invert) { - $date->modify('-1 hour'); - $date->setTime($date->format('H'), 59); - } else { - $date->modify('+1 hour'); - $date->setTime($date->format('H'), 0); - } - $date->setTimezone($timezone); - - return $this; - } - - /** - * {@inheritdoc} - */ - public function validate($value) - { - return (bool) preg_match('/[\*,\/\-0-9]+/', $value); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_MinutesField.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_MinutesField.php deleted file mode 100644 index 436acf2..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_MinutesField.php +++ /dev/null @@ -1,39 +0,0 @@ - - */ -class CronExpression_MinutesField extends CronExpression_AbstractField -{ - /** - * {@inheritdoc} - */ - public function isSatisfiedBy(DateTime $date, $value) - { - return $this->isSatisfied($date->format('i'), $value); - } - - /** - * {@inheritdoc} - */ - public function increment(DateTime $date, $invert = false) - { - if ($invert) { - $date->modify('-1 minute'); - } else { - $date->modify('+1 minute'); - } - - return $this; - } - - /** - * {@inheritdoc} - */ - public function validate($value) - { - return (bool) preg_match('/[\*,\/\-0-9]+/', $value); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_MonthField.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_MonthField.php deleted file mode 100644 index d3deb12..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_MonthField.php +++ /dev/null @@ -1,55 +0,0 @@ - - */ -class CronExpression_MonthField extends CronExpression_AbstractField -{ - /** - * {@inheritdoc} - */ - public function isSatisfiedBy(DateTime $date, $value) - { - // Convert text month values to integers - $value = str_ireplace( - array( - 'JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', - 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC' - ), - range(1, 12), - $value - ); - - return $this->isSatisfied($date->format('m'), $value); - } - - /** - * {@inheritdoc} - */ - public function increment(DateTime $date, $invert = false) - { - if ($invert) { - // $date->modify('last day of previous month'); // remove for php 5.2 compat - $date->modify('previous month'); - $date->modify($date->format('Y-m-t')); - $date->setTime(23, 59); - } else { - //$date->modify('first day of next month'); // remove for php 5.2 compat - $date->modify('next month'); - $date->modify($date->format('Y-m-01')); - $date->setTime(0, 0); - } - - return $this; - } - - /** - * {@inheritdoc} - */ - public function validate($value) - { - return (bool) preg_match('/[\*,\/\-0-9A-Z]+/', $value); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_YearField.php b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_YearField.php deleted file mode 100644 index f11562e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_YearField.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ -class CronExpression_YearField extends CronExpression_AbstractField -{ - /** - * {@inheritdoc} - */ - public function isSatisfiedBy(DateTime $date, $value) - { - return $this->isSatisfied($date->format('Y'), $value); - } - - /** - * {@inheritdoc} - */ - public function increment(DateTime $date, $invert = false) - { - if ($invert) { - $date->modify('-1 year'); - $date->setDate($date->format('Y'), 12, 31); - $date->setTime(23, 59, 0); - } else { - $date->modify('+1 year'); - $date->setDate($date->format('Y'), 1, 1); - $date->setTime(0, 0, 0); - } - - return $this; - } - - /** - * {@inheritdoc} - */ - public function validate($value) - { - return (bool) preg_match('/[\*,\/\-0-9]+/', $value); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/LICENSE b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/LICENSE deleted file mode 100644 index c6d88ac..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/lib/cron-expression/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Michael Dowling and contributors - -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. diff --git a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/license.txt b/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/license.txt deleted file mode 100644 index f288702..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/woocommerce/action-scheduler/license.txt +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail.php deleted file mode 100644 index 7f222a7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail.php +++ /dev/null @@ -1,105 +0,0 @@ - - * The Gmail API lets you view and manage Gmail mailbox data like threads, - * messages, and labels.

    - * - *

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

    - * - * @author Google, Inc. - */ -class Google_Service_Gmail extends \WPMailSMTP\Vendor\Google_Service -{ - /** Read, compose, send, and permanently delete all your email from Gmail. */ - const MAIL_GOOGLE_COM = "https://mail.google.com/"; - /** Manage drafts and send emails when you interact with the add-on. */ - const GMAIL_ADDONS_CURRENT_ACTION_COMPOSE = "https://www.googleapis.com/auth/gmail.addons.current.action.compose"; - /** View your email messages when you interact with the add-on. */ - const GMAIL_ADDONS_CURRENT_MESSAGE_ACTION = "https://www.googleapis.com/auth/gmail.addons.current.message.action"; - /** View your email message metadata when the add-on is running. */ - const GMAIL_ADDONS_CURRENT_MESSAGE_METADATA = "https://www.googleapis.com/auth/gmail.addons.current.message.metadata"; - /** View your email messages when the add-on is running. */ - const GMAIL_ADDONS_CURRENT_MESSAGE_READONLY = "https://www.googleapis.com/auth/gmail.addons.current.message.readonly"; - /** Manage drafts and send emails. */ - const GMAIL_COMPOSE = "https://www.googleapis.com/auth/gmail.compose"; - /** Insert mail into your mailbox. */ - const GMAIL_INSERT = "https://www.googleapis.com/auth/gmail.insert"; - /** Manage mailbox labels. */ - const GMAIL_LABELS = "https://www.googleapis.com/auth/gmail.labels"; - /** View your email message metadata such as labels and headers, but not the email body. */ - const GMAIL_METADATA = "https://www.googleapis.com/auth/gmail.metadata"; - /** View and modify but not delete your email. */ - const GMAIL_MODIFY = "https://www.googleapis.com/auth/gmail.modify"; - /** View your email messages and settings. */ - const GMAIL_READONLY = "https://www.googleapis.com/auth/gmail.readonly"; - /** Send email on your behalf. */ - const GMAIL_SEND = "https://www.googleapis.com/auth/gmail.send"; - /** Manage your basic mail settings. */ - const GMAIL_SETTINGS_BASIC = "https://www.googleapis.com/auth/gmail.settings.basic"; - /** Manage your sensitive mail settings, including who can manage your mail. */ - const GMAIL_SETTINGS_SHARING = "https://www.googleapis.com/auth/gmail.settings.sharing"; - public $users; - public $users_drafts; - public $users_history; - public $users_labels; - public $users_messages; - public $users_messages_attachments; - public $users_settings; - public $users_settings_delegates; - public $users_settings_filters; - public $users_settings_forwardingAddresses; - public $users_settings_sendAs; - public $users_settings_sendAs_smimeInfo; - public $users_threads; - /** - * Constructs the internal representation of the Gmail service. - * - * @param Google_Client $client The client used to deliver requests. - * @param string $rootUrl The root URL used for requests to the service. - */ - public function __construct(\WPMailSMTP\Vendor\Google_Client $client, $rootUrl = null) - { - parent::__construct($client); - $this->rootUrl = $rootUrl ?: 'https://gmail.googleapis.com/'; - $this->servicePath = ''; - $this->batchPath = 'batch'; - $this->version = 'v1'; - $this->serviceName = 'gmail'; - $this->users = new \WPMailSMTP\Vendor\Google_Service_Gmail_Resource_Users($this, $this->serviceName, 'users', array('methods' => array('getProfile' => array('path' => 'gmail/v1/users/{userId}/profile', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'stop' => array('path' => 'gmail/v1/users/{userId}/stop', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'watch' => array('path' => 'gmail/v1/users/{userId}/watch', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true)))))); - $this->users_drafts = new \WPMailSMTP\Vendor\Google_Service_Gmail_Resource_UsersDrafts($this, $this->serviceName, 'drafts', array('methods' => array('create' => array('path' => 'gmail/v1/users/{userId}/drafts', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'delete' => array('path' => 'gmail/v1/users/{userId}/drafts/{id}', 'httpMethod' => 'DELETE', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'get' => array('path' => 'gmail/v1/users/{userId}/drafts/{id}', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'format' => array('location' => 'query', 'type' => 'string'))), 'list' => array('path' => 'gmail/v1/users/{userId}/drafts', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'includeSpamTrash' => array('location' => 'query', 'type' => 'boolean'), 'q' => array('location' => 'query', 'type' => 'string'), 'pageToken' => array('location' => 'query', 'type' => 'string'), 'maxResults' => array('location' => 'query', 'type' => 'integer'))), 'send' => array('path' => 'gmail/v1/users/{userId}/drafts/send', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'update' => array('path' => 'gmail/v1/users/{userId}/drafts/{id}', 'httpMethod' => 'PUT', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true)))))); - $this->users_history = new \WPMailSMTP\Vendor\Google_Service_Gmail_Resource_UsersHistory($this, $this->serviceName, 'history', array('methods' => array('list' => array('path' => 'gmail/v1/users/{userId}/history', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'startHistoryId' => array('location' => 'query', 'type' => 'string'), 'historyTypes' => array('location' => 'query', 'type' => 'string', 'repeated' => \true), 'pageToken' => array('location' => 'query', 'type' => 'string'), 'maxResults' => array('location' => 'query', 'type' => 'integer'), 'labelId' => array('location' => 'query', 'type' => 'string')))))); - $this->users_labels = new \WPMailSMTP\Vendor\Google_Service_Gmail_Resource_UsersLabels($this, $this->serviceName, 'labels', array('methods' => array('create' => array('path' => 'gmail/v1/users/{userId}/labels', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'delete' => array('path' => 'gmail/v1/users/{userId}/labels/{id}', 'httpMethod' => 'DELETE', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'get' => array('path' => 'gmail/v1/users/{userId}/labels/{id}', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'list' => array('path' => 'gmail/v1/users/{userId}/labels', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'patch' => array('path' => 'gmail/v1/users/{userId}/labels/{id}', 'httpMethod' => 'PATCH', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'update' => array('path' => 'gmail/v1/users/{userId}/labels/{id}', 'httpMethod' => 'PUT', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true)))))); - $this->users_messages = new \WPMailSMTP\Vendor\Google_Service_Gmail_Resource_UsersMessages($this, $this->serviceName, 'messages', array('methods' => array('batchDelete' => array('path' => 'gmail/v1/users/{userId}/messages/batchDelete', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'batchModify' => array('path' => 'gmail/v1/users/{userId}/messages/batchModify', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'delete' => array('path' => 'gmail/v1/users/{userId}/messages/{id}', 'httpMethod' => 'DELETE', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'get' => array('path' => 'gmail/v1/users/{userId}/messages/{id}', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'metadataHeaders' => array('location' => 'query', 'type' => 'string', 'repeated' => \true), 'format' => array('location' => 'query', 'type' => 'string'))), 'import' => array('path' => 'gmail/v1/users/{userId}/messages/import', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'processForCalendar' => array('location' => 'query', 'type' => 'boolean'), 'internalDateSource' => array('location' => 'query', 'type' => 'string'), 'deleted' => array('location' => 'query', 'type' => 'boolean'), 'neverMarkSpam' => array('location' => 'query', 'type' => 'boolean'))), 'insert' => array('path' => 'gmail/v1/users/{userId}/messages', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'internalDateSource' => array('location' => 'query', 'type' => 'string'), 'deleted' => array('location' => 'query', 'type' => 'boolean'))), 'list' => array('path' => 'gmail/v1/users/{userId}/messages', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'maxResults' => array('location' => 'query', 'type' => 'integer'), 'q' => array('location' => 'query', 'type' => 'string'), 'labelIds' => array('location' => 'query', 'type' => 'string', 'repeated' => \true), 'pageToken' => array('location' => 'query', 'type' => 'string'), 'includeSpamTrash' => array('location' => 'query', 'type' => 'boolean'))), 'modify' => array('path' => 'gmail/v1/users/{userId}/messages/{id}/modify', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'send' => array('path' => 'gmail/v1/users/{userId}/messages/send', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'trash' => array('path' => 'gmail/v1/users/{userId}/messages/{id}/trash', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'untrash' => array('path' => 'gmail/v1/users/{userId}/messages/{id}/untrash', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true)))))); - $this->users_messages_attachments = new \WPMailSMTP\Vendor\Google_Service_Gmail_Resource_UsersMessagesAttachments($this, $this->serviceName, 'attachments', array('methods' => array('get' => array('path' => 'gmail/v1/users/{userId}/messages/{messageId}/attachments/{id}', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'messageId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true)))))); - $this->users_settings = new \WPMailSMTP\Vendor\Google_Service_Gmail_Resource_UsersSettings($this, $this->serviceName, 'settings', array('methods' => array('getAutoForwarding' => array('path' => 'gmail/v1/users/{userId}/settings/autoForwarding', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'getImap' => array('path' => 'gmail/v1/users/{userId}/settings/imap', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'getLanguage' => array('path' => 'gmail/v1/users/{userId}/settings/language', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'getPop' => array('path' => 'gmail/v1/users/{userId}/settings/pop', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'getVacation' => array('path' => 'gmail/v1/users/{userId}/settings/vacation', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'updateAutoForwarding' => array('path' => 'gmail/v1/users/{userId}/settings/autoForwarding', 'httpMethod' => 'PUT', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'updateImap' => array('path' => 'gmail/v1/users/{userId}/settings/imap', 'httpMethod' => 'PUT', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'updateLanguage' => array('path' => 'gmail/v1/users/{userId}/settings/language', 'httpMethod' => 'PUT', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'updatePop' => array('path' => 'gmail/v1/users/{userId}/settings/pop', 'httpMethod' => 'PUT', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'updateVacation' => array('path' => 'gmail/v1/users/{userId}/settings/vacation', 'httpMethod' => 'PUT', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true)))))); - $this->users_settings_delegates = new \WPMailSMTP\Vendor\Google_Service_Gmail_Resource_UsersSettingsDelegates($this, $this->serviceName, 'delegates', array('methods' => array('create' => array('path' => 'gmail/v1/users/{userId}/settings/delegates', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'delete' => array('path' => 'gmail/v1/users/{userId}/settings/delegates/{delegateEmail}', 'httpMethod' => 'DELETE', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'delegateEmail' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'get' => array('path' => 'gmail/v1/users/{userId}/settings/delegates/{delegateEmail}', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'delegateEmail' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'list' => array('path' => 'gmail/v1/users/{userId}/settings/delegates', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true)))))); - $this->users_settings_filters = new \WPMailSMTP\Vendor\Google_Service_Gmail_Resource_UsersSettingsFilters($this, $this->serviceName, 'filters', array('methods' => array('create' => array('path' => 'gmail/v1/users/{userId}/settings/filters', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'delete' => array('path' => 'gmail/v1/users/{userId}/settings/filters/{id}', 'httpMethod' => 'DELETE', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'get' => array('path' => 'gmail/v1/users/{userId}/settings/filters/{id}', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'list' => array('path' => 'gmail/v1/users/{userId}/settings/filters', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true)))))); - $this->users_settings_forwardingAddresses = new \WPMailSMTP\Vendor\Google_Service_Gmail_Resource_UsersSettingsForwardingAddresses($this, $this->serviceName, 'forwardingAddresses', array('methods' => array('create' => array('path' => 'gmail/v1/users/{userId}/settings/forwardingAddresses', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'delete' => array('path' => 'gmail/v1/users/{userId}/settings/forwardingAddresses/{forwardingEmail}', 'httpMethod' => 'DELETE', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'forwardingEmail' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'get' => array('path' => 'gmail/v1/users/{userId}/settings/forwardingAddresses/{forwardingEmail}', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'forwardingEmail' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'list' => array('path' => 'gmail/v1/users/{userId}/settings/forwardingAddresses', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true)))))); - $this->users_settings_sendAs = new \WPMailSMTP\Vendor\Google_Service_Gmail_Resource_UsersSettingsSendAs($this, $this->serviceName, 'sendAs', array('methods' => array('create' => array('path' => 'gmail/v1/users/{userId}/settings/sendAs', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'delete' => array('path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}', 'httpMethod' => 'DELETE', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'sendAsEmail' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'get' => array('path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'sendAsEmail' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'list' => array('path' => 'gmail/v1/users/{userId}/settings/sendAs', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'patch' => array('path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}', 'httpMethod' => 'PATCH', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'sendAsEmail' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'update' => array('path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}', 'httpMethod' => 'PUT', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'sendAsEmail' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'verify' => array('path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/verify', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'sendAsEmail' => array('location' => 'path', 'type' => 'string', 'required' => \true)))))); - $this->users_settings_sendAs_smimeInfo = new \WPMailSMTP\Vendor\Google_Service_Gmail_Resource_UsersSettingsSendAsSmimeInfo($this, $this->serviceName, 'smimeInfo', array('methods' => array('delete' => array('path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}', 'httpMethod' => 'DELETE', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'sendAsEmail' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'get' => array('path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'sendAsEmail' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'insert' => array('path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'sendAsEmail' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'list' => array('path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'sendAsEmail' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'setDefault' => array('path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}/setDefault', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'sendAsEmail' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true)))))); - $this->users_threads = new \WPMailSMTP\Vendor\Google_Service_Gmail_Resource_UsersThreads($this, $this->serviceName, 'threads', array('methods' => array('delete' => array('path' => 'gmail/v1/users/{userId}/threads/{id}', 'httpMethod' => 'DELETE', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'get' => array('path' => 'gmail/v1/users/{userId}/threads/{id}', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'format' => array('location' => 'query', 'type' => 'string'), 'metadataHeaders' => array('location' => 'query', 'type' => 'string', 'repeated' => \true))), 'list' => array('path' => 'gmail/v1/users/{userId}/threads', 'httpMethod' => 'GET', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'maxResults' => array('location' => 'query', 'type' => 'integer'), 'includeSpamTrash' => array('location' => 'query', 'type' => 'boolean'), 'pageToken' => array('location' => 'query', 'type' => 'string'), 'q' => array('location' => 'query', 'type' => 'string'), 'labelIds' => array('location' => 'query', 'type' => 'string', 'repeated' => \true))), 'modify' => array('path' => 'gmail/v1/users/{userId}/threads/{id}/modify', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'trash' => array('path' => 'gmail/v1/users/{userId}/threads/{id}/trash', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true))), 'untrash' => array('path' => 'gmail/v1/users/{userId}/threads/{id}/untrash', 'httpMethod' => 'POST', 'parameters' => array('userId' => array('location' => 'path', 'type' => 'string', 'required' => \true), 'id' => array('location' => 'path', 'type' => 'string', 'required' => \true)))))); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/AutoForwarding.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/AutoForwarding.php deleted file mode 100644 index 0a1ff75..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/AutoForwarding.php +++ /dev/null @@ -1,49 +0,0 @@ -disposition = $disposition; - } - public function getDisposition() - { - return $this->disposition; - } - public function setEmailAddress($emailAddress) - { - $this->emailAddress = $emailAddress; - } - public function getEmailAddress() - { - return $this->emailAddress; - } - public function setEnabled($enabled) - { - $this->enabled = $enabled; - } - public function getEnabled() - { - return $this->enabled; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/BatchDeleteMessagesRequest.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/BatchDeleteMessagesRequest.php deleted file mode 100644 index dfa7def..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/BatchDeleteMessagesRequest.php +++ /dev/null @@ -1,32 +0,0 @@ -ids = $ids; - } - public function getIds() - { - return $this->ids; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/BatchModifyMessagesRequest.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/BatchModifyMessagesRequest.php deleted file mode 100644 index b3d11b7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/BatchModifyMessagesRequest.php +++ /dev/null @@ -1,50 +0,0 @@ -addLabelIds = $addLabelIds; - } - public function getAddLabelIds() - { - return $this->addLabelIds; - } - public function setIds($ids) - { - $this->ids = $ids; - } - public function getIds() - { - return $this->ids; - } - public function setRemoveLabelIds($removeLabelIds) - { - $this->removeLabelIds = $removeLabelIds; - } - public function getRemoveLabelIds() - { - return $this->removeLabelIds; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Delegate.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Delegate.php deleted file mode 100644 index 7961e26..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Delegate.php +++ /dev/null @@ -1,40 +0,0 @@ -delegateEmail = $delegateEmail; - } - public function getDelegateEmail() - { - return $this->delegateEmail; - } - public function setVerificationStatus($verificationStatus) - { - $this->verificationStatus = $verificationStatus; - } - public function getVerificationStatus() - { - return $this->verificationStatus; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Draft.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Draft.php deleted file mode 100644 index b40ea58..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Draft.php +++ /dev/null @@ -1,47 +0,0 @@ -id = $id; - } - public function getId() - { - return $this->id; - } - /** - * @param Google_Service_Gmail_Message - */ - public function setMessage(\WPMailSMTP\Vendor\Google_Service_Gmail_Message $message) - { - $this->message = $message; - } - /** - * @return Google_Service_Gmail_Message - */ - public function getMessage() - { - return $this->message; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Filter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Filter.php deleted file mode 100644 index df9da2b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Filter.php +++ /dev/null @@ -1,63 +0,0 @@ -action = $action; - } - /** - * @return Google_Service_Gmail_FilterAction - */ - public function getAction() - { - return $this->action; - } - /** - * @param Google_Service_Gmail_FilterCriteria - */ - public function setCriteria(\WPMailSMTP\Vendor\Google_Service_Gmail_FilterCriteria $criteria) - { - $this->criteria = $criteria; - } - /** - * @return Google_Service_Gmail_FilterCriteria - */ - public function getCriteria() - { - return $this->criteria; - } - public function setId($id) - { - $this->id = $id; - } - public function getId() - { - return $this->id; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/FilterAction.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/FilterAction.php deleted file mode 100644 index b158c59..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/FilterAction.php +++ /dev/null @@ -1,50 +0,0 @@ -addLabelIds = $addLabelIds; - } - public function getAddLabelIds() - { - return $this->addLabelIds; - } - public function setForward($forward) - { - $this->forward = $forward; - } - public function getForward() - { - return $this->forward; - } - public function setRemoveLabelIds($removeLabelIds) - { - $this->removeLabelIds = $removeLabelIds; - } - public function getRemoveLabelIds() - { - return $this->removeLabelIds; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/FilterCriteria.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/FilterCriteria.php deleted file mode 100644 index da908de..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/FilterCriteria.php +++ /dev/null @@ -1,103 +0,0 @@ -excludeChats = $excludeChats; - } - public function getExcludeChats() - { - return $this->excludeChats; - } - public function setFrom($from) - { - $this->from = $from; - } - public function getFrom() - { - return $this->from; - } - public function setHasAttachment($hasAttachment) - { - $this->hasAttachment = $hasAttachment; - } - public function getHasAttachment() - { - return $this->hasAttachment; - } - public function setNegatedQuery($negatedQuery) - { - $this->negatedQuery = $negatedQuery; - } - public function getNegatedQuery() - { - return $this->negatedQuery; - } - public function setQuery($query) - { - $this->query = $query; - } - public function getQuery() - { - return $this->query; - } - public function setSize($size) - { - $this->size = $size; - } - public function getSize() - { - return $this->size; - } - public function setSizeComparison($sizeComparison) - { - $this->sizeComparison = $sizeComparison; - } - public function getSizeComparison() - { - return $this->sizeComparison; - } - public function setSubject($subject) - { - $this->subject = $subject; - } - public function getSubject() - { - return $this->subject; - } - public function setTo($to) - { - $this->to = $to; - } - public function getTo() - { - return $this->to; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ForwardingAddress.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ForwardingAddress.php deleted file mode 100644 index 0e7050d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ForwardingAddress.php +++ /dev/null @@ -1,40 +0,0 @@ -forwardingEmail = $forwardingEmail; - } - public function getForwardingEmail() - { - return $this->forwardingEmail; - } - public function setVerificationStatus($verificationStatus) - { - $this->verificationStatus = $verificationStatus; - } - public function getVerificationStatus() - { - return $this->verificationStatus; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/History.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/History.php deleted file mode 100644 index 9c858ec..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/History.php +++ /dev/null @@ -1,112 +0,0 @@ -id = $id; - } - public function getId() - { - return $this->id; - } - /** - * @param Google_Service_Gmail_HistoryLabelAdded - */ - public function setLabelsAdded($labelsAdded) - { - $this->labelsAdded = $labelsAdded; - } - /** - * @return Google_Service_Gmail_HistoryLabelAdded - */ - public function getLabelsAdded() - { - return $this->labelsAdded; - } - /** - * @param Google_Service_Gmail_HistoryLabelRemoved - */ - public function setLabelsRemoved($labelsRemoved) - { - $this->labelsRemoved = $labelsRemoved; - } - /** - * @return Google_Service_Gmail_HistoryLabelRemoved - */ - public function getLabelsRemoved() - { - return $this->labelsRemoved; - } - /** - * @param Google_Service_Gmail_Message - */ - public function setMessages($messages) - { - $this->messages = $messages; - } - /** - * @return Google_Service_Gmail_Message - */ - public function getMessages() - { - return $this->messages; - } - /** - * @param Google_Service_Gmail_HistoryMessageAdded - */ - public function setMessagesAdded($messagesAdded) - { - $this->messagesAdded = $messagesAdded; - } - /** - * @return Google_Service_Gmail_HistoryMessageAdded - */ - public function getMessagesAdded() - { - return $this->messagesAdded; - } - /** - * @param Google_Service_Gmail_HistoryMessageDeleted - */ - public function setMessagesDeleted($messagesDeleted) - { - $this->messagesDeleted = $messagesDeleted; - } - /** - * @return Google_Service_Gmail_HistoryMessageDeleted - */ - public function getMessagesDeleted() - { - return $this->messagesDeleted; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryLabelAdded.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryLabelAdded.php deleted file mode 100644 index 22d8f4a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryLabelAdded.php +++ /dev/null @@ -1,48 +0,0 @@ -labelIds = $labelIds; - } - public function getLabelIds() - { - return $this->labelIds; - } - /** - * @param Google_Service_Gmail_Message - */ - public function setMessage(\WPMailSMTP\Vendor\Google_Service_Gmail_Message $message) - { - $this->message = $message; - } - /** - * @return Google_Service_Gmail_Message - */ - public function getMessage() - { - return $this->message; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryLabelRemoved.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryLabelRemoved.php deleted file mode 100644 index 2ae21ac..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryLabelRemoved.php +++ /dev/null @@ -1,48 +0,0 @@ -labelIds = $labelIds; - } - public function getLabelIds() - { - return $this->labelIds; - } - /** - * @param Google_Service_Gmail_Message - */ - public function setMessage(\WPMailSMTP\Vendor\Google_Service_Gmail_Message $message) - { - $this->message = $message; - } - /** - * @return Google_Service_Gmail_Message - */ - public function getMessage() - { - return $this->message; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryMessageAdded.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryMessageAdded.php deleted file mode 100644 index 3e65d20..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryMessageAdded.php +++ /dev/null @@ -1,38 +0,0 @@ -message = $message; - } - /** - * @return Google_Service_Gmail_Message - */ - public function getMessage() - { - return $this->message; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryMessageDeleted.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryMessageDeleted.php deleted file mode 100644 index 68a45e1..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/HistoryMessageDeleted.php +++ /dev/null @@ -1,38 +0,0 @@ -message = $message; - } - /** - * @return Google_Service_Gmail_Message - */ - public function getMessage() - { - return $this->message; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ImapSettings.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ImapSettings.php deleted file mode 100644 index a2aac62..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ImapSettings.php +++ /dev/null @@ -1,58 +0,0 @@ -autoExpunge = $autoExpunge; - } - public function getAutoExpunge() - { - return $this->autoExpunge; - } - public function setEnabled($enabled) - { - $this->enabled = $enabled; - } - public function getEnabled() - { - return $this->enabled; - } - public function setExpungeBehavior($expungeBehavior) - { - $this->expungeBehavior = $expungeBehavior; - } - public function getExpungeBehavior() - { - return $this->expungeBehavior; - } - public function setMaxFolderSize($maxFolderSize) - { - $this->maxFolderSize = $maxFolderSize; - } - public function getMaxFolderSize() - { - return $this->maxFolderSize; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Label.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Label.php deleted file mode 100644 index 206613b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Label.php +++ /dev/null @@ -1,119 +0,0 @@ -color = $color; - } - /** - * @return Google_Service_Gmail_LabelColor - */ - public function getColor() - { - return $this->color; - } - public function setId($id) - { - $this->id = $id; - } - public function getId() - { - return $this->id; - } - public function setLabelListVisibility($labelListVisibility) - { - $this->labelListVisibility = $labelListVisibility; - } - public function getLabelListVisibility() - { - return $this->labelListVisibility; - } - public function setMessageListVisibility($messageListVisibility) - { - $this->messageListVisibility = $messageListVisibility; - } - public function getMessageListVisibility() - { - return $this->messageListVisibility; - } - public function setMessagesTotal($messagesTotal) - { - $this->messagesTotal = $messagesTotal; - } - public function getMessagesTotal() - { - return $this->messagesTotal; - } - public function setMessagesUnread($messagesUnread) - { - $this->messagesUnread = $messagesUnread; - } - public function getMessagesUnread() - { - return $this->messagesUnread; - } - public function setName($name) - { - $this->name = $name; - } - public function getName() - { - return $this->name; - } - public function setThreadsTotal($threadsTotal) - { - $this->threadsTotal = $threadsTotal; - } - public function getThreadsTotal() - { - return $this->threadsTotal; - } - public function setThreadsUnread($threadsUnread) - { - $this->threadsUnread = $threadsUnread; - } - public function getThreadsUnread() - { - return $this->threadsUnread; - } - public function setType($type) - { - $this->type = $type; - } - public function getType() - { - return $this->type; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/LabelColor.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/LabelColor.php deleted file mode 100644 index 33ca445..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/LabelColor.php +++ /dev/null @@ -1,40 +0,0 @@ -backgroundColor = $backgroundColor; - } - public function getBackgroundColor() - { - return $this->backgroundColor; - } - public function setTextColor($textColor) - { - $this->textColor = $textColor; - } - public function getTextColor() - { - return $this->textColor; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/LanguageSettings.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/LanguageSettings.php deleted file mode 100644 index d5adf60..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/LanguageSettings.php +++ /dev/null @@ -1,31 +0,0 @@ -displayLanguage = $displayLanguage; - } - public function getDisplayLanguage() - { - return $this->displayLanguage; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListDelegatesResponse.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListDelegatesResponse.php deleted file mode 100644 index 1dbd675..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListDelegatesResponse.php +++ /dev/null @@ -1,39 +0,0 @@ -delegates = $delegates; - } - /** - * @return Google_Service_Gmail_Delegate - */ - public function getDelegates() - { - return $this->delegates; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListDraftsResponse.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListDraftsResponse.php deleted file mode 100644 index 3b659b0..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListDraftsResponse.php +++ /dev/null @@ -1,57 +0,0 @@ -drafts = $drafts; - } - /** - * @return Google_Service_Gmail_Draft - */ - public function getDrafts() - { - return $this->drafts; - } - public function setNextPageToken($nextPageToken) - { - $this->nextPageToken = $nextPageToken; - } - public function getNextPageToken() - { - return $this->nextPageToken; - } - public function setResultSizeEstimate($resultSizeEstimate) - { - $this->resultSizeEstimate = $resultSizeEstimate; - } - public function getResultSizeEstimate() - { - return $this->resultSizeEstimate; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListFiltersResponse.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListFiltersResponse.php deleted file mode 100644 index 8f32a86..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListFiltersResponse.php +++ /dev/null @@ -1,39 +0,0 @@ -filter = $filter; - } - /** - * @return Google_Service_Gmail_Filter - */ - public function getFilter() - { - return $this->filter; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListForwardingAddressesResponse.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListForwardingAddressesResponse.php deleted file mode 100644 index d69ae9b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListForwardingAddressesResponse.php +++ /dev/null @@ -1,39 +0,0 @@ -forwardingAddresses = $forwardingAddresses; - } - /** - * @return Google_Service_Gmail_ForwardingAddress - */ - public function getForwardingAddresses() - { - return $this->forwardingAddresses; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListHistoryResponse.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListHistoryResponse.php deleted file mode 100644 index 338e960..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListHistoryResponse.php +++ /dev/null @@ -1,57 +0,0 @@ -history = $history; - } - /** - * @return Google_Service_Gmail_History - */ - public function getHistory() - { - return $this->history; - } - public function setHistoryId($historyId) - { - $this->historyId = $historyId; - } - public function getHistoryId() - { - return $this->historyId; - } - public function setNextPageToken($nextPageToken) - { - $this->nextPageToken = $nextPageToken; - } - public function getNextPageToken() - { - return $this->nextPageToken; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListLabelsResponse.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListLabelsResponse.php deleted file mode 100644 index f4538bc..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListLabelsResponse.php +++ /dev/null @@ -1,39 +0,0 @@ -labels = $labels; - } - /** - * @return Google_Service_Gmail_Label - */ - public function getLabels() - { - return $this->labels; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListMessagesResponse.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListMessagesResponse.php deleted file mode 100644 index fc302f7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListMessagesResponse.php +++ /dev/null @@ -1,57 +0,0 @@ -messages = $messages; - } - /** - * @return Google_Service_Gmail_Message - */ - public function getMessages() - { - return $this->messages; - } - public function setNextPageToken($nextPageToken) - { - $this->nextPageToken = $nextPageToken; - } - public function getNextPageToken() - { - return $this->nextPageToken; - } - public function setResultSizeEstimate($resultSizeEstimate) - { - $this->resultSizeEstimate = $resultSizeEstimate; - } - public function getResultSizeEstimate() - { - return $this->resultSizeEstimate; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListSendAsResponse.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListSendAsResponse.php deleted file mode 100644 index ea9800d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListSendAsResponse.php +++ /dev/null @@ -1,39 +0,0 @@ -sendAs = $sendAs; - } - /** - * @return Google_Service_Gmail_SendAs - */ - public function getSendAs() - { - return $this->sendAs; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListSmimeInfoResponse.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListSmimeInfoResponse.php deleted file mode 100644 index f2c99ad..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListSmimeInfoResponse.php +++ /dev/null @@ -1,39 +0,0 @@ -smimeInfo = $smimeInfo; - } - /** - * @return Google_Service_Gmail_SmimeInfo - */ - public function getSmimeInfo() - { - return $this->smimeInfo; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListThreadsResponse.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListThreadsResponse.php deleted file mode 100644 index 6fa8bec..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ListThreadsResponse.php +++ /dev/null @@ -1,57 +0,0 @@ -nextPageToken = $nextPageToken; - } - public function getNextPageToken() - { - return $this->nextPageToken; - } - public function setResultSizeEstimate($resultSizeEstimate) - { - $this->resultSizeEstimate = $resultSizeEstimate; - } - public function getResultSizeEstimate() - { - return $this->resultSizeEstimate; - } - /** - * @param Google_Service_Gmail_Thread - */ - public function setThreads($threads) - { - $this->threads = $threads; - } - /** - * @return Google_Service_Gmail_Thread - */ - public function getThreads() - { - return $this->threads; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Message.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Message.php deleted file mode 100644 index 4ea0def..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Message.php +++ /dev/null @@ -1,111 +0,0 @@ -historyId = $historyId; - } - public function getHistoryId() - { - return $this->historyId; - } - public function setId($id) - { - $this->id = $id; - } - public function getId() - { - return $this->id; - } - public function setInternalDate($internalDate) - { - $this->internalDate = $internalDate; - } - public function getInternalDate() - { - return $this->internalDate; - } - public function setLabelIds($labelIds) - { - $this->labelIds = $labelIds; - } - public function getLabelIds() - { - return $this->labelIds; - } - /** - * @param Google_Service_Gmail_MessagePart - */ - public function setPayload(\WPMailSMTP\Vendor\Google_Service_Gmail_MessagePart $payload) - { - $this->payload = $payload; - } - /** - * @return Google_Service_Gmail_MessagePart - */ - public function getPayload() - { - return $this->payload; - } - public function setRaw($raw) - { - $this->raw = $raw; - } - public function getRaw() - { - return $this->raw; - } - public function setSizeEstimate($sizeEstimate) - { - $this->sizeEstimate = $sizeEstimate; - } - public function getSizeEstimate() - { - return $this->sizeEstimate; - } - public function setSnippet($snippet) - { - $this->snippet = $snippet; - } - public function getSnippet() - { - return $this->snippet; - } - public function setThreadId($threadId) - { - $this->threadId = $threadId; - } - public function getThreadId() - { - return $this->threadId; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePart.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePart.php deleted file mode 100644 index 2b554f5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePart.php +++ /dev/null @@ -1,98 +0,0 @@ -body = $body; - } - /** - * @return Google_Service_Gmail_MessagePartBody - */ - public function getBody() - { - return $this->body; - } - public function setFilename($filename) - { - $this->filename = $filename; - } - public function getFilename() - { - return $this->filename; - } - /** - * @param Google_Service_Gmail_MessagePartHeader - */ - public function setHeaders($headers) - { - $this->headers = $headers; - } - /** - * @return Google_Service_Gmail_MessagePartHeader - */ - public function getHeaders() - { - return $this->headers; - } - public function setMimeType($mimeType) - { - $this->mimeType = $mimeType; - } - public function getMimeType() - { - return $this->mimeType; - } - public function setPartId($partId) - { - $this->partId = $partId; - } - public function getPartId() - { - return $this->partId; - } - /** - * @param Google_Service_Gmail_MessagePart - */ - public function setParts($parts) - { - $this->parts = $parts; - } - /** - * @return Google_Service_Gmail_MessagePart - */ - public function getParts() - { - return $this->parts; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePartBody.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePartBody.php deleted file mode 100644 index 2abd12d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePartBody.php +++ /dev/null @@ -1,49 +0,0 @@ -attachmentId = $attachmentId; - } - public function getAttachmentId() - { - return $this->attachmentId; - } - public function setData($data) - { - $this->data = $data; - } - public function getData() - { - return $this->data; - } - public function setSize($size) - { - $this->size = $size; - } - public function getSize() - { - return $this->size; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePartHeader.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePartHeader.php deleted file mode 100644 index 82c12ee..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/MessagePartHeader.php +++ /dev/null @@ -1,40 +0,0 @@ -name = $name; - } - public function getName() - { - return $this->name; - } - public function setValue($value) - { - $this->value = $value; - } - public function getValue() - { - return $this->value; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ModifyMessageRequest.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ModifyMessageRequest.php deleted file mode 100644 index e78bcdf..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ModifyMessageRequest.php +++ /dev/null @@ -1,41 +0,0 @@ -addLabelIds = $addLabelIds; - } - public function getAddLabelIds() - { - return $this->addLabelIds; - } - public function setRemoveLabelIds($removeLabelIds) - { - $this->removeLabelIds = $removeLabelIds; - } - public function getRemoveLabelIds() - { - return $this->removeLabelIds; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ModifyThreadRequest.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ModifyThreadRequest.php deleted file mode 100644 index 8cb1bb9..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/ModifyThreadRequest.php +++ /dev/null @@ -1,41 +0,0 @@ -addLabelIds = $addLabelIds; - } - public function getAddLabelIds() - { - return $this->addLabelIds; - } - public function setRemoveLabelIds($removeLabelIds) - { - $this->removeLabelIds = $removeLabelIds; - } - public function getRemoveLabelIds() - { - return $this->removeLabelIds; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/PopSettings.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/PopSettings.php deleted file mode 100644 index e662d32..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/PopSettings.php +++ /dev/null @@ -1,40 +0,0 @@ -accessWindow = $accessWindow; - } - public function getAccessWindow() - { - return $this->accessWindow; - } - public function setDisposition($disposition) - { - $this->disposition = $disposition; - } - public function getDisposition() - { - return $this->disposition; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Profile.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Profile.php deleted file mode 100644 index 884d8c1..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Profile.php +++ /dev/null @@ -1,58 +0,0 @@ -emailAddress = $emailAddress; - } - public function getEmailAddress() - { - return $this->emailAddress; - } - public function setHistoryId($historyId) - { - $this->historyId = $historyId; - } - public function getHistoryId() - { - return $this->historyId; - } - public function setMessagesTotal($messagesTotal) - { - $this->messagesTotal = $messagesTotal; - } - public function getMessagesTotal() - { - return $this->messagesTotal; - } - public function setThreadsTotal($threadsTotal) - { - $this->threadsTotal = $threadsTotal; - } - public function getThreadsTotal() - { - return $this->threadsTotal; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/Users.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/Users.php deleted file mode 100644 index 346011f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/Users.php +++ /dev/null @@ -1,73 +0,0 @@ - - * $gmailService = new Google_Service_Gmail(...); - * $users = $gmailService->users; - * - */ -class Google_Service_Gmail_Resource_Users extends \WPMailSMTP\Vendor\Google_Service_Resource -{ - /** - * Gets the current user's Gmail profile. (users.getProfile) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Profile - */ - public function getProfile($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('getProfile', array($params), "Google_Service_Gmail_Profile"); - } - /** - * Stop receiving push notifications for the given user mailbox. (users.stop) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - */ - public function stop($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('stop', array($params)); - } - /** - * Set up or update a push notification watch on the given user mailbox. - * (users.watch) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_WatchRequest $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_WatchResponse - */ - public function watch($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_WatchRequest $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('watch', array($params), "Google_Service_Gmail_WatchResponse"); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersDrafts.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersDrafts.php deleted file mode 100644 index 1963a2f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersDrafts.php +++ /dev/null @@ -1,132 +0,0 @@ - - * $gmailService = new Google_Service_Gmail(...); - * $drafts = $gmailService->drafts; - * - */ -class Google_Service_Gmail_Resource_UsersDrafts extends \WPMailSMTP\Vendor\Google_Service_Resource -{ - /** - * Creates a new draft with the `DRAFT` label. (drafts.create) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_Draft $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Draft - */ - public function create($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_Draft $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('create', array($params), "Google_Service_Gmail_Draft"); - } - /** - * Immediately and permanently deletes the specified draft. Does not simply - * trash it. (drafts.delete) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the draft to delete. - * @param array $optParams Optional parameters. - */ - public function delete($userId, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('delete', array($params)); - } - /** - * Gets the specified draft. (drafts.get) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the draft to retrieve. - * @param array $optParams Optional parameters. - * - * @opt_param string format The format to return the draft in. - * @return Google_Service_Gmail_Draft - */ - public function get($userId, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('get', array($params), "Google_Service_Gmail_Draft"); - } - /** - * Lists the drafts in the user's mailbox. (drafts.listUsersDrafts) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - * - * @opt_param bool includeSpamTrash Include drafts from `SPAM` and `TRASH` in - * the results. - * @opt_param string q Only return draft messages matching the specified query. - * Supports the same query format as the Gmail search box. For example, - * `"from:someuser@example.com rfc822msgid: is:unread"`. - * @opt_param string pageToken Page token to retrieve a specific page of results - * in the list. - * @opt_param string maxResults Maximum number of drafts to return. - * @return Google_Service_Gmail_ListDraftsResponse - */ - public function listUsersDrafts($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('list', array($params), "Google_Service_Gmail_ListDraftsResponse"); - } - /** - * Sends the specified, existing draft to the recipients in the `To`, `Cc`, and - * `Bcc` headers. (drafts.send) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_Draft $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Message - */ - public function send($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_Draft $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('send', array($params), "Google_Service_Gmail_Message"); - } - /** - * Replaces a draft's content. (drafts.update) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the draft to update. - * @param Google_Service_Gmail_Draft $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Draft - */ - public function update($userId, $id, \WPMailSMTP\Vendor\Google_Service_Gmail_Draft $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('update', array($params), "Google_Service_Gmail_Draft"); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersHistory.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersHistory.php deleted file mode 100644 index f3b4608..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersHistory.php +++ /dev/null @@ -1,63 +0,0 @@ - - * $gmailService = new Google_Service_Gmail(...); - * $history = $gmailService->history; - * - */ -class Google_Service_Gmail_Resource_UsersHistory extends \WPMailSMTP\Vendor\Google_Service_Resource -{ - /** - * Lists the history of all changes to the given mailbox. History results are - * returned in chronological order (increasing `historyId`). - * (history.listUsersHistory) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - * - * @opt_param string startHistoryId Required. Returns history records after the - * specified `startHistoryId`. The supplied `startHistoryId` should be obtained - * from the `historyId` of a message, thread, or previous `list` response. - * History IDs increase chronologically but are not contiguous with random gaps - * in between valid IDs. Supplying an invalid or out of date `startHistoryId` - * typically returns an `HTTP 404` error code. A `historyId` is typically valid - * for at least a week, but in some rare circumstances may be valid for only a - * few hours. If you receive an `HTTP 404` error response, your application - * should perform a full sync. If you receive no `nextPageToken` in the - * response, there are no updates to retrieve and you can store the returned - * `historyId` for a future request. - * @opt_param string historyTypes History types to be returned by the function - * @opt_param string pageToken Page token to retrieve a specific page of results - * in the list. - * @opt_param string maxResults The maximum number of history records to return. - * @opt_param string labelId Only return messages with a label matching the ID. - * @return Google_Service_Gmail_ListHistoryResponse - */ - public function listUsersHistory($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('list', array($params), "Google_Service_Gmail_ListHistoryResponse"); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersLabels.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersLabels.php deleted file mode 100644 index e365a9b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersLabels.php +++ /dev/null @@ -1,121 +0,0 @@ - - * $gmailService = new Google_Service_Gmail(...); - * $labels = $gmailService->labels; - * - */ -class Google_Service_Gmail_Resource_UsersLabels extends \WPMailSMTP\Vendor\Google_Service_Resource -{ - /** - * Creates a new label. (labels.create) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_Label $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Label - */ - public function create($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_Label $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('create', array($params), "Google_Service_Gmail_Label"); - } - /** - * Immediately and permanently deletes the specified label and removes it from - * any messages and threads that it is applied to. (labels.delete) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the label to delete. - * @param array $optParams Optional parameters. - */ - public function delete($userId, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('delete', array($params)); - } - /** - * Gets the specified label. (labels.get) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the label to retrieve. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Label - */ - public function get($userId, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('get', array($params), "Google_Service_Gmail_Label"); - } - /** - * Lists all labels in the user's mailbox. (labels.listUsersLabels) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_ListLabelsResponse - */ - public function listUsersLabels($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('list', array($params), "Google_Service_Gmail_ListLabelsResponse"); - } - /** - * Patch the specified label. (labels.patch) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the label to update. - * @param Google_Service_Gmail_Label $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Label - */ - public function patch($userId, $id, \WPMailSMTP\Vendor\Google_Service_Gmail_Label $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('patch', array($params), "Google_Service_Gmail_Label"); - } - /** - * Updates the specified label. (labels.update) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the label to update. - * @param Google_Service_Gmail_Label $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Label - */ - public function update($userId, $id, \WPMailSMTP\Vendor\Google_Service_Gmail_Label $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('update', array($params), "Google_Service_Gmail_Label"); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessages.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessages.php deleted file mode 100644 index d75880c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessages.php +++ /dev/null @@ -1,232 +0,0 @@ - - * $gmailService = new Google_Service_Gmail(...); - * $messages = $gmailService->messages; - * - */ -class Google_Service_Gmail_Resource_UsersMessages extends \WPMailSMTP\Vendor\Google_Service_Resource -{ - /** - * Deletes many messages by message ID. Provides no guarantees that messages - * were not already deleted or even existed at all. (messages.batchDelete) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_BatchDeleteMessagesRequest $postBody - * @param array $optParams Optional parameters. - */ - public function batchDelete($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_BatchDeleteMessagesRequest $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('batchDelete', array($params)); - } - /** - * Modifies the labels on the specified messages. (messages.batchModify) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_BatchModifyMessagesRequest $postBody - * @param array $optParams Optional parameters. - */ - public function batchModify($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_BatchModifyMessagesRequest $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('batchModify', array($params)); - } - /** - * Immediately and permanently deletes the specified message. This operation - * cannot be undone. Prefer `messages.trash` instead. (messages.delete) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the message to delete. - * @param array $optParams Optional parameters. - */ - public function delete($userId, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('delete', array($params)); - } - /** - * Gets the specified message. (messages.get) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the message to retrieve. - * @param array $optParams Optional parameters. - * - * @opt_param string metadataHeaders When given and format is `METADATA`, only - * include headers specified. - * @opt_param string format The format to return the message in. - * @return Google_Service_Gmail_Message - */ - public function get($userId, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('get', array($params), "Google_Service_Gmail_Message"); - } - /** - * Imports a message into only this user's mailbox, with standard email delivery - * scanning and classification similar to receiving via SMTP. Does not send a - * message. Note: This function doesn't trigger forwarding rules or filters set - * up by the user. (messages.import) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_Message $postBody - * @param array $optParams Optional parameters. - * - * @opt_param bool processForCalendar Process calendar invites in the email and - * add any extracted meetings to the Google Calendar for this user. - * @opt_param string internalDateSource Source for Gmail's internal date of the - * message. - * @opt_param bool deleted Mark the email as permanently deleted (not TRASH) and - * only visible in Google Vault to a Vault administrator. Only used for G Suite - * accounts. - * @opt_param bool neverMarkSpam Ignore the Gmail spam classifier decision and - * never mark this email as SPAM in the mailbox. - * @return Google_Service_Gmail_Message - */ - public function import($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_Message $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('import', array($params), "Google_Service_Gmail_Message"); - } - /** - * Directly inserts a message into only this user's mailbox similar to `IMAP - * APPEND`, bypassing most scanning and classification. Does not send a message. - * (messages.insert) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_Message $postBody - * @param array $optParams Optional parameters. - * - * @opt_param string internalDateSource Source for Gmail's internal date of the - * message. - * @opt_param bool deleted Mark the email as permanently deleted (not TRASH) and - * only visible in Google Vault to a Vault administrator. Only used for G Suite - * accounts. - * @return Google_Service_Gmail_Message - */ - public function insert($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_Message $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('insert', array($params), "Google_Service_Gmail_Message"); - } - /** - * Lists the messages in the user's mailbox. (messages.listUsersMessages) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - * - * @opt_param string maxResults Maximum number of messages to return. - * @opt_param string q Only return messages matching the specified query. - * Supports the same query format as the Gmail search box. For example, - * `"from:someuser@example.com rfc822msgid: is:unread"`. Parameter cannot be - * used when accessing the api using the gmail.metadata scope. - * @opt_param string labelIds Only return messages with labels that match all of - * the specified label IDs. - * @opt_param string pageToken Page token to retrieve a specific page of results - * in the list. - * @opt_param bool includeSpamTrash Include messages from `SPAM` and `TRASH` in - * the results. - * @return Google_Service_Gmail_ListMessagesResponse - */ - public function listUsersMessages($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('list', array($params), "Google_Service_Gmail_ListMessagesResponse"); - } - /** - * Modifies the labels on the specified message. (messages.modify) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the message to modify. - * @param Google_Service_Gmail_ModifyMessageRequest $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Message - */ - public function modify($userId, $id, \WPMailSMTP\Vendor\Google_Service_Gmail_ModifyMessageRequest $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('modify', array($params), "Google_Service_Gmail_Message"); - } - /** - * Sends the specified message to the recipients in the `To`, `Cc`, and `Bcc` - * headers. (messages.send) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_Message $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Message - */ - public function send($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_Message $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('send', array($params), "Google_Service_Gmail_Message"); - } - /** - * Moves the specified message to the trash. (messages.trash) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the message to Trash. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Message - */ - public function trash($userId, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('trash', array($params), "Google_Service_Gmail_Message"); - } - /** - * Removes the specified message from the trash. (messages.untrash) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the message to remove from Trash. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Message - */ - public function untrash($userId, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('untrash', array($params), "Google_Service_Gmail_Message"); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessagesAttachments.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessagesAttachments.php deleted file mode 100644 index 742f195..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessagesAttachments.php +++ /dev/null @@ -1,46 +0,0 @@ - - * $gmailService = new Google_Service_Gmail(...); - * $attachments = $gmailService->attachments; - * - */ -class Google_Service_Gmail_Resource_UsersMessagesAttachments extends \WPMailSMTP\Vendor\Google_Service_Resource -{ - /** - * Gets the specified message attachment. (attachments.get) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $messageId The ID of the message containing the attachment. - * @param string $id The ID of the attachment. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_MessagePartBody - */ - public function get($userId, $messageId, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'messageId' => $messageId, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('get', array($params), "Google_Service_Gmail_MessagePartBody"); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettings.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettings.php deleted file mode 100644 index b6b4a4b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettings.php +++ /dev/null @@ -1,184 +0,0 @@ - - * $gmailService = new Google_Service_Gmail(...); - * $settings = $gmailService->settings; - * - */ -class Google_Service_Gmail_Resource_UsersSettings extends \WPMailSMTP\Vendor\Google_Service_Resource -{ - /** - * Gets the auto-forwarding setting for the specified account. - * (settings.getAutoForwarding) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_AutoForwarding - */ - public function getAutoForwarding($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('getAutoForwarding', array($params), "Google_Service_Gmail_AutoForwarding"); - } - /** - * Gets IMAP settings. (settings.getImap) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_ImapSettings - */ - public function getImap($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('getImap', array($params), "Google_Service_Gmail_ImapSettings"); - } - /** - * Gets language settings. (settings.getLanguage) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_LanguageSettings - */ - public function getLanguage($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('getLanguage', array($params), "Google_Service_Gmail_LanguageSettings"); - } - /** - * Gets POP settings. (settings.getPop) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_PopSettings - */ - public function getPop($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('getPop', array($params), "Google_Service_Gmail_PopSettings"); - } - /** - * Gets vacation responder settings. (settings.getVacation) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_VacationSettings - */ - public function getVacation($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('getVacation', array($params), "Google_Service_Gmail_VacationSettings"); - } - /** - * Updates the auto-forwarding setting for the specified account. A verified - * forwarding address must be specified when auto-forwarding is enabled. This - * method is only available to service account clients that have been delegated - * domain-wide authority. (settings.updateAutoForwarding) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_AutoForwarding $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_AutoForwarding - */ - public function updateAutoForwarding($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_AutoForwarding $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('updateAutoForwarding', array($params), "Google_Service_Gmail_AutoForwarding"); - } - /** - * Updates IMAP settings. (settings.updateImap) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_ImapSettings $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_ImapSettings - */ - public function updateImap($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_ImapSettings $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('updateImap', array($params), "Google_Service_Gmail_ImapSettings"); - } - /** - * Updates language settings. If successful, the return object contains the - * `displayLanguage` that was saved for the user, which may differ from the - * value passed into the request. This is because the requested - * `displayLanguage` may not be directly supported by Gmail but have a close - * variant that is, and so the variant may be chosen and saved instead. - * (settings.updateLanguage) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_LanguageSettings $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_LanguageSettings - */ - public function updateLanguage($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_LanguageSettings $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('updateLanguage', array($params), "Google_Service_Gmail_LanguageSettings"); - } - /** - * Updates POP settings. (settings.updatePop) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_PopSettings $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_PopSettings - */ - public function updatePop($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_PopSettings $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('updatePop', array($params), "Google_Service_Gmail_PopSettings"); - } - /** - * Updates vacation responder settings. (settings.updateVacation) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_VacationSettings $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_VacationSettings - */ - public function updateVacation($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_VacationSettings $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('updateVacation', array($params), "Google_Service_Gmail_VacationSettings"); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsDelegates.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsDelegates.php deleted file mode 100644 index 795ccb5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsDelegates.php +++ /dev/null @@ -1,109 +0,0 @@ - - * $gmailService = new Google_Service_Gmail(...); - * $delegates = $gmailService->delegates; - * - */ -class Google_Service_Gmail_Resource_UsersSettingsDelegates extends \WPMailSMTP\Vendor\Google_Service_Resource -{ - /** - * Adds a delegate with its verification status set directly to `accepted`, - * without sending any verification email. The delegate user must be a member of - * the same G Suite organization as the delegator user. Gmail imposes - * limitations on the number of delegates and delegators each user in a G Suite - * organization can have. These limits depend on your organization, but in - * general each user can have up to 25 delegates and up to 10 delegators. Note - * that a delegate user must be referred to by their primary email address, and - * not an email alias. Also note that when a new delegate is created, there may - * be up to a one minute delay before the new delegate is available for use. - * This method is only available to service account clients that have been - * delegated domain-wide authority. (delegates.create) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_Delegate $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Delegate - */ - public function create($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_Delegate $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('create', array($params), "Google_Service_Gmail_Delegate"); - } - /** - * Removes the specified delegate (which can be of any verification status), and - * revokes any verification that may have been required for using it. Note that - * a delegate user must be referred to by their primary email address, and not - * an email alias. This method is only available to service account clients that - * have been delegated domain-wide authority. (delegates.delete) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param string $delegateEmail The email address of the user to be removed as a - * delegate. - * @param array $optParams Optional parameters. - */ - public function delete($userId, $delegateEmail, $optParams = array()) - { - $params = array('userId' => $userId, 'delegateEmail' => $delegateEmail); - $params = \array_merge($params, $optParams); - return $this->call('delete', array($params)); - } - /** - * Gets the specified delegate. Note that a delegate user must be referred to by - * their primary email address, and not an email alias. This method is only - * available to service account clients that have been delegated domain-wide - * authority. (delegates.get) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param string $delegateEmail The email address of the user whose delegate - * relationship is to be retrieved. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Delegate - */ - public function get($userId, $delegateEmail, $optParams = array()) - { - $params = array('userId' => $userId, 'delegateEmail' => $delegateEmail); - $params = \array_merge($params, $optParams); - return $this->call('get', array($params), "Google_Service_Gmail_Delegate"); - } - /** - * Lists the delegates for the specified account. This method is only available - * to service account clients that have been delegated domain-wide authority. - * (delegates.listUsersSettingsDelegates) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_ListDelegatesResponse - */ - public function listUsersSettingsDelegates($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('list', array($params), "Google_Service_Gmail_ListDelegatesResponse"); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsFilters.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsFilters.php deleted file mode 100644 index f93ccda..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsFilters.php +++ /dev/null @@ -1,89 +0,0 @@ - - * $gmailService = new Google_Service_Gmail(...); - * $filters = $gmailService->filters; - * - */ -class Google_Service_Gmail_Resource_UsersSettingsFilters extends \WPMailSMTP\Vendor\Google_Service_Resource -{ - /** - * Creates a filter. Note: you can only create a maximum of 1,000 filters. - * (filters.create) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_Filter $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Filter - */ - public function create($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_Filter $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('create', array($params), "Google_Service_Gmail_Filter"); - } - /** - * Deletes a filter. (filters.delete) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param string $id The ID of the filter to be deleted. - * @param array $optParams Optional parameters. - */ - public function delete($userId, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('delete', array($params)); - } - /** - * Gets a filter. (filters.get) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param string $id The ID of the filter to be fetched. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Filter - */ - public function get($userId, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('get', array($params), "Google_Service_Gmail_Filter"); - } - /** - * Lists the message filters of a Gmail user. (filters.listUsersSettingsFilters) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_ListFiltersResponse - */ - public function listUsersSettingsFilters($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('list', array($params), "Google_Service_Gmail_ListFiltersResponse"); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsForwardingAddresses.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsForwardingAddresses.php deleted file mode 100644 index 10a5cc5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsForwardingAddresses.php +++ /dev/null @@ -1,97 +0,0 @@ - - * $gmailService = new Google_Service_Gmail(...); - * $forwardingAddresses = $gmailService->forwardingAddresses; - * - */ -class Google_Service_Gmail_Resource_UsersSettingsForwardingAddresses extends \WPMailSMTP\Vendor\Google_Service_Resource -{ - /** - * Creates a forwarding address. If ownership verification is required, a - * message will be sent to the recipient and the resource's verification status - * will be set to `pending`; otherwise, the resource will be created with - * verification status set to `accepted`. This method is only available to - * service account clients that have been delegated domain-wide authority. - * (forwardingAddresses.create) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_ForwardingAddress $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_ForwardingAddress - */ - public function create($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_ForwardingAddress $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('create', array($params), "Google_Service_Gmail_ForwardingAddress"); - } - /** - * Deletes the specified forwarding address and revokes any verification that - * may have been required. This method is only available to service account - * clients that have been delegated domain-wide authority. - * (forwardingAddresses.delete) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param string $forwardingEmail The forwarding address to be deleted. - * @param array $optParams Optional parameters. - */ - public function delete($userId, $forwardingEmail, $optParams = array()) - { - $params = array('userId' => $userId, 'forwardingEmail' => $forwardingEmail); - $params = \array_merge($params, $optParams); - return $this->call('delete', array($params)); - } - /** - * Gets the specified forwarding address. (forwardingAddresses.get) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param string $forwardingEmail The forwarding address to be retrieved. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_ForwardingAddress - */ - public function get($userId, $forwardingEmail, $optParams = array()) - { - $params = array('userId' => $userId, 'forwardingEmail' => $forwardingEmail); - $params = \array_merge($params, $optParams); - return $this->call('get', array($params), "Google_Service_Gmail_ForwardingAddress"); - } - /** - * Lists the forwarding addresses for the specified account. - * (forwardingAddresses.listUsersSettingsForwardingAddresses) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_ListForwardingAddressesResponse - */ - public function listUsersSettingsForwardingAddresses($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('list', array($params), "Google_Service_Gmail_ListForwardingAddressesResponse"); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAs.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAs.php deleted file mode 100644 index 6ae901c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAs.php +++ /dev/null @@ -1,153 +0,0 @@ - - * $gmailService = new Google_Service_Gmail(...); - * $sendAs = $gmailService->sendAs; - * - */ -class Google_Service_Gmail_Resource_UsersSettingsSendAs extends \WPMailSMTP\Vendor\Google_Service_Resource -{ - /** - * Creates a custom "from" send-as alias. If an SMTP MSA is specified, Gmail - * will attempt to connect to the SMTP service to validate the configuration - * before creating the alias. If ownership verification is required for the - * alias, a message will be sent to the email address and the resource's - * verification status will be set to `pending`; otherwise, the resource will be - * created with verification status set to `accepted`. If a signature is - * provided, Gmail will sanitize the HTML before saving it with the alias. This - * method is only available to service account clients that have been delegated - * domain-wide authority. (sendAs.create) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param Google_Service_Gmail_SendAs $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_SendAs - */ - public function create($userId, \WPMailSMTP\Vendor\Google_Service_Gmail_SendAs $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('create', array($params), "Google_Service_Gmail_SendAs"); - } - /** - * Deletes the specified send-as alias. Revokes any verification that may have - * been required for using it. This method is only available to service account - * clients that have been delegated domain-wide authority. (sendAs.delete) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param string $sendAsEmail The send-as alias to be deleted. - * @param array $optParams Optional parameters. - */ - public function delete($userId, $sendAsEmail, $optParams = array()) - { - $params = array('userId' => $userId, 'sendAsEmail' => $sendAsEmail); - $params = \array_merge($params, $optParams); - return $this->call('delete', array($params)); - } - /** - * Gets the specified send-as alias. Fails with an HTTP 404 error if the - * specified address is not a member of the collection. (sendAs.get) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param string $sendAsEmail The send-as alias to be retrieved. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_SendAs - */ - public function get($userId, $sendAsEmail, $optParams = array()) - { - $params = array('userId' => $userId, 'sendAsEmail' => $sendAsEmail); - $params = \array_merge($params, $optParams); - return $this->call('get', array($params), "Google_Service_Gmail_SendAs"); - } - /** - * Lists the send-as aliases for the specified account. The result includes the - * primary send-as address associated with the account as well as any custom - * "from" aliases. (sendAs.listUsersSettingsSendAs) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_ListSendAsResponse - */ - public function listUsersSettingsSendAs($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('list', array($params), "Google_Service_Gmail_ListSendAsResponse"); - } - /** - * Patch the specified send-as alias. (sendAs.patch) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param string $sendAsEmail The send-as alias to be updated. - * @param Google_Service_Gmail_SendAs $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_SendAs - */ - public function patch($userId, $sendAsEmail, \WPMailSMTP\Vendor\Google_Service_Gmail_SendAs $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'sendAsEmail' => $sendAsEmail, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('patch', array($params), "Google_Service_Gmail_SendAs"); - } - /** - * Updates a send-as alias. If a signature is provided, Gmail will sanitize the - * HTML before saving it with the alias. Addresses other than the primary - * address for the account can only be updated by service account clients that - * have been delegated domain-wide authority. (sendAs.update) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param string $sendAsEmail The send-as alias to be updated. - * @param Google_Service_Gmail_SendAs $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_SendAs - */ - public function update($userId, $sendAsEmail, \WPMailSMTP\Vendor\Google_Service_Gmail_SendAs $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'sendAsEmail' => $sendAsEmail, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('update', array($params), "Google_Service_Gmail_SendAs"); - } - /** - * Sends a verification email to the specified send-as alias address. The - * verification status must be `pending`. This method is only available to - * service account clients that have been delegated domain-wide authority. - * (sendAs.verify) - * - * @param string $userId User's email address. The special value "me" can be - * used to indicate the authenticated user. - * @param string $sendAsEmail The send-as alias to be verified. - * @param array $optParams Optional parameters. - */ - public function verify($userId, $sendAsEmail, $optParams = array()) - { - $params = array('userId' => $userId, 'sendAsEmail' => $sendAsEmail); - $params = \array_merge($params, $optParams); - return $this->call('verify', array($params)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAsSmimeInfo.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAsSmimeInfo.php deleted file mode 100644 index 7c2ae54..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAsSmimeInfo.php +++ /dev/null @@ -1,117 +0,0 @@ - - * $gmailService = new Google_Service_Gmail(...); - * $smimeInfo = $gmailService->smimeInfo; - * - */ -class Google_Service_Gmail_Resource_UsersSettingsSendAsSmimeInfo extends \WPMailSMTP\Vendor\Google_Service_Resource -{ - /** - * Deletes the specified S/MIME config for the specified send-as alias. - * (smimeInfo.delete) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $sendAsEmail The email address that appears in the "From:" - * header for mail sent using this alias. - * @param string $id The immutable ID for the SmimeInfo. - * @param array $optParams Optional parameters. - */ - public function delete($userId, $sendAsEmail, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'sendAsEmail' => $sendAsEmail, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('delete', array($params)); - } - /** - * Gets the specified S/MIME config for the specified send-as alias. - * (smimeInfo.get) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $sendAsEmail The email address that appears in the "From:" - * header for mail sent using this alias. - * @param string $id The immutable ID for the SmimeInfo. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_SmimeInfo - */ - public function get($userId, $sendAsEmail, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'sendAsEmail' => $sendAsEmail, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('get', array($params), "Google_Service_Gmail_SmimeInfo"); - } - /** - * Insert (upload) the given S/MIME config for the specified send-as alias. Note - * that pkcs12 format is required for the key. (smimeInfo.insert) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $sendAsEmail The email address that appears in the "From:" - * header for mail sent using this alias. - * @param Google_Service_Gmail_SmimeInfo $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_SmimeInfo - */ - public function insert($userId, $sendAsEmail, \WPMailSMTP\Vendor\Google_Service_Gmail_SmimeInfo $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'sendAsEmail' => $sendAsEmail, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('insert', array($params), "Google_Service_Gmail_SmimeInfo"); - } - /** - * Lists S/MIME configs for the specified send-as alias. - * (smimeInfo.listUsersSettingsSendAsSmimeInfo) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $sendAsEmail The email address that appears in the "From:" - * header for mail sent using this alias. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_ListSmimeInfoResponse - */ - public function listUsersSettingsSendAsSmimeInfo($userId, $sendAsEmail, $optParams = array()) - { - $params = array('userId' => $userId, 'sendAsEmail' => $sendAsEmail); - $params = \array_merge($params, $optParams); - return $this->call('list', array($params), "Google_Service_Gmail_ListSmimeInfoResponse"); - } - /** - * Sets the default S/MIME config for the specified send-as alias. - * (smimeInfo.setDefault) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $sendAsEmail The email address that appears in the "From:" - * header for mail sent using this alias. - * @param string $id The immutable ID for the SmimeInfo. - * @param array $optParams Optional parameters. - */ - public function setDefault($userId, $sendAsEmail, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'sendAsEmail' => $sendAsEmail, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('setDefault', array($params)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersThreads.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersThreads.php deleted file mode 100644 index 84151ff..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersThreads.php +++ /dev/null @@ -1,137 +0,0 @@ - - * $gmailService = new Google_Service_Gmail(...); - * $threads = $gmailService->threads; - * - */ -class Google_Service_Gmail_Resource_UsersThreads extends \WPMailSMTP\Vendor\Google_Service_Resource -{ - /** - * Immediately and permanently deletes the specified thread. This operation - * cannot be undone. Prefer `threads.trash` instead. (threads.delete) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id ID of the Thread to delete. - * @param array $optParams Optional parameters. - */ - public function delete($userId, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('delete', array($params)); - } - /** - * Gets the specified thread. (threads.get) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the thread to retrieve. - * @param array $optParams Optional parameters. - * - * @opt_param string format The format to return the messages in. - * @opt_param string metadataHeaders When given and format is METADATA, only - * include headers specified. - * @return Google_Service_Gmail_Thread - */ - public function get($userId, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('get', array($params), "Google_Service_Gmail_Thread"); - } - /** - * Lists the threads in the user's mailbox. (threads.listUsersThreads) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param array $optParams Optional parameters. - * - * @opt_param string maxResults Maximum number of threads to return. - * @opt_param bool includeSpamTrash Include threads from `SPAM` and `TRASH` in - * the results. - * @opt_param string pageToken Page token to retrieve a specific page of results - * in the list. - * @opt_param string q Only return threads matching the specified query. - * Supports the same query format as the Gmail search box. For example, - * `"from:someuser@example.com rfc822msgid: is:unread"`. Parameter cannot be - * used when accessing the api using the gmail.metadata scope. - * @opt_param string labelIds Only return threads with labels that match all of - * the specified label IDs. - * @return Google_Service_Gmail_ListThreadsResponse - */ - public function listUsersThreads($userId, $optParams = array()) - { - $params = array('userId' => $userId); - $params = \array_merge($params, $optParams); - return $this->call('list', array($params), "Google_Service_Gmail_ListThreadsResponse"); - } - /** - * Modifies the labels applied to the thread. This applies to all messages in - * the thread. (threads.modify) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the thread to modify. - * @param Google_Service_Gmail_ModifyThreadRequest $postBody - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Thread - */ - public function modify($userId, $id, \WPMailSMTP\Vendor\Google_Service_Gmail_ModifyThreadRequest $postBody, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id, 'postBody' => $postBody); - $params = \array_merge($params, $optParams); - return $this->call('modify', array($params), "Google_Service_Gmail_Thread"); - } - /** - * Moves the specified thread to the trash. (threads.trash) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the thread to Trash. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Thread - */ - public function trash($userId, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('trash', array($params), "Google_Service_Gmail_Thread"); - } - /** - * Removes the specified thread from the trash. (threads.untrash) - * - * @param string $userId The user's email address. The special value `me` can be - * used to indicate the authenticated user. - * @param string $id The ID of the thread to remove from Trash. - * @param array $optParams Optional parameters. - * @return Google_Service_Gmail_Thread - */ - public function untrash($userId, $id, $optParams = array()) - { - $params = array('userId' => $userId, 'id' => $id); - $params = \array_merge($params, $optParams); - return $this->call('untrash', array($params), "Google_Service_Gmail_Thread"); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SendAs.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SendAs.php deleted file mode 100644 index eec2742..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SendAs.php +++ /dev/null @@ -1,110 +0,0 @@ -displayName = $displayName; - } - public function getDisplayName() - { - return $this->displayName; - } - public function setIsDefault($isDefault) - { - $this->isDefault = $isDefault; - } - public function getIsDefault() - { - return $this->isDefault; - } - public function setIsPrimary($isPrimary) - { - $this->isPrimary = $isPrimary; - } - public function getIsPrimary() - { - return $this->isPrimary; - } - public function setReplyToAddress($replyToAddress) - { - $this->replyToAddress = $replyToAddress; - } - public function getReplyToAddress() - { - return $this->replyToAddress; - } - public function setSendAsEmail($sendAsEmail) - { - $this->sendAsEmail = $sendAsEmail; - } - public function getSendAsEmail() - { - return $this->sendAsEmail; - } - public function setSignature($signature) - { - $this->signature = $signature; - } - public function getSignature() - { - return $this->signature; - } - /** - * @param Google_Service_Gmail_SmtpMsa - */ - public function setSmtpMsa(\WPMailSMTP\Vendor\Google_Service_Gmail_SmtpMsa $smtpMsa) - { - $this->smtpMsa = $smtpMsa; - } - /** - * @return Google_Service_Gmail_SmtpMsa - */ - public function getSmtpMsa() - { - return $this->smtpMsa; - } - public function setTreatAsAlias($treatAsAlias) - { - $this->treatAsAlias = $treatAsAlias; - } - public function getTreatAsAlias() - { - return $this->treatAsAlias; - } - public function setVerificationStatus($verificationStatus) - { - $this->verificationStatus = $verificationStatus; - } - public function getVerificationStatus() - { - return $this->verificationStatus; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SmimeInfo.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SmimeInfo.php deleted file mode 100644 index 5ec67f9..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SmimeInfo.php +++ /dev/null @@ -1,85 +0,0 @@ -encryptedKeyPassword = $encryptedKeyPassword; - } - public function getEncryptedKeyPassword() - { - return $this->encryptedKeyPassword; - } - public function setExpiration($expiration) - { - $this->expiration = $expiration; - } - public function getExpiration() - { - return $this->expiration; - } - public function setId($id) - { - $this->id = $id; - } - public function getId() - { - return $this->id; - } - public function setIsDefault($isDefault) - { - $this->isDefault = $isDefault; - } - public function getIsDefault() - { - return $this->isDefault; - } - public function setIssuerCn($issuerCn) - { - $this->issuerCn = $issuerCn; - } - public function getIssuerCn() - { - return $this->issuerCn; - } - public function setPem($pem) - { - $this->pem = $pem; - } - public function getPem() - { - return $this->pem; - } - public function setPkcs12($pkcs12) - { - $this->pkcs12 = $pkcs12; - } - public function getPkcs12() - { - return $this->pkcs12; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SmtpMsa.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SmtpMsa.php deleted file mode 100644 index 357aa80..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/SmtpMsa.php +++ /dev/null @@ -1,67 +0,0 @@ -host = $host; - } - public function getHost() - { - return $this->host; - } - public function setPassword($password) - { - $this->password = $password; - } - public function getPassword() - { - return $this->password; - } - public function setPort($port) - { - $this->port = $port; - } - public function getPort() - { - return $this->port; - } - public function setSecurityMode($securityMode) - { - $this->securityMode = $securityMode; - } - public function getSecurityMode() - { - return $this->securityMode; - } - public function setUsername($username) - { - $this->username = $username; - } - public function getUsername() - { - return $this->username; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Thread.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Thread.php deleted file mode 100644 index 07b1a1a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/Thread.php +++ /dev/null @@ -1,66 +0,0 @@ -historyId = $historyId; - } - public function getHistoryId() - { - return $this->historyId; - } - public function setId($id) - { - $this->id = $id; - } - public function getId() - { - return $this->id; - } - /** - * @param Google_Service_Gmail_Message - */ - public function setMessages($messages) - { - $this->messages = $messages; - } - /** - * @return Google_Service_Gmail_Message - */ - public function getMessages() - { - return $this->messages; - } - public function setSnippet($snippet) - { - $this->snippet = $snippet; - } - public function getSnippet() - { - return $this->snippet; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/VacationSettings.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/VacationSettings.php deleted file mode 100644 index c6c3ba7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/VacationSettings.php +++ /dev/null @@ -1,94 +0,0 @@ -enableAutoReply = $enableAutoReply; - } - public function getEnableAutoReply() - { - return $this->enableAutoReply; - } - public function setEndTime($endTime) - { - $this->endTime = $endTime; - } - public function getEndTime() - { - return $this->endTime; - } - public function setResponseBodyHtml($responseBodyHtml) - { - $this->responseBodyHtml = $responseBodyHtml; - } - public function getResponseBodyHtml() - { - return $this->responseBodyHtml; - } - public function setResponseBodyPlainText($responseBodyPlainText) - { - $this->responseBodyPlainText = $responseBodyPlainText; - } - public function getResponseBodyPlainText() - { - return $this->responseBodyPlainText; - } - public function setResponseSubject($responseSubject) - { - $this->responseSubject = $responseSubject; - } - public function getResponseSubject() - { - return $this->responseSubject; - } - public function setRestrictToContacts($restrictToContacts) - { - $this->restrictToContacts = $restrictToContacts; - } - public function getRestrictToContacts() - { - return $this->restrictToContacts; - } - public function setRestrictToDomain($restrictToDomain) - { - $this->restrictToDomain = $restrictToDomain; - } - public function getRestrictToDomain() - { - return $this->restrictToDomain; - } - public function setStartTime($startTime) - { - $this->startTime = $startTime; - } - public function getStartTime() - { - return $this->startTime; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/WatchRequest.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/WatchRequest.php deleted file mode 100644 index 48afc65..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/WatchRequest.php +++ /dev/null @@ -1,50 +0,0 @@ -labelFilterAction = $labelFilterAction; - } - public function getLabelFilterAction() - { - return $this->labelFilterAction; - } - public function setLabelIds($labelIds) - { - $this->labelIds = $labelIds; - } - public function getLabelIds() - { - return $this->labelIds; - } - public function setTopicName($topicName) - { - $this->topicName = $topicName; - } - public function getTopicName() - { - return $this->topicName; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/WatchResponse.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/WatchResponse.php deleted file mode 100644 index 359fb9f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient-services/src/Google/Service/Gmail/WatchResponse.php +++ /dev/null @@ -1,40 +0,0 @@ -expiration = $expiration; - } - public function getExpiration() - { - return $this->expiration; - } - public function setHistoryId($historyId) - { - $this->historyId = $historyId; - } - public function getHistoryId() - { - return $this->historyId; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/LICENSE b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/LICENSE deleted file mode 100644 index a148ba5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/LICENSE +++ /dev/null @@ -1,203 +0,0 @@ -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, -and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by -the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all -other entities that control, are controlled by, or are under common -control with that entity. For the purposes of this definition, -"control" means (i) the power, direct or indirect, to cause the -direction or management of such entity, whether by contract or -otherwise, or (ii) ownership of fifty percent (50%) or more of the -outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity -exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation -source, and configuration files. - -"Object" form shall mean any form resulting from mechanical -transformation or translation of a Source form, including but -not limited to compiled object code, generated documentation, -and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or -Object form, made available under the License, as indicated by a -copyright notice that is included in or attached to the work -(an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object -form, that is based on (or derived from) the Work and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. For the purposes -of this License, Derivative Works shall not include works that remain -separable from, or merely link (or bind by name) to the interfaces of, -the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including -the original version of the Work and any modifications or additions -to that Work or Derivative Works thereof, that is intentionally -submitted to Licensor for inclusion in the Work by the copyright owner -or by an individual or Legal Entity authorized to submit on behalf of -the copyright owner. For the purposes of this definition, "submitted" -means any form of electronic, verbal, or written communication sent -to the Licensor or its representatives, including but not limited to -communication on electronic mailing lists, source code control systems, -and issue tracking systems that are managed by, or on behalf of, the -Licensor for the purpose of discussing and improving the Work, but -excluding communication that is conspicuously marked or otherwise -designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity -on behalf of whom a Contribution has been received by Licensor and -subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -copyright license to reproduce, prepare Derivative Works of, -publicly display, publicly perform, sublicense, and distribute the -Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -(except as stated in this section) patent license to make, have made, -use, offer to sell, sell, import, and otherwise transfer the Work, -where such license applies only to those patent claims licensable -by such Contributor that are necessarily infringed by their -Contribution(s) alone or by combination of their Contribution(s) -with the Work to which such Contribution(s) was submitted. If You -institute patent litigation against any entity (including a -cross-claim or counterclaim in a lawsuit) alleging that the Work -or a Contribution incorporated within the Work constitutes direct -or contributory patent infringement, then any patent licenses -granted to You under this License for that Work shall terminate -as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the -Work or Derivative Works thereof in any medium, with or without -modifications, and in Source or Object form, provided that You -meet the following conditions: - -(a) You must give any other recipients of the Work or -Derivative Works a copy of this License; and - -(b) You must cause any modified files to carry prominent notices -stating that You changed the files; and - -(c) You must retain, in the Source form of any Derivative Works -that You distribute, all copyright, patent, trademark, and -attribution notices from the Source form of the Work, -excluding those notices that do not pertain to any part of -the Derivative Works; and - -(d) If the Work includes a "NOTICE" text file as part of its -distribution, then any Derivative Works that You distribute must -include a readable copy of the attribution notices contained -within such NOTICE file, excluding those notices that do not -pertain to any part of the Derivative Works, in at least one -of the following places: within a NOTICE text file distributed -as part of the Derivative Works; within the Source form or -documentation, if provided along with the Derivative Works; or, -within a display generated by the Derivative Works, if and -wherever such third-party notices normally appear. The contents -of the NOTICE file are for informational purposes only and -do not modify the License. You may add Your own attribution -notices within Derivative Works that You distribute, alongside -or as an addendum to the NOTICE text from the Work, provided -that such additional attribution notices cannot be construed -as modifying the License. - -You may add Your own copyright statement to Your modifications and -may provide additional or different license terms and conditions -for use, reproduction, or distribution of Your modifications, or -for any such Derivative Works as a whole, provided Your use, -reproduction, and distribution of the Work otherwise complies with -the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, -any Contribution intentionally submitted for inclusion in the Work -by You to the Licensor shall be under the terms and conditions of -this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify -the terms of any separate license agreement you may have executed -with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade -names, trademarks, service marks, or product names of the Licensor, -except as required for reasonable and customary use in describing the -origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or -agreed to in writing, Licensor provides the Work (and each -Contributor provides its Contributions) on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -implied, including, without limitation, any warranties or conditions -of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -PARTICULAR PURPOSE. You are solely responsible for determining the -appropriateness of using or redistributing the Work and assume any -risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, -whether in tort (including negligence), contract, or otherwise, -unless required by applicable law (such as deliberate and grossly -negligent acts) or agreed to in writing, shall any Contributor be -liable to You for damages, including any direct, indirect, special, -incidental, or consequential damages of any character arising as a -result of this License or out of the use or inability to use the -Work (including but not limited to damages for loss of goodwill, -work stoppage, computer failure or malfunction, or any and all -other commercial damages or losses), even if such Contributor -has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing -the Work or Derivative Works thereof, You may choose to offer, -and charge a fee for, acceptance of support, warranty, indemnity, -or other liability obligations and/or rights consistent with this -License. However, in accepting such obligations, You may act only -on Your own behalf and on Your sole responsibility, not on behalf -of any other Contributor, and only if You agree to indemnify, -defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason -of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - -To apply the Apache License to your work, attach the following -boilerplate notice, with the fields enclosed by brackets "[]" -replaced with your own identifying information. (Don't include -the brackets!) The text should be enclosed in the appropriate -comment syntax for the file format. We also recommend that a -file or class name and description of purpose be included on the -same "printed page" as the copyright notice for easier -identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - - diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AccessToken/Revoke.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AccessToken/Revoke.php deleted file mode 100644 index 76268ab..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AccessToken/Revoke.php +++ /dev/null @@ -1,64 +0,0 @@ -http = $http; - } - /** - * 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) - { - if (\is_array($token)) { - if (isset($token['refresh_token'])) { - $token = $token['refresh_token']; - } else { - $token = $token['access_token']; - } - } - $body = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\stream_for(\http_build_query(array('token' => $token))); - $request = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', \WPMailSMTP\Vendor\Google_Client::OAUTH2_REVOKE_URI, ['Cache-Control' => 'no-store', 'Content-Type' => 'application/x-www-form-urlencoded'], $body); - $httpHandler = \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build($this->http); - $response = $httpHandler($request); - return $response->getStatusCode() == 200; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AccessToken/Verify.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AccessToken/Verify.php deleted file mode 100644 index a160a36..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AccessToken/Verify.php +++ /dev/null @@ -1,218 +0,0 @@ -http = $http; - $this->cache = $cache; - $this->jwt = $jwt ?: $this->getJwtService(); - } - /** - * 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 the token payload, if successful - */ - public function verifyIdToken($idToken, $audience = null) - { - if (empty($idToken)) { - throw new \LogicException('id_token cannot be null'); - } - // set phpseclib constants if applicable - $this->setPhpsecConstants(); - // Check signature - $certs = $this->getFederatedSignOnCerts(); - foreach ($certs as $cert) { - $bigIntClass = $this->getBigIntClass(); - $rsaClass = $this->getRsaClass(); - $modulus = new $bigIntClass($this->jwt->urlsafeB64Decode($cert['n']), 256); - $exponent = new $bigIntClass($this->jwt->urlsafeB64Decode($cert['e']), 256); - $rsa = new $rsaClass(); - $rsa->loadKey(array('n' => $modulus, 'e' => $exponent)); - try { - $payload = $this->jwt->decode($idToken, $rsa->getPublicKey(), array('RS256')); - if (\property_exists($payload, 'aud')) { - if ($audience && $payload->aud != $audience) { - return \false; - } - } - // support HTTP and HTTPS issuers - // @see https://developers.google.com/identity/sign-in/web/backend-auth - $issuers = array(self::OAUTH2_ISSUER, self::OAUTH2_ISSUER_HTTPS); - if (!isset($payload->iss) || !\in_array($payload->iss, $issuers)) { - return \false; - } - return (array) $payload; - } catch (\WPMailSMTP\Vendor\ExpiredException $e) { - return \false; - } catch (\WPMailSMTP\Vendor\Firebase\JWT\ExpiredException $e) { - return \false; - } catch (\WPMailSMTP\Vendor\Firebase\JWT\SignatureInvalidException $e) { - // continue - } catch (\DomainException $e) { - // continue - } - } - return \false; - } - private function getCache() - { - return $this->cache; - } - /** - * Retrieve and cache a certificates file. - * - * @param $url string location - * @throws Google_Exception - * @return array certificates - */ - private function retrieveCertsFromLocation($url) - { - // If we're retrieving a local file, just grab it. - if (0 !== \strpos($url, 'http')) { - if (!($file = \file_get_contents($url))) { - throw new \WPMailSMTP\Vendor\Google_Exception("Failed to retrieve verification certificates: '" . $url . "'."); - } - return \json_decode($file, \true); - } - $response = $this->http->get($url); - if ($response->getStatusCode() == 200) { - return \json_decode((string) $response->getBody(), \true); - } - throw new \WPMailSMTP\Vendor\Google_Exception(\sprintf('Failed to retrieve verification certificates: "%s".', $response->getBody()->getContents()), $response->getStatusCode()); - } - // 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() - { - $certs = null; - if ($cache = $this->getCache()) { - $cacheItem = $cache->getItem('federated_signon_certs_v3'); - $certs = $cacheItem->get(); - } - if (!$certs) { - $certs = $this->retrieveCertsFromLocation(self::FEDERATED_SIGNON_CERT_URL); - if ($cache) { - $cacheItem->expiresAt(new \DateTime('+1 hour')); - $cacheItem->set($certs); - $cache->save($cacheItem); - } - } - if (!isset($certs['keys'])) { - throw new \InvalidArgumentException('federated sign-on certs expects "keys" to be set'); - } - return $certs['keys']; - } - private function getJwtService() - { - $jwtClass = 'JWT'; - if (\class_exists('WPMailSMTP\\Vendor\\Firebase\\JWT\\JWT')) { - $jwtClass = 'WPMailSMTP\\Vendor\\Firebase\\JWT\\JWT'; - } - if (\property_exists($jwtClass, 'leeway') && $jwtClass::$leeway < 1) { - // Ensures JWT leeway is at least 1 - // @see https://github.com/google/google-api-php-client/issues/827 - $jwtClass::$leeway = 1; - } - return new $jwtClass(); - } - private function getRsaClass() - { - if (\class_exists('WPMailSMTP\\Vendor\\phpseclib\\Crypt\\RSA')) { - return 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\RSA'; - } - return 'Crypt_RSA'; - } - private function getBigIntClass() - { - if (\class_exists('WPMailSMTP\\Vendor\\phpseclib\\Math\\BigInteger')) { - return 'WPMailSMTP\\Vendor\\phpseclib\\Math\\BigInteger'; - } - return 'Math_BigInteger'; - } - private function getOpenSslConstant() - { - if (\class_exists('WPMailSMTP\\Vendor\\phpseclib\\Crypt\\RSA')) { - return 'WPMailSMTP\\Vendor\\phpseclib\\Crypt\\RSA::MODE_OPENSSL'; - } - if (\class_exists('WPMailSMTP\\Vendor\\Crypt_RSA')) { - return 'CRYPT_RSA_MODE_OPENSSL'; - } - throw new \Exception('Cannot find RSA class'); - } - /** - * 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() - { - if (\filter_var(\getenv('GAE_VM'), \FILTER_VALIDATE_BOOLEAN)) { - if (!\defined('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_OPENSSL_ENABLED')) { - \define('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_OPENSSL_ENABLED', \true); - } - if (!\defined('WPMailSMTP\\Vendor\\CRYPT_RSA_MODE')) { - \define('WPMailSMTP\\Vendor\\CRYPT_RSA_MODE', \constant($this->getOpenSslConstant())); - } - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AuthHandler/AuthHandlerFactory.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AuthHandler/AuthHandlerFactory.php deleted file mode 100644 index 356ff8c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AuthHandler/AuthHandlerFactory.php +++ /dev/null @@ -1,49 +0,0 @@ -cache = $cache; - $this->cacheConfig = $cacheConfig; - } - public function attachCredentials(\WPMailSMTP\Vendor\GuzzleHttp\ClientInterface $http, \WPMailSMTP\Vendor\Google\Auth\CredentialsLoader $credentials, callable $tokenCallback = null) - { - // use the provided cache - if ($this->cache) { - $credentials = new \WPMailSMTP\Vendor\Google\Auth\FetchAuthTokenCache($credentials, $this->cacheConfig, $this->cache); - } - // if we end up needing to make an HTTP request to retrieve credentials, we - // can use our existing one, but we need to throw exceptions so the error - // bubbles up. - $authHttp = $this->createAuthHttp($http); - $authHttpHandler = \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build($authHttp); - $subscriber = new \WPMailSMTP\Vendor\Google\Auth\Subscriber\AuthTokenSubscriber($credentials, $authHttpHandler, $tokenCallback); - $http->setDefaultOption('auth', 'google_auth'); - $http->getEmitter()->attach($subscriber); - return $http; - } - public function attachToken(\WPMailSMTP\Vendor\GuzzleHttp\ClientInterface $http, array $token, array $scopes) - { - $tokenFunc = function ($scopes) use($token) { - return $token['access_token']; - }; - $subscriber = new \WPMailSMTP\Vendor\Google\Auth\Subscriber\ScopedAccessTokenSubscriber($tokenFunc, $scopes, $this->cacheConfig, $this->cache); - $http->setDefaultOption('auth', 'scoped'); - $http->getEmitter()->attach($subscriber); - return $http; - } - public function attachKey(\WPMailSMTP\Vendor\GuzzleHttp\ClientInterface $http, $key) - { - $subscriber = new \WPMailSMTP\Vendor\Google\Auth\Subscriber\SimpleSubscriber(['key' => $key]); - $http->setDefaultOption('auth', 'simple'); - $http->getEmitter()->attach($subscriber); - return $http; - } - private function createAuthHttp(\WPMailSMTP\Vendor\GuzzleHttp\ClientInterface $http) - { - return new \WPMailSMTP\Vendor\GuzzleHttp\Client(['base_url' => $http->getBaseUrl(), 'defaults' => ['exceptions' => \true, 'verify' => $http->getDefaultOption('verify'), 'proxy' => $http->getDefaultOption('proxy')]]); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AuthHandler/Guzzle6AuthHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AuthHandler/Guzzle6AuthHandler.php deleted file mode 100644 index 4d53169..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AuthHandler/Guzzle6AuthHandler.php +++ /dev/null @@ -1,72 +0,0 @@ -cache = $cache; - $this->cacheConfig = $cacheConfig; - } - public function attachCredentials(\WPMailSMTP\Vendor\GuzzleHttp\ClientInterface $http, \WPMailSMTP\Vendor\Google\Auth\CredentialsLoader $credentials, callable $tokenCallback = null) - { - // use the provided cache - if ($this->cache) { - $credentials = new \WPMailSMTP\Vendor\Google\Auth\FetchAuthTokenCache($credentials, $this->cacheConfig, $this->cache); - } - // if we end up needing to make an HTTP request to retrieve credentials, we - // can use our existing one, but we need to throw exceptions so the error - // bubbles up. - $authHttp = $this->createAuthHttp($http); - $authHttpHandler = \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build($authHttp); - $middleware = new \WPMailSMTP\Vendor\Google\Auth\Middleware\AuthTokenMiddleware($credentials, $authHttpHandler, $tokenCallback); - $config = $http->getConfig(); - $config['handler']->remove('google_auth'); - $config['handler']->push($middleware, 'google_auth'); - $config['auth'] = 'google_auth'; - $http = new \WPMailSMTP\Vendor\GuzzleHttp\Client($config); - return $http; - } - public function attachToken(\WPMailSMTP\Vendor\GuzzleHttp\ClientInterface $http, array $token, array $scopes) - { - $tokenFunc = function ($scopes) use($token) { - return $token['access_token']; - }; - $middleware = new \WPMailSMTP\Vendor\Google\Auth\Middleware\ScopedAccessTokenMiddleware($tokenFunc, $scopes, $this->cacheConfig, $this->cache); - $config = $http->getConfig(); - $config['handler']->remove('google_auth'); - $config['handler']->push($middleware, 'google_auth'); - $config['auth'] = 'scoped'; - $http = new \WPMailSMTP\Vendor\GuzzleHttp\Client($config); - return $http; - } - public function attachKey(\WPMailSMTP\Vendor\GuzzleHttp\ClientInterface $http, $key) - { - $middleware = new \WPMailSMTP\Vendor\Google\Auth\Middleware\SimpleMiddleware(['key' => $key]); - $config = $http->getConfig(); - $config['handler']->remove('google_auth'); - $config['handler']->push($middleware, 'google_auth'); - $config['auth'] = 'simple'; - $http = new \WPMailSMTP\Vendor\GuzzleHttp\Client($config); - return $http; - } - private function createAuthHttp(\WPMailSMTP\Vendor\GuzzleHttp\ClientInterface $http) - { - return new \WPMailSMTP\Vendor\GuzzleHttp\Client(['base_uri' => $http->getConfig('base_uri'), 'exceptions' => \true, 'verify' => $http->getConfig('verify'), 'proxy' => $http->getConfig('proxy')]); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AuthHandler/Guzzle7AuthHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AuthHandler/Guzzle7AuthHandler.php deleted file mode 100644 index f8c5483..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/AuthHandler/Guzzle7AuthHandler.php +++ /dev/null @@ -1,25 +0,0 @@ -config = \array_merge([ - 'application_name' => '', - // Don't change these unless you're working against a special development - // or testing environment. - 'base_path' => self::API_BASE_PATH, - // https://developers.google.com/console - 'client_id' => '', - 'client_secret' => '', - // Path to JSON credentials or an array representing those credentials - // @see Google_Client::setAuthConfig - 'credentials' => null, - // @see Google_Client::setScopes - 'scopes' => null, - // Sets X-Goog-User-Project, which specifies a user project to bill - // for access charges associated with the request - 'quota_project' => null, - 'redirect_uri' => null, - 'state' => null, - // Simple API access key, also from the API console. Ensure you get - // a Server key, and not a Browser key. - 'developer_key' => '', - // For use with Google Cloud Platform - // fetch the ApplicationDefaultCredentials, if applicable - // @see https://developers.google.com/identity/protocols/application-default-credentials - 'use_application_default_credentials' => \false, - 'signing_key' => null, - 'signing_algorithm' => null, - 'subject' => null, - // Other OAuth2 parameters. - 'hd' => '', - 'prompt' => '', - 'openid.realm' => '', - 'include_granted_scopes' => null, - 'login_hint' => '', - 'request_visible_actions' => '', - 'access_type' => 'online', - 'approval_prompt' => 'auto', - // Task Runner retry configuration - // @see Google_Task_Runner - 'retry' => array(), - 'retry_map' => null, - // cache config for downstream auth caching - 'cache_config' => [], - // function to be called when an access token is fetched - // follows the signature function ($cacheKey, $accessToken) - 'token_callback' => null, - // Service class used in Google_Client::verifyIdToken. - // Explicitly pass this in to avoid setting JWT::$leeway - 'jwt' => null, - // Setting api_format_v2 will return more detailed error messages - // from certain APIs. - 'api_format_v2' => \false, - ], $config); - if (!\is_null($this->config['credentials'])) { - $this->setAuthConfig($this->config['credentials']); - unset($this->config['credentials']); - } - if (!\is_null($this->config['scopes'])) { - $this->setScopes($this->config['scopes']); - unset($this->config['scopes']); - } - } - /** - * Get a string containing the version of the library. - * - * @return string - */ - public function getLibraryVersion() - { - return self::LIBVER; - } - /** - * For backwards compatibility - * alias for fetchAccessTokenWithAuthCode - * - * @param $code string code from accounts.google.com - * @return array access token - * @deprecated - */ - public function authenticate($code) - { - return $this->fetchAccessTokenWithAuthCode($code); - } - /** - * Attempt to exchange a code for an valid authentication token. - * Helper wrapped around the OAuth 2.0 implementation. - * - * @param $code string code from accounts.google.com - * @return array access token - */ - public function fetchAccessTokenWithAuthCode($code) - { - if (\strlen($code) == 0) { - throw new \InvalidArgumentException("Invalid code"); - } - $auth = $this->getOAuth2Service(); - $auth->setCode($code); - $auth->setRedirectUri($this->getRedirectUri()); - $httpHandler = \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build($this->getHttpClient()); - $creds = $auth->fetchAuthToken($httpHandler); - if ($creds && isset($creds['access_token'])) { - $creds['created'] = \time(); - $this->setAccessToken($creds); - } - return $creds; - } - /** - * For backwards compatibility - * alias for fetchAccessTokenWithAssertion - * - * @return array access token - * @deprecated - */ - public function refreshTokenWithAssertion() - { - return $this->fetchAccessTokenWithAssertion(); - } - /** - * Fetches a fresh access token with a given assertion token. - * @param ClientInterface $authHttp optional. - * @return array access token - */ - public function fetchAccessTokenWithAssertion(\WPMailSMTP\Vendor\GuzzleHttp\ClientInterface $authHttp = null) - { - if (!$this->isUsingApplicationDefaultCredentials()) { - throw new \DomainException('set the JSON service account credentials using' . ' Google_Client::setAuthConfig or set the path to your JSON file' . ' with the "GOOGLE_APPLICATION_CREDENTIALS" environment variable' . ' and call Google_Client::useApplicationDefaultCredentials to' . ' refresh a token with assertion.'); - } - $this->getLogger()->log('info', 'OAuth2 access token refresh with Signed JWT assertion grants.'); - $credentials = $this->createApplicationDefaultCredentials(); - $httpHandler = \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build($authHttp); - $creds = $credentials->fetchAuthToken($httpHandler); - if ($creds && isset($creds['access_token'])) { - $creds['created'] = \time(); - $this->setAccessToken($creds); - } - return $creds; - } - /** - * For backwards compatibility - * alias for fetchAccessTokenWithRefreshToken - * - * @param string $refreshToken - * @return array access token - */ - public function refreshToken($refreshToken) - { - return $this->fetchAccessTokenWithRefreshToken($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) - { - if (null === $refreshToken) { - if (!isset($this->token['refresh_token'])) { - throw new \LogicException('refresh token must be passed in or set as part of setAccessToken'); - } - $refreshToken = $this->token['refresh_token']; - } - $this->getLogger()->info('OAuth2 access token refresh'); - $auth = $this->getOAuth2Service(); - $auth->setRefreshToken($refreshToken); - $httpHandler = \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build($this->getHttpClient()); - $creds = $auth->fetchAuthToken($httpHandler); - if ($creds && isset($creds['access_token'])) { - $creds['created'] = \time(); - if (!isset($creds['refresh_token'])) { - $creds['refresh_token'] = $refreshToken; - } - $this->setAccessToken($creds); - } - return $creds; - } - /** - * 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. - * @return string - */ - public function createAuthUrl($scope = null) - { - if (empty($scope)) { - $scope = $this->prepareScopes(); - } - if (\is_array($scope)) { - $scope = \implode(' ', $scope); - } - // only accept one of prompt or approval_prompt - $approvalPrompt = $this->config['prompt'] ? null : $this->config['approval_prompt']; - // include_granted_scopes should be string "true", string "false", or null - $includeGrantedScopes = $this->config['include_granted_scopes'] === null ? null : \var_export($this->config['include_granted_scopes'], \true); - $params = \array_filter(['access_type' => $this->config['access_type'], 'approval_prompt' => $approvalPrompt, 'hd' => $this->config['hd'], 'include_granted_scopes' => $includeGrantedScopes, 'login_hint' => $this->config['login_hint'], 'openid.realm' => $this->config['openid.realm'], 'prompt' => $this->config['prompt'], 'response_type' => 'code', 'scope' => $scope, 'state' => $this->config['state']]); - // If the list of scopes contains plus.login, add request_visible_actions - // to auth URL. - $rva = $this->config['request_visible_actions']; - if (\strlen($rva) > 0 && \false !== \strpos($scope, 'plus.login')) { - $params['request_visible_actions'] = $rva; - } - $auth = $this->getOAuth2Service(); - return (string) $auth->buildFullAuthorizationUri($params); - } - /** - * Adds auth listeners to the HTTP client based on the credentials - * set in the Google API Client object - * - * @param GuzzleHttp\ClientInterface $http the http client object. - * @return GuzzleHttp\ClientInterface the http client object - */ - public function authorize(\WPMailSMTP\Vendor\GuzzleHttp\ClientInterface $http = null) - { - $credentials = null; - $token = null; - $scopes = null; - if (null === $http) { - $http = $this->getHttpClient(); - } - // These conditionals represent the decision tree for authentication - // 1. Check for Application Default Credentials - // 2. Check for API Key - // 3a. Check for an Access Token - // 3b. If access token exists but is expired, try to refresh it - if ($this->isUsingApplicationDefaultCredentials()) { - $credentials = $this->createApplicationDefaultCredentials(); - } elseif ($token = $this->getAccessToken()) { - $scopes = $this->prepareScopes(); - // add refresh subscriber to request a new token - if (isset($token['refresh_token']) && $this->isAccessTokenExpired()) { - $credentials = $this->createUserRefreshCredentials($scopes, $token['refresh_token']); - } - } - $authHandler = $this->getAuthHandler(); - if ($credentials) { - $callback = $this->config['token_callback']; - $http = $authHandler->attachCredentials($http, $credentials, $callback); - } elseif ($token) { - $http = $authHandler->attachToken($http, $token, (array) $scopes); - } elseif ($key = $this->config['developer_key']) { - $http = $authHandler->attachKey($http, $key); - } - return $http; - } - /** - * 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) - { - $this->config['use_application_default_credentials'] = $useAppCreds; - } - /** - * To prevent useApplicationDefaultCredentials from inappropriately being - * called in a conditional - * - * @see https://developers.google.com/identity/protocols/application-default-credentials - */ - public function isUsingApplicationDefaultCredentials() - { - return $this->config['use_application_default_credentials']; - } - /** - * 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.) - * - * @param string|array $token - * @throws InvalidArgumentException - */ - public function setAccessToken($token) - { - if (\is_string($token)) { - if ($json = \json_decode($token, \true)) { - $token = $json; - } else { - // assume $token is just the token string - $token = array('access_token' => $token); - } - } - if ($token == null) { - throw new \InvalidArgumentException('invalid json token'); - } - if (!isset($token['access_token'])) { - throw new \InvalidArgumentException("Invalid token format"); - } - $this->token = $token; - } - public function getAccessToken() - { - return $this->token; - } - /** - * @return string|null - */ - public function getRefreshToken() - { - if (isset($this->token['refresh_token'])) { - return $this->token['refresh_token']; - } - return null; - } - /** - * Returns if the access_token is expired. - * @return bool Returns True if the access_token is expired. - */ - public function isAccessTokenExpired() - { - if (!$this->token) { - return \true; - } - $created = 0; - if (isset($this->token['created'])) { - $created = $this->token['created']; - } elseif (isset($this->token['id_token'])) { - // check the ID token for "iat" - // signature verification is not required here, as we are just - // using this for convenience to save a round trip request - // to the Google API server - $idToken = $this->token['id_token']; - if (\substr_count($idToken, '.') == 2) { - $parts = \explode('.', $idToken); - $payload = \json_decode(\base64_decode($parts[1]), \true); - if ($payload && isset($payload['iat'])) { - $created = $payload['iat']; - } - } - } - // If the token is set to expire in the next 30 seconds. - return $created + ($this->token['expires_in'] - 30) < \time(); - } - /** - * @deprecated See UPGRADING.md for more information - */ - public function getAuth() - { - throw new \BadMethodCallException('This function no longer exists. See UPGRADING.md for more information'); - } - /** - * @deprecated See UPGRADING.md for more information - */ - public function setAuth($auth) - { - throw new \BadMethodCallException('This function no longer exists. See UPGRADING.md for more information'); - } - /** - * Set the OAuth 2.0 Client ID. - * @param string $clientId - */ - public function setClientId($clientId) - { - $this->config['client_id'] = $clientId; - } - public function getClientId() - { - return $this->config['client_id']; - } - /** - * Set the OAuth 2.0 Client Secret. - * @param string $clientSecret - */ - public function setClientSecret($clientSecret) - { - $this->config['client_secret'] = $clientSecret; - } - public function getClientSecret() - { - return $this->config['client_secret']; - } - /** - * Set the OAuth 2.0 Redirect URI. - * @param string $redirectUri - */ - public function setRedirectUri($redirectUri) - { - $this->config['redirect_uri'] = $redirectUri; - } - public function getRedirectUri() - { - return $this->config['redirect_uri']; - } - /** - * 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) - { - $this->config['state'] = $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) - { - $this->config['access_type'] = $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) - { - $this->config['approval_prompt'] = $approvalPrompt; - } - /** - * Set the login hint, email address or sub id. - * @param string $loginHint - */ - public function setLoginHint($loginHint) - { - $this->config['login_hint'] = $loginHint; - } - /** - * Set the application name, this is included in the User-Agent HTTP header. - * @param string $applicationName - */ - public function setApplicationName($applicationName) - { - $this->config['application_name'] = $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) - { - if (\is_array($requestVisibleActions)) { - $requestVisibleActions = \implode(" ", $requestVisibleActions); - } - $this->config['request_visible_actions'] = $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) - { - $this->config['developer_key'] = $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 $hd string - the domain to use. - */ - public function setHostedDomain($hd) - { - $this->config['hd'] = $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 $prompt string - * {@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) - { - $this->config['prompt'] = $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 $realm string - the URL-space to use. - */ - public function setOpenidRealm($realm) - { - $this->config['openid.realm'] = $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 $include boolean - the URL-space to use. - */ - public function setIncludeGrantedScopes($include) - { - $this->config['include_granted_scopes'] = $include; - } - /** - * sets function to be called when an access token is fetched - * @param callable $tokenCallback - function ($cacheKey, $accessToken) - */ - public function setTokenCallback(callable $tokenCallback) - { - $this->config['token_callback'] = $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) - { - $tokenRevoker = new \WPMailSMTP\Vendor\Google_AccessToken_Revoke($this->getHttpClient()); - return $tokenRevoker->revokeToken($token ?: $this->getAccessToken()); - } - /** - * 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) - { - $tokenVerifier = new \WPMailSMTP\Vendor\Google_AccessToken_Verify($this->getHttpClient(), $this->getCache(), $this->config['jwt']); - if (null === $idToken) { - $token = $this->getAccessToken(); - if (!isset($token['id_token'])) { - throw new \LogicException('id_token must be passed in or set as part of setAccessToken'); - } - $idToken = $token['id_token']; - } - return $tokenVerifier->verifyIdToken($idToken, $this->getClientId()); - } - /** - * 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->requestedScopes = array(); - $this->addScope($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 $scope_or_scopes string|array e.g. "profile" - */ - public function addScope($scope_or_scopes) - { - if (\is_string($scope_or_scopes) && !\in_array($scope_or_scopes, $this->requestedScopes)) { - $this->requestedScopes[] = $scope_or_scopes; - } else { - if (\is_array($scope_or_scopes)) { - foreach ($scope_or_scopes as $scope) { - $this->addScope($scope); - } - } - } - } - /** - * Returns the list of scopes requested by the client - * @return array the list of scopes - * - */ - public function getScopes() - { - return $this->requestedScopes; - } - /** - * @return string|null - * @visible For Testing - */ - public function prepareScopes() - { - if (empty($this->requestedScopes)) { - return null; - } - return \implode(' ', $this->requestedScopes); - } - /** - * Helper method to execute deferred HTTP requests. - * - * @param $request Psr\Http\Message\RequestInterface|Google_Http_Batch - * @param string $expectedClass - * @throws Google_Exception - * @return object of the type of the expected class or Psr\Http\Message\ResponseInterface. - */ - public function execute(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, $expectedClass = null) - { - $request = $request->withHeader('User-Agent', \sprintf('%s %s%s', $this->config['application_name'], self::USER_AGENT_SUFFIX, $this->getLibraryVersion()))->withHeader('x-goog-api-client', \sprintf('gl-php/%s gdcl/%s', \phpversion(), $this->getLibraryVersion())); - if ($this->config['api_format_v2']) { - $request = $request->withHeader('X-GOOG-API-FORMAT-VERSION', 2); - } - // call the authorize method - // this is where most of the grunt work is done - $http = $this->authorize(); - return \WPMailSMTP\Vendor\Google_Http_REST::execute($http, $request, $expectedClass, $this->config['retry'], $this->config['retry_map']); - } - /** - * 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) - { - // This is actually an alias for setDefer. - $this->setDefer($useBatch); - } - /** - * Are we running in Google AppEngine? - * return bool - */ - public function isAppEngine() - { - return isset($_SERVER['SERVER_SOFTWARE']) && \strpos($_SERVER['SERVER_SOFTWARE'], 'Google App Engine') !== \false; - } - public function setConfig($name, $value) - { - $this->config[$name] = $value; - } - public function getConfig($name, $default = null) - { - return isset($this->config[$name]) ? $this->config[$name] : $default; - } - /** - * For backwards compatibility - * alias for setAuthConfig - * - * @param string $file the configuration file - * @throws Google_Exception - * @deprecated - */ - public function setAuthConfigFile($file) - { - $this->setAuthConfig($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) - { - if (\is_string($config)) { - if (!\file_exists($config)) { - throw new \InvalidArgumentException(\sprintf('file "%s" does not exist', $config)); - } - $json = \file_get_contents($config); - if (!($config = \json_decode($json, \true))) { - throw new \LogicException('invalid json for auth config'); - } - } - $key = isset($config['installed']) ? 'installed' : 'web'; - if (isset($config['type']) && $config['type'] == 'service_account') { - // application default credentials - $this->useApplicationDefaultCredentials(); - // set the information from the config - $this->setClientId($config['client_id']); - $this->config['client_email'] = $config['client_email']; - $this->config['signing_key'] = $config['private_key']; - $this->config['signing_algorithm'] = 'HS256'; - } elseif (isset($config[$key])) { - // old-style - $this->setClientId($config[$key]['client_id']); - $this->setClientSecret($config[$key]['client_secret']); - if (isset($config[$key]['redirect_uris'])) { - $this->setRedirectUri($config[$key]['redirect_uris'][0]); - } - } else { - // new-style - $this->setClientId($config['client_id']); - $this->setClientSecret($config['client_secret']); - if (isset($config['redirect_uris'])) { - $this->setRedirectUri($config['redirect_uris'][0]); - } - } - } - /** - * Use when the service account has been delegated domain wide access. - * - * @param string $subject an email address account to impersonate - */ - public function setSubject($subject) - { - $this->config['subject'] = $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) - { - $this->deferExecution = $defer; - } - /** - * Whether or not to return raw requests - * @return boolean - */ - public function shouldDefer() - { - return $this->deferExecution; - } - /** - * @return Google\Auth\OAuth2 implementation - */ - public function getOAuth2Service() - { - if (!isset($this->auth)) { - $this->auth = $this->createOAuth2Service(); - } - return $this->auth; - } - /** - * create a default google auth object - */ - protected function createOAuth2Service() - { - $auth = new \WPMailSMTP\Vendor\Google\Auth\OAuth2(['clientId' => $this->getClientId(), 'clientSecret' => $this->getClientSecret(), 'authorizationUri' => self::OAUTH2_AUTH_URL, 'tokenCredentialUri' => self::OAUTH2_TOKEN_URI, 'redirectUri' => $this->getRedirectUri(), 'issuer' => $this->config['client_id'], 'signingKey' => $this->config['signing_key'], 'signingAlgorithm' => $this->config['signing_algorithm']]); - return $auth; - } - /** - * Set the Cache object - * @param Psr\Cache\CacheItemPoolInterface $cache - */ - public function setCache(\WPMailSMTP\Vendor\Psr\Cache\CacheItemPoolInterface $cache) - { - $this->cache = $cache; - } - /** - * @return Psr\Cache\CacheItemPoolInterface Cache implementation - */ - public function getCache() - { - if (!$this->cache) { - $this->cache = $this->createDefaultCache(); - } - return $this->cache; - } - /** - * @param array $cacheConfig - */ - public function setCacheConfig(array $cacheConfig) - { - $this->config['cache_config'] = $cacheConfig; - } - /** - * Set the Logger object - * @param Psr\Log\LoggerInterface $logger - */ - public function setLogger(\WPMailSMTP\Vendor\Psr\Log\LoggerInterface $logger) - { - $this->logger = $logger; - } - /** - * @return Psr\Log\LoggerInterface implementation - */ - public function getLogger() - { - if (!isset($this->logger)) { - $this->logger = $this->createDefaultLogger(); - } - return $this->logger; - } - protected function createDefaultLogger() - { - $logger = new \WPMailSMTP\Vendor\Monolog\Logger('google-api-php-client'); - if ($this->isAppEngine()) { - $handler = new \WPMailSMTP\Vendor\Monolog\Handler\SyslogHandler('app', \LOG_USER, \WPMailSMTP\Vendor\Monolog\Logger::NOTICE); - } else { - $handler = new \WPMailSMTP\Vendor\Monolog\Handler\StreamHandler('php://stderr', \WPMailSMTP\Vendor\Monolog\Logger::NOTICE); - } - $logger->pushHandler($handler); - return $logger; - } - protected function createDefaultCache() - { - return new \WPMailSMTP\Vendor\Google\Auth\Cache\MemoryCacheItemPool(); - } - /** - * Set the Http Client object - * @param GuzzleHttp\ClientInterface $http - */ - public function setHttpClient(\WPMailSMTP\Vendor\GuzzleHttp\ClientInterface $http) - { - $this->http = $http; - } - /** - * @return GuzzleHttp\ClientInterface implementation - */ - public function getHttpClient() - { - if (null === $this->http) { - $this->http = $this->createDefaultHttpClient(); - } - return $this->http; - } - /** - * Set the API format version. - * - * `true` will use V2, which may return more useful error messages. - * - * @param bool $value - */ - public function setApiFormatV2($value) - { - $this->config['api_format_v2'] = (bool) $value; - } - protected function createDefaultHttpClient() - { - $guzzleVersion = null; - if (\defined('\\WPMailSMTP\\Vendor\\GuzzleHttp\\ClientInterface::MAJOR_VERSION')) { - $guzzleVersion = \WPMailSMTP\Vendor\GuzzleHttp\ClientInterface::MAJOR_VERSION; - } elseif (\defined('\\WPMailSMTP\\Vendor\\GuzzleHttp\\ClientInterface::VERSION')) { - $guzzleVersion = (int) \substr(\WPMailSMTP\Vendor\GuzzleHttp\ClientInterface::VERSION, 0, 1); - } - $options = ['exceptions' => \false]; - if (5 === $guzzleVersion) { - $options = ['base_url' => $this->config['base_path'], 'defaults' => $options]; - if ($this->isAppEngine()) { - // set StreamHandler on AppEngine by default - $options['handler'] = new \WPMailSMTP\Vendor\GuzzleHttp\Ring\Client\StreamHandler(); - $options['defaults']['verify'] = '/etc/ca-certificates.crt'; - } - } elseif (6 === $guzzleVersion || 7 === $guzzleVersion) { - // guzzle 6 or 7 - $options['base_uri'] = $this->config['base_path']; - } else { - throw new \LogicException('Could not find supported version of Guzzle.'); - } - return new \WPMailSMTP\Vendor\GuzzleHttp\Client($options); - } - private function createApplicationDefaultCredentials() - { - $scopes = $this->prepareScopes(); - $sub = $this->config['subject']; - $signingKey = $this->config['signing_key']; - // create credentials using values supplied in setAuthConfig - if ($signingKey) { - $serviceAccountCredentials = array('client_id' => $this->config['client_id'], 'client_email' => $this->config['client_email'], 'private_key' => $signingKey, 'type' => 'service_account', 'quota_project' => $this->config['quota_project']); - $credentials = \WPMailSMTP\Vendor\Google\Auth\CredentialsLoader::makeCredentials($scopes, $serviceAccountCredentials); - } else { - $credentials = \WPMailSMTP\Vendor\Google\Auth\ApplicationDefaultCredentials::getCredentials($scopes, null, null, null, $this->config['quota_project']); - } - // for service account domain-wide authority (impersonating a user) - // @see https://developers.google.com/identity/protocols/OAuth2ServiceAccount - if ($sub) { - if (!$credentials instanceof \WPMailSMTP\Vendor\Google\Auth\Credentials\ServiceAccountCredentials) { - throw new \DomainException('domain-wide authority requires service account credentials'); - } - $credentials->setSub($sub); - } - return $credentials; - } - protected function getAuthHandler() - { - // Be very careful using the cache, as the underlying auth library's cache - // implementation is naive, and the cache keys do not account for user - // sessions. - // - // @see https://github.com/google/google-api-php-client/issues/821 - return \WPMailSMTP\Vendor\Google_AuthHandler_AuthHandlerFactory::build($this->getCache(), $this->config['cache_config']); - } - private function createUserRefreshCredentials($scope, $refreshToken) - { - $creds = \array_filter(array('client_id' => $this->getClientId(), 'client_secret' => $this->getClientSecret(), 'refresh_token' => $refreshToken)); - return new \WPMailSMTP\Vendor\Google\Auth\Credentials\UserRefreshCredentials($scope, $creds); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Collection.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Collection.php deleted file mode 100644 index 75c3360..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Collection.php +++ /dev/null @@ -1,87 +0,0 @@ -{$this->collection_key}) && \is_array($this->{$this->collection_key})) { - \reset($this->{$this->collection_key}); - } - } - public function current() - { - $this->coerceType($this->key()); - if (\is_array($this->{$this->collection_key})) { - return \current($this->{$this->collection_key}); - } - } - public function key() - { - if (isset($this->{$this->collection_key}) && \is_array($this->{$this->collection_key})) { - return \key($this->{$this->collection_key}); - } - } - public function next() - { - return \next($this->{$this->collection_key}); - } - public function valid() - { - $key = $this->key(); - return $key !== null && $key !== \false; - } - public function count() - { - if (!isset($this->{$this->collection_key})) { - return 0; - } - return \count($this->{$this->collection_key}); - } - public function offsetExists($offset) - { - if (!\is_numeric($offset)) { - return parent::offsetExists($offset); - } - return isset($this->{$this->collection_key}[$offset]); - } - public function offsetGet($offset) - { - if (!\is_numeric($offset)) { - return parent::offsetGet($offset); - } - $this->coerceType($offset); - return $this->{$this->collection_key}[$offset]; - } - public function offsetSet($offset, $value) - { - if (!\is_numeric($offset)) { - return parent::offsetSet($offset, $value); - } - $this->{$this->collection_key}[$offset] = $value; - } - public function offsetUnset($offset) - { - if (!\is_numeric($offset)) { - return parent::offsetUnset($offset); - } - unset($this->{$this->collection_key}[$offset]); - } - private function coerceType($offset) - { - $keyType = $this->keyType($this->collection_key); - if ($keyType && !\is_object($this->{$this->collection_key}[$offset])) { - $this->{$this->collection_key}[$offset] = new $keyType($this->{$this->collection_key}[$offset]); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Exception.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Exception.php deleted file mode 100644 index 89b3098..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Exception.php +++ /dev/null @@ -1,22 +0,0 @@ -client = $client; - $this->boundary = $boundary ?: \mt_rand(); - $this->rootUrl = \rtrim($rootUrl ?: $this->client->getConfig('base_path'), '/'); - $this->batchPath = $batchPath ?: self::BATCH_PATH; - } - public function add(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, $key = \false) - { - if (\false == $key) { - $key = \mt_rand(); - } - $this->requests[$key] = $request; - } - public function execute() - { - $body = ''; - $classes = array(); - $batchHttpTemplate = <<requests as $key => $request) { - $firstLine = \sprintf('%s %s HTTP/%s', $request->getMethod(), $request->getRequestTarget(), $request->getProtocolVersion()); - $content = (string) $request->getBody(); - $headers = ''; - foreach ($request->getHeaders() as $name => $values) { - $headers .= \sprintf("%s:%s\r\n", $name, \implode(', ', $values)); - } - $body .= \sprintf($batchHttpTemplate, $this->boundary, $key, $firstLine, $headers, $content ? "\n" . $content : ''); - $classes['response-' . $key] = $request->getHeaderLine('X-Php-Expected-Class'); - } - $body .= "--{$this->boundary}--"; - $body = \trim($body); - $url = $this->rootUrl . '/' . $this->batchPath; - $headers = array('Content-Type' => \sprintf('multipart/mixed; boundary=%s', $this->boundary), 'Content-Length' => \strlen($body)); - $request = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $url, $headers, $body); - $response = $this->client->execute($request); - return $this->parseResponse($response, $classes); - } - public function parseResponse(\WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response, $classes = array()) - { - $contentType = $response->getHeaderLine('content-type'); - $contentType = \explode(';', $contentType); - $boundary = \false; - foreach ($contentType as $part) { - $part = \explode('=', $part, 2); - if (isset($part[0]) && 'boundary' == \trim($part[0])) { - $boundary = $part[1]; - } - } - $body = (string) $response->getBody(); - if (!empty($body)) { - $body = \str_replace("--{$boundary}--", "--{$boundary}", $body); - $parts = \explode("--{$boundary}", $body); - $responses = array(); - $requests = \array_values($this->requests); - foreach ($parts as $i => $part) { - $part = \trim($part); - if (!empty($part)) { - list($rawHeaders, $part) = \explode("\r\n\r\n", $part, 2); - $headers = $this->parseRawHeaders($rawHeaders); - $status = \substr($part, 0, \strpos($part, "\n")); - $status = \explode(" ", $status); - $status = $status[1]; - list($partHeaders, $partBody) = $this->parseHttpResponse($part, \false); - $response = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Response($status, $partHeaders, \WPMailSMTP\Vendor\GuzzleHttp\Psr7\stream_for($partBody)); - // Need content id. - $key = $headers['content-id']; - try { - $response = \WPMailSMTP\Vendor\Google_Http_REST::decodeHttpResponse($response, $requests[$i - 1]); - } catch (\WPMailSMTP\Vendor\Google_Service_Exception $e) { - // Store the exception as the response, so successful responses - // can be processed. - $response = $e; - } - $responses[$key] = $response; - } - } - return $responses; - } - return null; - } - private function parseRawHeaders($rawHeaders) - { - $headers = array(); - $responseHeaderLines = \explode("\r\n", $rawHeaders); - foreach ($responseHeaderLines as $headerLine) { - if ($headerLine && \strpos($headerLine, ':') !== \false) { - list($header, $value) = \explode(': ', $headerLine, 2); - $header = \strtolower($header); - if (isset($headers[$header])) { - $headers[$header] .= "\n" . $value; - } else { - $headers[$header] = $value; - } - } - } - return $headers; - } - /** - * Used by the IO lib and also the batch processing. - * - * @param $respData - * @param $headerSize - * @return array - */ - private function parseHttpResponse($respData, $headerSize) - { - // check proxy header - foreach (self::$CONNECTION_ESTABLISHED_HEADERS as $established_header) { - if (\stripos($respData, $established_header) !== \false) { - // existed, remove it - $respData = \str_ireplace($established_header, '', $respData); - // Subtract the proxy header size unless the cURL bug prior to 7.30.0 - // is present which prevented the proxy header size from being taken into - // account. - // @TODO look into this - // if (!$this->needsQuirk()) { - // $headerSize -= strlen($established_header); - // } - break; - } - } - if ($headerSize) { - $responseBody = \substr($respData, $headerSize); - $responseHeaders = \substr($respData, 0, $headerSize); - } else { - $responseSegments = \explode("\r\n\r\n", $respData, 2); - $responseHeaders = $responseSegments[0]; - $responseBody = isset($responseSegments[1]) ? $responseSegments[1] : null; - } - $responseHeaders = $this->parseRawHeaders($responseHeaders); - return array($responseHeaders, $responseBody); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Http/MediaFileUpload.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Http/MediaFileUpload.php deleted file mode 100644 index 42da15a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Http/MediaFileUpload.php +++ /dev/null @@ -1,277 +0,0 @@ -client = $client; - $this->request = $request; - $this->mimeType = $mimeType; - $this->data = $data; - $this->resumable = $resumable; - $this->chunkSize = $chunkSize; - $this->progress = 0; - $this->process(); - } - /** - * Set the size of the file that is being uploaded. - * @param $size - int file size in bytes - */ - public function setFileSize($size) - { - $this->size = $size; - } - /** - * Return the progress on the upload - * @return int progress in bytes uploaded. - */ - public function getProgress() - { - return $this->progress; - } - /** - * 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) - { - $resumeUri = $this->getResumeUri(); - if (\false == $chunk) { - $chunk = \substr($this->data, $this->progress, $this->chunkSize); - } - $lastBytePos = $this->progress + \strlen($chunk) - 1; - $headers = array('content-range' => "bytes {$this->progress}-{$lastBytePos}/{$this->size}", 'content-length' => \strlen($chunk), 'expect' => ''); - $request = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $resumeUri, $headers, \WPMailSMTP\Vendor\GuzzleHttp\Psr7\stream_for($chunk)); - return $this->makePutRequest($request); - } - /** - * Return the HTTP result code from the last call made. - * @return int code - */ - public function getHttpResultCode() - { - return $this->httpResultCode; - } - /** - * Sends a PUT-Request to google drive and parses the response, - * setting the appropiate variables from the response() - * - * @param Google_Http_Request $httpRequest the Reuqest which will be send - * - * @return false|mixed false when the upload is unfinished or the decoded http response - * - */ - private function makePutRequest(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request) - { - $response = $this->client->execute($request); - $this->httpResultCode = $response->getStatusCode(); - if (308 == $this->httpResultCode) { - // Track the amount uploaded. - $range = $response->getHeaderLine('range'); - if ($range) { - $range_array = \explode('-', $range); - $this->progress = $range_array[1] + 1; - } - // Allow for changing upload URLs. - $location = $response->getHeaderLine('location'); - if ($location) { - $this->resumeUri = $location; - } - // No problems, but upload not complete. - return \false; - } - return \WPMailSMTP\Vendor\Google_Http_REST::decodeHttpResponse($response, $this->request); - } - /** - * Resume a previously unfinished upload - * @param $resumeUri the resume-URI of the unfinished, resumable upload. - */ - public function resume($resumeUri) - { - $this->resumeUri = $resumeUri; - $headers = array('content-range' => "bytes */{$this->size}", 'content-length' => 0); - $httpRequest = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->resumeUri, $headers); - return $this->makePutRequest($httpRequest); - } - /** - * @return Psr\Http\Message\RequestInterface $request - * @visible for testing - */ - private function process() - { - $this->transformToUploadUrl(); - $request = $this->request; - $postBody = ''; - $contentType = \false; - $meta = (string) $request->getBody(); - $meta = \is_string($meta) ? \json_decode($meta, \true) : $meta; - $uploadType = $this->getUploadType($meta); - $request = $request->withUri(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\Uri::withQueryValue($request->getUri(), 'uploadType', $uploadType)); - $mimeType = $this->mimeType ?: $request->getHeaderLine('content-type'); - if (self::UPLOAD_RESUMABLE_TYPE == $uploadType) { - $contentType = $mimeType; - $postBody = \is_string($meta) ? $meta : \json_encode($meta); - } else { - if (self::UPLOAD_MEDIA_TYPE == $uploadType) { - $contentType = $mimeType; - $postBody = $this->data; - } else { - if (self::UPLOAD_MULTIPART_TYPE == $uploadType) { - // This is a multipart/related upload. - $boundary = $this->boundary ?: \mt_rand(); - $boundary = \str_replace('"', '', $boundary); - $contentType = 'multipart/related; boundary=' . $boundary; - $related = "--{$boundary}\r\n"; - $related .= "Content-Type: application/json; charset=UTF-8\r\n"; - $related .= "\r\n" . \json_encode($meta) . "\r\n"; - $related .= "--{$boundary}\r\n"; - $related .= "Content-Type: {$mimeType}\r\n"; - $related .= "Content-Transfer-Encoding: base64\r\n"; - $related .= "\r\n" . \base64_encode($this->data) . "\r\n"; - $related .= "--{$boundary}--"; - $postBody = $related; - } - } - } - $request = $request->withBody(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\stream_for($postBody)); - if (isset($contentType) && $contentType) { - $request = $request->withHeader('content-type', $contentType); - } - return $this->request = $request; - } - /** - * Valid upload types: - * - resumable (UPLOAD_RESUMABLE_TYPE) - * - media (UPLOAD_MEDIA_TYPE) - * - multipart (UPLOAD_MULTIPART_TYPE) - * @param $meta - * @return string - * @visible for testing - */ - public function getUploadType($meta) - { - if ($this->resumable) { - return self::UPLOAD_RESUMABLE_TYPE; - } - if (\false == $meta && $this->data) { - return self::UPLOAD_MEDIA_TYPE; - } - return self::UPLOAD_MULTIPART_TYPE; - } - public function getResumeUri() - { - if (null === $this->resumeUri) { - $this->resumeUri = $this->fetchResumeUri(); - } - return $this->resumeUri; - } - private function fetchResumeUri() - { - $body = $this->request->getBody(); - if ($body) { - $headers = array('content-type' => 'application/json; charset=UTF-8', 'content-length' => $body->getSize(), 'x-upload-content-type' => $this->mimeType, 'x-upload-content-length' => $this->size, 'expect' => ''); - foreach ($headers as $key => $value) { - $this->request = $this->request->withHeader($key, $value); - } - } - $response = $this->client->execute($this->request, \false); - $location = $response->getHeaderLine('location'); - $code = $response->getStatusCode(); - if (200 == $code && \true == $location) { - return $location; - } - $message = $code; - $body = \json_decode((string) $this->request->getBody(), \true); - if (isset($body['error']['errors'])) { - $message .= ': '; - foreach ($body['error']['errors'] as $error) { - $message .= "{$error['domain']}, {$error['message']};"; - } - $message = \rtrim($message, ';'); - } - $error = "Failed to start the resumable upload (HTTP {$message})"; - $this->client->getLogger()->error($error); - throw new \WPMailSMTP\Vendor\Google_Exception($error); - } - private function transformToUploadUrl() - { - $parts = \parse_url((string) $this->request->getUri()); - if (!isset($parts['path'])) { - $parts['path'] = ''; - } - $parts['path'] = '/upload' . $parts['path']; - $uri = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Uri::fromParts($parts); - $this->request = $this->request->withUri($uri); - } - public function setChunkSize($chunkSize) - { - $this->chunkSize = $chunkSize; - } - public function getRequest() - { - return $this->request; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Http/REST.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Http/REST.php deleted file mode 100644 index 515604f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Http/REST.php +++ /dev/null @@ -1,148 +0,0 @@ -getMethod(), (string) $request->getUri()), array(\get_class(), 'doExecute'), array($client, $request, $expectedClass)); - if (null !== $retryMap) { - $runner->setRetryMap($retryMap); - } - return $runner->run(); - } - /** - * Executes a Psr\Http\Message\RequestInterface - * - * @param Google_Client $client - * @param Psr\Http\Message\RequestInterface $request - * @param string $expectedClass - * @return array decoded result - * @throws Google_Service_Exception on server side error (ie: not authenticated, - * invalid or malformed post body, invalid url) - */ - public static function doExecute(\WPMailSMTP\Vendor\GuzzleHttp\ClientInterface $client, \WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, $expectedClass = null) - { - try { - $httpHandler = \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build($client); - $response = $httpHandler($request); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - // if Guzzle throws an exception, catch it and handle the response - if (!$e->hasResponse()) { - throw $e; - } - $response = $e->getResponse(); - // specific checking for Guzzle 5: convert to PSR7 response - if ($response instanceof \WPMailSMTP\Vendor\GuzzleHttp\Message\ResponseInterface) { - $response = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Response($response->getStatusCode(), $response->getHeaders() ?: [], $response->getBody(), $response->getProtocolVersion(), $response->getReasonPhrase()); - } - } - return self::decodeHttpResponse($response, $request, $expectedClass); - } - /** - * Decode an HTTP Response. - * @static - * @throws Google_Service_Exception - * @param Psr\Http\Message\RequestInterface $response The http response to be decoded. - * @param Psr\Http\Message\ResponseInterface $response - * @param string $expectedClass - * @return mixed|null - */ - public static function decodeHttpResponse(\WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response, \WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request = null, $expectedClass = null) - { - $code = $response->getStatusCode(); - // retry strategy - if (\intVal($code) >= 400) { - // if we errored out, it should be safe to grab the response body - $body = (string) $response->getBody(); - // Check if we received errors, and add those to the Exception for convenience - throw new \WPMailSMTP\Vendor\Google_Service_Exception($body, $code, null, self::getResponseErrors($body)); - } - // Ensure we only pull the entire body into memory if the request is not - // of media type - $body = self::decodeBody($response, $request); - if ($expectedClass = self::determineExpectedClass($expectedClass, $request)) { - $json = \json_decode($body, \true); - $expectedClass = 'WPMailSMTP\\Vendor\\' . $expectedClass; - return new $expectedClass($json); - } - return $response; - } - private static function decodeBody(\WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response, \WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request = null) - { - if (self::isAltMedia($request)) { - // don't decode the body, it's probably a really long string - return ''; - } - return (string) $response->getBody(); - } - private static function determineExpectedClass($expectedClass, \WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request = null) - { - // "false" is used to explicitly prevent an expected class from being returned - if (\false === $expectedClass) { - return null; - } - // if we don't have a request, we just use what's passed in - if (null === $request) { - return $expectedClass; - } - // return what we have in the request header if one was not supplied - return $expectedClass ?: $request->getHeaderLine('X-Php-Expected-Class'); - } - private static function getResponseErrors($body) - { - $json = \json_decode($body, \true); - if (isset($json['error']['errors'])) { - return $json['error']['errors']; - } - return null; - } - private static function isAltMedia(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request = null) - { - if ($request && ($qs = $request->getUri()->getQuery())) { - \parse_str($qs, $query); - if (isset($query['alt']) && $query['alt'] == 'media') { - return \true; - } - } - return \false; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Model.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Model.php deleted file mode 100644 index d4e4763..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Model.php +++ /dev/null @@ -1,292 +0,0 @@ -mapTypes($array); - } - $this->gapiInit(); - } - /** - * 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) - { - $keyType = $this->keyType($key); - $keyDataType = $this->dataType($key); - if ($keyType && !isset($this->processed[$key])) { - if (isset($this->modelData[$key])) { - $val = $this->modelData[$key]; - } elseif ($keyDataType == 'array' || $keyDataType == 'map') { - $val = array(); - } else { - $val = null; - } - if ($this->isAssociativeArray($val)) { - if ($keyDataType && 'map' == $keyDataType) { - foreach ($val as $arrayKey => $arrayItem) { - $this->modelData[$key][$arrayKey] = new $keyType($arrayItem); - } - } else { - $this->modelData[$key] = new $keyType($val); - } - } else { - if (\is_array($val)) { - $arrayObject = array(); - foreach ($val as $arrayIndex => $arrayItem) { - $arrayObject[$arrayIndex] = new $keyType($arrayItem); - } - $this->modelData[$key] = $arrayObject; - } - } - $this->processed[$key] = \true; - } - return isset($this->modelData[$key]) ? $this->modelData[$key] : null; - } - /** - * Initialize this object's properties from an array. - * - * @param array $array Used to seed this object's properties. - * @return void - */ - protected function mapTypes($array) - { - // Hard initialise simple types, lazy load more complex ones. - foreach ($array as $key => $val) { - if ($keyType = $this->keyType($key)) { - $dataType = $this->dataType($key); - if ($dataType == 'array' || $dataType == 'map') { - $this->{$key} = array(); - foreach ($val as $itemKey => $itemVal) { - if ($itemVal instanceof $keyType) { - $this->{$key}[$itemKey] = $itemVal; - } else { - $this->{$key}[$itemKey] = new $keyType($itemVal); - } - } - } elseif ($val instanceof $keyType) { - $this->{$key} = $val; - } else { - $this->{$key} = new $keyType($val); - } - unset($array[$key]); - } elseif (\property_exists($this, $key)) { - $this->{$key} = $val; - unset($array[$key]); - } elseif (\property_exists($this, $camelKey = $this->camelCase($key))) { - // This checks if property exists as camelCase, leaving it in array as snake_case - // in case of backwards compatibility issues. - $this->{$camelKey} = $val; - } - } - $this->modelData = $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() - { - return; - } - /** - * 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() - { - $object = new \stdClass(); - // Process all other data. - foreach ($this->modelData as $key => $val) { - $result = $this->getSimpleValue($val); - if ($result !== null) { - $object->{$key} = $this->nullPlaceholderCheck($result); - } - } - // Process all public properties. - $reflect = new \ReflectionObject($this); - $props = $reflect->getProperties(\ReflectionProperty::IS_PUBLIC); - foreach ($props as $member) { - $name = $member->getName(); - $result = $this->getSimpleValue($this->{$name}); - if ($result !== null) { - $name = $this->getMappedName($name); - $object->{$name} = $this->nullPlaceholderCheck($result); - } - } - return $object; - } - /** - * Handle different types of values, primarily - * other objects and map and array data types. - */ - private function getSimpleValue($value) - { - if ($value instanceof \WPMailSMTP\Vendor\Google_Model) { - return $value->toSimpleObject(); - } else { - if (\is_array($value)) { - $return = array(); - foreach ($value as $key => $a_value) { - $a_value = $this->getSimpleValue($a_value); - if ($a_value !== null) { - $key = $this->getMappedName($key); - $return[$key] = $this->nullPlaceholderCheck($a_value); - } - } - return $return; - } - } - return $value; - } - /** - * Check whether the value is the null placeholder and return true null. - */ - private function nullPlaceholderCheck($value) - { - if ($value === self::NULL_VALUE) { - return null; - } - return $value; - } - /** - * If there is an internal name mapping, use that. - */ - private function getMappedName($key) - { - if (isset($this->internal_gapi_mappings, $this->internal_gapi_mappings[$key])) { - $key = $this->internal_gapi_mappings[$key]; - } - return $key; - } - /** - * Returns true only if the array is associative. - * @param array $array - * @return bool True if the array is associative. - */ - protected function isAssociativeArray($array) - { - if (!\is_array($array)) { - return \false; - } - $keys = \array_keys($array); - foreach ($keys as $key) { - if (\is_string($key)) { - return \true; - } - } - return \false; - } - /** - * 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) - { - if ($obj && !\is_array($obj)) { - throw new \WPMailSMTP\Vendor\Google_Exception("Incorrect parameter type passed to {$method}(). Expected an array."); - } - } - public function offsetExists($offset) - { - return isset($this->{$offset}) || isset($this->modelData[$offset]); - } - public function offsetGet($offset) - { - return isset($this->{$offset}) ? $this->{$offset} : $this->__get($offset); - } - public function offsetSet($offset, $value) - { - if (\property_exists($this, $offset)) { - $this->{$offset} = $value; - } else { - $this->modelData[$offset] = $value; - $this->processed[$offset] = \true; - } - } - public function offsetUnset($offset) - { - unset($this->modelData[$offset]); - } - protected function keyType($key) - { - $keyType = $key . "Type"; - // ensure keyType is a valid class - if (\property_exists($this, $keyType) && \class_exists($this->{$keyType})) { - return $this->{$keyType}; - } - } - protected function dataType($key) - { - $dataType = $key . "DataType"; - if (\property_exists($this, $dataType)) { - return $this->{$dataType}; - } - } - public function __isset($key) - { - return isset($this->modelData[$key]); - } - public function __unset($key) - { - unset($this->modelData[$key]); - } - /** - * Convert a string to camelCase - * @param string $value - * @return string - */ - private function camelCase($value) - { - $value = \ucwords(\str_replace(array('-', '_'), ' ', $value)); - $value = \str_replace(' ', '', $value); - $value[0] = \strtolower($value[0]); - return $value; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Service.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Service.php deleted file mode 100644 index 0dcf111..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Service.php +++ /dev/null @@ -1,50 +0,0 @@ -client = $client; - } - /** - * Return the associated Google_Client class. - * @return Google_Client - */ - public function getClient() - { - return $this->client; - } - /** - * Create a new HTTP Batch handler for this service - * - * @return Google_Http_Batch - */ - public function createBatch() - { - return new \WPMailSMTP\Vendor\Google_Http_Batch($this->client, \false, $this->rootUrl, $this->batchPath); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Service/Exception.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Service/Exception.php deleted file mode 100644 index c43ce59..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Service/Exception.php +++ /dev/null @@ -1,62 +0,0 @@ -= 0) { - parent::__construct($message, $code, $previous); - } else { - parent::__construct($message, $code); - } - $this->errors = $errors; - } - /** - * An example of the possible errors returned. - * - * { - * "domain": "global", - * "reason": "authError", - * "message": "Invalid Credentials", - * "locationType": "header", - * "location": "Authorization", - * } - * - * @return [{string, string}] List of errors return in an HTTP response or []. - */ - public function getErrors() - { - return $this->errors; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Service/Resource.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Service/Resource.php deleted file mode 100644 index 1e6a10f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Service/Resource.php +++ /dev/null @@ -1,212 +0,0 @@ - array('type' => 'string', 'location' => 'query'), 'fields' => array('type' => 'string', 'location' => 'query'), 'trace' => array('type' => 'string', 'location' => 'query'), 'userIp' => array('type' => 'string', 'location' => 'query'), 'quotaUser' => array('type' => 'string', 'location' => 'query'), 'data' => array('type' => 'string', 'location' => 'body'), 'mimeType' => array('type' => 'string', 'location' => 'header'), 'uploadType' => array('type' => 'string', 'location' => 'query'), 'mediaUpload' => array('type' => 'complex', 'location' => 'query'), 'prettyPrint' => array('type' => 'string', 'location' => 'query')); - /** @var string $rootUrl */ - private $rootUrl; - /** @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) - { - $this->rootUrl = $service->rootUrl; - $this->client = $service->getClient(); - $this->servicePath = $service->servicePath; - $this->serviceName = $serviceName; - $this->resourceName = $resourceName; - $this->methods = \is_array($resource) && isset($resource['methods']) ? $resource['methods'] : array($resourceName => $resource); - } - /** - * TODO: This function needs simplifying. - * @param $name - * @param $arguments - * @param $expectedClass - optional, the expected class name - * @return Google_Http_Request|expectedClass - * @throws Google_Exception - */ - public function call($name, $arguments, $expectedClass = null) - { - if (!isset($this->methods[$name])) { - $this->client->getLogger()->error('Service method unknown', array('service' => $this->serviceName, 'resource' => $this->resourceName, 'method' => $name)); - throw new \WPMailSMTP\Vendor\Google_Exception("Unknown function: " . "{$this->serviceName}->{$this->resourceName}->{$name}()"); - } - $method = $this->methods[$name]; - $parameters = $arguments[0]; - // postBody is a special case since it's not defined in the discovery - // document as parameter, but we abuse the param entry for storing it. - $postBody = null; - if (isset($parameters['postBody'])) { - if ($parameters['postBody'] instanceof \WPMailSMTP\Vendor\Google_Model) { - // In the cases the post body is an existing object, we want - // to use the smart method to create a simple object for - // for JSONification. - $parameters['postBody'] = $parameters['postBody']->toSimpleObject(); - } else { - if (\is_object($parameters['postBody'])) { - // If the post body is another kind of object, we will try and - // wrangle it into a sensible format. - $parameters['postBody'] = $this->convertToArrayAndStripNulls($parameters['postBody']); - } - } - $postBody = (array) $parameters['postBody']; - unset($parameters['postBody']); - } - // TODO: optParams here probably should have been - // handled already - this may well be redundant code. - if (isset($parameters['optParams'])) { - $optParams = $parameters['optParams']; - unset($parameters['optParams']); - $parameters = \array_merge($parameters, $optParams); - } - if (!isset($method['parameters'])) { - $method['parameters'] = array(); - } - $method['parameters'] = \array_merge($this->stackParameters, $method['parameters']); - foreach ($parameters as $key => $val) { - if ($key != 'postBody' && !isset($method['parameters'][$key])) { - $this->client->getLogger()->error('Service parameter unknown', array('service' => $this->serviceName, 'resource' => $this->resourceName, 'method' => $name, 'parameter' => $key)); - throw new \WPMailSMTP\Vendor\Google_Exception("({$name}) unknown parameter: '{$key}'"); - } - } - foreach ($method['parameters'] as $paramName => $paramSpec) { - if (isset($paramSpec['required']) && $paramSpec['required'] && !isset($parameters[$paramName])) { - $this->client->getLogger()->error('Service parameter missing', array('service' => $this->serviceName, 'resource' => $this->resourceName, 'method' => $name, 'parameter' => $paramName)); - throw new \WPMailSMTP\Vendor\Google_Exception("({$name}) missing required param: '{$paramName}'"); - } - if (isset($parameters[$paramName])) { - $value = $parameters[$paramName]; - $parameters[$paramName] = $paramSpec; - $parameters[$paramName]['value'] = $value; - unset($parameters[$paramName]['required']); - } else { - // Ensure we don't pass nulls. - unset($parameters[$paramName]); - } - } - $this->client->getLogger()->info('Service Call', array('service' => $this->serviceName, 'resource' => $this->resourceName, 'method' => $name, 'arguments' => $parameters)); - // build the service uri - $url = $this->createRequestUri($method['path'], $parameters); - // NOTE: because we're creating the request by hand, - // and because the service has a rootUrl property - // the "base_uri" of the Http Client is not accounted for - $request = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request($method['httpMethod'], $url, ['content-type' => 'application/json'], $postBody ? \json_encode($postBody) : ''); - // support uploads - if (isset($parameters['data'])) { - $mimeType = isset($parameters['mimeType']) ? $parameters['mimeType']['value'] : 'application/octet-stream'; - $data = $parameters['data']['value']; - $upload = new \WPMailSMTP\Vendor\Google_Http_MediaFileUpload($this->client, $request, $mimeType, $data); - // pull down the modified request - $request = $upload->getRequest(); - } - // if this is a media type, we will return the raw response - // rather than using an expected class - if (isset($parameters['alt']) && $parameters['alt']['value'] == 'media') { - $expectedClass = null; - } - // if the client is marked for deferring, rather than - // execute the request, return the response - if ($this->client->shouldDefer()) { - // @TODO find a better way to do this - $request = $request->withHeader('X-Php-Expected-Class', $expectedClass); - return $request; - } - return $this->client->execute($request, $expectedClass); - } - protected function convertToArrayAndStripNulls($o) - { - $o = (array) $o; - foreach ($o as $k => $v) { - if ($v === null) { - unset($o[$k]); - } elseif (\is_object($v) || \is_array($v)) { - $o[$k] = $this->convertToArrayAndStripNulls($o[$k]); - } - } - return $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) - { - // Override the default servicePath address if the $restPath use a / - if ('/' == \substr($restPath, 0, 1)) { - $requestUrl = \substr($restPath, 1); - } else { - $requestUrl = $this->servicePath . $restPath; - } - // code for leading slash - if ($this->rootUrl) { - if ('/' !== \substr($this->rootUrl, -1) && '/' !== \substr($requestUrl, 0, 1)) { - $requestUrl = '/' . $requestUrl; - } - $requestUrl = $this->rootUrl . $requestUrl; - } - $uriTemplateVars = array(); - $queryVars = array(); - foreach ($params as $paramName => $paramSpec) { - if ($paramSpec['type'] == 'boolean') { - $paramSpec['value'] = $paramSpec['value'] ? 'true' : 'false'; - } - if ($paramSpec['location'] == 'path') { - $uriTemplateVars[$paramName] = $paramSpec['value']; - } else { - if ($paramSpec['location'] == 'query') { - if (\is_array($paramSpec['value'])) { - foreach ($paramSpec['value'] as $value) { - $queryVars[] = $paramName . '=' . \rawurlencode(\rawurldecode($value)); - } - } else { - $queryVars[] = $paramName . '=' . \rawurlencode(\rawurldecode($paramSpec['value'])); - } - } - } - } - if (\count($uriTemplateVars)) { - $uriTemplateParser = new \WPMailSMTP\Vendor\Google_Utils_UriTemplate(); - $requestUrl = $uriTemplateParser->parse($requestUrl, $uriTemplateVars); - } - if (\count($queryVars)) { - $requestUrl .= '?' . \implode('&', $queryVars); - } - return $requestUrl; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Task/Composer.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Task/Composer.php deleted file mode 100644 index fe5d317..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Task/Composer.php +++ /dev/null @@ -1,71 +0,0 @@ -getComposer(); - $extra = $composer->getPackage()->getExtra(); - $servicesToKeep = isset($extra['google/apiclient-services']) ? $extra['google/apiclient-services'] : []; - if ($servicesToKeep) { - $serviceDir = \sprintf('%s/google/apiclient-services/src/Google/Service', $composer->getConfig()->get('vendor-dir')); - self::verifyServicesToKeep($serviceDir, $servicesToKeep); - $finder = self::getServicesToRemove($serviceDir, $servicesToKeep); - $filesystem = $filesystem ?: new \WPMailSMTP\Vendor\Symfony\Component\Filesystem\Filesystem(); - if (0 !== ($count = \count($finder))) { - $event->getIO()->write(\sprintf('Removing %s google services', $count)); - foreach ($finder as $file) { - $realpath = $file->getRealPath(); - $filesystem->remove($realpath); - $filesystem->remove($realpath . '.php'); - } - } - } - } - /** - * @throws InvalidArgumentException when the service doesn't exist - */ - private static function verifyServicesToKeep($serviceDir, array $servicesToKeep) - { - $finder = (new \WPMailSMTP\Vendor\Symfony\Component\Finder\Finder())->directories()->depth('== 0'); - foreach ($servicesToKeep as $service) { - if (!\preg_match('/^[a-zA-Z0-9]*$/', $service)) { - throw new \InvalidArgumentException(\sprintf('Invalid Google service name "%s"', $service)); - } - try { - $finder->in($serviceDir . '/' . $service); - } catch (\InvalidArgumentException $e) { - throw new \InvalidArgumentException(\sprintf('Google service "%s" does not exist or was removed previously', $service)); - } - } - } - private static function getServicesToRemove($serviceDir, array $servicesToKeep) - { - // find all files in the current directory - return (new \WPMailSMTP\Vendor\Symfony\Component\Finder\Finder())->directories()->depth('== 0')->in($serviceDir)->exclude($servicesToKeep); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Task/Exception.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Task/Exception.php deleted file mode 100644 index 2c3a331..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Task/Exception.php +++ /dev/null @@ -1,22 +0,0 @@ - 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, - ]; - /** - * 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 - */ - public function __construct($config, $name, $action, array $arguments = array()) - { - if (isset($config['initial_delay'])) { - if ($config['initial_delay'] < 0) { - throw new \WPMailSMTP\Vendor\Google_Task_Exception('Task configuration `initial_delay` must not be negative.'); - } - $this->delay = $config['initial_delay']; - } - if (isset($config['max_delay'])) { - if ($config['max_delay'] <= 0) { - throw new \WPMailSMTP\Vendor\Google_Task_Exception('Task configuration `max_delay` must be greater than 0.'); - } - $this->maxDelay = $config['max_delay']; - } - if (isset($config['factor'])) { - if ($config['factor'] <= 0) { - throw new \WPMailSMTP\Vendor\Google_Task_Exception('Task configuration `factor` must be greater than 0.'); - } - $this->factor = $config['factor']; - } - if (isset($config['jitter'])) { - if ($config['jitter'] <= 0) { - throw new \WPMailSMTP\Vendor\Google_Task_Exception('Task configuration `jitter` must be greater than 0.'); - } - $this->jitter = $config['jitter']; - } - if (isset($config['retries'])) { - if ($config['retries'] < 0) { - throw new \WPMailSMTP\Vendor\Google_Task_Exception('Task configuration `retries` must not be negative.'); - } - $this->maxAttempts += $config['retries']; - } - if (!\is_callable($action)) { - throw new \WPMailSMTP\Vendor\Google_Task_Exception('Task argument `$action` must be a valid callable.'); - } - $this->action = $action; - $this->arguments = $arguments; - } - /** - * Checks if a retry can be attempted. - * - * @return boolean - */ - public function canAttempt() - { - return $this->attempts < $this->maxAttempts; - } - /** - * Runs the task and (if applicable) automatically retries when errors occur. - * - * @return mixed - * @throws Google_Task_Retryable on failure when no retries are available. - */ - public function run() - { - while ($this->attempt()) { - try { - return \call_user_func_array($this->action, $this->arguments); - } catch (\WPMailSMTP\Vendor\Google_Service_Exception $exception) { - $allowedRetries = $this->allowedRetries($exception->getCode(), $exception->getErrors()); - if (!$this->canAttempt() || !$allowedRetries) { - throw $exception; - } - if ($allowedRetries > 0) { - $this->maxAttempts = \min($this->maxAttempts, $this->attempts + $allowedRetries); - } - } - } - } - /** - * 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() - { - if (!$this->canAttempt()) { - return \false; - } - if ($this->attempts > 0) { - $this->backOff(); - } - $this->attempts++; - return \true; - } - /** - * Sleeps in accordance to the backoff configurations. - */ - private function backOff() - { - $delay = $this->getDelay(); - \usleep($delay * 1000000); - } - /** - * Gets the delay (in seconds) for the current backoff period. - * - * @return float - */ - private function getDelay() - { - $jitter = $this->getJitter(); - $factor = $this->attempts > 1 ? $this->factor + $jitter : 1 + \abs($jitter); - return $this->delay = \min($this->maxDelay, $this->delay * $factor); - } - /** - * Gets the current jitter (random number between -$this->jitter and - * $this->jitter). - * - * @return float - */ - private function getJitter() - { - return $this->jitter * 2 * \mt_rand() / \mt_getrandmax() - $this->jitter; - } - /** - * 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 = array()) - { - if (isset($this->retryMap[$code])) { - return $this->retryMap[$code]; - } - if (!empty($errors) && isset($errors[0]['reason'], $this->retryMap[$errors[0]['reason']])) { - return $this->retryMap[$errors[0]['reason']]; - } - return 0; - } - public function setRetryMap($retryMap) - { - $this->retryMap = $retryMap; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Utils/UriTemplate.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Utils/UriTemplate.php deleted file mode 100644 index 727f223..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/Utils/UriTemplate.php +++ /dev/null @@ -1,266 +0,0 @@ - "reserved", "/" => "segments", "." => "dotprefix", "#" => "fragment", ";" => "semicolon", "?" => "form", "&" => "continuation"); - /** - * @var reserved array - * These are the characters which should not be URL encoded in reserved - * strings. - */ - private $reserved = array("=", ",", "!", "@", "|", ":", "/", "?", "#", "[", "]", '$', "&", "'", "(", ")", "*", "+", ";"); - private $reservedEncoded = array("%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) - { - return $this->resolveNextSection($string, $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) - { - $start = \strpos($string, "{"); - if ($start === \false) { - return $string; - } - $end = \strpos($string, "}"); - if ($end === \false) { - return $string; - } - $string = $this->replace($string, $start, $end, $parameters); - return $this->resolveNextSection($string, $parameters); - } - private function replace($string, $start, $end, $parameters) - { - // We know a data block will have {} round it, so we can strip that. - $data = \substr($string, $start + 1, $end - $start - 1); - // If the first character is one of the reserved operators, it effects - // the processing of the stream. - if (isset($this->operators[$data[0]])) { - $op = $this->operators[$data[0]]; - $data = \substr($data, 1); - $prefix = ""; - $prefix_on_missing = \false; - switch ($op) { - case "reserved": - // Reserved means certain characters should not be URL encoded - $data = $this->replaceVars($data, $parameters, ",", null, \true); - break; - case "fragment": - // Comma separated with fragment prefix. Bare values only. - $prefix = "#"; - $prefix_on_missing = \true; - $data = $this->replaceVars($data, $parameters, ",", null, \true); - break; - case "segments": - // Slash separated data. Bare values only. - $prefix = "/"; - $data = $this->replaceVars($data, $parameters, "/"); - break; - case "dotprefix": - // Dot separated data. Bare values only. - $prefix = "."; - $prefix_on_missing = \true; - $data = $this->replaceVars($data, $parameters, "."); - break; - case "semicolon": - // Semicolon prefixed and separated. Uses the key name - $prefix = ";"; - $data = $this->replaceVars($data, $parameters, ";", "=", \false, \true, \false); - break; - case "form": - // Standard URL format. Uses the key name - $prefix = "?"; - $data = $this->replaceVars($data, $parameters, "&", "="); - break; - case "continuation": - // Standard URL, but with leading ampersand. Uses key name. - $prefix = "&"; - $data = $this->replaceVars($data, $parameters, "&", "="); - break; - } - // Add the initial prefix character if data is valid. - if ($data || $data !== \false && $prefix_on_missing) { - $data = $prefix . $data; - } - } else { - // If no operator we replace with the defaults. - $data = $this->replaceVars($data, $parameters); - } - // This is chops out the {...} and replaces with the new section. - return \substr($string, 0, $start) . $data . \substr($string, $end + 1); - } - private function replaceVars($section, $parameters, $sep = ",", $combine = null, $reserved = \false, $tag_empty = \false, $combine_on_empty = \true) - { - if (\strpos($section, ",") === \false) { - // If we only have a single value, we can immediately process. - return $this->combine($section, $parameters, $sep, $combine, $reserved, $tag_empty, $combine_on_empty); - } else { - // If we have multiple values, we need to split and loop over them. - // Each is treated individually, then glued together with the - // separator character. - $vars = \explode(",", $section); - return $this->combineList( - $vars, - $sep, - $parameters, - $combine, - $reserved, - \false, - // Never emit empty strings in multi-param replacements - $combine_on_empty - ); - } - } - public function combine($key, $parameters, $sep, $combine, $reserved, $tag_empty, $combine_on_empty) - { - $length = \false; - $explode = \false; - $skip_final_combine = \false; - $value = \false; - // Check for length restriction. - if (\strpos($key, ":") !== \false) { - list($key, $length) = \explode(":", $key); - } - // Check for explode parameter. - if ($key[\strlen($key) - 1] == "*") { - $explode = \true; - $key = \substr($key, 0, -1); - $skip_final_combine = \true; - } - // Define the list separator. - $list_sep = $explode ? $sep : ","; - if (isset($parameters[$key])) { - $data_type = $this->getDataType($parameters[$key]); - switch ($data_type) { - case self::TYPE_SCALAR: - $value = $this->getValue($parameters[$key], $length); - break; - case self::TYPE_LIST: - $values = array(); - foreach ($parameters[$key] as $pkey => $pvalue) { - $pvalue = $this->getValue($pvalue, $length); - if ($combine && $explode) { - $values[$pkey] = $key . $combine . $pvalue; - } else { - $values[$pkey] = $pvalue; - } - } - $value = \implode($list_sep, $values); - if ($value == '') { - return ''; - } - break; - case self::TYPE_MAP: - $values = array(); - foreach ($parameters[$key] as $pkey => $pvalue) { - $pvalue = $this->getValue($pvalue, $length); - if ($explode) { - $pkey = $this->getValue($pkey, $length); - $values[] = $pkey . "=" . $pvalue; - // Explode triggers = combine. - } else { - $values[] = $pkey; - $values[] = $pvalue; - } - } - $value = \implode($list_sep, $values); - if ($value == '') { - return \false; - } - break; - } - } else { - if ($tag_empty) { - // If we are just indicating empty values with their key name, return that. - return $key; - } else { - // Otherwise we can skip this variable due to not being defined. - return \false; - } - } - if ($reserved) { - $value = \str_replace($this->reservedEncoded, $this->reserved, $value); - } - // If we do not need to include the key name, we just return the raw - // value. - if (!$combine || $skip_final_combine) { - return $value; - } - // Else we combine the key name: foo=bar, if value is not the empty string. - return $key . ($value != '' || $combine_on_empty ? $combine . $value : ''); - } - /** - * Return the type of a passed in value - */ - private function getDataType($data) - { - if (\is_array($data)) { - \reset($data); - if (\key($data) !== 0) { - return self::TYPE_MAP; - } - return self::TYPE_LIST; - } - return self::TYPE_SCALAR; - } - /** - * Utility function that merges multiple combine calls - * for multi-key templates. - */ - private function combineList($vars, $sep, $parameters, $combine, $reserved, $tag_empty, $combine_on_empty) - { - $ret = array(); - foreach ($vars as $var) { - $response = $this->combine($var, $parameters, $sep, $combine, $reserved, $tag_empty, $combine_on_empty); - if ($response === \false) { - continue; - } - $ret[] = $response; - } - return \implode($sep, $ret); - } - /** - * Utility function to encode and trim values - */ - private function getValue($value, $length) - { - if ($length) { - $value = \substr($value, 0, $length); - } - $value = \rawurlencode($value); - return $value; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/autoload.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/autoload.php deleted file mode 100644 index 85dfb7a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/apiclient/src/Google/autoload.php +++ /dev/null @@ -1,19 +0,0 @@ - 3) { - // Maximum class file path depth in this project is 3. - $classPath = \array_slice($classPath, 0, 3); - } - $filePath = \dirname(__FILE__) . '/src/' . \implode('/', $classPath) . '.php'; - if (\file_exists($filePath)) { - require_once $filePath; - } -} -\spl_autoload_register('oauth2client_php_autoload'); diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/AccessToken.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/AccessToken.php deleted file mode 100644 index 1060261..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/AccessToken.php +++ /dev/null @@ -1,388 +0,0 @@ -httpHandler = $httpHandler ?: \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build(\WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpClientCache::getHttpClient()); - $this->cache = $cache ?: new \WPMailSMTP\Vendor\Google\Auth\Cache\MemoryCacheItemPool(); - } - /** - * 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. - * @param string $options.audience The indended recipient of the token. - * @param string $options.issuer The intended issuer of the token. - * @param string $options.cacheKey The cache key of the cached certs. Defaults to - * the sha1 of $certsLocation if provided, otherwise is set to - * "federated_signon_certs_v3". - * @param string $options.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. - * @param bool $options.throwException Whether the function should throw an - * exception if the verification fails. This is useful for - * determining the reason verification failed. - * @return array|bool 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 = []) - { - $audience = isset($options['audience']) ? $options['audience'] : null; - $issuer = isset($options['issuer']) ? $options['issuer'] : null; - $certsLocation = isset($options['certsLocation']) ? $options['certsLocation'] : self::FEDERATED_SIGNON_CERT_URL; - $cacheKey = isset($options['cacheKey']) ? $options['cacheKey'] : $this->getCacheKeyFromCertLocation($certsLocation); - $throwException = isset($options['throwException']) ? $options['throwException'] : \false; - // for backwards compatibility - // Check signature against each available cert. - $certs = $this->getCerts($certsLocation, $cacheKey, $options); - $alg = $this->determineAlg($certs); - if (!\in_array($alg, ['RS256', 'ES256'])) { - throw new \InvalidArgumentException('unrecognized "alg" in certs, expected ES256 or RS256'); - } - try { - if ($alg == 'RS256') { - return $this->verifyRs256($token, $certs, $audience, $issuer); - } - return $this->verifyEs256($token, $certs, $audience, $issuer); - } catch (\WPMailSMTP\Vendor\Firebase\JWT\ExpiredException $e) { - // firebase/php-jwt 3+ - } catch (\WPMailSMTP\Vendor\ExpiredException $e) { - // firebase/php-jwt 2 - } catch (\WPMailSMTP\Vendor\Firebase\JWT\SignatureInvalidException $e) { - // firebase/php-jwt 3+ - } catch (\WPMailSMTP\Vendor\SignatureInvalidException $e) { - // firebase/php-jwt 2 - } catch (\WPMailSMTP\Vendor\SimpleJWT\InvalidTokenException $e) { - // simplejwt - } catch (\WPMailSMTP\Vendor\Google\Auth\DomainException $e) { - } catch (\InvalidArgumentException $e) { - } catch (\UnexpectedValueException $e) { - } - if ($throwException) { - throw $e; - } - return \false; - } - /** - * 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) - { - $alg = null; - foreach ($certs as $cert) { - if (empty($cert['alg'])) { - throw new \InvalidArgumentException('certs expects "alg" to be set'); - } - $alg = $alg ?: $cert['alg']; - if ($alg != $cert['alg']) { - throw new \InvalidArgumentException('More than one alg detected in certs'); - } - } - return $alg; - } - /** - * 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|bool the token payload, if successful, or false if not. - */ - private function verifyEs256($token, array $certs, $audience = null, $issuer = null) - { - $this->checkSimpleJwt(); - $jwkset = new \WPMailSMTP\Vendor\SimpleJWT\Keys\KeySet(); - foreach ($certs as $cert) { - $jwkset->add(\WPMailSMTP\Vendor\SimpleJWT\Keys\KeyFactory::create($cert, 'php')); - } - // Validate the signature using the key set and ES256 algorithm. - $jwt = $this->callSimpleJwtDecode([$token, $jwkset, 'ES256']); - $payload = $jwt->getClaims(); - if (isset($payload['aud'])) { - if ($audience && $payload['aud'] != $audience) { - throw new \UnexpectedValueException('Audience does not match'); - } - } - // @see https://cloud.google.com/iap/docs/signed-headers-howto#verifying_the_jwt_payload - $issuer = $issuer ?: self::IAP_ISSUER; - if (!isset($payload['iss']) || $payload['iss'] !== $issuer) { - throw new \UnexpectedValueException('Issuer does not match'); - } - return $payload; - } - /** - * 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|bool the token payload, if successful, or false if not. - */ - private function verifyRs256($token, array $certs, $audience = null, $issuer = null) - { - $this->checkAndInitializePhpsec(); - $keys = []; - foreach ($certs as $cert) { - if (empty($cert['kid'])) { - throw new \InvalidArgumentException('certs expects "kid" to be set'); - } - if (empty($cert['n']) || empty($cert['e'])) { - throw new \InvalidArgumentException('RSA certs expects "n" and "e" to be set'); - } - $rsa = new \WPMailSMTP\Vendor\phpseclib\Crypt\RSA(); - $rsa->loadKey(['n' => new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->callJwtStatic('urlsafeB64Decode', [$cert['n']]), 256), 'e' => new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->callJwtStatic('urlsafeB64Decode', [$cert['e']]), 256)]); - // create an array of key IDs to certs for the JWT library - $keys[$cert['kid']] = $rsa->getPublicKey(); - } - $payload = $this->callJwtStatic('decode', [$token, $keys, ['RS256']]); - if (\property_exists($payload, 'aud')) { - if ($audience && $payload->aud != $audience) { - throw new \UnexpectedValueException('Audience does not match'); - } - } - // support HTTP and HTTPS issuers - // @see https://developers.google.com/identity/sign-in/web/backend-auth - $issuers = $issuer ? [$issuer] : [self::OAUTH2_ISSUER, self::OAUTH2_ISSUER_HTTPS]; - if (!isset($payload->iss) || !\in_array($payload->iss, $issuers)) { - throw new \UnexpectedValueException('Issuer does not match'); - } - return (array) $payload; - } - /** - * 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 = []) - { - if (\is_array($token)) { - if (isset($token['refresh_token'])) { - $token = $token['refresh_token']; - } else { - $token = $token['access_token']; - } - } - $body = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\stream_for(\http_build_query(['token' => $token])); - $request = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', self::OAUTH2_REVOKE_URI, ['Cache-Control' => 'no-store', 'Content-Type' => 'application/x-www-form-urlencoded'], $body); - $httpHandler = $this->httpHandler; - $response = $httpHandler($request, $options); - return $response->getStatusCode() == 200; - } - /** - * 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 = []) - { - $cacheItem = $this->cache->getItem($cacheKey); - $certs = $cacheItem ? $cacheItem->get() : null; - $gotNewCerts = \false; - if (!$certs) { - $certs = $this->retrieveCertsFromLocation($location, $options); - $gotNewCerts = \true; - } - if (!isset($certs['keys'])) { - if ($location !== self::IAP_CERT_URL) { - throw new \InvalidArgumentException('federated sign-on certs expects "keys" to be set'); - } - throw new \InvalidArgumentException('certs expects "keys" to be set'); - } - // Push caching off until after verifying certs are in a valid format. - // Don't want to cache bad data. - if ($gotNewCerts) { - $cacheItem->expiresAt(new \DateTime('+1 hour')); - $cacheItem->set($certs); - $this->cache->save($cacheItem); - } - return $certs['keys']; - } - /** - * Retrieve and cache a certificates file. - * - * @param $url string location - * @param array $options [optional] Configuration options. - * @return array certificates - * @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 = []) - { - // If we're retrieving a local file, just grab it. - if (\strpos($url, 'http') !== 0) { - if (!\file_exists($url)) { - throw new \InvalidArgumentException(\sprintf('Failed to retrieve verification certificates from path: %s.', $url)); - } - return \json_decode(\file_get_contents($url), \true); - } - $httpHandler = $this->httpHandler; - $response = $httpHandler(new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $url), $options); - if ($response->getStatusCode() == 200) { - return \json_decode((string) $response->getBody(), \true); - } - throw new \RuntimeException(\sprintf('Failed to retrieve verification certificates: "%s".', $response->getBody()->getContents()), $response->getStatusCode()); - } - private function checkAndInitializePhpsec() - { - // @codeCoverageIgnoreStart - if (!\class_exists('WPMailSMTP\\Vendor\\phpseclib\\Crypt\\RSA')) { - throw new \RuntimeException('Please require phpseclib/phpseclib v2 to use this utility.'); - } - // @codeCoverageIgnoreEnd - $this->setPhpsecConstants(); - } - private function checkSimpleJwt() - { - // @codeCoverageIgnoreStart - if (!\class_exists('WPMailSMTP\\Vendor\\SimpleJWT\\JWT')) { - throw new \RuntimeException('Please require kelvinmo/simplejwt ^0.2 to use this utility.'); - } - // @codeCoverageIgnoreEnd - } - /** - * 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 - * @codeCoverageIgnore - */ - private function setPhpsecConstants() - { - if (\filter_var(\getenv('GAE_VM'), \FILTER_VALIDATE_BOOLEAN)) { - if (!\defined('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_OPENSSL_ENABLED')) { - \define('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_OPENSSL_ENABLED', \true); - } - if (!\defined('WPMailSMTP\\Vendor\\CRYPT_RSA_MODE')) { - \define('WPMailSMTP\\Vendor\\CRYPT_RSA_MODE', \WPMailSMTP\Vendor\phpseclib\Crypt\RSA::MODE_OPENSSL); - } - } - } - /** - * 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 = []) - { - $class = \class_exists('WPMailSMTP\\Vendor\\Firebase\\JWT\\JWT') ? 'Firebase\\JWT\\JWT' : 'JWT'; - return \call_user_func_array([$class, $method], $args); - } - /** - * Provide a hook to mock calls to the JWT static methods. - * - * @param array $args - * @return mixed - */ - protected function callSimpleJwtDecode(array $args = []) - { - return \call_user_func_array(['SimpleJWT\\JWT', 'decode'], $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) - { - $key = $certsLocation === self::FEDERATED_SIGNON_CERT_URL ? 'federated_signon_certs_v3' : \sha1($certsLocation); - return 'google_auth_certs_cache|' . $key; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/ApplicationDefaultCredentials.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/ApplicationDefaultCredentials.php deleted file mode 100644 index d8efa0a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/ApplicationDefaultCredentials.php +++ /dev/null @@ -1,253 +0,0 @@ -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 -{ - /** - * 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|array 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($scope = null, callable $httpHandler = null, array $cacheConfig = null, \WPMailSMTP\Vendor\Psr\Cache\CacheItemPoolInterface $cache = null) - { - $creds = self::getCredentials($scope, $httpHandler, $cacheConfig, $cache); - return new \WPMailSMTP\Vendor\Google\Auth\Subscriber\AuthTokenSubscriber($creds, $httpHandler); - } - /** - * 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|array 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, \WPMailSMTP\Vendor\Psr\Cache\CacheItemPoolInterface $cache = null, $quotaProject = null) - { - $creds = self::getCredentials($scope, $httpHandler, $cacheConfig, $cache, $quotaProject); - return new \WPMailSMTP\Vendor\Google\Auth\Middleware\AuthTokenMiddleware($creds, $httpHandler); - } - /** - * Obtains an AuthTokenMiddleware which will fetch an access token to use in - * the Authorization header. The middleware is configured with 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|array $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|array $defaultScope The default scope to use if no - * user-defined scopes exist, expressed either as an Array or as a - * space-delimited string. - * - * @return CredentialsLoader - * @throws DomainException if no implementation can be obtained. - */ - public static function getCredentials($scope = null, callable $httpHandler = null, array $cacheConfig = null, \WPMailSMTP\Vendor\Psr\Cache\CacheItemPoolInterface $cache = null, $quotaProject = null, $defaultScope = null) - { - $creds = null; - $jsonKey = \WPMailSMTP\Vendor\Google\Auth\CredentialsLoader::fromEnv() ?: \WPMailSMTP\Vendor\Google\Auth\CredentialsLoader::fromWellKnownFile(); - $anyScope = $scope ?: $defaultScope; - if (!$httpHandler) { - if (!($client = \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpClientCache::getHttpClient())) { - $client = new \WPMailSMTP\Vendor\GuzzleHttp\Client(); - \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpClientCache::setHttpClient($client); - } - $httpHandler = \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build($client); - } - if (!\is_null($jsonKey)) { - if ($quotaProject) { - $jsonKey['quota_project_id'] = $quotaProject; - } - $creds = \WPMailSMTP\Vendor\Google\Auth\CredentialsLoader::makeCredentials($scope, $jsonKey, $defaultScope); - } elseif (\WPMailSMTP\Vendor\Google\Auth\Credentials\AppIdentityCredentials::onAppEngine() && !\WPMailSMTP\Vendor\Google\Auth\Credentials\GCECredentials::onAppEngineFlexible()) { - $creds = new \WPMailSMTP\Vendor\Google\Auth\Credentials\AppIdentityCredentials($anyScope); - } elseif (self::onGce($httpHandler, $cacheConfig, $cache)) { - $creds = new \WPMailSMTP\Vendor\Google\Auth\Credentials\GCECredentials(null, $anyScope, null, $quotaProject); - } - if (\is_null($creds)) { - throw new \DomainException(self::notFound()); - } - if (!\is_null($cache)) { - $creds = new \WPMailSMTP\Vendor\Google\Auth\FetchAuthTokenCache($creds, $cacheConfig, $cache); - } - return $creds; - } - /** - * 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, \WPMailSMTP\Vendor\Psr\Cache\CacheItemPoolInterface $cache = null) - { - $creds = self::getIdTokenCredentials($targetAudience, $httpHandler, $cacheConfig, $cache); - return new \WPMailSMTP\Vendor\Google\Auth\Middleware\AuthTokenMiddleware($creds, $httpHandler); - } - /** - * 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 CredentialsLoader - * @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, \WPMailSMTP\Vendor\Psr\Cache\CacheItemPoolInterface $cache = null) - { - $creds = null; - $jsonKey = \WPMailSMTP\Vendor\Google\Auth\CredentialsLoader::fromEnv() ?: \WPMailSMTP\Vendor\Google\Auth\CredentialsLoader::fromWellKnownFile(); - if (!$httpHandler) { - if (!($client = \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpClientCache::getHttpClient())) { - $client = new \WPMailSMTP\Vendor\GuzzleHttp\Client(); - \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpClientCache::setHttpClient($client); - } - $httpHandler = \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build($client); - } - if (!\is_null($jsonKey)) { - if (!\array_key_exists('type', $jsonKey)) { - throw new \InvalidArgumentException('json key is missing the type field'); - } - if ($jsonKey['type'] == 'authorized_user') { - throw new \InvalidArgumentException('ID tokens are not supported for end user credentials'); - } - if ($jsonKey['type'] != 'service_account') { - throw new \InvalidArgumentException('invalid value in the type field'); - } - $creds = new \WPMailSMTP\Vendor\Google\Auth\Credentials\ServiceAccountCredentials(null, $jsonKey, null, $targetAudience); - } elseif (self::onGce($httpHandler, $cacheConfig, $cache)) { - $creds = new \WPMailSMTP\Vendor\Google\Auth\Credentials\GCECredentials(null, null, $targetAudience); - } - if (\is_null($creds)) { - throw new \DomainException(self::notFound()); - } - if (!\is_null($cache)) { - $creds = new \WPMailSMTP\Vendor\Google\Auth\FetchAuthTokenCache($creds, $cacheConfig, $cache); - } - return $creds; - } - private static function notFound() - { - $msg = 'Could not load the default credentials. Browse to '; - $msg .= 'https://developers.google.com'; - $msg .= '/accounts/docs/application-default-credentials'; - $msg .= ' for more information'; - return $msg; - } - private static function onGce(callable $httpHandler = null, array $cacheConfig = null, \WPMailSMTP\Vendor\Psr\Cache\CacheItemPoolInterface $cache = null) - { - $gceCacheConfig = []; - foreach (['lifetime', 'prefix'] as $key) { - if (isset($cacheConfig['gce_' . $key])) { - $gceCacheConfig[$key] = $cacheConfig['gce_' . $key]; - } - } - return (new \WPMailSMTP\Vendor\Google\Auth\GCECache($gceCacheConfig, $cache))->onGce($httpHandler); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Cache/InvalidArgumentException.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Cache/InvalidArgumentException.php deleted file mode 100644 index e5aa66a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Cache/InvalidArgumentException.php +++ /dev/null @@ -1,23 +0,0 @@ -key = $key; - } - /** - * {@inheritdoc} - */ - public function getKey() - { - return $this->key; - } - /** - * {@inheritdoc} - */ - public function get() - { - return $this->isHit() ? $this->value : null; - } - /** - * {@inheritdoc} - */ - public function isHit() - { - if (!$this->isHit) { - return \false; - } - if ($this->expiration === null) { - return \true; - } - return $this->currentTime()->getTimestamp() < $this->expiration->getTimestamp(); - } - /** - * {@inheritdoc} - */ - public function set($value) - { - $this->isHit = \true; - $this->value = $value; - return $this; - } - /** - * {@inheritdoc} - */ - public function expiresAt($expiration) - { - if ($this->isValidExpiration($expiration)) { - $this->expiration = $expiration; - return $this; - } - $implementationMessage = \interface_exists('DateTimeInterface') ? 'implement interface DateTimeInterface' : 'be an instance of DateTime'; - $error = \sprintf('Argument 1 passed to %s::expiresAt() must %s, %s given', \get_class($this), $implementationMessage, \gettype($expiration)); - $this->handleError($error); - } - /** - * {@inheritdoc} - */ - public function expiresAfter($time) - { - if (\is_int($time)) { - $this->expiration = $this->currentTime()->add(new \DateInterval("PT{$time}S")); - } elseif ($time instanceof \DateInterval) { - $this->expiration = $this->currentTime()->add($time); - } elseif ($time === null) { - $this->expiration = $time; - } else { - $message = 'Argument 1 passed to %s::expiresAfter() must be an ' . 'instance of DateInterval or of the type integer, %s given'; - $error = \sprintf($message, \get_class($this), \gettype($time)); - $this->handleError($error); - } - return $this; - } - /** - * Handles an error. - * - * @param string $error - * @throws \TypeError - */ - private function handleError($error) - { - if (\class_exists('TypeError')) { - throw new \TypeError($error); - } - \trigger_error($error, \E_USER_ERROR); - } - /** - * Determines if an expiration is valid based on the rules defined by PSR6. - * - * @param mixed $expiration - * @return bool - */ - private function isValidExpiration($expiration) - { - if ($expiration === null) { - return \true; - } - // We test for two types here due to the fact the DateTimeInterface - // was not introduced until PHP 5.5. Checking for the DateTime type as - // well allows us to support 5.4. - if ($expiration instanceof \DateTimeInterface) { - return \true; - } - if ($expiration instanceof \DateTime) { - return \true; - } - return \false; - } - protected function currentTime() - { - return new \DateTime('now', new \DateTimeZone('UTC')); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Cache/MemoryCacheItemPool.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Cache/MemoryCacheItemPool.php deleted file mode 100644 index 3c92bb9..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Cache/MemoryCacheItemPool.php +++ /dev/null @@ -1,130 +0,0 @@ -getItems([$key])); - } - /** - * {@inheritdoc} - */ - public function getItems(array $keys = []) - { - $items = []; - foreach ($keys as $key) { - $items[$key] = $this->hasItem($key) ? clone $this->items[$key] : new \WPMailSMTP\Vendor\Google\Auth\Cache\Item($key); - } - return $items; - } - /** - * {@inheritdoc} - */ - public function hasItem($key) - { - $this->isValidKey($key); - return isset($this->items[$key]) && $this->items[$key]->isHit(); - } - /** - * {@inheritdoc} - */ - public function clear() - { - $this->items = []; - $this->deferredItems = []; - return \true; - } - /** - * {@inheritdoc} - */ - public function deleteItem($key) - { - return $this->deleteItems([$key]); - } - /** - * {@inheritdoc} - */ - public function deleteItems(array $keys) - { - \array_walk($keys, [$this, 'isValidKey']); - foreach ($keys as $key) { - unset($this->items[$key]); - } - return \true; - } - /** - * {@inheritdoc} - */ - public function save(\WPMailSMTP\Vendor\Psr\Cache\CacheItemInterface $item) - { - $this->items[$item->getKey()] = $item; - return \true; - } - /** - * {@inheritdoc} - */ - public function saveDeferred(\WPMailSMTP\Vendor\Psr\Cache\CacheItemInterface $item) - { - $this->deferredItems[$item->getKey()] = $item; - return \true; - } - /** - * {@inheritdoc} - */ - public function commit() - { - foreach ($this->deferredItems as $item) { - $this->save($item); - } - $this->deferredItems = []; - return \true; - } - /** - * Determines if the provided key is valid. - * - * @param string $key - * @return bool - * @throws InvalidArgumentException - */ - private function isValidKey($key) - { - $invalidCharacters = '{}()/\\\\@:'; - if (!\is_string($key) || \preg_match("#[{$invalidCharacters}]#", $key)) { - throw new \WPMailSMTP\Vendor\Google\Auth\Cache\InvalidArgumentException('The provided key is not valid: ' . \var_export($key, \true)); - } - return \true; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Cache/SysVCacheItemPool.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Cache/SysVCacheItemPool.php deleted file mode 100644 index 0115c54..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Cache/SysVCacheItemPool.php +++ /dev/null @@ -1,198 +0,0 @@ -options = $options + ['variableKey' => self::VAR_KEY, 'proj' => self::DEFAULT_PROJ, 'memsize' => self::DEFAULT_MEMSIZE, 'perm' => self::DEFAULT_PERM]; - $this->items = []; - $this->deferredItems = []; - $this->sysvKey = \ftok(__FILE__, $this->options['proj']); - } - public function getItem($key) - { - $this->loadItems(); - return \current($this->getItems([$key])); - } - /** - * {@inheritdoc} - */ - public function getItems(array $keys = []) - { - $this->loadItems(); - $items = []; - foreach ($keys as $key) { - $items[$key] = $this->hasItem($key) ? clone $this->items[$key] : new \WPMailSMTP\Vendor\Google\Auth\Cache\Item($key); - } - return $items; - } - /** - * {@inheritdoc} - */ - public function hasItem($key) - { - $this->loadItems(); - return isset($this->items[$key]) && $this->items[$key]->isHit(); - } - /** - * {@inheritdoc} - */ - public function clear() - { - $this->items = []; - $this->deferredItems = []; - return $this->saveCurrentItems(); - } - /** - * {@inheritdoc} - */ - public function deleteItem($key) - { - return $this->deleteItems([$key]); - } - /** - * {@inheritdoc} - */ - public function deleteItems(array $keys) - { - if (!$this->hasLoadedItems) { - $this->loadItems(); - } - foreach ($keys as $key) { - unset($this->items[$key]); - } - return $this->saveCurrentItems(); - } - /** - * {@inheritdoc} - */ - public function save(\WPMailSMTP\Vendor\Psr\Cache\CacheItemInterface $item) - { - if (!$this->hasLoadedItems) { - $this->loadItems(); - } - $this->items[$item->getKey()] = $item; - return $this->saveCurrentItems(); - } - /** - * {@inheritdoc} - */ - public function saveDeferred(\WPMailSMTP\Vendor\Psr\Cache\CacheItemInterface $item) - { - $this->deferredItems[$item->getKey()] = $item; - return \true; - } - /** - * {@inheritdoc} - */ - public function commit() - { - foreach ($this->deferredItems as $item) { - if ($this->save($item) === \false) { - return \false; - } - } - $this->deferredItems = []; - return \true; - } - /** - * Save the current items. - * - * @return bool true when success, false upon failure - */ - private function saveCurrentItems() - { - $shmid = \shm_attach($this->sysvKey, $this->options['memsize'], $this->options['perm']); - if ($shmid !== \false) { - $ret = \shm_put_var($shmid, $this->options['variableKey'], $this->items); - \shm_detach($shmid); - return $ret; - } - return \false; - } - /** - * Load the items from the shared memory. - * - * @return bool true when success, false upon failure - */ - private function loadItems() - { - $shmid = \shm_attach($this->sysvKey, $this->options['memsize'], $this->options['perm']); - if ($shmid !== \false) { - $data = @\shm_get_var($shmid, $this->options['variableKey']); - if (!empty($data)) { - $this->items = $data; - } else { - $this->items = []; - } - \shm_detach($shmid); - $this->hasLoadedItems = \true; - return \true; - } - return \false; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/CacheTrait.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/CacheTrait.php deleted file mode 100644 index e08c7f3..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/CacheTrait.php +++ /dev/null @@ -1,72 +0,0 @@ -cache)) { - return; - } - $key = $this->getFullCacheKey($k); - if (\is_null($key)) { - return; - } - $cacheItem = $this->cache->getItem($key); - if ($cacheItem->isHit()) { - return $cacheItem->get(); - } - } - /** - * Saves the value in the cache when that is available. - */ - private function setCachedValue($k, $v) - { - if (\is_null($this->cache)) { - return; - } - $key = $this->getFullCacheKey($k); - if (\is_null($key)) { - return; - } - $cacheItem = $this->cache->getItem($key); - $cacheItem->set($v); - $cacheItem->expiresAfter($this->cacheConfig['lifetime']); - return $this->cache->save($cacheItem); - } - private function getFullCacheKey($key) - { - if (\is_null($key)) { - return; - } - $key = $this->cacheConfig['prefix'] . $key; - // ensure we do not have illegal characters - $key = \preg_replace('|[^a-zA-Z0-9_\\.!]|', '', $key); - // Hash keys if they exceed $maxKeyLength (defaults to 64) - if ($this->maxKeyLength && \strlen($key) > $this->maxKeyLength) { - $key = \substr(\hash('sha256', $key), 0, $this->maxKeyLength); - } - return $key; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/AppIdentityCredentials.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/AppIdentityCredentials.php deleted file mode 100644 index 8ecdf64..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/AppIdentityCredentials.php +++ /dev/null @@ -1,200 +0,0 @@ -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 \WPMailSMTP\Vendor\Google\Auth\CredentialsLoader implements \WPMailSMTP\Vendor\Google\Auth\SignBlobInterface, \WPMailSMTP\Vendor\Google\Auth\ProjectIdProviderInterface -{ - /** - * Result of fetchAuthToken. - * - * @var array - */ - protected $lastReceivedToken; - /** - * Array of OAuth2 scopes to be requested. - * - * @var array - */ - private $scope; - /** - * @var string - */ - private $clientName; - /** - * @param array $scope One or more scopes. - */ - public function __construct($scope = array()) - { - $this->scope = $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() - { - $appEngineProduction = isset($_SERVER['SERVER_SOFTWARE']) && 0 === \strpos($_SERVER['SERVER_SOFTWARE'], 'Google App Engine'); - if ($appEngineProduction) { - return \true; - } - $appEngineDevAppServer = isset($_SERVER['APPENGINE_RUNTIME']) && $_SERVER['APPENGINE_RUNTIME'] == 'php'; - if ($appEngineDevAppServer) { - return \true; - } - return \false; - } - /** - * 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 - * keys: - * - access_token (string) - * - expiration_time (string) - */ - public function fetchAuthToken(callable $httpHandler = null) - { - try { - $this->checkAppEngineContext(); - } catch (\Exception $e) { - return []; - } - // AppIdentityService expects an array when multiple scopes are supplied - $scope = \is_array($this->scope) ? $this->scope : \explode(' ', $this->scope); - $token = \WPMailSMTP\Vendor\google\appengine\api\app_identity\AppIdentityService::getAccessToken($scope); - $this->lastReceivedToken = $token; - return $token; - } - /** - * 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) - { - $this->checkAppEngineContext(); - return \base64_encode(\WPMailSMTP\Vendor\google\appengine\api\app_identity\AppIdentityService::signForApp($stringToSign)['signature']); - } - /** - * 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 $httpHander = null) - { - try { - $this->checkAppEngineContext(); - } catch (\Exception $e) { - return null; - } - return \WPMailSMTP\Vendor\google\appengine\api\app_identity\AppIdentityService::getApplicationId(); - } - /** - * 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) - { - $this->checkAppEngineContext(); - if (!$this->clientName) { - $this->clientName = \WPMailSMTP\Vendor\google\appengine\api\app_identity\AppIdentityService::getServiceAccountName(); - } - return $this->clientName; - } - /** - * @return array|null - */ - public function getLastReceivedToken() - { - if ($this->lastReceivedToken) { - return ['access_token' => $this->lastReceivedToken['access_token'], 'expires_at' => $this->lastReceivedToken['expiration_time']]; - } - return null; - } - /** - * Caching is handled by the underlying AppIdentityService, return empty string - * to prevent caching. - * - * @return string - */ - public function getCacheKey() - { - return ''; - } - private function checkAppEngineContext() - { - if (!self::onAppEngine() || !\class_exists('WPMailSMTP\\Vendor\\google\\appengine\\api\\app_identity\\AppIdentityService')) { - throw new \Exception('This class must be run in App Engine, or you must include the AppIdentityService ' . 'mock class defined in tests/mocks/AppIdentityService.php'); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/GCECredentials.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/GCECredentials.php deleted file mode 100644 index da580d4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/GCECredentials.php +++ /dev/null @@ -1,428 +0,0 @@ -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 \WPMailSMTP\Vendor\Google\Auth\CredentialsLoader implements \WPMailSMTP\Vendor\Google\Auth\SignBlobInterface, \WPMailSMTP\Vendor\Google\Auth\ProjectIdProviderInterface, \WPMailSMTP\Vendor\Google\Auth\GetQuotaProjectInterface -{ - // 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 header whose presence indicates GCE presence. - */ - const FLAVOR_HEADER = 'Metadata-Flavor'; - /** - * 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. - */ - protected $lastReceivedToken; - /** - * @var string|null - */ - private $clientName; - /** - * @var string|null - */ - private $projectId; - /** - * @var Iam|null - */ - private $iam; - /** - * @var string - */ - private $tokenUri; - /** - * @var string - */ - private $targetAudience; - /** - * @var string|null - */ - private $quotaProject; - /** - * @var string|null - */ - private $serviceAccountIdentity; - /** - * @param Iam $iam [optional] An IAM instance. - * @param string|array $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". - */ - public function __construct(\WPMailSMTP\Vendor\Google\Auth\Iam $iam = null, $scope = null, $targetAudience = null, $quotaProject = null, $serviceAccountIdentity = null) - { - $this->iam = $iam; - if ($scope && $targetAudience) { - throw new \InvalidArgumentException('Scope and targetAudience cannot both be supplied'); - } - $tokenUri = self::getTokenUri($serviceAccountIdentity); - if ($scope) { - if (\is_string($scope)) { - $scope = \explode(' ', $scope); - } - $scope = \implode(',', $scope); - $tokenUri = $tokenUri . '?scopes=' . $scope; - } elseif ($targetAudience) { - $tokenUri = self::getIdTokenUri($serviceAccountIdentity); - $tokenUri = $tokenUri . '?audience=' . $targetAudience; - $this->targetAudience = $targetAudience; - } - $this->tokenUri = $tokenUri; - $this->quotaProject = $quotaProject; - $this->serviceAccountIdentity = $serviceAccountIdentity; - } - /** - * 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) - { - $base = 'http://' . self::METADATA_IP . '/computeMetadata/'; - $base .= self::TOKEN_URI_PATH; - if ($serviceAccountIdentity) { - return \str_replace('/default/', '/' . $serviceAccountIdentity . '/', $base); - } - return $base; - } - /** - * 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) - { - $base = 'http://' . self::METADATA_IP . '/computeMetadata/'; - $base .= self::CLIENT_ID_URI_PATH; - if ($serviceAccountIdentity) { - return \str_replace('/default/', '/' . $serviceAccountIdentity . '/', $base); - } - return $base; - } - /** - * 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) - { - $base = 'http://' . self::METADATA_IP . '/computeMetadata/'; - $base .= self::ID_TOKEN_URI_PATH; - if ($serviceAccountIdentity) { - return \str_replace('/default/', '/' . $serviceAccountIdentity . '/', $base); - } - return $base; - } - /** - * The full uri for accessing the default project ID. - * - * @return string - */ - private static function getProjectIdUri() - { - $base = 'http://' . self::METADATA_IP . '/computeMetadata/'; - return $base . self::PROJECT_ID_URI_PATH; - } - /** - * 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() - { - return \substr(\getenv('GAE_INSTANCE'), 0, 4) === 'aef-'; - } - /** - * 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) - { - $httpHandler = $httpHandler ?: \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build(\WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpClientCache::getHttpClient()); - $checkUri = 'http://' . self::METADATA_IP; - for ($i = 1; $i <= self::MAX_COMPUTE_PING_TRIES; $i++) { - try { - // Comment from: oauth2client/client.py - // - // Note: the explicit `timeout` 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". - $resp = $httpHandler(new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $checkUri, [self::FLAVOR_HEADER => 'Google']), ['timeout' => self::COMPUTE_PING_CONNECTION_TIMEOUT_S]); - return $resp->getHeaderLine(self::FLAVOR_HEADER) == 'Google'; - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\ClientException $e) { - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\ServerException $e) { - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\ConnectException $e) { - } - } - return \false; - } - /** - * 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. - * - * Access tokens have the following keys: - * - access_token (string) - * - expires_in (int) - * - token_type (string) - * ID tokens have the following keys: - * - id_token (string) - * - * @throws \Exception - */ - public function fetchAuthToken(callable $httpHandler = null) - { - $httpHandler = $httpHandler ?: \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build(\WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpClientCache::getHttpClient()); - if (!$this->hasCheckedOnGce) { - $this->isOnGce = self::onGce($httpHandler); - $this->hasCheckedOnGce = \true; - } - if (!$this->isOnGce) { - return array(); - // return an empty array with no access token - } - $response = $this->getFromMetadata($httpHandler, $this->tokenUri); - if ($this->targetAudience) { - return ['id_token' => $response]; - } - if (null === ($json = \json_decode($response, \true))) { - throw new \Exception('Invalid JSON response'); - } - $json['expires_at'] = \time() + $json['expires_in']; - // store this so we can retrieve it later - $this->lastReceivedToken = $json; - return $json; - } - /** - * @return string - */ - public function getCacheKey() - { - return self::cacheKey; - } - /** - * @return array|null - */ - public function getLastReceivedToken() - { - if ($this->lastReceivedToken) { - return ['access_token' => $this->lastReceivedToken['access_token'], 'expires_at' => $this->lastReceivedToken['expires_at']]; - } - return null; - } - /** - * 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) - { - if ($this->clientName) { - return $this->clientName; - } - $httpHandler = $httpHandler ?: \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build(\WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpClientCache::getHttpClient()); - if (!$this->hasCheckedOnGce) { - $this->isOnGce = self::onGce($httpHandler); - $this->hasCheckedOnGce = \true; - } - if (!$this->isOnGce) { - return ''; - } - $this->clientName = $this->getFromMetadata($httpHandler, self::getClientNameUri($this->serviceAccountIdentity)); - return $this->clientName; - } - /** - * 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. - * @return string - */ - public function signBlob($stringToSign, $forceOpenSsl = \false) - { - $httpHandler = \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build(\WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpClientCache::getHttpClient()); - // Providing a signer is useful for testing, but it's undocumented - // because it's not something a user would generally need to do. - $signer = $this->iam ?: new \WPMailSMTP\Vendor\Google\Auth\Iam($httpHandler); - $email = $this->getClientName($httpHandler); - $previousToken = $this->getLastReceivedToken(); - $accessToken = $previousToken ? $previousToken['access_token'] : $this->fetchAuthToken($httpHandler)['access_token']; - return $signer->signBlob($email, $accessToken, $stringToSign); - } - /** - * 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) - { - if ($this->projectId) { - return $this->projectId; - } - $httpHandler = $httpHandler ?: \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build(\WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpClientCache::getHttpClient()); - if (!$this->hasCheckedOnGce) { - $this->isOnGce = self::onGce($httpHandler); - $this->hasCheckedOnGce = \true; - } - if (!$this->isOnGce) { - return null; - } - $this->projectId = $this->getFromMetadata($httpHandler, self::getProjectIdUri()); - return $this->projectId; - } - /** - * 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) - { - $resp = $httpHandler(new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $uri, [self::FLAVOR_HEADER => 'Google'])); - return (string) $resp->getBody(); - } - /** - * Get the quota project used for this API request - * - * @return string|null - */ - public function getQuotaProject() - { - return $this->quotaProject; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/IAMCredentials.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/IAMCredentials.php deleted file mode 100644 index 7cf62a1..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/IAMCredentials.php +++ /dev/null @@ -1,77 +0,0 @@ -selector = $selector; - $this->token = $token; - } - /** - * export a callback function which updates runtime metadata. - * - * @return array updateMetadata function - */ - public function getUpdateMetadataFunc() - { - return array($this, 'updateMetadata'); - } - /** - * 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) - { - $metadata_copy = $metadata; - $metadata_copy[self::SELECTOR_KEY] = $this->selector; - $metadata_copy[self::TOKEN_KEY] = $this->token; - return $metadata_copy; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/InsecureCredentials.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/InsecureCredentials.php deleted file mode 100644 index 4b27a4d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/InsecureCredentials.php +++ /dev/null @@ -1,64 +0,0 @@ - '']; - /** - * Fetches the auth token. In this case it returns an empty string. - * - * @param callable $httpHandler - * @return array A set of auth related metadata, containing the following - * keys: - * - access_token (string) - */ - public function fetchAuthToken(callable $httpHandler = null) - { - return $this->token; - } - /** - * Returns the cache key. In this case it returns a null value, disabling - * caching. - * - * @return string|null - */ - public function getCacheKey() - { - return null; - } - /** - * Fetches the last received token. In this case, it returns the same empty string - * auth token. - * - * @return array - */ - public function getLastReceivedToken() - { - return $this->token; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/ServiceAccountCredentials.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/ServiceAccountCredentials.php deleted file mode 100644 index aeb04b6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/ServiceAccountCredentials.php +++ /dev/null @@ -1,226 +0,0 @@ -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 \WPMailSMTP\Vendor\Google\Auth\CredentialsLoader implements \WPMailSMTP\Vendor\Google\Auth\GetQuotaProjectInterface, \WPMailSMTP\Vendor\Google\Auth\SignBlobInterface, \WPMailSMTP\Vendor\Google\Auth\ProjectIdProviderInterface -{ - use 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; - /** - * Create a new ServiceAccountCredentials. - * - * @param string|array $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) - { - if (\is_string($jsonKey)) { - if (!\file_exists($jsonKey)) { - throw new \InvalidArgumentException('file does not exist'); - } - $jsonKeyStream = \file_get_contents($jsonKey); - if (!($jsonKey = \json_decode($jsonKeyStream, \true))) { - throw new \LogicException('invalid json for auth config'); - } - } - if (!\array_key_exists('client_email', $jsonKey)) { - throw new \InvalidArgumentException('json key is missing the client_email field'); - } - if (!\array_key_exists('private_key', $jsonKey)) { - throw new \InvalidArgumentException('json key is missing the private_key field'); - } - if (\array_key_exists('quota_project_id', $jsonKey)) { - $this->quotaProject = (string) $jsonKey['quota_project_id']; - } - if ($scope && $targetAudience) { - throw new \InvalidArgumentException('Scope and targetAudience cannot both be supplied'); - } - $additionalClaims = []; - if ($targetAudience) { - $additionalClaims = ['target_audience' => $targetAudience]; - } - $this->auth = new \WPMailSMTP\Vendor\Google\Auth\OAuth2(['audience' => self::TOKEN_CREDENTIAL_URI, 'issuer' => $jsonKey['client_email'], 'scope' => $scope, 'signingAlgorithm' => 'RS256', 'signingKey' => $jsonKey['private_key'], 'sub' => $sub, 'tokenCredentialUri' => self::TOKEN_CREDENTIAL_URI, 'additionalClaims' => $additionalClaims]); - $this->projectId = isset($jsonKey['project_id']) ? $jsonKey['project_id'] : null; - } - /** - * @param callable $httpHandler - * - * @return array A set of auth related metadata, containing the following - * keys: - * - access_token (string) - * - expires_in (int) - * - token_type (string) - */ - public function fetchAuthToken(callable $httpHandler = null) - { - return $this->auth->fetchAuthToken($httpHandler); - } - /** - * @return string - */ - public function getCacheKey() - { - $key = $this->auth->getIssuer() . ':' . $this->auth->getCacheKey(); - if ($sub = $this->auth->getSub()) { - $key .= ':' . $sub; - } - return $key; - } - /** - * @return array - */ - public function getLastReceivedToken() - { - // If self-signed JWTs are being used, fetch the last received token - // from memory. Else, fetch it from OAuth2 - return $this->useSelfSignedJwt() ? $this->lastReceivedJwtAccessToken : $this->auth->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) - { - return $this->projectId; - } - /** - * 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) - { - // scope exists. use oauth implementation - if (!$this->useSelfSignedJwt()) { - return parent::updateMetadata($metadata, $authUri, $httpHandler); - } - // no scope found. create jwt with the auth uri - $credJson = array('private_key' => $this->auth->getSigningKey(), 'client_email' => $this->auth->getIssuer()); - $jwtCreds = new \WPMailSMTP\Vendor\Google\Auth\Credentials\ServiceAccountJwtAccessCredentials($credJson); - $updatedMetadata = $jwtCreds->updateMetadata($metadata, $authUri, $httpHandler); - if ($lastReceivedToken = $jwtCreds->getLastReceivedToken()) { - // Keep self-signed JWTs in memory as the last received token - $this->lastReceivedJwtAccessToken = $lastReceivedToken; - } - return $updatedMetadata; - } - /** - * @param string $sub an email address account to impersonate, in situations when - * the service account has been delegated domain wide access. - */ - public function setSub($sub) - { - $this->auth->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) - { - return $this->auth->getIssuer(); - } - /** - * Get the quota project used for this API request - * - * @return string|null - */ - public function getQuotaProject() - { - return $this->quotaProject; - } - private function useSelfSignedJwt() - { - return \is_null($this->auth->getScope()); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php deleted file mode 100644 index 9ef60b6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php +++ /dev/null @@ -1,160 +0,0 @@ -quotaProject = (string) $jsonKey['quota_project_id']; - } - $this->auth = new \WPMailSMTP\Vendor\Google\Auth\OAuth2(['issuer' => $jsonKey['client_email'], 'sub' => $jsonKey['client_email'], 'signingAlgorithm' => 'RS256', 'signingKey' => $jsonKey['private_key']]); - $this->projectId = isset($jsonKey['project_id']) ? $jsonKey['project_id'] : 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) - { - if (empty($authUri)) { - return $metadata; - } - $this->auth->setAudience($authUri); - return parent::updateMetadata($metadata, $authUri, $httpHandler); - } - /** - * Implements FetchAuthTokenInterface#fetchAuthToken. - * - * @param callable $httpHandler - * - * @return array|void A set of auth related metadata, containing the - * following keys: - * - access_token (string) - */ - public function fetchAuthToken(callable $httpHandler = null) - { - $audience = $this->auth->getAudience(); - if (empty($audience)) { - return null; - } - $access_token = $this->auth->toJwt(); - // Set the self-signed access token in OAuth2 for getLastReceivedToken - $this->auth->setAccessToken($access_token); - return array('access_token' => $access_token); - } - /** - * @return string - */ - public function getCacheKey() - { - return $this->auth->getCacheKey(); - } - /** - * @return array - */ - public function getLastReceivedToken() - { - return $this->auth->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) - { - return $this->projectId; - } - /** - * 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) - { - return $this->auth->getIssuer(); - } - /** - * Get the quota project used for this API request - * - * @return string|null - */ - public function getQuotaProject() - { - return $this->quotaProject; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/UserRefreshCredentials.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/UserRefreshCredentials.php deleted file mode 100644 index 0902377..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Credentials/UserRefreshCredentials.php +++ /dev/null @@ -1,117 +0,0 @@ -auth = new \WPMailSMTP\Vendor\Google\Auth\OAuth2(['clientId' => $jsonKey['client_id'], 'clientSecret' => $jsonKey['client_secret'], 'refresh_token' => $jsonKey['refresh_token'], 'scope' => $scope, 'tokenCredentialUri' => self::TOKEN_CREDENTIAL_URI]); - if (\array_key_exists('quota_project_id', $jsonKey)) { - $this->quotaProject = (string) $jsonKey['quota_project_id']; - } - } - /** - * @param callable $httpHandler - * - * @return array A set of auth related metadata, containing the following - * keys: - * - access_token (string) - * - expires_in (int) - * - scope (string) - * - token_type (string) - * - id_token (string) - */ - public function fetchAuthToken(callable $httpHandler = null) - { - return $this->auth->fetchAuthToken($httpHandler); - } - /** - * @return string - */ - public function getCacheKey() - { - return $this->auth->getClientId() . ':' . $this->auth->getCacheKey(); - } - /** - * @return array - */ - public function getLastReceivedToken() - { - return $this->auth->getLastReceivedToken(); - } - /** - * Get the quota project used for this API request - * - * @return string|null - */ - public function getQuotaProject() - { - return $this->quotaProject; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/CredentialsLoader.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/CredentialsLoader.php deleted file mode 100644 index 8ae1fa2..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/CredentialsLoader.php +++ /dev/null @@ -1,207 +0,0 @@ -setDefaultOption('auth', 'google_auth'); - $subscriber = new \WPMailSMTP\Vendor\Google\Auth\Subscriber\AuthTokenSubscriber($fetcher, $httpHandler, $tokenCallback); - $client->getEmitter()->attach($subscriber); - return $client; - } - $middleware = new \WPMailSMTP\Vendor\Google\Auth\Middleware\AuthTokenMiddleware($fetcher, $httpHandler, $tokenCallback); - $stack = \WPMailSMTP\Vendor\GuzzleHttp\HandlerStack::create(); - $stack->push($middleware); - return new \WPMailSMTP\Vendor\GuzzleHttp\Client(['handler' => $stack, 'auth' => 'google_auth'] + $httpClientOptions); - } - /** - * Create a new instance of InsecureCredentials. - * - * @return InsecureCredentials - */ - public static function makeInsecureCredentials() - { - return new \WPMailSMTP\Vendor\Google\Auth\Credentials\InsecureCredentials(); - } - /** - * export a callback function which updates runtime metadata. - * - * @return array updateMetadata function - * @deprecated - */ - public function getUpdateMetadataFunc() - { - return array($this, 'updateMetadata'); - } - /** - * 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) - { - if (isset($metadata[self::AUTH_METADATA_KEY])) { - // Auth metadata has already been set - return $metadata; - } - $result = $this->fetchAuthToken($httpHandler); - if (!isset($result['access_token'])) { - return $metadata; - } - $metadata_copy = $metadata; - $metadata_copy[self::AUTH_METADATA_KEY] = array('Bearer ' . $result['access_token']); - return $metadata_copy; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/FetchAuthTokenCache.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/FetchAuthTokenCache.php deleted file mode 100644 index c0e8321..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/FetchAuthTokenCache.php +++ /dev/null @@ -1,201 +0,0 @@ -fetcher = $fetcher; - $this->cache = $cache; - $this->cacheConfig = \array_merge(['lifetime' => 1500, 'prefix' => ''], (array) $cacheConfig); - } - /** - * 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) - { - if ($cached = $this->fetchAuthTokenFromCache()) { - return $cached; - } - $auth_token = $this->fetcher->fetchAuthToken($httpHandler); - $this->saveAuthTokenInCache($auth_token); - return $auth_token; - } - /** - * @return string - */ - public function getCacheKey() - { - return $this->getFullCacheKey($this->fetcher->getCacheKey()); - } - /** - * @return array|null - */ - public function getLastReceivedToken() - { - return $this->fetcher->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) - { - return $this->fetcher->getClientName($httpHandler); - } - /** - * 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) - { - if (!$this->fetcher instanceof \WPMailSMTP\Vendor\Google\Auth\SignBlobInterface) { - throw new \RuntimeException('Credentials fetcher does not implement ' . 'Google\\Auth\\SignBlobInterface'); - } - return $this->fetcher->signBlob($stringToSign, $forceOpenSsl); - } - /** - * Get the quota project used for this API request from the credentials - * fetcher. - * - * @return string|null - */ - public function getQuotaProject() - { - if ($this->fetcher instanceof \WPMailSMTP\Vendor\Google\Auth\GetQuotaProjectInterface) { - return $this->fetcher->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) - { - if (!$this->fetcher instanceof \WPMailSMTP\Vendor\Google\Auth\ProjectIdProviderInterface) { - throw new \RuntimeException('Credentials fetcher does not implement ' . 'Google\\Auth\\ProvidesProjectIdInterface'); - } - return $this->fetcher->getProjectId($httpHandler); - } - /** - * 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) - { - if (!$this->fetcher instanceof \WPMailSMTP\Vendor\Google\Auth\UpdateMetadataInterface) { - throw new \RuntimeException('Credentials fetcher does not implement ' . 'Google\\Auth\\UpdateMetadataInterface'); - } - $cached = $this->fetchAuthTokenFromCache($authUri); - if ($cached) { - // Set the access token in the `Authorization` metadata header so - // the downstream call to updateMetadata know they don't need to - // fetch another token. - if (isset($cached['access_token'])) { - $metadata[self::AUTH_METADATA_KEY] = ['Bearer ' . $cached['access_token']]; - } - } - $newMetadata = $this->fetcher->updateMetadata($metadata, $authUri, $httpHandler); - if (!$cached && ($token = $this->fetcher->getLastReceivedToken())) { - $this->saveAuthTokenInCache($token, $authUri); - } - return $newMetadata; - } - private function fetchAuthTokenFromCache($authUri = null) - { - // Use the cached value if its available. - // - // TODO: correct caching; update the call to setCachedValue to set the expiry - // to the value returned with the auth token. - // - // TODO: correct caching; enable the cache to be cleared. - // if $authUri is set, use it as the cache key - $cacheKey = $authUri ? $this->getFullCacheKey($authUri) : $this->fetcher->getCacheKey(); - $cached = $this->getCachedValue($cacheKey); - if (\is_array($cached)) { - if (empty($cached['expires_at'])) { - // If there is no expiration data, assume token is not expired. - // (for JwtAccess and ID tokens) - return $cached; - } - if (\time() < $cached['expires_at']) { - // access token is not expired - return $cached; - } - } - return null; - } - private function saveAuthTokenInCache($authToken, $authUri = null) - { - if (isset($authToken['access_token']) || isset($authToken['id_token'])) { - // if $authUri is set, use it as the cache key - $cacheKey = $authUri ? $this->getFullCacheKey($authUri) : $this->fetcher->getCacheKey(); - $this->setCachedValue($cacheKey, $authToken); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/FetchAuthTokenInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/FetchAuthTokenInterface.php deleted file mode 100644 index 4224480..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/FetchAuthTokenInterface.php +++ /dev/null @@ -1,52 +0,0 @@ -cache = $cache; - $this->cacheConfig = \array_merge(['lifetime' => 1500, 'prefix' => ''], (array) $cacheConfig); - } - /** - * 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) - { - if (\is_null($this->cache)) { - return \WPMailSMTP\Vendor\Google\Auth\Credentials\GCECredentials::onGce($httpHandler); - } - $cacheKey = self::GCE_CACHE_KEY; - $onGce = $this->getCachedValue($cacheKey); - if (\is_null($onGce)) { - $onGce = \WPMailSMTP\Vendor\Google\Auth\Credentials\GCECredentials::onGce($httpHandler); - $this->setCachedValue($cacheKey, $onGce); - } - return $onGce; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/GetQuotaProjectInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/GetQuotaProjectInterface.php deleted file mode 100644 index da6c332..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/GetQuotaProjectInterface.php +++ /dev/null @@ -1,32 +0,0 @@ -client = $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(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options = []) - { - $response = $this->client->send($this->createGuzzle5Request($request, $options)); - return $this->createPsr7Response($response); - } - /** - * Accepts a PSR-7 request and an array of options and returns a PromiseInterface - * - * @param RequestInterface $request - * @param array $options - * @return Promise - */ - public function async(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options = []) - { - if (!\class_exists('WPMailSMTP\\Vendor\\GuzzleHttp\\Promise\\Promise')) { - throw new \Exception('Install guzzlehttp/promises to use async with Guzzle 5'); - } - $futureResponse = $this->client->send($this->createGuzzle5Request($request, ['future' => \true] + $options)); - $promise = new \WPMailSMTP\Vendor\GuzzleHttp\Promise\Promise(function () use($futureResponse) { - try { - $futureResponse->wait(); - } catch (\Exception $e) { - // The promise is already delivered when the exception is - // thrown, so don't rethrow it. - } - }, [$futureResponse, 'cancel']); - $futureResponse->then([$promise, 'resolve'], [$promise, 'reject']); - return $promise->then(function (\WPMailSMTP\Vendor\GuzzleHttp\Message\ResponseInterface $response) { - // Adapt the Guzzle 5 Response to a PSR-7 Response. - return $this->createPsr7Response($response); - }, function (\Exception $e) { - return new \WPMailSMTP\Vendor\GuzzleHttp\Promise\RejectedPromise($e); - }); - } - private function createGuzzle5Request(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) - { - return $this->client->createRequest($request->getMethod(), $request->getUri(), \array_merge_recursive(['headers' => $request->getHeaders(), 'body' => $request->getBody()], $options)); - } - private function createPsr7Response(\WPMailSMTP\Vendor\GuzzleHttp\Message\ResponseInterface $response) - { - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Response($response->getStatusCode(), $response->getHeaders() ?: [], $response->getBody(), $response->getProtocolVersion(), $response->getReasonPhrase()); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/HttpHandler/Guzzle6HttpHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/HttpHandler/Guzzle6HttpHandler.php deleted file mode 100644 index 5f3fe30..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/HttpHandler/Guzzle6HttpHandler.php +++ /dev/null @@ -1,59 +0,0 @@ -client = $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(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options = []) - { - return $this->client->send($request, $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(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options = []) - { - return $this->client->sendAsync($request, $options); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/HttpHandler/Guzzle7HttpHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/HttpHandler/Guzzle7HttpHandler.php deleted file mode 100644 index 3690d42..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/HttpHandler/Guzzle7HttpHandler.php +++ /dev/null @@ -1,22 +0,0 @@ -httpHandler = $httpHandler ?: \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build(\WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpClientCache::getHttpClient()); - } - /** - * 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 = []) - { - $httpHandler = $this->httpHandler; - $name = \sprintf(self::SERVICE_ACCOUNT_NAME, $email); - $uri = self::IAM_API_ROOT . '/' . \sprintf(self::SIGN_BLOB_PATH, $name); - if ($delegates) { - foreach ($delegates as &$delegate) { - $delegate = \sprintf(self::SERVICE_ACCOUNT_NAME, $delegate); - } - } else { - $delegates = [$name]; - } - $body = ['delegates' => $delegates, 'payload' => \base64_encode($stringToSign)]; - $headers = ['Authorization' => 'Bearer ' . $accessToken]; - $request = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $uri, $headers, \WPMailSMTP\Vendor\GuzzleHttp\Psr7\stream_for(\json_encode($body))); - $res = $httpHandler($request); - $body = \json_decode((string) $res->getBody(), \true); - return $body['signedBlob']; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Middleware/AuthTokenMiddleware.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Middleware/AuthTokenMiddleware.php deleted file mode 100644 index b06cbac..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Middleware/AuthTokenMiddleware.php +++ /dev/null @@ -1,125 +0,0 @@ -' - */ -class AuthTokenMiddleware -{ - /** - * @var callback - */ - private $httpHandler; - /** - * @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(\WPMailSMTP\Vendor\Google\Auth\FetchAuthTokenInterface $fetcher, callable $httpHandler = null, callable $tokenCallback = null) - { - $this->fetcher = $fetcher; - $this->httpHandler = $httpHandler; - $this->tokenCallback = $tokenCallback; - } - /** - * 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) - { - return function (\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) use($handler) { - // Requests using "auth"="google_auth" will be authorized. - if (!isset($options['auth']) || $options['auth'] !== 'google_auth') { - return $handler($request, $options); - } - $request = $request->withHeader('authorization', 'Bearer ' . $this->fetchToken()); - if ($quotaProject = $this->getQuotaProject()) { - $request = $request->withHeader(\WPMailSMTP\Vendor\Google\Auth\GetQuotaProjectInterface::X_GOOG_USER_PROJECT_HEADER, $quotaProject); - } - return $handler($request, $options); - }; - } - /** - * Call fetcher to fetch the token. - * - * @return string - */ - private function fetchToken() - { - $auth_tokens = $this->fetcher->fetchAuthToken($this->httpHandler); - if (\array_key_exists('access_token', $auth_tokens)) { - // notify the callback if applicable - if ($this->tokenCallback) { - \call_user_func($this->tokenCallback, $this->fetcher->getCacheKey(), $auth_tokens['access_token']); - } - return $auth_tokens['access_token']; - } - if (\array_key_exists('id_token', $auth_tokens)) { - return $auth_tokens['id_token']; - } - } - private function getQuotaProject() - { - if ($this->fetcher instanceof \WPMailSMTP\Vendor\Google\Auth\GetQuotaProjectInterface) { - return $this->fetcher->getQuotaProject(); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Middleware/ScopedAccessTokenMiddleware.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Middleware/ScopedAccessTokenMiddleware.php deleted file mode 100644 index 2eeaa22..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Middleware/ScopedAccessTokenMiddleware.php +++ /dev/null @@ -1,148 +0,0 @@ -' - */ -class ScopedAccessTokenMiddleware -{ - use CacheTrait; - const DEFAULT_CACHE_LIFETIME = 1500; - /** - * @var CacheItemPoolInterface - */ - private $cache; - /** - * @var array configuration - */ - private $cacheConfig; - /** - * @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, \WPMailSMTP\Vendor\Psr\Cache\CacheItemPoolInterface $cache = null) - { - $this->tokenFunc = $tokenFunc; - if (!(\is_string($scopes) || \is_array($scopes))) { - throw new \InvalidArgumentException('wants scope should be string or array'); - } - $this->scopes = $scopes; - if (!\is_null($cache)) { - $this->cache = $cache; - $this->cacheConfig = \array_merge(['lifetime' => self::DEFAULT_CACHE_LIFETIME, 'prefix' => ''], $cacheConfig); - } - } - /** - * 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 function (\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) use($handler) { - // Requests using "auth"="scoped" will be authorized. - if (!isset($options['auth']) || $options['auth'] !== 'scoped') { - return $handler($request, $options); - } - $request = $request->withHeader('authorization', 'Bearer ' . $this->fetchToken()); - return $handler($request, $options); - }; - } - /** - * @return string - */ - private function getCacheKey() - { - $key = null; - if (\is_string($this->scopes)) { - $key .= $this->scopes; - } elseif (\is_array($this->scopes)) { - $key .= \implode(':', $this->scopes); - } - return $key; - } - /** - * Determine if token is available in the cache, if not call tokenFunc to - * fetch it. - * - * @return string - */ - private function fetchToken() - { - $cacheKey = $this->getCacheKey(); - $cached = $this->getCachedValue($cacheKey); - if (!empty($cached)) { - return $cached; - } - $token = \call_user_func($this->tokenFunc, $this->scopes); - $this->setCachedValue($cacheKey, $token); - return $token; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Middleware/SimpleMiddleware.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Middleware/SimpleMiddleware.php deleted file mode 100644 index 1a82844..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Middleware/SimpleMiddleware.php +++ /dev/null @@ -1,86 +0,0 @@ -config = \array_merge(['key' => null], $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) - { - return function (\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) use($handler) { - // Requests using "auth"="scoped" will be authorized. - if (!isset($options['auth']) || $options['auth'] !== 'simple') { - return $handler($request, $options); - } - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\parse_query($request->getUri()->getQuery()); - $params = \array_merge($query, $this->config); - $uri = $request->getUri()->withQuery(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($params)); - $request = $request->withUri($uri); - return $handler($request, $options); - }; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/OAuth2.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/OAuth2.php deleted file mode 100644 index 7f10e4f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/OAuth2.php +++ /dev/null @@ -1,1194 +0,0 @@ - self::DEFAULT_EXPIRY_SECONDS, 'extensionParams' => [], 'authorizationUri' => null, 'redirectUri' => null, 'tokenCredentialUri' => null, 'state' => null, 'username' => null, 'password' => null, 'clientId' => null, 'clientSecret' => null, 'issuer' => null, 'sub' => null, 'audience' => null, 'signingKey' => null, 'signingKeyId' => null, 'signingAlgorithm' => null, 'scope' => null, 'additionalClaims' => []], $config); - $this->setAuthorizationUri($opts['authorizationUri']); - $this->setRedirectUri($opts['redirectUri']); - $this->setTokenCredentialUri($opts['tokenCredentialUri']); - $this->setState($opts['state']); - $this->setUsername($opts['username']); - $this->setPassword($opts['password']); - $this->setClientId($opts['clientId']); - $this->setClientSecret($opts['clientSecret']); - $this->setIssuer($opts['issuer']); - $this->setSub($opts['sub']); - $this->setExpiry($opts['expiry']); - $this->setAudience($opts['audience']); - $this->setSigningKey($opts['signingKey']); - $this->setSigningKeyId($opts['signingKeyId']); - $this->setSigningAlgorithm($opts['signingAlgorithm']); - $this->setScope($opts['scope']); - $this->setExtensionParams($opts['extensionParams']); - $this->setAdditionalClaims($opts['additionalClaims']); - $this->updateToken($opts); - } - /** - * 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 lower than 3.0.0, if - * `$publicKey` is null, the key is decoded without being verified. In - * newer versions, if a public key is not given, this method will throw an - * `\InvalidArgumentException`. - * - * @param string $publicKey The public key to use to authenticate the token - * @param array $allowed_algs List of supported verification algorithms - * @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 SignatureInvalidException If the signature is invalid. - * @throws BeforeValidException If the token is not yet valid. - * @throws ExpiredException If the token has expired. - * @return null|object - */ - public function verifyIdToken($publicKey = null, $allowed_algs = array()) - { - $idToken = $this->getIdToken(); - if (\is_null($idToken)) { - return null; - } - $resp = $this->jwtDecode($idToken, $publicKey, $allowed_algs); - if (!\property_exists($resp, 'aud')) { - throw new \DomainException('No audience found the id token'); - } - if ($resp->aud != $this->getAudience()) { - throw new \DomainException('Wrong audience present in the id token'); - } - return $resp; - } - /** - * Obtains the encoded jwt from the instance data. - * - * @param array $config array optional configuration parameters - * @return string - */ - public function toJwt(array $config = []) - { - if (\is_null($this->getSigningKey())) { - throw new \DomainException('No signing key available'); - } - if (\is_null($this->getSigningAlgorithm())) { - throw new \DomainException('No signing algorithm specified'); - } - $now = \time(); - $opts = \array_merge(['skew' => self::DEFAULT_SKEW_SECONDS], $config); - $assertion = ['iss' => $this->getIssuer(), 'aud' => $this->getAudience(), 'exp' => $now + $this->getExpiry(), 'iat' => $now - $opts['skew']]; - foreach ($assertion as $k => $v) { - if (\is_null($v)) { - throw new \DomainException($k . ' should not be null'); - } - } - if (!\is_null($this->getScope())) { - $assertion['scope'] = $this->getScope(); - } - if (!\is_null($this->getSub())) { - $assertion['sub'] = $this->getSub(); - } - $assertion += $this->getAdditionalClaims(); - return $this->jwtEncode($assertion, $this->getSigningKey(), $this->getSigningAlgorithm(), $this->getSigningKeyId()); - } - /** - * Generates a request for token credentials. - * - * @return RequestInterface the authorization Url. - */ - public function generateCredentialsRequest() - { - $uri = $this->getTokenCredentialUri(); - if (\is_null($uri)) { - throw new \DomainException('No token credential URI was set.'); - } - $grantType = $this->getGrantType(); - $params = array('grant_type' => $grantType); - switch ($grantType) { - case 'authorization_code': - $params['code'] = $this->getCode(); - $params['redirect_uri'] = $this->getRedirectUri(); - $this->addClientCredentials($params); - break; - case 'password': - $params['username'] = $this->getUsername(); - $params['password'] = $this->getPassword(); - $this->addClientCredentials($params); - break; - case 'refresh_token': - $params['refresh_token'] = $this->getRefreshToken(); - $this->addClientCredentials($params); - break; - case self::JWT_URN: - $params['assertion'] = $this->toJwt(); - break; - default: - if (!\is_null($this->getRedirectUri())) { - # Grant type was supposed to be 'authorization_code', as there - # is a redirect URI. - throw new \DomainException('Missing authorization code'); - } - unset($params['grant_type']); - if (!\is_null($grantType)) { - $params['grant_type'] = $grantType; - } - $params = \array_merge($params, $this->getExtensionParams()); - } - $headers = ['Cache-Control' => 'no-store', 'Content-Type' => 'application/x-www-form-urlencoded']; - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $uri, $headers, \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($params)); - } - /** - * 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) - { - if (\is_null($httpHandler)) { - $httpHandler = \WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpHandlerFactory::build(\WPMailSMTP\Vendor\Google\Auth\HttpHandler\HttpClientCache::getHttpClient()); - } - $response = $httpHandler($this->generateCredentialsRequest()); - $credentials = $this->parseTokenResponse($response); - $this->updateToken($credentials); - return $credentials; - } - /** - * 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() - { - if (\is_array($this->scope)) { - return \implode(':', $this->scope); - } - if ($this->audience) { - return $this->audience; - } - // If scope has not set, return null to indicate no caching. - return null; - } - /** - * Parses the fetched tokens. - * - * @param ResponseInterface $resp the response. - * @return array the tokens parsed from the response body. - * @throws \Exception - */ - public function parseTokenResponse(\WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $resp) - { - $body = (string) $resp->getBody(); - if ($resp->hasHeader('Content-Type') && $resp->getHeaderLine('Content-Type') == 'application/x-www-form-urlencoded') { - $res = array(); - \parse_str($body, $res); - return $res; - } - // Assume it's JSON; if it's not throw an exception - if (null === ($res = \json_decode($body, \true))) { - throw new \Exception('Invalid JSON response'); - } - return $res; - } - /** - * 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. - */ - public function updateToken(array $config) - { - $opts = \array_merge(['extensionParams' => [], 'access_token' => null, 'id_token' => null, 'expires_in' => null, 'expires_at' => null, 'issued_at' => null], $config); - $this->setExpiresAt($opts['expires_at']); - $this->setExpiresIn($opts['expires_in']); - // By default, the token is issued at `Time.now` when `expiresIn` is set, - // but this can be used to supply a more precise time. - if (!\is_null($opts['issued_at'])) { - $this->setIssuedAt($opts['issued_at']); - } - $this->setAccessToken($opts['access_token']); - $this->setIdToken($opts['id_token']); - // The refresh token should only be updated if a value is explicitly - // passed in, as some access token responses do not include a refresh - // token. - if (\array_key_exists('refresh_token', $opts)) { - $this->setRefreshToken($opts['refresh_token']); - } - } - /** - * 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 = []) - { - if (\is_null($this->getAuthorizationUri())) { - throw new \InvalidArgumentException('requires an authorizationUri to have been set'); - } - $params = \array_merge(['response_type' => 'code', 'access_type' => 'offline', 'client_id' => $this->clientId, 'redirect_uri' => $this->redirectUri, 'state' => $this->state, 'scope' => $this->getScope()], $config); - // Validate the auth_params - if (\is_null($params['client_id'])) { - throw new \InvalidArgumentException('missing the required client identifier'); - } - if (\is_null($params['redirect_uri'])) { - throw new \InvalidArgumentException('missing the required redirect URI'); - } - if (!empty($params['prompt']) && !empty($params['approval_prompt'])) { - throw new \InvalidArgumentException('prompt and approval_prompt are mutually exclusive'); - } - // Construct the uri object; return it if it is valid. - $result = clone $this->authorizationUri; - $existingParams = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\parse_query($result->getQuery()); - $result = $result->withQuery(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query(\array_merge($existingParams, $params))); - if ($result->getScheme() != 'https') { - throw new \InvalidArgumentException('Authorization endpoint must be protected by TLS'); - } - return $result; - } - /** - * Sets the authorization server's HTTP endpoint capable of authenticating - * the end-user and obtaining authorization. - * - * @param string $uri - */ - public function setAuthorizationUri($uri) - { - $this->authorizationUri = $this->coerceUri($uri); - } - /** - * Gets the authorization server's HTTP endpoint capable of authenticating - * the end-user and obtaining authorization. - * - * @return UriInterface - */ - public function getAuthorizationUri() - { - return $this->authorizationUri; - } - /** - * Gets the authorization server's HTTP endpoint capable of issuing tokens - * and refreshing expired tokens. - * - * @return string - */ - public function getTokenCredentialUri() - { - return $this->tokenCredentialUri; - } - /** - * Sets the authorization server's HTTP endpoint capable of issuing tokens - * and refreshing expired tokens. - * - * @param string $uri - */ - public function setTokenCredentialUri($uri) - { - $this->tokenCredentialUri = $this->coerceUri($uri); - } - /** - * Gets the redirection URI used in the initial request. - * - * @return string - */ - public function getRedirectUri() - { - return $this->redirectUri; - } - /** - * Sets the redirection URI used in the initial request. - * - * @param string $uri - */ - public function setRedirectUri($uri) - { - if (\is_null($uri)) { - $this->redirectUri = null; - return; - } - // redirect URI must be absolute - if (!$this->isAbsoluteUri($uri)) { - // "postmessage" is a reserved URI string in Google-land - // @see https://developers.google.com/identity/sign-in/web/server-side-flow - if ('postmessage' !== (string) $uri) { - throw new \InvalidArgumentException('Redirect URI must be absolute'); - } - } - $this->redirectUri = (string) $uri; - } - /** - * Gets the scope of the access requests as a space-delimited String. - * - * @return string - */ - public function getScope() - { - if (\is_null($this->scope)) { - return $this->scope; - } - return \implode(' ', $this->scope); - } - /** - * Sets the scope of the access request, expressed either as an Array or as - * a space-delimited String. - * - * @param string|array $scope - * @throws InvalidArgumentException - */ - public function setScope($scope) - { - if (\is_null($scope)) { - $this->scope = null; - } elseif (\is_string($scope)) { - $this->scope = \explode(' ', $scope); - } elseif (\is_array($scope)) { - foreach ($scope as $s) { - $pos = \strpos($s, ' '); - if ($pos !== \false) { - throw new \InvalidArgumentException('array scope values should not contain spaces'); - } - } - $this->scope = $scope; - } else { - throw new \InvalidArgumentException('scopes should be a string or array of strings'); - } - } - /** - * Gets the current grant type. - * - * @return string - */ - public function getGrantType() - { - if (!\is_null($this->grantType)) { - return $this->grantType; - } - // Returns the inferred grant type, based on the current object instance - // state. - if (!\is_null($this->code)) { - return 'authorization_code'; - } - if (!\is_null($this->refreshToken)) { - return 'refresh_token'; - } - if (!\is_null($this->username) && !\is_null($this->password)) { - return 'password'; - } - if (!\is_null($this->issuer) && !\is_null($this->signingKey)) { - return self::JWT_URN; - } - return null; - } - /** - * Sets the current grant type. - * - * @param $grantType - * @throws InvalidArgumentException - */ - public function setGrantType($grantType) - { - if (\in_array($grantType, self::$knownGrantTypes)) { - $this->grantType = $grantType; - } else { - // validate URI - if (!$this->isAbsoluteUri($grantType)) { - throw new \InvalidArgumentException('invalid grant type'); - } - $this->grantType = (string) $grantType; - } - } - /** - * Gets an arbitrary string designed to allow the client to maintain state. - * - * @return string - */ - public function getState() - { - return $this->state; - } - /** - * Sets an arbitrary string designed to allow the client to maintain state. - * - * @param string $state - */ - public function setState($state) - { - $this->state = $state; - } - /** - * Gets the authorization code issued to this client. - */ - public function getCode() - { - return $this->code; - } - /** - * Sets the authorization code issued to this client. - * - * @param string $code - */ - public function setCode($code) - { - $this->code = $code; - } - /** - * Gets the resource owner's username. - */ - public function getUsername() - { - return $this->username; - } - /** - * Sets the resource owner's username. - * - * @param string $username - */ - public function setUsername($username) - { - $this->username = $username; - } - /** - * Gets the resource owner's password. - */ - public function getPassword() - { - return $this->password; - } - /** - * Sets the resource owner's password. - * - * @param $password - */ - public function setPassword($password) - { - $this->password = $password; - } - /** - * Sets a unique identifier issued to the client to identify itself to the - * authorization server. - */ - public function getClientId() - { - return $this->clientId; - } - /** - * Sets a unique identifier issued to the client to identify itself to the - * authorization server. - * - * @param $clientId - */ - public function setClientId($clientId) - { - $this->clientId = $clientId; - } - /** - * Gets a shared symmetric secret issued by the authorization server, which - * is used to authenticate the client. - */ - public function getClientSecret() - { - return $this->clientSecret; - } - /** - * Sets a shared symmetric secret issued by the authorization server, which - * is used to authenticate the client. - * - * @param $clientSecret - */ - public function setClientSecret($clientSecret) - { - $this->clientSecret = $clientSecret; - } - /** - * Gets the Issuer ID when using assertion profile. - */ - public function getIssuer() - { - return $this->issuer; - } - /** - * Sets the Issuer ID when using assertion profile. - * - * @param string $issuer - */ - public function setIssuer($issuer) - { - $this->issuer = $issuer; - } - /** - * Gets the target sub when issuing assertions. - */ - public function getSub() - { - return $this->sub; - } - /** - * Sets the target sub when issuing assertions. - * - * @param string $sub - */ - public function setSub($sub) - { - $this->sub = $sub; - } - /** - * Gets the target audience when issuing assertions. - */ - public function getAudience() - { - return $this->audience; - } - /** - * Sets the target audience when issuing assertions. - * - * @param string $audience - */ - public function setAudience($audience) - { - $this->audience = $audience; - } - /** - * Gets the signing key when using an assertion profile. - */ - public function getSigningKey() - { - return $this->signingKey; - } - /** - * Sets the signing key when using an assertion profile. - * - * @param string $signingKey - */ - public function setSigningKey($signingKey) - { - $this->signingKey = $signingKey; - } - /** - * Gets the signing key id when using an assertion profile. - * - * @return string - */ - public function getSigningKeyId() - { - return $this->signingKeyId; - } - /** - * Sets the signing key id when using an assertion profile. - * - * @param string $signingKeyId - */ - public function setSigningKeyId($signingKeyId) - { - $this->signingKeyId = $signingKeyId; - } - /** - * Gets the signing algorithm when using an assertion profile. - * - * @return string - */ - public function getSigningAlgorithm() - { - return $this->signingAlgorithm; - } - /** - * Sets the signing algorithm when using an assertion profile. - * - * @param string $signingAlgorithm - */ - public function setSigningAlgorithm($signingAlgorithm) - { - if (\is_null($signingAlgorithm)) { - $this->signingAlgorithm = null; - } elseif (!\in_array($signingAlgorithm, self::$knownSigningAlgorithms)) { - throw new \InvalidArgumentException('unknown signing algorithm'); - } else { - $this->signingAlgorithm = $signingAlgorithm; - } - } - /** - * Gets the set of parameters used by extension when using an extension - * grant type. - */ - public function getExtensionParams() - { - return $this->extensionParams; - } - /** - * Sets the set of parameters used by extension when using an extension - * grant type. - * - * @param $extensionParams - */ - public function setExtensionParams($extensionParams) - { - $this->extensionParams = $extensionParams; - } - /** - * Gets the number of seconds assertions are valid for. - */ - public function getExpiry() - { - return $this->expiry; - } - /** - * Sets the number of seconds assertions are valid for. - * - * @param int $expiry - */ - public function setExpiry($expiry) - { - $this->expiry = $expiry; - } - /** - * Gets the lifetime of the access token in seconds. - */ - public function getExpiresIn() - { - return $this->expiresIn; - } - /** - * Sets the lifetime of the access token in seconds. - * - * @param int $expiresIn - */ - public function setExpiresIn($expiresIn) - { - if (\is_null($expiresIn)) { - $this->expiresIn = null; - $this->issuedAt = null; - } else { - $this->issuedAt = \time(); - $this->expiresIn = (int) $expiresIn; - } - } - /** - * Gets the time the current access token expires at. - * - * @return int - */ - public function getExpiresAt() - { - if (!\is_null($this->expiresAt)) { - return $this->expiresAt; - } - if (!\is_null($this->issuedAt) && !\is_null($this->expiresIn)) { - return $this->issuedAt + $this->expiresIn; - } - return null; - } - /** - * Returns true if the acccess token has expired. - * - * @return bool - */ - public function isExpired() - { - $expiration = $this->getExpiresAt(); - $now = \time(); - return !\is_null($expiration) && $now >= $expiration; - } - /** - * Sets the time the current access token expires at. - * - * @param int $expiresAt - */ - public function setExpiresAt($expiresAt) - { - $this->expiresAt = $expiresAt; - } - /** - * Gets the time the current access token was issued at. - */ - public function getIssuedAt() - { - return $this->issuedAt; - } - /** - * Sets the time the current access token was issued at. - * - * @param int $issuedAt - */ - public function setIssuedAt($issuedAt) - { - $this->issuedAt = $issuedAt; - } - /** - * Gets the current access token. - */ - public function getAccessToken() - { - return $this->accessToken; - } - /** - * Sets the current access token. - * - * @param string $accessToken - */ - public function setAccessToken($accessToken) - { - $this->accessToken = $accessToken; - } - /** - * Gets the current ID token. - */ - public function getIdToken() - { - return $this->idToken; - } - /** - * Sets the current ID token. - * - * @param $idToken - */ - public function setIdToken($idToken) - { - $this->idToken = $idToken; - } - /** - * Gets the refresh token associated with the current access token. - */ - public function getRefreshToken() - { - return $this->refreshToken; - } - /** - * Sets the refresh token associated with the current access token. - * - * @param $refreshToken - */ - public function setRefreshToken($refreshToken) - { - $this->refreshToken = $refreshToken; - } - /** - * Sets additional claims to be included in the JWT token - * - * @param array $additionalClaims - */ - public function setAdditionalClaims(array $additionalClaims) - { - $this->additionalClaims = $additionalClaims; - } - /** - * Gets the additional claims to be included in the JWT token. - * - * @return array - */ - public function getAdditionalClaims() - { - return $this->additionalClaims; - } - /** - * The expiration of the last received token. - * - * @return array|null - */ - public function getLastReceivedToken() - { - if ($token = $this->getAccessToken()) { - // the bare necessity of an auth token - $authToken = ['access_token' => $token, 'expires_at' => $this->getExpiresAt()]; - } elseif ($idToken = $this->getIdToken()) { - $authToken = ['id_token' => $idToken, 'expires_at' => $this->getExpiresAt()]; - } else { - return null; - } - if ($expiresIn = $this->getExpiresIn()) { - $authToken['expires_in'] = $expiresIn; - } - if ($issuedAt = $this->getIssuedAt()) { - $authToken['issued_at'] = $issuedAt; - } - if ($refreshToken = $this->getRefreshToken()) { - $authToken['refresh_token'] = $refreshToken; - } - return $authToken; - } - /** - * Get the client ID. - * - * Alias of {@see Google\Auth\OAuth2::getClientId()}. - * - * @param callable $httpHandler - * @return string - * @access private - */ - public function getClientName(callable $httpHandler = null) - { - return $this->getClientId(); - } - /** - * @todo handle uri as array - * - * @param string $uri - * @return null|UriInterface - */ - private function coerceUri($uri) - { - if (\is_null($uri)) { - return; - } - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\uri_for($uri); - } - /** - * @param string $idToken - * @param string|array|null $publicKey - * @param array $allowedAlgs - * @return object - */ - private function jwtDecode($idToken, $publicKey, $allowedAlgs) - { - if (\class_exists('WPMailSMTP\\Vendor\\Firebase\\JWT\\JWT')) { - return \WPMailSMTP\Vendor\Firebase\JWT\JWT::decode($idToken, $publicKey, $allowedAlgs); - } - return \WPMailSMTP\Vendor\JWT::decode($idToken, $publicKey, $allowedAlgs); - } - private function jwtEncode($assertion, $signingKey, $signingAlgorithm, $signingKeyId = null) - { - if (\class_exists('WPMailSMTP\\Vendor\\Firebase\\JWT\\JWT')) { - return \WPMailSMTP\Vendor\Firebase\JWT\JWT::encode($assertion, $signingKey, $signingAlgorithm, $signingKeyId); - } - return \WPMailSMTP\Vendor\JWT::encode($assertion, $signingKey, $signingAlgorithm, $signingKeyId); - } - /** - * 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) - { - $uri = $this->coerceUri($uri); - return $uri->getScheme() && ($uri->getHost() || $uri->getPath()); - } - /** - * @param array $params - * @return array - */ - private function addClientCredentials(&$params) - { - $clientId = $this->getClientId(); - $clientSecret = $this->getClientSecret(); - if ($clientId && $clientSecret) { - $params['client_id'] = $clientId; - $params['client_secret'] = $clientSecret; - } - return $params; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/ProjectIdProviderInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/ProjectIdProviderInterface.php deleted file mode 100644 index 6790cd8..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/ProjectIdProviderInterface.php +++ /dev/null @@ -1,32 +0,0 @@ -auth->getSigningKey(); - $signedString = ''; - if (\class_exists('WPMailSMTP\\Vendor\\phpseclib\\Crypt\\RSA') && !$forceOpenssl) { - $rsa = new \WPMailSMTP\Vendor\phpseclib\Crypt\RSA(); - $rsa->loadKey($privateKey); - $rsa->setSignatureMode(\WPMailSMTP\Vendor\phpseclib\Crypt\RSA::SIGNATURE_PKCS1); - $rsa->setHash('sha256'); - $signedString = $rsa->sign($stringToSign); - } elseif (\extension_loaded('openssl')) { - \openssl_sign($stringToSign, $signedString, $privateKey, 'sha256WithRSAEncryption'); - } else { - // @codeCoverageIgnoreStart - throw new \RuntimeException('OpenSSL is not installed.'); - } - // @codeCoverageIgnoreEnd - return \base64_encode($signedString); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/SignBlobInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/SignBlobInterface.php deleted file mode 100644 index 06e43df..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/SignBlobInterface.php +++ /dev/null @@ -1,43 +0,0 @@ -' - */ -class AuthTokenSubscriber implements \WPMailSMTP\Vendor\GuzzleHttp\Event\SubscriberInterface -{ - /** - * @var callable - */ - private $httpHandler; - /** - * @var FetchAuthTokenInterface - */ - private $fetcher; - /** - * @var callable - */ - private $tokenCallback; - /** - * Creates a new AuthTokenSubscriber. - * - * @param FetchAuthTokenInterface $fetcher is used to fetch the auth token - * @param callable $httpHandler (optional) http client to fetch the token. - * @param callable $tokenCallback (optional) function to be called when a new token is fetched. - */ - public function __construct(\WPMailSMTP\Vendor\Google\Auth\FetchAuthTokenInterface $fetcher, callable $httpHandler = null, callable $tokenCallback = null) - { - $this->fetcher = $fetcher; - $this->httpHandler = $httpHandler; - $this->tokenCallback = $tokenCallback; - } - /** - * @return array - */ - public function getEvents() - { - return ['before' => ['onBefore', \WPMailSMTP\Vendor\GuzzleHttp\Event\RequestEvents::SIGN_REQUEST]]; - } - /** - * Updates the request with an Authorization header when auth is 'fetched_auth_token'. - * - * Example: - * ``` - * use GuzzleHttp\Client; - * use Google\Auth\OAuth2; - * use Google\Auth\Subscriber\AuthTokenSubscriber; - * - * $config = [...]; - * $oauth2 = new OAuth2($config) - * $subscriber = new AuthTokenSubscriber($oauth2); - * - * $client = new Client([ - * 'base_url' => 'https://www.googleapis.com/taskqueue/v1beta2/projects/', - * 'defaults' => ['auth' => 'google_auth'] - * ]); - * $client->getEmitter()->attach($subscriber); - * - * $res = $client->get('myproject/taskqueues/myqueue'); - * ``` - * - * @param BeforeEvent $event - */ - public function onBefore(\WPMailSMTP\Vendor\GuzzleHttp\Event\BeforeEvent $event) - { - // Requests using "auth"="google_auth" will be authorized. - $request = $event->getRequest(); - if ($request->getConfig()['auth'] != 'google_auth') { - return; - } - // Fetch the auth token. - $auth_tokens = $this->fetcher->fetchAuthToken($this->httpHandler); - if (\array_key_exists('access_token', $auth_tokens)) { - $request->setHeader('authorization', 'Bearer ' . $auth_tokens['access_token']); - // notify the callback if applicable - if ($this->tokenCallback) { - \call_user_func($this->tokenCallback, $this->fetcher->getCacheKey(), $auth_tokens['access_token']); - } - } - if ($quotaProject = $this->getQuotaProject()) { - $request->setHeader(\WPMailSMTP\Vendor\Google\Auth\GetQuotaProjectInterface::X_GOOG_USER_PROJECT_HEADER, $quotaProject); - } - } - private function getQuotaProject() - { - if ($this->fetcher instanceof \WPMailSMTP\Vendor\Google\Auth\GetQuotaProjectInterface) { - return $this->fetcher->getQuotaProject(); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Subscriber/ScopedAccessTokenSubscriber.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Subscriber/ScopedAccessTokenSubscriber.php deleted file mode 100644 index c9bc8f6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Subscriber/ScopedAccessTokenSubscriber.php +++ /dev/null @@ -1,154 +0,0 @@ -' - */ -class ScopedAccessTokenSubscriber implements \WPMailSMTP\Vendor\GuzzleHttp\Event\SubscriberInterface -{ - use CacheTrait; - const DEFAULT_CACHE_LIFETIME = 1500; - /** - * @var CacheItemPoolInterface - */ - private $cache; - /** - * @var callable The access token generator function - */ - private $tokenFunc; - /** - * @var array|string The scopes used to generate the token - */ - private $scopes; - /** - * @var array - */ - private $cacheConfig; - /** - * Creates a new ScopedAccessTokenSubscriber. - * - * @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, \WPMailSMTP\Vendor\Psr\Cache\CacheItemPoolInterface $cache = null) - { - $this->tokenFunc = $tokenFunc; - if (!(\is_string($scopes) || \is_array($scopes))) { - throw new \InvalidArgumentException('wants scope should be string or array'); - } - $this->scopes = $scopes; - if (!\is_null($cache)) { - $this->cache = $cache; - $this->cacheConfig = \array_merge(['lifetime' => self::DEFAULT_CACHE_LIFETIME, 'prefix' => ''], $cacheConfig); - } - } - /** - * @return array - */ - public function getEvents() - { - return ['before' => ['onBefore', \WPMailSMTP\Vendor\GuzzleHttp\Event\RequestEvents::SIGN_REQUEST]]; - } - /** - * Updates the request with an Authorization header when auth is 'scoped'. - * - * E.g this could be used to authenticate using the AppEngine AppIdentityService. - * - * Example: - * ``` - * use google\appengine\api\app_identity\AppIdentityService; - * use Google\Auth\Subscriber\ScopedAccessTokenSubscriber; - * use GuzzleHttp\Client; - * - * $scope = 'https://www.googleapis.com/auth/taskqueue' - * $subscriber = new ScopedAccessToken( - * 'AppIdentityService::getAccessToken', - * $scope, - * ['prefix' => 'Google\Auth\ScopedAccessToken::'], - * $cache = new Memcache() - * ); - * - * $client = new Client([ - * 'base_url' => 'https://www.googleapis.com/taskqueue/v1beta2/projects/', - * 'defaults' => ['auth' => 'scoped'] - * ]); - * $client->getEmitter()->attach($subscriber); - * - * $res = $client->get('myproject/taskqueues/myqueue'); - * ``` - * - * @param BeforeEvent $event - */ - public function onBefore(\WPMailSMTP\Vendor\GuzzleHttp\Event\BeforeEvent $event) - { - // Requests using "auth"="scoped" will be authorized. - $request = $event->getRequest(); - if ($request->getConfig()['auth'] != 'scoped') { - return; - } - $auth_header = 'Bearer ' . $this->fetchToken(); - $request->setHeader('authorization', $auth_header); - } - /** - * @return string - */ - private function getCacheKey() - { - $key = null; - if (\is_string($this->scopes)) { - $key .= $this->scopes; - } elseif (\is_array($this->scopes)) { - $key .= \implode(':', $this->scopes); - } - return $key; - } - /** - * Determine if token is available in the cache, if not call tokenFunc to - * fetch it. - * - * @return string - */ - private function fetchToken() - { - $cacheKey = $this->getCacheKey(); - $cached = $this->getCachedValue($cacheKey); - if (!empty($cached)) { - return $cached; - } - $token = \call_user_func($this->tokenFunc, $this->scopes); - $this->setCachedValue($cacheKey, $token); - return $token; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Subscriber/SimpleSubscriber.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Subscriber/SimpleSubscriber.php deleted file mode 100644 index d7e5155..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/Subscriber/SimpleSubscriber.php +++ /dev/null @@ -1,88 +0,0 @@ -config = \array_merge([], $config); - } - /** - * @return array - */ - public function getEvents() - { - return ['before' => ['onBefore', \WPMailSMTP\Vendor\GuzzleHttp\Event\RequestEvents::SIGN_REQUEST]]; - } - /** - * Updates the request query with the developer key if auth is set to simple. - * - * Example: - * ``` - * use Google\Auth\Subscriber\SimpleSubscriber; - * use GuzzleHttp\Client; - * - * $my_key = 'is not the same as yours'; - * $subscriber = new SimpleSubscriber(['key' => $my_key]); - * - * $client = new Client([ - * 'base_url' => 'https://www.googleapis.com/discovery/v1/', - * 'defaults' => ['auth' => 'simple'] - * ]); - * $client->getEmitter()->attach($subscriber); - * - * $res = $client->get('drive/v2/rest'); - * ``` - * - * @param BeforeEvent $event - */ - public function onBefore(\WPMailSMTP\Vendor\GuzzleHttp\Event\BeforeEvent $event) - { - // Requests using "auth"="simple" with the developer key. - $request = $event->getRequest(); - if ($request->getConfig()['auth'] != 'simple') { - return; - } - $request->getQuery()->overwriteWith($this->config); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/UpdateMetadataInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/UpdateMetadataInterface.php deleted file mode 100644 index 5a4f5cd..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/google/auth/src/UpdateMetadataInterface.php +++ /dev/null @@ -1,36 +0,0 @@ - - -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. diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Client.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Client.php deleted file mode 100644 index a1dbfd5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Client.php +++ /dev/null @@ -1,424 +0,0 @@ - '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 \GuzzleHttp\RequestOptions for a list of available request options. - */ - public function __construct(array $config = []) - { - if (!isset($config['handler'])) { - $config['handler'] = \WPMailSMTP\Vendor\GuzzleHttp\HandlerStack::create(); - } elseif (!\is_callable($config['handler'])) { - throw new \InvalidArgumentException('handler must be a callable'); - } - // Convert the base_uri to a UriInterface - if (isset($config['base_uri'])) { - $config['base_uri'] = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\uri_for($config['base_uri']); - } - $this->configureDefaults($config); - } - /** - * @param string $method - * @param array $args - * - * @return Promise\PromiseInterface - */ - public function __call($method, $args) - { - if (\count($args) < 1) { - throw new \InvalidArgumentException('Magic request methods require a URI and optional options array'); - } - $uri = $args[0]; - $opts = isset($args[1]) ? $args[1] : []; - return \substr($method, -5) === 'Async' ? $this->requestAsync(\substr($method, 0, -5), $uri, $opts) : $this->request($method, $uri, $opts); - } - /** - * Asynchronously send an HTTP request. - * - * @param array $options Request options to apply to the given - * request and to the transfer. See \GuzzleHttp\RequestOptions. - * - * @return Promise\PromiseInterface - */ - public function sendAsync(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options = []) - { - // Merge the base URI into the request URI if needed. - $options = $this->prepareDefaults($options); - return $this->transfer($request->withUri($this->buildUri($request->getUri(), $options), $request->hasHeader('Host')), $options); - } - /** - * Send an HTTP request. - * - * @param array $options Request options to apply to the given - * request and to the transfer. See \GuzzleHttp\RequestOptions. - * - * @return ResponseInterface - * @throws GuzzleException - */ - public function send(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options = []) - { - $options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::SYNCHRONOUS] = \true; - return $this->sendAsync($request, $options)->wait(); - } - /** - * 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. - * - * @return Promise\PromiseInterface - */ - public function requestAsync($method, $uri = '', array $options = []) - { - $options = $this->prepareDefaults($options); - // Remove request modifying parameter because it can be done up-front. - $headers = isset($options['headers']) ? $options['headers'] : []; - $body = isset($options['body']) ? $options['body'] : null; - $version = isset($options['version']) ? $options['version'] : '1.1'; - // Merge the URI into the base URI. - $uri = $this->buildUri($uri, $options); - if (\is_array($body)) { - $this->invalidBody(); - } - $request = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request($method, $uri, $headers, $body, $version); - // Remove the option so that they are not doubly-applied. - unset($options['headers'], $options['body'], $options['version']); - return $this->transfer($request, $options); - } - /** - * 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. - * - * @return ResponseInterface - * @throws GuzzleException - */ - public function request($method, $uri = '', array $options = []) - { - $options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::SYNCHRONOUS] = \true; - return $this->requestAsync($method, $uri, $options)->wait(); - } - /** - * 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 - */ - public function getConfig($option = null) - { - return $option === null ? $this->config : (isset($this->config[$option]) ? $this->config[$option] : null); - } - /** - * @param string|null $uri - * - * @return UriInterface - */ - private function buildUri($uri, array $config) - { - // for BC we accept null which would otherwise fail in uri_for - $uri = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\uri_for($uri === null ? '' : $uri); - if (isset($config['base_uri'])) { - $uri = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\UriResolver::resolve(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\uri_for($config['base_uri']), $uri); - } - if (isset($config['idn_conversion']) && $config['idn_conversion'] !== \false) { - $idnOptions = $config['idn_conversion'] === \true ? \IDNA_DEFAULT : $config['idn_conversion']; - $uri = \WPMailSMTP\Vendor\GuzzleHttp\Utils::idnUriConvert($uri, $idnOptions); - } - return $uri->getScheme() === '' && $uri->getHost() !== '' ? $uri->withScheme('http') : $uri; - } - /** - * Configures the default options for a client. - * - * @param array $config - * @return void - */ - private function configureDefaults(array $config) - { - $defaults = ['allow_redirects' => \WPMailSMTP\Vendor\GuzzleHttp\RedirectMiddleware::$defaultSettings, 'http_errors' => \true, 'decode_content' => \true, 'verify' => \true, 'cookies' => \false, 'idn_conversion' => \true]; - // Use the standard Linux HTTP_PROXY and HTTPS_PROXY if set. - // We can only trust the HTTP_PROXY environment variable in a CLI - // process due to the fact that PHP has no reliable mechanism to - // get environment variables that start with "HTTP_". - if (\php_sapi_name() === 'cli' && \getenv('HTTP_PROXY')) { - $defaults['proxy']['http'] = \getenv('HTTP_PROXY'); - } - if ($proxy = \getenv('HTTPS_PROXY')) { - $defaults['proxy']['https'] = $proxy; - } - if ($noProxy = \getenv('NO_PROXY')) { - $cleanedNoProxy = \str_replace(' ', '', $noProxy); - $defaults['proxy']['no'] = \explode(',', $cleanedNoProxy); - } - $this->config = $config + $defaults; - if (!empty($config['cookies']) && $config['cookies'] === \true) { - $this->config['cookies'] = new \WPMailSMTP\Vendor\GuzzleHttp\Cookie\CookieJar(); - } - // Add the default user-agent header. - if (!isset($this->config['headers'])) { - $this->config['headers'] = ['User-Agent' => default_user_agent()]; - } else { - // Add the User-Agent header if one was not already set. - foreach (\array_keys($this->config['headers']) as $name) { - if (\strtolower($name) === 'user-agent') { - return; - } - } - $this->config['headers']['User-Agent'] = default_user_agent(); - } - } - /** - * Merges default options into the array. - * - * @param array $options Options to modify by reference - * - * @return array - */ - private function prepareDefaults(array $options) - { - $defaults = $this->config; - if (!empty($defaults['headers'])) { - // Default headers are only added if they are not present. - $defaults['_conditional'] = $defaults['headers']; - unset($defaults['headers']); - } - // Special handling for headers is required as they are added as - // conditional headers and as headers passed to a request ctor. - if (\array_key_exists('headers', $options)) { - // Allows default headers to be unset. - if ($options['headers'] === null) { - $defaults['_conditional'] = []; - unset($options['headers']); - } elseif (!\is_array($options['headers'])) { - throw new \InvalidArgumentException('headers must be an array'); - } - } - // Shallow merge defaults underneath options. - $result = $options + $defaults; - // Remove null values. - foreach ($result as $k => $v) { - if ($v === null) { - unset($result[$k]); - } - } - return $result; - } - /** - * 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. - * - * @return Promise\PromiseInterface - */ - private function transfer(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) - { - // save_to -> sink - if (isset($options['save_to'])) { - $options['sink'] = $options['save_to']; - unset($options['save_to']); - } - // exceptions -> http_errors - if (isset($options['exceptions'])) { - $options['http_errors'] = $options['exceptions']; - unset($options['exceptions']); - } - $request = $this->applyOptions($request, $options); - /** @var HandlerStack $handler */ - $handler = $options['handler']; - try { - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\promise_for($handler($request, $options)); - } catch (\Exception $e) { - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\rejection_for($e); - } - } - /** - * Applies the array of request options to a request. - * - * @param RequestInterface $request - * @param array $options - * - * @return RequestInterface - */ - private function applyOptions(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array &$options) - { - $modify = ['set_headers' => []]; - if (isset($options['headers'])) { - $modify['set_headers'] = $options['headers']; - unset($options['headers']); - } - if (isset($options['form_params'])) { - if (isset($options['multipart'])) { - throw new \InvalidArgumentException('You cannot use ' . 'form_params and multipart at the same time. Use the ' . 'form_params option if you want to send application/' . 'x-www-form-urlencoded requests, and the multipart ' . 'option to send multipart/form-data requests.'); - } - $options['body'] = \http_build_query($options['form_params'], '', '&'); - unset($options['form_params']); - // Ensure that we don't have the header in different case and set the new value. - $options['_conditional'] = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\_caseless_remove(['Content-Type'], $options['_conditional']); - $options['_conditional']['Content-Type'] = 'application/x-www-form-urlencoded'; - } - if (isset($options['multipart'])) { - $options['body'] = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($options['multipart']); - unset($options['multipart']); - } - if (isset($options['json'])) { - $options['body'] = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($options['json']); - unset($options['json']); - // Ensure that we don't have the header in different case and set the new value. - $options['_conditional'] = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\_caseless_remove(['Content-Type'], $options['_conditional']); - $options['_conditional']['Content-Type'] = 'application/json'; - } - if (!empty($options['decode_content']) && $options['decode_content'] !== \true) { - // Ensure that we don't have the header in different case and set the new value. - $options['_conditional'] = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\_caseless_remove(['Accept-Encoding'], $options['_conditional']); - $modify['set_headers']['Accept-Encoding'] = $options['decode_content']; - } - if (isset($options['body'])) { - if (\is_array($options['body'])) { - $this->invalidBody(); - } - $modify['body'] = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\stream_for($options['body']); - unset($options['body']); - } - if (!empty($options['auth']) && \is_array($options['auth'])) { - $value = $options['auth']; - $type = isset($value[2]) ? \strtolower($value[2]) : 'basic'; - switch ($type) { - case 'basic': - // Ensure that we don't have the header in different case and set the new value. - $modify['set_headers'] = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\_caseless_remove(['Authorization'], $modify['set_headers']); - $modify['set_headers']['Authorization'] = 'Basic ' . \base64_encode("{$value[0]}:{$value[1]}"); - break; - case 'digest': - // @todo: Do not rely on curl - $options['curl'][\CURLOPT_HTTPAUTH] = \CURLAUTH_DIGEST; - $options['curl'][\CURLOPT_USERPWD] = "{$value[0]}:{$value[1]}"; - break; - case 'ntlm': - $options['curl'][\CURLOPT_HTTPAUTH] = \CURLAUTH_NTLM; - $options['curl'][\CURLOPT_USERPWD] = "{$value[0]}:{$value[1]}"; - break; - } - } - if (isset($options['query'])) { - $value = $options['query']; - if (\is_array($value)) { - $value = \http_build_query($value, null, '&', \PHP_QUERY_RFC3986); - } - if (!\is_string($value)) { - throw new \InvalidArgumentException('query must be a string or array'); - } - $modify['query'] = $value; - unset($options['query']); - } - // Ensure that sink is not an invalid value. - if (isset($options['sink'])) { - // TODO: Add more sink validation? - if (\is_bool($options['sink'])) { - throw new \InvalidArgumentException('sink must not be a boolean'); - } - } - $request = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\modify_request($request, $modify); - if ($request->getBody() instanceof \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream) { - // Use a multipart/form-data POST if a Content-Type is not set. - // Ensure that we don't have the header in different case and set the new value. - $options['_conditional'] = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\_caseless_remove(['Content-Type'], $options['_conditional']); - $options['_conditional']['Content-Type'] = 'multipart/form-data; boundary=' . $request->getBody()->getBoundary(); - } - // Merge in conditional headers if they are not present. - if (isset($options['_conditional'])) { - // Build up the changes so it's in a single clone of the message. - $modify = []; - foreach ($options['_conditional'] as $k => $v) { - if (!$request->hasHeader($k)) { - $modify['set_headers'][$k] = $v; - } - } - $request = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\modify_request($request, $modify); - // Don't pass this internal value along to middleware/handlers. - unset($options['_conditional']); - } - return $request; - } - /** - * Throw Exception with pre-set message. - * @return void - * @throws \InvalidArgumentException Invalid body. - */ - private function invalidBody() - { - throw new \InvalidArgumentException('Passing in the "body" request ' . 'option as an array to send a POST request has been deprecated. ' . 'Please use the "form_params" request option to send a ' . 'application/x-www-form-urlencoded request, or the "multipart" ' . 'request option to send a multipart/form-data request.'); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/ClientInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/ClientInterface.php deleted file mode 100644 index 343be06..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/ClientInterface.php +++ /dev/null @@ -1,82 +0,0 @@ -strictMode = $strictMode; - foreach ($cookieArray as $cookie) { - if (!$cookie instanceof \WPMailSMTP\Vendor\GuzzleHttp\Cookie\SetCookie) { - $cookie = new \WPMailSMTP\Vendor\GuzzleHttp\Cookie\SetCookie($cookie); - } - $this->setCookie($cookie); - } - } - /** - * 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 - * - * @return self - */ - public static function fromArray(array $cookies, $domain) - { - $cookieJar = new self(); - foreach ($cookies as $name => $value) { - $cookieJar->setCookie(new \WPMailSMTP\Vendor\GuzzleHttp\Cookie\SetCookie(['Domain' => $domain, 'Name' => $name, 'Value' => $value, 'Discard' => \true])); - } - return $cookieJar; - } - /** - * @deprecated - */ - public static function getCookieValue($value) - { - return $value; - } - /** - * 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 - * @return bool - */ - public static function shouldPersist(\WPMailSMTP\Vendor\GuzzleHttp\Cookie\SetCookie $cookie, $allowSessionCookies = \false) - { - if ($cookie->getExpires() || $allowSessionCookies) { - if (!$cookie->getDiscard()) { - return \true; - } - } - return \false; - } - /** - * 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($name) - { - // don't allow a non string name - if ($name === null || !\is_scalar($name)) { - return null; - } - foreach ($this->cookies as $cookie) { - if ($cookie->getName() !== null && \strcasecmp($cookie->getName(), $name) === 0) { - return $cookie; - } - } - return null; - } - public function toArray() - { - return \array_map(function (\WPMailSMTP\Vendor\GuzzleHttp\Cookie\SetCookie $cookie) { - return $cookie->toArray(); - }, $this->getIterator()->getArrayCopy()); - } - public function clear($domain = null, $path = null, $name = null) - { - if (!$domain) { - $this->cookies = []; - return; - } elseif (!$path) { - $this->cookies = \array_filter($this->cookies, function (\WPMailSMTP\Vendor\GuzzleHttp\Cookie\SetCookie $cookie) use($domain) { - return !$cookie->matchesDomain($domain); - }); - } elseif (!$name) { - $this->cookies = \array_filter($this->cookies, function (\WPMailSMTP\Vendor\GuzzleHttp\Cookie\SetCookie $cookie) use($path, $domain) { - return !($cookie->matchesPath($path) && $cookie->matchesDomain($domain)); - }); - } else { - $this->cookies = \array_filter($this->cookies, function (\WPMailSMTP\Vendor\GuzzleHttp\Cookie\SetCookie $cookie) use($path, $domain, $name) { - return !($cookie->getName() == $name && $cookie->matchesPath($path) && $cookie->matchesDomain($domain)); - }); - } - } - public function clearSessionCookies() - { - $this->cookies = \array_filter($this->cookies, function (\WPMailSMTP\Vendor\GuzzleHttp\Cookie\SetCookie $cookie) { - return !$cookie->getDiscard() && $cookie->getExpires(); - }); - } - public function setCookie(\WPMailSMTP\Vendor\GuzzleHttp\Cookie\SetCookie $cookie) - { - // If the name string is empty (but not 0), ignore the set-cookie - // string entirely. - $name = $cookie->getName(); - if (!$name && $name !== '0') { - return \false; - } - // Only allow cookies with set and valid domain, name, value - $result = $cookie->validate(); - if ($result !== \true) { - if ($this->strictMode) { - throw new \RuntimeException('Invalid cookie: ' . $result); - } else { - $this->removeCookieIfEmpty($cookie); - return \false; - } - } - // Resolve conflicts with previously set cookies - foreach ($this->cookies as $i => $c) { - // Two cookies are identical, when their path, and domain are - // identical. - if ($c->getPath() != $cookie->getPath() || $c->getDomain() != $cookie->getDomain() || $c->getName() != $cookie->getName()) { - continue; - } - // The previously set cookie is a discard cookie and this one is - // not so allow the new cookie to be set - if (!$cookie->getDiscard() && $c->getDiscard()) { - unset($this->cookies[$i]); - continue; - } - // If the new cookie's expiration is further into the future, then - // replace the old cookie - if ($cookie->getExpires() > $c->getExpires()) { - unset($this->cookies[$i]); - continue; - } - // If the value has changed, we better change it - if ($cookie->getValue() !== $c->getValue()) { - unset($this->cookies[$i]); - continue; - } - // The cookie exists, so no need to continue - return \false; - } - $this->cookies[] = $cookie; - return \true; - } - public function count() - { - return \count($this->cookies); - } - public function getIterator() - { - return new \ArrayIterator(\array_values($this->cookies)); - } - public function extractCookies(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, \WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response) - { - if ($cookieHeader = $response->getHeader('Set-Cookie')) { - foreach ($cookieHeader as $cookie) { - $sc = \WPMailSMTP\Vendor\GuzzleHttp\Cookie\SetCookie::fromString($cookie); - if (!$sc->getDomain()) { - $sc->setDomain($request->getUri()->getHost()); - } - if (0 !== \strpos($sc->getPath(), '/')) { - $sc->setPath($this->getCookiePathFromRequest($request)); - } - $this->setCookie($sc); - } - } - } - /** - * Computes cookie path following RFC 6265 section 5.1.4 - * - * @link https://tools.ietf.org/html/rfc6265#section-5.1.4 - * - * @param RequestInterface $request - * @return string - */ - private function getCookiePathFromRequest(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request) - { - $uriPath = $request->getUri()->getPath(); - if ('' === $uriPath) { - return '/'; - } - if (0 !== \strpos($uriPath, '/')) { - return '/'; - } - if ('/' === $uriPath) { - return '/'; - } - if (0 === ($lastSlashPos = \strrpos($uriPath, '/'))) { - return '/'; - } - return \substr($uriPath, 0, $lastSlashPos); - } - public function withCookieHeader(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request) - { - $values = []; - $uri = $request->getUri(); - $scheme = $uri->getScheme(); - $host = $uri->getHost(); - $path = $uri->getPath() ?: '/'; - foreach ($this->cookies as $cookie) { - if ($cookie->matchesPath($path) && $cookie->matchesDomain($host) && !$cookie->isExpired() && (!$cookie->getSecure() || $scheme === 'https')) { - $values[] = $cookie->getName() . '=' . $cookie->getValue(); - } - } - return $values ? $request->withHeader('Cookie', \implode('; ', $values)) : $request; - } - /** - * If a cookie already exists and the server asks to set it again with a - * null value, the cookie must be deleted. - * - * @param SetCookie $cookie - */ - private function removeCookieIfEmpty(\WPMailSMTP\Vendor\GuzzleHttp\Cookie\SetCookie $cookie) - { - $cookieValue = $cookie->getValue(); - if ($cookieValue === null || $cookieValue === '') { - $this->clear($cookie->getDomain(), $cookie->getPath(), $cookie->getName()); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php deleted file mode 100644 index 1fe61d6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php +++ /dev/null @@ -1,76 +0,0 @@ -filename = $cookieFile; - $this->storeSessionCookies = $storeSessionCookies; - if (\file_exists($cookieFile)) { - $this->load($cookieFile); - } - } - /** - * Saves the file when shutting down - */ - public function __destruct() - { - $this->save($this->filename); - } - /** - * 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($filename) - { - $json = []; - foreach ($this as $cookie) { - /** @var SetCookie $cookie */ - if (\WPMailSMTP\Vendor\GuzzleHttp\Cookie\CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) { - $json[] = $cookie->toArray(); - } - } - $jsonStr = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($json); - if (\false === \file_put_contents($filename, $jsonStr, \LOCK_EX)) { - throw new \RuntimeException("Unable to save file {$filename}"); - } - } - /** - * 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($filename) - { - $json = \file_get_contents($filename); - if (\false === $json) { - throw new \RuntimeException("Unable to load file {$filename}"); - } elseif ($json === '') { - return; - } - $data = \WPMailSMTP\Vendor\GuzzleHttp\json_decode($json, \true); - if (\is_array($data)) { - foreach (\json_decode($json, \true) as $cookie) { - $this->setCookie(new \WPMailSMTP\Vendor\GuzzleHttp\Cookie\SetCookie($cookie)); - } - } elseif (\strlen($data)) { - throw new \RuntimeException("Invalid cookie file: {$filename}"); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php deleted file mode 100644 index a3fe4ac..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php +++ /dev/null @@ -1,67 +0,0 @@ -sessionKey = $sessionKey; - $this->storeSessionCookies = $storeSessionCookies; - $this->load(); - } - /** - * Saves cookies to session when shutting down - */ - public function __destruct() - { - $this->save(); - } - /** - * Save cookies to the client session - */ - public function save() - { - $json = []; - foreach ($this as $cookie) { - /** @var SetCookie $cookie */ - if (\WPMailSMTP\Vendor\GuzzleHttp\Cookie\CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) { - $json[] = $cookie->toArray(); - } - } - $_SESSION[$this->sessionKey] = \json_encode($json); - } - /** - * Load the contents of the client session into the data array - */ - protected function load() - { - if (!isset($_SESSION[$this->sessionKey])) { - return; - } - $data = \json_decode($_SESSION[$this->sessionKey], \true); - if (\is_array($data)) { - foreach ($data as $cookie) { - $this->setCookie(new \WPMailSMTP\Vendor\GuzzleHttp\Cookie\SetCookie($cookie)); - } - } elseif (\strlen($data)) { - throw new \RuntimeException("Invalid cookie data"); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SetCookie.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SetCookie.php deleted file mode 100644 index 651b343..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SetCookie.php +++ /dev/null @@ -1,343 +0,0 @@ - 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 - * - * @return self - */ - public static function fromString($cookie) - { - // Create the default return array - $data = self::$defaults; - // Explode the cookie string using a series of semicolons - $pieces = \array_filter(\array_map('trim', \explode(';', $cookie))); - // The name of the cookie (first kvp) must exist and include an equal sign. - if (empty($pieces[0]) || !\strpos($pieces[0], '=')) { - return new self($data); - } - // Add the cookie pieces into the parsed data array - foreach ($pieces as $part) { - $cookieParts = \explode('=', $part, 2); - $key = \trim($cookieParts[0]); - $value = isset($cookieParts[1]) ? \trim($cookieParts[1], " \n\r\t\0\v") : \true; - // Only check for non-cookies when cookies have been found - if (empty($data['Name'])) { - $data['Name'] = $key; - $data['Value'] = $value; - } else { - foreach (\array_keys(self::$defaults) as $search) { - if (!\strcasecmp($search, $key)) { - $data[$search] = $value; - continue 2; - } - } - $data[$key] = $value; - } - } - return new self($data); - } - /** - * @param array $data Array of cookie data provided by a Cookie parser - */ - public function __construct(array $data = []) - { - $this->data = \array_replace(self::$defaults, $data); - // Extract the Expires value and turn it into a UNIX timestamp if needed - if (!$this->getExpires() && $this->getMaxAge()) { - // Calculate the Expires date - $this->setExpires(\time() + $this->getMaxAge()); - } elseif ($this->getExpires() && !\is_numeric($this->getExpires())) { - $this->setExpires($this->getExpires()); - } - } - public function __toString() - { - $str = $this->data['Name'] . '=' . $this->data['Value'] . '; '; - foreach ($this->data as $k => $v) { - if ($k !== 'Name' && $k !== 'Value' && $v !== null && $v !== \false) { - if ($k === 'Expires') { - $str .= 'Expires=' . \gmdate('D, d M Y H:i:s \\G\\M\\T', $v) . '; '; - } else { - $str .= ($v === \true ? $k : "{$k}={$v}") . '; '; - } - } - } - return \rtrim($str, '; '); - } - public function toArray() - { - return $this->data; - } - /** - * Get the cookie name - * - * @return string - */ - public function getName() - { - return $this->data['Name']; - } - /** - * Set the cookie name - * - * @param string $name Cookie name - */ - public function setName($name) - { - $this->data['Name'] = $name; - } - /** - * Get the cookie value - * - * @return string - */ - public function getValue() - { - return $this->data['Value']; - } - /** - * Set the cookie value - * - * @param string $value Cookie value - */ - public function setValue($value) - { - $this->data['Value'] = $value; - } - /** - * Get the domain - * - * @return string|null - */ - public function getDomain() - { - return $this->data['Domain']; - } - /** - * Set the domain of the cookie - * - * @param string $domain - */ - public function setDomain($domain) - { - $this->data['Domain'] = $domain; - } - /** - * Get the path - * - * @return string - */ - public function getPath() - { - return $this->data['Path']; - } - /** - * Set the path of the cookie - * - * @param string $path Path of the cookie - */ - public function setPath($path) - { - $this->data['Path'] = $path; - } - /** - * Maximum lifetime of the cookie in seconds - * - * @return int|null - */ - public function getMaxAge() - { - return $this->data['Max-Age']; - } - /** - * Set the max-age of the cookie - * - * @param int $maxAge Max age of the cookie in seconds - */ - public function setMaxAge($maxAge) - { - $this->data['Max-Age'] = $maxAge; - } - /** - * The UNIX timestamp when the cookie Expires - * - * @return mixed - */ - public function getExpires() - { - return $this->data['Expires']; - } - /** - * Set the unix timestamp for which the cookie will expire - * - * @param int $timestamp Unix timestamp - */ - public function setExpires($timestamp) - { - $this->data['Expires'] = \is_numeric($timestamp) ? (int) $timestamp : \strtotime($timestamp); - } - /** - * Get whether or not this is a secure cookie - * - * @return bool|null - */ - public function getSecure() - { - return $this->data['Secure']; - } - /** - * Set whether or not the cookie is secure - * - * @param bool $secure Set to true or false if secure - */ - public function setSecure($secure) - { - $this->data['Secure'] = $secure; - } - /** - * Get whether or not this is a session cookie - * - * @return bool|null - */ - public function getDiscard() - { - return $this->data['Discard']; - } - /** - * 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) - { - $this->data['Discard'] = $discard; - } - /** - * Get whether or not this is an HTTP only cookie - * - * @return bool - */ - public function getHttpOnly() - { - return $this->data['HttpOnly']; - } - /** - * 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) - { - $this->data['HttpOnly'] = $httpOnly; - } - /** - * 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 - * - * @return bool - */ - public function matchesPath($requestPath) - { - $cookiePath = $this->getPath(); - // Match on exact matches or when path is the default empty "/" - if ($cookiePath === '/' || $cookiePath == $requestPath) { - return \true; - } - // Ensure that the cookie-path is a prefix of the request path. - if (0 !== \strpos($requestPath, $cookiePath)) { - return \false; - } - // Match if the last character of the cookie-path is "/" - if (\substr($cookiePath, -1, 1) === '/') { - return \true; - } - // Match if the first character not included in cookie path is "/" - return \substr($requestPath, \strlen($cookiePath), 1) === '/'; - } - /** - * Check if the cookie matches a domain value - * - * @param string $domain Domain to check against - * - * @return bool - */ - public function matchesDomain($domain) - { - // Remove the leading '.' as per spec in RFC 6265. - // http://tools.ietf.org/html/rfc6265#section-5.2.3 - $cookieDomain = \ltrim($this->getDomain(), '.'); - // Domain not set or exact match. - if (!$cookieDomain || !\strcasecmp($domain, $cookieDomain)) { - return \true; - } - // Matching the subdomain according to RFC 6265. - // http://tools.ietf.org/html/rfc6265#section-5.1.3 - if (\filter_var($domain, \FILTER_VALIDATE_IP)) { - return \false; - } - return (bool) \preg_match('/\\.' . \preg_quote($cookieDomain, '/') . '$/', $domain); - } - /** - * Check if the cookie is expired - * - * @return bool - */ - public function isExpired() - { - return $this->getExpires() !== null && \time() > $this->getExpires(); - } - /** - * 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() - { - // Names must not be empty, but can be 0 - $name = $this->getName(); - if (empty($name) && !\is_numeric($name)) { - return 'The cookie name must not be empty'; - } - // Check if any of the invalid characters are present in the cookie name - if (\preg_match('/[\\x00-\\x20\\x22\\x28-\\x29\\x2c\\x2f\\x3a-\\x40\\x5c\\x7b\\x7d\\x7f]/', $name)) { - return 'Cookie name must not contain invalid characters: ASCII ' . 'Control characters (0-31;127), space, tab and the ' . 'following characters: ()<>@,;:\\"/?={}'; - } - // Value must not be empty, but can be 0 - $value = $this->getValue(); - if (empty($value) && !\is_numeric($value)) { - return 'The cookie value must not be empty'; - } - // Domains must not be empty, but can be 0 - // A "0" is not a valid internet domain, but may be used as server name - // in a private network. - $domain = $this->getDomain(); - if (empty($domain) && !\is_numeric($domain)) { - return 'The cookie domain must not be empty'; - } - return \true; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/BadResponseException.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/BadResponseException.php deleted file mode 100644 index 2875027..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/BadResponseException.php +++ /dev/null @@ -1,19 +0,0 @@ -getStatusCode() : 0; - parent::__construct($message, $code, $previous); - $this->request = $request; - $this->response = $response; - $this->handlerContext = $handlerContext; - } - /** - * Wrap non-RequestExceptions with a RequestException - * - * @param RequestInterface $request - * @param \Exception $e - * - * @return RequestException - */ - public static function wrapException(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, \Exception $e) - { - return $e instanceof \WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException ? $e : new \WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException($e->getMessage(), $request, null, $e); - } - /** - * Factory method to create a new exception with a normalized error message - * - * @param RequestInterface $request Request - * @param ResponseInterface $response Response received - * @param \Exception $previous Previous exception - * @param array $ctx Optional handler context. - * - * @return self - */ - public static function create(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, \WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response = null, \Exception $previous = null, array $ctx = []) - { - if (!$response) { - return new self('Error completing request', $request, null, $previous, $ctx); - } - $level = (int) \floor($response->getStatusCode() / 100); - if ($level === 4) { - $label = 'Client error'; - $className = \WPMailSMTP\Vendor\GuzzleHttp\Exception\ClientException::class; - } elseif ($level === 5) { - $label = 'Server error'; - $className = \WPMailSMTP\Vendor\GuzzleHttp\Exception\ServerException::class; - } else { - $label = 'Unsuccessful request'; - $className = __CLASS__; - } - $uri = $request->getUri(); - $uri = static::obfuscateUri($uri); - // Client Error: `GET /` resulted in a `404 Not Found` response: - // ... (truncated) - $message = \sprintf('%s: `%s %s` resulted in a `%s %s` response', $label, $request->getMethod(), $uri, $response->getStatusCode(), $response->getReasonPhrase()); - $summary = static::getResponseBodySummary($response); - if ($summary !== null) { - $message .= ":\n{$summary}\n"; - } - return new $className($message, $request, $response, $previous, $ctx); - } - /** - * Get a short summary of the response - * - * Will return `null` if the response is not printable. - * - * @param ResponseInterface $response - * - * @return string|null - */ - public static function getResponseBodySummary(\WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response) - { - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\get_message_body_summary($response); - } - /** - * Obfuscates URI if there is a username and a password present - * - * @param UriInterface $uri - * - * @return UriInterface - */ - private static function obfuscateUri(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri) - { - $userInfo = $uri->getUserInfo(); - if (\false !== ($pos = \strpos($userInfo, ':'))) { - return $uri->withUserInfo(\substr($userInfo, 0, $pos), '***'); - } - return $uri; - } - /** - * Get the request that caused the exception - * - * @return RequestInterface - */ - public function getRequest() - { - return $this->request; - } - /** - * Get the associated response - * - * @return ResponseInterface|null - */ - public function getResponse() - { - return $this->response; - } - /** - * Check if a response was received - * - * @return bool - */ - public function hasResponse() - { - return $this->response !== null; - } - /** - * 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. - * - * @return array - */ - public function getHandlerContext() - { - return $this->handlerContext; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/SeekException.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/SeekException.php deleted file mode 100644 index dfdbdfe..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/SeekException.php +++ /dev/null @@ -1,25 +0,0 @@ -stream = $stream; - $msg = $msg ?: 'Could not seek the stream to position ' . $pos; - parent::__construct($msg); - } - /** - * @return StreamInterface - */ - public function getStream() - { - return $this->stream; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ServerException.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ServerException.php deleted file mode 100644 index 0613939..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ServerException.php +++ /dev/null @@ -1,10 +0,0 @@ -maxHandles = $maxHandles; - } - public function create(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) - { - if (isset($options['curl']['body_as_string'])) { - $options['_body_as_string'] = $options['curl']['body_as_string']; - unset($options['curl']['body_as_string']); - } - $easy = new \WPMailSMTP\Vendor\GuzzleHttp\Handler\EasyHandle(); - $easy->request = $request; - $easy->options = $options; - $conf = $this->getDefaultConf($easy); - $this->applyMethod($easy, $conf); - $this->applyHandlerOptions($easy, $conf); - $this->applyHeaders($easy, $conf); - unset($conf['_headers']); - // Add handler options from the request configuration options - if (isset($options['curl'])) { - $conf = \array_replace($conf, $options['curl']); - } - $conf[\CURLOPT_HEADERFUNCTION] = $this->createHeaderFn($easy); - $easy->handle = $this->handles ? \array_pop($this->handles) : \curl_init(); - \curl_setopt_array($easy->handle, $conf); - return $easy; - } - public function release(\WPMailSMTP\Vendor\GuzzleHttp\Handler\EasyHandle $easy) - { - $resource = $easy->handle; - unset($easy->handle); - if (\count($this->handles) >= $this->maxHandles) { - \curl_close($resource); - } else { - // Remove all callback functions as they can hold onto references - // and are not cleaned up by curl_reset. Using curl_setopt_array - // does not work for some reason, so removing each one - // individually. - \curl_setopt($resource, \CURLOPT_HEADERFUNCTION, null); - \curl_setopt($resource, \CURLOPT_READFUNCTION, null); - \curl_setopt($resource, \CURLOPT_WRITEFUNCTION, null); - \curl_setopt($resource, \CURLOPT_PROGRESSFUNCTION, null); - \curl_reset($resource); - $this->handles[] = $resource; - } - } - /** - * Completes a cURL transaction, either returning a response promise or a - * rejected promise. - * - * @param callable $handler - * @param EasyHandle $easy - * @param CurlFactoryInterface $factory Dictates how the handle is released - * - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public static function finish(callable $handler, \WPMailSMTP\Vendor\GuzzleHttp\Handler\EasyHandle $easy, \WPMailSMTP\Vendor\GuzzleHttp\Handler\CurlFactoryInterface $factory) - { - if (isset($easy->options['on_stats'])) { - self::invokeStats($easy); - } - if (!$easy->response || $easy->errno) { - return self::finishError($handler, $easy, $factory); - } - // Return the response if it is present and there is no error. - $factory->release($easy); - // Rewind the body of the response if possible. - $body = $easy->response->getBody(); - if ($body->isSeekable()) { - $body->rewind(); - } - return new \WPMailSMTP\Vendor\GuzzleHttp\Promise\FulfilledPromise($easy->response); - } - private static function invokeStats(\WPMailSMTP\Vendor\GuzzleHttp\Handler\EasyHandle $easy) - { - $curlStats = \curl_getinfo($easy->handle); - $curlStats['appconnect_time'] = \curl_getinfo($easy->handle, \CURLINFO_APPCONNECT_TIME); - $stats = new \WPMailSMTP\Vendor\GuzzleHttp\TransferStats($easy->request, $easy->response, $curlStats['total_time'], $easy->errno, $curlStats); - \call_user_func($easy->options['on_stats'], $stats); - } - private static function finishError(callable $handler, \WPMailSMTP\Vendor\GuzzleHttp\Handler\EasyHandle $easy, \WPMailSMTP\Vendor\GuzzleHttp\Handler\CurlFactoryInterface $factory) - { - // Get error information and release the handle to the factory. - $ctx = ['errno' => $easy->errno, 'error' => \curl_error($easy->handle), 'appconnect_time' => \curl_getinfo($easy->handle, \CURLINFO_APPCONNECT_TIME)] + \curl_getinfo($easy->handle); - $ctx[self::CURL_VERSION_STR] = \curl_version()['version']; - $factory->release($easy); - // Retry when nothing is present or when curl failed to rewind. - if (empty($easy->options['_err_message']) && (!$easy->errno || $easy->errno == 65)) { - return self::retryFailedRewind($handler, $easy, $ctx); - } - return self::createRejection($easy, $ctx); - } - private static function createRejection(\WPMailSMTP\Vendor\GuzzleHttp\Handler\EasyHandle $easy, array $ctx) - { - static $connectionErrors = [\CURLE_OPERATION_TIMEOUTED => \true, \CURLE_COULDNT_RESOLVE_HOST => \true, \CURLE_COULDNT_CONNECT => \true, \CURLE_SSL_CONNECT_ERROR => \true, \CURLE_GOT_NOTHING => \true]; - // If an exception was encountered during the onHeaders event, then - // return a rejected promise that wraps that exception. - if ($easy->onHeadersException) { - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\rejection_for(new \WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException('An error was encountered during the on_headers event', $easy->request, $easy->response, $easy->onHeadersException, $ctx)); - } - if (\version_compare($ctx[self::CURL_VERSION_STR], self::LOW_CURL_VERSION_NUMBER)) { - $message = \sprintf('cURL error %s: %s (%s)', $ctx['errno'], $ctx['error'], 'see https://curl.haxx.se/libcurl/c/libcurl-errors.html'); - } else { - $message = \sprintf('cURL error %s: %s (%s) for %s', $ctx['errno'], $ctx['error'], 'see https://curl.haxx.se/libcurl/c/libcurl-errors.html', $easy->request->getUri()); - } - // Create a connection exception if it was a specific error code. - $error = isset($connectionErrors[$easy->errno]) ? new \WPMailSMTP\Vendor\GuzzleHttp\Exception\ConnectException($message, $easy->request, null, $ctx) : new \WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException($message, $easy->request, $easy->response, null, $ctx); - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\rejection_for($error); - } - private function getDefaultConf(\WPMailSMTP\Vendor\GuzzleHttp\Handler\EasyHandle $easy) - { - $conf = ['_headers' => $easy->request->getHeaders(), \CURLOPT_CUSTOMREQUEST => $easy->request->getMethod(), \CURLOPT_URL => (string) $easy->request->getUri()->withFragment(''), \CURLOPT_RETURNTRANSFER => \false, \CURLOPT_HEADER => \false, \CURLOPT_CONNECTTIMEOUT => 150]; - if (\defined('CURLOPT_PROTOCOLS')) { - $conf[\CURLOPT_PROTOCOLS] = \CURLPROTO_HTTP | \CURLPROTO_HTTPS; - } - $version = $easy->request->getProtocolVersion(); - if ($version == 1.1) { - $conf[\CURLOPT_HTTP_VERSION] = \CURL_HTTP_VERSION_1_1; - } elseif ($version == 2.0) { - $conf[\CURLOPT_HTTP_VERSION] = \CURL_HTTP_VERSION_2_0; - } else { - $conf[\CURLOPT_HTTP_VERSION] = \CURL_HTTP_VERSION_1_0; - } - return $conf; - } - private function applyMethod(\WPMailSMTP\Vendor\GuzzleHttp\Handler\EasyHandle $easy, array &$conf) - { - $body = $easy->request->getBody(); - $size = $body->getSize(); - if ($size === null || $size > 0) { - $this->applyBody($easy->request, $easy->options, $conf); - return; - } - $method = $easy->request->getMethod(); - if ($method === 'PUT' || $method === 'POST') { - // See http://tools.ietf.org/html/rfc7230#section-3.3.2 - if (!$easy->request->hasHeader('Content-Length')) { - $conf[\CURLOPT_HTTPHEADER][] = 'Content-Length: 0'; - } - } elseif ($method === 'HEAD') { - $conf[\CURLOPT_NOBODY] = \true; - unset($conf[\CURLOPT_WRITEFUNCTION], $conf[\CURLOPT_READFUNCTION], $conf[\CURLOPT_FILE], $conf[\CURLOPT_INFILE]); - } - } - private function applyBody(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options, array &$conf) - { - $size = $request->hasHeader('Content-Length') ? (int) $request->getHeaderLine('Content-Length') : null; - // Send the body as a string if the size is less than 1MB OR if the - // [curl][body_as_string] request value is set. - if ($size !== null && $size < 1000000 || !empty($options['_body_as_string'])) { - $conf[\CURLOPT_POSTFIELDS] = (string) $request->getBody(); - // Don't duplicate the Content-Length header - $this->removeHeader('Content-Length', $conf); - $this->removeHeader('Transfer-Encoding', $conf); - } else { - $conf[\CURLOPT_UPLOAD] = \true; - if ($size !== null) { - $conf[\CURLOPT_INFILESIZE] = $size; - $this->removeHeader('Content-Length', $conf); - } - $body = $request->getBody(); - if ($body->isSeekable()) { - $body->rewind(); - } - $conf[\CURLOPT_READFUNCTION] = function ($ch, $fd, $length) use($body) { - return $body->read($length); - }; - } - // If the Expect header is not present, prevent curl from adding it - if (!$request->hasHeader('Expect')) { - $conf[\CURLOPT_HTTPHEADER][] = 'Expect:'; - } - // cURL sometimes adds a content-type by default. Prevent this. - if (!$request->hasHeader('Content-Type')) { - $conf[\CURLOPT_HTTPHEADER][] = 'Content-Type:'; - } - } - private function applyHeaders(\WPMailSMTP\Vendor\GuzzleHttp\Handler\EasyHandle $easy, array &$conf) - { - foreach ($conf['_headers'] as $name => $values) { - foreach ($values as $value) { - $value = (string) $value; - if ($value === '') { - // cURL requires a special format for empty headers. - // See https://github.com/guzzle/guzzle/issues/1882 for more details. - $conf[\CURLOPT_HTTPHEADER][] = "{$name};"; - } else { - $conf[\CURLOPT_HTTPHEADER][] = "{$name}: {$value}"; - } - } - } - // Remove the Accept header if one was not set - if (!$easy->request->hasHeader('Accept')) { - $conf[\CURLOPT_HTTPHEADER][] = 'Accept:'; - } - } - /** - * 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($name, array &$options) - { - foreach (\array_keys($options['_headers']) as $key) { - if (!\strcasecmp($key, $name)) { - unset($options['_headers'][$key]); - return; - } - } - } - private function applyHandlerOptions(\WPMailSMTP\Vendor\GuzzleHttp\Handler\EasyHandle $easy, array &$conf) - { - $options = $easy->options; - if (isset($options['verify'])) { - if ($options['verify'] === \false) { - unset($conf[\CURLOPT_CAINFO]); - $conf[\CURLOPT_SSL_VERIFYHOST] = 0; - $conf[\CURLOPT_SSL_VERIFYPEER] = \false; - } else { - $conf[\CURLOPT_SSL_VERIFYHOST] = 2; - $conf[\CURLOPT_SSL_VERIFYPEER] = \true; - if (\is_string($options['verify'])) { - // Throw an error if the file/folder/link path is not valid or doesn't exist. - if (!\file_exists($options['verify'])) { - throw new \InvalidArgumentException("SSL CA bundle not found: {$options['verify']}"); - } - // If it's a directory or a link to a directory use CURLOPT_CAPATH. - // If not, it's probably a file, or a link to a file, so use CURLOPT_CAINFO. - if (\is_dir($options['verify']) || \is_link($options['verify']) && \is_dir(\readlink($options['verify']))) { - $conf[\CURLOPT_CAPATH] = $options['verify']; - } else { - $conf[\CURLOPT_CAINFO] = $options['verify']; - } - } - } - } - if (!empty($options['decode_content'])) { - $accept = $easy->request->getHeaderLine('Accept-Encoding'); - if ($accept) { - $conf[\CURLOPT_ENCODING] = $accept; - } else { - $conf[\CURLOPT_ENCODING] = ''; - // Don't let curl send the header over the wire - $conf[\CURLOPT_HTTPHEADER][] = 'Accept-Encoding:'; - } - } - if (isset($options['sink'])) { - $sink = $options['sink']; - if (!\is_string($sink)) { - $sink = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\stream_for($sink); - } elseif (!\is_dir(\dirname($sink))) { - // Ensure that the directory exists before failing in curl. - throw new \RuntimeException(\sprintf('Directory %s does not exist for sink value of %s', \dirname($sink), $sink)); - } else { - $sink = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\LazyOpenStream($sink, 'w+'); - } - $easy->sink = $sink; - $conf[\CURLOPT_WRITEFUNCTION] = function ($ch, $write) use($sink) { - return $sink->write($write); - }; - } else { - // Use a default temp stream if no sink was set. - $conf[\CURLOPT_FILE] = \fopen('php://temp', 'w+'); - $easy->sink = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\stream_for($conf[\CURLOPT_FILE]); - } - $timeoutRequiresNoSignal = \false; - if (isset($options['timeout'])) { - $timeoutRequiresNoSignal |= $options['timeout'] < 1; - $conf[\CURLOPT_TIMEOUT_MS] = $options['timeout'] * 1000; - } - // CURL default value is CURL_IPRESOLVE_WHATEVER - if (isset($options['force_ip_resolve'])) { - if ('v4' === $options['force_ip_resolve']) { - $conf[\CURLOPT_IPRESOLVE] = \CURL_IPRESOLVE_V4; - } elseif ('v6' === $options['force_ip_resolve']) { - $conf[\CURLOPT_IPRESOLVE] = \CURL_IPRESOLVE_V6; - } - } - if (isset($options['connect_timeout'])) { - $timeoutRequiresNoSignal |= $options['connect_timeout'] < 1; - $conf[\CURLOPT_CONNECTTIMEOUT_MS] = $options['connect_timeout'] * 1000; - } - if ($timeoutRequiresNoSignal && \strtoupper(\substr(\PHP_OS, 0, 3)) !== 'WIN') { - $conf[\CURLOPT_NOSIGNAL] = \true; - } - if (isset($options['proxy'])) { - if (!\is_array($options['proxy'])) { - $conf[\CURLOPT_PROXY] = $options['proxy']; - } else { - $scheme = $easy->request->getUri()->getScheme(); - if (isset($options['proxy'][$scheme])) { - $host = $easy->request->getUri()->getHost(); - if (!isset($options['proxy']['no']) || !\WPMailSMTP\Vendor\GuzzleHttp\is_host_in_noproxy($host, $options['proxy']['no'])) { - $conf[\CURLOPT_PROXY] = $options['proxy'][$scheme]; - } - } - } - } - if (isset($options['cert'])) { - $cert = $options['cert']; - if (\is_array($cert)) { - $conf[\CURLOPT_SSLCERTPASSWD] = $cert[1]; - $cert = $cert[0]; - } - if (!\file_exists($cert)) { - throw new \InvalidArgumentException("SSL certificate not found: {$cert}"); - } - $conf[\CURLOPT_SSLCERT] = $cert; - } - if (isset($options['ssl_key'])) { - if (\is_array($options['ssl_key'])) { - if (\count($options['ssl_key']) === 2) { - list($sslKey, $conf[\CURLOPT_SSLKEYPASSWD]) = $options['ssl_key']; - } else { - list($sslKey) = $options['ssl_key']; - } - } - $sslKey = isset($sslKey) ? $sslKey : $options['ssl_key']; - if (!\file_exists($sslKey)) { - throw new \InvalidArgumentException("SSL private key not found: {$sslKey}"); - } - $conf[\CURLOPT_SSLKEY] = $sslKey; - } - if (isset($options['progress'])) { - $progress = $options['progress']; - if (!\is_callable($progress)) { - throw new \InvalidArgumentException('progress client option must be callable'); - } - $conf[\CURLOPT_NOPROGRESS] = \false; - $conf[\CURLOPT_PROGRESSFUNCTION] = function () use($progress) { - $args = \func_get_args(); - // PHP 5.5 pushed the handle onto the start of the args - if (\is_resource($args[0])) { - \array_shift($args); - } - \call_user_func_array($progress, $args); - }; - } - if (!empty($options['debug'])) { - $conf[\CURLOPT_STDERR] = \WPMailSMTP\Vendor\GuzzleHttp\debug_resource($options['debug']); - $conf[\CURLOPT_VERBOSE] = \true; - } - } - /** - * 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. - */ - private static function retryFailedRewind(callable $handler, \WPMailSMTP\Vendor\GuzzleHttp\Handler\EasyHandle $easy, array $ctx) - { - try { - // Only rewind if the body has been read from. - $body = $easy->request->getBody(); - if ($body->tell() > 0) { - $body->rewind(); - } - } catch (\RuntimeException $e) { - $ctx['error'] = 'The connection unexpectedly failed without ' . 'providing an error. The request would have been retried, ' . 'but attempting to rewind the request body failed. ' . 'Exception: ' . $e; - return self::createRejection($easy, $ctx); - } - // Retry no more than 3 times before giving up. - if (!isset($easy->options['_curl_retries'])) { - $easy->options['_curl_retries'] = 1; - } elseif ($easy->options['_curl_retries'] == 2) { - $ctx['error'] = 'The cURL request was retried 3 times ' . 'and did not succeed. The most likely reason for the failure ' . 'is that cURL was unable to rewind the body of the request ' . 'and subsequent retries resulted in the same error. Turn on ' . 'the debug option to see what went wrong. See ' . 'https://bugs.php.net/bug.php?id=47204 for more information.'; - return self::createRejection($easy, $ctx); - } else { - $easy->options['_curl_retries']++; - } - return $handler($easy->request, $easy->options); - } - private function createHeaderFn(\WPMailSMTP\Vendor\GuzzleHttp\Handler\EasyHandle $easy) - { - if (isset($easy->options['on_headers'])) { - $onHeaders = $easy->options['on_headers']; - if (!\is_callable($onHeaders)) { - throw new \InvalidArgumentException('on_headers must be callable'); - } - } else { - $onHeaders = null; - } - return function ($ch, $h) use($onHeaders, $easy, &$startingResponse) { - $value = \trim($h); - if ($value === '') { - $startingResponse = \true; - $easy->createResponse(); - if ($onHeaders !== null) { - try { - $onHeaders($easy->response); - } catch (\Exception $e) { - // Associate the exception with the handle and trigger - // a curl header write error by returning 0. - $easy->onHeadersException = $e; - return -1; - } - } - } elseif ($startingResponse) { - $startingResponse = \false; - $easy->headers = [$value]; - } else { - $easy->headers[] = $value; - } - return \strlen($h); - }; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php deleted file mode 100644 index b250f4f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php +++ /dev/null @@ -1,26 +0,0 @@ -factory = isset($options['handle_factory']) ? $options['handle_factory'] : new \WPMailSMTP\Vendor\GuzzleHttp\Handler\CurlFactory(3); - } - public function __invoke(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) - { - if (isset($options['delay'])) { - \usleep($options['delay'] * 1000); - } - $easy = $this->factory->create($request, $options); - \curl_exec($easy->handle); - $easy->errno = \curl_errno($easy->handle); - return \WPMailSMTP\Vendor\GuzzleHttp\Handler\CurlFactory::finish($this, $easy, $this->factory); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php deleted file mode 100644 index 72c4507..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php +++ /dev/null @@ -1,177 +0,0 @@ -factory = isset($options['handle_factory']) ? $options['handle_factory'] : new \WPMailSMTP\Vendor\GuzzleHttp\Handler\CurlFactory(50); - if (isset($options['select_timeout'])) { - $this->selectTimeout = $options['select_timeout']; - } elseif ($selectTimeout = \getenv('GUZZLE_CURL_SELECT_TIMEOUT')) { - $this->selectTimeout = $selectTimeout; - } else { - $this->selectTimeout = 1; - } - $this->options = isset($options['options']) ? $options['options'] : []; - } - public function __get($name) - { - if ($name === '_mh') { - $this->_mh = \curl_multi_init(); - foreach ($this->options as $option => $value) { - // A warning is raised in case of a wrong option. - \curl_multi_setopt($this->_mh, $option, $value); - } - // Further calls to _mh will return the value directly, without entering the - // __get() method at all. - return $this->_mh; - } - throw new \BadMethodCallException(); - } - public function __destruct() - { - if (isset($this->_mh)) { - \curl_multi_close($this->_mh); - unset($this->_mh); - } - } - public function __invoke(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) - { - $easy = $this->factory->create($request, $options); - $id = (int) $easy->handle; - $promise = new \WPMailSMTP\Vendor\GuzzleHttp\Promise\Promise([$this, 'execute'], function () use($id) { - return $this->cancel($id); - }); - $this->addRequest(['easy' => $easy, 'deferred' => $promise]); - return $promise; - } - /** - * Ticks the curl event loop. - */ - public function tick() - { - // Add any delayed handles if needed. - if ($this->delays) { - $currentTime = \WPMailSMTP\Vendor\GuzzleHttp\Utils::currentTime(); - foreach ($this->delays as $id => $delay) { - if ($currentTime >= $delay) { - unset($this->delays[$id]); - \curl_multi_add_handle($this->_mh, $this->handles[$id]['easy']->handle); - } - } - } - // Step through the task queue which may add additional requests. - \WPMailSMTP\Vendor\GuzzleHttp\Promise\queue()->run(); - if ($this->active && \curl_multi_select($this->_mh, $this->selectTimeout) === -1) { - // Perform a usleep if a select returns -1. - // See: https://bugs.php.net/bug.php?id=61141 - \usleep(250); - } - while (\curl_multi_exec($this->_mh, $this->active) === \CURLM_CALL_MULTI_PERFORM) { - } - $this->processMessages(); - } - /** - * Runs until all outstanding connections have completed. - */ - public function execute() - { - $queue = \WPMailSMTP\Vendor\GuzzleHttp\Promise\queue(); - while ($this->handles || !$queue->isEmpty()) { - // If there are no transfers, then sleep for the next delay - if (!$this->active && $this->delays) { - \usleep($this->timeToNext()); - } - $this->tick(); - } - } - private function addRequest(array $entry) - { - $easy = $entry['easy']; - $id = (int) $easy->handle; - $this->handles[$id] = $entry; - if (empty($easy->options['delay'])) { - \curl_multi_add_handle($this->_mh, $easy->handle); - } else { - $this->delays[$id] = \WPMailSMTP\Vendor\GuzzleHttp\Utils::currentTime() + $easy->options['delay'] / 1000; - } - } - /** - * 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) - { - // Cannot cancel if it has been processed. - if (!isset($this->handles[$id])) { - return \false; - } - $handle = $this->handles[$id]['easy']->handle; - unset($this->delays[$id], $this->handles[$id]); - \curl_multi_remove_handle($this->_mh, $handle); - \curl_close($handle); - return \true; - } - private function processMessages() - { - while ($done = \curl_multi_info_read($this->_mh)) { - $id = (int) $done['handle']; - \curl_multi_remove_handle($this->_mh, $done['handle']); - if (!isset($this->handles[$id])) { - // Probably was cancelled. - continue; - } - $entry = $this->handles[$id]; - unset($this->handles[$id], $this->delays[$id]); - $entry['easy']->errno = $done['result']; - $entry['deferred']->resolve(\WPMailSMTP\Vendor\GuzzleHttp\Handler\CurlFactory::finish($this, $entry['easy'], $this->factory)); - } - } - private function timeToNext() - { - $currentTime = \WPMailSMTP\Vendor\GuzzleHttp\Utils::currentTime(); - $nextTime = \PHP_INT_MAX; - foreach ($this->delays as $time) { - if ($time < $nextTime) { - $nextTime = $time; - } - } - return \max(0, $nextTime - $currentTime) * 1000000; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/EasyHandle.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/EasyHandle.php deleted file mode 100644 index cd23ea8..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/EasyHandle.php +++ /dev/null @@ -1,67 +0,0 @@ -headers)) { - throw new \RuntimeException('No headers have been received'); - } - // HTTP-version SP status-code SP reason-phrase - $startLine = \explode(' ', \array_shift($this->headers), 3); - $headers = \WPMailSMTP\Vendor\GuzzleHttp\headers_from_lines($this->headers); - $normalizedKeys = \WPMailSMTP\Vendor\GuzzleHttp\normalize_header_keys($headers); - if (!empty($this->options['decode_content']) && isset($normalizedKeys['content-encoding'])) { - $headers['x-encoded-content-encoding'] = $headers[$normalizedKeys['content-encoding']]; - unset($headers[$normalizedKeys['content-encoding']]); - if (isset($normalizedKeys['content-length'])) { - $headers['x-encoded-content-length'] = $headers[$normalizedKeys['content-length']]; - $bodyLength = (int) $this->sink->getSize(); - if ($bodyLength) { - $headers[$normalizedKeys['content-length']] = $bodyLength; - } else { - unset($headers[$normalizedKeys['content-length']]); - } - } - } - // Attach a response to the easy handle with the parsed headers. - $this->response = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Response($startLine[1], $headers, $this->sink, \substr($startLine[0], 5), isset($startLine[2]) ? (string) $startLine[2] : null); - } - public function __get($name) - { - $msg = $name === 'handle' ? 'The EasyHandle has been released' : 'Invalid property: ' . $name; - throw new \BadMethodCallException($msg); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/MockHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/MockHandler.php deleted file mode 100644 index c1f6cf5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/MockHandler.php +++ /dev/null @@ -1,157 +0,0 @@ -onFulfilled = $onFulfilled; - $this->onRejected = $onRejected; - if ($queue) { - \call_user_func_array([$this, 'append'], $queue); - } - } - public function __invoke(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) - { - if (!$this->queue) { - throw new \OutOfBoundsException('Mock queue is empty'); - } - if (isset($options['delay']) && \is_numeric($options['delay'])) { - \usleep($options['delay'] * 1000); - } - $this->lastRequest = $request; - $this->lastOptions = $options; - $response = \array_shift($this->queue); - if (isset($options['on_headers'])) { - if (!\is_callable($options['on_headers'])) { - throw new \InvalidArgumentException('on_headers must be callable'); - } - try { - $options['on_headers']($response); - } catch (\Exception $e) { - $msg = 'An error was encountered during the on_headers event'; - $response = new \WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException($msg, $request, $response, $e); - } - } - if (\is_callable($response)) { - $response = \call_user_func($response, $request, $options); - } - $response = $response instanceof \Exception ? \WPMailSMTP\Vendor\GuzzleHttp\Promise\rejection_for($response) : \WPMailSMTP\Vendor\GuzzleHttp\Promise\promise_for($response); - return $response->then(function ($value) use($request, $options) { - $this->invokeStats($request, $options, $value); - if ($this->onFulfilled) { - \call_user_func($this->onFulfilled, $value); - } - if (isset($options['sink'])) { - $contents = (string) $value->getBody(); - $sink = $options['sink']; - if (\is_resource($sink)) { - \fwrite($sink, $contents); - } elseif (\is_string($sink)) { - \file_put_contents($sink, $contents); - } elseif ($sink instanceof \WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface) { - $sink->write($contents); - } - } - return $value; - }, function ($reason) use($request, $options) { - $this->invokeStats($request, $options, null, $reason); - if ($this->onRejected) { - \call_user_func($this->onRejected, $reason); - } - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\rejection_for($reason); - }); - } - /** - * Adds one or more variadic requests, exceptions, callables, or promises - * to the queue. - */ - public function append() - { - foreach (\func_get_args() as $value) { - if ($value instanceof \WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface || $value instanceof \Exception || $value instanceof \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface || \is_callable($value)) { - $this->queue[] = $value; - } else { - throw new \InvalidArgumentException('Expected a response or ' . 'exception. Found ' . \WPMailSMTP\Vendor\GuzzleHttp\describe_type($value)); - } - } - } - /** - * Get the last received request. - * - * @return RequestInterface - */ - public function getLastRequest() - { - return $this->lastRequest; - } - /** - * Get the last received request options. - * - * @return array - */ - public function getLastOptions() - { - return $this->lastOptions; - } - /** - * Returns the number of remaining items in the queue. - * - * @return int - */ - public function count() - { - return \count($this->queue); - } - public function reset() - { - $this->queue = []; - } - private function invokeStats(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options, \WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response = null, $reason = null) - { - if (isset($options['on_stats'])) { - $transferTime = isset($options['transfer_time']) ? $options['transfer_time'] : 0; - $stats = new \WPMailSMTP\Vendor\GuzzleHttp\TransferStats($request, $response, $transferTime, $reason); - \call_user_func($options['on_stats'], $stats); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/Proxy.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/Proxy.php deleted file mode 100644 index 8e77f6d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Handler/Proxy.php +++ /dev/null @@ -1,46 +0,0 @@ -withoutHeader('Expect'); - // Append a content-length header if body size is zero to match - // cURL's behavior. - if (0 === $request->getBody()->getSize()) { - $request = $request->withHeader('Content-Length', '0'); - } - return $this->createResponse($request, $options, $this->createStream($request, $options), $startTime); - } catch (\InvalidArgumentException $e) { - throw $e; - } catch (\Exception $e) { - // Determine if the error was a networking error. - $message = $e->getMessage(); - // This list can probably get more comprehensive. - if (\strpos($message, 'getaddrinfo') || \strpos($message, 'Connection refused') || \strpos($message, "couldn't connect to host") || \strpos($message, "connection attempt failed")) { - $e = new \WPMailSMTP\Vendor\GuzzleHttp\Exception\ConnectException($e->getMessage(), $request, $e); - } - $e = \WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException::wrapException($request, $e); - $this->invokeStats($options, $request, $startTime, null, $e); - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\rejection_for($e); - } - } - private function invokeStats(array $options, \WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, $startTime, \WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response = null, $error = null) - { - if (isset($options['on_stats'])) { - $stats = new \WPMailSMTP\Vendor\GuzzleHttp\TransferStats($request, $response, \WPMailSMTP\Vendor\GuzzleHttp\Utils::currentTime() - $startTime, $error, []); - \call_user_func($options['on_stats'], $stats); - } - } - private function createResponse(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options, $stream, $startTime) - { - $hdrs = $this->lastHeaders; - $this->lastHeaders = []; - $parts = \explode(' ', \array_shift($hdrs), 3); - $ver = \explode('/', $parts[0])[1]; - $status = $parts[1]; - $reason = isset($parts[2]) ? $parts[2] : null; - $headers = \WPMailSMTP\Vendor\GuzzleHttp\headers_from_lines($hdrs); - list($stream, $headers) = $this->checkDecode($options, $headers, $stream); - $stream = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\stream_for($stream); - $sink = $stream; - if (\strcasecmp('HEAD', $request->getMethod())) { - $sink = $this->createSink($stream, $options); - } - $response = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Response($status, $headers, $sink, $ver, $reason); - if (isset($options['on_headers'])) { - try { - $options['on_headers']($response); - } catch (\Exception $e) { - $msg = 'An error was encountered during the on_headers event'; - $ex = new \WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException($msg, $request, $response, $e); - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\rejection_for($ex); - } - } - // Do not drain when the request is a HEAD request because they have - // no body. - if ($sink !== $stream) { - $this->drain($stream, $sink, $response->getHeaderLine('Content-Length')); - } - $this->invokeStats($options, $request, $startTime, $response, null); - return new \WPMailSMTP\Vendor\GuzzleHttp\Promise\FulfilledPromise($response); - } - private function createSink(\WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface $stream, array $options) - { - if (!empty($options['stream'])) { - return $stream; - } - $sink = isset($options['sink']) ? $options['sink'] : \fopen('php://temp', 'r+'); - return \is_string($sink) ? new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\LazyOpenStream($sink, 'w+') : \WPMailSMTP\Vendor\GuzzleHttp\Psr7\stream_for($sink); - } - private function checkDecode(array $options, array $headers, $stream) - { - // Automatically decode responses when instructed. - if (!empty($options['decode_content'])) { - $normalizedKeys = \WPMailSMTP\Vendor\GuzzleHttp\normalize_header_keys($headers); - if (isset($normalizedKeys['content-encoding'])) { - $encoding = $headers[$normalizedKeys['content-encoding']]; - if ($encoding[0] === 'gzip' || $encoding[0] === 'deflate') { - $stream = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\InflateStream(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\stream_for($stream)); - $headers['x-encoded-content-encoding'] = $headers[$normalizedKeys['content-encoding']]; - // Remove content-encoding header - unset($headers[$normalizedKeys['content-encoding']]); - // Fix content-length header - if (isset($normalizedKeys['content-length'])) { - $headers['x-encoded-content-length'] = $headers[$normalizedKeys['content-length']]; - $length = (int) $stream->getSize(); - if ($length === 0) { - unset($headers[$normalizedKeys['content-length']]); - } else { - $headers[$normalizedKeys['content-length']] = [$length]; - } - } - } - } - } - return [$stream, $headers]; - } - /** - * Drains the source stream into the "sink" client option. - * - * @param StreamInterface $source - * @param StreamInterface $sink - * @param string $contentLength Header specifying the amount of - * data to read. - * - * @return StreamInterface - * @throws \RuntimeException when the sink option is invalid. - */ - private function drain(\WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface $source, \WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface $sink, $contentLength) - { - // If a content-length header is provided, then stop reading once - // that number of bytes has been read. This can prevent infinitely - // reading from a stream when dealing with servers that do not honor - // Connection: Close headers. - \WPMailSMTP\Vendor\GuzzleHttp\Psr7\copy_to_stream($source, $sink, \strlen($contentLength) > 0 && (int) $contentLength > 0 ? (int) $contentLength : -1); - $sink->seek(0); - $source->close(); - return $sink; - } - /** - * 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) - { - $errors = null; - \set_error_handler(function ($_, $msg, $file, $line) use(&$errors) { - $errors[] = ['message' => $msg, 'file' => $file, 'line' => $line]; - return \true; - }); - $resource = $callback(); - \restore_error_handler(); - if (!$resource) { - $message = 'Error creating resource: '; - foreach ($errors as $err) { - foreach ($err as $key => $value) { - $message .= "[{$key}] {$value}" . \PHP_EOL; - } - } - throw new \RuntimeException(\trim($message)); - } - return $resource; - } - private function createStream(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) - { - static $methods; - if (!$methods) { - $methods = \array_flip(\get_class_methods(__CLASS__)); - } - // HTTP/1.1 streams using the PHP stream wrapper require a - // Connection: close header - if ($request->getProtocolVersion() == '1.1' && !$request->hasHeader('Connection')) { - $request = $request->withHeader('Connection', 'close'); - } - // Ensure SSL is verified by default - if (!isset($options['verify'])) { - $options['verify'] = \true; - } - $params = []; - $context = $this->getDefaultContext($request); - if (isset($options['on_headers']) && !\is_callable($options['on_headers'])) { - throw new \InvalidArgumentException('on_headers must be callable'); - } - if (!empty($options)) { - foreach ($options as $key => $value) { - $method = "add_{$key}"; - if (isset($methods[$method])) { - $this->{$method}($request, $context, $value, $params); - } - } - } - if (isset($options['stream_context'])) { - if (!\is_array($options['stream_context'])) { - throw new \InvalidArgumentException('stream_context must be an array'); - } - $context = \array_replace_recursive($context, $options['stream_context']); - } - // Microsoft NTLM authentication only supported with curl handler - if (isset($options['auth']) && \is_array($options['auth']) && isset($options['auth'][2]) && 'ntlm' == $options['auth'][2]) { - throw new \InvalidArgumentException('Microsoft NTLM authentication only supported with curl handler'); - } - $uri = $this->resolveHost($request, $options); - $context = $this->createResource(function () use($context, $params) { - return \stream_context_create($context, $params); - }); - return $this->createResource(function () use($uri, &$http_response_header, $context, $options) { - $resource = \fopen((string) $uri, 'r', null, $context); - $this->lastHeaders = $http_response_header; - if (isset($options['read_timeout'])) { - $readTimeout = $options['read_timeout']; - $sec = (int) $readTimeout; - $usec = ($readTimeout - $sec) * 100000; - \stream_set_timeout($resource, $sec, $usec); - } - return $resource; - }); - } - private function resolveHost(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) - { - $uri = $request->getUri(); - if (isset($options['force_ip_resolve']) && !\filter_var($uri->getHost(), \FILTER_VALIDATE_IP)) { - if ('v4' === $options['force_ip_resolve']) { - $records = \dns_get_record($uri->getHost(), \DNS_A); - if (!isset($records[0]['ip'])) { - throw new \WPMailSMTP\Vendor\GuzzleHttp\Exception\ConnectException(\sprintf("Could not resolve IPv4 address for host '%s'", $uri->getHost()), $request); - } - $uri = $uri->withHost($records[0]['ip']); - } elseif ('v6' === $options['force_ip_resolve']) { - $records = \dns_get_record($uri->getHost(), \DNS_AAAA); - if (!isset($records[0]['ipv6'])) { - throw new \WPMailSMTP\Vendor\GuzzleHttp\Exception\ConnectException(\sprintf("Could not resolve IPv6 address for host '%s'", $uri->getHost()), $request); - } - $uri = $uri->withHost('[' . $records[0]['ipv6'] . ']'); - } - } - return $uri; - } - private function getDefaultContext(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request) - { - $headers = ''; - foreach ($request->getHeaders() as $name => $value) { - foreach ($value as $val) { - $headers .= "{$name}: {$val}\r\n"; - } - } - $context = ['http' => ['method' => $request->getMethod(), 'header' => $headers, 'protocol_version' => $request->getProtocolVersion(), 'ignore_errors' => \true, 'follow_location' => 0]]; - $body = (string) $request->getBody(); - if (!empty($body)) { - $context['http']['content'] = $body; - // Prevent the HTTP handler from adding a Content-Type header. - if (!$request->hasHeader('Content-Type')) { - $context['http']['header'] .= "Content-Type:\r\n"; - } - } - $context['http']['header'] = \rtrim($context['http']['header']); - return $context; - } - private function add_proxy(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params) - { - if (!\is_array($value)) { - $options['http']['proxy'] = $value; - } else { - $scheme = $request->getUri()->getScheme(); - if (isset($value[$scheme])) { - if (!isset($value['no']) || !\WPMailSMTP\Vendor\GuzzleHttp\is_host_in_noproxy($request->getUri()->getHost(), $value['no'])) { - $options['http']['proxy'] = $value[$scheme]; - } - } - } - } - private function add_timeout(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params) - { - if ($value > 0) { - $options['http']['timeout'] = $value; - } - } - private function add_verify(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params) - { - if ($value === \true) { - // PHP 5.6 or greater will find the system cert by default. When - // < 5.6, use the Guzzle bundled cacert. - if (\PHP_VERSION_ID < 50600) { - $options['ssl']['cafile'] = \WPMailSMTP\Vendor\GuzzleHttp\default_ca_bundle(); - } - } elseif (\is_string($value)) { - $options['ssl']['cafile'] = $value; - if (!\file_exists($value)) { - throw new \RuntimeException("SSL CA bundle not found: {$value}"); - } - } elseif ($value === \false) { - $options['ssl']['verify_peer'] = \false; - $options['ssl']['verify_peer_name'] = \false; - return; - } else { - throw new \InvalidArgumentException('Invalid verify request option'); - } - $options['ssl']['verify_peer'] = \true; - $options['ssl']['verify_peer_name'] = \true; - $options['ssl']['allow_self_signed'] = \false; - } - private function add_cert(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params) - { - if (\is_array($value)) { - $options['ssl']['passphrase'] = $value[1]; - $value = $value[0]; - } - if (!\file_exists($value)) { - throw new \RuntimeException("SSL certificate not found: {$value}"); - } - $options['ssl']['local_cert'] = $value; - } - private function add_progress(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params) - { - $this->addNotification($params, function ($code, $a, $b, $c, $transferred, $total) use($value) { - if ($code == \STREAM_NOTIFY_PROGRESS) { - $value($total, $transferred, null, null); - } - }); - } - private function add_debug(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params) - { - if ($value === \false) { - return; - } - static $map = [\STREAM_NOTIFY_CONNECT => 'CONNECT', \STREAM_NOTIFY_AUTH_REQUIRED => 'AUTH_REQUIRED', \STREAM_NOTIFY_AUTH_RESULT => 'AUTH_RESULT', \STREAM_NOTIFY_MIME_TYPE_IS => 'MIME_TYPE_IS', \STREAM_NOTIFY_FILE_SIZE_IS => 'FILE_SIZE_IS', \STREAM_NOTIFY_REDIRECTED => 'REDIRECTED', \STREAM_NOTIFY_PROGRESS => 'PROGRESS', \STREAM_NOTIFY_FAILURE => 'FAILURE', \STREAM_NOTIFY_COMPLETED => 'COMPLETED', \STREAM_NOTIFY_RESOLVE => 'RESOLVE']; - static $args = ['severity', 'message', 'message_code', 'bytes_transferred', 'bytes_max']; - $value = \WPMailSMTP\Vendor\GuzzleHttp\debug_resource($value); - $ident = $request->getMethod() . ' ' . $request->getUri()->withFragment(''); - $this->addNotification($params, function () use($ident, $value, $map, $args) { - $passed = \func_get_args(); - $code = \array_shift($passed); - \fprintf($value, '<%s> [%s] ', $ident, $map[$code]); - foreach (\array_filter($passed) as $i => $v) { - \fwrite($value, $args[$i] . ': "' . $v . '" '); - } - \fwrite($value, "\n"); - }); - } - private function addNotification(array &$params, callable $notify) - { - // Wrap the existing function if needed. - if (!isset($params['notification'])) { - $params['notification'] = $notify; - } else { - $params['notification'] = $this->callArray([$params['notification'], $notify]); - } - } - private function callArray(array $functions) - { - return function () use($functions) { - $args = \func_get_args(); - foreach ($functions as $fn) { - \call_user_func_array($fn, $args); - } - }; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/HandlerStack.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/HandlerStack.php deleted file mode 100644 index 42dae95..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/HandlerStack.php +++ /dev/null @@ -1,243 +0,0 @@ -push(\WPMailSMTP\Vendor\GuzzleHttp\Middleware::httpErrors(), 'http_errors'); - $stack->push(\WPMailSMTP\Vendor\GuzzleHttp\Middleware::redirect(), 'allow_redirects'); - $stack->push(\WPMailSMTP\Vendor\GuzzleHttp\Middleware::cookies(), 'cookies'); - $stack->push(\WPMailSMTP\Vendor\GuzzleHttp\Middleware::prepareBody(), 'prepare_body'); - return $stack; - } - /** - * @param callable $handler Underlying HTTP handler. - */ - public function __construct(callable $handler = null) - { - $this->handler = $handler; - } - /** - * Invokes the handler stack as a composed handler - * - * @param RequestInterface $request - * @param array $options - * - * @return ResponseInterface|PromiseInterface - */ - public function __invoke(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) - { - $handler = $this->resolve(); - return $handler($request, $options); - } - /** - * Dumps a string representation of the stack. - * - * @return string - */ - public function __toString() - { - $depth = 0; - $stack = []; - if ($this->handler) { - $stack[] = "0) Handler: " . $this->debugCallable($this->handler); - } - $result = ''; - foreach (\array_reverse($this->stack) as $tuple) { - $depth++; - $str = "{$depth}) Name: '{$tuple[1]}', "; - $str .= "Function: " . $this->debugCallable($tuple[0]); - $result = "> {$str}\n{$result}"; - $stack[] = $str; - } - foreach (\array_keys($stack) as $k) { - $result .= "< {$stack[$k]}\n"; - } - return $result; - } - /** - * Set the HTTP handler that actually returns a promise. - * - * @param callable $handler Accepts a request and array of options and - * returns a Promise. - */ - public function setHandler(callable $handler) - { - $this->handler = $handler; - $this->cached = null; - } - /** - * Returns true if the builder has a handler. - * - * @return bool - */ - public function hasHandler() - { - return (bool) $this->handler; - } - /** - * Unshift a middleware to the bottom of the stack. - * - * @param callable $middleware Middleware function - * @param string $name Name to register for this middleware. - */ - public function unshift(callable $middleware, $name = null) - { - \array_unshift($this->stack, [$middleware, $name]); - $this->cached = null; - } - /** - * Push a middleware to the top of the stack. - * - * @param callable $middleware Middleware function - * @param string $name Name to register for this middleware. - */ - public function push(callable $middleware, $name = '') - { - $this->stack[] = [$middleware, $name]; - $this->cached = null; - } - /** - * Add a middleware before another middleware by name. - * - * @param string $findName Middleware to find - * @param callable $middleware Middleware function - * @param string $withName Name to register for this middleware. - */ - public function before($findName, callable $middleware, $withName = '') - { - $this->splice($findName, $withName, $middleware, \true); - } - /** - * Add a middleware after another middleware by name. - * - * @param string $findName Middleware to find - * @param callable $middleware Middleware function - * @param string $withName Name to register for this middleware. - */ - public function after($findName, callable $middleware, $withName = '') - { - $this->splice($findName, $withName, $middleware, \false); - } - /** - * 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) - { - $this->cached = null; - $idx = \is_callable($remove) ? 0 : 1; - $this->stack = \array_values(\array_filter($this->stack, function ($tuple) use($idx, $remove) { - return $tuple[$idx] !== $remove; - })); - } - /** - * Compose the middleware and handler into a single callable function. - * - * @return callable - */ - public function resolve() - { - if (!$this->cached) { - if (!($prev = $this->handler)) { - throw new \LogicException('No handler has been specified'); - } - foreach (\array_reverse($this->stack) as $fn) { - $prev = $fn[0]($prev); - } - $this->cached = $prev; - } - return $this->cached; - } - /** - * @param string $name - * @return int - */ - private function findByName($name) - { - foreach ($this->stack as $k => $v) { - if ($v[1] === $name) { - return $k; - } - } - throw new \InvalidArgumentException("Middleware not found: {$name}"); - } - /** - * Splices a function into the middleware list at a specific position. - * - * @param string $findName - * @param string $withName - * @param callable $middleware - * @param bool $before - */ - private function splice($findName, $withName, callable $middleware, $before) - { - $this->cached = null; - $idx = $this->findByName($findName); - $tuple = [$middleware, $withName]; - if ($before) { - if ($idx === 0) { - \array_unshift($this->stack, $tuple); - } else { - $replacement = [$tuple, $this->stack[$idx]]; - \array_splice($this->stack, $idx, 1, $replacement); - } - } elseif ($idx === \count($this->stack) - 1) { - $this->stack[] = $tuple; - } else { - $replacement = [$this->stack[$idx], $tuple]; - \array_splice($this->stack, $idx, 1, $replacement); - } - } - /** - * Provides a debug string for a given callable. - * - * @param array|callable $fn Function to write as a string. - * - * @return string - */ - private function debugCallable($fn) - { - if (\is_string($fn)) { - return "callable({$fn})"; - } - if (\is_array($fn)) { - return \is_string($fn[0]) ? "callable({$fn[0]}::{$fn[1]})" : "callable(['" . \get_class($fn[0]) . "', '{$fn[1]}'])"; - } - return 'callable(' . \spl_object_hash($fn) . ')'; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/MessageFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/MessageFormatter.php deleted file mode 100644 index b6ecc68..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/MessageFormatter.php +++ /dev/null @@ -1,156 +0,0 @@ ->>>>>>>\n{request}\n<<<<<<<<\n{response}\n--------\n{error}"; - 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($template = self::CLF) - { - $this->template = $template ?: self::CLF; - } - /** - * Returns a formatted message string. - * - * @param RequestInterface $request Request that was sent - * @param ResponseInterface $response Response that was received - * @param \Exception $error Exception that was received - * - * @return string - */ - public function format(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, \WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response = null, \Exception $error = null) - { - $cache = []; - return \preg_replace_callback('/{\\s*([A-Za-z_\\-\\.0-9]+)\\s*}/', function (array $matches) use($request, $response, $error, &$cache) { - if (isset($cache[$matches[1]])) { - return $cache[$matches[1]]; - } - $result = ''; - switch ($matches[1]) { - case 'request': - $result = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\str($request); - break; - case 'response': - $result = $response ? \WPMailSMTP\Vendor\GuzzleHttp\Psr7\str($response) : ''; - break; - case 'req_headers': - $result = \trim($request->getMethod() . ' ' . $request->getRequestTarget()) . ' HTTP/' . $request->getProtocolVersion() . "\r\n" . $this->headers($request); - break; - case 'res_headers': - $result = $response ? \sprintf('HTTP/%s %d %s', $response->getProtocolVersion(), $response->getStatusCode(), $response->getReasonPhrase()) . "\r\n" . $this->headers($response) : 'NULL'; - break; - case 'req_body': - $result = $request->getBody(); - break; - case 'res_body': - $result = $response ? $response->getBody() : 'NULL'; - break; - case 'ts': - case 'date_iso_8601': - $result = \gmdate('c'); - break; - case 'date_common_log': - $result = \date('d/M/Y:H:i:s O'); - break; - case 'method': - $result = $request->getMethod(); - break; - case 'version': - $result = $request->getProtocolVersion(); - break; - case 'uri': - case 'url': - $result = $request->getUri(); - break; - case 'target': - $result = $request->getRequestTarget(); - break; - case 'req_version': - $result = $request->getProtocolVersion(); - break; - case 'res_version': - $result = $response ? $response->getProtocolVersion() : 'NULL'; - break; - case 'host': - $result = $request->getHeaderLine('Host'); - break; - case 'hostname': - $result = \gethostname(); - break; - case 'code': - $result = $response ? $response->getStatusCode() : 'NULL'; - break; - case 'phrase': - $result = $response ? $response->getReasonPhrase() : 'NULL'; - break; - case 'error': - $result = $error ? $error->getMessage() : 'NULL'; - break; - default: - // handle prefixed dynamic headers - if (\strpos($matches[1], 'req_header_') === 0) { - $result = $request->getHeaderLine(\substr($matches[1], 11)); - } elseif (\strpos($matches[1], 'res_header_') === 0) { - $result = $response ? $response->getHeaderLine(\substr($matches[1], 11)) : 'NULL'; - } - } - $cache[$matches[1]] = $result; - return $result; - }, $this->template); - } - /** - * Get headers from message as string - * - * @return string - */ - private function headers(\WPMailSMTP\Vendor\Psr\Http\Message\MessageInterface $message) - { - $result = ''; - foreach ($message->getHeaders() as $name => $values) { - $result .= $name . ': ' . \implode(', ', $values) . "\r\n"; - } - return \trim($result); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Middleware.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Middleware.php deleted file mode 100644 index 5665345..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Middleware.php +++ /dev/null @@ -1,221 +0,0 @@ -withCookieHeader($request); - return $handler($request, $options)->then(function ($response) use($cookieJar, $request) { - $cookieJar->extractCookies($request, $response); - return $response; - }); - }; - }; - } - /** - * Middleware that throws exceptions for 4xx or 5xx responses when the - * "http_error" request option is set to true. - * - * @return callable Returns a function that accepts the next handler. - */ - public static function httpErrors() - { - return function (callable $handler) { - return function ($request, array $options) use($handler) { - if (empty($options['http_errors'])) { - return $handler($request, $options); - } - return $handler($request, $options)->then(function (\WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response) use($request) { - $code = $response->getStatusCode(); - if ($code < 400) { - return $response; - } - throw \WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException::create($request, $response); - }); - }; - }; - } - /** - * Middleware that pushes history data to an ArrayAccess container. - * - * @param array|\ArrayAccess $container Container to hold the history (by reference). - * - * @return callable Returns a function that accepts the next handler. - * @throws \InvalidArgumentException if container is not an array or ArrayAccess. - */ - public static function history(&$container) - { - if (!\is_array($container) && !$container instanceof \ArrayAccess) { - throw new \InvalidArgumentException('history container must be an array or object implementing ArrayAccess'); - } - return function (callable $handler) use(&$container) { - return function ($request, array $options) use($handler, &$container) { - return $handler($request, $options)->then(function ($value) use($request, &$container, $options) { - $container[] = ['request' => $request, 'response' => $value, 'error' => null, 'options' => $options]; - return $value; - }, function ($reason) use($request, &$container, $options) { - $container[] = ['request' => $request, 'response' => null, 'error' => $reason, 'options' => $options]; - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\rejection_for($reason); - }); - }; - }; - } - /** - * 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) - { - return function (callable $handler) use($before, $after) { - return function ($request, array $options) use($handler, $before, $after) { - if ($before) { - $before($request, $options); - } - $response = $handler($request, $options); - if ($after) { - $after($request, $options, $response); - } - return $response; - }; - }; - } - /** - * Middleware that handles request redirects. - * - * @return callable Returns a function that accepts the next handler. - */ - public static function redirect() - { - return function (callable $handler) { - return new \WPMailSMTP\Vendor\GuzzleHttp\RedirectMiddleware($handler); - }; - } - /** - * 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) - { - return function (callable $handler) use($decider, $delay) { - return new \WPMailSMTP\Vendor\GuzzleHttp\RetryMiddleware($decider, $handler, $delay); - }; - } - /** - * Middleware that logs requests, responses, and errors using a message - * formatter. - * - * @param LoggerInterface $logger Logs messages. - * @param 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(\WPMailSMTP\Vendor\Psr\Log\LoggerInterface $logger, \WPMailSMTP\Vendor\GuzzleHttp\MessageFormatter $formatter, $logLevel = 'info') - { - return function (callable $handler) use($logger, $formatter, $logLevel) { - return function ($request, array $options) use($handler, $logger, $formatter, $logLevel) { - return $handler($request, $options)->then(function ($response) use($logger, $request, $formatter, $logLevel) { - $message = $formatter->format($request, $response); - $logger->log($logLevel, $message); - return $response; - }, function ($reason) use($logger, $request, $formatter) { - $response = $reason instanceof \WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException ? $reason->getResponse() : null; - $message = $formatter->format($request, $response, $reason); - $logger->notice($message); - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\rejection_for($reason); - }); - }; - }; - } - /** - * This middleware adds a default content-type if possible, a default - * content-length or transfer-encoding header, and the expect header. - * - * @return callable - */ - public static function prepareBody() - { - return function (callable $handler) { - return new \WPMailSMTP\Vendor\GuzzleHttp\PrepareBodyMiddleware($handler); - }; - } - /** - * 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. - * @return callable - */ - public static function mapRequest(callable $fn) - { - return function (callable $handler) use($fn) { - return function ($request, array $options) use($handler, $fn) { - return $handler($fn($request), $options); - }; - }; - } - /** - * Middleware that applies a map function to the resolved promise's - * response. - * - * @param callable $fn Function that accepts a ResponseInterface and - * returns a ResponseInterface. - * @return callable - */ - public static function mapResponse(callable $fn) - { - return function (callable $handler) use($fn) { - return function ($request, array $options) use($handler, $fn) { - return $handler($request, $options)->then($fn); - }; - }; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Pool.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Pool.php deleted file mode 100644 index 3bcce5d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Pool.php +++ /dev/null @@ -1,117 +0,0 @@ - $rfn) { - if ($rfn instanceof \WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface) { - (yield $key => $client->sendAsync($rfn, $opts)); - } elseif (\is_callable($rfn)) { - (yield $key => $rfn($opts)); - } else { - throw new \InvalidArgumentException('Each value yielded by ' . 'the iterator must be a Psr7\\Http\\Message\\RequestInterface ' . 'or a callable that returns a promise that fulfills ' . 'with a Psr7\\Message\\Http\\ResponseInterface object.'); - } - } - }; - $this->each = new \WPMailSMTP\Vendor\GuzzleHttp\Promise\EachPromise($requests(), $config); - } - /** - * Get promise - * - * @return PromiseInterface - */ - public function promise() - { - return $this->each->promise(); - } - /** - * 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(\WPMailSMTP\Vendor\GuzzleHttp\ClientInterface $client, $requests, array $options = []) - { - $res = []; - self::cmpCallback($options, 'fulfilled', $res); - self::cmpCallback($options, 'rejected', $res); - $pool = new static($client, $requests, $options); - $pool->promise()->wait(); - \ksort($res); - return $res; - } - /** - * Execute callback(s) - * - * @return void - */ - private static function cmpCallback(array &$options, $name, array &$results) - { - if (!isset($options[$name])) { - $options[$name] = function ($v, $k) use(&$results) { - $results[$k] = $v; - }; - } else { - $currentFn = $options[$name]; - $options[$name] = function ($v, $k) use(&$results, $currentFn) { - $currentFn($v, $k); - $results[$k] = $v; - }; - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php deleted file mode 100644 index eaf112a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php +++ /dev/null @@ -1,91 +0,0 @@ -nextHandler = $nextHandler; - } - /** - * @param RequestInterface $request - * @param array $options - * - * @return PromiseInterface - */ - public function __invoke(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) - { - $fn = $this->nextHandler; - // Don't do anything if the request has no body. - if ($request->getBody()->getSize() === 0) { - return $fn($request, $options); - } - $modify = []; - // Add a default content-type if possible. - if (!$request->hasHeader('Content-Type')) { - if ($uri = $request->getBody()->getMetadata('uri')) { - if ($type = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\mimetype_from_filename($uri)) { - $modify['set_headers']['Content-Type'] = $type; - } - } - } - // Add a default content-length or transfer-encoding header. - if (!$request->hasHeader('Content-Length') && !$request->hasHeader('Transfer-Encoding')) { - $size = $request->getBody()->getSize(); - if ($size !== null) { - $modify['set_headers']['Content-Length'] = $size; - } else { - $modify['set_headers']['Transfer-Encoding'] = 'chunked'; - } - } - // Add the expect header if needed. - $this->addExpectHeader($request, $options, $modify); - return $fn(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\modify_request($request, $modify), $options); - } - /** - * Add expect header - * - * @return void - */ - private function addExpectHeader(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options, array &$modify) - { - // Determine if the Expect header should be used - if ($request->hasHeader('Expect')) { - return; - } - $expect = isset($options['expect']) ? $options['expect'] : null; - // Return if disabled or if you're not using HTTP/1.1 or HTTP/2.0 - if ($expect === \false || $request->getProtocolVersion() < 1.1) { - return; - } - // The expect header is unconditionally enabled - if ($expect === \true) { - $modify['set_headers']['Expect'] = '100-Continue'; - return; - } - // By default, send the expect header when the payload is > 1mb - if ($expect === null) { - $expect = 1048576; - } - // Always add if the body cannot be rewound, the size cannot be - // determined, or the size is greater than the cutoff threshold - $body = $request->getBody(); - $size = $body->getSize(); - if ($size === null || $size >= (int) $expect || !$body->isSeekable()) { - $modify['set_headers']['Expect'] = '100-Continue'; - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/RedirectMiddleware.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/RedirectMiddleware.php deleted file mode 100644 index b35288c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/RedirectMiddleware.php +++ /dev/null @@ -1,177 +0,0 @@ - 5, 'protocols' => ['http', 'https'], 'strict' => \false, 'referer' => \false, 'track_redirects' => \false]; - /** @var callable */ - private $nextHandler; - /** - * @param callable $nextHandler Next handler to invoke. - */ - public function __construct(callable $nextHandler) - { - $this->nextHandler = $nextHandler; - } - /** - * @param RequestInterface $request - * @param array $options - * - * @return PromiseInterface - */ - public function __invoke(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) - { - $fn = $this->nextHandler; - if (empty($options['allow_redirects'])) { - return $fn($request, $options); - } - if ($options['allow_redirects'] === \true) { - $options['allow_redirects'] = self::$defaultSettings; - } elseif (!\is_array($options['allow_redirects'])) { - throw new \InvalidArgumentException('allow_redirects must be true, false, or array'); - } else { - // Merge the default settings with the provided settings - $options['allow_redirects'] += self::$defaultSettings; - } - if (empty($options['allow_redirects']['max'])) { - return $fn($request, $options); - } - return $fn($request, $options)->then(function (\WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response) use($request, $options) { - return $this->checkRedirect($request, $options, $response); - }); - } - /** - * @param RequestInterface $request - * @param array $options - * @param ResponseInterface $response - * - * @return ResponseInterface|PromiseInterface - */ - public function checkRedirect(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options, \WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response) - { - if (\substr($response->getStatusCode(), 0, 1) != '3' || !$response->hasHeader('Location')) { - return $response; - } - $this->guardMax($request, $options); - $nextRequest = $this->modifyRequest($request, $options, $response); - if (isset($options['allow_redirects']['on_redirect'])) { - \call_user_func($options['allow_redirects']['on_redirect'], $request, $response, $nextRequest->getUri()); - } - /** @var PromiseInterface|ResponseInterface $promise */ - $promise = $this($nextRequest, $options); - // Add headers to be able to track history of redirects. - if (!empty($options['allow_redirects']['track_redirects'])) { - return $this->withTracking($promise, (string) $nextRequest->getUri(), $response->getStatusCode()); - } - return $promise; - } - /** - * Enable tracking on promise. - * - * @return PromiseInterface - */ - private function withTracking(\WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface $promise, $uri, $statusCode) - { - return $promise->then(function (\WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response) use($uri, $statusCode) { - // Note that we are pushing to the front of the list as this - // would be an earlier response than what is currently present - // in the history header. - $historyHeader = $response->getHeader(self::HISTORY_HEADER); - $statusHeader = $response->getHeader(self::STATUS_HISTORY_HEADER); - \array_unshift($historyHeader, $uri); - \array_unshift($statusHeader, $statusCode); - return $response->withHeader(self::HISTORY_HEADER, $historyHeader)->withHeader(self::STATUS_HISTORY_HEADER, $statusHeader); - }); - } - /** - * Check for too many redirects - * - * @return void - * - * @throws TooManyRedirectsException Too many redirects. - */ - private function guardMax(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array &$options) - { - $current = isset($options['__redirect_count']) ? $options['__redirect_count'] : 0; - $options['__redirect_count'] = $current + 1; - $max = $options['allow_redirects']['max']; - if ($options['__redirect_count'] > $max) { - throw new \WPMailSMTP\Vendor\GuzzleHttp\Exception\TooManyRedirectsException("Will not follow more than {$max} redirects", $request); - } - } - /** - * @param RequestInterface $request - * @param array $options - * @param ResponseInterface $response - * - * @return RequestInterface - */ - public function modifyRequest(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options, \WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response) - { - // Request modifications to apply. - $modify = []; - $protocols = $options['allow_redirects']['protocols']; - // Use a GET request if this is an entity enclosing request and we are - // not forcing RFC compliance, but rather emulating what all browsers - // would do. - $statusCode = $response->getStatusCode(); - if ($statusCode == 303 || $statusCode <= 302 && !$options['allow_redirects']['strict']) { - $modify['method'] = 'GET'; - $modify['body'] = ''; - } - $uri = $this->redirectUri($request, $response, $protocols); - if (isset($options['idn_conversion']) && $options['idn_conversion'] !== \false) { - $idnOptions = $options['idn_conversion'] === \true ? \IDNA_DEFAULT : $options['idn_conversion']; - $uri = \WPMailSMTP\Vendor\GuzzleHttp\Utils::idnUriConvert($uri, $idnOptions); - } - $modify['uri'] = $uri; - \WPMailSMTP\Vendor\GuzzleHttp\Psr7\rewind_body($request); - // Add the Referer header if it is told to do so and only - // add the header if we are not redirecting from https to http. - if ($options['allow_redirects']['referer'] && $modify['uri']->getScheme() === $request->getUri()->getScheme()) { - $uri = $request->getUri()->withUserInfo(''); - $modify['set_headers']['Referer'] = (string) $uri; - } else { - $modify['remove_headers'][] = 'Referer'; - } - // Remove Authorization header if host is different. - if ($request->getUri()->getHost() !== $modify['uri']->getHost()) { - $modify['remove_headers'][] = 'Authorization'; - } - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\modify_request($request, $modify); - } - /** - * Set the appropriate URL on the request based on the location header - * - * @param RequestInterface $request - * @param ResponseInterface $response - * @param array $protocols - * - * @return UriInterface - */ - private function redirectUri(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, \WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response, array $protocols) - { - $location = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\UriResolver::resolve($request->getUri(), new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Uri($response->getHeaderLine('Location'))); - // Ensure that the redirect URI is allowed based on the protocols. - if (!\in_array($location->getScheme(), $protocols)) { - throw new \WPMailSMTP\Vendor\GuzzleHttp\Exception\BadResponseException(\sprintf('Redirect URI, %s, does not use one of the allowed redirect protocols: %s', $location, \implode(', ', $protocols)), $request, $response); - } - return $location; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/RequestOptions.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/RequestOptions.php deleted file mode 100644 index efb7e38..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/RequestOptions.php +++ /dev/null @@ -1,235 +0,0 @@ -decider = $decider; - $this->nextHandler = $nextHandler; - $this->delay = $delay ?: __CLASS__ . '::exponentialDelay'; - } - /** - * Default exponential backoff delay function. - * - * @param int $retries - * - * @return int milliseconds. - */ - public static function exponentialDelay($retries) - { - return (int) \pow(2, $retries - 1) * 1000; - } - /** - * @param RequestInterface $request - * @param array $options - * - * @return PromiseInterface - */ - public function __invoke(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) - { - if (!isset($options['retries'])) { - $options['retries'] = 0; - } - $fn = $this->nextHandler; - return $fn($request, $options)->then($this->onFulfilled($request, $options), $this->onRejected($request, $options)); - } - /** - * Execute fulfilled closure - * - * @return mixed - */ - private function onFulfilled(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $req, array $options) - { - return function ($value) use($req, $options) { - if (!\call_user_func($this->decider, $options['retries'], $req, $value, null)) { - return $value; - } - return $this->doRetry($req, $options, $value); - }; - } - /** - * Execute rejected closure - * - * @return callable - */ - private function onRejected(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $req, array $options) - { - return function ($reason) use($req, $options) { - if (!\call_user_func($this->decider, $options['retries'], $req, null, $reason)) { - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\rejection_for($reason); - } - return $this->doRetry($req, $options); - }; - } - /** - * @return self - */ - private function doRetry(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options, \WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface $response = null) - { - $options['delay'] = \call_user_func($this->delay, ++$options['retries'], $response); - return $this($request, $options); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/TransferStats.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/TransferStats.php deleted file mode 100644 index 199bf5a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/TransferStats.php +++ /dev/null @@ -1,110 +0,0 @@ -request = $request; - $this->response = $response; - $this->transferTime = $transferTime; - $this->handlerErrorData = $handlerErrorData; - $this->handlerStats = $handlerStats; - } - /** - * @return RequestInterface - */ - public function getRequest() - { - return $this->request; - } - /** - * Returns the response that was received (if any). - * - * @return ResponseInterface|null - */ - public function getResponse() - { - return $this->response; - } - /** - * Returns true if a response was received. - * - * @return bool - */ - public function hasResponse() - { - return $this->response !== null; - } - /** - * 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() - { - return $this->handlerErrorData; - } - /** - * Get the effective URI the request was sent to. - * - * @return UriInterface - */ - public function getEffectiveUri() - { - return $this->request->getUri(); - } - /** - * Get the estimated time the request was being transferred by the handler. - * - * @return float|null Time in seconds. - */ - public function getTransferTime() - { - return $this->transferTime; - } - /** - * Gets an array of all of the handler specific transfer data. - * - * @return array - */ - public function getHandlerStats() - { - return $this->handlerStats; - } - /** - * 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($stat) - { - return isset($this->handlerStats[$stat]) ? $this->handlerStats[$stat] : null; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/UriTemplate.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/UriTemplate.php deleted file mode 100644 index c1bd547..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/UriTemplate.php +++ /dev/null @@ -1,191 +0,0 @@ - ['prefix' => '', 'joiner' => ',', 'query' => \false], '+' => ['prefix' => '', 'joiner' => ',', 'query' => \false], '#' => ['prefix' => '#', 'joiner' => ',', 'query' => \false], '.' => ['prefix' => '.', 'joiner' => '.', 'query' => \false], '/' => ['prefix' => '/', 'joiner' => '/', 'query' => \false], ';' => ['prefix' => ';', 'joiner' => ';', 'query' => \true], '?' => ['prefix' => '?', 'joiner' => '&', 'query' => \true], '&' => ['prefix' => '&', 'joiner' => '&', 'query' => \true]]; - /** @var array Delimiters */ - private static $delims = [':', '/', '?', '#', '[', ']', '@', '!', '$', '&', '\'', '(', ')', '*', '+', ',', ';', '=']; - /** @var array Percent encoded delimiters */ - private static $delimsPct = ['%3A', '%2F', '%3F', '%23', '%5B', '%5D', '%40', '%21', '%24', '%26', '%27', '%28', '%29', '%2A', '%2B', '%2C', '%3B', '%3D']; - public function expand($template, array $variables) - { - if (\false === \strpos($template, '{')) { - return $template; - } - $this->template = $template; - $this->variables = $variables; - return \preg_replace_callback('/\\{([^\\}]+)\\}/', [$this, 'expandMatch'], $this->template); - } - /** - * Parse an expression into parts - * - * @param string $expression Expression to parse - * - * @return array Returns an associative array of parts - */ - private function parseExpression($expression) - { - $result = []; - if (isset(self::$operatorHash[$expression[0]])) { - $result['operator'] = $expression[0]; - $expression = \substr($expression, 1); - } else { - $result['operator'] = ''; - } - foreach (\explode(',', $expression) as $value) { - $value = \trim($value); - $varspec = []; - if ($colonPos = \strpos($value, ':')) { - $varspec['value'] = \substr($value, 0, $colonPos); - $varspec['modifier'] = ':'; - $varspec['position'] = (int) \substr($value, $colonPos + 1); - } elseif (\substr($value, -1) === '*') { - $varspec['modifier'] = '*'; - $varspec['value'] = \substr($value, 0, -1); - } else { - $varspec['value'] = (string) $value; - $varspec['modifier'] = ''; - } - $result['values'][] = $varspec; - } - return $result; - } - /** - * Process an expansion - * - * @param array $matches Matches met in the preg_replace_callback - * - * @return string Returns the replacement string - */ - private function expandMatch(array $matches) - { - static $rfc1738to3986 = ['+' => '%20', '%7e' => '~']; - $replacements = []; - $parsed = self::parseExpression($matches[1]); - $prefix = self::$operatorHash[$parsed['operator']]['prefix']; - $joiner = self::$operatorHash[$parsed['operator']]['joiner']; - $useQuery = self::$operatorHash[$parsed['operator']]['query']; - foreach ($parsed['values'] as $value) { - if (!isset($this->variables[$value['value']])) { - continue; - } - $variable = $this->variables[$value['value']]; - $actuallyUseQuery = $useQuery; - $expanded = ''; - if (\is_array($variable)) { - $isAssoc = $this->isAssoc($variable); - $kvp = []; - foreach ($variable as $key => $var) { - if ($isAssoc) { - $key = \rawurlencode($key); - $isNestedArray = \is_array($var); - } else { - $isNestedArray = \false; - } - if (!$isNestedArray) { - $var = \rawurlencode($var); - if ($parsed['operator'] === '+' || $parsed['operator'] === '#') { - $var = $this->decodeReserved($var); - } - } - if ($value['modifier'] === '*') { - if ($isAssoc) { - if ($isNestedArray) { - // Nested arrays must allow for deeply nested - // structures. - $var = \strtr(\http_build_query([$key => $var]), $rfc1738to3986); - } else { - $var = $key . '=' . $var; - } - } elseif ($key > 0 && $actuallyUseQuery) { - $var = $value['value'] . '=' . $var; - } - } - $kvp[$key] = $var; - } - if (empty($variable)) { - $actuallyUseQuery = \false; - } elseif ($value['modifier'] === '*') { - $expanded = \implode($joiner, $kvp); - if ($isAssoc) { - // Don't prepend the value name when using the explode - // modifier with an associative array. - $actuallyUseQuery = \false; - } - } else { - if ($isAssoc) { - // When an associative array is encountered and the - // explode modifier is not set, then the result must be - // a comma separated list of keys followed by their - // respective values. - foreach ($kvp as $k => &$v) { - $v = $k . ',' . $v; - } - } - $expanded = \implode(',', $kvp); - } - } else { - if ($value['modifier'] === ':') { - $variable = \substr($variable, 0, $value['position']); - } - $expanded = \rawurlencode($variable); - if ($parsed['operator'] === '+' || $parsed['operator'] === '#') { - $expanded = $this->decodeReserved($expanded); - } - } - if ($actuallyUseQuery) { - if (!$expanded && $joiner !== '&') { - $expanded = $value['value']; - } else { - $expanded = $value['value'] . '=' . $expanded; - } - } - $replacements[] = $expanded; - } - $ret = \implode($joiner, $replacements); - if ($ret && $prefix) { - return $prefix . $ret; - } - return $ret; - } - /** - * Determines if an array is associative. - * - * This makes the assumption that input arrays are sequences or hashes. - * This assumption is a tradeoff for accuracy in favor of speed, but it - * should work in almost every case where input is supplied for a URI - * template. - * - * @param array $array Array to check - * - * @return bool - */ - private function isAssoc(array $array) - { - return $array && \array_keys($array)[0] !== 0; - } - /** - * Removes percent encoding on reserved characters (used with + and # - * modifiers). - * - * @param string $string String to fix - * - * @return string - */ - private function decodeReserved($string) - { - return \str_replace(self::$delimsPct, self::$delims, $string); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Utils.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Utils.php deleted file mode 100644 index f0e655f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/Utils.php +++ /dev/null @@ -1,82 +0,0 @@ -getHost()) { - $asciiHost = self::idnToAsci($uri->getHost(), $options, $info); - if ($asciiHost === \false) { - $errorBitSet = isset($info['errors']) ? $info['errors'] : 0; - $errorConstants = \array_filter(\array_keys(\get_defined_constants()), function ($name) { - return \substr($name, 0, 11) === 'IDNA_ERROR_'; - }); - $errors = []; - foreach ($errorConstants as $errorConstant) { - if ($errorBitSet & \constant($errorConstant)) { - $errors[] = $errorConstant; - } - } - $errorMessage = 'IDN conversion failed'; - if ($errors) { - $errorMessage .= ' (errors: ' . \implode(', ', $errors) . ')'; - } - throw new \WPMailSMTP\Vendor\GuzzleHttp\Exception\InvalidArgumentException($errorMessage); - } else { - if ($uri->getHost() !== $asciiHost) { - // Replace URI only if the ASCII version is different - $uri = $uri->withHost($asciiHost); - } - } - } - return $uri; - } - /** - * @param string $domain - * @param int $options - * @param array $info - * - * @return string|false - */ - private static function idnToAsci($domain, $options, &$info = []) - { - if (\preg_match('%^[ -~]+$%', $domain) === 1) { - return $domain; - } - if (\extension_loaded('intl') && \defined('INTL_IDNA_VARIANT_UTS46')) { - return \idn_to_ascii($domain, $options, \INTL_IDNA_VARIANT_UTS46, $info); - } - /* - * The Idn class is marked as @internal. Verify that class and method exists. - */ - if (\method_exists(\WPMailSMTP\Vendor\Symfony\Polyfill\Intl\Idn\Idn::class, 'idn_to_ascii')) { - return \WPMailSMTP\Vendor\Symfony\Polyfill\Intl\Idn\Idn::idn_to_ascii($domain, $options, \WPMailSMTP\Vendor\Symfony\Polyfill\Intl\Idn\Idn::INTL_IDNA_VARIANT_UTS46, $info); - } - throw new \RuntimeException('ext-intl or symfony/polyfill-intl-idn not loaded or too old'); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/functions.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/functions.php deleted file mode 100644 index 70bf4c0..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/guzzle/src/functions.php +++ /dev/null @@ -1,294 +0,0 @@ -expand($template, $variables); -} -/** - * 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. - */ -function describe_type($input) -{ - switch (\gettype($input)) { - case 'object': - return 'object(' . \get_class($input) . ')'; - case 'array': - return 'array(' . \count($input) . ')'; - default: - \ob_start(); - \var_dump($input); - // normalize float vs double - return \str_replace('double(', 'float(', \rtrim(\ob_get_clean())); - } -} -/** - * 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" - * @return array - */ -function headers_from_lines($lines) -{ - $headers = []; - foreach ($lines as $line) { - $parts = \explode(':', $line, 2); - $headers[\trim($parts[0])][] = isset($parts[1]) ? \trim($parts[1]) : null; - } - return $headers; -} -/** - * Returns a debug stream based on the provided variable. - * - * @param mixed $value Optional value - * - * @return resource - */ -function debug_resource($value = null) -{ - if (\is_resource($value)) { - return $value; - } elseif (\defined('STDOUT')) { - return \STDOUT; - } - return \fopen('php://output', 'w'); -} -/** - * Chooses and creates a default handler to use based on the environment. - * - * The returned handler is not wrapped by any default middlewares. - * - * @return callable Returns the best handler for the given system. - * @throws \RuntimeException if no viable Handler is available. - */ -function choose_handler() -{ - $handler = null; - if (\function_exists('curl_multi_exec') && \function_exists('curl_exec')) { - $handler = \WPMailSMTP\Vendor\GuzzleHttp\Handler\Proxy::wrapSync(new \WPMailSMTP\Vendor\GuzzleHttp\Handler\CurlMultiHandler(), new \WPMailSMTP\Vendor\GuzzleHttp\Handler\CurlHandler()); - } elseif (\function_exists('curl_exec')) { - $handler = new \WPMailSMTP\Vendor\GuzzleHttp\Handler\CurlHandler(); - } elseif (\function_exists('curl_multi_exec')) { - $handler = new \WPMailSMTP\Vendor\GuzzleHttp\Handler\CurlMultiHandler(); - } - if (\ini_get('allow_url_fopen')) { - $handler = $handler ? \WPMailSMTP\Vendor\GuzzleHttp\Handler\Proxy::wrapStreaming($handler, new \WPMailSMTP\Vendor\GuzzleHttp\Handler\StreamHandler()) : new \WPMailSMTP\Vendor\GuzzleHttp\Handler\StreamHandler(); - } elseif (!$handler) { - throw new \RuntimeException('GuzzleHttp requires cURL, the ' . 'allow_url_fopen ini setting, or a custom HTTP handler.'); - } - return $handler; -} -/** - * Get the default User-Agent string to use with Guzzle - * - * @return string - */ -function default_user_agent() -{ - static $defaultAgent = ''; - if (!$defaultAgent) { - $defaultAgent = 'GuzzleHttp/' . \WPMailSMTP\Vendor\GuzzleHttp\Client::VERSION; - if (\extension_loaded('curl') && \function_exists('curl_version')) { - $defaultAgent .= ' curl/' . \curl_version()['version']; - } - $defaultAgent .= ' PHP/' . \PHP_VERSION; - } - return $defaultAgent; -} -/** - * 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. - * - * @return string - * @throws \RuntimeException if no bundle can be found. - */ -function default_ca_bundle() -{ - static $cached = null; - static $cafiles = [ - // Red Hat, CentOS, Fedora (provided by the ca-certificates package) - '/etc/pki/tls/certs/ca-bundle.crt', - // Ubuntu, Debian (provided by the ca-certificates package) - '/etc/ssl/certs/ca-certificates.crt', - // FreeBSD (provided by the ca_root_nss package) - '/usr/local/share/certs/ca-root-nss.crt', - // SLES 12 (provided by the ca-certificates package) - '/var/lib/ca-certificates/ca-bundle.pem', - // OS X provided by homebrew (using the default path) - '/usr/local/etc/openssl/cert.pem', - // Google app engine - '/etc/ca-certificates.crt', - // Windows? - 'C:\\windows\\system32\\curl-ca-bundle.crt', - 'C:\\windows\\curl-ca-bundle.crt', - ]; - if ($cached) { - return $cached; - } - if ($ca = \ini_get('openssl.cafile')) { - return $cached = $ca; - } - if ($ca = \ini_get('curl.cainfo')) { - return $cached = $ca; - } - foreach ($cafiles as $filename) { - if (\file_exists($filename)) { - return $cached = $filename; - } - } - throw new \RuntimeException(<< - -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. diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/AggregateException.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/AggregateException.php deleted file mode 100644 index 91f5aa5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/AggregateException.php +++ /dev/null @@ -1,14 +0,0 @@ -then(function ($v) { echo $v; }); - * - * @param callable $generatorFn Generator function to wrap into a promise. - * - * @return Promise - * - * @link https://github.com/petkaantonov/bluebird/blob/master/API.md#generators inspiration - */ -final class Coroutine implements \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface -{ - /** - * @var PromiseInterface|null - */ - private $currentPromise; - /** - * @var Generator - */ - private $generator; - /** - * @var Promise - */ - private $result; - public function __construct(callable $generatorFn) - { - $this->generator = $generatorFn(); - $this->result = new \WPMailSMTP\Vendor\GuzzleHttp\Promise\Promise(function () { - while (isset($this->currentPromise)) { - $this->currentPromise->wait(); - } - }); - try { - $this->nextCoroutine($this->generator->current()); - } catch (\Exception $exception) { - $this->result->reject($exception); - } catch (\Throwable $throwable) { - $this->result->reject($throwable); - } - } - /** - * Create a new coroutine. - * - * @return self - */ - public static function of(callable $generatorFn) - { - return new self($generatorFn); - } - public function then(callable $onFulfilled = null, callable $onRejected = null) - { - return $this->result->then($onFulfilled, $onRejected); - } - public function otherwise(callable $onRejected) - { - return $this->result->otherwise($onRejected); - } - public function wait($unwrap = \true) - { - return $this->result->wait($unwrap); - } - public function getState() - { - return $this->result->getState(); - } - public function resolve($value) - { - $this->result->resolve($value); - } - public function reject($reason) - { - $this->result->reject($reason); - } - public function cancel() - { - $this->currentPromise->cancel(); - $this->result->cancel(); - } - private function nextCoroutine($yielded) - { - $this->currentPromise = \WPMailSMTP\Vendor\GuzzleHttp\Promise\Create::promiseFor($yielded)->then([$this, '_handleSuccess'], [$this, '_handleFailure']); - } - /** - * @internal - */ - public function _handleSuccess($value) - { - unset($this->currentPromise); - try { - $next = $this->generator->send($value); - if ($this->generator->valid()) { - $this->nextCoroutine($next); - } else { - $this->result->resolve($value); - } - } catch (\Exception $exception) { - $this->result->reject($exception); - } catch (\Throwable $throwable) { - $this->result->reject($throwable); - } - } - /** - * @internal - */ - public function _handleFailure($reason) - { - unset($this->currentPromise); - try { - $nextYield = $this->generator->throw(\WPMailSMTP\Vendor\GuzzleHttp\Promise\Create::exceptionFor($reason)); - // The throw was caught, so keep iterating on the coroutine - $this->nextCoroutine($nextYield); - } catch (\Exception $exception) { - $this->result->reject($exception); - } catch (\Throwable $throwable) { - $this->result->reject($throwable); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Create.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Create.php deleted file mode 100644 index c5de2c8..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Create.php +++ /dev/null @@ -1,75 +0,0 @@ -then([$promise, 'resolve'], [$promise, 'reject']); - return $promise; - } - return new \WPMailSMTP\Vendor\GuzzleHttp\Promise\FulfilledPromise($value); - } - /** - * 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. - * - * @return PromiseInterface - */ - public static function rejectionFor($reason) - { - if ($reason instanceof \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface) { - return $reason; - } - return new \WPMailSMTP\Vendor\GuzzleHttp\Promise\RejectedPromise($reason); - } - /** - * Create an exception for a rejected promise value. - * - * @param mixed $reason - * - * @return \Exception|\Throwable - */ - public static function exceptionFor($reason) - { - if ($reason instanceof \Exception || $reason instanceof \Throwable) { - return $reason; - } - return new \WPMailSMTP\Vendor\GuzzleHttp\Promise\RejectionException($reason); - } - /** - * Returns an iterator for the given value. - * - * @param mixed $value - * - * @return \Iterator - */ - public static function iterFor($value) - { - if ($value instanceof \Iterator) { - return $value; - } - if (\is_array($value)) { - return new \ArrayIterator($value); - } - return new \ArrayIterator([$value]); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Each.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Each.php deleted file mode 100644 index 8b74fc9..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Each.php +++ /dev/null @@ -1,66 +0,0 @@ - $onFulfilled, 'rejected' => $onRejected]))->promise(); - } - /** - * 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 - * @param callable $onFulfilled - * @param callable $onRejected - * - * @return PromiseInterface - */ - public static function ofLimit($iterable, $concurrency, callable $onFulfilled = null, callable $onRejected = null) - { - return (new \WPMailSMTP\Vendor\GuzzleHttp\Promise\EachPromise($iterable, ['fulfilled' => $onFulfilled, 'rejected' => $onRejected, 'concurrency' => $concurrency]))->promise(); - } - /** - * 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 - * @param callable $onFulfilled - * - * @return PromiseInterface - */ - public static function ofLimitAll($iterable, $concurrency, callable $onFulfilled = null) - { - return each_limit($iterable, $concurrency, $onFulfilled, function ($reason, $idx, \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface $aggregate) { - $aggregate->reject($reason); - }); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/EachPromise.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/EachPromise.php deleted file mode 100644 index 894dbdf..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/EachPromise.php +++ /dev/null @@ -1,207 +0,0 @@ -iterable = \WPMailSMTP\Vendor\GuzzleHttp\Promise\Create::iterFor($iterable); - if (isset($config['concurrency'])) { - $this->concurrency = $config['concurrency']; - } - if (isset($config['fulfilled'])) { - $this->onFulfilled = $config['fulfilled']; - } - if (isset($config['rejected'])) { - $this->onRejected = $config['rejected']; - } - } - /** @psalm-suppress InvalidNullableReturnType */ - public function promise() - { - if ($this->aggregate) { - return $this->aggregate; - } - try { - $this->createPromise(); - /** @psalm-assert Promise $this->aggregate */ - $this->iterable->rewind(); - if (!$this->checkIfFinished()) { - $this->refillPending(); - } - } catch (\Throwable $e) { - /** - * @psalm-suppress NullReference - * @phpstan-ignore-next-line - */ - $this->aggregate->reject($e); - } catch (\Exception $e) { - /** - * @psalm-suppress NullReference - * @phpstan-ignore-next-line - */ - $this->aggregate->reject($e); - } - /** - * @psalm-suppress NullableReturnStatement - * @phpstan-ignore-next-line - */ - return $this->aggregate; - } - private function createPromise() - { - $this->mutex = \false; - $this->aggregate = new \WPMailSMTP\Vendor\GuzzleHttp\Promise\Promise(function () { - \reset($this->pending); - // Consume a potentially fluctuating list of promises while - // ensuring that indexes are maintained (precluding array_shift). - while ($promise = \current($this->pending)) { - \next($this->pending); - $promise->wait(); - if (\WPMailSMTP\Vendor\GuzzleHttp\Promise\Is::settled($this->aggregate)) { - return; - } - } - }); - // Clear the references when the promise is resolved. - $clearFn = function () { - $this->iterable = $this->concurrency = $this->pending = null; - $this->onFulfilled = $this->onRejected = null; - }; - $this->aggregate->then($clearFn, $clearFn); - } - private function refillPending() - { - if (!$this->concurrency) { - // Add all pending promises. - while ($this->addPending() && $this->advanceIterator()) { - } - return; - } - // Add only up to N pending promises. - $concurrency = \is_callable($this->concurrency) ? \call_user_func($this->concurrency, \count($this->pending)) : $this->concurrency; - $concurrency = \max($concurrency - \count($this->pending), 0); - // Concurrency may be set to 0 to disallow new promises. - if (!$concurrency) { - return; - } - // Add the first pending promise. - $this->addPending(); - // Note this is special handling for concurrency=1 so that we do - // not advance the iterator after adding the first promise. This - // helps work around issues with generators that might not have the - // next value to yield until promise callbacks are called. - while (--$concurrency && $this->advanceIterator() && $this->addPending()) { - } - } - private function addPending() - { - if (!$this->iterable || !$this->iterable->valid()) { - return \false; - } - $promise = \WPMailSMTP\Vendor\GuzzleHttp\Promise\Create::promiseFor($this->iterable->current()); - $key = $this->iterable->key(); - // Iterable keys may not be unique, so we add the promises at the end - // of the pending array and retrieve the array index being used - $this->pending[] = null; - \end($this->pending); - $idx = \key($this->pending); - $this->pending[$idx] = $promise->then(function ($value) use($idx, $key) { - if ($this->onFulfilled) { - \call_user_func($this->onFulfilled, $value, $key, $this->aggregate); - } - $this->step($idx); - }, function ($reason) use($idx, $key) { - if ($this->onRejected) { - \call_user_func($this->onRejected, $reason, $key, $this->aggregate); - } - $this->step($idx); - }); - return \true; - } - private function advanceIterator() - { - // Place a lock on the iterator so that we ensure to not recurse, - // preventing fatal generator errors. - if ($this->mutex) { - return \false; - } - $this->mutex = \true; - try { - $this->iterable->next(); - $this->mutex = \false; - return \true; - } catch (\Throwable $e) { - $this->aggregate->reject($e); - $this->mutex = \false; - return \false; - } catch (\Exception $e) { - $this->aggregate->reject($e); - $this->mutex = \false; - return \false; - } - } - private function step($idx) - { - // If the promise was already resolved, then ignore this step. - if (\WPMailSMTP\Vendor\GuzzleHttp\Promise\Is::settled($this->aggregate)) { - return; - } - unset($this->pending[$idx]); - // Only refill pending promises if we are not locked, preventing the - // EachPromise to recursively invoke the provided iterator, which - // cause a fatal error: "Cannot resume an already running generator" - if ($this->advanceIterator() && !$this->checkIfFinished()) { - // Add more pending promises if possible. - $this->refillPending(); - } - } - private function checkIfFinished() - { - if (!$this->pending && !$this->iterable->valid()) { - // Resolve the promise if there's nothing left to do. - $this->aggregate->resolve(null); - return \true; - } - return \false; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/FulfilledPromise.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/FulfilledPromise.php deleted file mode 100644 index 3020c0f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/FulfilledPromise.php +++ /dev/null @@ -1,69 +0,0 @@ -value = $value; - } - public function then(callable $onFulfilled = null, callable $onRejected = null) - { - // Return itself if there is no onFulfilled function. - if (!$onFulfilled) { - return $this; - } - $queue = \WPMailSMTP\Vendor\GuzzleHttp\Promise\Utils::queue(); - $p = new \WPMailSMTP\Vendor\GuzzleHttp\Promise\Promise([$queue, 'run']); - $value = $this->value; - $queue->add(static function () use($p, $value, $onFulfilled) { - if (\WPMailSMTP\Vendor\GuzzleHttp\Promise\Is::pending($p)) { - try { - $p->resolve($onFulfilled($value)); - } catch (\Throwable $e) { - $p->reject($e); - } catch (\Exception $e) { - $p->reject($e); - } - } - }); - return $p; - } - public function otherwise(callable $onRejected) - { - return $this->then(null, $onRejected); - } - public function wait($unwrap = \true, $defaultDelivery = null) - { - return $unwrap ? $this->value : null; - } - public function getState() - { - return self::FULFILLED; - } - public function resolve($value) - { - if ($value !== $this->value) { - throw new \LogicException("Cannot resolve a fulfilled promise"); - } - } - public function reject($reason) - { - throw new \LogicException("Cannot reject a fulfilled promise"); - } - public function cancel() - { - // pass - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Is.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Is.php deleted file mode 100644 index 43cb4a4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Is.php +++ /dev/null @@ -1,43 +0,0 @@ -getState() === \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface::PENDING; - } - /** - * Returns true if a promise is fulfilled or rejected. - * - * @return bool - */ - public static function settled(\WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface $promise) - { - return $promise->getState() !== \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface::PENDING; - } - /** - * Returns true if a promise is fulfilled. - * - * @return bool - */ - public static function fulfilled(\WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface $promise) - { - return $promise->getState() === \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface::FULFILLED; - } - /** - * Returns true if a promise is rejected. - * - * @return bool - */ - public static function rejected(\WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface $promise) - { - return $promise->getState() === \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface::REJECTED; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Promise.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Promise.php deleted file mode 100644 index 94a7a69..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/Promise.php +++ /dev/null @@ -1,237 +0,0 @@ -waitFn = $waitFn; - $this->cancelFn = $cancelFn; - } - public function then(callable $onFulfilled = null, callable $onRejected = null) - { - if ($this->state === self::PENDING) { - $p = new \WPMailSMTP\Vendor\GuzzleHttp\Promise\Promise(null, [$this, 'cancel']); - $this->handlers[] = [$p, $onFulfilled, $onRejected]; - $p->waitList = $this->waitList; - $p->waitList[] = $this; - return $p; - } - // Return a fulfilled promise and immediately invoke any callbacks. - if ($this->state === self::FULFILLED) { - $promise = \WPMailSMTP\Vendor\GuzzleHttp\Promise\Create::promiseFor($this->result); - return $onFulfilled ? $promise->then($onFulfilled) : $promise; - } - // It's either cancelled or rejected, so return a rejected promise - // and immediately invoke any callbacks. - $rejection = \WPMailSMTP\Vendor\GuzzleHttp\Promise\Create::rejectionFor($this->result); - return $onRejected ? $rejection->then(null, $onRejected) : $rejection; - } - public function otherwise(callable $onRejected) - { - return $this->then(null, $onRejected); - } - public function wait($unwrap = \true) - { - $this->waitIfPending(); - if ($this->result instanceof \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface) { - return $this->result->wait($unwrap); - } - if ($unwrap) { - if ($this->state === self::FULFILLED) { - return $this->result; - } - // It's rejected so "unwrap" and throw an exception. - throw \WPMailSMTP\Vendor\GuzzleHttp\Promise\Create::exceptionFor($this->result); - } - } - public function getState() - { - return $this->state; - } - public function cancel() - { - if ($this->state !== self::PENDING) { - return; - } - $this->waitFn = $this->waitList = null; - if ($this->cancelFn) { - $fn = $this->cancelFn; - $this->cancelFn = null; - try { - $fn(); - } catch (\Throwable $e) { - $this->reject($e); - } catch (\Exception $e) { - $this->reject($e); - } - } - // Reject the promise only if it wasn't rejected in a then callback. - /** @psalm-suppress RedundantCondition */ - if ($this->state === self::PENDING) { - $this->reject(new \WPMailSMTP\Vendor\GuzzleHttp\Promise\CancellationException('Promise has been cancelled')); - } - } - public function resolve($value) - { - $this->settle(self::FULFILLED, $value); - } - public function reject($reason) - { - $this->settle(self::REJECTED, $reason); - } - private function settle($state, $value) - { - if ($this->state !== self::PENDING) { - // Ignore calls with the same resolution. - if ($state === $this->state && $value === $this->result) { - return; - } - throw $this->state === $state ? new \LogicException("The promise is already {$state}.") : new \LogicException("Cannot change a {$this->state} promise to {$state}"); - } - if ($value === $this) { - throw new \LogicException('Cannot fulfill or reject a promise with itself'); - } - // Clear out the state of the promise but stash the handlers. - $this->state = $state; - $this->result = $value; - $handlers = $this->handlers; - $this->handlers = null; - $this->waitList = $this->waitFn = null; - $this->cancelFn = null; - if (!$handlers) { - return; - } - // If the value was not a settled promise or a thenable, then resolve - // it in the task queue using the correct ID. - if (!\is_object($value) || !\method_exists($value, 'then')) { - $id = $state === self::FULFILLED ? 1 : 2; - // It's a success, so resolve the handlers in the queue. - \WPMailSMTP\Vendor\GuzzleHttp\Promise\Utils::queue()->add(static function () use($id, $value, $handlers) { - foreach ($handlers as $handler) { - self::callHandler($id, $value, $handler); - } - }); - } elseif ($value instanceof \WPMailSMTP\Vendor\GuzzleHttp\Promise\Promise && \WPMailSMTP\Vendor\GuzzleHttp\Promise\Is::pending($value)) { - // We can just merge our handlers onto the next promise. - $value->handlers = \array_merge($value->handlers, $handlers); - } else { - // Resolve the handlers when the forwarded promise is resolved. - $value->then(static function ($value) use($handlers) { - foreach ($handlers as $handler) { - self::callHandler(1, $value, $handler); - } - }, static function ($reason) use($handlers) { - foreach ($handlers as $handler) { - self::callHandler(2, $reason, $handler); - } - }); - } - } - /** - * 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($index, $value, array $handler) - { - /** @var PromiseInterface $promise */ - $promise = $handler[0]; - // The promise may have been cancelled or resolved before placing - // this thunk in the queue. - if (\WPMailSMTP\Vendor\GuzzleHttp\Promise\Is::settled($promise)) { - return; - } - try { - if (isset($handler[$index])) { - /* - * If $f throws an exception, then $handler will be in the exception - * stack trace. Since $handler contains a reference to the callable - * itself we get a circular reference. We clear the $handler - * here to avoid that memory leak. - */ - $f = $handler[$index]; - unset($handler); - $promise->resolve($f($value)); - } elseif ($index === 1) { - // Forward resolution values as-is. - $promise->resolve($value); - } else { - // Forward rejections down the chain. - $promise->reject($value); - } - } catch (\Throwable $reason) { - $promise->reject($reason); - } catch (\Exception $reason) { - $promise->reject($reason); - } - } - private function waitIfPending() - { - if ($this->state !== self::PENDING) { - return; - } elseif ($this->waitFn) { - $this->invokeWaitFn(); - } elseif ($this->waitList) { - $this->invokeWaitList(); - } else { - // If there's no wait function, then reject the promise. - $this->reject('Cannot wait on a promise that has ' . 'no internal wait function. You must provide a wait ' . 'function when constructing the promise to be able to ' . 'wait on a promise.'); - } - \WPMailSMTP\Vendor\GuzzleHttp\Promise\Utils::queue()->run(); - /** @psalm-suppress RedundantCondition */ - if ($this->state === self::PENDING) { - $this->reject('Invoking the wait callback did not resolve the promise'); - } - } - private function invokeWaitFn() - { - try { - $wfn = $this->waitFn; - $this->waitFn = null; - $wfn(\true); - } catch (\Exception $reason) { - if ($this->state === self::PENDING) { - // The promise has not been resolved yet, so reject the promise - // with the exception. - $this->reject($reason); - } else { - // The promise was already resolved, so there's a problem in - // the application. - throw $reason; - } - } - } - private function invokeWaitList() - { - $waitList = $this->waitList; - $this->waitList = null; - foreach ($waitList as $result) { - do { - $result->waitIfPending(); - $result = $result->result; - } while ($result instanceof \WPMailSMTP\Vendor\GuzzleHttp\Promise\Promise); - if ($result instanceof \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface) { - $result->wait(\false); - } - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/PromiseInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/PromiseInterface.php deleted file mode 100644 index 9cee249..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/PromiseInterface.php +++ /dev/null @@ -1,87 +0,0 @@ -reason = $reason; - } - public function then(callable $onFulfilled = null, callable $onRejected = null) - { - // If there's no onRejected callback then just return self. - if (!$onRejected) { - return $this; - } - $queue = \WPMailSMTP\Vendor\GuzzleHttp\Promise\Utils::queue(); - $reason = $this->reason; - $p = new \WPMailSMTP\Vendor\GuzzleHttp\Promise\Promise([$queue, 'run']); - $queue->add(static function () use($p, $reason, $onRejected) { - if (\WPMailSMTP\Vendor\GuzzleHttp\Promise\Is::pending($p)) { - try { - // Return a resolved promise if onRejected does not throw. - $p->resolve($onRejected($reason)); - } catch (\Throwable $e) { - // onRejected threw, so return a rejected promise. - $p->reject($e); - } catch (\Exception $e) { - // onRejected threw, so return a rejected promise. - $p->reject($e); - } - } - }); - return $p; - } - public function otherwise(callable $onRejected) - { - return $this->then(null, $onRejected); - } - public function wait($unwrap = \true, $defaultDelivery = null) - { - if ($unwrap) { - throw \WPMailSMTP\Vendor\GuzzleHttp\Promise\Create::exceptionFor($this->reason); - } - return null; - } - public function getState() - { - return self::REJECTED; - } - public function resolve($value) - { - throw new \LogicException("Cannot resolve a rejected promise"); - } - public function reject($reason) - { - if ($reason !== $this->reason) { - throw new \LogicException("Cannot reject a rejected promise"); - } - } - public function cancel() - { - // pass - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/RejectionException.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/RejectionException.php deleted file mode 100644 index 370f78b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/RejectionException.php +++ /dev/null @@ -1,40 +0,0 @@ -reason = $reason; - $message = 'The promise was rejected'; - if ($description) { - $message .= ' with reason: ' . $description; - } elseif (\is_string($reason) || \is_object($reason) && \method_exists($reason, '__toString')) { - $message .= ' with reason: ' . $this->reason; - } elseif ($reason instanceof \JsonSerializable) { - $message .= ' with reason: ' . \json_encode($this->reason, \JSON_PRETTY_PRINT); - } - parent::__construct($message); - } - /** - * Returns the rejection reason. - * - * @return mixed - */ - public function getReason() - { - return $this->reason; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/TaskQueue.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/TaskQueue.php deleted file mode 100644 index 619dbab..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/TaskQueue.php +++ /dev/null @@ -1,62 +0,0 @@ -run(); - */ -class TaskQueue implements \WPMailSMTP\Vendor\GuzzleHttp\Promise\TaskQueueInterface -{ - private $enableShutdown = \true; - private $queue = []; - public function __construct($withShutdown = \true) - { - if ($withShutdown) { - \register_shutdown_function(function () { - if ($this->enableShutdown) { - // Only run the tasks if an E_ERROR didn't occur. - $err = \error_get_last(); - if (!$err || $err['type'] ^ \E_ERROR) { - $this->run(); - } - } - }); - } - } - public function isEmpty() - { - return !$this->queue; - } - public function add(callable $task) - { - $this->queue[] = $task; - } - public function run() - { - while ($task = \array_shift($this->queue)) { - /** @var callable $task */ - $task(); - } - } - /** - * 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() - { - $this->enableShutdown = \false; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/TaskQueueInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/TaskQueueInterface.php deleted file mode 100644 index f18c95e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/TaskQueueInterface.php +++ /dev/null @@ -1,22 +0,0 @@ - - * while ($eventLoop->isRunning()) { - * GuzzleHttp\Promise\Utils::queue()->run(); - * } - * - * - * @param TaskQueueInterface $assign Optionally specify a new queue instance. - * - * @return TaskQueueInterface - */ - public static function queue(\WPMailSMTP\Vendor\GuzzleHttp\Promise\TaskQueueInterface $assign = null) - { - static $queue; - if ($assign) { - $queue = $assign; - } elseif (!$queue) { - $queue = new \WPMailSMTP\Vendor\GuzzleHttp\Promise\TaskQueue(); - } - return $queue; - } - /** - * 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. - * - * @return PromiseInterface - */ - public static function task(callable $task) - { - $queue = self::queue(); - $promise = new \WPMailSMTP\Vendor\GuzzleHttp\Promise\Promise([$queue, 'run']); - $queue->add(function () use($task, $promise) { - try { - $promise->resolve($task()); - } catch (\Throwable $e) { - $promise->reject($e); - } catch (\Exception $e) { - $promise->reject($e); - } - }); - return $promise; - } - /** - * 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. - * - * @return array - */ - public static function inspect(\WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface $promise) - { - try { - return ['state' => \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface::FULFILLED, 'value' => $promise->wait()]; - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Promise\RejectionException $e) { - return ['state' => \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface::REJECTED, 'reason' => $e->getReason()]; - } catch (\Throwable $e) { - return ['state' => \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface::REJECTED, 'reason' => $e]; - } catch (\Exception $e) { - return ['state' => \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface::REJECTED, 'reason' => $e]; - } - } - /** - * 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. - * - * @return array - */ - public static function inspectAll($promises) - { - $results = []; - foreach ($promises as $key => $promise) { - $results[$key] = inspect($promise); - } - return $results; - } - /** - * 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. - * - * @return array - * - * @throws \Exception on error - * @throws \Throwable on error in PHP >=7 - */ - public static function unwrap($promises) - { - $results = []; - foreach ($promises as $key => $promise) { - $results[$key] = $promise->wait(); - } - return $results; - } - /** - * 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. - * - * @return PromiseInterface - */ - public static function all($promises, $recursive = \false) - { - $results = []; - $promise = \WPMailSMTP\Vendor\GuzzleHttp\Promise\Each::of($promises, function ($value, $idx) use(&$results) { - $results[$idx] = $value; - }, function ($reason, $idx, \WPMailSMTP\Vendor\GuzzleHttp\Promise\Promise $aggregate) { - $aggregate->reject($reason); - })->then(function () use(&$results) { - \ksort($results); - return $results; - }); - if (\true === $recursive) { - $promise = $promise->then(function ($results) use($recursive, &$promises) { - foreach ($promises as $promise) { - if (\WPMailSMTP\Vendor\GuzzleHttp\Promise\Is::pending($promise)) { - return self::all($promises, $recursive); - } - } - return $results; - }); - } - return $promise; - } - /** - * 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. - * - * @return PromiseInterface - */ - public static function some($count, $promises) - { - $results = []; - $rejections = []; - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Each::of($promises, function ($value, $idx, \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface $p) use(&$results, $count) { - if (\WPMailSMTP\Vendor\GuzzleHttp\Promise\Is::settled($p)) { - return; - } - $results[$idx] = $value; - if (\count($results) >= $count) { - $p->resolve(null); - } - }, function ($reason) use(&$rejections) { - $rejections[] = $reason; - })->then(function () use(&$results, &$rejections, $count) { - if (\count($results) !== $count) { - throw new \WPMailSMTP\Vendor\GuzzleHttp\Promise\AggregateException('Not enough promises to fulfill count', $rejections); - } - \ksort($results); - return \array_values($results); - }); - } - /** - * 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. - * - * @return PromiseInterface - */ - public static function any($promises) - { - return self::some(1, $promises)->then(function ($values) { - return $values[0]; - }); - } - /** - * 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. - * - * @return PromiseInterface - */ - public static function settle($promises) - { - $results = []; - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Each::of($promises, function ($value, $idx) use(&$results) { - $results[$idx] = ['state' => \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface::FULFILLED, 'value' => $value]; - }, function ($reason, $idx) use(&$results) { - $results[$idx] = ['state' => \WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface::REJECTED, 'reason' => $reason]; - })->then(function () use(&$results) { - \ksort($results); - return $results; - }); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/functions.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/functions.php deleted file mode 100644 index 03686e4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/functions.php +++ /dev/null @@ -1,334 +0,0 @@ - - * while ($eventLoop->isRunning()) { - * GuzzleHttp\Promise\queue()->run(); - * } - * - * - * @param TaskQueueInterface $assign Optionally specify a new queue instance. - * - * @return TaskQueueInterface - * - * @deprecated queue will be removed in guzzlehttp/promises:2.0. Use Utils::queue instead. - */ -function queue(\WPMailSMTP\Vendor\GuzzleHttp\Promise\TaskQueueInterface $assign = null) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Utils::queue($assign); -} -/** - * 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. - * - * @return PromiseInterface - * - * @deprecated task will be removed in guzzlehttp/promises:2.0. Use Utils::task instead. - */ -function task(callable $task) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Utils::task($task); -} -/** - * Creates a promise for a value if the value is not a promise. - * - * @param mixed $value Promise or value. - * - * @return PromiseInterface - * - * @deprecated promise_for will be removed in guzzlehttp/promises:2.0. Use Create::promiseFor instead. - */ -function promise_for($value) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Create::promiseFor($value); -} -/** - * 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. - * - * @return PromiseInterface - * - * @deprecated rejection_for will be removed in guzzlehttp/promises:2.0. Use Create::rejectionFor instead. - */ -function rejection_for($reason) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Create::rejectionFor($reason); -} -/** - * Create an exception for a rejected promise value. - * - * @param mixed $reason - * - * @return \Exception|\Throwable - * - * @deprecated exception_for will be removed in guzzlehttp/promises:2.0. Use Create::exceptionFor instead. - */ -function exception_for($reason) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Create::exceptionFor($reason); -} -/** - * Returns an iterator for the given value. - * - * @param mixed $value - * - * @return \Iterator - * - * @deprecated iter_for will be removed in guzzlehttp/promises:2.0. Use Create::iterFor instead. - */ -function iter_for($value) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Create::iterFor($value); -} -/** - * 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. - * - * @return array - * - * @deprecated inspect will be removed in guzzlehttp/promises:2.0. Use Utils::inspect instead. - */ -function inspect(\WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface $promise) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Utils::inspect($promise); -} -/** - * 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. - * - * @return array - * - * @deprecated inspect will be removed in guzzlehttp/promises:2.0. Use Utils::inspectAll instead. - */ -function inspect_all($promises) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Utils::inspectAll($promises); -} -/** - * 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. - * - * @return array - * - * @throws \Exception on error - * @throws \Throwable on error in PHP >=7 - * - * @deprecated unwrap will be removed in guzzlehttp/promises:2.0. Use Utils::unwrap instead. - */ -function unwrap($promises) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Utils::unwrap($promises); -} -/** - * 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. - * - * @return PromiseInterface - * - * @deprecated all will be removed in guzzlehttp/promises:2.0. Use Utils::all instead. - */ -function all($promises, $recursive = \false) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Utils::all($promises, $recursive); -} -/** - * 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. - * - * @return PromiseInterface - * - * @deprecated some will be removed in guzzlehttp/promises:2.0. Use Utils::some instead. - */ -function some($count, $promises) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Utils::some($count, $promises); -} -/** - * 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. - * - * @return PromiseInterface - * - * @deprecated any will be removed in guzzlehttp/promises:2.0. Use Utils::any instead. - */ -function any($promises) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Utils::any($promises); -} -/** - * 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. - * - * @return PromiseInterface - * - * @deprecated settle will be removed in guzzlehttp/promises:2.0. Use Utils::settle instead. - */ -function settle($promises) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Utils::settle($promises); -} -/** - * 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. - * @param callable $onFulfilled - * @param callable $onRejected - * - * @return PromiseInterface - * - * @deprecated each will be removed in guzzlehttp/promises:2.0. Use Each::of instead. - */ -function each($iterable, callable $onFulfilled = null, callable $onRejected = null) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Each::of($iterable, $onFulfilled, $onRejected); -} -/** - * Like each, 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 - * @param callable $onFulfilled - * @param callable $onRejected - * - * @return PromiseInterface - * - * @deprecated each_limit will be removed in guzzlehttp/promises:2.0. Use Each::ofLimit instead. - */ -function each_limit($iterable, $concurrency, callable $onFulfilled = null, callable $onRejected = null) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Each::ofLimit($iterable, $concurrency, $onFulfilled, $onRejected); -} -/** - * Like each_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 - * @param callable $onFulfilled - * - * @return PromiseInterface - * - * @deprecated each_limit_all will be removed in guzzlehttp/promises:2.0. Use Each::ofLimitAll instead. - */ -function each_limit_all($iterable, $concurrency, callable $onFulfilled = null) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Each::ofLimitAll($iterable, $concurrency, $onFulfilled); -} -/** - * Returns true if a promise is fulfilled. - * - * @return bool - * - * @deprecated is_fulfilled will be removed in guzzlehttp/promises:2.0. Use Is::fulfilled instead. - */ -function is_fulfilled(\WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface $promise) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Is::fulfilled($promise); -} -/** - * Returns true if a promise is rejected. - * - * @return bool - * - * @deprecated is_rejected will be removed in guzzlehttp/promises:2.0. Use Is::rejected instead. - */ -function is_rejected(\WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface $promise) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Is::rejected($promise); -} -/** - * Returns true if a promise is fulfilled or rejected. - * - * @return bool - * - * @deprecated is_settled will be removed in guzzlehttp/promises:2.0. Use Is::settled instead. - */ -function is_settled(\WPMailSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface $promise) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Is::settled($promise); -} -/** - * Create a new coroutine. - * - * @see Coroutine - * - * @return PromiseInterface - * - * @deprecated coroutine will be removed in guzzlehttp/promises:2.0. Use Coroutine::of instead. - */ -function coroutine(callable $generatorFn) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Promise\Coroutine::of($generatorFn); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/functions_include.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/functions_include.php deleted file mode 100644 index 1e54915..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/promises/src/functions_include.php +++ /dev/null @@ -1,8 +0,0 @@ - - -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. diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/AppendStream.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/AppendStream.php deleted file mode 100644 index db36c66..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/AppendStream.php +++ /dev/null @@ -1,203 +0,0 @@ -addStream($stream); - } - } - public function __toString() - { - try { - $this->rewind(); - return $this->getContents(); - } catch (\Exception $e) { - return ''; - } - } - /** - * 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(\WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface $stream) - { - if (!$stream->isReadable()) { - throw new \InvalidArgumentException('Each stream must be readable'); - } - // The stream is only seekable if all streams are seekable - if (!$stream->isSeekable()) { - $this->seekable = \false; - } - $this->streams[] = $stream; - } - public function getContents() - { - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::copyToString($this); - } - /** - * Closes each attached stream. - * - * {@inheritdoc} - */ - public function close() - { - $this->pos = $this->current = 0; - $this->seekable = \true; - foreach ($this->streams as $stream) { - $stream->close(); - } - $this->streams = []; - } - /** - * Detaches each attached stream. - * - * Returns null as it's not clear which underlying stream resource to return. - * - * {@inheritdoc} - */ - public function detach() - { - $this->pos = $this->current = 0; - $this->seekable = \true; - foreach ($this->streams as $stream) { - $stream->detach(); - } - $this->streams = []; - return null; - } - public function tell() - { - return $this->pos; - } - /** - * 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. - * - * {@inheritdoc} - */ - public function getSize() - { - $size = 0; - foreach ($this->streams as $stream) { - $s = $stream->getSize(); - if ($s === null) { - return null; - } - $size += $s; - } - return $size; - } - public function eof() - { - return !$this->streams || $this->current >= \count($this->streams) - 1 && $this->streams[$this->current]->eof(); - } - public function rewind() - { - $this->seek(0); - } - /** - * Attempts to seek to the given position. Only supports SEEK_SET. - * - * {@inheritdoc} - */ - public function seek($offset, $whence = \SEEK_SET) - { - if (!$this->seekable) { - throw new \RuntimeException('This AppendStream is not seekable'); - } elseif ($whence !== \SEEK_SET) { - throw new \RuntimeException('The AppendStream can only seek with SEEK_SET'); - } - $this->pos = $this->current = 0; - // Rewind each stream - foreach ($this->streams as $i => $stream) { - try { - $stream->rewind(); - } catch (\Exception $e) { - throw new \RuntimeException('Unable to seek stream ' . $i . ' of the AppendStream', 0, $e); - } - } - // Seek to the actual position by reading from each stream - while ($this->pos < $offset && !$this->eof()) { - $result = $this->read(\min(8096, $offset - $this->pos)); - if ($result === '') { - break; - } - } - } - /** - * Reads from all of the appended streams until the length is met or EOF. - * - * {@inheritdoc} - */ - public function read($length) - { - $buffer = ''; - $total = \count($this->streams) - 1; - $remaining = $length; - $progressToNext = \false; - while ($remaining > 0) { - // Progress to the next stream if needed. - if ($progressToNext || $this->streams[$this->current]->eof()) { - $progressToNext = \false; - if ($this->current === $total) { - break; - } - $this->current++; - } - $result = $this->streams[$this->current]->read($remaining); - // Using a loose comparison here to match on '', false, and null - if ($result == null) { - $progressToNext = \true; - continue; - } - $buffer .= $result; - $remaining = $length - \strlen($buffer); - } - $this->pos += \strlen($buffer); - return $buffer; - } - public function isReadable() - { - return \true; - } - public function isWritable() - { - return \false; - } - public function isSeekable() - { - return $this->seekable; - } - public function write($string) - { - throw new \RuntimeException('Cannot write to an AppendStream'); - } - public function getMetadata($key = null) - { - return $key ? null : []; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/BufferStream.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/BufferStream.php deleted file mode 100644 index 67f76df..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/BufferStream.php +++ /dev/null @@ -1,116 +0,0 @@ -hwm = $hwm; - } - public function __toString() - { - return $this->getContents(); - } - public function getContents() - { - $buffer = $this->buffer; - $this->buffer = ''; - return $buffer; - } - public function close() - { - $this->buffer = ''; - } - public function detach() - { - $this->close(); - return null; - } - public function getSize() - { - return \strlen($this->buffer); - } - public function isReadable() - { - return \true; - } - public function isWritable() - { - return \true; - } - public function isSeekable() - { - return \false; - } - public function rewind() - { - $this->seek(0); - } - public function seek($offset, $whence = \SEEK_SET) - { - throw new \RuntimeException('Cannot seek a BufferStream'); - } - public function eof() - { - return \strlen($this->buffer) === 0; - } - public function tell() - { - throw new \RuntimeException('Cannot determine the position of a BufferStream'); - } - /** - * Reads data from the buffer. - */ - public function read($length) - { - $currentLength = \strlen($this->buffer); - if ($length >= $currentLength) { - // No need to slice the buffer because we don't have enough data. - $result = $this->buffer; - $this->buffer = ''; - } else { - // Slice up the result to provide a subset of the buffer. - $result = \substr($this->buffer, 0, $length); - $this->buffer = \substr($this->buffer, $length); - } - return $result; - } - /** - * Writes data to the buffer. - */ - public function write($string) - { - $this->buffer .= $string; - // TODO: What should happen here? - if (\strlen($this->buffer) >= $this->hwm) { - return \false; - } - return \strlen($string); - } - public function getMetadata($key = null) - { - if ($key == 'hwm') { - return $this->hwm; - } - return $key ? null : []; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/CachingStream.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/CachingStream.php deleted file mode 100644 index acf4f13..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/CachingStream.php +++ /dev/null @@ -1,115 +0,0 @@ -remoteStream = $stream; - $this->stream = $target ?: new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Stream(\fopen('php://temp', 'r+')); - } - public function getSize() - { - return \max($this->stream->getSize(), $this->remoteStream->getSize()); - } - public function rewind() - { - $this->seek(0); - } - public function seek($offset, $whence = \SEEK_SET) - { - if ($whence == \SEEK_SET) { - $byte = $offset; - } elseif ($whence == \SEEK_CUR) { - $byte = $offset + $this->tell(); - } elseif ($whence == \SEEK_END) { - $size = $this->remoteStream->getSize(); - if ($size === null) { - $size = $this->cacheEntireStream(); - } - $byte = $size + $offset; - } else { - throw new \InvalidArgumentException('Invalid whence'); - } - $diff = $byte - $this->stream->getSize(); - if ($diff > 0) { - // Read the remoteStream until we have read in at least the amount - // of bytes requested, or we reach the end of the file. - while ($diff > 0 && !$this->remoteStream->eof()) { - $this->read($diff); - $diff = $byte - $this->stream->getSize(); - } - } else { - // We can just do a normal seek since we've already seen this byte. - $this->stream->seek($byte); - } - } - public function read($length) - { - // Perform a regular read on any previously read data from the buffer - $data = $this->stream->read($length); - $remaining = $length - \strlen($data); - // More data was requested so read from the remote stream - if ($remaining) { - // If data was written to the buffer in a position that would have - // been filled from the remote stream, then we must skip bytes on - // the remote stream to emulate overwriting bytes from that - // position. This mimics the behavior of other PHP stream wrappers. - $remoteData = $this->remoteStream->read($remaining + $this->skipReadBytes); - if ($this->skipReadBytes) { - $len = \strlen($remoteData); - $remoteData = \substr($remoteData, $this->skipReadBytes); - $this->skipReadBytes = \max(0, $this->skipReadBytes - $len); - } - $data .= $remoteData; - $this->stream->write($remoteData); - } - return $data; - } - public function write($string) - { - // When appending to the end of the currently read stream, you'll want - // to skip bytes from being read from the remote stream to emulate - // other stream wrappers. Basically replacing bytes of data of a fixed - // length. - $overflow = \strlen($string) + $this->tell() - $this->remoteStream->tell(); - if ($overflow > 0) { - $this->skipReadBytes += $overflow; - } - return $this->stream->write($string); - } - public function eof() - { - return $this->stream->eof() && $this->remoteStream->eof(); - } - /** - * Close both the remote stream and buffer stream - */ - public function close() - { - $this->remoteStream->close() && $this->stream->close(); - } - private function cacheEntireStream() - { - $target = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\FnStream(['write' => 'strlen']); - \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::copyToStream($this, $target); - return $this->tell(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/DroppingStream.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/DroppingStream.php deleted file mode 100644 index cc3053d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/DroppingStream.php +++ /dev/null @@ -1,36 +0,0 @@ -stream = $stream; - $this->maxLength = $maxLength; - } - public function write($string) - { - $diff = $this->maxLength - $this->stream->getSize(); - // Begin returning 0 when the underlying stream is too large. - if ($diff <= 0) { - return 0; - } - // Write the stream or a subset of the stream if needed. - if (\strlen($string) < $diff) { - return $this->stream->write($string); - } - return $this->stream->write(\substr($string, 0, $diff)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/FnStream.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/FnStream.php deleted file mode 100644 index e0e6cef..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/FnStream.php +++ /dev/null @@ -1,133 +0,0 @@ -methods = $methods; - // Create the functions on the class - foreach ($methods as $name => $fn) { - $this->{'_fn_' . $name} = $fn; - } - } - /** - * Lazily determine which methods are not implemented. - * - * @throws \BadMethodCallException - */ - public function __get($name) - { - throw new \BadMethodCallException(\str_replace('_fn_', '', $name) . '() is not implemented in the FnStream'); - } - /** - * The close method is called on the underlying stream only if possible. - */ - public function __destruct() - { - if (isset($this->_fn_close)) { - \call_user_func($this->_fn_close); - } - } - /** - * An unserialize would allow the __destruct to run when the unserialized value goes out of scope. - * @throws \LogicException - */ - public function __wakeup() - { - throw new \LogicException('FnStream should never be unserialized'); - } - /** - * 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(\WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface $stream, array $methods) - { - // If any of the required methods were not provided, then simply - // proxy to the decorated stream. - foreach (\array_diff(self::$slots, \array_keys($methods)) as $diff) { - $methods[$diff] = [$stream, $diff]; - } - return new self($methods); - } - public function __toString() - { - return \call_user_func($this->_fn___toString); - } - public function close() - { - return \call_user_func($this->_fn_close); - } - public function detach() - { - return \call_user_func($this->_fn_detach); - } - public function getSize() - { - return \call_user_func($this->_fn_getSize); - } - public function tell() - { - return \call_user_func($this->_fn_tell); - } - public function eof() - { - return \call_user_func($this->_fn_eof); - } - public function isSeekable() - { - return \call_user_func($this->_fn_isSeekable); - } - public function rewind() - { - \call_user_func($this->_fn_rewind); - } - public function seek($offset, $whence = \SEEK_SET) - { - \call_user_func($this->_fn_seek, $offset, $whence); - } - public function isWritable() - { - return \call_user_func($this->_fn_isWritable); - } - public function write($string) - { - return \call_user_func($this->_fn_write, $string); - } - public function isReadable() - { - return \call_user_func($this->_fn_isReadable); - } - public function read($length) - { - return \call_user_func($this->_fn_read, $length); - } - public function getContents() - { - return \call_user_func($this->_fn_getContents); - } - public function getMetadata($key = null) - { - return \call_user_func($this->_fn_getMetadata, $key); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Header.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Header.php deleted file mode 100644 index a0e391d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Header.php +++ /dev/null @@ -1,66 +0,0 @@ -]+>|[^=]+/', $kvp, $matches)) { - $m = $matches[0]; - if (isset($m[1])) { - $part[\trim($m[0], $trimmed)] = \trim($m[1], $trimmed); - } else { - $part[] = \trim($m[0], $trimmed); - } - } - } - if ($part) { - $params[] = $part; - } - } - return $params; - } - /** - * 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. - * - * @return array Returns the normalized header field values. - */ - public static function normalize($header) - { - if (!\is_array($header)) { - return \array_map('trim', \explode(',', $header)); - } - $result = []; - foreach ($header as $value) { - foreach ((array) $value as $v) { - if (\strpos($v, ',') === \false) { - $result[] = $v; - continue; - } - foreach (\preg_split('/,(?=([^"]*"[^"]*")*[^"]*$)/', $v) as $vv) { - $result[] = \trim($vv); - } - } - } - return $result; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/InflateStream.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/InflateStream.php deleted file mode 100644 index dfcea28..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/InflateStream.php +++ /dev/null @@ -1,48 +0,0 @@ -read(10); - $filenameHeaderLength = $this->getLengthOfPossibleFilenameHeader($stream, $header); - // Skip the header, that is 10 + length of filename + 1 (nil) bytes - $stream = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\LimitStream($stream, -1, 10 + $filenameHeaderLength); - $resource = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\StreamWrapper::getResource($stream); - \stream_filter_append($resource, 'zlib.inflate', \STREAM_FILTER_READ); - $this->stream = $stream->isSeekable() ? new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Stream($resource) : new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\NoSeekStream(new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Stream($resource)); - } - /** - * @param StreamInterface $stream - * @param $header - * @return int - */ - private function getLengthOfPossibleFilenameHeader(\WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface $stream, $header) - { - $filename_header_length = 0; - if (\substr(\bin2hex($header), 6, 2) === '08') { - // we have a filename, read until nil - $filename_header_length = 1; - while ($stream->read(1) !== \chr(0)) { - $filename_header_length++; - } - } - return $filename_header_length; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/LazyOpenStream.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/LazyOpenStream.php deleted file mode 100644 index 0a1f66a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/LazyOpenStream.php +++ /dev/null @@ -1,35 +0,0 @@ -filename = $filename; - $this->mode = $mode; - } - /** - * Creates the underlying stream lazily when required. - * - * @return StreamInterface - */ - protected function createStream() - { - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::streamFor(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::tryFopen($this->filename, $this->mode)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/LimitStream.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/LimitStream.php deleted file mode 100644 index 4867bd4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/LimitStream.php +++ /dev/null @@ -1,128 +0,0 @@ -stream = $stream; - $this->setLimit($limit); - $this->setOffset($offset); - } - public function eof() - { - // Always return true if the underlying stream is EOF - if ($this->stream->eof()) { - return \true; - } - // No limit and the underlying stream is not at EOF - if ($this->limit == -1) { - return \false; - } - return $this->stream->tell() >= $this->offset + $this->limit; - } - /** - * Returns the size of the limited subset of data - * {@inheritdoc} - */ - public function getSize() - { - if (null === ($length = $this->stream->getSize())) { - return null; - } elseif ($this->limit == -1) { - return $length - $this->offset; - } else { - return \min($this->limit, $length - $this->offset); - } - } - /** - * Allow for a bounded seek on the read limited stream - * {@inheritdoc} - */ - public function seek($offset, $whence = \SEEK_SET) - { - if ($whence !== \SEEK_SET || $offset < 0) { - throw new \RuntimeException(\sprintf('Cannot seek to offset %s with whence %s', $offset, $whence)); - } - $offset += $this->offset; - if ($this->limit !== -1) { - if ($offset > $this->offset + $this->limit) { - $offset = $this->offset + $this->limit; - } - } - $this->stream->seek($offset); - } - /** - * Give a relative tell() - * {@inheritdoc} - */ - public function tell() - { - return $this->stream->tell() - $this->offset; - } - /** - * 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($offset) - { - $current = $this->stream->tell(); - if ($current !== $offset) { - // If the stream cannot seek to the offset position, then read to it - if ($this->stream->isSeekable()) { - $this->stream->seek($offset); - } elseif ($current > $offset) { - throw new \RuntimeException("Could not seek to stream offset {$offset}"); - } else { - $this->stream->read($offset - $current); - } - } - $this->offset = $offset; - } - /** - * 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($limit) - { - $this->limit = $limit; - } - public function read($length) - { - if ($this->limit == -1) { - return $this->stream->read($length); - } - // Check if the current position is less than the total allowed - // bytes + original offset - $remaining = $this->offset + $this->limit - $this->stream->tell(); - if ($remaining > 0) { - // Only return the amount of requested data, ensuring that the byte - // limit is not exceeded - return $this->stream->read(\min($remaining, $length)); - } - return ''; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Message.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Message.php deleted file mode 100644 index 46d0eda..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Message.php +++ /dev/null @@ -1,197 +0,0 @@ -getMethod() . ' ' . $message->getRequestTarget()) . ' HTTP/' . $message->getProtocolVersion(); - if (!$message->hasHeader('host')) { - $msg .= "\r\nHost: " . $message->getUri()->getHost(); - } - } elseif ($message instanceof \WPMailSMTP\Vendor\Psr\Http\Message\ResponseInterface) { - $msg = 'HTTP/' . $message->getProtocolVersion() . ' ' . $message->getStatusCode() . ' ' . $message->getReasonPhrase(); - } else { - throw new \InvalidArgumentException('Unknown message type'); - } - foreach ($message->getHeaders() as $name => $values) { - if (\strtolower($name) === 'set-cookie') { - foreach ($values as $value) { - $msg .= "\r\n{$name}: " . $value; - } - } else { - $msg .= "\r\n{$name}: " . \implode(', ', $values); - } - } - return "{$msg}\r\n\r\n" . $message->getBody(); - } - /** - * 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 - * - * @return string|null - */ - public static function bodySummary(\WPMailSMTP\Vendor\Psr\Http\Message\MessageInterface $message, $truncateAt = 120) - { - $body = $message->getBody(); - if (!$body->isSeekable() || !$body->isReadable()) { - return null; - } - $size = $body->getSize(); - if ($size === 0) { - return null; - } - $summary = $body->read($truncateAt); - $body->rewind(); - if ($size > $truncateAt) { - $summary .= ' (truncated...)'; - } - // Matches any printable character, including unicode characters: - // letters, marks, numbers, punctuation, spacing, and separators. - if (\preg_match('/[^\\pL\\pM\\pN\\pP\\pS\\pZ\\n\\r\\t]/u', $summary)) { - return null; - } - return $summary; - } - /** - * 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(\WPMailSMTP\Vendor\Psr\Http\Message\MessageInterface $message) - { - $body = $message->getBody(); - if ($body->tell()) { - $body->rewind(); - } - } - /** - * 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. - * - * @return array - */ - public static function parseMessage($message) - { - if (!$message) { - throw new \InvalidArgumentException('Invalid message'); - } - $message = \ltrim($message, "\r\n"); - $messageParts = \preg_split("/\r?\n\r?\n/", $message, 2); - if ($messageParts === \false || \count($messageParts) !== 2) { - throw new \InvalidArgumentException('Invalid message: Missing header delimiter'); - } - list($rawHeaders, $body) = $messageParts; - $rawHeaders .= "\r\n"; - // Put back the delimiter we split previously - $headerParts = \preg_split("/\r?\n/", $rawHeaders, 2); - if ($headerParts === \false || \count($headerParts) !== 2) { - throw new \InvalidArgumentException('Invalid message: Missing status line'); - } - list($startLine, $rawHeaders) = $headerParts; - if (\preg_match("/(?:^HTTP\\/|^[A-Z]+ \\S+ HTTP\\/)(\\d+(?:\\.\\d+)?)/i", $startLine, $matches) && $matches[1] === '1.0') { - // Header folding is deprecated for HTTP/1.1, but allowed in HTTP/1.0 - $rawHeaders = \preg_replace(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\Rfc7230::HEADER_FOLD_REGEX, ' ', $rawHeaders); - } - /** @var array[] $headerLines */ - $count = \preg_match_all(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\Rfc7230::HEADER_REGEX, $rawHeaders, $headerLines, \PREG_SET_ORDER); - // If these aren't the same, then one line didn't match and there's an invalid header. - if ($count !== \substr_count($rawHeaders, "\n")) { - // Folding is deprecated, see https://tools.ietf.org/html/rfc7230#section-3.2.4 - if (\preg_match(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\Rfc7230::HEADER_FOLD_REGEX, $rawHeaders)) { - throw new \InvalidArgumentException('Invalid header syntax: Obsolete line folding'); - } - throw new \InvalidArgumentException('Invalid header syntax'); - } - $headers = []; - foreach ($headerLines as $headerLine) { - $headers[$headerLine[1]][] = $headerLine[2]; - } - return ['start-line' => $startLine, 'headers' => $headers, 'body' => $body]; - } - /** - * 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). - * - * @return string - */ - public static function parseRequestUri($path, array $headers) - { - $hostKey = \array_filter(\array_keys($headers), function ($k) { - return \strtolower($k) === 'host'; - }); - // If no host is found, then a full URI cannot be constructed. - if (!$hostKey) { - return $path; - } - $host = $headers[\reset($hostKey)][0]; - $scheme = \substr($host, -4) === ':443' ? 'https' : 'http'; - return $scheme . '://' . $host . '/' . \ltrim($path, '/'); - } - /** - * Parses a request message string into a request object. - * - * @param string $message Request message string. - * - * @return Request - */ - public static function parseRequest($message) - { - $data = self::parseMessage($message); - $matches = []; - if (!\preg_match('/^[\\S]+\\s+([a-zA-Z]+:\\/\\/|\\/).*/', $data['start-line'], $matches)) { - throw new \InvalidArgumentException('Invalid request string'); - } - $parts = \explode(' ', $data['start-line'], 3); - $version = isset($parts[2]) ? \explode('/', $parts[2])[1] : '1.1'; - $request = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request($parts[0], $matches[1] === '/' ? self::parseRequestUri($parts[1], $data['headers']) : $parts[1], $data['headers'], $data['body'], $version); - return $matches[1] === '/' ? $request : $request->withRequestTarget($parts[1]); - } - /** - * Parses a response message string into a response object. - * - * @param string $message Response message string. - * - * @return Response - */ - public static function parseResponse($message) - { - $data = self::parseMessage($message); - // According to https://tools.ietf.org/html/rfc7230#section-3.1.2 the space - // between status-code and reason-phrase is required. But browsers accept - // responses without space and reason as well. - if (!\preg_match('/^HTTP\\/.* [0-9]{3}( .*|$)/', $data['start-line'])) { - throw new \InvalidArgumentException('Invalid response string: ' . $data['start-line']); - } - $parts = \explode(' ', $data['start-line'], 3); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Response((int) $parts[1], $data['headers'], $data['body'], \explode('/', $parts[0])[1], isset($parts[2]) ? $parts[2] : null); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/MessageTrait.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/MessageTrait.php deleted file mode 100644 index c5a3f9a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/MessageTrait.php +++ /dev/null @@ -1,171 +0,0 @@ - array of values */ - private $headers = []; - /** @var array 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() - { - return $this->protocol; - } - public function withProtocolVersion($version) - { - if ($this->protocol === $version) { - return $this; - } - $new = clone $this; - $new->protocol = $version; - return $new; - } - public function getHeaders() - { - return $this->headers; - } - public function hasHeader($header) - { - return isset($this->headerNames[\strtolower($header)]); - } - public function getHeader($header) - { - $header = \strtolower($header); - if (!isset($this->headerNames[$header])) { - return []; - } - $header = $this->headerNames[$header]; - return $this->headers[$header]; - } - public function getHeaderLine($header) - { - return \implode(', ', $this->getHeader($header)); - } - public function withHeader($header, $value) - { - $this->assertHeader($header); - $value = $this->normalizeHeaderValue($value); - $normalized = \strtolower($header); - $new = clone $this; - if (isset($new->headerNames[$normalized])) { - unset($new->headers[$new->headerNames[$normalized]]); - } - $new->headerNames[$normalized] = $header; - $new->headers[$header] = $value; - return $new; - } - public function withAddedHeader($header, $value) - { - $this->assertHeader($header); - $value = $this->normalizeHeaderValue($value); - $normalized = \strtolower($header); - $new = clone $this; - if (isset($new->headerNames[$normalized])) { - $header = $this->headerNames[$normalized]; - $new->headers[$header] = \array_merge($this->headers[$header], $value); - } else { - $new->headerNames[$normalized] = $header; - $new->headers[$header] = $value; - } - return $new; - } - public function withoutHeader($header) - { - $normalized = \strtolower($header); - if (!isset($this->headerNames[$normalized])) { - return $this; - } - $header = $this->headerNames[$normalized]; - $new = clone $this; - unset($new->headers[$header], $new->headerNames[$normalized]); - return $new; - } - public function getBody() - { - if (!$this->stream) { - $this->stream = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::streamFor(''); - } - return $this->stream; - } - public function withBody(\WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface $body) - { - if ($body === $this->stream) { - return $this; - } - $new = clone $this; - $new->stream = $body; - return $new; - } - private function setHeaders(array $headers) - { - $this->headerNames = $this->headers = []; - foreach ($headers as $header => $value) { - if (\is_int($header)) { - // Numeric array keys are converted to int by PHP but having a header name '123' is not forbidden by the spec - // and also allowed in withHeader(). So we need to cast it to string again for the following assertion to pass. - $header = (string) $header; - } - $this->assertHeader($header); - $value = $this->normalizeHeaderValue($value); - $normalized = \strtolower($header); - if (isset($this->headerNames[$normalized])) { - $header = $this->headerNames[$normalized]; - $this->headers[$header] = \array_merge($this->headers[$header], $value); - } else { - $this->headerNames[$normalized] = $header; - $this->headers[$header] = $value; - } - } - } - private function normalizeHeaderValue($value) - { - if (!\is_array($value)) { - return $this->trimHeaderValues([$value]); - } - if (\count($value) === 0) { - throw new \InvalidArgumentException('Header value can not be an empty array.'); - } - return $this->trimHeaderValues($value); - } - /** - * 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 string[] $values Header values - * - * @return string[] Trimmed header values - * - * @see https://tools.ietf.org/html/rfc7230#section-3.2.4 - */ - private function trimHeaderValues(array $values) - { - return \array_map(function ($value) { - if (!\is_scalar($value) && null !== $value) { - throw new \InvalidArgumentException(\sprintf('Header value must be scalar or null but %s provided.', \is_object($value) ? \get_class($value) : \gettype($value))); - } - return \trim((string) $value, " \t"); - }, \array_values($values)); - } - private function assertHeader($header) - { - if (!\is_string($header)) { - throw new \InvalidArgumentException(\sprintf('Header name must be a string but %s provided.', \is_object($header) ? \get_class($header) : \gettype($header))); - } - if ($header === '') { - throw new \InvalidArgumentException('Header name can not be empty.'); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/MimeType.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/MimeType.php deleted file mode 100644 index ceedc18..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/MimeType.php +++ /dev/null @@ -1,33 +0,0 @@ - 'video/3gpp', '7z' => 'application/x-7z-compressed', 'aac' => 'audio/x-aac', 'ai' => 'application/postscript', 'aif' => 'audio/x-aiff', 'asc' => 'text/plain', 'asf' => 'video/x-ms-asf', 'atom' => 'application/atom+xml', 'avi' => 'video/x-msvideo', 'bmp' => 'image/bmp', 'bz2' => 'application/x-bzip2', 'cer' => 'application/pkix-cert', 'crl' => 'application/pkix-crl', 'crt' => 'application/x-x509-ca-cert', 'css' => 'text/css', 'csv' => 'text/csv', 'cu' => 'application/cu-seeme', 'deb' => 'application/x-debian-package', 'doc' => 'application/msword', 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'dvi' => 'application/x-dvi', 'eot' => 'application/vnd.ms-fontobject', 'eps' => 'application/postscript', 'epub' => 'application/epub+zip', 'etx' => 'text/x-setext', 'flac' => 'audio/flac', 'flv' => 'video/x-flv', 'gif' => 'image/gif', 'gz' => 'application/gzip', 'htm' => 'text/html', 'html' => 'text/html', 'ico' => 'image/x-icon', 'ics' => 'text/calendar', 'ini' => 'text/plain', 'iso' => 'application/x-iso9660-image', 'jar' => 'application/java-archive', 'jpe' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'jpg' => 'image/jpeg', 'js' => 'text/javascript', 'json' => 'application/json', 'latex' => 'application/x-latex', 'log' => 'text/plain', 'm4a' => 'audio/mp4', 'm4v' => 'video/mp4', 'mid' => 'audio/midi', 'midi' => 'audio/midi', 'mov' => 'video/quicktime', 'mkv' => 'video/x-matroska', 'mp3' => 'audio/mpeg', 'mp4' => 'video/mp4', 'mp4a' => 'audio/mp4', 'mp4v' => 'video/mp4', 'mpe' => 'video/mpeg', 'mpeg' => 'video/mpeg', 'mpg' => 'video/mpeg', 'mpg4' => 'video/mp4', 'oga' => 'audio/ogg', 'ogg' => 'audio/ogg', 'ogv' => 'video/ogg', 'ogx' => 'application/ogg', 'pbm' => 'image/x-portable-bitmap', 'pdf' => 'application/pdf', 'pgm' => 'image/x-portable-graymap', 'png' => 'image/png', 'pnm' => 'image/x-portable-anymap', 'ppm' => 'image/x-portable-pixmap', 'ppt' => 'application/vnd.ms-powerpoint', 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'ps' => 'application/postscript', 'qt' => 'video/quicktime', 'rar' => 'application/x-rar-compressed', 'ras' => 'image/x-cmu-raster', 'rss' => 'application/rss+xml', 'rtf' => 'application/rtf', 'sgm' => 'text/sgml', 'sgml' => 'text/sgml', 'svg' => 'image/svg+xml', 'swf' => 'application/x-shockwave-flash', 'tar' => 'application/x-tar', 'tif' => 'image/tiff', 'tiff' => 'image/tiff', 'torrent' => 'application/x-bittorrent', 'ttf' => 'application/x-font-ttf', 'txt' => 'text/plain', 'wav' => 'audio/x-wav', 'webm' => 'video/webm', 'webp' => 'image/webp', 'wma' => 'audio/x-ms-wma', 'wmv' => 'video/x-ms-wmv', 'woff' => 'application/x-font-woff', 'wsdl' => 'application/wsdl+xml', 'xbm' => 'image/x-xbitmap', 'xls' => 'application/vnd.ms-excel', 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'xml' => 'application/xml', 'xpm' => 'image/x-xpixmap', 'xwd' => 'image/x-xwindowdump', 'yaml' => 'text/yaml', 'yml' => 'text/yaml', 'zip' => 'application/zip']; - $extension = \strtolower($extension); - return isset($mimetypes[$extension]) ? $mimetypes[$extension] : null; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/MultipartStream.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/MultipartStream.php deleted file mode 100644 index 7ce32e6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/MultipartStream.php +++ /dev/null @@ -1,123 +0,0 @@ -boundary = $boundary ?: \sha1(\uniqid('', \true)); - $this->stream = $this->createStream($elements); - } - /** - * Get the boundary - * - * @return string - */ - public function getBoundary() - { - return $this->boundary; - } - public function isWritable() - { - return \false; - } - /** - * Get the headers needed before transferring the content of a POST file - */ - private function getHeaders(array $headers) - { - $str = ''; - foreach ($headers as $key => $value) { - $str .= "{$key}: {$value}\r\n"; - } - return "--{$this->boundary}\r\n" . \trim($str) . "\r\n\r\n"; - } - /** - * Create the aggregate stream that will be used to upload the POST data - */ - protected function createStream(array $elements) - { - $stream = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\AppendStream(); - foreach ($elements as $element) { - $this->addElement($stream, $element); - } - // Add the trailing boundary with CRLF - $stream->addStream(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::streamFor("--{$this->boundary}--\r\n")); - return $stream; - } - private function addElement(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\AppendStream $stream, array $element) - { - foreach (['contents', 'name'] as $key) { - if (!\array_key_exists($key, $element)) { - throw new \InvalidArgumentException("A '{$key}' key is required"); - } - } - $element['contents'] = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::streamFor($element['contents']); - if (empty($element['filename'])) { - $uri = $element['contents']->getMetadata('uri'); - if (\substr($uri, 0, 6) !== 'php://') { - $element['filename'] = $uri; - } - } - list($body, $headers) = $this->createElement($element['name'], $element['contents'], isset($element['filename']) ? $element['filename'] : null, isset($element['headers']) ? $element['headers'] : []); - $stream->addStream(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::streamFor($this->getHeaders($headers))); - $stream->addStream($body); - $stream->addStream(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::streamFor("\r\n")); - } - /** - * @return array - */ - private function createElement($name, \WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface $stream, $filename, array $headers) - { - // Set a default content-disposition header if one was no provided - $disposition = $this->getHeader($headers, 'content-disposition'); - if (!$disposition) { - $headers['Content-Disposition'] = $filename === '0' || $filename ? \sprintf('form-data; name="%s"; filename="%s"', $name, \basename($filename)) : "form-data; name=\"{$name}\""; - } - // Set a default content-length header if one was no provided - $length = $this->getHeader($headers, 'content-length'); - if (!$length) { - if ($length = $stream->getSize()) { - $headers['Content-Length'] = (string) $length; - } - } - // Set a default Content-Type if one was not supplied - $type = $this->getHeader($headers, 'content-type'); - if (!$type && ($filename === '0' || $filename)) { - if ($type = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MimeType::fromFilename($filename)) { - $headers['Content-Type'] = $type; - } - } - return [$stream, $headers]; - } - private function getHeader(array $headers, $key) - { - $lowercaseHeader = \strtolower($key); - foreach ($headers as $k => $v) { - if (\strtolower($k) === $lowercaseHeader) { - return $v; - } - } - return null; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/NoSeekStream.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/NoSeekStream.php deleted file mode 100644 index b21ae78..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/NoSeekStream.php +++ /dev/null @@ -1,20 +0,0 @@ -source = $source; - $this->size = isset($options['size']) ? $options['size'] : null; - $this->metadata = isset($options['metadata']) ? $options['metadata'] : []; - $this->buffer = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\BufferStream(); - } - public function __toString() - { - try { - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::copyToString($this); - } catch (\Exception $e) { - return ''; - } - } - public function close() - { - $this->detach(); - } - public function detach() - { - $this->tellPos = \false; - $this->source = null; - return null; - } - public function getSize() - { - return $this->size; - } - public function tell() - { - return $this->tellPos; - } - public function eof() - { - return !$this->source; - } - public function isSeekable() - { - return \false; - } - public function rewind() - { - $this->seek(0); - } - public function seek($offset, $whence = \SEEK_SET) - { - throw new \RuntimeException('Cannot seek a PumpStream'); - } - public function isWritable() - { - return \false; - } - public function write($string) - { - throw new \RuntimeException('Cannot write to a PumpStream'); - } - public function isReadable() - { - return \true; - } - public function read($length) - { - $data = $this->buffer->read($length); - $readLen = \strlen($data); - $this->tellPos += $readLen; - $remaining = $length - $readLen; - if ($remaining) { - $this->pump($remaining); - $data .= $this->buffer->read($remaining); - $this->tellPos += \strlen($data) - $readLen; - } - return $data; - } - public function getContents() - { - $result = ''; - while (!$this->eof()) { - $result .= $this->read(1000000); - } - return $result; - } - public function getMetadata($key = null) - { - if (!$key) { - return $this->metadata; - } - return isset($this->metadata[$key]) ? $this->metadata[$key] : null; - } - private function pump($length) - { - if ($this->source) { - do { - $data = \call_user_func($this->source, $length); - if ($data === \false || $data === null) { - $this->source = null; - return; - } - $this->buffer->write($data); - $length -= \strlen($data); - } while ($length > 0); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Query.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Query.php deleted file mode 100644 index dbc7f86..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Query.php +++ /dev/null @@ -1,104 +0,0 @@ - '1', 'foo[b]' => '2'])`. - * - * @param string $str Query string to parse - * @param int|bool $urlEncoding How the query string is encoded - * - * @return array - */ - public static function parse($str, $urlEncoding = \true) - { - $result = []; - if ($str === '') { - return $result; - } - if ($urlEncoding === \true) { - $decoder = function ($value) { - return \rawurldecode(\str_replace('+', ' ', $value)); - }; - } elseif ($urlEncoding === \PHP_QUERY_RFC3986) { - $decoder = 'rawurldecode'; - } elseif ($urlEncoding === \PHP_QUERY_RFC1738) { - $decoder = 'urldecode'; - } else { - $decoder = function ($str) { - return $str; - }; - } - foreach (\explode('&', $str) as $kvp) { - $parts = \explode('=', $kvp, 2); - $key = $decoder($parts[0]); - $value = isset($parts[1]) ? $decoder($parts[1]) : null; - if (!isset($result[$key])) { - $result[$key] = $value; - } else { - if (!\is_array($result[$key])) { - $result[$key] = [$result[$key]]; - } - $result[$key][] = $value; - } - } - return $result; - } - /** - * 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. - * @return string - */ - public static function build(array $params, $encoding = \PHP_QUERY_RFC3986) - { - if (!$params) { - return ''; - } - if ($encoding === \false) { - $encoder = function ($str) { - return $str; - }; - } elseif ($encoding === \PHP_QUERY_RFC3986) { - $encoder = 'rawurlencode'; - } elseif ($encoding === \PHP_QUERY_RFC1738) { - $encoder = 'urlencode'; - } else { - throw new \InvalidArgumentException('Invalid type'); - } - $qs = ''; - foreach ($params as $k => $v) { - $k = $encoder($k); - if (!\is_array($v)) { - $qs .= $k; - if ($v !== null) { - $qs .= '=' . $encoder($v); - } - $qs .= '&'; - } else { - foreach ($v as $vv) { - $qs .= $k; - if ($vv !== null) { - $qs .= '=' . $encoder($vv); - } - $qs .= '&'; - } - } - } - return $qs ? (string) \substr($qs, 0, -1) : ''; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Request.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Request.php deleted file mode 100644 index f8fdb39..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Request.php +++ /dev/null @@ -1,120 +0,0 @@ -assertMethod($method); - if (!$uri instanceof \WPMailSMTP\Vendor\Psr\Http\Message\UriInterface) { - $uri = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Uri($uri); - } - $this->method = \strtoupper($method); - $this->uri = $uri; - $this->setHeaders($headers); - $this->protocol = $version; - if (!isset($this->headerNames['host'])) { - $this->updateHostFromUri(); - } - if ($body !== '' && $body !== null) { - $this->stream = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::streamFor($body); - } - } - public function getRequestTarget() - { - if ($this->requestTarget !== null) { - return $this->requestTarget; - } - $target = $this->uri->getPath(); - if ($target == '') { - $target = '/'; - } - if ($this->uri->getQuery() != '') { - $target .= '?' . $this->uri->getQuery(); - } - return $target; - } - public function withRequestTarget($requestTarget) - { - if (\preg_match('#\\s#', $requestTarget)) { - throw new \InvalidArgumentException('Invalid request target provided; cannot contain whitespace'); - } - $new = clone $this; - $new->requestTarget = $requestTarget; - return $new; - } - public function getMethod() - { - return $this->method; - } - public function withMethod($method) - { - $this->assertMethod($method); - $new = clone $this; - $new->method = \strtoupper($method); - return $new; - } - public function getUri() - { - return $this->uri; - } - public function withUri(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri, $preserveHost = \false) - { - if ($uri === $this->uri) { - return $this; - } - $new = clone $this; - $new->uri = $uri; - if (!$preserveHost || !isset($this->headerNames['host'])) { - $new->updateHostFromUri(); - } - return $new; - } - private function updateHostFromUri() - { - $host = $this->uri->getHost(); - if ($host == '') { - return; - } - if (($port = $this->uri->getPort()) !== null) { - $host .= ':' . $port; - } - if (isset($this->headerNames['host'])) { - $header = $this->headerNames['host']; - } else { - $header = 'Host'; - $this->headerNames['host'] = 'Host'; - } - // Ensure Host is the first header. - // See: http://tools.ietf.org/html/rfc7230#section-5.4 - $this->headers = [$header => [$host]] + $this->headers; - } - private function assertMethod($method) - { - if (!\is_string($method) || $method === '') { - throw new \InvalidArgumentException('Method must be a non-empty string.'); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Response.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Response.php deleted file mode 100644 index b4591b6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Response.php +++ /dev/null @@ -1,76 +0,0 @@ - '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', 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', 511 => 'Network Authentication Required']; - /** @var string */ - private $reasonPhrase = ''; - /** @var int */ - private $statusCode = 200; - /** - * @param int $status Status code - * @param array $headers Response headers - * @param string|null|resource|StreamInterface $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($status = 200, array $headers = [], $body = null, $version = '1.1', $reason = null) - { - $this->assertStatusCodeIsInteger($status); - $status = (int) $status; - $this->assertStatusCodeRange($status); - $this->statusCode = $status; - if ($body !== '' && $body !== null) { - $this->stream = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::streamFor($body); - } - $this->setHeaders($headers); - if ($reason == '' && isset(self::$phrases[$this->statusCode])) { - $this->reasonPhrase = self::$phrases[$this->statusCode]; - } else { - $this->reasonPhrase = (string) $reason; - } - $this->protocol = $version; - } - public function getStatusCode() - { - return $this->statusCode; - } - public function getReasonPhrase() - { - return $this->reasonPhrase; - } - public function withStatus($code, $reasonPhrase = '') - { - $this->assertStatusCodeIsInteger($code); - $code = (int) $code; - $this->assertStatusCodeRange($code); - $new = clone $this; - $new->statusCode = $code; - if ($reasonPhrase == '' && isset(self::$phrases[$new->statusCode])) { - $reasonPhrase = self::$phrases[$new->statusCode]; - } - $new->reasonPhrase = (string) $reasonPhrase; - return $new; - } - private function assertStatusCodeIsInteger($statusCode) - { - if (\filter_var($statusCode, \FILTER_VALIDATE_INT) === \false) { - throw new \InvalidArgumentException('Status code must be an integer value.'); - } - } - private function assertStatusCodeRange($statusCode) - { - if ($statusCode < 100 || $statusCode >= 600) { - throw new \InvalidArgumentException('Status code must be an integer value between 1xx and 5xx.'); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Rfc7230.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Rfc7230.php deleted file mode 100644 index 0926356..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Rfc7230.php +++ /dev/null @@ -1,18 +0,0 @@ -@,;:\\\"/[\\]?={}\1- ]++):[ \t]*+((?:[ \t]*+[!-~-]++)*+)[ \t]*+\r?\n)m"; - const HEADER_FOLD_REGEX = "(\r?\n[ \t]++)"; -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/ServerRequest.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/ServerRequest.php deleted file mode 100644 index 1a1a4a1..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/ServerRequest.php +++ /dev/null @@ -1,304 +0,0 @@ -serverParams = $serverParams; - parent::__construct($method, $uri, $headers, $body, $version); - } - /** - * Return an UploadedFile instance array. - * - * @param array $files A array which respect $_FILES structure - * - * @return array - * - * @throws InvalidArgumentException for unrecognized values - */ - public static function normalizeFiles(array $files) - { - $normalized = []; - foreach ($files as $key => $value) { - if ($value instanceof \WPMailSMTP\Vendor\Psr\Http\Message\UploadedFileInterface) { - $normalized[$key] = $value; - } elseif (\is_array($value) && isset($value['tmp_name'])) { - $normalized[$key] = self::createUploadedFileFromSpec($value); - } elseif (\is_array($value)) { - $normalized[$key] = self::normalizeFiles($value); - continue; - } else { - throw new \InvalidArgumentException('Invalid value in files specification'); - } - } - return $normalized; - } - /** - * 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 array|UploadedFileInterface - */ - private static function createUploadedFileFromSpec(array $value) - { - if (\is_array($value['tmp_name'])) { - return self::normalizeNestedFileSpec($value); - } - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\UploadedFile($value['tmp_name'], (int) $value['size'], (int) $value['error'], $value['name'], $value['type']); - } - /** - * Normalize an array of file specifications. - * - * Loops through all nested files and returns a normalized array of - * UploadedFileInterface instances. - * - * @param array $files - * @return UploadedFileInterface[] - */ - private static function normalizeNestedFileSpec(array $files = []) - { - $normalizedFiles = []; - foreach (\array_keys($files['tmp_name']) as $key) { - $spec = ['tmp_name' => $files['tmp_name'][$key], 'size' => $files['size'][$key], 'error' => $files['error'][$key], 'name' => $files['name'][$key], 'type' => $files['type'][$key]]; - $normalizedFiles[$key] = self::createUploadedFileFromSpec($spec); - } - return $normalizedFiles; - } - /** - * Return a ServerRequest populated with superglobals: - * $_GET - * $_POST - * $_COOKIE - * $_FILES - * $_SERVER - * - * @return ServerRequestInterface - */ - public static function fromGlobals() - { - $method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'GET'; - $headers = \getallheaders(); - $uri = self::getUriFromGlobals(); - $body = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\CachingStream(new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\LazyOpenStream('php://input', 'r+')); - $protocol = isset($_SERVER['SERVER_PROTOCOL']) ? \str_replace('HTTP/', '', $_SERVER['SERVER_PROTOCOL']) : '1.1'; - $serverRequest = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\ServerRequest($method, $uri, $headers, $body, $protocol, $_SERVER); - return $serverRequest->withCookieParams($_COOKIE)->withQueryParams($_GET)->withParsedBody($_POST)->withUploadedFiles(self::normalizeFiles($_FILES)); - } - private static function extractHostAndPortFromAuthority($authority) - { - $uri = 'http://' . $authority; - $parts = \parse_url($uri); - if (\false === $parts) { - return [null, null]; - } - $host = isset($parts['host']) ? $parts['host'] : null; - $port = isset($parts['port']) ? $parts['port'] : null; - return [$host, $port]; - } - /** - * Get a Uri populated with values from $_SERVER. - * - * @return UriInterface - */ - public static function getUriFromGlobals() - { - $uri = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Uri(''); - $uri = $uri->withScheme(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https' : 'http'); - $hasPort = \false; - if (isset($_SERVER['HTTP_HOST'])) { - list($host, $port) = self::extractHostAndPortFromAuthority($_SERVER['HTTP_HOST']); - if ($host !== null) { - $uri = $uri->withHost($host); - } - if ($port !== null) { - $hasPort = \true; - $uri = $uri->withPort($port); - } - } elseif (isset($_SERVER['SERVER_NAME'])) { - $uri = $uri->withHost($_SERVER['SERVER_NAME']); - } elseif (isset($_SERVER['SERVER_ADDR'])) { - $uri = $uri->withHost($_SERVER['SERVER_ADDR']); - } - if (!$hasPort && isset($_SERVER['SERVER_PORT'])) { - $uri = $uri->withPort($_SERVER['SERVER_PORT']); - } - $hasQuery = \false; - if (isset($_SERVER['REQUEST_URI'])) { - $requestUriParts = \explode('?', $_SERVER['REQUEST_URI'], 2); - $uri = $uri->withPath($requestUriParts[0]); - if (isset($requestUriParts[1])) { - $hasQuery = \true; - $uri = $uri->withQuery($requestUriParts[1]); - } - } - if (!$hasQuery && isset($_SERVER['QUERY_STRING'])) { - $uri = $uri->withQuery($_SERVER['QUERY_STRING']); - } - return $uri; - } - /** - * {@inheritdoc} - */ - public function getServerParams() - { - return $this->serverParams; - } - /** - * {@inheritdoc} - */ - public function getUploadedFiles() - { - return $this->uploadedFiles; - } - /** - * {@inheritdoc} - */ - public function withUploadedFiles(array $uploadedFiles) - { - $new = clone $this; - $new->uploadedFiles = $uploadedFiles; - return $new; - } - /** - * {@inheritdoc} - */ - public function getCookieParams() - { - return $this->cookieParams; - } - /** - * {@inheritdoc} - */ - public function withCookieParams(array $cookies) - { - $new = clone $this; - $new->cookieParams = $cookies; - return $new; - } - /** - * {@inheritdoc} - */ - public function getQueryParams() - { - return $this->queryParams; - } - /** - * {@inheritdoc} - */ - public function withQueryParams(array $query) - { - $new = clone $this; - $new->queryParams = $query; - return $new; - } - /** - * {@inheritdoc} - */ - public function getParsedBody() - { - return $this->parsedBody; - } - /** - * {@inheritdoc} - */ - public function withParsedBody($data) - { - $new = clone $this; - $new->parsedBody = $data; - return $new; - } - /** - * {@inheritdoc} - */ - public function getAttributes() - { - return $this->attributes; - } - /** - * {@inheritdoc} - */ - public function getAttribute($attribute, $default = null) - { - if (\false === \array_key_exists($attribute, $this->attributes)) { - return $default; - } - return $this->attributes[$attribute]; - } - /** - * {@inheritdoc} - */ - public function withAttribute($attribute, $value) - { - $new = clone $this; - $new->attributes[$attribute] = $value; - return $new; - } - /** - * {@inheritdoc} - */ - public function withoutAttribute($attribute) - { - if (\false === \array_key_exists($attribute, $this->attributes)) { - return $this; - } - $new = clone $this; - unset($new->attributes[$attribute]); - return $new; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Stream.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Stream.php deleted file mode 100644 index a1b8ee1..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Stream.php +++ /dev/null @@ -1,223 +0,0 @@ -size = $options['size']; - } - $this->customMetadata = isset($options['metadata']) ? $options['metadata'] : []; - $this->stream = $stream; - $meta = \stream_get_meta_data($this->stream); - $this->seekable = $meta['seekable']; - $this->readable = (bool) \preg_match(self::READABLE_MODES, $meta['mode']); - $this->writable = (bool) \preg_match(self::WRITABLE_MODES, $meta['mode']); - $this->uri = $this->getMetadata('uri'); - } - /** - * Closes the stream when the destructed - */ - public function __destruct() - { - $this->close(); - } - public function __toString() - { - try { - if ($this->isSeekable()) { - $this->seek(0); - } - return $this->getContents(); - } catch (\Exception $e) { - return ''; - } - } - public function getContents() - { - if (!isset($this->stream)) { - throw new \RuntimeException('Stream is detached'); - } - $contents = \stream_get_contents($this->stream); - if ($contents === \false) { - throw new \RuntimeException('Unable to read stream contents'); - } - return $contents; - } - public function close() - { - if (isset($this->stream)) { - if (\is_resource($this->stream)) { - \fclose($this->stream); - } - $this->detach(); - } - } - public function detach() - { - if (!isset($this->stream)) { - return null; - } - $result = $this->stream; - unset($this->stream); - $this->size = $this->uri = null; - $this->readable = $this->writable = $this->seekable = \false; - return $result; - } - public function getSize() - { - if ($this->size !== null) { - return $this->size; - } - if (!isset($this->stream)) { - return null; - } - // Clear the stat cache if the stream has a URI - if ($this->uri) { - \clearstatcache(\true, $this->uri); - } - $stats = \fstat($this->stream); - if (isset($stats['size'])) { - $this->size = $stats['size']; - return $this->size; - } - return null; - } - public function isReadable() - { - return $this->readable; - } - public function isWritable() - { - return $this->writable; - } - public function isSeekable() - { - return $this->seekable; - } - public function eof() - { - if (!isset($this->stream)) { - throw new \RuntimeException('Stream is detached'); - } - return \feof($this->stream); - } - public function tell() - { - if (!isset($this->stream)) { - throw new \RuntimeException('Stream is detached'); - } - $result = \ftell($this->stream); - if ($result === \false) { - throw new \RuntimeException('Unable to determine stream position'); - } - return $result; - } - public function rewind() - { - $this->seek(0); - } - public function seek($offset, $whence = \SEEK_SET) - { - $whence = (int) $whence; - if (!isset($this->stream)) { - throw new \RuntimeException('Stream is detached'); - } - if (!$this->seekable) { - throw new \RuntimeException('Stream is not seekable'); - } - if (\fseek($this->stream, $offset, $whence) === -1) { - throw new \RuntimeException('Unable to seek to stream position ' . $offset . ' with whence ' . \var_export($whence, \true)); - } - } - public function read($length) - { - if (!isset($this->stream)) { - throw new \RuntimeException('Stream is detached'); - } - if (!$this->readable) { - throw new \RuntimeException('Cannot read from non-readable stream'); - } - if ($length < 0) { - throw new \RuntimeException('Length parameter cannot be negative'); - } - if (0 === $length) { - return ''; - } - $string = \fread($this->stream, $length); - if (\false === $string) { - throw new \RuntimeException('Unable to read from stream'); - } - return $string; - } - public function write($string) - { - if (!isset($this->stream)) { - throw new \RuntimeException('Stream is detached'); - } - if (!$this->writable) { - throw new \RuntimeException('Cannot write to a non-writable stream'); - } - // We can't know the size after writing anything - $this->size = null; - $result = \fwrite($this->stream, $string); - if ($result === \false) { - throw new \RuntimeException('Unable to write to stream'); - } - return $result; - } - public function getMetadata($key = null) - { - if (!isset($this->stream)) { - return $key ? null : []; - } elseif (!$key) { - return $this->customMetadata + \stream_get_meta_data($this->stream); - } elseif (isset($this->customMetadata[$key])) { - return $this->customMetadata[$key]; - } - $meta = \stream_get_meta_data($this->stream); - return isset($meta[$key]) ? $meta[$key] : null; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/StreamDecoratorTrait.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/StreamDecoratorTrait.php deleted file mode 100644 index c1dffd5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/StreamDecoratorTrait.php +++ /dev/null @@ -1,129 +0,0 @@ -stream = $stream; - } - /** - * Magic method used to create a new stream if streams are not added in - * the constructor of a decorator (e.g., LazyOpenStream). - * - * @param string $name Name of the property (allows "stream" only). - * - * @return StreamInterface - */ - public function __get($name) - { - if ($name == 'stream') { - $this->stream = $this->createStream(); - return $this->stream; - } - throw new \UnexpectedValueException("{$name} not found on class"); - } - public function __toString() - { - try { - if ($this->isSeekable()) { - $this->seek(0); - } - return $this->getContents(); - } catch (\Exception $e) { - // Really, PHP? https://bugs.php.net/bug.php?id=53648 - \trigger_error('StreamDecorator::__toString exception: ' . (string) $e, \E_USER_ERROR); - return ''; - } - } - public function getContents() - { - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::copyToString($this); - } - /** - * Allow decorators to implement custom methods - * - * @param string $method Missing method name - * @param array $args Method arguments - * - * @return mixed - */ - public function __call($method, array $args) - { - $result = \call_user_func_array([$this->stream, $method], $args); - // Always return the wrapped object if the result is a return $this - return $result === $this->stream ? $this : $result; - } - public function close() - { - $this->stream->close(); - } - public function getMetadata($key = null) - { - return $this->stream->getMetadata($key); - } - public function detach() - { - return $this->stream->detach(); - } - public function getSize() - { - return $this->stream->getSize(); - } - public function eof() - { - return $this->stream->eof(); - } - public function tell() - { - return $this->stream->tell(); - } - public function isReadable() - { - return $this->stream->isReadable(); - } - public function isWritable() - { - return $this->stream->isWritable(); - } - public function isSeekable() - { - return $this->stream->isSeekable(); - } - public function rewind() - { - $this->seek(0); - } - public function seek($offset, $whence = \SEEK_SET) - { - $this->stream->seek($offset, $whence); - } - public function read($length) - { - return $this->stream->read($length); - } - public function write($string) - { - return $this->stream->write($string); - } - /** - * Implement in subclasses to dynamically create streams when requested. - * - * @return StreamInterface - * - * @throws \BadMethodCallException - */ - protected function createStream() - { - throw new \BadMethodCallException('Not implemented'); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/StreamWrapper.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/StreamWrapper.php deleted file mode 100644 index c55bddb..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/StreamWrapper.php +++ /dev/null @@ -1,103 +0,0 @@ -isReadable()) { - $mode = $stream->isWritable() ? 'r+' : 'r'; - } elseif ($stream->isWritable()) { - $mode = 'w'; - } else { - throw new \InvalidArgumentException('The stream must be readable, ' . 'writable, or both.'); - } - return \fopen('guzzle://stream', $mode, null, self::createStreamContext($stream)); - } - /** - * Creates a stream context that can be used to open a stream as a php stream resource. - * - * @param StreamInterface $stream - * - * @return resource - */ - public static function createStreamContext(\WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface $stream) - { - return \stream_context_create(['guzzle' => ['stream' => $stream]]); - } - /** - * Registers the stream wrapper if needed - */ - public static function register() - { - if (!\in_array('guzzle', \stream_get_wrappers())) { - \stream_wrapper_register('guzzle', __CLASS__); - } - } - public function stream_open($path, $mode, $options, &$opened_path) - { - $options = \stream_context_get_options($this->context); - if (!isset($options['guzzle']['stream'])) { - return \false; - } - $this->mode = $mode; - $this->stream = $options['guzzle']['stream']; - return \true; - } - public function stream_read($count) - { - return $this->stream->read($count); - } - public function stream_write($data) - { - return (int) $this->stream->write($data); - } - public function stream_tell() - { - return $this->stream->tell(); - } - public function stream_eof() - { - return $this->stream->eof(); - } - public function stream_seek($offset, $whence) - { - $this->stream->seek($offset, $whence); - return \true; - } - public function stream_cast($cast_as) - { - $stream = clone $this->stream; - return $stream->detach(); - } - public function stream_stat() - { - static $modeMap = ['r' => 33060, 'rb' => 33060, 'r+' => 33206, 'w' => 33188, 'wb' => 33188]; - return ['dev' => 0, 'ino' => 0, 'mode' => $modeMap[$this->mode], 'nlink' => 0, 'uid' => 0, 'gid' => 0, 'rdev' => 0, 'size' => $this->stream->getSize() ?: 0, 'atime' => 0, 'mtime' => 0, 'ctime' => 0, 'blksize' => 0, 'blocks' => 0]; - } - public function url_stat($path, $flags) - { - return ['dev' => 0, 'ino' => 0, 'mode' => 0, 'nlink' => 0, 'uid' => 0, 'gid' => 0, 'rdev' => 0, 'size' => 0, 'atime' => 0, 'mtime' => 0, 'ctime' => 0, 'blksize' => 0, 'blocks' => 0]; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/UploadedFile.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/UploadedFile.php deleted file mode 100644 index 10b0eb3..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/UploadedFile.php +++ /dev/null @@ -1,252 +0,0 @@ -setError($errorStatus); - $this->setSize($size); - $this->setClientFilename($clientFilename); - $this->setClientMediaType($clientMediaType); - if ($this->isOk()) { - $this->setStreamOrFile($streamOrFile); - } - } - /** - * Depending on the value set file or stream variable - * - * @param mixed $streamOrFile - * - * @throws InvalidArgumentException - */ - private function setStreamOrFile($streamOrFile) - { - if (\is_string($streamOrFile)) { - $this->file = $streamOrFile; - } elseif (\is_resource($streamOrFile)) { - $this->stream = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Stream($streamOrFile); - } elseif ($streamOrFile instanceof \WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface) { - $this->stream = $streamOrFile; - } else { - throw new \InvalidArgumentException('Invalid stream or file provided for UploadedFile'); - } - } - /** - * @param int $error - * - * @throws InvalidArgumentException - */ - private function setError($error) - { - if (\false === \is_int($error)) { - throw new \InvalidArgumentException('Upload file error status must be an integer'); - } - if (\false === \in_array($error, \WPMailSMTP\Vendor\GuzzleHttp\Psr7\UploadedFile::$errors)) { - throw new \InvalidArgumentException('Invalid error status for UploadedFile'); - } - $this->error = $error; - } - /** - * @param int $size - * - * @throws InvalidArgumentException - */ - private function setSize($size) - { - if (\false === \is_int($size)) { - throw new \InvalidArgumentException('Upload file size must be an integer'); - } - $this->size = $size; - } - /** - * @param mixed $param - * @return boolean - */ - private function isStringOrNull($param) - { - return \in_array(\gettype($param), ['string', 'NULL']); - } - /** - * @param mixed $param - * @return boolean - */ - private function isStringNotEmpty($param) - { - return \is_string($param) && \false === empty($param); - } - /** - * @param string|null $clientFilename - * - * @throws InvalidArgumentException - */ - private function setClientFilename($clientFilename) - { - if (\false === $this->isStringOrNull($clientFilename)) { - throw new \InvalidArgumentException('Upload file client filename must be a string or null'); - } - $this->clientFilename = $clientFilename; - } - /** - * @param string|null $clientMediaType - * - * @throws InvalidArgumentException - */ - private function setClientMediaType($clientMediaType) - { - if (\false === $this->isStringOrNull($clientMediaType)) { - throw new \InvalidArgumentException('Upload file client media type must be a string or null'); - } - $this->clientMediaType = $clientMediaType; - } - /** - * Return true if there is no upload error - * - * @return boolean - */ - private function isOk() - { - return $this->error === \UPLOAD_ERR_OK; - } - /** - * @return boolean - */ - public function isMoved() - { - return $this->moved; - } - /** - * @throws RuntimeException if is moved or not ok - */ - private function validateActive() - { - if (\false === $this->isOk()) { - throw new \RuntimeException('Cannot retrieve stream due to upload error'); - } - if ($this->isMoved()) { - throw new \RuntimeException('Cannot retrieve stream after it has already been moved'); - } - } - /** - * {@inheritdoc} - * - * @throws RuntimeException if the upload was not successful. - */ - public function getStream() - { - $this->validateActive(); - if ($this->stream instanceof \WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface) { - return $this->stream; - } - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\LazyOpenStream($this->file, 'r+'); - } - /** - * {@inheritdoc} - * - * @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 RuntimeException if the upload was not successful. - * @throws InvalidArgumentException if the $path 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($targetPath) - { - $this->validateActive(); - if (\false === $this->isStringNotEmpty($targetPath)) { - throw new \InvalidArgumentException('Invalid path provided for move operation; must be a non-empty string'); - } - if ($this->file) { - $this->moved = \php_sapi_name() == 'cli' ? \rename($this->file, $targetPath) : \move_uploaded_file($this->file, $targetPath); - } else { - \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::copyToStream($this->getStream(), new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\LazyOpenStream($targetPath, 'w')); - $this->moved = \true; - } - if (\false === $this->moved) { - throw new \RuntimeException(\sprintf('Uploaded file could not be moved to %s', $targetPath)); - } - } - /** - * {@inheritdoc} - * - * @return int|null The file size in bytes or null if unknown. - */ - public function getSize() - { - return $this->size; - } - /** - * {@inheritdoc} - * - * @see http://php.net/manual/en/features.file-upload.errors.php - * @return int One of PHP's UPLOAD_ERR_XXX constants. - */ - public function getError() - { - return $this->error; - } - /** - * {@inheritdoc} - * - * @return string|null The filename sent by the client or null if none - * was provided. - */ - public function getClientFilename() - { - return $this->clientFilename; - } - /** - * {@inheritdoc} - */ - public function getClientMediaType() - { - return $this->clientMediaType; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Uri.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Uri.php deleted file mode 100644 index bf9d90d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Uri.php +++ /dev/null @@ -1,598 +0,0 @@ - 80, 'https' => 443, 'ftp' => 21, 'gopher' => 70, 'nntp' => 119, 'news' => 119, 'telnet' => 23, 'tn3270' => 23, 'imap' => 143, 'pop' => 110, 'ldap' => 389]; - private static $charUnreserved = 'a-zA-Z0-9_\\-\\.~'; - private static $charSubDelims = '!\\$&\'\\(\\)\\*\\+,;='; - private static $replaceQuery = ['=' => '%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 = ''; - /** - * @param string $uri URI to parse - */ - public function __construct($uri = '') - { - // weak type check to also accept null until we can add scalar type hints - if ($uri != '') { - $parts = \parse_url($uri); - if ($parts === \false) { - throw new \InvalidArgumentException("Unable to parse URI: {$uri}"); - } - $this->applyParts($parts); - } - } - public function __toString() - { - return self::composeComponents($this->scheme, $this->getAuthority(), $this->path, $this->query, $this->fragment); - } - /** - * 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). - * - * @param string $scheme - * @param string $authority - * @param string $path - * @param string $query - * @param string $fragment - * - * @return string - * - * @link https://tools.ietf.org/html/rfc3986#section-5.3 - */ - public static function composeComponents($scheme, $authority, $path, $query, $fragment) - { - $uri = ''; - // weak type checks to also accept null until we can add scalar type hints - if ($scheme != '') { - $uri .= $scheme . ':'; - } - if ($authority != '' || $scheme === 'file') { - $uri .= '//' . $authority; - } - $uri .= $path; - if ($query != '') { - $uri .= '?' . $query; - } - if ($fragment != '') { - $uri .= '#' . $fragment; - } - return $uri; - } - /** - * 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. - * - * @param UriInterface $uri - * - * @return bool - */ - public static function isDefaultPort(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri) - { - return $uri->getPort() === null || isset(self::$defaultPorts[$uri->getScheme()]) && $uri->getPort() === self::$defaultPorts[$uri->getScheme()]; - } - /** - * 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' - * - * @param UriInterface $uri - * - * @return bool - * @see Uri::isNetworkPathReference - * @see Uri::isAbsolutePathReference - * @see Uri::isRelativePathReference - * @link https://tools.ietf.org/html/rfc3986#section-4 - */ - public static function isAbsolute(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri) - { - return $uri->getScheme() !== ''; - } - /** - * Whether the URI is a network-path reference. - * - * A relative reference that begins with two slash characters is termed an network-path reference. - * - * @param UriInterface $uri - * - * @return bool - * @link https://tools.ietf.org/html/rfc3986#section-4.2 - */ - public static function isNetworkPathReference(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri) - { - return $uri->getScheme() === '' && $uri->getAuthority() !== ''; - } - /** - * Whether the URI is a absolute-path reference. - * - * A relative reference that begins with a single slash character is termed an absolute-path reference. - * - * @param UriInterface $uri - * - * @return bool - * @link https://tools.ietf.org/html/rfc3986#section-4.2 - */ - public static function isAbsolutePathReference(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri) - { - return $uri->getScheme() === '' && $uri->getAuthority() === '' && isset($uri->getPath()[0]) && $uri->getPath()[0] === '/'; - } - /** - * 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. - * - * @param UriInterface $uri - * - * @return bool - * @link https://tools.ietf.org/html/rfc3986#section-4.2 - */ - public static function isRelativePathReference(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri) - { - return $uri->getScheme() === '' && $uri->getAuthority() === '' && (!isset($uri->getPath()[0]) || $uri->getPath()[0] !== '/'); - } - /** - * 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 - * - * @return bool - * @link https://tools.ietf.org/html/rfc3986#section-4.4 - */ - public static function isSameDocumentReference(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri, \WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $base = null) - { - if ($base !== null) { - $uri = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\UriResolver::resolve($base, $uri); - return $uri->getScheme() === $base->getScheme() && $uri->getAuthority() === $base->getAuthority() && $uri->getPath() === $base->getPath() && $uri->getQuery() === $base->getQuery(); - } - return $uri->getScheme() === '' && $uri->getAuthority() === '' && $uri->getPath() === '' && $uri->getQuery() === ''; - } - /** - * Removes dot segments from a path and returns the new path. - * - * @param string $path - * - * @return string - * - * @deprecated since version 1.4. Use UriResolver::removeDotSegments instead. - * @see UriResolver::removeDotSegments - */ - public static function removeDotSegments($path) - { - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\UriResolver::removeDotSegments($path); - } - /** - * Converts the relative URI into a new URI that is resolved against the base URI. - * - * @param UriInterface $base Base URI - * @param string|UriInterface $rel Relative URI - * - * @return UriInterface - * - * @deprecated since version 1.4. Use UriResolver::resolve instead. - * @see UriResolver::resolve - */ - public static function resolve(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $base, $rel) - { - if (!$rel instanceof \WPMailSMTP\Vendor\Psr\Http\Message\UriInterface) { - $rel = new self($rel); - } - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\UriResolver::resolve($base, $rel); - } - /** - * 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. - * - * @return UriInterface - */ - public static function withoutQueryValue(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri, $key) - { - $result = self::getFilteredQueryString($uri, [$key]); - return $uri->withQuery(\implode('&', $result)); - } - /** - * 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 - * - * @return UriInterface - */ - public static function withQueryValue(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri, $key, $value) - { - $result = self::getFilteredQueryString($uri, [$key]); - $result[] = self::generateQueryString($key, $value); - return $uri->withQuery(\implode('&', $result)); - } - /** - * 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 array $keyValueArray Associative array of key and values - * - * @return UriInterface - */ - public static function withQueryValues(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri, array $keyValueArray) - { - $result = self::getFilteredQueryString($uri, \array_keys($keyValueArray)); - foreach ($keyValueArray as $key => $value) { - $result[] = self::generateQueryString($key, $value); - } - return $uri->withQuery(\implode('&', $result)); - } - /** - * Creates a URI from a hash of `parse_url` components. - * - * @param array $parts - * - * @return UriInterface - * @link http://php.net/manual/en/function.parse-url.php - * - * @throws \InvalidArgumentException If the components do not form a valid URI. - */ - public static function fromParts(array $parts) - { - $uri = new self(); - $uri->applyParts($parts); - $uri->validateState(); - return $uri; - } - public function getScheme() - { - return $this->scheme; - } - public function getAuthority() - { - $authority = $this->host; - if ($this->userInfo !== '') { - $authority = $this->userInfo . '@' . $authority; - } - if ($this->port !== null) { - $authority .= ':' . $this->port; - } - return $authority; - } - public function getUserInfo() - { - return $this->userInfo; - } - public function getHost() - { - return $this->host; - } - public function getPort() - { - return $this->port; - } - public function getPath() - { - return $this->path; - } - public function getQuery() - { - return $this->query; - } - public function getFragment() - { - return $this->fragment; - } - public function withScheme($scheme) - { - $scheme = $this->filterScheme($scheme); - if ($this->scheme === $scheme) { - return $this; - } - $new = clone $this; - $new->scheme = $scheme; - $new->removeDefaultPort(); - $new->validateState(); - return $new; - } - public function withUserInfo($user, $password = null) - { - $info = $this->filterUserInfoComponent($user); - if ($password !== null) { - $info .= ':' . $this->filterUserInfoComponent($password); - } - if ($this->userInfo === $info) { - return $this; - } - $new = clone $this; - $new->userInfo = $info; - $new->validateState(); - return $new; - } - public function withHost($host) - { - $host = $this->filterHost($host); - if ($this->host === $host) { - return $this; - } - $new = clone $this; - $new->host = $host; - $new->validateState(); - return $new; - } - public function withPort($port) - { - $port = $this->filterPort($port); - if ($this->port === $port) { - return $this; - } - $new = clone $this; - $new->port = $port; - $new->removeDefaultPort(); - $new->validateState(); - return $new; - } - public function withPath($path) - { - $path = $this->filterPath($path); - if ($this->path === $path) { - return $this; - } - $new = clone $this; - $new->path = $path; - $new->validateState(); - return $new; - } - public function withQuery($query) - { - $query = $this->filterQueryAndFragment($query); - if ($this->query === $query) { - return $this; - } - $new = clone $this; - $new->query = $query; - return $new; - } - public function withFragment($fragment) - { - $fragment = $this->filterQueryAndFragment($fragment); - if ($this->fragment === $fragment) { - return $this; - } - $new = clone $this; - $new->fragment = $fragment; - return $new; - } - /** - * Apply parse_url parts to a URI. - * - * @param array $parts Array of parse_url parts to apply. - */ - private function applyParts(array $parts) - { - $this->scheme = isset($parts['scheme']) ? $this->filterScheme($parts['scheme']) : ''; - $this->userInfo = isset($parts['user']) ? $this->filterUserInfoComponent($parts['user']) : ''; - $this->host = isset($parts['host']) ? $this->filterHost($parts['host']) : ''; - $this->port = isset($parts['port']) ? $this->filterPort($parts['port']) : null; - $this->path = isset($parts['path']) ? $this->filterPath($parts['path']) : ''; - $this->query = isset($parts['query']) ? $this->filterQueryAndFragment($parts['query']) : ''; - $this->fragment = isset($parts['fragment']) ? $this->filterQueryAndFragment($parts['fragment']) : ''; - if (isset($parts['pass'])) { - $this->userInfo .= ':' . $this->filterUserInfoComponent($parts['pass']); - } - $this->removeDefaultPort(); - } - /** - * @param string $scheme - * - * @return string - * - * @throws \InvalidArgumentException If the scheme is invalid. - */ - private function filterScheme($scheme) - { - if (!\is_string($scheme)) { - throw new \InvalidArgumentException('Scheme must be a string'); - } - return \strtolower($scheme); - } - /** - * @param string $component - * - * @return string - * - * @throws \InvalidArgumentException If the user info is invalid. - */ - private function filterUserInfoComponent($component) - { - if (!\is_string($component)) { - throw new \InvalidArgumentException('User info must be a string'); - } - return \preg_replace_callback('/(?:[^%' . self::$charUnreserved . self::$charSubDelims . ']+|%(?![A-Fa-f0-9]{2}))/', [$this, 'rawurlencodeMatchZero'], $component); - } - /** - * @param string $host - * - * @return string - * - * @throws \InvalidArgumentException If the host is invalid. - */ - private function filterHost($host) - { - if (!\is_string($host)) { - throw new \InvalidArgumentException('Host must be a string'); - } - return \strtolower($host); - } - /** - * @param int|null $port - * - * @return int|null - * - * @throws \InvalidArgumentException If the port is invalid. - */ - private function filterPort($port) - { - if ($port === null) { - return null; - } - $port = (int) $port; - if (0 > $port || 0xffff < $port) { - throw new \InvalidArgumentException(\sprintf('Invalid port: %d. Must be between 0 and 65535', $port)); - } - return $port; - } - /** - * @param UriInterface $uri - * @param array $keys - * - * @return array - */ - private static function getFilteredQueryString(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri, array $keys) - { - $current = $uri->getQuery(); - if ($current === '') { - return []; - } - $decodedKeys = \array_map('rawurldecode', $keys); - return \array_filter(\explode('&', $current), function ($part) use($decodedKeys) { - return !\in_array(\rawurldecode(\explode('=', $part)[0]), $decodedKeys, \true); - }); - } - /** - * @param string $key - * @param string|null $value - * - * @return string - */ - private static function generateQueryString($key, $value) - { - // Query string separators ("=", "&") within the key or value need to be encoded - // (while preventing double-encoding) before setting the query string. All other - // chars that need percent-encoding will be encoded by withQuery(). - $queryString = \strtr($key, self::$replaceQuery); - if ($value !== null) { - $queryString .= '=' . \strtr($value, self::$replaceQuery); - } - return $queryString; - } - private function removeDefaultPort() - { - if ($this->port !== null && self::isDefaultPort($this)) { - $this->port = null; - } - } - /** - * Filters the path of a URI - * - * @param string $path - * - * @return string - * - * @throws \InvalidArgumentException If the path is invalid. - */ - private function filterPath($path) - { - if (!\is_string($path)) { - throw new \InvalidArgumentException('Path must be a string'); - } - return \preg_replace_callback('/(?:[^' . self::$charUnreserved . self::$charSubDelims . '%:@\\/]++|%(?![A-Fa-f0-9]{2}))/', [$this, 'rawurlencodeMatchZero'], $path); - } - /** - * Filters the query string or fragment of a URI. - * - * @param string $str - * - * @return string - * - * @throws \InvalidArgumentException If the query or fragment is invalid. - */ - private function filterQueryAndFragment($str) - { - if (!\is_string($str)) { - throw new \InvalidArgumentException('Query and fragment must be a string'); - } - return \preg_replace_callback('/(?:[^' . self::$charUnreserved . self::$charSubDelims . '%:@\\/\\?]++|%(?![A-Fa-f0-9]{2}))/', [$this, 'rawurlencodeMatchZero'], $str); - } - private function rawurlencodeMatchZero(array $match) - { - return \rawurlencode($match[0]); - } - private function validateState() - { - if ($this->host === '' && ($this->scheme === 'http' || $this->scheme === 'https')) { - $this->host = self::HTTP_DEFAULT_HOST; - } - if ($this->getAuthority() === '') { - if (0 === \strpos($this->path, '//')) { - throw new \InvalidArgumentException('The path of a URI without an authority must not start with two slashes "//"'); - } - if ($this->scheme === '' && \false !== \strpos(\explode('/', $this->path, 2)[0], ':')) { - throw new \InvalidArgumentException('A relative URI must not have a path beginning with a segment containing a colon'); - } - } elseif (isset($this->path[0]) && $this->path[0] !== '/') { - @\trigger_error('The path of a URI with an authority must start with a slash "/" or be empty. Automagically fixing the URI ' . 'by adding a leading slash to the path is deprecated since version 1.4 and will throw an exception instead.', \E_USER_DEPRECATED); - $this->path = '/' . $this->path; - //throw new \InvalidArgumentException('The path of a URI with an authority must start with a slash "/" or be empty'); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/UriNormalizer.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/UriNormalizer.php deleted file mode 100644 index 48e4424..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/UriNormalizer.php +++ /dev/null @@ -1,179 +0,0 @@ -getPath() === '' && ($uri->getScheme() === 'http' || $uri->getScheme() === 'https')) { - $uri = $uri->withPath('/'); - } - if ($flags & self::REMOVE_DEFAULT_HOST && $uri->getScheme() === 'file' && $uri->getHost() === 'localhost') { - $uri = $uri->withHost(''); - } - if ($flags & self::REMOVE_DEFAULT_PORT && $uri->getPort() !== null && \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Uri::isDefaultPort($uri)) { - $uri = $uri->withPort(null); - } - if ($flags & self::REMOVE_DOT_SEGMENTS && !\WPMailSMTP\Vendor\GuzzleHttp\Psr7\Uri::isRelativePathReference($uri)) { - $uri = $uri->withPath(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\UriResolver::removeDotSegments($uri->getPath())); - } - if ($flags & self::REMOVE_DUPLICATE_SLASHES) { - $uri = $uri->withPath(\preg_replace('#//++#', '/', $uri->getPath())); - } - if ($flags & self::SORT_QUERY_PARAMETERS && $uri->getQuery() !== '') { - $queryKeyValues = \explode('&', $uri->getQuery()); - \sort($queryKeyValues); - $uri = $uri->withQuery(\implode('&', $queryKeyValues)); - } - return $uri; - } - /** - * 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 - * - * @return bool - * @link https://tools.ietf.org/html/rfc3986#section-6.1 - */ - public static function isEquivalent(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri1, \WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri2, $normalizations = self::PRESERVING_NORMALIZATIONS) - { - return (string) self::normalize($uri1, $normalizations) === (string) self::normalize($uri2, $normalizations); - } - private static function capitalizePercentEncoding(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri) - { - $regex = '/(?:%[A-Fa-f0-9]{2})++/'; - $callback = function (array $match) { - return \strtoupper($match[0]); - }; - return $uri->withPath(\preg_replace_callback($regex, $callback, $uri->getPath()))->withQuery(\preg_replace_callback($regex, $callback, $uri->getQuery())); - } - private static function decodeUnreservedCharacters(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $uri) - { - $regex = '/%(?:2D|2E|5F|7E|3[0-9]|[46][1-9A-F]|[57][0-9A])/i'; - $callback = function (array $match) { - return \rawurldecode($match[0]); - }; - return $uri->withPath(\preg_replace_callback($regex, $callback, $uri->getPath()))->withQuery(\preg_replace_callback($regex, $callback, $uri->getQuery())); - } - private function __construct() - { - // cannot be instantiated - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/UriResolver.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/UriResolver.php deleted file mode 100644 index a566fe5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/UriResolver.php +++ /dev/null @@ -1,190 +0,0 @@ -getScheme() != '') { - return $rel->withPath(self::removeDotSegments($rel->getPath())); - } - if ($rel->getAuthority() != '') { - $targetAuthority = $rel->getAuthority(); - $targetPath = self::removeDotSegments($rel->getPath()); - $targetQuery = $rel->getQuery(); - } else { - $targetAuthority = $base->getAuthority(); - if ($rel->getPath() === '') { - $targetPath = $base->getPath(); - $targetQuery = $rel->getQuery() != '' ? $rel->getQuery() : $base->getQuery(); - } else { - if ($rel->getPath()[0] === '/') { - $targetPath = $rel->getPath(); - } else { - if ($targetAuthority != '' && $base->getPath() === '') { - $targetPath = '/' . $rel->getPath(); - } else { - $lastSlashPos = \strrpos($base->getPath(), '/'); - if ($lastSlashPos === \false) { - $targetPath = $rel->getPath(); - } else { - $targetPath = \substr($base->getPath(), 0, $lastSlashPos + 1) . $rel->getPath(); - } - } - } - $targetPath = self::removeDotSegments($targetPath); - $targetQuery = $rel->getQuery(); - } - } - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Uri(\WPMailSMTP\Vendor\GuzzleHttp\Psr7\Uri::composeComponents($base->getScheme(), $targetAuthority, $targetPath, $targetQuery, $rel->getFragment())); - } - /** - * 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 - * - * @param UriInterface $base Base URI - * @param UriInterface $target Target URI - * - * @return UriInterface The relative URI reference - */ - public static function relativize(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $base, \WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $target) - { - if ($target->getScheme() !== '' && ($base->getScheme() !== $target->getScheme() || $target->getAuthority() === '' && $base->getAuthority() !== '')) { - return $target; - } - if (\WPMailSMTP\Vendor\GuzzleHttp\Psr7\Uri::isRelativePathReference($target)) { - // As the target is already highly relative we return it as-is. It would be possible to resolve - // the target with `$target = self::resolve($base, $target);` and then try make it more relative - // by removing a duplicate query. But let's not do that automatically. - return $target; - } - if ($target->getAuthority() !== '' && $base->getAuthority() !== $target->getAuthority()) { - return $target->withScheme(''); - } - // We must remove the path before removing the authority because if the path starts with two slashes, the URI - // would turn invalid. And we also cannot set a relative path before removing the authority, as that is also - // invalid. - $emptyPathUri = $target->withScheme('')->withPath('')->withUserInfo('')->withPort(null)->withHost(''); - if ($base->getPath() !== $target->getPath()) { - return $emptyPathUri->withPath(self::getRelativePath($base, $target)); - } - if ($base->getQuery() === $target->getQuery()) { - // Only the target fragment is left. And it must be returned even if base and target fragment are the same. - return $emptyPathUri->withQuery(''); - } - // If the base URI has a query but the target has none, we cannot return an empty path reference as it would - // inherit the base query component when resolving. - if ($target->getQuery() === '') { - $segments = \explode('/', $target->getPath()); - $lastSegment = \end($segments); - return $emptyPathUri->withPath($lastSegment === '' ? './' : $lastSegment); - } - return $emptyPathUri; - } - private static function getRelativePath(\WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $base, \WPMailSMTP\Vendor\Psr\Http\Message\UriInterface $target) - { - $sourceSegments = \explode('/', $base->getPath()); - $targetSegments = \explode('/', $target->getPath()); - \array_pop($sourceSegments); - $targetLastSegment = \array_pop($targetSegments); - foreach ($sourceSegments as $i => $segment) { - if (isset($targetSegments[$i]) && $segment === $targetSegments[$i]) { - unset($sourceSegments[$i], $targetSegments[$i]); - } else { - break; - } - } - $targetSegments[] = $targetLastSegment; - $relativePath = \str_repeat('../', \count($sourceSegments)) . \implode('/', $targetSegments); - // A reference to am empty last segment or an empty first sub-segment must be prefixed with "./". - // This also applies to a segment with a colon character (e.g., "file:colon") that cannot be used - // as the first segment of a relative-path reference, as it would be mistaken for a scheme name. - if ('' === $relativePath || \false !== \strpos(\explode('/', $relativePath, 2)[0], ':')) { - $relativePath = "./{$relativePath}"; - } elseif ('/' === $relativePath[0]) { - if ($base->getAuthority() != '' && $base->getPath() === '') { - // In this case an extra slash is added by resolve() automatically. So we must not add one here. - $relativePath = ".{$relativePath}"; - } else { - $relativePath = "./{$relativePath}"; - } - } - return $relativePath; - } - private function __construct() - { - // cannot be instantiated - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Utils.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Utils.php deleted file mode 100644 index da02504..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/Utils.php +++ /dev/null @@ -1,334 +0,0 @@ - $keys - * - * @return array - */ - public static function caselessRemove($keys, array $data) - { - $result = []; - foreach ($keys as &$key) { - $key = \strtolower($key); - } - foreach ($data as $k => $v) { - if (!\in_array(\strtolower($k), $keys)) { - $result[$k] = $v; - } - } - return $result; - } - /** - * 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(\WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface $source, \WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface $dest, $maxLen = -1) - { - $bufferSize = 8192; - if ($maxLen === -1) { - while (!$source->eof()) { - if (!$dest->write($source->read($bufferSize))) { - break; - } - } - } else { - $remaining = $maxLen; - while ($remaining > 0 && !$source->eof()) { - $buf = $source->read(\min($bufferSize, $remaining)); - $len = \strlen($buf); - if (!$len) { - break; - } - $remaining -= $len; - $dest->write($buf); - } - } - } - /** - * 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. - * @return string - * - * @throws \RuntimeException on error. - */ - public static function copyToString(\WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface $stream, $maxLen = -1) - { - $buffer = ''; - if ($maxLen === -1) { - while (!$stream->eof()) { - $buf = $stream->read(1048576); - // Using a loose equality here to match on '' and false. - if ($buf == null) { - break; - } - $buffer .= $buf; - } - return $buffer; - } - $len = 0; - while (!$stream->eof() && $len < $maxLen) { - $buf = $stream->read($maxLen - $len); - // Using a loose equality here to match on '' and false. - if ($buf == null) { - break; - } - $buffer .= $buf; - $len = \strlen($buffer); - } - return $buffer; - } - /** - * 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 - * - * @return string Returns the hash of the stream - * - * @throws \RuntimeException on error. - */ - public static function hash(\WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface $stream, $algo, $rawOutput = \false) - { - $pos = $stream->tell(); - if ($pos > 0) { - $stream->rewind(); - } - $ctx = \hash_init($algo); - while (!$stream->eof()) { - \hash_update($ctx, $stream->read(1048576)); - } - $out = \hash_final($ctx, (bool) $rawOutput); - $stream->seek($pos); - return $out; - } - /** - * 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. - * - * @return RequestInterface - */ - public static function modifyRequest(\WPMailSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $changes) - { - if (!$changes) { - return $request; - } - $headers = $request->getHeaders(); - if (!isset($changes['uri'])) { - $uri = $request->getUri(); - } else { - // Remove the host header if one is on the URI - if ($host = $changes['uri']->getHost()) { - $changes['set_headers']['Host'] = $host; - if ($port = $changes['uri']->getPort()) { - $standardPorts = ['http' => 80, 'https' => 443]; - $scheme = $changes['uri']->getScheme(); - if (isset($standardPorts[$scheme]) && $port != $standardPorts[$scheme]) { - $changes['set_headers']['Host'] .= ':' . $port; - } - } - } - $uri = $changes['uri']; - } - if (!empty($changes['remove_headers'])) { - $headers = self::caselessRemove($changes['remove_headers'], $headers); - } - if (!empty($changes['set_headers'])) { - $headers = self::caselessRemove(\array_keys($changes['set_headers']), $headers); - $headers = $changes['set_headers'] + $headers; - } - if (isset($changes['query'])) { - $uri = $uri->withQuery($changes['query']); - } - if ($request instanceof \WPMailSMTP\Vendor\Psr\Http\Message\ServerRequestInterface) { - return (new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\ServerRequest(isset($changes['method']) ? $changes['method'] : $request->getMethod(), $uri, $headers, isset($changes['body']) ? $changes['body'] : $request->getBody(), isset($changes['version']) ? $changes['version'] : $request->getProtocolVersion(), $request->getServerParams()))->withParsedBody($request->getParsedBody())->withQueryParams($request->getQueryParams())->withCookieParams($request->getCookieParams())->withUploadedFiles($request->getUploadedFiles()); - } - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request(isset($changes['method']) ? $changes['method'] : $request->getMethod(), $uri, $headers, isset($changes['body']) ? $changes['body'] : $request->getBody(), isset($changes['version']) ? $changes['version'] : $request->getProtocolVersion()); - } - /** - * 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 - * - * @return string - */ - public static function readLine(\WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface $stream, $maxLength = null) - { - $buffer = ''; - $size = 0; - while (!$stream->eof()) { - // Using a loose equality here to match on '' and false. - if (null == ($byte = $stream->read(1))) { - return $buffer; - } - $buffer .= $byte; - // Break when a new line is found or the max length - 1 is reached - if ($byte === "\n" || ++$size === $maxLength - 1) { - break; - } - } - return $buffer; - } - /** - * 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|null|int|float|bool|StreamInterface|callable|\Iterator $resource Entity body data - * @param array $options Additional options - * - * @return StreamInterface - * - * @throws \InvalidArgumentException if the $resource arg is not valid. - */ - public static function streamFor($resource = '', array $options = []) - { - if (\is_scalar($resource)) { - $stream = \fopen('php://temp', 'r+'); - if ($resource !== '') { - \fwrite($stream, $resource); - \fseek($stream, 0); - } - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Stream($stream, $options); - } - switch (\gettype($resource)) { - case 'resource': - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Stream($resource, $options); - case 'object': - if ($resource instanceof \WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface) { - return $resource; - } elseif ($resource instanceof \Iterator) { - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\PumpStream(function () use($resource) { - if (!$resource->valid()) { - return \false; - } - $result = $resource->current(); - $resource->next(); - return $result; - }, $options); - } elseif (\method_exists($resource, '__toString')) { - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::streamFor((string) $resource, $options); - } - break; - case 'NULL': - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Stream(\fopen('php://temp', 'r+'), $options); - } - if (\is_callable($resource)) { - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\PumpStream($resource, $options); - } - throw new \InvalidArgumentException('Invalid resource type: ' . \gettype($resource)); - } - /** - * 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($filename, $mode) - { - $ex = null; - \set_error_handler(function () use($filename, $mode, &$ex) { - $ex = new \RuntimeException(\sprintf('Unable to open %s using mode %s: %s', $filename, $mode, \func_get_args()[1])); - }); - $handle = \fopen($filename, $mode); - \restore_error_handler(); - if ($ex) { - /** @var $ex \RuntimeException */ - throw $ex; - } - return $handle; - } - /** - * 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 - * - * @return UriInterface - * - * @throws \InvalidArgumentException - */ - public static function uriFor($uri) - { - if ($uri instanceof \WPMailSMTP\Vendor\Psr\Http\Message\UriInterface) { - return $uri; - } - if (\is_string($uri)) { - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Uri($uri); - } - throw new \InvalidArgumentException('URI must be a string or UriInterface'); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/functions.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/functions.php deleted file mode 100644 index 29647a3..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/functions.php +++ /dev/null @@ -1,395 +0,0 @@ - '1', 'foo[b]' => '2'])`. - * - * @param string $str Query string to parse - * @param int|bool $urlEncoding How the query string is encoded - * - * @return array - * - * @deprecated parse_query will be removed in guzzlehttp/psr7:2.0. Use Query::parse instead. - */ -function parse_query($str, $urlEncoding = \true) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Query::parse($str, $urlEncoding); -} -/** - * Build a query string from an array of key value pairs. - * - * This function can use the return value of `parse_query()` 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. - * @return string - * - * @deprecated build_query will be removed in guzzlehttp/psr7:2.0. Use Query::build instead. - */ -function build_query(array $params, $encoding = \PHP_QUERY_RFC3986) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Query::build($params, $encoding); -} -/** - * Determines the mimetype of a file by looking at its extension. - * - * @param string $filename - * - * @return string|null - * - * @deprecated mimetype_from_filename will be removed in guzzlehttp/psr7:2.0. Use MimeType::fromFilename instead. - */ -function mimetype_from_filename($filename) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MimeType::fromFilename($filename); -} -/** - * Maps a file extensions to a mimetype. - * - * @param $extension string The file extension. - * - * @return string|null - * - * @link http://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x/conf/mime.types - * @deprecated mimetype_from_extension will be removed in guzzlehttp/psr7:2.0. Use MimeType::fromExtension instead. - */ -function mimetype_from_extension($extension) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MimeType::fromExtension($extension); -} -/** - * 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. - * - * @return array - * - * @internal - * @deprecated _parse_message will be removed in guzzlehttp/psr7:2.0. Use Message::parseMessage instead. - */ -function _parse_message($message) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Message::parseMessage($message); -} -/** - * 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). - * - * @return string - * - * @internal - * @deprecated _parse_request_uri will be removed in guzzlehttp/psr7:2.0. Use Message::parseRequestUri instead. - */ -function _parse_request_uri($path, array $headers) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Message::parseRequestUri($path, $headers); -} -/** - * 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 - * - * @return string|null - * - * @deprecated get_message_body_summary will be removed in guzzlehttp/psr7:2.0. Use Message::bodySummary instead. - */ -function get_message_body_summary(\WPMailSMTP\Vendor\Psr\Http\Message\MessageInterface $message, $truncateAt = 120) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Message::bodySummary($message, $truncateAt); -} -/** - * Remove the items given by the keys, case insensitively from the data. - * - * @param iterable $keys - * - * @return array - * - * @internal - * @deprecated _caseless_remove will be removed in guzzlehttp/psr7:2.0. Use Utils::caselessRemove instead. - */ -function _caseless_remove($keys, array $data) -{ - return \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Utils::caselessRemove($keys, $data); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/functions_include.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/functions_include.php deleted file mode 100644 index f558af7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/guzzlehttp/psr7/src/functions_include.php +++ /dev/null @@ -1,8 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog; - -use WPMailSMTP\Vendor\Psr\Log\LoggerInterface; -use WPMailSMTP\Vendor\Psr\Log\LogLevel; -use WPMailSMTP\Vendor\Monolog\Handler\AbstractHandler; -/** - * 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 -{ - private $logger; - private $previousExceptionHandler; - private $uncaughtExceptionLevel; - private $previousErrorHandler; - private $errorLevelMap; - private $handleOnlyReportedErrors; - private $hasFatalErrorHandler; - private $fatalLevel; - private $reservedMemory; - private $lastFatalTrace; - private static $fatalErrors = array(\E_ERROR, \E_PARSE, \E_CORE_ERROR, \E_COMPILE_ERROR, \E_USER_ERROR); - public function __construct(\WPMailSMTP\Vendor\Psr\Log\LoggerInterface $logger) - { - $this->logger = $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 int|false $exceptionLevel a LogLevel::* constant, or false to disable exception handling - * @param int|false $fatalLevel a LogLevel::* constant, or false to disable fatal error handling - * @return ErrorHandler - */ - public static function register(\WPMailSMTP\Vendor\Psr\Log\LoggerInterface $logger, $errorLevelMap = array(), $exceptionLevel = null, $fatalLevel = null) - { - //Forces the autoloader to run for LogLevel. Fixes an autoload issue at compile-time on PHP5.3. See https://github.com/Seldaek/monolog/pull/929 - \class_exists('WPMailSMTP\\Vendor\\Psr\\Log\\LogLevel', \true); - $handler = new static($logger); - if ($errorLevelMap !== \false) { - $handler->registerErrorHandler($errorLevelMap); - } - if ($exceptionLevel !== \false) { - $handler->registerExceptionHandler($exceptionLevel); - } - if ($fatalLevel !== \false) { - $handler->registerFatalHandler($fatalLevel); - } - return $handler; - } - public function registerExceptionHandler($level = null, $callPrevious = \true) - { - $prev = \set_exception_handler(array($this, 'handleException')); - $this->uncaughtExceptionLevel = $level; - if ($callPrevious && $prev) { - $this->previousExceptionHandler = $prev; - } - } - public function registerErrorHandler(array $levelMap = array(), $callPrevious = \true, $errorTypes = -1, $handleOnlyReportedErrors = \true) - { - $prev = \set_error_handler(array($this, 'handleError'), $errorTypes); - $this->errorLevelMap = \array_replace($this->defaultErrorLevelMap(), $levelMap); - if ($callPrevious) { - $this->previousErrorHandler = $prev ?: \true; - } - $this->handleOnlyReportedErrors = $handleOnlyReportedErrors; - } - public function registerFatalHandler($level = null, $reservedMemorySize = 20) - { - \register_shutdown_function(array($this, 'handleFatalError')); - $this->reservedMemory = \str_repeat(' ', 1024 * $reservedMemorySize); - $this->fatalLevel = $level; - $this->hasFatalErrorHandler = \true; - } - protected function defaultErrorLevelMap() - { - return array(\E_ERROR => \WPMailSMTP\Vendor\Psr\Log\LogLevel::CRITICAL, \E_WARNING => \WPMailSMTP\Vendor\Psr\Log\LogLevel::WARNING, \E_PARSE => \WPMailSMTP\Vendor\Psr\Log\LogLevel::ALERT, \E_NOTICE => \WPMailSMTP\Vendor\Psr\Log\LogLevel::NOTICE, \E_CORE_ERROR => \WPMailSMTP\Vendor\Psr\Log\LogLevel::CRITICAL, \E_CORE_WARNING => \WPMailSMTP\Vendor\Psr\Log\LogLevel::WARNING, \E_COMPILE_ERROR => \WPMailSMTP\Vendor\Psr\Log\LogLevel::ALERT, \E_COMPILE_WARNING => \WPMailSMTP\Vendor\Psr\Log\LogLevel::WARNING, \E_USER_ERROR => \WPMailSMTP\Vendor\Psr\Log\LogLevel::ERROR, \E_USER_WARNING => \WPMailSMTP\Vendor\Psr\Log\LogLevel::WARNING, \E_USER_NOTICE => \WPMailSMTP\Vendor\Psr\Log\LogLevel::NOTICE, \E_STRICT => \WPMailSMTP\Vendor\Psr\Log\LogLevel::NOTICE, \E_RECOVERABLE_ERROR => \WPMailSMTP\Vendor\Psr\Log\LogLevel::ERROR, \E_DEPRECATED => \WPMailSMTP\Vendor\Psr\Log\LogLevel::NOTICE, \E_USER_DEPRECATED => \WPMailSMTP\Vendor\Psr\Log\LogLevel::NOTICE); - } - /** - * @private - */ - public function handleException($e) - { - $this->logger->log($this->uncaughtExceptionLevel === null ? \WPMailSMTP\Vendor\Psr\Log\LogLevel::ERROR : $this->uncaughtExceptionLevel, \sprintf('Uncaught Exception %s: "%s" at %s line %s', \WPMailSMTP\Vendor\Monolog\Utils::getClass($e), $e->getMessage(), $e->getFile(), $e->getLine()), array('exception' => $e)); - if ($this->previousExceptionHandler) { - \call_user_func($this->previousExceptionHandler, $e); - } - exit(255); - } - /** - * @private - */ - public function handleError($code, $message, $file = '', $line = 0, $context = array()) - { - if ($this->handleOnlyReportedErrors && !(\error_reporting() & $code)) { - return; - } - // fatal error codes are ignored if a fatal error handler is present as well to avoid duplicate log entries - if (!$this->hasFatalErrorHandler || !\in_array($code, self::$fatalErrors, \true)) { - $level = isset($this->errorLevelMap[$code]) ? $this->errorLevelMap[$code] : \WPMailSMTP\Vendor\Psr\Log\LogLevel::CRITICAL; - $this->logger->log($level, self::codeToString($code) . ': ' . $message, array('code' => $code, 'message' => $message, 'file' => $file, 'line' => $line)); - } else { - // http://php.net/manual/en/function.debug-backtrace.php - // As of 5.3.6, DEBUG_BACKTRACE_IGNORE_ARGS option was added. - // Any version less than 5.3.6 must use the DEBUG_BACKTRACE_IGNORE_ARGS constant value '2'. - $trace = \debug_backtrace(\PHP_VERSION_ID < 50306 ? 2 : \DEBUG_BACKTRACE_IGNORE_ARGS); - \array_shift($trace); - // Exclude handleError from trace - $this->lastFatalTrace = $trace; - } - if ($this->previousErrorHandler === \true) { - return \false; - } elseif ($this->previousErrorHandler) { - return \call_user_func($this->previousErrorHandler, $code, $message, $file, $line, $context); - } - } - /** - * @private - */ - public function handleFatalError() - { - $this->reservedMemory = null; - $lastError = \error_get_last(); - if ($lastError && \in_array($lastError['type'], self::$fatalErrors, \true)) { - $this->logger->log($this->fatalLevel === null ? \WPMailSMTP\Vendor\Psr\Log\LogLevel::ALERT : $this->fatalLevel, 'Fatal Error (' . self::codeToString($lastError['type']) . '): ' . $lastError['message'], array('code' => $lastError['type'], 'message' => $lastError['message'], 'file' => $lastError['file'], 'line' => $lastError['line'], 'trace' => $this->lastFatalTrace)); - if ($this->logger instanceof \WPMailSMTP\Vendor\Monolog\Logger) { - foreach ($this->logger->getHandlers() as $handler) { - if ($handler instanceof \WPMailSMTP\Vendor\Monolog\Handler\AbstractHandler) { - $handler->close(); - } - } - } - } - } - private static function codeToString($code) - { - switch ($code) { - case \E_ERROR: - return 'E_ERROR'; - case \E_WARNING: - return 'E_WARNING'; - case \E_PARSE: - return 'E_PARSE'; - case \E_NOTICE: - return 'E_NOTICE'; - case \E_CORE_ERROR: - return 'E_CORE_ERROR'; - case \E_CORE_WARNING: - return 'E_CORE_WARNING'; - case \E_COMPILE_ERROR: - return 'E_COMPILE_ERROR'; - case \E_COMPILE_WARNING: - return 'E_COMPILE_WARNING'; - case \E_USER_ERROR: - return 'E_USER_ERROR'; - case \E_USER_WARNING: - return 'E_USER_WARNING'; - case \E_USER_NOTICE: - return 'E_USER_NOTICE'; - case \E_STRICT: - return 'E_STRICT'; - case \E_RECOVERABLE_ERROR: - return 'E_RECOVERABLE_ERROR'; - case \E_DEPRECATED: - return 'E_DEPRECATED'; - case \E_USER_DEPRECATED: - return 'E_USER_DEPRECATED'; - } - return 'Unknown PHP error'; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php deleted file mode 100644 index f12fb6c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Formatter; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * Formats a log message according to the ChromePHP array format - * - * @author Christophe Coevoet - */ -class ChromePHPFormatter implements \WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface -{ - /** - * Translates Monolog log levels to Wildfire levels. - */ - private $logLevels = array(\WPMailSMTP\Vendor\Monolog\Logger::DEBUG => 'log', \WPMailSMTP\Vendor\Monolog\Logger::INFO => 'info', \WPMailSMTP\Vendor\Monolog\Logger::NOTICE => 'info', \WPMailSMTP\Vendor\Monolog\Logger::WARNING => 'warn', \WPMailSMTP\Vendor\Monolog\Logger::ERROR => 'error', \WPMailSMTP\Vendor\Monolog\Logger::CRITICAL => 'error', \WPMailSMTP\Vendor\Monolog\Logger::ALERT => 'error', \WPMailSMTP\Vendor\Monolog\Logger::EMERGENCY => 'error'); - /** - * {@inheritdoc} - */ - public function format(array $record) - { - // Retrieve the line and file if set and remove them from the formatted extra - $backtrace = 'unknown'; - if (isset($record['extra']['file'], $record['extra']['line'])) { - $backtrace = $record['extra']['file'] . ' : ' . $record['extra']['line']; - unset($record['extra']['file'], $record['extra']['line']); - } - $message = array('message' => $record['message']); - if ($record['context']) { - $message['context'] = $record['context']; - } - if ($record['extra']) { - $message['extra'] = $record['extra']; - } - if (\count($message) === 1) { - $message = \reset($message); - } - return array($record['channel'], $message, $backtrace, $this->logLevels[$record['level']]); - } - public function formatBatch(array $records) - { - $formatted = array(); - foreach ($records as $record) { - $formatted[] = $this->format($record); - } - return $formatted; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php deleted file mode 100644 index 2ed25a0..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php +++ /dev/null @@ -1,78 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Formatter; - -use WPMailSMTP\Vendor\Elastica\Document; -/** - * Format a log message into an Elastica Document - * - * @author Jelle Vink - */ -class ElasticaFormatter extends \WPMailSMTP\Vendor\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 - */ - public function __construct($index, $type) - { - // elasticsearch requires a ISO 8601 format date with optional millisecond precision. - parent::__construct('Y-m-d\\TH:i:s.uP'); - $this->index = $index; - $this->type = $type; - } - /** - * {@inheritdoc} - */ - public function format(array $record) - { - $record = parent::format($record); - return $this->getDocument($record); - } - /** - * Getter index - * @return string - */ - public function getIndex() - { - return $this->index; - } - /** - * Getter type - * @return string - */ - public function getType() - { - return $this->type; - } - /** - * Convert a log message into an Elastica Document - * - * @param array $record Log message - * @return Document - */ - protected function getDocument($record) - { - $document = new \WPMailSMTP\Vendor\Elastica\Document(); - $document->setData($record); - $document->setType($this->type); - $document->setIndex($this->index); - return $document; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php deleted file mode 100644 index 70d082d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php +++ /dev/null @@ -1,84 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Formatter; - -/** - * formats the record to be used in the FlowdockHandler - * - * @author Dominik Liebler - */ -class FlowdockFormatter implements \WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface -{ - /** - * @var string - */ - private $source; - /** - * @var string - */ - private $sourceEmail; - /** - * @param string $source - * @param string $sourceEmail - */ - public function __construct($source, $sourceEmail) - { - $this->source = $source; - $this->sourceEmail = $sourceEmail; - } - /** - * {@inheritdoc} - */ - public function format(array $record) - { - $tags = array('#logs', '#' . \strtolower($record['level_name']), '#' . $record['channel']); - foreach ($record['extra'] as $value) { - $tags[] = '#' . $value; - } - $subject = \sprintf('in %s: %s - %s', $this->source, $record['level_name'], $this->getShortMessage($record['message'])); - $record['flowdock'] = array('source' => $this->source, 'from_address' => $this->sourceEmail, 'subject' => $subject, 'content' => $record['message'], 'tags' => $tags, 'project' => $this->source); - return $record; - } - /** - * {@inheritdoc} - */ - public function formatBatch(array $records) - { - $formatted = array(); - foreach ($records as $record) { - $formatted[] = $this->format($record); - } - return $formatted; - } - /** - * @param string $message - * - * @return string - */ - public function getShortMessage($message) - { - static $hasMbString; - if (null === $hasMbString) { - $hasMbString = \function_exists('mb_strlen'); - } - $maxLength = 45; - if ($hasMbString) { - if (\mb_strlen($message, 'UTF-8') > $maxLength) { - $message = \mb_substr($message, 0, $maxLength - 4, 'UTF-8') . ' ...'; - } - } else { - if (\strlen($message) > $maxLength) { - $message = \substr($message, 0, $maxLength - 4) . ' ...'; - } - } - return $message; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php deleted file mode 100644 index 7a6c9cc..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php +++ /dev/null @@ -1,73 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Formatter; - -use WPMailSMTP\Vendor\Monolog\Utils; -/** - * 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 \WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface -{ - /** - * @var bool $levelTag should message level be a part of the fluentd tag - */ - protected $levelTag = \false; - public function __construct($levelTag = \false) - { - if (!\function_exists('json_encode')) { - throw new \RuntimeException('PHP\'s json extension is required to use Monolog\'s FluentdUnixFormatter'); - } - $this->levelTag = (bool) $levelTag; - } - public function isUsingLevelsInTag() - { - return $this->levelTag; - } - public function format(array $record) - { - $tag = $record['channel']; - if ($this->levelTag) { - $tag .= '.' . \strtolower($record['level_name']); - } - $message = array('message' => $record['message'], 'context' => $record['context'], 'extra' => $record['extra']); - if (!$this->levelTag) { - $message['level'] = $record['level']; - $message['level_name'] = $record['level_name']; - } - return \WPMailSMTP\Vendor\Monolog\Utils::jsonEncode(array($tag, $record['datetime']->getTimestamp(), $message)); - } - public function formatBatch(array $records) - { - $message = ''; - foreach ($records as $record) { - $message .= $this->format($record); - } - return $message; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php deleted file mode 100644 index 89fbea5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Formatter; - -/** - * Interface for formatters - * - * @author Jordi Boggiano - */ -interface FormatterInterface -{ - /** - * Formats a log record. - * - * @param array $record A record to format - * @return mixed The formatted 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 - */ - public function formatBatch(array $records); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php deleted file mode 100644 index 24c2ee6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php +++ /dev/null @@ -1,105 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Formatter; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Gelf\Message; -/** - * Serializes a log message to GELF - * @see http://www.graylog2.org/about/gelf - * - * @author Matt Lehner - */ -class GelfMessageFormatter extends \WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter -{ - 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; - /** - * Translates Monolog log levels to Graylog2 log priorities. - */ - private $logLevels = array(\WPMailSMTP\Vendor\Monolog\Logger::DEBUG => 7, \WPMailSMTP\Vendor\Monolog\Logger::INFO => 6, \WPMailSMTP\Vendor\Monolog\Logger::NOTICE => 5, \WPMailSMTP\Vendor\Monolog\Logger::WARNING => 4, \WPMailSMTP\Vendor\Monolog\Logger::ERROR => 3, \WPMailSMTP\Vendor\Monolog\Logger::CRITICAL => 2, \WPMailSMTP\Vendor\Monolog\Logger::ALERT => 1, \WPMailSMTP\Vendor\Monolog\Logger::EMERGENCY => 0); - public function __construct($systemName = null, $extraPrefix = null, $contextPrefix = 'ctxt_', $maxLength = null) - { - parent::__construct('U.u'); - $this->systemName = $systemName ?: \gethostname(); - $this->extraPrefix = $extraPrefix; - $this->contextPrefix = $contextPrefix; - $this->maxLength = \is_null($maxLength) ? self::DEFAULT_MAX_LENGTH : $maxLength; - } - /** - * {@inheritdoc} - */ - public function format(array $record) - { - $record = parent::format($record); - if (!isset($record['datetime'], $record['message'], $record['level'])) { - throw new \InvalidArgumentException('The record should at least contain datetime, message and level keys, ' . \var_export($record, \true) . ' given'); - } - $message = new \WPMailSMTP\Vendor\Gelf\Message(); - $message->setTimestamp($record['datetime'])->setShortMessage((string) $record['message'])->setHost($this->systemName)->setLevel($this->logLevels[$record['level']]); - // message length + system name length + 200 for padding / metadata - $len = 200 + \strlen((string) $record['message']) + \strlen($this->systemName); - if ($len > $this->maxLength) { - $message->setShortMessage(\substr($record['message'], 0, $this->maxLength)); - } - if (isset($record['channel'])) { - $message->setFacility($record['channel']); - } - if (isset($record['extra']['line'])) { - $message->setLine($record['extra']['line']); - unset($record['extra']['line']); - } - if (isset($record['extra']['file'])) { - $message->setFile($record['extra']['file']); - unset($record['extra']['file']); - } - foreach ($record['extra'] as $key => $val) { - $val = \is_scalar($val) || null === $val ? $val : $this->toJson($val); - $len = \strlen($this->extraPrefix . $key . $val); - if ($len > $this->maxLength) { - $message->setAdditional($this->extraPrefix . $key, \substr($val, 0, $this->maxLength)); - break; - } - $message->setAdditional($this->extraPrefix . $key, $val); - } - foreach ($record['context'] as $key => $val) { - $val = \is_scalar($val) || null === $val ? $val : $this->toJson($val); - $len = \strlen($this->contextPrefix . $key . $val); - if ($len > $this->maxLength) { - $message->setAdditional($this->contextPrefix . $key, \substr($val, 0, $this->maxLength)); - break; - } - $message->setAdditional($this->contextPrefix . $key, $val); - } - if (null === $message->getFile() && isset($record['context']['exception']['file'])) { - if (\preg_match("/^(.+):([0-9]+)\$/", $record['context']['exception']['file'], $matches)) { - $message->setFile($matches[1]); - $message->setLine($matches[2]); - } - } - return $message; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php deleted file mode 100644 index c7fbc3e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php +++ /dev/null @@ -1,119 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Formatter; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Utils; -/** - * Formats incoming records into an HTML table - * - * This is especially useful for html email logging - * - * @author Tiago Brito - */ -class HtmlFormatter extends \WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter -{ - /** - * Translates Monolog log levels to html color priorities. - */ - protected $logLevels = array(\WPMailSMTP\Vendor\Monolog\Logger::DEBUG => '#cccccc', \WPMailSMTP\Vendor\Monolog\Logger::INFO => '#468847', \WPMailSMTP\Vendor\Monolog\Logger::NOTICE => '#3a87ad', \WPMailSMTP\Vendor\Monolog\Logger::WARNING => '#c09853', \WPMailSMTP\Vendor\Monolog\Logger::ERROR => '#f0ad4e', \WPMailSMTP\Vendor\Monolog\Logger::CRITICAL => '#FF7708', \WPMailSMTP\Vendor\Monolog\Logger::ALERT => '#C12A19', \WPMailSMTP\Vendor\Monolog\Logger::EMERGENCY => '#000000'); - /** - * @param string $dateFormat The format of the timestamp: one supported by DateTime::format - */ - public function __construct($dateFormat = null) - { - parent::__construct($dateFormat); - } - /** - * 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 - * @return string - */ - protected function addRow($th, $td = ' ', $escapeTd = \true) - { - $th = \htmlspecialchars($th, \ENT_NOQUOTES, 'UTF-8'); - if ($escapeTd) { - $td = '
    ' . \htmlspecialchars($td, \ENT_NOQUOTES, 'UTF-8') . '
    '; - } - return "\n{$th}:\n" . $td . "\n"; - } - /** - * Create a HTML h1 tag - * - * @param string $title Text to be in the h1 - * @param int $level Error level - * @return string - */ - protected function addTitle($title, $level) - { - $title = \htmlspecialchars($title, \ENT_NOQUOTES, 'UTF-8'); - return '

    ' . $title . '

    '; - } - /** - * Formats a log record. - * - * @param array $record A record to format - * @return mixed The formatted record - */ - public function format(array $record) - { - $output = $this->addTitle($record['level_name'], $record['level']); - $output .= ''; - $output .= $this->addRow('Message', (string) $record['message']); - $output .= $this->addRow('Time', $record['datetime']->format($this->dateFormat)); - $output .= $this->addRow('Channel', $record['channel']); - if ($record['context']) { - $embeddedTable = '
    '; - foreach ($record['context'] as $key => $value) { - $embeddedTable .= $this->addRow($key, $this->convertToString($value)); - } - $embeddedTable .= '
    '; - $output .= $this->addRow('Context', $embeddedTable, \false); - } - if ($record['extra']) { - $embeddedTable = ''; - foreach ($record['extra'] as $key => $value) { - $embeddedTable .= $this->addRow($key, $this->convertToString($value)); - } - $embeddedTable .= '
    '; - $output .= $this->addRow('Extra', $embeddedTable, \false); - } - return $output . ''; - } - /** - * Formats a set of log records. - * - * @param array $records A set of records to format - * @return mixed The formatted set of records - */ - public function formatBatch(array $records) - { - $message = ''; - foreach ($records as $record) { - $message .= $this->format($record); - } - return $message; - } - protected function convertToString($data) - { - if (null === $data || \is_scalar($data)) { - return (string) $data; - } - $data = $this->normalize($data); - if (\version_compare(\PHP_VERSION, '5.4.0', '>=')) { - return \WPMailSMTP\Vendor\Monolog\Utils::jsonEncode($data, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE, \true); - } - return \str_replace('\\/', '/', \WPMailSMTP\Vendor\Monolog\Utils::jsonEncode($data, null, \true)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php deleted file mode 100644 index 3085b3f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php +++ /dev/null @@ -1,179 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Formatter; - -use Exception; -use WPMailSMTP\Vendor\Monolog\Utils; -use Throwable; -/** - * Encodes whatever record data is passed to it as json - * - * This can be useful to log to databases or remote APIs - * - * @author Jordi Boggiano - */ -class JsonFormatter extends \WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter -{ - const BATCH_MODE_JSON = 1; - const BATCH_MODE_NEWLINES = 2; - protected $batchMode; - protected $appendNewline; - /** - * @var bool - */ - protected $includeStacktraces = \false; - /** - * @param int $batchMode - * @param bool $appendNewline - */ - public function __construct($batchMode = self::BATCH_MODE_JSON, $appendNewline = \true) - { - $this->batchMode = $batchMode; - $this->appendNewline = $appendNewline; - } - /** - * 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. - * - * @return int - */ - public function getBatchMode() - { - return $this->batchMode; - } - /** - * True if newlines are appended to every formatted record - * - * @return bool - */ - public function isAppendingNewlines() - { - return $this->appendNewline; - } - /** - * {@inheritdoc} - */ - public function format(array $record) - { - return $this->toJson($this->normalize($record), \true) . ($this->appendNewline ? "\n" : ''); - } - /** - * {@inheritdoc} - */ - public function formatBatch(array $records) - { - switch ($this->batchMode) { - case static::BATCH_MODE_NEWLINES: - return $this->formatBatchNewlines($records); - case static::BATCH_MODE_JSON: - default: - return $this->formatBatchJson($records); - } - } - /** - * @param bool $include - */ - public function includeStacktraces($include = \true) - { - $this->includeStacktraces = $include; - } - /** - * Return a JSON-encoded array of records. - * - * @param array $records - * @return string - */ - protected function formatBatchJson(array $records) - { - return $this->toJson($this->normalize($records), \true); - } - /** - * Use new lines to separate records instead of a - * JSON-encoded array. - * - * @param array $records - * @return string - */ - protected function formatBatchNewlines(array $records) - { - $instance = $this; - $oldNewline = $this->appendNewline; - $this->appendNewline = \false; - \array_walk($records, function (&$value, $key) use($instance) { - $value = $instance->format($value); - }); - $this->appendNewline = $oldNewline; - return \implode("\n", $records); - } - /** - * Normalizes given $data. - * - * @param mixed $data - * - * @return mixed - */ - protected function normalize($data, $depth = 0) - { - if ($depth > 9) { - return 'Over 9 levels deep, aborting normalization'; - } - if (\is_array($data)) { - $normalized = array(); - $count = 1; - foreach ($data as $key => $value) { - if ($count++ > 1000) { - $normalized['...'] = 'Over 1000 items (' . \count($data) . ' total), aborting normalization'; - break; - } - $normalized[$key] = $this->normalize($value, $depth + 1); - } - return $normalized; - } - if ($data instanceof \Exception || $data instanceof \Throwable) { - return $this->normalizeException($data); - } - if (\is_resource($data)) { - return parent::normalize($data); - } - return $data; - } - /** - * Normalizes given exception with or without its own stack trace based on - * `includeStacktraces` property. - * - * @param Exception|Throwable $e - * - * @return array - */ - protected function normalizeException($e) - { - // TODO 2.0 only check for Throwable - if (!$e instanceof \Exception && !$e instanceof \Throwable) { - throw new \InvalidArgumentException('Exception/Throwable expected, got ' . \gettype($e) . ' / ' . \WPMailSMTP\Vendor\Monolog\Utils::getClass($e)); - } - $data = array('class' => \WPMailSMTP\Vendor\Monolog\Utils::getClass($e), 'message' => $e->getMessage(), 'code' => (int) $e->getCode(), 'file' => $e->getFile() . ':' . $e->getLine()); - if ($this->includeStacktraces) { - $trace = $e->getTrace(); - foreach ($trace as $frame) { - if (isset($frame['file'])) { - $data['trace'][] = $frame['file'] . ':' . $frame['line']; - } - } - } - if ($previous = $e->getPrevious()) { - $data['previous'] = $this->normalizeException($previous); - } - return $data; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LineFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LineFormatter.php deleted file mode 100644 index 4a5330e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LineFormatter.php +++ /dev/null @@ -1,150 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Formatter; - -use WPMailSMTP\Vendor\Monolog\Utils; -/** - * 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 \WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter -{ - const SIMPLE_FORMAT = "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n"; - protected $format; - protected $allowInlineLineBreaks; - protected $ignoreEmptyContextAndExtra; - protected $includeStacktraces; - /** - * @param string $format The format of the message - * @param string $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($format = null, $dateFormat = null, $allowInlineLineBreaks = \false, $ignoreEmptyContextAndExtra = \false) - { - $this->format = $format ?: static::SIMPLE_FORMAT; - $this->allowInlineLineBreaks = $allowInlineLineBreaks; - $this->ignoreEmptyContextAndExtra = $ignoreEmptyContextAndExtra; - parent::__construct($dateFormat); - } - public function includeStacktraces($include = \true) - { - $this->includeStacktraces = $include; - if ($this->includeStacktraces) { - $this->allowInlineLineBreaks = \true; - } - } - public function allowInlineLineBreaks($allow = \true) - { - $this->allowInlineLineBreaks = $allow; - } - public function ignoreEmptyContextAndExtra($ignore = \true) - { - $this->ignoreEmptyContextAndExtra = $ignore; - } - /** - * {@inheritdoc} - */ - public function format(array $record) - { - $vars = parent::format($record); - $output = $this->format; - foreach ($vars['extra'] as $var => $val) { - if (\false !== \strpos($output, '%extra.' . $var . '%')) { - $output = \str_replace('%extra.' . $var . '%', $this->stringify($val), $output); - unset($vars['extra'][$var]); - } - } - foreach ($vars['context'] as $var => $val) { - if (\false !== \strpos($output, '%context.' . $var . '%')) { - $output = \str_replace('%context.' . $var . '%', $this->stringify($val), $output); - unset($vars['context'][$var]); - } - } - if ($this->ignoreEmptyContextAndExtra) { - if (empty($vars['context'])) { - unset($vars['context']); - $output = \str_replace('%context%', '', $output); - } - if (empty($vars['extra'])) { - unset($vars['extra']); - $output = \str_replace('%extra%', '', $output); - } - } - foreach ($vars as $var => $val) { - if (\false !== \strpos($output, '%' . $var . '%')) { - $output = \str_replace('%' . $var . '%', $this->stringify($val), $output); - } - } - // remove leftover %extra.xxx% and %context.xxx% if any - if (\false !== \strpos($output, '%')) { - $output = \preg_replace('/%(?:extra|context)\\..+?%/', '', $output); - } - return $output; - } - public function formatBatch(array $records) - { - $message = ''; - foreach ($records as $record) { - $message .= $this->format($record); - } - return $message; - } - public function stringify($value) - { - return $this->replaceNewlines($this->convertToString($value)); - } - protected function normalizeException($e) - { - // TODO 2.0 only check for Throwable - if (!$e instanceof \Exception && !$e instanceof \Throwable) { - throw new \InvalidArgumentException('Exception/Throwable expected, got ' . \gettype($e) . ' / ' . \WPMailSMTP\Vendor\Monolog\Utils::getClass($e)); - } - $previousText = ''; - if ($previous = $e->getPrevious()) { - do { - $previousText .= ', ' . \WPMailSMTP\Vendor\Monolog\Utils::getClass($previous) . '(code: ' . $previous->getCode() . '): ' . $previous->getMessage() . ' at ' . $previous->getFile() . ':' . $previous->getLine(); - } while ($previous = $previous->getPrevious()); - } - $str = '[object] (' . \WPMailSMTP\Vendor\Monolog\Utils::getClass($e) . '(code: ' . $e->getCode() . '): ' . $e->getMessage() . ' at ' . $e->getFile() . ':' . $e->getLine() . $previousText . ')'; - if ($this->includeStacktraces) { - $str .= "\n[stacktrace]\n" . $e->getTraceAsString() . "\n"; - } - return $str; - } - protected function convertToString($data) - { - if (null === $data || \is_bool($data)) { - return \var_export($data, \true); - } - if (\is_scalar($data)) { - return (string) $data; - } - if (\version_compare(\PHP_VERSION, '5.4.0', '>=')) { - return $this->toJson($data, \true); - } - return \str_replace('\\/', '/', $this->toJson($data, \true)); - } - protected function replaceNewlines($str) - { - if ($this->allowInlineLineBreaks) { - if (0 === \strpos($str, '{')) { - return \str_replace(array('\\r', '\\n'), array("\r", "\n"), $str); - } - return $str; - } - return \str_replace(array("\r\n", "\r", "\n"), ' ', $str); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php deleted file mode 100644 index bccbac2..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Formatter; - -/** - * Encodes message information into JSON in a format compatible with Loggly. - * - * @author Adam Pancutt - */ -class LogglyFormatter extends \WPMailSMTP\Vendor\Monolog\Formatter\JsonFormatter -{ - /** - * Overrides the default batch mode to new lines for compatibility with the - * Loggly bulk API. - * - * @param int $batchMode - */ - public function __construct($batchMode = self::BATCH_MODE_NEWLINES, $appendNewline = \false) - { - parent::__construct($batchMode, $appendNewline); - } - /** - * 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) - { - if (isset($record["datetime"]) && $record["datetime"] instanceof \DateTime) { - $record["timestamp"] = $record["datetime"]->format("Y-m-d\\TH:i:s.uO"); - // TODO 2.0 unset the 'datetime' parameter, retained for BC - } - return parent::format($record); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php deleted file mode 100644 index 57295cd..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php +++ /dev/null @@ -1,143 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Formatter; - -/** - * Serializes a log message to Logstash Event Format - * - * @see http://logstash.net/ - * @see https://github.com/logstash/logstash/blob/master/lib/logstash/event.rb - * - * @author Tim Mower - */ -class LogstashFormatter extends \WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter -{ - const V0 = 0; - const V1 = 1; - /** - * @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 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 logstash format version to use - */ - protected $version; - /** - * @param string $applicationName the application that sends the data, used as the "type" field of logstash - * @param string $systemName the system/machine name, used as the "source" field of logstash, defaults to the hostname of the machine - * @param string $extraPrefix prefix for extra keys inside logstash "fields" - * @param string $contextPrefix prefix for context keys inside logstash "fields", defaults to ctxt_ - * @param int $version the logstash format version to use, defaults to 0 - */ - public function __construct($applicationName, $systemName = null, $extraPrefix = null, $contextPrefix = 'ctxt_', $version = self::V0) - { - // logstash requires a ISO 8601 format date with optional millisecond precision. - parent::__construct('Y-m-d\\TH:i:s.uP'); - $this->systemName = $systemName ?: \gethostname(); - $this->applicationName = $applicationName; - $this->extraPrefix = $extraPrefix; - $this->contextPrefix = $contextPrefix; - $this->version = $version; - } - /** - * {@inheritdoc} - */ - public function format(array $record) - { - $record = parent::format($record); - if ($this->version === self::V1) { - $message = $this->formatV1($record); - } else { - $message = $this->formatV0($record); - } - return $this->toJson($message) . "\n"; - } - protected function formatV0(array $record) - { - if (empty($record['datetime'])) { - $record['datetime'] = \gmdate('c'); - } - $message = array('@timestamp' => $record['datetime'], '@source' => $this->systemName, '@fields' => array()); - if (isset($record['message'])) { - $message['@message'] = $record['message']; - } - if (isset($record['channel'])) { - $message['@tags'] = array($record['channel']); - $message['@fields']['channel'] = $record['channel']; - } - if (isset($record['level'])) { - $message['@fields']['level'] = $record['level']; - } - if ($this->applicationName) { - $message['@type'] = $this->applicationName; - } - if (isset($record['extra']['server'])) { - $message['@source_host'] = $record['extra']['server']; - } - if (isset($record['extra']['url'])) { - $message['@source_path'] = $record['extra']['url']; - } - if (!empty($record['extra'])) { - foreach ($record['extra'] as $key => $val) { - $message['@fields'][$this->extraPrefix . $key] = $val; - } - } - if (!empty($record['context'])) { - foreach ($record['context'] as $key => $val) { - $message['@fields'][$this->contextPrefix . $key] = $val; - } - } - return $message; - } - protected function formatV1(array $record) - { - if (empty($record['datetime'])) { - $record['datetime'] = \gmdate('c'); - } - $message = array('@timestamp' => $record['datetime'], '@version' => 1, 'host' => $this->systemName); - if (isset($record['message'])) { - $message['message'] = $record['message']; - } - if (isset($record['channel'])) { - $message['type'] = $record['channel']; - $message['channel'] = $record['channel']; - } - if (isset($record['level_name'])) { - $message['level'] = $record['level_name']; - } - if ($this->applicationName) { - $message['type'] = $this->applicationName; - } - if (!empty($record['extra'])) { - foreach ($record['extra'] as $key => $val) { - $message[$this->extraPrefix . $key] = $val; - } - } - if (!empty($record['context'])) { - foreach ($record['context'] as $key => $val) { - $message[$this->contextPrefix . $key] = $val; - } - } - return $message; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php deleted file mode 100644 index 1d23041..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php +++ /dev/null @@ -1,88 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Formatter; - -use WPMailSMTP\Vendor\Monolog\Utils; -/** - * Formats a record for use with the MongoDBHandler. - * - * @author Florian Plattner - */ -class MongoDBFormatter implements \WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface -{ - private $exceptionTraceAsString; - private $maxNestingLevel; - /** - * @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($maxNestingLevel = 3, $exceptionTraceAsString = \true) - { - $this->maxNestingLevel = \max($maxNestingLevel, 0); - $this->exceptionTraceAsString = (bool) $exceptionTraceAsString; - } - /** - * {@inheritDoc} - */ - public function format(array $record) - { - return $this->formatArray($record); - } - /** - * {@inheritDoc} - */ - public function formatBatch(array $records) - { - foreach ($records as $key => $record) { - $records[$key] = $this->format($record); - } - return $records; - } - protected function formatArray(array $record, $nestingLevel = 0) - { - if ($this->maxNestingLevel == 0 || $nestingLevel <= $this->maxNestingLevel) { - foreach ($record as $name => $value) { - if ($value instanceof \DateTime) { - $record[$name] = $this->formatDate($value, $nestingLevel + 1); - } elseif ($value instanceof \Exception) { - $record[$name] = $this->formatException($value, $nestingLevel + 1); - } elseif (\is_array($value)) { - $record[$name] = $this->formatArray($value, $nestingLevel + 1); - } elseif (\is_object($value)) { - $record[$name] = $this->formatObject($value, $nestingLevel + 1); - } - } - } else { - $record = '[...]'; - } - return $record; - } - protected function formatObject($value, $nestingLevel) - { - $objectVars = \get_object_vars($value); - $objectVars['class'] = \WPMailSMTP\Vendor\Monolog\Utils::getClass($value); - return $this->formatArray($objectVars, $nestingLevel); - } - protected function formatException(\Exception $exception, $nestingLevel) - { - $formattedException = array('class' => \WPMailSMTP\Vendor\Monolog\Utils::getClass($exception), 'message' => $exception->getMessage(), 'code' => (int) $exception->getCode(), 'file' => $exception->getFile() . ':' . $exception->getLine()); - if ($this->exceptionTraceAsString === \true) { - $formattedException['trace'] = $exception->getTraceAsString(); - } else { - $formattedException['trace'] = $exception->getTrace(); - } - return $this->formatArray($formattedException, $nestingLevel); - } - protected function formatDate(\DateTime $value, $nestingLevel) - { - return new \MongoDate($value->getTimestamp()); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php deleted file mode 100644 index af9be95..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php +++ /dev/null @@ -1,146 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Formatter; - -use Exception; -use WPMailSMTP\Vendor\Monolog\Utils; -/** - * Normalizes incoming records to remove objects/resources so it's easier to dump to various targets - * - * @author Jordi Boggiano - */ -class NormalizerFormatter implements \WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface -{ - const SIMPLE_DATE = "Y-m-d H:i:s"; - protected $dateFormat; - /** - * @param string $dateFormat The format of the timestamp: one supported by DateTime::format - */ - public function __construct($dateFormat = null) - { - $this->dateFormat = $dateFormat ?: static::SIMPLE_DATE; - if (!\function_exists('json_encode')) { - throw new \RuntimeException('PHP\'s json extension is required to use Monolog\'s NormalizerFormatter'); - } - } - /** - * {@inheritdoc} - */ - public function format(array $record) - { - return $this->normalize($record); - } - /** - * {@inheritdoc} - */ - public function formatBatch(array $records) - { - foreach ($records as $key => $record) { - $records[$key] = $this->format($record); - } - return $records; - } - protected function normalize($data, $depth = 0) - { - if ($depth > 9) { - return 'Over 9 levels deep, aborting normalization'; - } - if (null === $data || \is_scalar($data)) { - if (\is_float($data)) { - if (\is_infinite($data)) { - return ($data > 0 ? '' : '-') . 'INF'; - } - if (\is_nan($data)) { - return 'NaN'; - } - } - return $data; - } - if (\is_array($data)) { - $normalized = array(); - $count = 1; - foreach ($data as $key => $value) { - if ($count++ > 1000) { - $normalized['...'] = 'Over 1000 items (' . \count($data) . ' total), aborting normalization'; - break; - } - $normalized[$key] = $this->normalize($value, $depth + 1); - } - return $normalized; - } - if ($data instanceof \DateTime) { - return $data->format($this->dateFormat); - } - if (\is_object($data)) { - // TODO 2.0 only check for Throwable - if ($data instanceof \Exception || \PHP_VERSION_ID > 70000 && $data instanceof \Throwable) { - return $this->normalizeException($data); - } - // non-serializable objects that implement __toString stringified - if (\method_exists($data, '__toString') && !$data instanceof \JsonSerializable) { - $value = $data->__toString(); - } else { - // the rest is json-serialized in some way - $value = $this->toJson($data, \true); - } - return \sprintf("[object] (%s: %s)", \WPMailSMTP\Vendor\Monolog\Utils::getClass($data), $value); - } - if (\is_resource($data)) { - return \sprintf('[resource] (%s)', \get_resource_type($data)); - } - return '[unknown(' . \gettype($data) . ')]'; - } - protected function normalizeException($e) - { - // TODO 2.0 only check for Throwable - if (!$e instanceof \Exception && !$e instanceof \Throwable) { - throw new \InvalidArgumentException('Exception/Throwable expected, got ' . \gettype($e) . ' / ' . \WPMailSMTP\Vendor\Monolog\Utils::getClass($e)); - } - $data = array('class' => \WPMailSMTP\Vendor\Monolog\Utils::getClass($e), 'message' => $e->getMessage(), 'code' => (int) $e->getCode(), 'file' => $e->getFile() . ':' . $e->getLine()); - if ($e instanceof \SoapFault) { - if (isset($e->faultcode)) { - $data['faultcode'] = $e->faultcode; - } - if (isset($e->faultactor)) { - $data['faultactor'] = $e->faultactor; - } - if (isset($e->detail)) { - if (\is_string($e->detail)) { - $data['detail'] = $e->detail; - } elseif (\is_object($e->detail) || \is_array($e->detail)) { - $data['detail'] = $this->toJson($e->detail, \true); - } - } - } - $trace = $e->getTrace(); - foreach ($trace as $frame) { - if (isset($frame['file'])) { - $data['trace'][] = $frame['file'] . ':' . $frame['line']; - } - } - if ($previous = $e->getPrevious()) { - $data['previous'] = $this->normalizeException($previous); - } - return $data; - } - /** - * Return the JSON representation of a value - * - * @param mixed $data - * @param bool $ignoreErrors - * @throws \RuntimeException if encoding fails and errors are not ignored - * @return string - */ - protected function toJson($data, $ignoreErrors = \false) - { - return \WPMailSMTP\Vendor\Monolog\Utils::jsonEncode($data, null, $ignoreErrors); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php deleted file mode 100644 index 584b9c2..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Formatter; - -/** - * Formats data into an associative array of scalar values. - * Objects and arrays will be JSON encoded. - * - * @author Andrew Lawson - */ -class ScalarFormatter extends \WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter -{ - /** - * {@inheritdoc} - */ - public function format(array $record) - { - foreach ($record as $key => $value) { - $record[$key] = $this->normalizeValue($value); - } - return $record; - } - /** - * @param mixed $value - * @return mixed - */ - protected function normalizeValue($value) - { - $normalized = $this->normalize($value); - if (\is_array($normalized) || \is_object($normalized)) { - return $this->toJson($normalized, \true); - } - return $normalized; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php deleted file mode 100644 index c3133df..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php +++ /dev/null @@ -1,81 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Formatter; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * Serializes a log message according to Wildfire's header requirements - * - * @author Eric Clemmons (@ericclemmons) - * @author Christophe Coevoet - * @author Kirill chEbba Chebunin - */ -class WildfireFormatter extends \WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter -{ - const TABLE = 'table'; - /** - * Translates Monolog log levels to Wildfire levels. - */ - private $logLevels = array(\WPMailSMTP\Vendor\Monolog\Logger::DEBUG => 'LOG', \WPMailSMTP\Vendor\Monolog\Logger::INFO => 'INFO', \WPMailSMTP\Vendor\Monolog\Logger::NOTICE => 'INFO', \WPMailSMTP\Vendor\Monolog\Logger::WARNING => 'WARN', \WPMailSMTP\Vendor\Monolog\Logger::ERROR => 'ERROR', \WPMailSMTP\Vendor\Monolog\Logger::CRITICAL => 'ERROR', \WPMailSMTP\Vendor\Monolog\Logger::ALERT => 'ERROR', \WPMailSMTP\Vendor\Monolog\Logger::EMERGENCY => 'ERROR'); - /** - * {@inheritdoc} - */ - public function format(array $record) - { - // Retrieve the line and file if set and remove them from the formatted extra - $file = $line = ''; - if (isset($record['extra']['file'])) { - $file = $record['extra']['file']; - unset($record['extra']['file']); - } - if (isset($record['extra']['line'])) { - $line = $record['extra']['line']; - unset($record['extra']['line']); - } - $record = $this->normalize($record); - $message = array('message' => $record['message']); - $handleError = \false; - if ($record['context']) { - $message['context'] = $record['context']; - $handleError = \true; - } - if ($record['extra']) { - $message['extra'] = $record['extra']; - $handleError = \true; - } - if (\count($message) === 1) { - $message = \reset($message); - } - if (isset($record['context'][self::TABLE])) { - $type = 'TABLE'; - $label = $record['channel'] . ': ' . $record['message']; - $message = $record['context'][self::TABLE]; - } else { - $type = $this->logLevels[$record['level']]; - $label = $record['channel']; - } - // Create JSON object describing the appearance of the message in the console - $json = $this->toJson(array(array('Type' => $type, 'File' => $file, 'Line' => $line, 'Label' => $label), $message), $handleError); - // The message itself is a serialization of the above JSON object + it's length - return \sprintf('%s|%s|', \strlen($json), $json); - } - public function formatBatch(array $records) - { - throw new \BadMethodCallException('Batch formatting does not make sense for the WildfireFormatter'); - } - protected function normalize($data, $depth = 0) - { - if (\is_object($data) && !$data instanceof \DateTime) { - return $data; - } - return parent::normalize($data, $depth); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractHandler.php deleted file mode 100644 index 3679b7e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractHandler.php +++ /dev/null @@ -1,172 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -use WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter; -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\ResettableInterface; -/** - * Base Handler class providing the Handler structure - * - * @author Jordi Boggiano - */ -abstract class AbstractHandler implements \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface, \WPMailSMTP\Vendor\Monolog\ResettableInterface -{ - protected $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG; - protected $bubble = \true; - /** - * @var FormatterInterface - */ - protected $formatter; - protected $processors = array(); - /** - * @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 - */ - public function __construct($level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - $this->setLevel($level); - $this->bubble = $bubble; - } - /** - * {@inheritdoc} - */ - public function isHandling(array $record) - { - return $record['level'] >= $this->level; - } - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - foreach ($records as $record) { - $this->handle($record); - } - } - /** - * Closes the handler. - * - * This will be called automatically when the object is destroyed - */ - public function close() - { - } - /** - * {@inheritdoc} - */ - public function pushProcessor($callback) - { - if (!\is_callable($callback)) { - throw new \InvalidArgumentException('Processors must be valid callables (callback or object with an __invoke method), ' . \var_export($callback, \true) . ' given'); - } - \array_unshift($this->processors, $callback); - return $this; - } - /** - * {@inheritdoc} - */ - public function popProcessor() - { - if (!$this->processors) { - throw new \LogicException('You tried to pop from an empty processor stack.'); - } - return \array_shift($this->processors); - } - /** - * {@inheritdoc} - */ - public function setFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter) - { - $this->formatter = $formatter; - return $this; - } - /** - * {@inheritdoc} - */ - public function getFormatter() - { - if (!$this->formatter) { - $this->formatter = $this->getDefaultFormatter(); - } - return $this->formatter; - } - /** - * Sets minimum logging level at which this handler will be triggered. - * - * @param int|string $level Level or level name - * @return self - */ - public function setLevel($level) - { - $this->level = \WPMailSMTP\Vendor\Monolog\Logger::toMonologLevel($level); - return $this; - } - /** - * Gets minimum logging level at which this handler will be triggered. - * - * @return int - */ - public function getLevel() - { - return $this->level; - } - /** - * 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($bubble) - { - $this->bubble = $bubble; - return $this; - } - /** - * Gets the bubbling behavior. - * - * @return bool true means that this handler allows bubbling. - * false means that bubbling is not permitted. - */ - public function getBubble() - { - return $this->bubble; - } - public function __destruct() - { - try { - $this->close(); - } catch (\Exception $e) { - // do nothing - } catch (\Throwable $e) { - // do nothing - } - } - public function reset() - { - foreach ($this->processors as $processor) { - if ($processor instanceof \WPMailSMTP\Vendor\Monolog\ResettableInterface) { - $processor->reset(); - } - } - } - /** - * Gets the default formatter. - * - * @return FormatterInterface - */ - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php deleted file mode 100644 index 5bccefe..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php +++ /dev/null @@ -1,59 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\ResettableInterface; -/** - * Base Handler class providing the Handler structure - * - * Classes extending it should (in most cases) only implement write($record) - * - * @author Jordi Boggiano - * @author Christophe Coevoet - */ -abstract class AbstractProcessingHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractHandler -{ - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if (!$this->isHandling($record)) { - return \false; - } - $record = $this->processRecord($record); - $record['formatted'] = $this->getFormatter()->format($record); - $this->write($record); - return \false === $this->bubble; - } - /** - * Writes the record down to the log of the implementing handler - * - * @param array $record - * @return void - */ - protected abstract function write(array $record); - /** - * Processes a record. - * - * @param array $record - * @return array - */ - protected function processRecord(array $record) - { - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = \call_user_func($processor, $record); - } - } - return $record; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php deleted file mode 100644 index fd3b3bd..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php +++ /dev/null @@ -1,79 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter; -/** - * Common syslog functionality - */ -abstract class AbstractSyslogHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - protected $facility; - /** - * Translates Monolog log levels to syslog log priorities. - */ - protected $logLevels = array(\WPMailSMTP\Vendor\Monolog\Logger::DEBUG => \LOG_DEBUG, \WPMailSMTP\Vendor\Monolog\Logger::INFO => \LOG_INFO, \WPMailSMTP\Vendor\Monolog\Logger::NOTICE => \LOG_NOTICE, \WPMailSMTP\Vendor\Monolog\Logger::WARNING => \LOG_WARNING, \WPMailSMTP\Vendor\Monolog\Logger::ERROR => \LOG_ERR, \WPMailSMTP\Vendor\Monolog\Logger::CRITICAL => \LOG_CRIT, \WPMailSMTP\Vendor\Monolog\Logger::ALERT => \LOG_ALERT, \WPMailSMTP\Vendor\Monolog\Logger::EMERGENCY => \LOG_EMERG); - /** - * List of valid log facility names. - */ - protected $facilities = array('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 mixed $facility - * @param int $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 - */ - public function __construct($facility = \LOG_USER, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - parent::__construct($level, $bubble); - if (!\defined('PHP_WINDOWS_VERSION_BUILD')) { - $this->facilities['local0'] = \LOG_LOCAL0; - $this->facilities['local1'] = \LOG_LOCAL1; - $this->facilities['local2'] = \LOG_LOCAL2; - $this->facilities['local3'] = \LOG_LOCAL3; - $this->facilities['local4'] = \LOG_LOCAL4; - $this->facilities['local5'] = \LOG_LOCAL5; - $this->facilities['local6'] = \LOG_LOCAL6; - $this->facilities['local7'] = \LOG_LOCAL7; - } else { - $this->facilities['local0'] = 128; - // LOG_LOCAL0 - $this->facilities['local1'] = 136; - // LOG_LOCAL1 - $this->facilities['local2'] = 144; - // LOG_LOCAL2 - $this->facilities['local3'] = 152; - // LOG_LOCAL3 - $this->facilities['local4'] = 160; - // LOG_LOCAL4 - $this->facilities['local5'] = 168; - // LOG_LOCAL5 - $this->facilities['local6'] = 176; - // LOG_LOCAL6 - $this->facilities['local7'] = 184; - // LOG_LOCAL7 - } - // convert textual description of facility to syslog constant - if (\array_key_exists(\strtolower($facility), $this->facilities)) { - $facility = $this->facilities[\strtolower($facility)]; - } elseif (!\in_array($facility, \array_values($this->facilities), \true)) { - throw new \UnexpectedValueException('Unknown facility value "' . $facility . '" given'); - } - $this->facility = $facility; - } - /** - * {@inheritdoc} - */ - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter('%channel%.%level_name%: %message% %context% %extra%'); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AmqpHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AmqpHandler.php deleted file mode 100644 index aa18d5c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/AmqpHandler.php +++ /dev/null @@ -1,109 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Formatter\JsonFormatter; -use WPMailSMTP\Vendor\PhpAmqpLib\Message\AMQPMessage; -use WPMailSMTP\Vendor\PhpAmqpLib\Channel\AMQPChannel; -use AMQPExchange; -class AmqpHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - /** - * @var AMQPExchange|AMQPChannel $exchange - */ - protected $exchange; - /** - * @var string - */ - protected $exchangeName; - /** - * @param AMQPExchange|AMQPChannel $exchange AMQPExchange (php AMQP ext) or PHP AMQP lib channel, ready for use - * @param string $exchangeName - * @param int $level - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($exchange, $exchangeName = 'log', $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - if ($exchange instanceof \AMQPExchange) { - $exchange->setName($exchangeName); - } elseif ($exchange instanceof \WPMailSMTP\Vendor\PhpAmqpLib\Channel\AMQPChannel) { - $this->exchangeName = $exchangeName; - } else { - throw new \InvalidArgumentException('PhpAmqpLib\\Channel\\AMQPChannel or AMQPExchange instance required'); - } - $this->exchange = $exchange; - parent::__construct($level, $bubble); - } - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - $data = $record["formatted"]; - $routingKey = $this->getRoutingKey($record); - if ($this->exchange instanceof \AMQPExchange) { - $this->exchange->publish($data, $routingKey, 0, array('delivery_mode' => 2, 'content_type' => 'application/json')); - } else { - $this->exchange->basic_publish($this->createAmqpMessage($data), $this->exchangeName, $routingKey); - } - } - /** - * {@inheritDoc} - */ - public function handleBatch(array $records) - { - if ($this->exchange instanceof \AMQPExchange) { - parent::handleBatch($records); - return; - } - foreach ($records as $record) { - if (!$this->isHandling($record)) { - continue; - } - $record = $this->processRecord($record); - $data = $this->getFormatter()->format($record); - $this->exchange->batch_basic_publish($this->createAmqpMessage($data), $this->exchangeName, $this->getRoutingKey($record)); - } - $this->exchange->publish_batch(); - } - /** - * Gets the routing key for the AMQP exchange - * - * @param array $record - * @return string - */ - protected function getRoutingKey(array $record) - { - $routingKey = \sprintf( - '%s.%s', - // TODO 2.0 remove substr call - \substr($record['level_name'], 0, 4), - $record['channel'] - ); - return \strtolower($routingKey); - } - /** - * @param string $data - * @return AMQPMessage - */ - private function createAmqpMessage($data) - { - return new \WPMailSMTP\Vendor\PhpAmqpLib\Message\AMQPMessage((string) $data, array('delivery_mode' => 2, 'content_type' => 'application/json')); - } - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\JsonFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\JsonFormatter::BATCH_MODE_JSON, \false); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php deleted file mode 100644 index 1572000..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php +++ /dev/null @@ -1,204 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter; -/** - * Handler sending logs to browser's javascript console with no browser extension required - * - * @author Olivier Poitrey - */ -class BrowserConsoleHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - protected static $initialized = \false; - protected static $records = array(); - /** - * {@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() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter('[[%channel%]]{macro: autolabel} [[%level_name%]]{font-weight: bold} %message%'); - } - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - // Accumulate records - static::$records[] = $record; - // Register shutdown handler if not already done - if (!static::$initialized) { - static::$initialized = \true; - $this->registerShutdownFunction(); - } - } - /** - * 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() - { - $format = static::getResponseFormat(); - if ($format === 'unknown') { - return; - } - if (\count(static::$records)) { - if ($format === 'html') { - static::writeOutput(''); - } elseif ($format === 'js') { - static::writeOutput(static::generateScript()); - } - static::resetStatic(); - } - } - public function close() - { - self::resetStatic(); - } - public function reset() - { - self::resetStatic(); - } - /** - * Forget all logged records - */ - public static function resetStatic() - { - static::$records = array(); - } - /** - * Wrapper for register_shutdown_function to allow overriding - */ - protected function registerShutdownFunction() - { - if (\PHP_SAPI !== 'cli') { - \register_shutdown_function(array('WPMailSMTP\\Vendor\\Monolog\\Handler\\BrowserConsoleHandler', 'send')); - } - } - /** - * Wrapper for echo to allow overriding - * - * @param string $str - */ - protected static function writeOutput($str) - { - echo $str; - } - /** - * 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' - */ - protected static function getResponseFormat() - { - // Check content type - foreach (\headers_list() as $header) { - if (\stripos($header, 'content-type:') === 0) { - // This handler only works with HTML and javascript outputs - // text/javascript is obsolete in favour of application/javascript, but still used - if (\stripos($header, 'application/javascript') !== \false || \stripos($header, 'text/javascript') !== \false) { - return 'js'; - } - if (\stripos($header, 'text/html') === \false) { - return 'unknown'; - } - break; - } - } - return 'html'; - } - private static function generateScript() - { - $script = array(); - foreach (static::$records as $record) { - $context = static::dump('Context', $record['context']); - $extra = static::dump('Extra', $record['extra']); - if (empty($context) && empty($extra)) { - $script[] = static::call_array('log', static::handleStyles($record['formatted'])); - } else { - $script = \array_merge($script, array(static::call_array('groupCollapsed', static::handleStyles($record['formatted']))), $context, $extra, array(static::call('groupEnd'))); - } - } - return "(function (c) {if (c && c.groupCollapsed) {\n" . \implode("\n", $script) . "\n}})(console);"; - } - private static function handleStyles($formatted) - { - $args = array(); - $format = '%c' . $formatted; - \preg_match_all('/\\[\\[(.*?)\\]\\]\\{([^}]*)\\}/s', $format, $matches, \PREG_OFFSET_CAPTURE | \PREG_SET_ORDER); - foreach (\array_reverse($matches) as $match) { - $args[] = '"font-weight: normal"'; - $args[] = static::quote(static::handleCustomStyles($match[2][0], $match[1][0])); - $pos = $match[0][1]; - $format = \substr($format, 0, $pos) . '%c' . $match[1][0] . '%c' . \substr($format, $pos + \strlen($match[0][0])); - } - $args[] = static::quote('font-weight: normal'); - $args[] = static::quote($format); - return \array_reverse($args); - } - private static function handleCustomStyles($style, $string) - { - static $colors = array('blue', 'green', 'red', 'magenta', 'orange', 'black', 'grey'); - static $labels = array(); - return \preg_replace_callback('/macro\\s*:(.*?)(?:;|$)/', function ($m) use($string, &$colors, &$labels) { - if (\trim($m[1]) === 'autolabel') { - // Format the string as a label with consistent auto assigned background color - if (!isset($labels[$string])) { - $labels[$string] = $colors[\count($labels) % \count($colors)]; - } - $color = $labels[$string]; - return "background-color: {$color}; color: white; border-radius: 3px; padding: 0 2px 0 2px"; - } - return $m[1]; - }, $style); - } - private static function dump($title, array $dict) - { - $script = array(); - $dict = \array_filter($dict); - if (empty($dict)) { - return $script; - } - $script[] = static::call('log', static::quote('%c%s'), static::quote('font-weight: bold'), static::quote($title)); - foreach ($dict as $key => $value) { - $value = \json_encode($value); - if (empty($value)) { - $value = static::quote(''); - } - $script[] = static::call('log', static::quote('%s: %o'), static::quote($key), $value); - } - return $script; - } - private static function quote($arg) - { - return '"' . \addcslashes($arg, "\"\n\\") . '"'; - } - private static function call() - { - $args = \func_get_args(); - $method = \array_shift($args); - return static::call_array($method, $args); - } - private static function call_array($method, array $args) - { - return 'c.' . $method . '(' . \implode(', ', $args) . ');'; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BufferHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BufferHandler.php deleted file mode 100644 index 7b7000e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/BufferHandler.php +++ /dev/null @@ -1,128 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\ResettableInterface; -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -/** - * 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 - */ -class BufferHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractHandler -{ - protected $handler; - protected $bufferSize = 0; - protected $bufferLimit; - protected $flushOnOverflow; - protected $buffer = array(); - 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 int $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 - * @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(\WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface $handler, $bufferLimit = 0, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true, $flushOnOverflow = \false) - { - parent::__construct($level, $bubble); - $this->handler = $handler; - $this->bufferLimit = (int) $bufferLimit; - $this->flushOnOverflow = $flushOnOverflow; - } - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if ($record['level'] < $this->level) { - return \false; - } - if (!$this->initialized) { - // __destructor() doesn't get called on Fatal errors - \register_shutdown_function(array($this, 'close')); - $this->initialized = \true; - } - if ($this->bufferLimit > 0 && $this->bufferSize === $this->bufferLimit) { - if ($this->flushOnOverflow) { - $this->flush(); - } else { - \array_shift($this->buffer); - $this->bufferSize--; - } - } - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = \call_user_func($processor, $record); - } - } - $this->buffer[] = $record; - $this->bufferSize++; - return \false === $this->bubble; - } - public function flush() - { - if ($this->bufferSize === 0) { - return; - } - $this->handler->handleBatch($this->buffer); - $this->clear(); - } - public function __destruct() - { - // suppress the parent behavior since we already have register_shutdown_function() - // to call close(), and the reference contained there will prevent this from being - // GC'd until the end of the request - } - /** - * {@inheritdoc} - */ - public function close() - { - $this->flush(); - } - /** - * Clears the buffer without flushing any messages down to the wrapped handler. - */ - public function clear() - { - $this->bufferSize = 0; - $this->buffer = array(); - } - public function reset() - { - $this->flush(); - parent::reset(); - if ($this->handler instanceof \WPMailSMTP\Vendor\Monolog\ResettableInterface) { - $this->handler->reset(); - } - } - /** - * {@inheritdoc} - */ - public function setFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter) - { - $this->handler->setFormatter($formatter); - return $this; - } - /** - * {@inheritdoc} - */ - public function getFormatter() - { - return $this->handler->getFormatter(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php deleted file mode 100644 index 6d195dc..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php +++ /dev/null @@ -1,171 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\ChromePHPFormatter; -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Utils; -/** - * Handler sending logs to the ChromePHP extension (http://www.chromephp.com/) - * - * This also works out of the box with Firefox 43+ - * - * @author Christophe Coevoet - */ -class ChromePHPHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - /** - * Version of the extension - */ - const VERSION = '4.0'; - /** - * Header name - */ - const HEADER_NAME = 'X-ChromeLogger-Data'; - /** - * Regular expression to detect supported browsers (matches any Chrome, or Firefox 43+) - */ - const USER_AGENT_REGEX = '{\\b(?:Chrome/\\d+(?:\\.\\d+)*|HeadlessChrome|Firefox/(?:4[3-9]|[5-9]\\d|\\d{3,})(?:\\.\\d)*)\\b}'; - 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; - protected static $json = array('version' => self::VERSION, 'columns' => array('label', 'log', 'backtrace', 'type'), 'rows' => array()); - protected static $sendHeaders = \true; - /** - * @param int $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 - */ - public function __construct($level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - parent::__construct($level, $bubble); - if (!\function_exists('json_encode')) { - throw new \RuntimeException('PHP\'s json extension is required to use Monolog\'s ChromePHPHandler'); - } - } - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - $messages = array(); - foreach ($records as $record) { - if ($record['level'] < $this->level) { - continue; - } - $messages[] = $this->processRecord($record); - } - if (!empty($messages)) { - $messages = $this->getFormatter()->formatBatch($messages); - self::$json['rows'] = \array_merge(self::$json['rows'], $messages); - $this->send(); - } - } - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\ChromePHPFormatter(); - } - /** - * Creates & sends header for a record - * - * @see sendHeader() - * @see send() - * @param array $record - */ - protected function write(array $record) - { - self::$json['rows'][] = $record['formatted']; - $this->send(); - } - /** - * Sends the log header - * - * @see sendHeader() - */ - protected function send() - { - if (self::$overflowed || !self::$sendHeaders) { - return; - } - if (!self::$initialized) { - self::$initialized = \true; - self::$sendHeaders = $this->headersAccepted(); - if (!self::$sendHeaders) { - return; - } - self::$json['request_uri'] = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; - } - $json = \WPMailSMTP\Vendor\Monolog\Utils::jsonEncode(self::$json, null, \true); - $data = \base64_encode(\utf8_encode($json)); - if (\strlen($data) > 3 * 1024) { - self::$overflowed = \true; - $record = array('message' => 'Incomplete logs, chrome header size limit reached', 'context' => array(), 'level' => \WPMailSMTP\Vendor\Monolog\Logger::WARNING, 'level_name' => \WPMailSMTP\Vendor\Monolog\Logger::getLevelName(\WPMailSMTP\Vendor\Monolog\Logger::WARNING), 'channel' => 'monolog', 'datetime' => new \DateTime(), 'extra' => array()); - self::$json['rows'][\count(self::$json['rows']) - 1] = $this->getFormatter()->format($record); - $json = \WPMailSMTP\Vendor\Monolog\Utils::jsonEncode(self::$json, null, \true); - $data = \base64_encode(\utf8_encode($json)); - } - if (\trim($data) !== '') { - $this->sendHeader(self::HEADER_NAME, $data); - } - } - /** - * Send header string to the client - * - * @param string $header - * @param string $content - */ - protected function sendHeader($header, $content) - { - if (!\headers_sent() && self::$sendHeaders) { - \header(\sprintf('%s: %s', $header, $content)); - } - } - /** - * Verifies if the headers are accepted by the current user agent - * - * @return bool - */ - protected function headersAccepted() - { - if (empty($_SERVER['HTTP_USER_AGENT'])) { - return \false; - } - return \preg_match(self::USER_AGENT_REGEX, $_SERVER['HTTP_USER_AGENT']); - } - /** - * BC getter for the sendHeaders property that has been made static - */ - public function __get($property) - { - if ('sendHeaders' !== $property) { - throw new \InvalidArgumentException('Undefined property ' . $property); - } - return static::$sendHeaders; - } - /** - * BC setter for the sendHeaders property that has been made static - */ - public function __set($property, $value) - { - if ('sendHeaders' !== $property) { - throw new \InvalidArgumentException('Undefined property ' . $property); - } - static::$sendHeaders = $value; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php deleted file mode 100644 index 243e7d5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\JsonFormatter; -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * CouchDB handler - * - * @author Markus Bachmann - */ -class CouchDBHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - private $options; - public function __construct(array $options = array(), $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - $this->options = \array_merge(array('host' => 'localhost', 'port' => 5984, 'dbname' => 'logger', 'username' => null, 'password' => null), $options); - parent::__construct($level, $bubble); - } - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - $basicAuth = null; - if ($this->options['username']) { - $basicAuth = \sprintf('%s:%s@', $this->options['username'], $this->options['password']); - } - $url = 'http://' . $basicAuth . $this->options['host'] . ':' . $this->options['port'] . '/' . $this->options['dbname']; - $context = \stream_context_create(array('http' => array('method' => 'POST', 'content' => $record['formatted'], 'ignore_errors' => \true, 'max_redirects' => 0, 'header' => 'Content-type: application/json'))); - if (\false === @\file_get_contents($url, null, $context)) { - throw new \RuntimeException(\sprintf('Could not connect to %s', $url)); - } - } - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\JsonFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\JsonFormatter::BATCH_MODE_JSON, \false); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CubeHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CubeHandler.php deleted file mode 100644 index f63a602..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/CubeHandler.php +++ /dev/null @@ -1,123 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Utils; -/** - * Logs to Cube. - * - * @link http://square.github.com/cube/ - * @author Wan Chen - */ -class CubeHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - private $udpConnection; - private $httpConnection; - private $scheme; - private $host; - private $port; - private $acceptedSchemes = array('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($url, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - $urlInfo = \parse_url($url); - if (!isset($urlInfo['scheme'], $urlInfo['host'], $urlInfo['port'])) { - throw new \UnexpectedValueException('URL "' . $url . '" is not valid'); - } - if (!\in_array($urlInfo['scheme'], $this->acceptedSchemes)) { - throw new \UnexpectedValueException('Invalid protocol (' . $urlInfo['scheme'] . ').' . ' Valid options are ' . \implode(', ', $this->acceptedSchemes)); - } - $this->scheme = $urlInfo['scheme']; - $this->host = $urlInfo['host']; - $this->port = $urlInfo['port']; - parent::__construct($level, $bubble); - } - /** - * 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() - { - if (!\extension_loaded('sockets')) { - throw new \WPMailSMTP\Vendor\Monolog\Handler\MissingExtensionException('The sockets extension is required to use udp URLs with the CubeHandler'); - } - $this->udpConnection = \socket_create(\AF_INET, \SOCK_DGRAM, 0); - if (!$this->udpConnection) { - throw new \LogicException('Unable to create a socket'); - } - if (!\socket_connect($this->udpConnection, $this->host, $this->port)) { - throw new \LogicException('Unable to connect to the socket at ' . $this->host . ':' . $this->port); - } - } - /** - * Establish a connection to a http server - * @throws \LogicException when no curl extension - */ - protected function connectHttp() - { - if (!\extension_loaded('curl')) { - throw new \LogicException('The curl extension is needed to use http URLs with the CubeHandler'); - } - $this->httpConnection = \curl_init('http://' . $this->host . ':' . $this->port . '/1.0/event/put'); - if (!$this->httpConnection) { - throw new \LogicException('Unable to connect to ' . $this->host . ':' . $this->port); - } - \curl_setopt($this->httpConnection, \CURLOPT_CUSTOMREQUEST, "POST"); - \curl_setopt($this->httpConnection, \CURLOPT_RETURNTRANSFER, \true); - } - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $date = $record['datetime']; - $data = array('time' => $date->format('Y-m-d\\TH:i:s.uO')); - unset($record['datetime']); - if (isset($record['context']['type'])) { - $data['type'] = $record['context']['type']; - unset($record['context']['type']); - } else { - $data['type'] = $record['channel']; - } - $data['data'] = $record['context']; - $data['data']['level'] = $record['level']; - if ($this->scheme === 'http') { - $this->writeHttp(\WPMailSMTP\Vendor\Monolog\Utils::jsonEncode($data)); - } else { - $this->writeUdp(\WPMailSMTP\Vendor\Monolog\Utils::jsonEncode($data)); - } - } - private function writeUdp($data) - { - if (!$this->udpConnection) { - $this->connectUdp(); - } - \socket_send($this->udpConnection, $data, \strlen($data), 0); - } - private function writeHttp($data) - { - if (!$this->httpConnection) { - $this->connectHttp(); - } - \curl_setopt($this->httpConnection, \CURLOPT_POSTFIELDS, '[' . $data . ']'); - \curl_setopt($this->httpConnection, \CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' . \strlen('[' . $data . ']'))); - \WPMailSMTP\Vendor\Monolog\Handler\Curl\Util::execute($this->httpConnection, 5, \false); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Curl/Util.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Curl/Util.php deleted file mode 100644 index 8d4353d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Curl/Util.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler\Curl; - -class Util -{ - private static $retriableErrorCodes = array(\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 $ch curl handler - * @throws \RuntimeException - */ - public static function execute($ch, $retries = 5, $closeAfterDone = \true) - { - while ($retries--) { - if (\curl_exec($ch) === \false) { - $curlErrno = \curl_errno($ch); - if (\false === \in_array($curlErrno, self::$retriableErrorCodes, \true) || !$retries) { - $curlError = \curl_error($ch); - if ($closeAfterDone) { - \curl_close($ch); - } - throw new \RuntimeException(\sprintf('Curl error (code %s): %s', $curlErrno, $curlError)); - } - continue; - } - if ($closeAfterDone) { - \curl_close($ch); - } - break; - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php deleted file mode 100644 index 7aa8046..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php +++ /dev/null @@ -1,140 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * 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 - */ -class DeduplicationHandler extends \WPMailSMTP\Vendor\Monolog\Handler\BufferHandler -{ - /** - * @var string - */ - protected $deduplicationStore; - /** - * @var int - */ - 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 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 - */ - public function __construct(\WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface $handler, $deduplicationStore = null, $deduplicationLevel = \WPMailSMTP\Vendor\Monolog\Logger::ERROR, $time = 60, $bubble = \true) - { - parent::__construct($handler, 0, \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble, \false); - $this->deduplicationStore = $deduplicationStore === null ? \sys_get_temp_dir() . '/monolog-dedup-' . \substr(\md5(__FILE__), 0, 20) . '.log' : $deduplicationStore; - $this->deduplicationLevel = \WPMailSMTP\Vendor\Monolog\Logger::toMonologLevel($deduplicationLevel); - $this->time = $time; - } - public function flush() - { - if ($this->bufferSize === 0) { - return; - } - $passthru = null; - foreach ($this->buffer as $record) { - if ($record['level'] >= $this->deduplicationLevel) { - $passthru = $passthru || !$this->isDuplicate($record); - if ($passthru) { - $this->appendRecord($record); - } - } - } - // default of null is valid as well as if no record matches duplicationLevel we just pass through - if ($passthru === \true || $passthru === null) { - $this->handler->handleBatch($this->buffer); - } - $this->clear(); - if ($this->gc) { - $this->collectLogs(); - } - } - private function isDuplicate(array $record) - { - if (!\file_exists($this->deduplicationStore)) { - return \false; - } - $store = \file($this->deduplicationStore, \FILE_IGNORE_NEW_LINES | \FILE_SKIP_EMPTY_LINES); - if (!\is_array($store)) { - return \false; - } - $yesterday = \time() - 86400; - $timestampValidity = $record['datetime']->getTimestamp() - $this->time; - $expectedMessage = \preg_replace('{[\\r\\n].*}', '', $record['message']); - for ($i = \count($store) - 1; $i >= 0; $i--) { - list($timestamp, $level, $message) = \explode(':', $store[$i], 3); - if ($level === $record['level_name'] && $message === $expectedMessage && $timestamp > $timestampValidity) { - return \true; - } - if ($timestamp < $yesterday) { - $this->gc = \true; - } - } - return \false; - } - private function collectLogs() - { - if (!\file_exists($this->deduplicationStore)) { - return \false; - } - $handle = \fopen($this->deduplicationStore, 'rw+'); - \flock($handle, \LOCK_EX); - $validLogs = array(); - $timestampValidity = \time() - $this->time; - while (!\feof($handle)) { - $log = \fgets($handle); - if (\substr($log, 0, 10) >= $timestampValidity) { - $validLogs[] = $log; - } - } - \ftruncate($handle, 0); - \rewind($handle); - foreach ($validLogs as $log) { - \fwrite($handle, $log); - } - \flock($handle, \LOCK_UN); - \fclose($handle); - $this->gc = \false; - } - private function appendRecord(array $record) - { - \file_put_contents($this->deduplicationStore, $record['datetime']->getTimestamp() . ':' . $record['level_name'] . ':' . \preg_replace('{[\\r\\n].*}', '', $record['message']) . "\n", \FILE_APPEND); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php deleted file mode 100644 index b72f6a4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter; -use WPMailSMTP\Vendor\Doctrine\CouchDB\CouchDBClient; -/** - * CouchDB handler for Doctrine CouchDB ODM - * - * @author Markus Bachmann - */ -class DoctrineCouchDBHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - private $client; - public function __construct(\WPMailSMTP\Vendor\Doctrine\CouchDB\CouchDBClient $client, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - $this->client = $client; - parent::__construct($level, $bubble); - } - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - $this->client->postDocument($record['formatted']); - } - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php deleted file mode 100644 index 71e8ad7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php +++ /dev/null @@ -1,91 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Aws\Sdk; -use WPMailSMTP\Vendor\Aws\DynamoDb\DynamoDbClient; -use WPMailSMTP\Vendor\Aws\DynamoDb\Marshaler; -use WPMailSMTP\Vendor\Monolog\Formatter\ScalarFormatter; -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * Amazon DynamoDB handler (http://aws.amazon.com/dynamodb/) - * - * @link https://github.com/aws/aws-sdk-php/ - * @author Andrew Lawson - */ -class DynamoDbHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - 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; - /** - * @param DynamoDbClient $client - * @param string $table - * @param int $level - * @param bool $bubble - */ - public function __construct(\WPMailSMTP\Vendor\Aws\DynamoDb\DynamoDbClient $client, $table, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - if (\defined('Aws\\Sdk::VERSION') && \version_compare(\WPMailSMTP\Vendor\Aws\Sdk::VERSION, '3.0', '>=')) { - $this->version = 3; - $this->marshaler = new \WPMailSMTP\Vendor\Aws\DynamoDb\Marshaler(); - } else { - $this->version = 2; - } - $this->client = $client; - $this->table = $table; - parent::__construct($level, $bubble); - } - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $filtered = $this->filterEmptyFields($record['formatted']); - if ($this->version === 3) { - $formatted = $this->marshaler->marshalItem($filtered); - } else { - $formatted = $this->client->formatAttributes($filtered); - } - $this->client->putItem(array('TableName' => $this->table, 'Item' => $formatted)); - } - /** - * @param array $record - * @return array - */ - protected function filterEmptyFields(array $record) - { - return \array_filter($record, function ($value) { - return !empty($value) || \false === $value || 0 === $value; - }); - } - /** - * {@inheritdoc} - */ - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\ScalarFormatter(self::DATE_FORMAT); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php deleted file mode 100644 index 82d8f57..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php +++ /dev/null @@ -1,117 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -use WPMailSMTP\Vendor\Monolog\Formatter\ElasticaFormatter; -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Elastica\Client; -use WPMailSMTP\Vendor\Elastica\Exception\ExceptionInterface; -/** - * Elastic Search handler - * - * Usage example: - * - * $client = new \Elastica\Client(); - * $options = array( - * 'index' => 'elastic_index_name', - * 'type' => 'elastic_doc_type', - * ); - * $handler = new ElasticSearchHandler($client, $options); - * $log = new Logger('application'); - * $log->pushHandler($handler); - * - * @author Jelle Vink - */ -class ElasticSearchHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - /** - * @var Client - */ - protected $client; - /** - * @var array Handler config options - */ - protected $options = array(); - /** - * @param Client $client Elastica Client object - * @param array $options Handler configuration - * @param int $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 - */ - public function __construct(\WPMailSMTP\Vendor\Elastica\Client $client, array $options = array(), $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - parent::__construct($level, $bubble); - $this->client = $client; - $this->options = \array_merge(array( - 'index' => 'monolog', - // Elastic index name - 'type' => 'record', - // Elastic document type - 'ignore_error' => \false, - ), $options); - } - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - $this->bulkSend(array($record['formatted'])); - } - /** - * {@inheritdoc} - */ - public function setFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter) - { - if ($formatter instanceof \WPMailSMTP\Vendor\Monolog\Formatter\ElasticaFormatter) { - return parent::setFormatter($formatter); - } - throw new \InvalidArgumentException('ElasticSearchHandler is only compatible with ElasticaFormatter'); - } - /** - * Getter options - * @return array - */ - public function getOptions() - { - return $this->options; - } - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\ElasticaFormatter($this->options['index'], $this->options['type']); - } - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - $documents = $this->getFormatter()->formatBatch($records); - $this->bulkSend($documents); - } - /** - * Use Elasticsearch bulk API to send list of documents - * @param array $documents - * @throws \RuntimeException - */ - protected function bulkSend(array $documents) - { - try { - $this->client->addDocuments($documents); - } catch (\WPMailSMTP\Vendor\Elastica\Exception\ExceptionInterface $e) { - if (!$this->options['ignore_error']) { - throw new \RuntimeException("Error sending messages to Elasticsearch", 0, $e); - } - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php deleted file mode 100644 index 9cadc7f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php +++ /dev/null @@ -1,70 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter; -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * Stores to PHP error_log() handler. - * - * @author Elan Ruusamäe - */ -class ErrorLogHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - const OPERATING_SYSTEM = 0; - const SAPI = 4; - protected $messageType; - protected $expandNewlines; - /** - * @param int $messageType Says where the error should go. - * @param int $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 - * @param bool $expandNewlines If set to true, newlines in the message will be expanded to be take multiple log entries - */ - public function __construct($messageType = self::OPERATING_SYSTEM, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true, $expandNewlines = \false) - { - parent::__construct($level, $bubble); - if (\false === \in_array($messageType, self::getAvailableTypes())) { - $message = \sprintf('The given message type "%s" is not supported', \print_r($messageType, \true)); - throw new \InvalidArgumentException($message); - } - $this->messageType = $messageType; - $this->expandNewlines = $expandNewlines; - } - /** - * @return array With all available types - */ - public static function getAvailableTypes() - { - return array(self::OPERATING_SYSTEM, self::SAPI); - } - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter('[%datetime%] %channel%.%level_name%: %message% %context% %extra%'); - } - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - if ($this->expandNewlines) { - $lines = \preg_split('{[\\r\\n]+}', (string) $record['formatted']); - foreach ($lines as $line) { - \error_log($line, $this->messageType); - } - } else { - \error_log((string) $record['formatted'], $this->messageType); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FilterHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FilterHandler.php deleted file mode 100644 index 88089c8..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FilterHandler.php +++ /dev/null @@ -1,152 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -/** - * 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 - */ -class FilterHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractHandler -{ - /** - * Handler or factory callable($record, $this) - * - * @var callable|\Monolog\Handler\HandlerInterface - */ - protected $handler; - /** - * Minimum level for logs that are passed to handler - * - * @var int[] - */ - protected $acceptedLevels; - /** - * Whether the messages that are handled can bubble up the stack or not - * - * @var bool - */ - protected $bubble; - /** - * @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 $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 - */ - public function __construct($handler, $minLevelOrList = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $maxLevel = \WPMailSMTP\Vendor\Monolog\Logger::EMERGENCY, $bubble = \true) - { - $this->handler = $handler; - $this->bubble = $bubble; - $this->setAcceptedLevels($minLevelOrList, $maxLevel); - if (!$this->handler instanceof \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface && !\is_callable($this->handler)) { - throw new \RuntimeException("The given handler (" . \json_encode($this->handler) . ") is not a callable nor a WPMailSMTP\\Vendor\\Monolog\\Handler\\HandlerInterface object"); - } - } - /** - * @return array - */ - public function getAcceptedLevels() - { - return \array_flip($this->acceptedLevels); - } - /** - * @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 - */ - public function setAcceptedLevels($minLevelOrList = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $maxLevel = \WPMailSMTP\Vendor\Monolog\Logger::EMERGENCY) - { - if (\is_array($minLevelOrList)) { - $acceptedLevels = \array_map('WPMailSMTP\\Vendor\\Monolog\\Logger::toMonologLevel', $minLevelOrList); - } else { - $minLevelOrList = \WPMailSMTP\Vendor\Monolog\Logger::toMonologLevel($minLevelOrList); - $maxLevel = \WPMailSMTP\Vendor\Monolog\Logger::toMonologLevel($maxLevel); - $acceptedLevels = \array_values(\array_filter(\WPMailSMTP\Vendor\Monolog\Logger::getLevels(), function ($level) use($minLevelOrList, $maxLevel) { - return $level >= $minLevelOrList && $level <= $maxLevel; - })); - } - $this->acceptedLevels = \array_flip($acceptedLevels); - } - /** - * {@inheritdoc} - */ - public function isHandling(array $record) - { - return isset($this->acceptedLevels[$record['level']]); - } - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if (!$this->isHandling($record)) { - return \false; - } - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = \call_user_func($processor, $record); - } - } - $this->getHandler($record)->handle($record); - return \false === $this->bubble; - } - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - $filtered = array(); - foreach ($records as $record) { - if ($this->isHandling($record)) { - $filtered[] = $record; - } - } - if (\count($filtered) > 0) { - $this->getHandler($filtered[\count($filtered) - 1])->handleBatch($filtered); - } - } - /** - * Return the nested handler - * - * If the handler was provided as a factory callable, this will trigger the handler's instantiation. - * - * @return HandlerInterface - */ - public function getHandler(array $record = null) - { - if (!$this->handler instanceof \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface) { - $this->handler = \call_user_func($this->handler, $record, $this); - if (!$this->handler instanceof \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface) { - throw new \RuntimeException("The factory callable should return a HandlerInterface"); - } - } - return $this->handler; - } - /** - * {@inheritdoc} - */ - public function setFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter) - { - $this->getHandler()->setFormatter($formatter); - return $this; - } - /** - * {@inheritdoc} - */ - public function getFormatter() - { - return $this->getHandler()->getFormatter(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php deleted file mode 100644 index 23a6ee9..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler\FingersCrossed; - -/** - * Interface for activation strategies for the FingersCrossedHandler. - * - * @author Johannes M. Schmitt - */ -interface ActivationStrategyInterface -{ - /** - * Returns whether the given record activates the handler. - * - * @param array $record - * @return bool - */ - public function isHandlerActivated(array $record); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php deleted file mode 100644 index 627d799..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler\FingersCrossed; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * 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 - */ -class ChannelLevelActivationStrategy implements \WPMailSMTP\Vendor\Monolog\Handler\FingersCrossed\ActivationStrategyInterface -{ - private $defaultActionLevel; - private $channelToActionLevel; - /** - * @param int $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. - */ - public function __construct($defaultActionLevel, $channelToActionLevel = array()) - { - $this->defaultActionLevel = \WPMailSMTP\Vendor\Monolog\Logger::toMonologLevel($defaultActionLevel); - $this->channelToActionLevel = \array_map('WPMailSMTP\\Vendor\\Monolog\\Logger::toMonologLevel', $channelToActionLevel); - } - public function isHandlerActivated(array $record) - { - if (isset($this->channelToActionLevel[$record['channel']])) { - return $record['level'] >= $this->channelToActionLevel[$record['channel']]; - } - return $record['level'] >= $this->defaultActionLevel; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php deleted file mode 100644 index 4f9cff8..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler\FingersCrossed; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * Error level based activation strategy. - * - * @author Johannes M. Schmitt - */ -class ErrorLevelActivationStrategy implements \WPMailSMTP\Vendor\Monolog\Handler\FingersCrossed\ActivationStrategyInterface -{ - private $actionLevel; - public function __construct($actionLevel) - { - $this->actionLevel = \WPMailSMTP\Vendor\Monolog\Logger::toMonologLevel($actionLevel); - } - public function isHandlerActivated(array $record) - { - return $record['level'] >= $this->actionLevel; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php deleted file mode 100644 index 8514dcd..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php +++ /dev/null @@ -1,183 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy; -use WPMailSMTP\Vendor\Monolog\Handler\FingersCrossed\ActivationStrategyInterface; -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\ResettableInterface; -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -/** - * 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 find the various activation strategies in the - * Monolog\Handler\FingersCrossed\ namespace. - * - * @author Jordi Boggiano - */ -class FingersCrossedHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractHandler -{ - protected $handler; - protected $activationStrategy; - protected $buffering = \true; - protected $bufferSize; - protected $buffer = array(); - protected $stopBuffering; - protected $passthruLevel; - /** - * @param callable|HandlerInterface $handler Handler or factory callable($record|null, $fingersCrossedHandler). - * @param int|ActivationStrategyInterface $activationStrategy Strategy which determines when this handler takes action - * @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 $passthruLevel Minimum level to always flush to handler on close, even if strategy not triggered - */ - public function __construct($handler, $activationStrategy = null, $bufferSize = 0, $bubble = \true, $stopBuffering = \true, $passthruLevel = null) - { - if (null === $activationStrategy) { - $activationStrategy = new \WPMailSMTP\Vendor\Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy(\WPMailSMTP\Vendor\Monolog\Logger::WARNING); - } - // convert simple int activationStrategy to an object - if (!$activationStrategy instanceof \WPMailSMTP\Vendor\Monolog\Handler\FingersCrossed\ActivationStrategyInterface) { - $activationStrategy = new \WPMailSMTP\Vendor\Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy($activationStrategy); - } - $this->handler = $handler; - $this->activationStrategy = $activationStrategy; - $this->bufferSize = $bufferSize; - $this->bubble = $bubble; - $this->stopBuffering = $stopBuffering; - if ($passthruLevel !== null) { - $this->passthruLevel = \WPMailSMTP\Vendor\Monolog\Logger::toMonologLevel($passthruLevel); - } - if (!$this->handler instanceof \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface && !\is_callable($this->handler)) { - throw new \RuntimeException("The given handler (" . \json_encode($this->handler) . ") is not a callable nor a Monolog\\Handler\\HandlerInterface object"); - } - } - /** - * {@inheritdoc} - */ - public function isHandling(array $record) - { - return \true; - } - /** - * Manually activate this logger regardless of the activation strategy - */ - public function activate() - { - if ($this->stopBuffering) { - $this->buffering = \false; - } - $this->getHandler(\end($this->buffer) ?: null)->handleBatch($this->buffer); - $this->buffer = array(); - } - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = \call_user_func($processor, $record); - } - } - if ($this->buffering) { - $this->buffer[] = $record; - if ($this->bufferSize > 0 && \count($this->buffer) > $this->bufferSize) { - \array_shift($this->buffer); - } - if ($this->activationStrategy->isHandlerActivated($record)) { - $this->activate(); - } - } else { - $this->getHandler($record)->handle($record); - } - return \false === $this->bubble; - } - /** - * {@inheritdoc} - */ - public function close() - { - $this->flushBuffer(); - } - public function reset() - { - $this->flushBuffer(); - parent::reset(); - if ($this->getHandler() instanceof \WPMailSMTP\Vendor\Monolog\ResettableInterface) { - $this->getHandler()->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() - { - $this->buffer = array(); - $this->reset(); - } - /** - * Resets the state of the handler. Stops forwarding records to the wrapped handler. - */ - private function flushBuffer() - { - if (null !== $this->passthruLevel) { - $level = $this->passthruLevel; - $this->buffer = \array_filter($this->buffer, function ($record) use($level) { - return $record['level'] >= $level; - }); - if (\count($this->buffer) > 0) { - $this->getHandler(\end($this->buffer) ?: null)->handleBatch($this->buffer); - } - } - $this->buffer = array(); - $this->buffering = \true; - } - /** - * Return the nested handler - * - * If the handler was provided as a factory callable, this will trigger the handler's instantiation. - * - * @return HandlerInterface - */ - public function getHandler(array $record = null) - { - if (!$this->handler instanceof \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface) { - $this->handler = \call_user_func($this->handler, $record, $this); - if (!$this->handler instanceof \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface) { - throw new \RuntimeException("The factory callable should return a HandlerInterface"); - } - } - return $this->handler; - } - /** - * {@inheritdoc} - */ - public function setFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter) - { - $this->getHandler()->setFormatter($formatter); - return $this; - } - /** - * {@inheritdoc} - */ - public function getFormatter() - { - return $this->getHandler()->getFormatter(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php deleted file mode 100644 index 462c607..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php +++ /dev/null @@ -1,163 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\WildfireFormatter; -/** - * Simple FirePHP Handler (http://www.firephp.org/), which uses the Wildfire protocol. - * - * @author Eric Clemmons (@ericclemmons) - */ -class FirePHPHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - /** - * WildFire JSON header message format - */ - const PROTOCOL_URI = 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2'; - /** - * FirePHP structure for parsing messages & their presentation - */ - 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 - */ - const PLUGIN_URI = 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3'; - /** - * Header prefix for Wildfire to recognize & parse headers - */ - const HEADER_PREFIX = 'X-Wf'; - /** - * Whether or not Wildfire vendor-specific headers have been generated & sent yet - */ - protected static $initialized = \false; - /** - * Shared static message index between potentially multiple handlers - * @var int - */ - protected static $messageIndex = 1; - 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 - */ - protected function createHeader(array $meta, $message) - { - $header = \sprintf('%s-%s', self::HEADER_PREFIX, \join('-', $meta)); - return array($header => $message); - } - /** - * Creates message header from record - * - * @see createHeader() - * @param array $record - * @return string - */ - protected function createRecordHeader(array $record) - { - // Wildfire is extensible to support multiple protocols & plugins in a single request, - // but we're not taking advantage of that (yet), so we're using "1" for simplicity's sake. - return $this->createHeader(array(1, 1, 1, self::$messageIndex++), $record['formatted']); - } - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\WildfireFormatter(); - } - /** - * Wildfire initialization headers to enable message parsing - * - * @see createHeader() - * @see sendHeader() - * @return array - */ - protected function getInitHeaders() - { - // Initial payload consists of required headers for Wildfire - return \array_merge($this->createHeader(array('Protocol', 1), self::PROTOCOL_URI), $this->createHeader(array(1, 'Structure', 1), self::STRUCTURE_URI), $this->createHeader(array(1, 'Plugin', 1), self::PLUGIN_URI)); - } - /** - * Send header string to the client - * - * @param string $header - * @param string $content - */ - protected function sendHeader($header, $content) - { - if (!\headers_sent() && self::$sendHeaders) { - \header(\sprintf('%s: %s', $header, $content)); - } - } - /** - * Creates & sends header for a record, ensuring init headers have been sent prior - * - * @see sendHeader() - * @see sendInitHeaders() - * @param array $record - */ - protected function write(array $record) - { - if (!self::$sendHeaders) { - return; - } - // WildFire-specific headers must be sent prior to any messages - if (!self::$initialized) { - self::$initialized = \true; - self::$sendHeaders = $this->headersAccepted(); - if (!self::$sendHeaders) { - return; - } - foreach ($this->getInitHeaders() as $header => $content) { - $this->sendHeader($header, $content); - } - } - $header = $this->createRecordHeader($record); - if (\trim(\current($header)) !== '') { - $this->sendHeader(\key($header), \current($header)); - } - } - /** - * Verifies if the headers are accepted by the current user agent - * - * @return bool - */ - protected function headersAccepted() - { - if (!empty($_SERVER['HTTP_USER_AGENT']) && \preg_match('{\\bFirePHP/\\d+\\.\\d+\\b}', $_SERVER['HTTP_USER_AGENT'])) { - return \true; - } - return isset($_SERVER['HTTP_X_FIREPHP_VERSION']); - } - /** - * BC getter for the sendHeaders property that has been made static - */ - public function __get($property) - { - if ('sendHeaders' !== $property) { - throw new \InvalidArgumentException('Undefined property ' . $property); - } - return static::$sendHeaders; - } - /** - * BC setter for the sendHeaders property that has been made static - */ - public function __set($property, $value) - { - if ('sendHeaders' !== $property) { - throw new \InvalidArgumentException('Undefined property ' . $property); - } - static::$sendHeaders = $value; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php deleted file mode 100644 index df78d3e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php +++ /dev/null @@ -1,109 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter; -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * 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 - */ -class FleepHookHandler extends \WPMailSMTP\Vendor\Monolog\Handler\SocketHandler -{ - const FLEEP_HOST = 'fleep.io'; - 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 - * @param bool|int $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 - * @throws MissingExtensionException - */ - public function __construct($token, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - if (!\extension_loaded('openssl')) { - throw new \WPMailSMTP\Vendor\Monolog\Handler\MissingExtensionException('The OpenSSL PHP extension is required to use the FleepHookHandler'); - } - $this->token = $token; - $connectionString = 'ssl://' . self::FLEEP_HOST . ':443'; - parent::__construct($connectionString, $level, $bubble); - } - /** - * 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() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter(null, null, \true, \true); - } - /** - * Handles a log record - * - * @param array $record - */ - public function write(array $record) - { - parent::write($record); - $this->closeSocket(); - } - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - $content = $this->buildContent($record); - return $this->buildHeader($content) . $content; - } - /** - * Builds the header of the API Call - * - * @param string $content - * @return string - */ - private function buildHeader($content) - { - $header = "POST " . self::FLEEP_HOOK_URI . $this->token . " HTTP/1.1\r\n"; - $header .= "Host: " . self::FLEEP_HOST . "\r\n"; - $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $header .= "Content-Length: " . \strlen($content) . "\r\n"; - $header .= "\r\n"; - return $header; - } - /** - * Builds the body of API call - * - * @param array $record - * @return string - */ - private function buildContent($record) - { - $dataArray = array('message' => $record['formatted']); - return \http_build_query($dataArray); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php deleted file mode 100644 index 92c41c7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php +++ /dev/null @@ -1,114 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Utils; -use WPMailSMTP\Vendor\Monolog\Formatter\FlowdockFormatter; -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -/** - * 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 - */ -class FlowdockHandler extends \WPMailSMTP\Vendor\Monolog\Handler\SocketHandler -{ - /** - * @var string - */ - protected $apiToken; - /** - * @param string $apiToken - * @param bool|int $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 - * - * @throws MissingExtensionException if OpenSSL is missing - */ - public function __construct($apiToken, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - if (!\extension_loaded('openssl')) { - throw new \WPMailSMTP\Vendor\Monolog\Handler\MissingExtensionException('The OpenSSL PHP extension is required to use the FlowdockHandler'); - } - parent::__construct('ssl://api.flowdock.com:443', $level, $bubble); - $this->apiToken = $apiToken; - } - /** - * {@inheritdoc} - */ - public function setFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter) - { - if (!$formatter instanceof \WPMailSMTP\Vendor\Monolog\Formatter\FlowdockFormatter) { - throw new \InvalidArgumentException('The FlowdockHandler requires an instance of Monolog\\Formatter\\FlowdockFormatter to function correctly'); - } - return parent::setFormatter($formatter); - } - /** - * Gets the default formatter. - * - * @return FormatterInterface - */ - protected function getDefaultFormatter() - { - throw new \InvalidArgumentException('The FlowdockHandler must be configured (via setFormatter) with an instance of Monolog\\Formatter\\FlowdockFormatter to function correctly'); - } - /** - * {@inheritdoc} - * - * @param array $record - */ - protected function write(array $record) - { - parent::write($record); - $this->closeSocket(); - } - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - $content = $this->buildContent($record); - return $this->buildHeader($content) . $content; - } - /** - * Builds the body of API call - * - * @param array $record - * @return string - */ - private function buildContent($record) - { - return \WPMailSMTP\Vendor\Monolog\Utils::jsonEncode($record['formatted']['flowdock']); - } - /** - * Builds the header of the API Call - * - * @param string $content - * @return string - */ - private function buildHeader($content) - { - $header = "POST /v1/messages/team_inbox/" . $this->apiToken . " HTTP/1.1\r\n"; - $header .= "Host: api.flowdock.com\r\n"; - $header .= "Content-Type: application/json\r\n"; - $header .= "Content-Length: " . \strlen($content) . "\r\n"; - $header .= "\r\n"; - return $header; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php deleted file mode 100644 index bed6599..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -/** - * Interface to describe loggers that have a formatter - * - * This interface is present in monolog 1.x to ease forward compatibility. - * - * @author Jordi Boggiano - */ -interface FormattableHandlerInterface -{ - /** - * Sets the formatter. - * - * @param FormatterInterface $formatter - * @return HandlerInterface self - */ - public function setFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter) : \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface; - /** - * Gets the formatter. - * - * @return FormatterInterface - */ - public function getFormatter() : \WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php deleted file mode 100644 index c881faf..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -use WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter; -/** - * Helper trait for implementing FormattableInterface - * - * This trait is present in monolog 1.x to ease forward compatibility. - * - * @author Jordi Boggiano - */ -trait FormattableHandlerTrait -{ - /** - * @var FormatterInterface - */ - protected $formatter; - /** - * {@inheritdoc} - * @suppress PhanTypeMismatchReturn - */ - public function setFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter) : \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface - { - $this->formatter = $formatter; - return $this; - } - /** - * {@inheritdoc} - */ - public function getFormatter() : \WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface - { - if (!$this->formatter) { - $this->formatter = $this->getDefaultFormatter(); - } - return $this->formatter; - } - /** - * Gets the default formatter. - * - * Overwrite this if the LineFormatter is not a good default for your handler. - */ - protected function getDefaultFormatter() : \WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GelfHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GelfHandler.php deleted file mode 100644 index 02eb85b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GelfHandler.php +++ /dev/null @@ -1,58 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Gelf\IMessagePublisher; -use WPMailSMTP\Vendor\Gelf\PublisherInterface; -use WPMailSMTP\Vendor\Gelf\Publisher; -use InvalidArgumentException; -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Formatter\GelfMessageFormatter; -/** - * Handler to send messages to a Graylog2 (http://www.graylog2.org) server - * - * @author Matt Lehner - * @author Benjamin Zikarsky - */ -class GelfHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - /** - * @var Publisher the publisher object that sends the message to the server - */ - protected $publisher; - /** - * @param PublisherInterface|IMessagePublisher|Publisher $publisher a publisher object - * @param int $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 - */ - public function __construct($publisher, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - parent::__construct($level, $bubble); - if (!$publisher instanceof \WPMailSMTP\Vendor\Gelf\Publisher && !$publisher instanceof \WPMailSMTP\Vendor\Gelf\IMessagePublisher && !$publisher instanceof \WPMailSMTP\Vendor\Gelf\PublisherInterface) { - throw new \InvalidArgumentException('Invalid publisher, expected a Gelf\\Publisher, Gelf\\IMessagePublisher or Gelf\\PublisherInterface instance'); - } - $this->publisher = $publisher; - } - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $this->publisher->publish($record['formatted']); - } - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\GelfMessageFormatter(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GroupHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GroupHandler.php deleted file mode 100644 index 136cbee..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/GroupHandler.php +++ /dev/null @@ -1,102 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -use WPMailSMTP\Vendor\Monolog\ResettableInterface; -/** - * Forwards records to multiple handlers - * - * @author Lenar Lõhmus - */ -class GroupHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractHandler -{ - protected $handlers; - /** - * @param array $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, $bubble = \true) - { - foreach ($handlers as $handler) { - if (!$handler instanceof \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface) { - throw new \InvalidArgumentException('The first argument of the GroupHandler must be an array of HandlerInterface instances.'); - } - } - $this->handlers = $handlers; - $this->bubble = $bubble; - } - /** - * {@inheritdoc} - */ - public function isHandling(array $record) - { - foreach ($this->handlers as $handler) { - if ($handler->isHandling($record)) { - return \true; - } - } - return \false; - } - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = \call_user_func($processor, $record); - } - } - foreach ($this->handlers as $handler) { - $handler->handle($record); - } - return \false === $this->bubble; - } - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - if ($this->processors) { - $processed = array(); - foreach ($records as $record) { - foreach ($this->processors as $processor) { - $record = \call_user_func($processor, $record); - } - $processed[] = $record; - } - $records = $processed; - } - foreach ($this->handlers as $handler) { - $handler->handleBatch($records); - } - } - public function reset() - { - parent::reset(); - foreach ($this->handlers as $handler) { - if ($handler instanceof \WPMailSMTP\Vendor\Monolog\ResettableInterface) { - $handler->reset(); - } - } - } - /** - * {@inheritdoc} - */ - public function setFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter) - { - foreach ($this->handlers as $handler) { - $handler->setFormatter($formatter); - } - return $this; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerInterface.php deleted file mode 100644 index 7f6e804..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerInterface.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -/** - * Interface that all Monolog Handlers must implement - * - * @author Jordi Boggiano - */ -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 - */ - public function isHandling(array $record); - /** - * 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. - */ - public function handle(array $record); - /** - * Handles a set of records at once. - * - * @param array $records The records to handle (an array of record arrays) - */ - public function handleBatch(array $records); - /** - * Adds a processor in the stack. - * - * @param callable $callback - * @return self - */ - public function pushProcessor($callback); - /** - * Removes the processor on top of the stack and returns it. - * - * @return callable - */ - public function popProcessor(); - /** - * Sets the formatter. - * - * @param FormatterInterface $formatter - * @return self - */ - public function setFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter); - /** - * Gets the formatter. - * - * @return FormatterInterface - */ - public function getFormatter(); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php deleted file mode 100644 index 277bd23..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php +++ /dev/null @@ -1,103 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\ResettableInterface; -use WPMailSMTP\Vendor\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 \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface, \WPMailSMTP\Vendor\Monolog\ResettableInterface -{ - /** - * @var HandlerInterface - */ - protected $handler; - /** - * HandlerWrapper constructor. - * @param HandlerInterface $handler - */ - public function __construct(\WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface $handler) - { - $this->handler = $handler; - } - /** - * {@inheritdoc} - */ - public function isHandling(array $record) - { - return $this->handler->isHandling($record); - } - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - return $this->handler->handle($record); - } - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - return $this->handler->handleBatch($records); - } - /** - * {@inheritdoc} - */ - public function pushProcessor($callback) - { - $this->handler->pushProcessor($callback); - return $this; - } - /** - * {@inheritdoc} - */ - public function popProcessor() - { - return $this->handler->popProcessor(); - } - /** - * {@inheritdoc} - */ - public function setFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter) - { - $this->handler->setFormatter($formatter); - return $this; - } - /** - * {@inheritdoc} - */ - public function getFormatter() - { - return $this->handler->getFormatter(); - } - public function reset() - { - if ($this->handler instanceof \WPMailSMTP\Vendor\Monolog\ResettableInterface) { - return $this->handler->reset(); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HipChatHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HipChatHandler.php deleted file mode 100644 index 547e3f9..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/HipChatHandler.php +++ /dev/null @@ -1,300 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * Sends notifications through the hipchat api to a hipchat room - * - * Notes: - * API token - HipChat API token - * Room - HipChat Room Id or name, where messages are sent - * Name - Name used to send the message (from) - * notify - Should the message trigger a notification in the clients - * version - The API version to use (HipChatHandler::API_V1 | HipChatHandler::API_V2) - * - * @author Rafael Dohms - * @see https://www.hipchat.com/docs/api - */ -class HipChatHandler extends \WPMailSMTP\Vendor\Monolog\Handler\SocketHandler -{ - /** - * Use API version 1 - */ - const API_V1 = 'v1'; - /** - * Use API version v2 - */ - const API_V2 = 'v2'; - /** - * The maximum allowed length for the name used in the "from" field. - */ - const MAXIMUM_NAME_LENGTH = 15; - /** - * The maximum allowed length for the message. - */ - const MAXIMUM_MESSAGE_LENGTH = 9500; - /** - * @var string - */ - private $token; - /** - * @var string - */ - private $room; - /** - * @var string - */ - private $name; - /** - * @var bool - */ - private $notify; - /** - * @var string - */ - private $format; - /** - * @var string - */ - private $host; - /** - * @var string - */ - private $version; - /** - * @param string $token HipChat API Token - * @param string $room The room that should be alerted of the message (Id or Name) - * @param string $name Name used in the "from" field. - * @param bool $notify Trigger a notification in clients or not - * @param int $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 - * @param bool $useSSL Whether to connect via SSL. - * @param string $format The format of the messages (default to text, can be set to html if you have html in the messages) - * @param string $host The HipChat server hostname. - * @param string $version The HipChat API version (default HipChatHandler::API_V1) - */ - public function __construct($token, $room, $name = 'Monolog', $notify = \false, $level = \WPMailSMTP\Vendor\Monolog\Logger::CRITICAL, $bubble = \true, $useSSL = \true, $format = 'text', $host = 'api.hipchat.com', $version = self::API_V1) - { - @\trigger_error('The Monolog\\Handler\\HipChatHandler class is deprecated. You should migrate to Slack and the SlackWebhookHandler / SlackbotHandler, see https://www.atlassian.com/partnerships/slack', \E_USER_DEPRECATED); - if ($version == self::API_V1 && !$this->validateStringLength($name, static::MAXIMUM_NAME_LENGTH)) { - throw new \InvalidArgumentException('The supplied name is too long. HipChat\'s v1 API supports names up to 15 UTF-8 characters.'); - } - $connectionString = $useSSL ? 'ssl://' . $host . ':443' : $host . ':80'; - parent::__construct($connectionString, $level, $bubble); - $this->token = $token; - $this->name = $name; - $this->notify = $notify; - $this->room = $room; - $this->format = $format; - $this->host = $host; - $this->version = $version; - } - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - $content = $this->buildContent($record); - return $this->buildHeader($content) . $content; - } - /** - * Builds the body of API call - * - * @param array $record - * @return string - */ - private function buildContent($record) - { - $dataArray = array('notify' => $this->version == self::API_V1 ? $this->notify ? 1 : 0 : ($this->notify ? 'true' : 'false'), 'message' => $record['formatted'], 'message_format' => $this->format, 'color' => $this->getAlertColor($record['level'])); - if (!$this->validateStringLength($dataArray['message'], static::MAXIMUM_MESSAGE_LENGTH)) { - if (\function_exists('mb_substr')) { - $dataArray['message'] = \mb_substr($dataArray['message'], 0, static::MAXIMUM_MESSAGE_LENGTH) . ' [truncated]'; - } else { - $dataArray['message'] = \substr($dataArray['message'], 0, static::MAXIMUM_MESSAGE_LENGTH) . ' [truncated]'; - } - } - // if we are using the legacy API then we need to send some additional information - if ($this->version == self::API_V1) { - $dataArray['room_id'] = $this->room; - } - // append the sender name if it is set - // always append it if we use the v1 api (it is required in v1) - if ($this->version == self::API_V1 || $this->name !== null) { - $dataArray['from'] = (string) $this->name; - } - return \http_build_query($dataArray); - } - /** - * Builds the header of the API Call - * - * @param string $content - * @return string - */ - private function buildHeader($content) - { - if ($this->version == self::API_V1) { - $header = "POST /v1/rooms/message?format=json&auth_token={$this->token} HTTP/1.1\r\n"; - } else { - // needed for rooms with special (spaces, etc) characters in the name - $room = \rawurlencode($this->room); - $header = "POST /v2/room/{$room}/notification?auth_token={$this->token} HTTP/1.1\r\n"; - } - $header .= "Host: {$this->host}\r\n"; - $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $header .= "Content-Length: " . \strlen($content) . "\r\n"; - $header .= "\r\n"; - return $header; - } - /** - * Assigns a color to each level of log records. - * - * @param int $level - * @return string - */ - protected function getAlertColor($level) - { - switch (\true) { - case $level >= \WPMailSMTP\Vendor\Monolog\Logger::ERROR: - return 'red'; - case $level >= \WPMailSMTP\Vendor\Monolog\Logger::WARNING: - return 'yellow'; - case $level >= \WPMailSMTP\Vendor\Monolog\Logger::INFO: - return 'green'; - case $level == \WPMailSMTP\Vendor\Monolog\Logger::DEBUG: - return 'gray'; - default: - return 'yellow'; - } - } - /** - * {@inheritdoc} - * - * @param array $record - */ - protected function write(array $record) - { - parent::write($record); - $this->finalizeWrite(); - } - /** - * Finalizes the request by reading some bytes and then closing the socket - * - * If we do not read some but close the socket too early, hipchat sometimes - * drops the request entirely. - */ - protected function finalizeWrite() - { - $res = $this->getResource(); - if (\is_resource($res)) { - @\fread($res, 2048); - } - $this->closeSocket(); - } - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - if (\count($records) == 0) { - return \true; - } - $batchRecords = $this->combineRecords($records); - $handled = \false; - foreach ($batchRecords as $batchRecord) { - if ($this->isHandling($batchRecord)) { - $this->write($batchRecord); - $handled = \true; - } - } - if (!$handled) { - return \false; - } - return \false === $this->bubble; - } - /** - * Combines multiple records into one. Error level of the combined record - * will be the highest level from the given records. Datetime will be taken - * from the first record. - * - * @param $records - * @return array - */ - private function combineRecords($records) - { - $batchRecord = null; - $batchRecords = array(); - $messages = array(); - $formattedMessages = array(); - $level = 0; - $levelName = null; - $datetime = null; - foreach ($records as $record) { - $record = $this->processRecord($record); - if ($record['level'] > $level) { - $level = $record['level']; - $levelName = $record['level_name']; - } - if (null === $datetime) { - $datetime = $record['datetime']; - } - $messages[] = $record['message']; - $messageStr = \implode(\PHP_EOL, $messages); - $formattedMessages[] = $this->getFormatter()->format($record); - $formattedMessageStr = \implode('', $formattedMessages); - $batchRecord = array('message' => $messageStr, 'formatted' => $formattedMessageStr, 'context' => array(), 'extra' => array()); - if (!$this->validateStringLength($batchRecord['formatted'], static::MAXIMUM_MESSAGE_LENGTH)) { - // Pop the last message and implode the remaining messages - $lastMessage = \array_pop($messages); - $lastFormattedMessage = \array_pop($formattedMessages); - $batchRecord['message'] = \implode(\PHP_EOL, $messages); - $batchRecord['formatted'] = \implode('', $formattedMessages); - $batchRecords[] = $batchRecord; - $messages = array($lastMessage); - $formattedMessages = array($lastFormattedMessage); - $batchRecord = null; - } - } - if (null !== $batchRecord) { - $batchRecords[] = $batchRecord; - } - // Set the max level and datetime for all records - foreach ($batchRecords as &$batchRecord) { - $batchRecord = \array_merge($batchRecord, array('level' => $level, 'level_name' => $levelName, 'datetime' => $datetime)); - } - return $batchRecords; - } - /** - * Validates the length of a string. - * - * If the `mb_strlen()` function is available, it will use that, as HipChat - * allows UTF-8 characters. Otherwise, it will fall back to `strlen()`. - * - * Note that this might cause false failures in the specific case of using - * a valid name with less than 16 characters, but 16 or more bytes, on a - * system where `mb_strlen()` is unavailable. - * - * @param string $str - * @param int $length - * - * @return bool - */ - private function validateStringLength($str, $length) - { - if (\function_exists('mb_strlen')) { - return \mb_strlen($str) <= $length; - } - return \strlen($str) <= $length; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php deleted file mode 100644 index 512cc8b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Utils; -/** - * 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 \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - private $eventName; - private $secretKey; - /** - * @param string $eventName The name of the IFTTT Maker event that should be triggered - * @param string $secretKey A valid IFTTT secret key - * @param int $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 - */ - public function __construct($eventName, $secretKey, $level = \WPMailSMTP\Vendor\Monolog\Logger::ERROR, $bubble = \true) - { - $this->eventName = $eventName; - $this->secretKey = $secretKey; - parent::__construct($level, $bubble); - } - /** - * {@inheritdoc} - */ - public function write(array $record) - { - $postData = array("value1" => $record["channel"], "value2" => $record["level_name"], "value3" => $record["message"]); - $postString = \WPMailSMTP\Vendor\Monolog\Utils::jsonEncode($postData); - $ch = \curl_init(); - \curl_setopt($ch, \CURLOPT_URL, "https://maker.ifttt.com/trigger/" . $this->eventName . "/with/key/" . $this->secretKey); - \curl_setopt($ch, \CURLOPT_POST, \true); - \curl_setopt($ch, \CURLOPT_RETURNTRANSFER, \true); - \curl_setopt($ch, \CURLOPT_POSTFIELDS, $postString); - \curl_setopt($ch, \CURLOPT_HTTPHEADER, array("Content-Type: application/json")); - \WPMailSMTP\Vendor\Monolog\Handler\Curl\Util::execute($ch); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php deleted file mode 100644 index 2a0d371..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * Inspired on LogEntriesHandler. - * - * @author Robert Kaufmann III - * @author Gabriel Machado - */ -class InsightOpsHandler extends \WPMailSMTP\Vendor\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 - * @param int $level The minimum logging level to trigger this handler - * @param bool $bubble Whether or not messages that are handled should bubble up the stack. - * - * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing - */ - public function __construct($token, $region = 'us', $useSSL = \true, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - if ($useSSL && !\extension_loaded('openssl')) { - throw new \WPMailSMTP\Vendor\Monolog\Handler\MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for InsightOpsHandler'); - } - $endpoint = $useSSL ? 'ssl://' . $region . '.data.logs.insight.rapid7.com:443' : $region . '.data.logs.insight.rapid7.com:80'; - parent::__construct($endpoint, $level, $bubble); - $this->logToken = $token; - } - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - return $this->logToken . ' ' . $record['formatted']; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php deleted file mode 100644 index 38f73e2..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * @author Robert Kaufmann III - */ -class LogEntriesHandler extends \WPMailSMTP\Vendor\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 int $level The minimum logging level to trigger this handler - * @param bool $bubble Whether or not messages that are handled should bubble up the stack. - * - * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing - */ - public function __construct($token, $useSSL = \true, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true, $host = 'data.logentries.com') - { - if ($useSSL && !\extension_loaded('openssl')) { - throw new \WPMailSMTP\Vendor\Monolog\Handler\MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for LogEntriesHandler'); - } - $endpoint = $useSSL ? 'ssl://' . $host . ':443' : $host . ':80'; - parent::__construct($endpoint, $level, $bubble); - $this->logToken = $token; - } - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - return $this->logToken . ' ' . $record['formatted']; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogglyHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogglyHandler.php deleted file mode 100644 index d9f470c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/LogglyHandler.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Formatter\LogglyFormatter; -/** - * Sends errors to Loggly. - * - * @author Przemek Sobstel - * @author Adam Pancutt - * @author Gregory Barchard - */ -class LogglyHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - const HOST = 'logs-01.loggly.com'; - const ENDPOINT_SINGLE = 'inputs'; - const ENDPOINT_BATCH = 'bulk'; - protected $token; - protected $tag = array(); - public function __construct($token, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - if (!\extension_loaded('curl')) { - throw new \LogicException('The curl extension is needed to use the LogglyHandler'); - } - $this->token = $token; - parent::__construct($level, $bubble); - } - public function setTag($tag) - { - $tag = !empty($tag) ? $tag : array(); - $this->tag = \is_array($tag) ? $tag : array($tag); - } - public function addTag($tag) - { - if (!empty($tag)) { - $tag = \is_array($tag) ? $tag : array($tag); - $this->tag = \array_unique(\array_merge($this->tag, $tag)); - } - } - protected function write(array $record) - { - $this->send($record["formatted"], self::ENDPOINT_SINGLE); - } - public function handleBatch(array $records) - { - $level = $this->level; - $records = \array_filter($records, function ($record) use($level) { - return $record['level'] >= $level; - }); - if ($records) { - $this->send($this->getFormatter()->formatBatch($records), self::ENDPOINT_BATCH); - } - } - protected function send($data, $endpoint) - { - $url = \sprintf("https://%s/%s/%s/", self::HOST, $endpoint, $this->token); - $headers = array('Content-Type: application/json'); - if (!empty($this->tag)) { - $headers[] = 'X-LOGGLY-TAG: ' . \implode(',', $this->tag); - } - $ch = \curl_init(); - \curl_setopt($ch, \CURLOPT_URL, $url); - \curl_setopt($ch, \CURLOPT_POST, \true); - \curl_setopt($ch, \CURLOPT_POSTFIELDS, $data); - \curl_setopt($ch, \CURLOPT_HTTPHEADER, $headers); - \curl_setopt($ch, \CURLOPT_RETURNTRANSFER, \true); - \WPMailSMTP\Vendor\Monolog\Handler\Curl\Util::execute($ch); - } - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\LogglyFormatter(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MailHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MailHandler.php deleted file mode 100644 index d4d773c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MailHandler.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -/** - * Base class for all mail handlers - * - * @author Gyula Sallai - */ -abstract class MailHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - $messages = array(); - foreach ($records as $record) { - if ($record['level'] < $this->level) { - continue; - } - $messages[] = $this->processRecord($record); - } - if (!empty($messages)) { - $this->send((string) $this->getFormatter()->formatBatch($messages), $messages); - } - } - /** - * 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 - */ - protected abstract function send($content, array $records); - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $this->send((string) $record['formatted'], array($record)); - } - protected function getHighestRecord(array $records) - { - $highestRecord = null; - foreach ($records as $record) { - if ($highestRecord === null || $highestRecord['level'] < $record['level']) { - $highestRecord = $record; - } - } - return $highestRecord; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MandrillHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MandrillHandler.php deleted file mode 100644 index 2f8324d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MandrillHandler.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * MandrillHandler uses cURL to send the emails to the Mandrill API - * - * @author Adam Nicholson - */ -class MandrillHandler extends \WPMailSMTP\Vendor\Monolog\Handler\MailHandler -{ - protected $message; - protected $apiKey; - /** - * @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 - * @param int $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 - */ - public function __construct($apiKey, $message, $level = \WPMailSMTP\Vendor\Monolog\Logger::ERROR, $bubble = \true) - { - parent::__construct($level, $bubble); - if (!$message instanceof \WPMailSMTP\Vendor\Swift_Message && \is_callable($message)) { - $message = \call_user_func($message); - } - if (!$message instanceof \WPMailSMTP\Vendor\Swift_Message) { - throw new \InvalidArgumentException('You must provide either a Swift_Message instance or a callable returning it'); - } - $this->message = $message; - $this->apiKey = $apiKey; - } - /** - * {@inheritdoc} - */ - protected function send($content, array $records) - { - $message = clone $this->message; - $message->setBody($content); - $message->setDate(\time()); - $ch = \curl_init(); - \curl_setopt($ch, \CURLOPT_URL, 'https://mandrillapp.com/api/1.0/messages/send-raw.json'); - \curl_setopt($ch, \CURLOPT_POST, 1); - \curl_setopt($ch, \CURLOPT_RETURNTRANSFER, 1); - \curl_setopt($ch, \CURLOPT_POSTFIELDS, \http_build_query(array('key' => $this->apiKey, 'raw_message' => (string) $message, 'async' => \false))); - \WPMailSMTP\Vendor\Monolog\Handler\Curl\Util::execute($ch); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php deleted file mode 100644 index 988df6e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -/** - * Exception can be thrown if an extension for an handler is missing - * - * @author Christian Bergau - */ -class MissingExtensionException extends \Exception -{ -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php deleted file mode 100644 index 22b8088..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter; -/** - * Logs to a MongoDB database. - * - * usage example: - * - * $log = new Logger('application'); - * $mongodb = new MongoDBHandler(new \Mongo("mongodb://localhost:27017"), "logs", "prod"); - * $log->pushHandler($mongodb); - * - * @author Thomas Tourlourat - */ -class MongoDBHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - protected $mongoCollection; - public function __construct($mongo, $database, $collection, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - if (!($mongo instanceof \MongoClient || $mongo instanceof \Mongo || $mongo instanceof \WPMailSMTP\Vendor\MongoDB\Client)) { - throw new \InvalidArgumentException('MongoClient, Mongo or MongoDB\\Client instance required'); - } - $this->mongoCollection = $mongo->selectCollection($database, $collection); - parent::__construct($level, $bubble); - } - protected function write(array $record) - { - if ($this->mongoCollection instanceof \WPMailSMTP\Vendor\MongoDB\Collection) { - $this->mongoCollection->insertOne($record["formatted"]); - } else { - $this->mongoCollection->save($record["formatted"]); - } - } - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php deleted file mode 100644 index 70ec235..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php +++ /dev/null @@ -1,161 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter; -/** - * NativeMailerHandler uses the mail() function to send the emails - * - * @author Christophe Coevoet - * @author Mark Garrett - */ -class NativeMailerHandler extends \WPMailSMTP\Vendor\Monolog\Handler\MailHandler -{ - /** - * The email addresses to which the message will be sent - * @var array - */ - protected $to; - /** - * The subject of the email - * @var string - */ - protected $subject; - /** - * Optional headers for the message - * @var array - */ - protected $headers = array(); - /** - * Optional parameters for the message - * @var array - */ - protected $parameters = array(); - /** - * The wordwrap length for the message - * @var int - */ - protected $maxColumnWidth; - /** - * The Content-type for the message - * @var string - */ - protected $contentType = 'text/plain'; - /** - * The encoding for the message - * @var string - */ - protected $encoding = 'utf-8'; - /** - * @param string|array $to The receiver of the mail - * @param string $subject The subject of the mail - * @param string $from The sender of the mail - * @param int $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 - * @param int $maxColumnWidth The maximum column width that the message lines will have - */ - public function __construct($to, $subject, $from, $level = \WPMailSMTP\Vendor\Monolog\Logger::ERROR, $bubble = \true, $maxColumnWidth = 70) - { - parent::__construct($level, $bubble); - $this->to = \is_array($to) ? $to : array($to); - $this->subject = $subject; - $this->addHeader(\sprintf('From: %s', $from)); - $this->maxColumnWidth = $maxColumnWidth; - } - /** - * Add headers to the message - * - * @param string|array $headers Custom added headers - * @return self - */ - public function addHeader($headers) - { - foreach ((array) $headers as $header) { - if (\strpos($header, "\n") !== \false || \strpos($header, "\r") !== \false) { - throw new \InvalidArgumentException('Headers can not contain newline characters for security reasons'); - } - $this->headers[] = $header; - } - return $this; - } - /** - * Add parameters to the message - * - * @param string|array $parameters Custom added parameters - * @return self - */ - public function addParameter($parameters) - { - $this->parameters = \array_merge($this->parameters, (array) $parameters); - return $this; - } - /** - * {@inheritdoc} - */ - protected function send($content, array $records) - { - $content = \wordwrap($content, $this->maxColumnWidth); - $headers = \ltrim(\implode("\r\n", $this->headers) . "\r\n", "\r\n"); - $headers .= 'Content-type: ' . $this->getContentType() . '; charset=' . $this->getEncoding() . "\r\n"; - if ($this->getContentType() == 'text/html' && \false === \strpos($headers, 'MIME-Version:')) { - $headers .= 'MIME-Version: 1.0' . "\r\n"; - } - $subject = $this->subject; - if ($records) { - $subjectFormatter = new \WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter($this->subject); - $subject = $subjectFormatter->format($this->getHighestRecord($records)); - } - $parameters = \implode(' ', $this->parameters); - foreach ($this->to as $to) { - \mail($to, $subject, $content, $headers, $parameters); - } - } - /** - * @return string $contentType - */ - public function getContentType() - { - return $this->contentType; - } - /** - * @return string $encoding - */ - public function getEncoding() - { - return $this->encoding; - } - /** - * @param string $contentType The content type of the email - Defaults to text/plain. Use text/html for HTML - * messages. - * @return self - */ - public function setContentType($contentType) - { - if (\strpos($contentType, "\n") !== \false || \strpos($contentType, "\r") !== \false) { - throw new \InvalidArgumentException('The content type can not contain newline characters to prevent email header injection'); - } - $this->contentType = $contentType; - return $this; - } - /** - * @param string $encoding - * @return self - */ - public function setEncoding($encoding) - { - if (\strpos($encoding, "\n") !== \false || \strpos($encoding, "\r") !== \false) { - throw new \InvalidArgumentException('The encoding can not contain newline characters to prevent email header injection'); - } - $this->encoding = $encoding; - return $this; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php deleted file mode 100644 index 198c3d7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php +++ /dev/null @@ -1,179 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Utils; -use WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter; -/** - * 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 \WPMailSMTP\Vendor\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 $appName - * @param bool $explodeArrays - * @param string $transactionName - */ - public function __construct($level = \WPMailSMTP\Vendor\Monolog\Logger::ERROR, $bubble = \true, $appName = null, $explodeArrays = \false, $transactionName = null) - { - parent::__construct($level, $bubble); - $this->appName = $appName; - $this->explodeArrays = $explodeArrays; - $this->transactionName = $transactionName; - } - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - if (!$this->isNewRelicEnabled()) { - throw new \WPMailSMTP\Vendor\Monolog\Handler\MissingExtensionException('The newrelic PHP extension is required to use the NewRelicHandler'); - } - if ($appName = $this->getAppName($record['context'])) { - $this->setNewRelicAppName($appName); - } - if ($transactionName = $this->getTransactionName($record['context'])) { - $this->setNewRelicTransactionName($transactionName); - unset($record['formatted']['context']['transaction_name']); - } - if (isset($record['context']['exception']) && ($record['context']['exception'] instanceof \Exception || \PHP_VERSION_ID >= 70000 && $record['context']['exception'] instanceof \Throwable)) { - \newrelic_notice_error($record['message'], $record['context']['exception']); - unset($record['formatted']['context']['exception']); - } else { - \newrelic_notice_error($record['message']); - } - if (isset($record['formatted']['context']) && \is_array($record['formatted']['context'])) { - foreach ($record['formatted']['context'] as $key => $parameter) { - if (\is_array($parameter) && $this->explodeArrays) { - foreach ($parameter as $paramKey => $paramValue) { - $this->setNewRelicParameter('context_' . $key . '_' . $paramKey, $paramValue); - } - } else { - $this->setNewRelicParameter('context_' . $key, $parameter); - } - } - } - if (isset($record['formatted']['extra']) && \is_array($record['formatted']['extra'])) { - foreach ($record['formatted']['extra'] as $key => $parameter) { - if (\is_array($parameter) && $this->explodeArrays) { - foreach ($parameter as $paramKey => $paramValue) { - $this->setNewRelicParameter('extra_' . $key . '_' . $paramKey, $paramValue); - } - } else { - $this->setNewRelicParameter('extra_' . $key, $parameter); - } - } - } - } - /** - * Checks whether the NewRelic extension is enabled in the system. - * - * @return bool - */ - protected function isNewRelicEnabled() - { - return \extension_loaded('newrelic'); - } - /** - * 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 array $context - * @return null|string - */ - protected function getAppName(array $context) - { - if (isset($context['appname'])) { - return $context['appname']; - } - return $this->appName; - } - /** - * 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 array $context - * - * @return null|string - */ - protected function getTransactionName(array $context) - { - if (isset($context['transaction_name'])) { - return $context['transaction_name']; - } - return $this->transactionName; - } - /** - * Sets the NewRelic application that should receive this log. - * - * @param string $appName - */ - protected function setNewRelicAppName($appName) - { - \newrelic_set_appname($appName); - } - /** - * Overwrites the name of the current transaction - * - * @param string $transactionName - */ - protected function setNewRelicTransactionName($transactionName) - { - \newrelic_name_transaction($transactionName); - } - /** - * @param string $key - * @param mixed $value - */ - protected function setNewRelicParameter($key, $value) - { - if (null === $value || \is_scalar($value)) { - \newrelic_add_custom_parameter($key, $value); - } else { - \newrelic_add_custom_parameter($key, \WPMailSMTP\Vendor\Monolog\Utils::jsonEncode($value, null, \true)); - } - } - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NullHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NullHandler.php deleted file mode 100644 index 4959597..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/NullHandler.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * 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 - */ -class NullHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractHandler -{ - /** - * @param int $level The minimum logging level at which this handler will be triggered - */ - public function __construct($level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG) - { - parent::__construct($level, \false); - } - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if ($record['level'] < $this->level) { - return \false; - } - return \true; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php deleted file mode 100644 index 7fd4a6d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php +++ /dev/null @@ -1,234 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use Exception; -use WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter; -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Utils; -use WPMailSMTP\Vendor\PhpConsole\Connector; -use WPMailSMTP\Vendor\PhpConsole\Handler; -use WPMailSMTP\Vendor\PhpConsole\Helper; -/** - * 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 https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef - * 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->addDebug('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 - */ -class PHPConsoleHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - private $options = array( - 'enabled' => \true, - // bool Is PHP Console server enabled - 'classesPartialsTraceIgnore' => array('WPMailSMTP\\Vendor\\Monolog\\'), - // array Hide calls of classes started with... - 'debugTagsKeysInContext' => array(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(), - // 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) - * @param int $level - * @param bool $bubble - * @throws Exception - */ - public function __construct(array $options = array(), \WPMailSMTP\Vendor\PhpConsole\Connector $connector = null, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - if (!\class_exists('WPMailSMTP\\Vendor\\PhpConsole\\Connector')) { - throw new \Exception('PHP Console library not found. See https://github.com/barbushin/php-console#installation'); - } - parent::__construct($level, $bubble); - $this->options = $this->initOptions($options); - $this->connector = $this->initConnector($connector); - } - private function initOptions(array $options) - { - $wrongOptions = \array_diff(\array_keys($options), \array_keys($this->options)); - if ($wrongOptions) { - throw new \Exception('Unknown options: ' . \implode(', ', $wrongOptions)); - } - return \array_replace($this->options, $options); - } - private function initConnector(\WPMailSMTP\Vendor\PhpConsole\Connector $connector = null) - { - if (!$connector) { - if ($this->options['dataStorage']) { - \WPMailSMTP\Vendor\PhpConsole\Connector::setPostponeStorage($this->options['dataStorage']); - } - $connector = \WPMailSMTP\Vendor\PhpConsole\Connector::getInstance(); - } - if ($this->options['registerHelper'] && !\WPMailSMTP\Vendor\PhpConsole\Helper::isRegistered()) { - \WPMailSMTP\Vendor\PhpConsole\Helper::register(); - } - if ($this->options['enabled'] && $connector->isActiveClient()) { - if ($this->options['useOwnErrorsHandler'] || $this->options['useOwnExceptionsHandler']) { - $handler = \WPMailSMTP\Vendor\PhpConsole\Handler::getInstance(); - $handler->setHandleErrors($this->options['useOwnErrorsHandler']); - $handler->setHandleExceptions($this->options['useOwnExceptionsHandler']); - $handler->start(); - } - if ($this->options['sourcesBasePath']) { - $connector->setSourcesBasePath($this->options['sourcesBasePath']); - } - if ($this->options['serverEncoding']) { - $connector->setServerEncoding($this->options['serverEncoding']); - } - if ($this->options['password']) { - $connector->setPassword($this->options['password']); - } - if ($this->options['enableSslOnlyMode']) { - $connector->enableSslOnlyMode(); - } - if ($this->options['ipMasks']) { - $connector->setAllowedIpMasks($this->options['ipMasks']); - } - if ($this->options['headersLimit']) { - $connector->setHeadersLimit($this->options['headersLimit']); - } - if ($this->options['detectDumpTraceAndSource']) { - $connector->getDebugDispatcher()->detectTraceAndSource = \true; - } - $dumper = $connector->getDumper(); - $dumper->levelLimit = $this->options['dumperLevelLimit']; - $dumper->itemsCountLimit = $this->options['dumperItemsCountLimit']; - $dumper->itemSizeLimit = $this->options['dumperItemSizeLimit']; - $dumper->dumpSizeLimit = $this->options['dumperDumpSizeLimit']; - $dumper->detectCallbacks = $this->options['dumperDetectCallbacks']; - if ($this->options['enableEvalListener']) { - $connector->startEvalRequestsListener(); - } - } - return $connector; - } - public function getConnector() - { - return $this->connector; - } - public function getOptions() - { - return $this->options; - } - public function handle(array $record) - { - if ($this->options['enabled'] && $this->connector->isActiveClient()) { - return parent::handle($record); - } - return !$this->bubble; - } - /** - * Writes the record down to the log of the implementing handler - * - * @param array $record - * @return void - */ - protected function write(array $record) - { - if ($record['level'] < \WPMailSMTP\Vendor\Monolog\Logger::NOTICE) { - $this->handleDebugRecord($record); - } elseif (isset($record['context']['exception']) && $record['context']['exception'] instanceof \Exception) { - $this->handleExceptionRecord($record); - } else { - $this->handleErrorRecord($record); - } - } - private function handleDebugRecord(array $record) - { - $tags = $this->getRecordTags($record); - $message = $record['message']; - if ($record['context']) { - $message .= ' ' . \WPMailSMTP\Vendor\Monolog\Utils::jsonEncode($this->connector->getDumper()->dump(\array_filter($record['context'])), null, \true); - } - $this->connector->getDebugDispatcher()->dispatchDebug($message, $tags, $this->options['classesPartialsTraceIgnore']); - } - private function handleExceptionRecord(array $record) - { - $this->connector->getErrorsDispatcher()->dispatchException($record['context']['exception']); - } - private function handleErrorRecord(array $record) - { - $context = $record['context']; - $this->connector->getErrorsDispatcher()->dispatchError(isset($context['code']) ? $context['code'] : null, isset($context['message']) ? $context['message'] : $record['message'], isset($context['file']) ? $context['file'] : null, isset($context['line']) ? $context['line'] : null, $this->options['classesPartialsTraceIgnore']); - } - private function getRecordTags(array &$record) - { - $tags = null; - if (!empty($record['context'])) { - $context =& $record['context']; - foreach ($this->options['debugTagsKeysInContext'] as $key) { - if (!empty($context[$key])) { - $tags = $context[$key]; - if ($key === 0) { - \array_shift($context); - } else { - unset($context[$key]); - } - break; - } - } - } - return $tags ?: \strtolower($record['level_name']); - } - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter('%message%'); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php deleted file mode 100644 index f62041e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Processor\ProcessorInterface; -/** - * Interface to describe loggers that have processors - * - * This interface is present in monolog 1.x to ease forward compatibility. - * - * @author Jordi Boggiano - */ -interface ProcessableHandlerInterface -{ - /** - * Adds a processor in the stack. - * - * @param ProcessorInterface|callable $callback - * @return HandlerInterface self - */ - public function pushProcessor($callback) : \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface; - /** - * Removes the processor on top of the stack and returns it. - * - * @throws \LogicException In case the processor stack is empty - * @return callable - */ - public function popProcessor() : callable; -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php deleted file mode 100644 index 47e6a2d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\ResettableInterface; -/** - * Helper trait for implementing ProcessableInterface - * - * This trait is present in monolog 1.x to ease forward compatibility. - * - * @author Jordi Boggiano - */ -trait ProcessableHandlerTrait -{ - /** - * @var callable[] - */ - protected $processors = []; - /** - * {@inheritdoc} - * @suppress PhanTypeMismatchReturn - */ - public function pushProcessor($callback) : \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface - { - \array_unshift($this->processors, $callback); - return $this; - } - /** - * {@inheritdoc} - */ - public function popProcessor() : callable - { - if (!$this->processors) { - throw new \LogicException('You tried to pop from an empty processor stack.'); - } - return \array_shift($this->processors); - } - /** - * Processes a record. - */ - protected function processRecord(array $record) : array - { - foreach ($this->processors as $processor) { - $record = $processor($record); - } - return $record; - } - protected function resetProcessors() : void - { - foreach ($this->processors as $processor) { - if ($processor instanceof \WPMailSMTP\Vendor\Monolog\ResettableInterface) { - $processor->reset(); - } - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PsrHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PsrHandler.php deleted file mode 100644 index 77a131c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PsrHandler.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Psr\Log\LoggerInterface; -/** - * Proxies log messages to an existing PSR-3 compliant logger. - * - * @author Michael Moussa - */ -class PsrHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractHandler -{ - /** - * PSR-3 compliant logger - * - * @var LoggerInterface - */ - protected $logger; - /** - * @param LoggerInterface $logger The underlying PSR-3 compliant logger to which messages will be proxied - * @param int $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 - */ - public function __construct(\WPMailSMTP\Vendor\Psr\Log\LoggerInterface $logger, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - parent::__construct($level, $bubble); - $this->logger = $logger; - } - /** - * {@inheritDoc} - */ - public function handle(array $record) - { - if (!$this->isHandling($record)) { - return \false; - } - $this->logger->log(\strtolower($record['level_name']), $record['message'], $record['context']); - return \false === $this->bubble; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PushoverHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PushoverHandler.php deleted file mode 100644 index 48a069d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/PushoverHandler.php +++ /dev/null @@ -1,135 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * Sends notifications through the pushover api to mobile phones - * - * @author Sebastian Göttschkes - * @see https://www.pushover.net/api - */ -class PushoverHandler extends \WPMailSMTP\Vendor\Monolog\Handler\SocketHandler -{ - private $token; - private $users; - private $title; - private $user; - private $retry; - private $expire; - private $highPriorityLevel; - private $emergencyLevel; - private $useFormattedMessage = \false; - /** - * All parameters that can be sent to Pushover - * @see https://pushover.net/api - * @var array - */ - private $parameterNames = array('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 array - */ - private $sounds = array('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 $title Title sent to the Pushover API - * @param int $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 - * @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 int $highPriorityLevel The minimum logging level at which this handler will start - * sending "high priority" requests to the Pushover API - * @param 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). - */ - public function __construct($token, $users, $title = null, $level = \WPMailSMTP\Vendor\Monolog\Logger::CRITICAL, $bubble = \true, $useSSL = \true, $highPriorityLevel = \WPMailSMTP\Vendor\Monolog\Logger::CRITICAL, $emergencyLevel = \WPMailSMTP\Vendor\Monolog\Logger::EMERGENCY, $retry = 30, $expire = 25200) - { - $connectionString = $useSSL ? 'ssl://api.pushover.net:443' : 'api.pushover.net:80'; - parent::__construct($connectionString, $level, $bubble); - $this->token = $token; - $this->users = (array) $users; - $this->title = $title ?: \gethostname(); - $this->highPriorityLevel = \WPMailSMTP\Vendor\Monolog\Logger::toMonologLevel($highPriorityLevel); - $this->emergencyLevel = \WPMailSMTP\Vendor\Monolog\Logger::toMonologLevel($emergencyLevel); - $this->retry = $retry; - $this->expire = $expire; - } - protected function generateDataStream($record) - { - $content = $this->buildContent($record); - return $this->buildHeader($content) . $content; - } - private function buildContent($record) - { - // Pushover has a limit of 512 characters on title and message combined. - $maxMessageLength = 512 - \strlen($this->title); - $message = $this->useFormattedMessage ? $record['formatted'] : $record['message']; - $message = \substr($message, 0, $maxMessageLength); - $timestamp = $record['datetime']->getTimestamp(); - $dataArray = array('token' => $this->token, 'user' => $this->user, 'message' => $message, 'title' => $this->title, 'timestamp' => $timestamp); - if (isset($record['level']) && $record['level'] >= $this->emergencyLevel) { - $dataArray['priority'] = 2; - $dataArray['retry'] = $this->retry; - $dataArray['expire'] = $this->expire; - } elseif (isset($record['level']) && $record['level'] >= $this->highPriorityLevel) { - $dataArray['priority'] = 1; - } - // First determine the available parameters - $context = \array_intersect_key($record['context'], $this->parameterNames); - $extra = \array_intersect_key($record['extra'], $this->parameterNames); - // Least important info should be merged with subsequent info - $dataArray = \array_merge($extra, $context, $dataArray); - // Only pass sounds that are supported by the API - if (isset($dataArray['sound']) && !\in_array($dataArray['sound'], $this->sounds)) { - unset($dataArray['sound']); - } - return \http_build_query($dataArray); - } - private function buildHeader($content) - { - $header = "POST /1/messages.json HTTP/1.1\r\n"; - $header .= "Host: api.pushover.net\r\n"; - $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $header .= "Content-Length: " . \strlen($content) . "\r\n"; - $header .= "\r\n"; - return $header; - } - protected function write(array $record) - { - foreach ($this->users as $user) { - $this->user = $user; - parent::write($record); - $this->closeSocket(); - } - $this->user = null; - } - public function setHighPriorityLevel($value) - { - $this->highPriorityLevel = $value; - } - public function setEmergencyLevel($value) - { - $this->emergencyLevel = $value; - } - /** - * Use the formatted message? - * @param bool $value - */ - public function useFormattedMessage($value) - { - $this->useFormattedMessage = (bool) $value; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RavenHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RavenHandler.php deleted file mode 100644 index e44b7db..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RavenHandler.php +++ /dev/null @@ -1,197 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter; -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Raven_Client; -/** - * Handler to send messages to a Sentry (https://github.com/getsentry/sentry) server - * using sentry-php (https://github.com/getsentry/sentry-php) - * - * @author Marc Abramowitz - */ -class RavenHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - /** - * Translates Monolog log levels to Raven log levels. - */ - protected $logLevels = array(\WPMailSMTP\Vendor\Monolog\Logger::DEBUG => \WPMailSMTP\Vendor\Raven_Client::DEBUG, \WPMailSMTP\Vendor\Monolog\Logger::INFO => \WPMailSMTP\Vendor\Raven_Client::INFO, \WPMailSMTP\Vendor\Monolog\Logger::NOTICE => \WPMailSMTP\Vendor\Raven_Client::INFO, \WPMailSMTP\Vendor\Monolog\Logger::WARNING => \WPMailSMTP\Vendor\Raven_Client::WARNING, \WPMailSMTP\Vendor\Monolog\Logger::ERROR => \WPMailSMTP\Vendor\Raven_Client::ERROR, \WPMailSMTP\Vendor\Monolog\Logger::CRITICAL => \WPMailSMTP\Vendor\Raven_Client::FATAL, \WPMailSMTP\Vendor\Monolog\Logger::ALERT => \WPMailSMTP\Vendor\Raven_Client::FATAL, \WPMailSMTP\Vendor\Monolog\Logger::EMERGENCY => \WPMailSMTP\Vendor\Raven_Client::FATAL); - /** - * @var string should represent the current version of the calling - * software. Can be any string (git commit, version number) - */ - protected $release; - /** - * @var Raven_Client the client object that sends the message to the server - */ - protected $ravenClient; - /** - * @var LineFormatter The formatter to use for the logs generated via handleBatch() - */ - protected $batchFormatter; - /** - * @param Raven_Client $ravenClient - * @param int $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 - */ - public function __construct(\WPMailSMTP\Vendor\Raven_Client $ravenClient, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - @\trigger_error('The Monolog\\Handler\\RavenHandler class is deprecated. You should rather upgrade to the sentry/sentry 2.x and use Sentry\\Monolog\\Handler, see https://github.com/getsentry/sentry-php/blob/master/src/Monolog/Handler.php', \E_USER_DEPRECATED); - parent::__construct($level, $bubble); - $this->ravenClient = $ravenClient; - } - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - $level = $this->level; - // filter records based on their level - $records = \array_filter($records, function ($record) use($level) { - return $record['level'] >= $level; - }); - if (!$records) { - return; - } - // the record with the highest severity is the "main" one - $record = \array_reduce($records, function ($highest, $record) { - if (null === $highest || $record['level'] > $highest['level']) { - return $record; - } - return $highest; - }); - // the other ones are added as a context item - $logs = array(); - foreach ($records as $r) { - $logs[] = $this->processRecord($r); - } - if ($logs) { - $record['context']['logs'] = (string) $this->getBatchFormatter()->formatBatch($logs); - } - $this->handle($record); - } - /** - * Sets the formatter for the logs generated by handleBatch(). - * - * @param FormatterInterface $formatter - */ - public function setBatchFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter) - { - $this->batchFormatter = $formatter; - } - /** - * Gets the formatter for the logs generated by handleBatch(). - * - * @return FormatterInterface - */ - public function getBatchFormatter() - { - if (!$this->batchFormatter) { - $this->batchFormatter = $this->getDefaultBatchFormatter(); - } - return $this->batchFormatter; - } - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $previousUserContext = \false; - $options = array(); - $options['level'] = $this->logLevels[$record['level']]; - $options['tags'] = array(); - if (!empty($record['extra']['tags'])) { - $options['tags'] = \array_merge($options['tags'], $record['extra']['tags']); - unset($record['extra']['tags']); - } - if (!empty($record['context']['tags'])) { - $options['tags'] = \array_merge($options['tags'], $record['context']['tags']); - unset($record['context']['tags']); - } - if (!empty($record['context']['fingerprint'])) { - $options['fingerprint'] = $record['context']['fingerprint']; - unset($record['context']['fingerprint']); - } - if (!empty($record['context']['logger'])) { - $options['logger'] = $record['context']['logger']; - unset($record['context']['logger']); - } else { - $options['logger'] = $record['channel']; - } - foreach ($this->getExtraParameters() as $key) { - foreach (array('extra', 'context') as $source) { - if (!empty($record[$source][$key])) { - $options[$key] = $record[$source][$key]; - unset($record[$source][$key]); - } - } - } - if (!empty($record['context'])) { - $options['extra']['context'] = $record['context']; - if (!empty($record['context']['user'])) { - $previousUserContext = $this->ravenClient->context->user; - $this->ravenClient->user_context($record['context']['user']); - unset($options['extra']['context']['user']); - } - } - if (!empty($record['extra'])) { - $options['extra']['extra'] = $record['extra']; - } - if (!empty($this->release) && !isset($options['release'])) { - $options['release'] = $this->release; - } - if (isset($record['context']['exception']) && ($record['context']['exception'] instanceof \Exception || \PHP_VERSION_ID >= 70000 && $record['context']['exception'] instanceof \Throwable)) { - $options['message'] = $record['formatted']; - $this->ravenClient->captureException($record['context']['exception'], $options); - } else { - $this->ravenClient->captureMessage($record['formatted'], array(), $options); - } - if ($previousUserContext !== \false) { - $this->ravenClient->user_context($previousUserContext); - } - } - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter('[%channel%] %message%'); - } - /** - * Gets the default formatter for the logs generated by handleBatch(). - * - * @return FormatterInterface - */ - protected function getDefaultBatchFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter(); - } - /** - * Gets extra parameters supported by Raven that can be found in "extra" and "context" - * - * @return array - */ - protected function getExtraParameters() - { - return array('contexts', 'checksum', 'release', 'event_id'); - } - /** - * @param string $value - * @return self - */ - public function setRelease($value) - { - $this->release = $value; - return $this; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RedisHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RedisHandler.php deleted file mode 100644 index d5e2991..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RedisHandler.php +++ /dev/null @@ -1,87 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter; -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * 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 - */ -class RedisHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - private $redisClient; - private $redisKey; - protected $capSize; - /** - * @param \Predis\Client|\Redis $redis The redis instance - * @param string $key The key name to push records to - * @param int $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 - * @param int $capSize Number of entries to limit list size to - */ - public function __construct($redis, $key, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true, $capSize = \false) - { - if (!($redis instanceof \WPMailSMTP\Vendor\Predis\Client || $redis instanceof \Redis)) { - throw new \InvalidArgumentException('Predis\\Client or Redis instance required'); - } - $this->redisClient = $redis; - $this->redisKey = $key; - $this->capSize = $capSize; - parent::__construct($level, $bubble); - } - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - if ($this->capSize) { - $this->writeCapped($record); - } else { - $this->redisClient->rpush($this->redisKey, $record["formatted"]); - } - } - /** - * Write and cap the collection - * Writes the record to the redis list and caps its - * - * @param array $record associative record array - * @return void - */ - protected function writeCapped(array $record) - { - if ($this->redisClient instanceof \Redis) { - $mode = \defined('\\Redis::MULTI') ? \Redis::MULTI : 1; - $this->redisClient->multi($mode)->rpush($this->redisKey, $record["formatted"])->ltrim($this->redisKey, -$this->capSize, -1)->exec(); - } else { - $redisKey = $this->redisKey; - $capSize = $this->capSize; - $this->redisClient->transaction(function ($tx) use($record, $redisKey, $capSize) { - $tx->rpush($redisKey, $record["formatted"]); - $tx->ltrim($redisKey, -$capSize, -1); - }); - } - } - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RollbarHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RollbarHandler.php deleted file mode 100644 index d01f04d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RollbarHandler.php +++ /dev/null @@ -1,107 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\RollbarNotifier; -use Exception; -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * Sends errors to Rollbar - * - * If the context data contains a `payload` key, that is used as an array - * of payload options to RollbarNotifier's report_message/report_exception methods. - * - * 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 \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - /** - * Rollbar notifier - * - * @var RollbarNotifier - */ - protected $rollbarNotifier; - protected $levelMap = array(\WPMailSMTP\Vendor\Monolog\Logger::DEBUG => 'debug', \WPMailSMTP\Vendor\Monolog\Logger::INFO => 'info', \WPMailSMTP\Vendor\Monolog\Logger::NOTICE => 'info', \WPMailSMTP\Vendor\Monolog\Logger::WARNING => 'warning', \WPMailSMTP\Vendor\Monolog\Logger::ERROR => 'error', \WPMailSMTP\Vendor\Monolog\Logger::CRITICAL => 'critical', \WPMailSMTP\Vendor\Monolog\Logger::ALERT => 'critical', \WPMailSMTP\Vendor\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; - protected $initialized = \false; - /** - * @param RollbarNotifier $rollbarNotifier RollbarNotifier object constructed with valid token - * @param int $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 - */ - public function __construct(\WPMailSMTP\Vendor\RollbarNotifier $rollbarNotifier, $level = \WPMailSMTP\Vendor\Monolog\Logger::ERROR, $bubble = \true) - { - $this->rollbarNotifier = $rollbarNotifier; - parent::__construct($level, $bubble); - } - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - if (!$this->initialized) { - // __destructor() doesn't get called on Fatal errors - \register_shutdown_function(array($this, 'close')); - $this->initialized = \true; - } - $context = $record['context']; - $payload = array(); - if (isset($context['payload'])) { - $payload = $context['payload']; - unset($context['payload']); - } - $context = \array_merge($context, $record['extra'], array('level' => $this->levelMap[$record['level']], 'monolog_level' => $record['level_name'], 'channel' => $record['channel'], 'datetime' => $record['datetime']->format('U'))); - if (isset($context['exception']) && $context['exception'] instanceof \Exception) { - $payload['level'] = $context['level']; - $exception = $context['exception']; - unset($context['exception']); - $this->rollbarNotifier->report_exception($exception, $context, $payload); - } else { - $this->rollbarNotifier->report_message($record['message'], $context['level'], $context, $payload); - } - $this->hasRecords = \true; - } - public function flush() - { - if ($this->hasRecords) { - $this->rollbarNotifier->flush(); - $this->hasRecords = \false; - } - } - /** - * {@inheritdoc} - */ - public function close() - { - $this->flush(); - } - /** - * {@inheritdoc} - */ - public function reset() - { - $this->flush(); - parent::reset(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php deleted file mode 100644 index 143413a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php +++ /dev/null @@ -1,151 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Utils; -/** - * 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 \WPMailSMTP\Vendor\Monolog\Handler\StreamHandler -{ - const FILE_PER_DAY = 'Y-m-d'; - const FILE_PER_MONTH = 'Y-m'; - const FILE_PER_YEAR = 'Y'; - protected $filename; - protected $maxFiles; - protected $mustRotate; - protected $nextRotation; - protected $filenameFormat; - protected $dateFormat; - /** - * @param string $filename - * @param int $maxFiles The maximal amount of files to keep (0 means unlimited) - * @param int $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 - * @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($filename, $maxFiles = 0, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true, $filePermission = null, $useLocking = \false) - { - $this->filename = \WPMailSMTP\Vendor\Monolog\Utils::canonicalizePath($filename); - $this->maxFiles = (int) $maxFiles; - $this->nextRotation = new \DateTime('tomorrow'); - $this->filenameFormat = '{filename}-{date}'; - $this->dateFormat = 'Y-m-d'; - parent::__construct($this->getTimedFilename(), $level, $bubble, $filePermission, $useLocking); - } - /** - * {@inheritdoc} - */ - public function close() - { - parent::close(); - if (\true === $this->mustRotate) { - $this->rotate(); - } - } - /** - * {@inheritdoc} - */ - public function reset() - { - parent::reset(); - if (\true === $this->mustRotate) { - $this->rotate(); - } - } - public function setFilenameFormat($filenameFormat, $dateFormat) - { - if (!\preg_match('{^Y(([/_.-]?m)([/_.-]?d)?)?$}', $dateFormat)) { - \trigger_error('Invalid date format - format must be one of ' . 'RotatingFileHandler::FILE_PER_DAY ("Y-m-d"), RotatingFileHandler::FILE_PER_MONTH ("Y-m") ' . 'or RotatingFileHandler::FILE_PER_YEAR ("Y"), or you can set one of the ' . 'date formats using slashes, underscores and/or dots instead of dashes.', \E_USER_DEPRECATED); - } - if (\substr_count($filenameFormat, '{date}') === 0) { - \trigger_error('Invalid filename format - format should contain at least `{date}`, because otherwise rotating is impossible.', \E_USER_DEPRECATED); - } - $this->filenameFormat = $filenameFormat; - $this->dateFormat = $dateFormat; - $this->url = $this->getTimedFilename(); - $this->close(); - } - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - // on the first record written, if the log is new, we should rotate (once per day) - if (null === $this->mustRotate) { - $this->mustRotate = !\file_exists($this->url); - } - if ($this->nextRotation < $record['datetime']) { - $this->mustRotate = \true; - $this->close(); - } - parent::write($record); - } - /** - * Rotates the files. - */ - protected function rotate() - { - // update filename - $this->url = $this->getTimedFilename(); - $this->nextRotation = new \DateTime('tomorrow'); - // skip GC of old logs if files are unlimited - if (0 === $this->maxFiles) { - return; - } - $logFiles = \glob($this->getGlobPattern()); - if ($this->maxFiles >= \count($logFiles)) { - // no files to remove - return; - } - // Sorting the files by name to remove the older ones - \usort($logFiles, function ($a, $b) { - return \strcmp($b, $a); - }); - foreach (\array_slice($logFiles, $this->maxFiles) as $file) { - if (\is_writable($file)) { - // suppress errors here as unlink() might fail if two processes - // are cleaning up/rotating at the same time - \set_error_handler(function ($errno, $errstr, $errfile, $errline) { - }); - \unlink($file); - \restore_error_handler(); - } - } - $this->mustRotate = \false; - } - protected function getTimedFilename() - { - $fileInfo = \pathinfo($this->filename); - $timedFilename = \str_replace(array('{filename}', '{date}'), array($fileInfo['filename'], \date($this->dateFormat)), $fileInfo['dirname'] . '/' . $this->filenameFormat); - if (!empty($fileInfo['extension'])) { - $timedFilename .= '.' . $fileInfo['extension']; - } - return $timedFilename; - } - protected function getGlobPattern() - { - $fileInfo = \pathinfo($this->filename); - $glob = \str_replace(array('{filename}', '{date}'), array($fileInfo['filename'], '[0-9][0-9][0-9][0-9]*'), $fileInfo['dirname'] . '/' . $this->filenameFormat); - if (!empty($fileInfo['extension'])) { - $glob .= '.' . $fileInfo['extension']; - } - return $glob; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SamplingHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SamplingHandler.php deleted file mode 100644 index 2d2d629..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SamplingHandler.php +++ /dev/null @@ -1,99 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -/** - * 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 - */ -class SamplingHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractHandler -{ - /** - * @var callable|HandlerInterface $handler - */ - protected $handler; - /** - * @var int $factor - */ - protected $factor; - /** - * @param callable|HandlerInterface $handler Handler or factory callable($record|null, $samplingHandler). - * @param int $factor Sample factor - */ - public function __construct($handler, $factor) - { - parent::__construct(); - $this->handler = $handler; - $this->factor = $factor; - if (!$this->handler instanceof \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface && !\is_callable($this->handler)) { - throw new \RuntimeException("The given handler (" . \json_encode($this->handler) . ") is not a callable nor a Monolog\\Handler\\HandlerInterface object"); - } - } - public function isHandling(array $record) - { - return $this->getHandler($record)->isHandling($record); - } - public function handle(array $record) - { - if ($this->isHandling($record) && \mt_rand(1, $this->factor) === 1) { - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = \call_user_func($processor, $record); - } - } - $this->getHandler($record)->handle($record); - } - return \false === $this->bubble; - } - /** - * Return the nested handler - * - * If the handler was provided as a factory callable, this will trigger the handler's instantiation. - * - * @return HandlerInterface - */ - public function getHandler(array $record = null) - { - if (!$this->handler instanceof \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface) { - $this->handler = \call_user_func($this->handler, $record, $this); - if (!$this->handler instanceof \WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface) { - throw new \RuntimeException("The factory callable should return a HandlerInterface"); - } - } - return $this->handler; - } - /** - * {@inheritdoc} - */ - public function setFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter) - { - $this->getHandler()->setFormatter($formatter); - return $this; - } - /** - * {@inheritdoc} - */ - public function getFormatter() - { - return $this->getHandler()->getFormatter(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php deleted file mode 100644 index 21ef915..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php +++ /dev/null @@ -1,239 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler\Slack; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Utils; -use WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter; -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -/** - * 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 - */ -class SlackRecord -{ - const COLOR_DANGER = 'danger'; - const COLOR_WARNING = 'warning'; - const COLOR_GOOD = 'good'; - 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 - */ - 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 array - */ - private $excludeFields; - /** - * @var FormatterInterface - */ - private $formatter; - /** - * @var NormalizerFormatter - */ - private $normalizerFormatter; - public function __construct($channel = null, $username = null, $useAttachment = \true, $userIcon = null, $useShortAttachment = \false, $includeContextAndExtra = \false, array $excludeFields = array(), \WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter = null) - { - $this->channel = $channel; - $this->username = $username; - $this->userIcon = \trim($userIcon, ':'); - $this->useAttachment = $useAttachment; - $this->useShortAttachment = $useShortAttachment; - $this->includeContextAndExtra = $includeContextAndExtra; - $this->excludeFields = $excludeFields; - $this->formatter = $formatter; - if ($this->includeContextAndExtra) { - $this->normalizerFormatter = new \WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter(); - } - } - public function getSlackData(array $record) - { - $dataArray = array(); - $record = $this->excludeFields($record); - if ($this->username) { - $dataArray['username'] = $this->username; - } - if ($this->channel) { - $dataArray['channel'] = $this->channel; - } - if ($this->formatter && !$this->useAttachment) { - $message = $this->formatter->format($record); - } else { - $message = $record['message']; - } - if ($this->useAttachment) { - $attachment = array('fallback' => $message, 'text' => $message, 'color' => $this->getAttachmentColor($record['level']), 'fields' => array(), 'mrkdwn_in' => array('fields'), 'ts' => $record['datetime']->getTimestamp()); - if ($this->useShortAttachment) { - $attachment['title'] = $record['level_name']; - } else { - $attachment['title'] = 'Message'; - $attachment['fields'][] = $this->generateAttachmentField('Level', $record['level_name']); - } - if ($this->includeContextAndExtra) { - foreach (array('extra', 'context') as $key) { - if (empty($record[$key])) { - continue; - } - if ($this->useShortAttachment) { - $attachment['fields'][] = $this->generateAttachmentField($key, $record[$key]); - } else { - // Add all extra fields as individual fields in attachment - $attachment['fields'] = \array_merge($attachment['fields'], $this->generateAttachmentFields($record[$key])); - } - } - } - $dataArray['attachments'] = array($attachment); - } else { - $dataArray['text'] = $message; - } - if ($this->userIcon) { - if (\filter_var($this->userIcon, \FILTER_VALIDATE_URL)) { - $dataArray['icon_url'] = $this->userIcon; - } else { - $dataArray['icon_emoji'] = ":{$this->userIcon}:"; - } - } - return $dataArray; - } - /** - * Returned a Slack message attachment color associated with - * provided level. - * - * @param int $level - * @return string - */ - public function getAttachmentColor($level) - { - switch (\true) { - case $level >= \WPMailSMTP\Vendor\Monolog\Logger::ERROR: - return self::COLOR_DANGER; - case $level >= \WPMailSMTP\Vendor\Monolog\Logger::WARNING: - return self::COLOR_WARNING; - case $level >= \WPMailSMTP\Vendor\Monolog\Logger::INFO: - return self::COLOR_GOOD; - default: - return self::COLOR_DEFAULT; - } - } - /** - * Stringifies an array of key/value pairs to be used in attachment fields - * - * @param array $fields - * - * @return string - */ - public function stringify($fields) - { - $normalized = $this->normalizerFormatter->format($fields); - $prettyPrintFlag = \defined('JSON_PRETTY_PRINT') ? \JSON_PRETTY_PRINT : 128; - $flags = 0; - if (\PHP_VERSION_ID >= 50400) { - $flags = \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE; - } - $hasSecondDimension = \count(\array_filter($normalized, 'is_array')); - $hasNonNumericKeys = !\count(\array_filter(\array_keys($normalized), 'is_numeric')); - return $hasSecondDimension || $hasNonNumericKeys ? \WPMailSMTP\Vendor\Monolog\Utils::jsonEncode($normalized, $prettyPrintFlag | $flags) : \WPMailSMTP\Vendor\Monolog\Utils::jsonEncode($normalized, $flags); - } - /** - * Sets the formatter - * - * @param FormatterInterface $formatter - */ - public function setFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter) - { - $this->formatter = $formatter; - } - /** - * Generates attachment field - * - * @param string $title - * @param string|array $value - * - * @return array - */ - private function generateAttachmentField($title, $value) - { - $value = \is_array($value) ? \sprintf('```%s```', $this->stringify($value)) : $value; - return array('title' => \ucfirst($title), 'value' => $value, 'short' => \false); - } - /** - * Generates a collection of attachment fields from array - * - * @param array $data - * - * @return array - */ - private function generateAttachmentFields(array $data) - { - $fields = array(); - foreach ($this->normalizerFormatter->format($data) as $key => $value) { - $fields[] = $this->generateAttachmentField($key, $value); - } - return $fields; - } - /** - * Get a copy of record with fields excluded according to $this->excludeFields - * - * @param array $record - * - * @return array - */ - private function excludeFields(array $record) - { - foreach ($this->excludeFields as $field) { - $keys = \explode('.', $field); - $node =& $record; - $lastKey = \end($keys); - foreach ($keys as $key) { - if (!isset($node[$key])) { - break; - } - if ($lastKey === $key) { - unset($node[$key]); - break; - } - $node =& $node[$key]; - } - } - return $record; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackHandler.php deleted file mode 100644 index 8af2f08..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackHandler.php +++ /dev/null @@ -1,178 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Utils; -use WPMailSMTP\Vendor\Monolog\Handler\Slack\SlackRecord; -/** - * Sends notifications through Slack API - * - * @author Greg Kedzierski - * @see https://api.slack.com/ - */ -class SlackHandler extends \WPMailSMTP\Vendor\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 int $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 - * @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 array $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($token, $channel, $username = null, $useAttachment = \true, $iconEmoji = null, $level = \WPMailSMTP\Vendor\Monolog\Logger::CRITICAL, $bubble = \true, $useShortAttachment = \false, $includeContextAndExtra = \false, array $excludeFields = array()) - { - if (!\extension_loaded('openssl')) { - throw new \WPMailSMTP\Vendor\Monolog\Handler\MissingExtensionException('The OpenSSL PHP extension is required to use the SlackHandler'); - } - parent::__construct('ssl://slack.com:443', $level, $bubble); - $this->slackRecord = new \WPMailSMTP\Vendor\Monolog\Handler\Slack\SlackRecord($channel, $username, $useAttachment, $iconEmoji, $useShortAttachment, $includeContextAndExtra, $excludeFields, $this->formatter); - $this->token = $token; - } - public function getSlackRecord() - { - return $this->slackRecord; - } - public function getToken() - { - return $this->token; - } - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - $content = $this->buildContent($record); - return $this->buildHeader($content) . $content; - } - /** - * Builds the body of API call - * - * @param array $record - * @return string - */ - private function buildContent($record) - { - $dataArray = $this->prepareContentData($record); - return \http_build_query($dataArray); - } - /** - * Prepares content data - * - * @param array $record - * @return array - */ - protected function prepareContentData($record) - { - $dataArray = $this->slackRecord->getSlackData($record); - $dataArray['token'] = $this->token; - if (!empty($dataArray['attachments'])) { - $dataArray['attachments'] = \WPMailSMTP\Vendor\Monolog\Utils::jsonEncode($dataArray['attachments']); - } - return $dataArray; - } - /** - * Builds the header of the API Call - * - * @param string $content - * @return string - */ - private function buildHeader($content) - { - $header = "POST /api/chat.postMessage HTTP/1.1\r\n"; - $header .= "Host: slack.com\r\n"; - $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $header .= "Content-Length: " . \strlen($content) . "\r\n"; - $header .= "\r\n"; - return $header; - } - /** - * {@inheritdoc} - * - * @param array $record - */ - protected function write(array $record) - { - parent::write($record); - $this->finalizeWrite(); - } - /** - * 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() - { - $res = $this->getResource(); - if (\is_resource($res)) { - @\fread($res, 2048); - } - $this->closeSocket(); - } - /** - * Returned a Slack message attachment color associated with - * provided level. - * - * @param int $level - * @return string - * @deprecated Use underlying SlackRecord instead - */ - protected function getAttachmentColor($level) - { - \trigger_error('SlackHandler::getAttachmentColor() is deprecated. Use underlying SlackRecord instead.', \E_USER_DEPRECATED); - return $this->slackRecord->getAttachmentColor($level); - } - /** - * Stringifies an array of key/value pairs to be used in attachment fields - * - * @param array $fields - * @return string - * @deprecated Use underlying SlackRecord instead - */ - protected function stringify($fields) - { - \trigger_error('SlackHandler::stringify() is deprecated. Use underlying SlackRecord instead.', \E_USER_DEPRECATED); - return $this->slackRecord->stringify($fields); - } - public function setFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter) - { - parent::setFormatter($formatter); - $this->slackRecord->setFormatter($formatter); - return $this; - } - public function getFormatter() - { - $formatter = parent::getFormatter(); - $this->slackRecord->setFormatter($formatter); - return $formatter; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php deleted file mode 100644 index 104d9ad..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php +++ /dev/null @@ -1,90 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Utils; -use WPMailSMTP\Vendor\Monolog\Handler\Slack\SlackRecord; -/** - * Sends notifications through Slack Webhooks - * - * @author Haralan Dobrev - * @see https://api.slack.com/incoming-webhooks - */ -class SlackWebhookHandler extends \WPMailSMTP\Vendor\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 int $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 - * @param array $excludeFields Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2'] - */ - public function __construct($webhookUrl, $channel = null, $username = null, $useAttachment = \true, $iconEmoji = null, $useShortAttachment = \false, $includeContextAndExtra = \false, $level = \WPMailSMTP\Vendor\Monolog\Logger::CRITICAL, $bubble = \true, array $excludeFields = array()) - { - parent::__construct($level, $bubble); - $this->webhookUrl = $webhookUrl; - $this->slackRecord = new \WPMailSMTP\Vendor\Monolog\Handler\Slack\SlackRecord($channel, $username, $useAttachment, $iconEmoji, $useShortAttachment, $includeContextAndExtra, $excludeFields, $this->formatter); - } - public function getSlackRecord() - { - return $this->slackRecord; - } - public function getWebhookUrl() - { - return $this->webhookUrl; - } - /** - * {@inheritdoc} - * - * @param array $record - */ - protected function write(array $record) - { - $postData = $this->slackRecord->getSlackData($record); - $postString = \WPMailSMTP\Vendor\Monolog\Utils::jsonEncode($postData); - $ch = \curl_init(); - $options = array(\CURLOPT_URL => $this->webhookUrl, \CURLOPT_POST => \true, \CURLOPT_RETURNTRANSFER => \true, \CURLOPT_HTTPHEADER => array('Content-type: application/json'), \CURLOPT_POSTFIELDS => $postString); - if (\defined('CURLOPT_SAFE_UPLOAD')) { - $options[\CURLOPT_SAFE_UPLOAD] = \true; - } - \curl_setopt_array($ch, $options); - \WPMailSMTP\Vendor\Monolog\Handler\Curl\Util::execute($ch); - } - public function setFormatter(\WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface $formatter) - { - parent::setFormatter($formatter); - $this->slackRecord->setFormatter($formatter); - return $this; - } - public function getFormatter() - { - $formatter = parent::getFormatter(); - $this->slackRecord->setFormatter($formatter); - return $formatter; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php deleted file mode 100644 index c915d3f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php +++ /dev/null @@ -1,70 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * Sends notifications through Slack's Slackbot - * - * @author Haralan Dobrev - * @see https://slack.com/apps/A0F81R8ET-slackbot - * @deprecated According to Slack the API used on this handler it is deprecated. - * Therefore this handler will be removed on 2.x - * Slack suggests to use webhooks instead. Please contact slack for more information. - */ -class SlackbotHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - /** - * The slug of the Slack team - * @var string - */ - private $slackTeam; - /** - * Slackbot token - * @var string - */ - private $token; - /** - * Slack channel name - * @var string - */ - private $channel; - /** - * @param string $slackTeam Slack team slug - * @param string $token Slackbot token - * @param string $channel Slack channel (encoded ID or name) - * @param int $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 - */ - public function __construct($slackTeam, $token, $channel, $level = \WPMailSMTP\Vendor\Monolog\Logger::CRITICAL, $bubble = \true) - { - @\trigger_error('SlackbotHandler is deprecated and will be removed on 2.x', \E_USER_DEPRECATED); - parent::__construct($level, $bubble); - $this->slackTeam = $slackTeam; - $this->token = $token; - $this->channel = $channel; - } - /** - * {@inheritdoc} - * - * @param array $record - */ - protected function write(array $record) - { - $slackbotUrl = \sprintf('https://%s.slack.com/services/hooks/slackbot?token=%s&channel=%s', $this->slackTeam, $this->token, $this->channel); - $ch = \curl_init(); - \curl_setopt($ch, \CURLOPT_URL, $slackbotUrl); - \curl_setopt($ch, \CURLOPT_POST, \true); - \curl_setopt($ch, \CURLOPT_RETURNTRANSFER, \true); - \curl_setopt($ch, \CURLOPT_POSTFIELDS, $record['message']); - \WPMailSMTP\Vendor\Monolog\Handler\Curl\Util::execute($ch); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SocketHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SocketHandler.php deleted file mode 100644 index 877be7d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SocketHandler.php +++ /dev/null @@ -1,344 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * Stores to any socket - uses fsockopen() or pfsockopen(). - * - * @author Pablo de Leon Belloc - * @see http://php.net/manual/en/function.fsockopen.php - */ -class SocketHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - private $connectionString; - private $connectionTimeout; - private $resource; - private $timeout = 0; - private $writingTimeout = 10; - private $lastSentBytes = null; - private $chunkSize = null; - private $persistent = \false; - private $errno; - private $errstr; - private $lastWritingAt; - /** - * @param string $connectionString Socket connection string - * @param int $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 - */ - public function __construct($connectionString, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - parent::__construct($level, $bubble); - $this->connectionString = $connectionString; - $this->connectionTimeout = (float) \ini_get('default_socket_timeout'); - } - /** - * Connect (if necessary) and write to the socket - * - * @param array $record - * - * @throws \UnexpectedValueException - * @throws \RuntimeException - */ - protected function write(array $record) - { - $this->connectIfNotConnected(); - $data = $this->generateDataStream($record); - $this->writeToSocket($data); - } - /** - * We will not close a PersistentSocket instance so it can be reused in other requests. - */ - public function close() - { - if (!$this->isPersistent()) { - $this->closeSocket(); - } - } - /** - * Close socket, if open - */ - public function closeSocket() - { - if (\is_resource($this->resource)) { - \fclose($this->resource); - $this->resource = null; - } - } - /** - * Set socket connection to nbe persistent. It only has effect before the connection is initiated. - * - * @param bool $persistent - */ - public function setPersistent($persistent) - { - $this->persistent = (bool) $persistent; - } - /** - * Set connection timeout. Only has effect before we connect. - * - * @param float $seconds - * - * @see http://php.net/manual/en/function.fsockopen.php - */ - public function setConnectionTimeout($seconds) - { - $this->validateTimeout($seconds); - $this->connectionTimeout = (float) $seconds; - } - /** - * Set write timeout. Only has effect before we connect. - * - * @param float $seconds - * - * @see http://php.net/manual/en/function.stream-set-timeout.php - */ - public function setTimeout($seconds) - { - $this->validateTimeout($seconds); - $this->timeout = (float) $seconds; - } - /** - * Set writing timeout. Only has effect during connection in the writing cycle. - * - * @param float $seconds 0 for no timeout - */ - public function setWritingTimeout($seconds) - { - $this->validateTimeout($seconds); - $this->writingTimeout = (float) $seconds; - } - /** - * Set chunk size. Only has effect during connection in the writing cycle. - * - * @param float $bytes - */ - public function setChunkSize($bytes) - { - $this->chunkSize = $bytes; - } - /** - * Get current connection string - * - * @return string - */ - public function getConnectionString() - { - return $this->connectionString; - } - /** - * Get persistent setting - * - * @return bool - */ - public function isPersistent() - { - return $this->persistent; - } - /** - * Get current connection timeout setting - * - * @return float - */ - public function getConnectionTimeout() - { - return $this->connectionTimeout; - } - /** - * Get current in-transfer timeout - * - * @return float - */ - public function getTimeout() - { - return $this->timeout; - } - /** - * Get current local writing timeout - * - * @return float - */ - public function getWritingTimeout() - { - return $this->writingTimeout; - } - /** - * Get current chunk size - * - * @return float - */ - public function getChunkSize() - { - return $this->chunkSize; - } - /** - * 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. - * - * @return bool - */ - public function isConnected() - { - return \is_resource($this->resource) && !\feof($this->resource); - // on TCP - other party can close connection. - } - /** - * Wrapper to allow mocking - */ - protected function pfsockopen() - { - return @\pfsockopen($this->connectionString, -1, $this->errno, $this->errstr, $this->connectionTimeout); - } - /** - * Wrapper to allow mocking - */ - protected function fsockopen() - { - return @\fsockopen($this->connectionString, -1, $this->errno, $this->errstr, $this->connectionTimeout); - } - /** - * Wrapper to allow mocking - * - * @see http://php.net/manual/en/function.stream-set-timeout.php - */ - protected function streamSetTimeout() - { - $seconds = \floor($this->timeout); - $microseconds = \round(($this->timeout - $seconds) * 1000000.0); - return \stream_set_timeout($this->resource, $seconds, $microseconds); - } - /** - * Wrapper to allow mocking - * - * @see http://php.net/manual/en/function.stream-set-chunk-size.php - */ - protected function streamSetChunkSize() - { - return \stream_set_chunk_size($this->resource, $this->chunkSize); - } - /** - * Wrapper to allow mocking - */ - protected function fwrite($data) - { - return @\fwrite($this->resource, $data); - } - /** - * Wrapper to allow mocking - */ - protected function streamGetMetadata() - { - return \stream_get_meta_data($this->resource); - } - private function validateTimeout($value) - { - $ok = \filter_var($value, \FILTER_VALIDATE_FLOAT); - if ($ok === \false || $value < 0) { - throw new \InvalidArgumentException("Timeout must be 0 or a positive float (got {$value})"); - } - } - private function connectIfNotConnected() - { - if ($this->isConnected()) { - return; - } - $this->connect(); - } - protected function generateDataStream($record) - { - return (string) $record['formatted']; - } - /** - * @return resource|null - */ - protected function getResource() - { - return $this->resource; - } - private function connect() - { - $this->createSocketResource(); - $this->setSocketTimeout(); - $this->setStreamChunkSize(); - } - private function createSocketResource() - { - if ($this->isPersistent()) { - $resource = $this->pfsockopen(); - } else { - $resource = $this->fsockopen(); - } - if (!$resource) { - throw new \UnexpectedValueException("Failed connecting to {$this->connectionString} ({$this->errno}: {$this->errstr})"); - } - $this->resource = $resource; - } - private function setSocketTimeout() - { - if (!$this->streamSetTimeout()) { - throw new \UnexpectedValueException("Failed setting timeout with stream_set_timeout()"); - } - } - private function setStreamChunkSize() - { - if ($this->chunkSize && !$this->streamSetChunkSize()) { - throw new \UnexpectedValueException("Failed setting chunk size with stream_set_chunk_size()"); - } - } - private function writeToSocket($data) - { - $length = \strlen($data); - $sent = 0; - $this->lastSentBytes = $sent; - while ($this->isConnected() && $sent < $length) { - if (0 == $sent) { - $chunk = $this->fwrite($data); - } else { - $chunk = $this->fwrite(\substr($data, $sent)); - } - if ($chunk === \false) { - throw new \RuntimeException("Could not write to socket"); - } - $sent += $chunk; - $socketInfo = $this->streamGetMetadata(); - if ($socketInfo['timed_out']) { - throw new \RuntimeException("Write timed-out"); - } - if ($this->writingIsTimedOut($sent)) { - throw new \RuntimeException("Write timed-out, no data sent for `{$this->writingTimeout}` seconds, probably we got disconnected (sent {$sent} of {$length})"); - } - } - if (!$this->isConnected() && $sent < $length) { - throw new \RuntimeException("End-of-file reached, probably we got disconnected (sent {$sent} of {$length})"); - } - } - private function writingIsTimedOut($sent) - { - $writingTimeout = (int) \floor($this->writingTimeout); - if (0 === $writingTimeout) { - return \false; - } - if ($sent !== $this->lastSentBytes) { - $this->lastWritingAt = \time(); - $this->lastSentBytes = $sent; - return \false; - } else { - \usleep(100); - } - if (\time() - $this->lastWritingAt >= $writingTimeout) { - $this->closeSocket(); - return \true; - } - return \false; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/StreamHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/StreamHandler.php deleted file mode 100644 index aad3d13..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/StreamHandler.php +++ /dev/null @@ -1,160 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Utils; -/** - * Stores to any stream resource - * - * Can be used to store into php://stderr, remote and local files, etc. - * - * @author Jordi Boggiano - */ -class StreamHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - protected $stream; - protected $url; - private $errorMessage; - protected $filePermission; - protected $useLocking; - private $dirCreated; - /** - * @param resource|string $stream - * @param int $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 - * @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 \Exception If a missing directory is not buildable - * @throws \InvalidArgumentException If stream is not a resource or string - */ - public function __construct($stream, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true, $filePermission = null, $useLocking = \false) - { - parent::__construct($level, $bubble); - if (\is_resource($stream)) { - $this->stream = $stream; - } elseif (\is_string($stream)) { - $this->url = \WPMailSMTP\Vendor\Monolog\Utils::canonicalizePath($stream); - } else { - throw new \InvalidArgumentException('A stream must either be a resource or a string.'); - } - $this->filePermission = $filePermission; - $this->useLocking = $useLocking; - } - /** - * {@inheritdoc} - */ - public function close() - { - if ($this->url && \is_resource($this->stream)) { - \fclose($this->stream); - } - $this->stream = null; - $this->dirCreated = null; - } - /** - * Return the currently active stream if it is open - * - * @return resource|null - */ - public function getStream() - { - return $this->stream; - } - /** - * Return the stream URL if it was configured with a URL and not an active resource - * - * @return string|null - */ - public function getUrl() - { - return $this->url; - } - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - if (!\is_resource($this->stream)) { - if (null === $this->url || '' === $this->url) { - throw new \LogicException('Missing stream url, the stream can not be opened. This may be caused by a premature call to close().'); - } - $this->createDir(); - $this->errorMessage = null; - \set_error_handler(array($this, 'customErrorHandler')); - $this->stream = \fopen($this->url, 'a'); - if ($this->filePermission !== null) { - @\chmod($this->url, $this->filePermission); - } - \restore_error_handler(); - if (!\is_resource($this->stream)) { - $this->stream = null; - throw new \UnexpectedValueException(\sprintf('The stream or file "%s" could not be opened in append mode: ' . $this->errorMessage, $this->url)); - } - } - if ($this->useLocking) { - // ignoring errors here, there's not much we can do about them - \flock($this->stream, \LOCK_EX); - } - $this->streamWrite($this->stream, $record); - if ($this->useLocking) { - \flock($this->stream, \LOCK_UN); - } - } - /** - * Write to stream - * @param resource $stream - * @param array $record - */ - protected function streamWrite($stream, array $record) - { - \fwrite($stream, (string) $record['formatted']); - } - private function customErrorHandler($code, $msg) - { - $this->errorMessage = \preg_replace('{^(fopen|mkdir)\\(.*?\\): }', '', $msg); - } - /** - * @param string $stream - * - * @return null|string - */ - private function getDirFromStream($stream) - { - $pos = \strpos($stream, '://'); - if ($pos === \false) { - return \dirname($stream); - } - if ('file://' === \substr($stream, 0, 7)) { - return \dirname(\substr($stream, 7)); - } - return; - } - private function createDir() - { - // Do not try to create dir if it has already been tried. - if ($this->dirCreated) { - return; - } - $dir = $this->getDirFromStream($this->url); - if (null !== $dir && !\is_dir($dir)) { - $this->errorMessage = null; - \set_error_handler(array($this, 'customErrorHandler')); - $status = \mkdir($dir, 0777, \true); - \restore_error_handler(); - if (\false === $status && !\is_dir($dir)) { - throw new \UnexpectedValueException(\sprintf('There is no existing directory at "%s" and its not buildable: ' . $this->errorMessage, $dir)); - } - } - $this->dirCreated = \true; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php deleted file mode 100644 index 44cf898..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php +++ /dev/null @@ -1,97 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Formatter\FormatterInterface; -use WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter; -use WPMailSMTP\Vendor\Swift; -/** - * SwiftMailerHandler uses Swift_Mailer to send the emails - * - * @author Gyula Sallai - */ -class SwiftMailerHandler extends \WPMailSMTP\Vendor\Monolog\Handler\MailHandler -{ - protected $mailer; - private $messageTemplate; - /** - * @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 - * @param int $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 - */ - public function __construct(\WPMailSMTP\Vendor\Swift_Mailer $mailer, $message, $level = \WPMailSMTP\Vendor\Monolog\Logger::ERROR, $bubble = \true) - { - parent::__construct($level, $bubble); - $this->mailer = $mailer; - $this->messageTemplate = $message; - } - /** - * {@inheritdoc} - */ - protected function send($content, array $records) - { - $this->mailer->send($this->buildMessage($content, $records)); - } - /** - * Gets the formatter for the Swift_Message subject. - * - * @param string $format The format of the subject - * @return FormatterInterface - */ - protected function getSubjectFormatter($format) - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\LineFormatter($format); - } - /** - * 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 - */ - protected function buildMessage($content, array $records) - { - $message = null; - if ($this->messageTemplate instanceof \WPMailSMTP\Vendor\Swift_Message) { - $message = clone $this->messageTemplate; - $message->generateId(); - } elseif (\is_callable($this->messageTemplate)) { - $message = \call_user_func($this->messageTemplate, $content, $records); - } - if (!$message instanceof \WPMailSMTP\Vendor\Swift_Message) { - throw new \InvalidArgumentException('Could not resolve message as instance of Swift_Message or a callable returning it'); - } - if ($records) { - $subjectFormatter = $this->getSubjectFormatter($message->getSubject()); - $message->setSubject($subjectFormatter->format($this->getHighestRecord($records))); - } - $message->setBody($content); - if (\version_compare(\WPMailSMTP\Vendor\Swift::VERSION, '6.0.0', '>=')) { - $message->setDate(new \DateTimeImmutable()); - } else { - $message->setDate(\time()); - } - return $message; - } - /** - * BC getter, to be removed in 2.0 - */ - public function __get($name) - { - if ($name === 'message') { - \trigger_error('SwiftMailerHandler->message is deprecated, use ->buildMessage() instead to retrieve the message', \E_USER_DEPRECATED); - return $this->buildMessage(null, array()); - } - throw new \InvalidArgumentException('Invalid property ' . $name); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogHandler.php deleted file mode 100644 index 5bedba3..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogHandler.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * 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 \WPMailSMTP\Vendor\Monolog\Handler\AbstractSyslogHandler -{ - protected $ident; - protected $logopts; - /** - * @param string $ident - * @param mixed $facility - * @param int $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 - * @param int $logopts Option flags for the openlog() call, defaults to LOG_PID - */ - public function __construct($ident, $facility = \LOG_USER, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true, $logopts = \LOG_PID) - { - parent::__construct($facility, $level, $bubble); - $this->ident = $ident; - $this->logopts = $logopts; - } - /** - * {@inheritdoc} - */ - public function close() - { - \closelog(); - } - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - if (!\openlog($this->ident, $this->logopts, $this->facility)) { - throw new \LogicException('Can\'t open syslog for ident "' . $this->ident . '" and facility "' . $this->facility . '"'); - } - \syslog($this->logLevels[$record['level']], (string) $record['formatted']); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php deleted file mode 100644 index ad4c782..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler\SyslogUdp; - -class UdpSocket -{ - const DATAGRAM_MAX_LENGTH = 65023; - protected $ip; - protected $port; - protected $socket; - public function __construct($ip, $port = 514) - { - $this->ip = $ip; - $this->port = $port; - $this->socket = \socket_create(\AF_INET, \SOCK_DGRAM, \SOL_UDP); - } - public function write($line, $header = "") - { - $this->send($this->assembleMessage($line, $header)); - } - public function close() - { - if (\is_resource($this->socket)) { - \socket_close($this->socket); - $this->socket = null; - } - } - protected function send($chunk) - { - if (!\is_resource($this->socket)) { - throw new \LogicException('The UdpSocket to ' . $this->ip . ':' . $this->port . ' has been closed and can not be written to anymore'); - } - \socket_sendto($this->socket, $chunk, \strlen($chunk), $flags = 0, $this->ip, $this->port); - } - protected function assembleMessage($line, $header) - { - $chunkSize = self::DATAGRAM_MAX_LENGTH - \strlen($header); - return $header . \substr($line, 0, $chunkSize); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php deleted file mode 100644 index 4dfdd91..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php +++ /dev/null @@ -1,94 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Logger; -use WPMailSMTP\Vendor\Monolog\Handler\SyslogUdp\UdpSocket; -/** - * A Handler for logging to a remote syslogd server. - * - * @author Jesper Skovgaard Nielsen - * @author Dominik Kukacka - */ -class SyslogUdpHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractSyslogHandler -{ - const RFC3164 = 0; - const RFC5424 = 1; - private $dateFormats = array(self::RFC3164 => 'M d H:i:s', self::RFC5424 => \DateTime::RFC3339); - protected $socket; - protected $ident; - protected $rfc; - /** - * @param string $host - * @param int $port - * @param mixed $facility - * @param int $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 - * @param string $ident Program name or tag for each log message. - * @param int $rfc RFC to format the message for. - */ - public function __construct($host, $port = 514, $facility = \LOG_USER, $level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true, $ident = 'php', $rfc = self::RFC5424) - { - parent::__construct($facility, $level, $bubble); - $this->ident = $ident; - $this->rfc = $rfc; - $this->socket = new \WPMailSMTP\Vendor\Monolog\Handler\SyslogUdp\UdpSocket($host, $port ?: 514); - } - protected function write(array $record) - { - $lines = $this->splitMessageIntoLines($record['formatted']); - $header = $this->makeCommonSyslogHeader($this->logLevels[$record['level']]); - foreach ($lines as $line) { - $this->socket->write($line, $header); - } - } - public function close() - { - $this->socket->close(); - } - private function splitMessageIntoLines($message) - { - if (\is_array($message)) { - $message = \implode("\n", $message); - } - return \preg_split('/$\\R?^/m', $message, -1, \PREG_SPLIT_NO_EMPTY); - } - /** - * Make common syslog header (see rfc5424 or rfc3164) - */ - protected function makeCommonSyslogHeader($severity) - { - $priority = $severity + $this->facility; - if (!($pid = \getmypid())) { - $pid = '-'; - } - if (!($hostname = \gethostname())) { - $hostname = '-'; - } - $date = $this->getDateTime(); - if ($this->rfc === self::RFC3164) { - return "<{$priority}>" . $date . " " . $hostname . " " . $this->ident . "[" . $pid . "]: "; - } else { - return "<{$priority}>1 " . $date . " " . $hostname . " " . $this->ident . " " . $pid . " - - "; - } - } - protected function getDateTime() - { - return \date($this->dateFormats[$this->rfc]); - } - /** - * Inject your own socket, mainly used for testing - */ - public function setSocket($socket) - { - $this->socket = $socket; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/TestHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/TestHandler.php deleted file mode 100644 index 8879b73..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/TestHandler.php +++ /dev/null @@ -1,159 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -/** - * 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) - */ -class TestHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - protected $records = array(); - protected $recordsByLevel = array(); - private $skipReset = \false; - public function getRecords() - { - return $this->records; - } - public function clear() - { - $this->records = array(); - $this->recordsByLevel = array(); - } - public function reset() - { - if (!$this->skipReset) { - $this->clear(); - } - } - public function setSkipReset($skipReset) - { - $this->skipReset = $skipReset; - } - public function hasRecords($level) - { - return isset($this->recordsByLevel[$level]); - } - /** - * @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 int $level Logger::LEVEL constant value - */ - public function hasRecord($record, $level) - { - if (\is_string($record)) { - $record = array('message' => $record); - } - return $this->hasRecordThatPasses(function ($rec) use($record) { - if ($rec['message'] !== $record['message']) { - return \false; - } - if (isset($record['context']) && $rec['context'] !== $record['context']) { - return \false; - } - return \true; - }, $level); - } - public function hasRecordThatContains($message, $level) - { - return $this->hasRecordThatPasses(function ($rec) use($message) { - return \strpos($rec['message'], $message) !== \false; - }, $level); - } - public function hasRecordThatMatches($regex, $level) - { - return $this->hasRecordThatPasses(function ($rec) use($regex) { - return \preg_match($regex, $rec['message']) > 0; - }, $level); - } - public function hasRecordThatPasses($predicate, $level) - { - if (!\is_callable($predicate)) { - throw new \InvalidArgumentException("Expected a callable for hasRecordThatSucceeds"); - } - if (!isset($this->recordsByLevel[$level])) { - return \false; - } - foreach ($this->recordsByLevel[$level] as $i => $rec) { - if (\call_user_func($predicate, $rec, $i)) { - return \true; - } - } - return \false; - } - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $this->recordsByLevel[$record['level']][] = $record; - $this->records[] = $record; - } - public function __call($method, $args) - { - if (\preg_match('/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/', $method, $matches) > 0) { - $genericMethod = $matches[1] . ('Records' !== $matches[3] ? 'Record' : '') . $matches[3]; - $level = \constant('WPMailSMTP\\Vendor\\Monolog\\Logger::' . \strtoupper($matches[2])); - if (\method_exists($this, $genericMethod)) { - $args[] = $level; - return \call_user_func_array(array($this, $genericMethod), $args); - } - } - throw new \BadMethodCallException('Call to undefined method ' . \get_class($this) . '::' . $method . '()'); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php deleted file mode 100644 index cd9036c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -/** - * 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 - */ -class WhatFailureGroupHandler extends \WPMailSMTP\Vendor\Monolog\Handler\GroupHandler -{ - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = \call_user_func($processor, $record); - } - } - foreach ($this->handlers as $handler) { - try { - $handler->handle($record); - } catch (\Exception $e) { - // What failure? - } catch (\Throwable $e) { - // What failure? - } - } - return \false === $this->bubble; - } - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - if ($this->processors) { - $processed = array(); - foreach ($records as $record) { - foreach ($this->processors as $processor) { - $record = \call_user_func($processor, $record); - } - $processed[] = $record; - } - $records = $processed; - } - foreach ($this->handlers as $handler) { - try { - $handler->handleBatch($records); - } catch (\Exception $e) { - // What failure? - } catch (\Throwable $e) { - // What failure? - } - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php deleted file mode 100644 index 9a889c4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php +++ /dev/null @@ -1,79 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Handler; - -use WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter; -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * Handler sending logs to Zend Monitor - * - * @author Christian Bergau - * @author Jason Davis - */ -class ZendMonitorHandler extends \WPMailSMTP\Vendor\Monolog\Handler\AbstractProcessingHandler -{ - /** - * Monolog level / ZendMonitor Custom Event priority map - * - * @var array - */ - protected $levelMap = array(); - /** - * Construct - * - * @param int $level - * @param bool $bubble - * @throws MissingExtensionException - */ - public function __construct($level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, $bubble = \true) - { - if (!\function_exists('WPMailSMTP\\Vendor\\zend_monitor_custom_event')) { - throw new \WPMailSMTP\Vendor\Monolog\Handler\MissingExtensionException('You must have Zend Server installed with Zend Monitor enabled in order to use this handler'); - } - //zend monitor constants are not defined if zend monitor is not enabled. - $this->levelMap = array(\WPMailSMTP\Vendor\Monolog\Logger::DEBUG => \WPMailSMTP\Vendor\ZEND_MONITOR_EVENT_SEVERITY_INFO, \WPMailSMTP\Vendor\Monolog\Logger::INFO => \WPMailSMTP\Vendor\ZEND_MONITOR_EVENT_SEVERITY_INFO, \WPMailSMTP\Vendor\Monolog\Logger::NOTICE => \WPMailSMTP\Vendor\ZEND_MONITOR_EVENT_SEVERITY_INFO, \WPMailSMTP\Vendor\Monolog\Logger::WARNING => \WPMailSMTP\Vendor\ZEND_MONITOR_EVENT_SEVERITY_WARNING, \WPMailSMTP\Vendor\Monolog\Logger::ERROR => \WPMailSMTP\Vendor\ZEND_MONITOR_EVENT_SEVERITY_ERROR, \WPMailSMTP\Vendor\Monolog\Logger::CRITICAL => \WPMailSMTP\Vendor\ZEND_MONITOR_EVENT_SEVERITY_ERROR, \WPMailSMTP\Vendor\Monolog\Logger::ALERT => \WPMailSMTP\Vendor\ZEND_MONITOR_EVENT_SEVERITY_ERROR, \WPMailSMTP\Vendor\Monolog\Logger::EMERGENCY => \WPMailSMTP\Vendor\ZEND_MONITOR_EVENT_SEVERITY_ERROR); - parent::__construct($level, $bubble); - } - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $this->writeZendMonitorCustomEvent(\WPMailSMTP\Vendor\Monolog\Logger::getLevelName($record['level']), $record['message'], $record['formatted'], $this->levelMap[$record['level']]); - } - /** - * Write to Zend Monitor Events - * @param string $type Text displayed in "Class Name (custom)" field - * @param string $message Text displayed in "Error String" - * @param mixed $formatted Displayed in Custom Variables tab - * @param int $severity Set the event severity level (-1,0,1) - */ - protected function writeZendMonitorCustomEvent($type, $message, $formatted, $severity) - { - zend_monitor_custom_event($type, $message, $formatted, $severity); - } - /** - * {@inheritdoc} - */ - public function getDefaultFormatter() - { - return new \WPMailSMTP\Vendor\Monolog\Formatter\NormalizerFormatter(); - } - /** - * Get the level map - * - * @return array - */ - public function getLevelMap() - { - return $this->levelMap; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Logger.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Logger.php deleted file mode 100644 index 2ba955e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Logger.php +++ /dev/null @@ -1,692 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog; - -use WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface; -use WPMailSMTP\Vendor\Monolog\Handler\StreamHandler; -use WPMailSMTP\Vendor\Psr\Log\LoggerInterface; -use WPMailSMTP\Vendor\Psr\Log\InvalidArgumentException; -use Exception; -/** - * 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 - */ -class Logger implements \WPMailSMTP\Vendor\Psr\Log\LoggerInterface, \WPMailSMTP\Vendor\Monolog\ResettableInterface -{ - /** - * Detailed debug information - */ - const DEBUG = 100; - /** - * Interesting events - * - * Examples: User logs in, SQL logs. - */ - const INFO = 200; - /** - * Uncommon events - */ - 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. - */ - const WARNING = 300; - /** - * Runtime errors - */ - const ERROR = 400; - /** - * Critical conditions - * - * Example: Application component unavailable, unexpected exception. - */ - 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. - */ - const ALERT = 550; - /** - * Urgent alert. - */ - 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 - */ - const API = 1; - /** - * Logging levels from syslog protocol defined in RFC 5424 - * - * @var array $levels Logging levels - */ - protected static $levels = array(self::DEBUG => 'DEBUG', self::INFO => 'INFO', self::NOTICE => 'NOTICE', self::WARNING => 'WARNING', self::ERROR => 'ERROR', self::CRITICAL => 'CRITICAL', self::ALERT => 'ALERT', self::EMERGENCY => 'EMERGENCY'); - /** - * @var \DateTimeZone - */ - protected static $timezone; - /** - * @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 callable - */ - protected $exceptionHandler; - /** - * @param string $name The logging channel - * @param HandlerInterface[] $handlers Optional stack of handlers, the first one in the array is called first, etc. - * @param callable[] $processors Optional array of processors - */ - public function __construct($name, array $handlers = array(), array $processors = array()) - { - $this->name = $name; - $this->setHandlers($handlers); - $this->processors = $processors; - } - /** - * @return string - */ - public function getName() - { - return $this->name; - } - /** - * Return a new cloned instance with the name changed - * - * @return static - */ - public function withName($name) - { - $new = clone $this; - $new->name = $name; - return $new; - } - /** - * Pushes a handler on to the stack. - * - * @param HandlerInterface $handler - * @return $this - */ - public function pushHandler(\WPMailSMTP\Vendor\Monolog\Handler\HandlerInterface $handler) - { - \array_unshift($this->handlers, $handler); - return $this; - } - /** - * Pops a handler from the stack - * - * @return HandlerInterface - */ - public function popHandler() - { - if (!$this->handlers) { - throw new \LogicException('You tried to pop from an empty handler stack.'); - } - return \array_shift($this->handlers); - } - /** - * Set handlers, replacing all existing ones. - * - * If a map is passed, keys will be ignored. - * - * @param HandlerInterface[] $handlers - * @return $this - */ - public function setHandlers(array $handlers) - { - $this->handlers = array(); - foreach (\array_reverse($handlers) as $handler) { - $this->pushHandler($handler); - } - return $this; - } - /** - * @return HandlerInterface[] - */ - public function getHandlers() - { - return $this->handlers; - } - /** - * Adds a processor on to the stack. - * - * @param callable $callback - * @return $this - */ - public function pushProcessor($callback) - { - if (!\is_callable($callback)) { - throw new \InvalidArgumentException('Processors must be valid callables (callback or object with an __invoke method), ' . \var_export($callback, \true) . ' given'); - } - \array_unshift($this->processors, $callback); - return $this; - } - /** - * Removes the processor on top of the stack and returns it. - * - * @return callable - */ - public function popProcessor() - { - if (!$this->processors) { - throw new \LogicException('You tried to pop from an empty processor stack.'); - } - return \array_shift($this->processors); - } - /** - * @return callable[] - */ - public function getProcessors() - { - return $this->processors; - } - /** - * Control the use of microsecond resolution timestamps in the 'datetime' - * member of new records. - * - * Generating microsecond resolution timestamps by calling - * microtime(true), formatting the result via sprintf() and then parsing - * the resulting string via \DateTime::createFromFormat() can incur - * a measurable runtime overhead vs simple usage of DateTime to capture - * a second resolution timestamp in systems which generate a large number - * of log events. - * - * @param bool $micro True to use microtime() to create timestamps - */ - public function useMicrosecondTimestamps($micro) - { - $this->microsecondTimestamps = (bool) $micro; - } - /** - * Adds a log record. - * - * @param int $level The logging level - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function addRecord($level, $message, array $context = array()) - { - if (!$this->handlers) { - $this->pushHandler(new \WPMailSMTP\Vendor\Monolog\Handler\StreamHandler('php://stderr', static::DEBUG)); - } - $levelName = static::getLevelName($level); - // check if any handler will handle this message so we can return early and save cycles - $handlerKey = null; - \reset($this->handlers); - while ($handler = \current($this->handlers)) { - if ($handler->isHandling(array('level' => $level))) { - $handlerKey = \key($this->handlers); - break; - } - \next($this->handlers); - } - if (null === $handlerKey) { - return \false; - } - if (!static::$timezone) { - static::$timezone = new \DateTimeZone(\date_default_timezone_get() ?: 'UTC'); - } - // php7.1+ always has microseconds enabled, so we do not need this hack - if ($this->microsecondTimestamps && \PHP_VERSION_ID < 70100) { - $ts = \DateTime::createFromFormat('U.u', \sprintf('%.6F', \microtime(\true)), static::$timezone); - } else { - $ts = new \DateTime(null, static::$timezone); - } - $ts->setTimezone(static::$timezone); - $record = array('message' => (string) $message, 'context' => $context, 'level' => $level, 'level_name' => $levelName, 'channel' => $this->name, 'datetime' => $ts, 'extra' => array()); - try { - foreach ($this->processors as $processor) { - $record = \call_user_func($processor, $record); - } - while ($handler = \current($this->handlers)) { - if (\true === $handler->handle($record)) { - break; - } - \next($this->handlers); - } - } catch (\Exception $e) { - $this->handleException($e, $record); - } - return \true; - } - /** - * 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() - { - foreach ($this->handlers as $handler) { - if (\method_exists($handler, 'close')) { - $handler->close(); - } - } - } - /** - * 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() - { - foreach ($this->handlers as $handler) { - if ($handler instanceof \WPMailSMTP\Vendor\Monolog\ResettableInterface) { - $handler->reset(); - } - } - foreach ($this->processors as $processor) { - if ($processor instanceof \WPMailSMTP\Vendor\Monolog\ResettableInterface) { - $processor->reset(); - } - } - } - /** - * Adds a log record at the DEBUG level. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function addDebug($message, array $context = array()) - { - return $this->addRecord(static::DEBUG, $message, $context); - } - /** - * Adds a log record at the INFO level. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function addInfo($message, array $context = array()) - { - return $this->addRecord(static::INFO, $message, $context); - } - /** - * Adds a log record at the NOTICE level. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function addNotice($message, array $context = array()) - { - return $this->addRecord(static::NOTICE, $message, $context); - } - /** - * Adds a log record at the WARNING level. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function addWarning($message, array $context = array()) - { - return $this->addRecord(static::WARNING, $message, $context); - } - /** - * Adds a log record at the ERROR level. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function addError($message, array $context = array()) - { - return $this->addRecord(static::ERROR, $message, $context); - } - /** - * Adds a log record at the CRITICAL level. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function addCritical($message, array $context = array()) - { - return $this->addRecord(static::CRITICAL, $message, $context); - } - /** - * Adds a log record at the ALERT level. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function addAlert($message, array $context = array()) - { - return $this->addRecord(static::ALERT, $message, $context); - } - /** - * Adds a log record at the EMERGENCY level. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function addEmergency($message, array $context = array()) - { - return $this->addRecord(static::EMERGENCY, $message, $context); - } - /** - * Gets all supported logging levels. - * - * @return array Assoc array with human-readable level names => level codes. - */ - public static function getLevels() - { - return \array_flip(static::$levels); - } - /** - * Gets the name of the logging level. - * - * @param int $level - * @return string - */ - public static function getLevelName($level) - { - if (!isset(static::$levels[$level])) { - throw new \WPMailSMTP\Vendor\Psr\Log\InvalidArgumentException('Level "' . $level . '" is not defined, use one of: ' . \implode(', ', \array_keys(static::$levels))); - } - return static::$levels[$level]; - } - /** - * Converts PSR-3 levels to Monolog ones if necessary - * - * @param string|int Level number (monolog) or name (PSR-3) - * @return int - */ - public static function toMonologLevel($level) - { - if (\is_string($level)) { - // Contains chars of all log levels and avoids using strtoupper() which may have - // strange results depending on locale (for example, "i" will become "İ") - $upper = \strtr($level, 'abcdefgilmnortuwy', 'ABCDEFGILMNORTUWY'); - if (\defined(__CLASS__ . '::' . $upper)) { - return \constant(__CLASS__ . '::' . $upper); - } - } - return $level; - } - /** - * Checks whether the Logger has a handler that listens on the given level - * - * @param int $level - * @return bool - */ - public function isHandling($level) - { - $record = array('level' => $level); - foreach ($this->handlers as $handler) { - if ($handler->isHandling($record)) { - return \true; - } - } - return \false; - } - /** - * Set a custom exception handler - * - * @param callable $callback - * @return $this - */ - public function setExceptionHandler($callback) - { - if (!\is_callable($callback)) { - throw new \InvalidArgumentException('Exception handler must be valid callable (callback or object with an __invoke method), ' . \var_export($callback, \true) . ' given'); - } - $this->exceptionHandler = $callback; - return $this; - } - /** - * @return callable - */ - public function getExceptionHandler() - { - return $this->exceptionHandler; - } - /** - * Delegates exception management to the custom exception handler, - * or throws the exception if no custom handler is set. - */ - protected function handleException(\Exception $e, array $record) - { - if (!$this->exceptionHandler) { - throw $e; - } - \call_user_func($this->exceptionHandler, $e, $record); - } - /** - * Adds a log record at an arbitrary level. - * - * This method allows for compatibility with common interfaces. - * - * @param mixed $level The log level - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function log($level, $message, array $context = array()) - { - $level = static::toMonologLevel($level); - return $this->addRecord($level, $message, $context); - } - /** - * Adds a log record at the DEBUG level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function debug($message, array $context = array()) - { - return $this->addRecord(static::DEBUG, $message, $context); - } - /** - * Adds a log record at the INFO level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function info($message, array $context = array()) - { - return $this->addRecord(static::INFO, $message, $context); - } - /** - * Adds a log record at the NOTICE level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function notice($message, array $context = array()) - { - return $this->addRecord(static::NOTICE, $message, $context); - } - /** - * Adds a log record at the WARNING level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function warn($message, array $context = array()) - { - return $this->addRecord(static::WARNING, $message, $context); - } - /** - * Adds a log record at the WARNING level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function warning($message, array $context = array()) - { - return $this->addRecord(static::WARNING, $message, $context); - } - /** - * Adds a log record at the ERROR level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function err($message, array $context = array()) - { - return $this->addRecord(static::ERROR, $message, $context); - } - /** - * Adds a log record at the ERROR level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function error($message, array $context = array()) - { - return $this->addRecord(static::ERROR, $message, $context); - } - /** - * Adds a log record at the CRITICAL level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function crit($message, array $context = array()) - { - return $this->addRecord(static::CRITICAL, $message, $context); - } - /** - * Adds a log record at the CRITICAL level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function critical($message, array $context = array()) - { - return $this->addRecord(static::CRITICAL, $message, $context); - } - /** - * Adds a log record at the ALERT level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function alert($message, array $context = array()) - { - return $this->addRecord(static::ALERT, $message, $context); - } - /** - * Adds a log record at the EMERGENCY level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function emerg($message, array $context = array()) - { - return $this->addRecord(static::EMERGENCY, $message, $context); - } - /** - * Adds a log record at the EMERGENCY level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return bool Whether the record has been processed - */ - public function emergency($message, array $context = array()) - { - return $this->addRecord(static::EMERGENCY, $message, $context); - } - /** - * Set the timezone to be used for the timestamp of log records. - * - * This is stored globally for all Logger instances - * - * @param \DateTimeZone $tz Timezone object - */ - public static function setTimezone(\DateTimeZone $tz) - { - self::$timezone = $tz; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/GitProcessor.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/GitProcessor.php deleted file mode 100644 index 7cd6390..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/GitProcessor.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Processor; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * Injects Git branch and Git commit SHA in all records - * - * @author Nick Otter - * @author Jordi Boggiano - */ -class GitProcessor implements \WPMailSMTP\Vendor\Monolog\Processor\ProcessorInterface -{ - private $level; - private static $cache; - public function __construct($level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG) - { - $this->level = \WPMailSMTP\Vendor\Monolog\Logger::toMonologLevel($level); - } - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - // return if the level is not high enough - if ($record['level'] < $this->level) { - return $record; - } - $record['extra']['git'] = self::getGitInfo(); - return $record; - } - private static function getGitInfo() - { - if (self::$cache) { - return self::$cache; - } - $branches = `git branch -v --no-abbrev`; - if ($branches && \preg_match('{^\\* (.+?)\\s+([a-f0-9]{40})(?:\\s|$)}m', $branches, $matches)) { - return self::$cache = array('branch' => $matches[1], 'commit' => $matches[2]); - } - return self::$cache = array(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php deleted file mode 100644 index 9350d10..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php +++ /dev/null @@ -1,84 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Processor; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * 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 - */ -class IntrospectionProcessor implements \WPMailSMTP\Vendor\Monolog\Processor\ProcessorInterface -{ - private $level; - private $skipClassesPartials; - private $skipStackFramesCount; - private $skipFunctions = array('call_user_func', 'call_user_func_array'); - public function __construct($level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG, array $skipClassesPartials = array(), $skipStackFramesCount = 0) - { - $this->level = \WPMailSMTP\Vendor\Monolog\Logger::toMonologLevel($level); - $this->skipClassesPartials = \array_merge(array('WPMailSMTP\\Vendor\\Monolog\\'), $skipClassesPartials); - $this->skipStackFramesCount = $skipStackFramesCount; - } - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - // return if the level is not high enough - if ($record['level'] < $this->level) { - return $record; - } - /* - * http://php.net/manual/en/function.debug-backtrace.php - * As of 5.3.6, DEBUG_BACKTRACE_IGNORE_ARGS option was added. - * Any version less than 5.3.6 must use the DEBUG_BACKTRACE_IGNORE_ARGS constant value '2'. - */ - $trace = \debug_backtrace(\PHP_VERSION_ID < 50306 ? 2 : \DEBUG_BACKTRACE_IGNORE_ARGS); - // skip first since it's always the current method - \array_shift($trace); - // the call_user_func call is also skipped - \array_shift($trace); - $i = 0; - while ($this->isTraceClassOrSkippedFunction($trace, $i)) { - if (isset($trace[$i]['class'])) { - foreach ($this->skipClassesPartials as $part) { - if (\strpos($trace[$i]['class'], $part) !== \false) { - $i++; - continue 2; - } - } - } elseif (\in_array($trace[$i]['function'], $this->skipFunctions)) { - $i++; - continue; - } - break; - } - $i += $this->skipStackFramesCount; - // we should have the call source now - $record['extra'] = \array_merge($record['extra'], array('file' => isset($trace[$i - 1]['file']) ? $trace[$i - 1]['file'] : null, 'line' => isset($trace[$i - 1]['line']) ? $trace[$i - 1]['line'] : null, 'class' => isset($trace[$i]['class']) ? $trace[$i]['class'] : null, 'function' => isset($trace[$i]['function']) ? $trace[$i]['function'] : null)); - return $record; - } - private function isTraceClassOrSkippedFunction(array $trace, $index) - { - if (!isset($trace[$index])) { - return \false; - } - return isset($trace[$index]['class']) || \in_array($trace[$index]['function'], $this->skipFunctions); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php deleted file mode 100644 index b0f974e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Processor; - -/** - * Injects memory_get_peak_usage in all records - * - * @see Monolog\Processor\MemoryProcessor::__construct() for options - * @author Rob Jensen - */ -class MemoryPeakUsageProcessor extends \WPMailSMTP\Vendor\Monolog\Processor\MemoryProcessor -{ - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - $bytes = \memory_get_peak_usage($this->realUsage); - $formatted = $this->formatBytes($bytes); - $record['extra']['memory_peak_usage'] = $formatted; - return $record; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php deleted file mode 100644 index 970edf6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Processor; - -/** - * Some methods that are common for all memory processors - * - * @author Rob Jensen - */ -abstract class MemoryProcessor implements \WPMailSMTP\Vendor\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($realUsage = \true, $useFormatting = \true) - { - $this->realUsage = (bool) $realUsage; - $this->useFormatting = (bool) $useFormatting; - } - /** - * 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 is - */ - protected function formatBytes($bytes) - { - $bytes = (int) $bytes; - if (!$this->useFormatting) { - return $bytes; - } - if ($bytes > 1024 * 1024) { - return \round($bytes / 1024 / 1024, 2) . ' MB'; - } elseif ($bytes > 1024) { - return \round($bytes / 1024, 2) . ' KB'; - } - return $bytes . ' B'; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php deleted file mode 100644 index d508fea..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Processor; - -/** - * Injects memory_get_usage in all records - * - * @see Monolog\Processor\MemoryProcessor::__construct() for options - * @author Rob Jensen - */ -class MemoryUsageProcessor extends \WPMailSMTP\Vendor\Monolog\Processor\MemoryProcessor -{ - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - $bytes = \memory_get_usage($this->realUsage); - $formatted = $this->formatBytes($bytes); - $record['extra']['memory_usage'] = $formatted; - return $record; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php deleted file mode 100644 index 6f578c5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Processor; - -use WPMailSMTP\Vendor\Monolog\Logger; -/** - * Injects Hg branch and Hg revision number in all records - * - * @author Jonathan A. Schweder - */ -class MercurialProcessor implements \WPMailSMTP\Vendor\Monolog\Processor\ProcessorInterface -{ - private $level; - private static $cache; - public function __construct($level = \WPMailSMTP\Vendor\Monolog\Logger::DEBUG) - { - $this->level = \WPMailSMTP\Vendor\Monolog\Logger::toMonologLevel($level); - } - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - // return if the level is not high enough - if ($record['level'] < $this->level) { - return $record; - } - $record['extra']['hg'] = self::getMercurialInfo(); - return $record; - } - private static function getMercurialInfo() - { - if (self::$cache) { - return self::$cache; - } - $result = \explode(' ', \trim(`hg id -nb`)); - if (\count($result) >= 3) { - return self::$cache = array('branch' => $result[1], 'revision' => $result[2]); - } - return self::$cache = array(); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php deleted file mode 100644 index 3c7dfa0..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Processor; - -/** - * Adds value of getmypid into records - * - * @author Andreas Hörnicke - */ -class ProcessIdProcessor implements \WPMailSMTP\Vendor\Monolog\Processor\ProcessorInterface -{ - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - $record['extra']['process_id'] = \getmypid(); - return $record; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php deleted file mode 100644 index 7b166bc..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Processor; - -/** - * An optional interface to allow labelling Monolog processors. - * - * @author Nicolas Grekas - */ -interface ProcessorInterface -{ - /** - * @return array The processed records - */ - public function __invoke(array $records); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php deleted file mode 100644 index 53483cb..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Processor; - -use WPMailSMTP\Vendor\Monolog\Utils; -/** - * 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 \WPMailSMTP\Vendor\Monolog\Processor\ProcessorInterface -{ - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - if (\false === \strpos($record['message'], '{')) { - return $record; - } - $replacements = array(); - foreach ($record['context'] as $key => $val) { - if (\is_null($val) || \is_scalar($val) || \is_object($val) && \method_exists($val, "__toString")) { - $replacements['{' . $key . '}'] = $val; - } elseif (\is_object($val)) { - $replacements['{' . $key . '}'] = '[object ' . \WPMailSMTP\Vendor\Monolog\Utils::getClass($val) . ']'; - } else { - $replacements['{' . $key . '}'] = '[' . \gettype($val) . ']'; - } - } - $record['message'] = \strtr($record['message'], $replacements); - return $record; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/TagProcessor.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/TagProcessor.php deleted file mode 100644 index f722cd6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/TagProcessor.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Processor; - -/** - * Adds a tags array into record - * - * @author Martijn Riemers - */ -class TagProcessor implements \WPMailSMTP\Vendor\Monolog\Processor\ProcessorInterface -{ - private $tags; - public function __construct(array $tags = array()) - { - $this->setTags($tags); - } - public function addTags(array $tags = array()) - { - $this->tags = \array_merge($this->tags, $tags); - } - public function setTags(array $tags = array()) - { - $this->tags = $tags; - } - public function __invoke(array $record) - { - $record['extra']['tags'] = $this->tags; - return $record; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/UidProcessor.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/UidProcessor.php deleted file mode 100644 index bba2a8d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/UidProcessor.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Processor; - -use WPMailSMTP\Vendor\Monolog\ResettableInterface; -/** - * Adds a unique identifier into records - * - * @author Simon Mönch - */ -class UidProcessor implements \WPMailSMTP\Vendor\Monolog\Processor\ProcessorInterface, \WPMailSMTP\Vendor\Monolog\ResettableInterface -{ - private $uid; - public function __construct($length = 7) - { - if (!\is_int($length) || $length > 32 || $length < 1) { - throw new \InvalidArgumentException('The uid length must be an integer between 1 and 32'); - } - $this->uid = $this->generateUid($length); - } - public function __invoke(array $record) - { - $record['extra']['uid'] = $this->uid; - return $record; - } - /** - * @return string - */ - public function getUid() - { - return $this->uid; - } - public function reset() - { - $this->uid = $this->generateUid(\strlen($this->uid)); - } - private function generateUid($length) - { - return \substr(\hash('md5', \uniqid('', \true)), 0, $length); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/WebProcessor.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/WebProcessor.php deleted file mode 100644 index a18a853..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Processor/WebProcessor.php +++ /dev/null @@ -1,95 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog\Processor; - -/** - * Injects url/method and remote IP of the current web request in all records - * - * @author Jordi Boggiano - */ -class WebProcessor implements \WPMailSMTP\Vendor\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 = array('url' => 'REQUEST_URI', 'ip' => 'REMOTE_ADDR', 'http_method' => 'REQUEST_METHOD', 'server' => 'SERVER_NAME', 'referrer' => 'HTTP_REFERER'); - /** - * @param array|\ArrayAccess $serverData Array or object w/ ArrayAccess that provides access to the $_SERVER data - * @param array|null $extraFields Field names and the related key inside $serverData to be added. If not provided it defaults to: url, ip, http_method, server, referrer - */ - public function __construct($serverData = null, array $extraFields = null) - { - if (null === $serverData) { - $this->serverData =& $_SERVER; - } elseif (\is_array($serverData) || $serverData instanceof \ArrayAccess) { - $this->serverData = $serverData; - } else { - throw new \UnexpectedValueException('$serverData must be an array or object implementing ArrayAccess.'); - } - if (isset($this->serverData['UNIQUE_ID'])) { - $this->extraFields['unique_id'] = 'UNIQUE_ID'; - } - if (null !== $extraFields) { - if (isset($extraFields[0])) { - foreach (\array_keys($this->extraFields) as $fieldName) { - if (!\in_array($fieldName, $extraFields)) { - unset($this->extraFields[$fieldName]); - } - } - } else { - $this->extraFields = $extraFields; - } - } - } - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - // skip processing if for some reason request data - // is not present (CLI or wonky SAPIs) - if (!isset($this->serverData['REQUEST_URI'])) { - return $record; - } - $record['extra'] = $this->appendExtraFields($record['extra']); - return $record; - } - /** - * @param string $extraName - * @param string $serverName - * @return $this - */ - public function addExtraField($extraName, $serverName) - { - $this->extraFields[$extraName] = $serverName; - return $this; - } - /** - * @param array $extra - * @return array - */ - private function appendExtraFields(array $extra) - { - foreach ($this->extraFields as $extraName => $serverName) { - $extra[$extraName] = isset($this->serverData[$serverName]) ? $this->serverData[$serverName] : null; - } - return $extra; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Registry.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Registry.php deleted file mode 100644 index 87531e5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Registry.php +++ /dev/null @@ -1,122 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog; - -use InvalidArgumentException; -/** - * 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()->addError('Sent to $api Logger instance'); - * Monolog\Registry::application()->addError('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 = array(); - /** - * 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 - */ - public static function addLogger(\WPMailSMTP\Vendor\Monolog\Logger $logger, $name = null, $overwrite = \false) - { - $name = $name ?: $logger->getName(); - if (isset(self::$loggers[$name]) && !$overwrite) { - throw new \InvalidArgumentException('Logger with the given name already exists'); - } - self::$loggers[$name] = $logger; - } - /** - * Checks if such logging channel exists by name or instance - * - * @param string|Logger $logger Name or logger instance - */ - public static function hasLogger($logger) - { - if ($logger instanceof \WPMailSMTP\Vendor\Monolog\Logger) { - $index = \array_search($logger, self::$loggers, \true); - return \false !== $index; - } else { - return isset(self::$loggers[$logger]); - } - } - /** - * Removes instance from registry by name or instance - * - * @param string|Logger $logger Name or logger instance - */ - public static function removeLogger($logger) - { - if ($logger instanceof \WPMailSMTP\Vendor\Monolog\Logger) { - if (\false !== ($idx = \array_search($logger, self::$loggers, \true))) { - unset(self::$loggers[$idx]); - } - } else { - unset(self::$loggers[$logger]); - } - } - /** - * Clears the registry - */ - public static function clear() - { - self::$loggers = array(); - } - /** - * 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 - * @return Logger Requested instance of Logger - */ - public static function getInstance($name) - { - if (!isset(self::$loggers[$name])) { - throw new \InvalidArgumentException(\sprintf('Requested "%s" logger instance is not in the registry', $name)); - } - return self::$loggers[$name]; - } - /** - * Gets Logger instance from the registry via static method call - * - * @param string $name Name of the requested Logger instance - * @param array $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) - { - return self::getInstance($name); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/ResettableInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/ResettableInterface.php deleted file mode 100644 index 5716739..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/ResettableInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\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 -{ - public function reset(); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/SignalHandler.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/SignalHandler.php deleted file mode 100644 index 9ca6413..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/SignalHandler.php +++ /dev/null @@ -1,100 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog; - -use WPMailSMTP\Vendor\Psr\Log\LoggerInterface; -use WPMailSMTP\Vendor\Psr\Log\LogLevel; -use ReflectionExtension; -/** - * Monolog POSIX signal handler - * - * @author Robert Gust-Bardon - */ -class SignalHandler -{ - private $logger; - private $previousSignalHandler = array(); - private $signalLevelMap = array(); - private $signalRestartSyscalls = array(); - public function __construct(\WPMailSMTP\Vendor\Psr\Log\LoggerInterface $logger) - { - $this->logger = $logger; - } - public function registerSignalHandler($signo, $level = \WPMailSMTP\Vendor\Psr\Log\LogLevel::CRITICAL, $callPrevious = \true, $restartSyscalls = \true, $async = \true) - { - if (!\extension_loaded('pcntl') || !\function_exists('pcntl_signal')) { - return $this; - } - if ($callPrevious) { - if (\function_exists('pcntl_signal_get_handler')) { - $handler = \pcntl_signal_get_handler($signo); - if ($handler === \false) { - return $this; - } - $this->previousSignalHandler[$signo] = $handler; - } else { - $this->previousSignalHandler[$signo] = \true; - } - } else { - unset($this->previousSignalHandler[$signo]); - } - $this->signalLevelMap[$signo] = $level; - $this->signalRestartSyscalls[$signo] = $restartSyscalls; - if (\function_exists('pcntl_async_signals') && $async !== null) { - \pcntl_async_signals($async); - } - \pcntl_signal($signo, array($this, 'handleSignal'), $restartSyscalls); - return $this; - } - public function handleSignal($signo, array $siginfo = null) - { - static $signals = array(); - if (!$signals && \extension_loaded('pcntl')) { - $pcntl = new \ReflectionExtension('pcntl'); - $constants = $pcntl->getConstants(); - if (!$constants) { - // HHVM 3.24.2 returns an empty array. - $constants = \get_defined_constants(\true); - $constants = $constants['Core']; - } - foreach ($constants as $name => $value) { - if (\substr($name, 0, 3) === 'SIG' && $name[3] !== '_' && \is_int($value)) { - $signals[$value] = $name; - } - } - unset($constants); - } - $level = isset($this->signalLevelMap[$signo]) ? $this->signalLevelMap[$signo] : \WPMailSMTP\Vendor\Psr\Log\LogLevel::CRITICAL; - $signal = isset($signals[$signo]) ? $signals[$signo] : $signo; - $context = isset($siginfo) ? $siginfo : array(); - $this->logger->log($level, \sprintf('Program received signal %s', $signal), $context); - if (!isset($this->previousSignalHandler[$signo])) { - return; - } - if ($this->previousSignalHandler[$signo] === \true || $this->previousSignalHandler[$signo] === \SIG_DFL) { - if (\extension_loaded('pcntl') && \function_exists('pcntl_signal') && \function_exists('pcntl_sigprocmask') && \function_exists('pcntl_signal_dispatch') && \extension_loaded('posix') && \function_exists('posix_getpid') && \function_exists('posix_kill')) { - $restartSyscalls = isset($this->signalRestartSyscalls[$signo]) ? $this->signalRestartSyscalls[$signo] : \true; - \pcntl_signal($signo, \SIG_DFL, $restartSyscalls); - \pcntl_sigprocmask(\SIG_UNBLOCK, array($signo), $oldset); - \posix_kill(\posix_getpid(), $signo); - \pcntl_signal_dispatch(); - \pcntl_sigprocmask(\SIG_SETMASK, $oldset); - \pcntl_signal($signo, array($this, 'handleSignal'), $restartSyscalls); - } - } elseif (\is_callable($this->previousSignalHandler[$signo])) { - if (\PHP_VERSION_ID >= 70100) { - $this->previousSignalHandler[$signo]($signo, $siginfo); - } else { - $this->previousSignalHandler[$signo]($signo); - } - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Utils.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Utils.php deleted file mode 100644 index 5c72e35..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/monolog/monolog/src/Monolog/Utils.php +++ /dev/null @@ -1,162 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Monolog; - -class Utils -{ - /** - * @internal - */ - public static function getClass($object) - { - $class = \get_class($object); - return 'c' === $class[0] && 0 === \strpos($class, "class@anonymous\0") ? \get_parent_class($class) . '@anonymous' : $class; - } - /** - * 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 - * - * @return string - */ - public static function canonicalizePath($streamUrl) - { - $prefix = ''; - if ('file://' === \substr($streamUrl, 0, 7)) { - $streamUrl = \substr($streamUrl, 7); - $prefix = 'file://'; - } - // other type of stream, not supported - if (\false !== \strpos($streamUrl, '://')) { - return $streamUrl; - } - // already absolute - if (\substr($streamUrl, 0, 1) === '/' || \substr($streamUrl, 1, 1) === ':' || \substr($streamUrl, 0, 2) === '\\\\') { - return $prefix . $streamUrl; - } - $streamUrl = \getcwd() . '/' . $streamUrl; - return $prefix . $streamUrl; - } - /** - * Return the JSON representation of a value - * - * @param mixed $data - * @param int $encodeFlags flags to pass to json encode, defaults to JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE - * @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 - */ - public static function jsonEncode($data, $encodeFlags = null, $ignoreErrors = \false) - { - if (null === $encodeFlags && \version_compare(\PHP_VERSION, '5.4.0', '>=')) { - $encodeFlags = \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE; - } - if ($ignoreErrors) { - $json = @\json_encode($data, $encodeFlags); - if (\false === $json) { - return 'null'; - } - return $json; - } - $json = \json_encode($data, $encodeFlags); - if (\false === $json) { - $json = self::handleJsonError(\json_last_error(), $data); - } - return $json; - } - /** - * 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 - * inital 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 - * @throws \RuntimeException if failure can't be corrected - * @return string JSON encoded data after error correction - */ - public static function handleJsonError($code, $data, $encodeFlags = null) - { - if ($code !== \JSON_ERROR_UTF8) { - self::throwEncodeError($code, $data); - } - if (\is_string($data)) { - self::detectAndCleanUtf8($data); - } elseif (\is_array($data)) { - \array_walk_recursive($data, array('WPMailSMTP\\Vendor\\Monolog\\Utils', 'detectAndCleanUtf8')); - } else { - self::throwEncodeError($code, $data); - } - if (null === $encodeFlags && \version_compare(\PHP_VERSION, '5.4.0', '>=')) { - $encodeFlags = \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE; - } - $json = \json_encode($data, $encodeFlags); - if ($json === \false) { - self::throwEncodeError(\json_last_error(), $data); - } - return $json; - } - /** - * 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 - */ - private static function throwEncodeError($code, $data) - { - switch ($code) { - case \JSON_ERROR_DEPTH: - $msg = 'Maximum stack depth exceeded'; - break; - case \JSON_ERROR_STATE_MISMATCH: - $msg = 'Underflow or the modes mismatch'; - break; - case \JSON_ERROR_CTRL_CHAR: - $msg = 'Unexpected control character found'; - break; - case \JSON_ERROR_UTF8: - $msg = 'Malformed UTF-8 characters, possibly incorrectly encoded'; - break; - default: - $msg = 'Unknown error'; - } - throw new \RuntimeException('JSON encoding failed: ' . $msg . '. Encoding: ' . \var_export($data, \true)); - } - /** - * 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 - * @private - */ - public static function detectAndCleanUtf8(&$data) - { - if (\is_string($data) && !\preg_match('//u', $data)) { - $data = \preg_replace_callback('/[\\x80-\\xFF]+/', function ($m) { - return \utf8_encode($m[0]); - }, $data); - $data = \str_replace(array('¤', '¦', '¨', '´', '¸', '¼', '½', '¾'), array('€', 'Š', 'š', 'Ž', 'ž', 'Œ', 'œ', 'Ÿ'), $data); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/LICENSE b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/LICENSE deleted file mode 100644 index e7214eb..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2011-2019 TerraFrost and other contributors - -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. \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/AES.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/AES.php deleted file mode 100644 index cedc672..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/AES.php +++ /dev/null @@ -1,122 +0,0 @@ - - * setKey('abcdefghijklmnop'); - * - * $size = 10 * 1024; - * $plaintext = ''; - * for ($i = 0; $i < $size; $i++) { - * $plaintext.= 'a'; - * } - * - * echo $aes->decrypt($aes->encrypt($plaintext)); - * ?> - * - * - * @category Crypt - * @package AES - * @author Jim Wigginton - * @copyright 2008 Jim Wigginton - * @license http://www.opensource.org/licenses/mit-license.html MIT License - * @link http://phpseclib.sourceforge.net - */ -namespace WPMailSMTP\Vendor\phpseclib\Crypt; - -/** - * Pure-PHP implementation of AES. - * - * @package AES - * @author Jim Wigginton - * @access public - */ -class AES extends \WPMailSMTP\Vendor\phpseclib\Crypt\Rijndael -{ - /** - * Dummy function - * - * Since \phpseclib\Crypt\AES extends \phpseclib\Crypt\Rijndael, this function is, technically, available, but it doesn't do anything. - * - * @see \phpseclib\Crypt\Rijndael::setBlockLength() - * @access public - * @param int $length - */ - function setBlockLength($length) - { - return; - } - /** - * Sets the key length - * - * Valid key lengths are 128, 192, and 256. If the length is less than 128, it will be rounded up to - * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount. - * - * @see \phpseclib\Crypt\Rijndael:setKeyLength() - * @access public - * @param int $length - */ - function setKeyLength($length) - { - switch ($length) { - case 160: - $length = 192; - break; - case 224: - $length = 256; - } - parent::setKeyLength($length); - } - /** - * Sets the key. - * - * Rijndael supports five different key lengths, AES only supports three. - * - * @see \phpseclib\Crypt\Rijndael:setKey() - * @see setKeyLength() - * @access public - * @param string $key - */ - function setKey($key) - { - parent::setKey($key); - if (!$this->explicit_key_length) { - $length = \strlen($key); - switch (\true) { - case $length <= 16: - $this->key_length = 16; - break; - case $length <= 24: - $this->key_length = 24; - break; - default: - $this->key_length = 32; - } - $this->_setEngine(); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA.php deleted file mode 100644 index 13537ee..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/RSA.php +++ /dev/null @@ -1,2713 +0,0 @@ - - * createKey()); - * - * $plaintext = 'terrafrost'; - * - * $rsa->loadKey($privatekey); - * $ciphertext = $rsa->encrypt($plaintext); - * - * $rsa->loadKey($publickey); - * echo $rsa->decrypt($ciphertext); - * ?> - * - * - * Here's an example of how to create signatures and verify signatures with this library: - * - * createKey()); - * - * $plaintext = 'terrafrost'; - * - * $rsa->loadKey($privatekey); - * $signature = $rsa->sign($plaintext); - * - * $rsa->loadKey($publickey); - * echo $rsa->verify($plaintext, $signature) ? 'verified' : 'unverified'; - * ?> - * - * - * @category Crypt - * @package RSA - * @author Jim Wigginton - * @copyright 2009 Jim Wigginton - * @license http://www.opensource.org/licenses/mit-license.html MIT License - * @link http://phpseclib.sourceforge.net - */ -namespace WPMailSMTP\Vendor\phpseclib\Crypt; - -use WPMailSMTP\Vendor\phpseclib\Math\BigInteger; -/** - * Pure-PHP PKCS#1 compliant implementation of RSA. - * - * @package RSA - * @author Jim Wigginton - * @access public - */ -class RSA -{ - /**#@+ - * @access public - * @see self::encrypt() - * @see self::decrypt() - */ - /** - * Use {@link http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding Optimal Asymmetric Encryption Padding} - * (OAEP) for encryption / decryption. - * - * Uses sha1 by default. - * - * @see self::setHash() - * @see self::setMGFHash() - */ - const ENCRYPTION_OAEP = 1; - /** - * Use PKCS#1 padding. - * - * Although self::ENCRYPTION_OAEP offers more security, including PKCS#1 padding is necessary for purposes of backwards - * compatibility with protocols (like SSH-1) written before OAEP's introduction. - */ - 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. - */ - const ENCRYPTION_NONE = 3; - /**#@-*/ - /**#@+ - * @access public - * @see self::sign() - * @see self::verify() - * @see self::setHash() - */ - /** - * Use the Probabilistic Signature Scheme for signing - * - * Uses sha1 by default. - * - * @see self::setSaltLength() - * @see self::setMGFHash() - */ - const SIGNATURE_PSS = 1; - /** - * Use the PKCS#1 scheme by default. - * - * Although self::SIGNATURE_PSS offers more security, including PKCS#1 signing is necessary for purposes of backwards - * compatibility with protocols (like SSH-2) written before PSS's introduction. - */ - const SIGNATURE_PKCS1 = 2; - /**#@-*/ - /**#@+ - * @access private - * @see \phpseclib\Crypt\RSA::createKey() - */ - /** - * ASN1 Integer - */ - const ASN1_INTEGER = 2; - /** - * ASN1 Bit String - */ - const ASN1_BITSTRING = 3; - /** - * ASN1 Octet String - */ - const ASN1_OCTETSTRING = 4; - /** - * ASN1 Object Identifier - */ - const ASN1_OBJECT = 6; - /** - * ASN1 Sequence (with the constucted bit set) - */ - const ASN1_SEQUENCE = 48; - /**#@-*/ - /**#@+ - * @access private - * @see \phpseclib\Crypt\RSA::__construct() - */ - /** - * To use the pure-PHP implementation - */ - const MODE_INTERNAL = 1; - /** - * To use the OpenSSL library - * - * (if enabled; otherwise, the internal implementation will be used) - */ - const MODE_OPENSSL = 2; - /**#@-*/ - /**#@+ - * @access public - * @see \phpseclib\Crypt\RSA::createKey() - * @see \phpseclib\Crypt\RSA::setPrivateKeyFormat() - */ - /** - * PKCS#1 formatted private key - * - * Used by OpenSSH - */ - const PRIVATE_FORMAT_PKCS1 = 0; - /** - * PuTTY formatted private key - */ - const PRIVATE_FORMAT_PUTTY = 1; - /** - * XML formatted private key - */ - const PRIVATE_FORMAT_XML = 2; - /** - * PKCS#8 formatted private key - */ - const PRIVATE_FORMAT_PKCS8 = 8; - /** - * OpenSSH formatted private key - */ - const PRIVATE_FORMAT_OPENSSH = 9; - /**#@-*/ - /**#@+ - * @access public - * @see \phpseclib\Crypt\RSA::createKey() - * @see \phpseclib\Crypt\RSA::setPublicKeyFormat() - */ - /** - * Raw public key - * - * An array containing two \phpseclib\Math\BigInteger objects. - * - * The exponent can be indexed with any of the following: - * - * 0, e, exponent, publicExponent - * - * The modulus can be indexed with any of the following: - * - * 1, n, modulo, modulus - */ - const PUBLIC_FORMAT_RAW = 3; - /** - * PKCS#1 formatted public key (raw) - * - * Used by File/X509.php - * - * Has the following header: - * - * -----BEGIN RSA PUBLIC KEY----- - * - * Analogous to ssh-keygen's pem format (as specified by -m) - */ - const PUBLIC_FORMAT_PKCS1 = 4; - const PUBLIC_FORMAT_PKCS1_RAW = 4; - /** - * XML formatted public key - */ - const PUBLIC_FORMAT_XML = 5; - /** - * OpenSSH formatted public key - * - * Place in $HOME/.ssh/authorized_keys - */ - const PUBLIC_FORMAT_OPENSSH = 6; - /** - * PKCS#1 formatted public key (encapsulated) - * - * Used by PHP's openssl_public_encrypt() and openssl's rsautl (when -pubin is set) - * - * Has the following header: - * - * -----BEGIN PUBLIC KEY----- - * - * Analogous to ssh-keygen's pkcs8 format (as specified by -m). Although PKCS8 - * is specific to private keys it's basically creating a DER-encoded wrapper - * for keys. This just extends that same concept to public keys (much like ssh-keygen) - */ - const PUBLIC_FORMAT_PKCS8 = 7; - /**#@-*/ - /** - * Precomputed Zero - * - * @var \phpseclib\Math\BigInteger - * @access private - */ - var $zero; - /** - * Precomputed One - * - * @var \phpseclib\Math\BigInteger - * @access private - */ - var $one; - /** - * Private Key Format - * - * @var int - * @access private - */ - var $privateKeyFormat = self::PRIVATE_FORMAT_PKCS1; - /** - * Public Key Format - * - * @var int - * @access public - */ - var $publicKeyFormat = self::PUBLIC_FORMAT_PKCS8; - /** - * Modulus (ie. n) - * - * @var \phpseclib\Math\BigInteger - * @access private - */ - var $modulus; - /** - * Modulus length - * - * @var \phpseclib\Math\BigInteger - * @access private - */ - var $k; - /** - * Exponent (ie. e or d) - * - * @var \phpseclib\Math\BigInteger - * @access private - */ - var $exponent; - /** - * Primes for Chinese Remainder Theorem (ie. p and q) - * - * @var array - * @access private - */ - var $primes; - /** - * Exponents for Chinese Remainder Theorem (ie. dP and dQ) - * - * @var array - * @access private - */ - var $exponents; - /** - * Coefficients for Chinese Remainder Theorem (ie. qInv) - * - * @var array - * @access private - */ - var $coefficients; - /** - * Hash name - * - * @var string - * @access private - */ - var $hashName; - /** - * Hash function - * - * @var \phpseclib\Crypt\Hash - * @access private - */ - var $hash; - /** - * Length of hash function output - * - * @var int - * @access private - */ - var $hLen; - /** - * Length of salt - * - * @var int - * @access private - */ - var $sLen; - /** - * Hash function for the Mask Generation Function - * - * @var \phpseclib\Crypt\Hash - * @access private - */ - var $mgfHash; - /** - * Length of MGF hash function output - * - * @var int - * @access private - */ - var $mgfHLen; - /** - * Encryption mode - * - * @var int - * @access private - */ - var $encryptionMode = self::ENCRYPTION_OAEP; - /** - * Signature mode - * - * @var int - * @access private - */ - var $signatureMode = self::SIGNATURE_PSS; - /** - * Public Exponent - * - * @var mixed - * @access private - */ - var $publicExponent = \false; - /** - * Password - * - * @var string - * @access private - */ - var $password = \false; - /** - * Components - * - * For use with parsing XML formatted keys. PHP's XML Parser functions use utilized - instead of PHP's DOM functions - - * because PHP's XML Parser functions work on PHP4 whereas PHP's DOM functions - although surperior - don't. - * - * @see self::_start_element_handler() - * @var array - * @access private - */ - var $components = array(); - /** - * Current String - * - * For use with parsing XML formatted keys. - * - * @see self::_character_handler() - * @see self::_stop_element_handler() - * @var mixed - * @access private - */ - var $current; - /** - * OpenSSL configuration file name. - * - * Set to null to use system configuration file. - * @see self::createKey() - * @var mixed - * @Access public - */ - var $configFile; - /** - * Public key comment field. - * - * @var string - * @access private - */ - var $comment = 'phpseclib-generated-key'; - /** - * The constructor - * - * If you want to make use of the openssl extension, you'll need to set the mode manually, yourself. The reason - * \phpseclib\Crypt\RSA doesn't do it is because OpenSSL doesn't fail gracefully. openssl_pkey_new(), in particular, requires - * openssl.cnf be present somewhere and, unfortunately, the only real way to find out is too late. - * - * @return \phpseclib\Crypt\RSA - * @access public - */ - function __construct() - { - $this->configFile = \dirname(__FILE__) . '/../openssl.cnf'; - if (!\defined('WPMailSMTP\\Vendor\\CRYPT_RSA_MODE')) { - switch (\true) { - // Math/BigInteger's openssl requirements are a little less stringent than Crypt/RSA's. in particular, - // Math/BigInteger doesn't require an openssl.cfg file whereas Crypt/RSA does. so if Math/BigInteger - // can't use OpenSSL it can be pretty trivially assumed, then, that Crypt/RSA can't either. - case \defined('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_OPENSSL_DISABLE'): - \define('WPMailSMTP\\Vendor\\CRYPT_RSA_MODE', self::MODE_INTERNAL); - break; - case \extension_loaded('openssl') && \file_exists($this->configFile): - // some versions of XAMPP have mismatched versions of OpenSSL which causes it not to work - $versions = array(); - // avoid generating errors (even with suppression) when phpinfo() is disabled (common in production systems) - if (\strpos(\ini_get('disable_functions'), 'phpinfo') === \false) { - \ob_start(); - @\phpinfo(); - $content = \ob_get_contents(); - \ob_end_clean(); - \preg_match_all('#OpenSSL (Header|Library) Version(.*)#im', $content, $matches); - if (!empty($matches[1])) { - for ($i = 0; $i < \count($matches[1]); $i++) { - $fullVersion = \trim(\str_replace('=>', '', \strip_tags($matches[2][$i]))); - // Remove letter part in OpenSSL version - if (!\preg_match('/(\\d+\\.\\d+\\.\\d+)/i', $fullVersion, $m)) { - $versions[$matches[1][$i]] = $fullVersion; - } else { - $versions[$matches[1][$i]] = $m[0]; - } - } - } - } - // it doesn't appear that OpenSSL versions were reported upon until PHP 5.3+ - switch (\true) { - case !isset($versions['Header']): - case !isset($versions['Library']): - case $versions['Header'] == $versions['Library']: - case \version_compare($versions['Header'], '1.0.0') >= 0 && \version_compare($versions['Library'], '1.0.0') >= 0: - \define('WPMailSMTP\\Vendor\\CRYPT_RSA_MODE', self::MODE_OPENSSL); - break; - default: - \define('WPMailSMTP\\Vendor\\CRYPT_RSA_MODE', self::MODE_INTERNAL); - \define('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_OPENSSL_DISABLE', \true); - } - break; - default: - \define('WPMailSMTP\\Vendor\\CRYPT_RSA_MODE', self::MODE_INTERNAL); - } - } - $this->zero = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger(); - $this->one = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger(1); - $this->hash = new \WPMailSMTP\Vendor\phpseclib\Crypt\Hash('sha1'); - $this->hLen = $this->hash->getLength(); - $this->hashName = 'sha1'; - $this->mgfHash = new \WPMailSMTP\Vendor\phpseclib\Crypt\Hash('sha1'); - $this->mgfHLen = $this->mgfHash->getLength(); - } - /** - * Create public / private key pair - * - * Returns an array with the following three elements: - * - 'privatekey': The private key. - * - 'publickey': The public key. - * - 'partialkey': A partially computed key (if the execution time exceeded $timeout). - * Will need to be passed back to \phpseclib\Crypt\RSA::createKey() as the third parameter for further processing. - * - * @access public - * @param int $bits - * @param int $timeout - * @param array $p - */ - function createKey($bits = 1024, $timeout = \false, $partial = array()) - { - if (!\defined('WPMailSMTP\\Vendor\\CRYPT_RSA_EXPONENT')) { - // http://en.wikipedia.org/wiki/65537_%28number%29 - \define('WPMailSMTP\\Vendor\\CRYPT_RSA_EXPONENT', '65537'); - } - // 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 CRYPT_RSA_SMALLEST_PRIME - // to 384 bits then you're going to get a 384 bit prime and a 640 bit prime (384 + 1024 % 384). at least if - // CRYPT_RSA_MODE is set to self::MODE_INTERNAL. if CRYPT_RSA_MODE is set to self::MODE_OPENSSL then - // CRYPT_RSA_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) - if (!\defined('WPMailSMTP\\Vendor\\CRYPT_RSA_SMALLEST_PRIME')) { - \define('WPMailSMTP\\Vendor\\CRYPT_RSA_SMALLEST_PRIME', 4096); - } - // OpenSSL uses 65537 as the exponent and requires RSA keys be 384 bits minimum - if (CRYPT_RSA_MODE == self::MODE_OPENSSL && $bits >= 384 && CRYPT_RSA_EXPONENT == 65537) { - $config = array(); - if (isset($this->configFile)) { - $config['config'] = $this->configFile; - } - $rsa = \openssl_pkey_new(array('private_key_bits' => $bits) + $config); - \openssl_pkey_export($rsa, $privatekey, null, $config); - $publickey = \openssl_pkey_get_details($rsa); - $publickey = $publickey['key']; - $privatekey = \call_user_func_array(array($this, '_convertPrivateKey'), \array_values($this->_parseKey($privatekey, self::PRIVATE_FORMAT_PKCS1))); - $publickey = \call_user_func_array(array($this, '_convertPublicKey'), \array_values($this->_parseKey($publickey, self::PUBLIC_FORMAT_PKCS1))); - // clear the buffer of error strings stemming from a minimalistic openssl.cnf - while (\openssl_error_string() !== \false) { - } - return array('privatekey' => $privatekey, 'publickey' => $publickey, 'partialkey' => \false); - } - static $e; - if (!isset($e)) { - $e = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger(CRYPT_RSA_EXPONENT); - } - \extract($this->_generateMinMax($bits)); - $absoluteMin = $min; - $temp = $bits >> 1; - // divide by two to see how many bits P and Q would be - if ($temp > CRYPT_RSA_SMALLEST_PRIME) { - $num_primes = \floor($bits / CRYPT_RSA_SMALLEST_PRIME); - $temp = CRYPT_RSA_SMALLEST_PRIME; - } else { - $num_primes = 2; - } - \extract($this->_generateMinMax($temp + $bits % $temp)); - $finalMax = $max; - \extract($this->_generateMinMax($temp)); - $generator = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger(); - $n = $this->one->copy(); - if (!empty($partial)) { - \extract(\unserialize($partial)); - } else { - $exponents = $coefficients = $primes = array(); - $lcm = array('top' => $this->one->copy(), 'bottom' => \false); - } - $start = \time(); - $i0 = \count($primes) + 1; - do { - for ($i = $i0; $i <= $num_primes; $i++) { - if ($timeout !== \false) { - $timeout -= \time() - $start; - $start = \time(); - if ($timeout <= 0) { - return array('privatekey' => '', 'publickey' => '', 'partialkey' => \serialize(array('primes' => $primes, 'coefficients' => $coefficients, 'lcm' => $lcm, 'exponents' => $exponents))); - } - } - if ($i == $num_primes) { - list($min, $temp) = $absoluteMin->divide($n); - if (!$temp->equals($this->zero)) { - $min = $min->add($this->one); - // ie. ceil() - } - $primes[$i] = $generator->randomPrime($min, $finalMax, $timeout); - } else { - $primes[$i] = $generator->randomPrime($min, $max, $timeout); - } - if ($primes[$i] === \false) { - // if we've reached the timeout - if (\count($primes) > 1) { - $partialkey = ''; - } else { - \array_pop($primes); - $partialkey = \serialize(array('primes' => $primes, 'coefficients' => $coefficients, 'lcm' => $lcm, 'exponents' => $exponents)); - } - return array('privatekey' => '', 'publickey' => '', 'partialkey' => $partialkey); - } - // the first coefficient is calculated differently from the rest - // ie. instead of being $primes[1]->modInverse($primes[2]), it's $primes[2]->modInverse($primes[1]) - if ($i > 2) { - $coefficients[$i] = $n->modInverse($primes[$i]); - } - $n = $n->multiply($primes[$i]); - $temp = $primes[$i]->subtract($this->one); - // textbook RSA implementations use Euler's totient function instead of the least common multiple. - // see http://en.wikipedia.org/wiki/Euler%27s_totient_function - $lcm['top'] = $lcm['top']->multiply($temp); - $lcm['bottom'] = $lcm['bottom'] === \false ? $temp : $lcm['bottom']->gcd($temp); - $exponents[$i] = $e->modInverse($temp); - } - list($temp) = $lcm['top']->divide($lcm['bottom']); - $gcd = $temp->gcd($e); - $i0 = 1; - } while (!$gcd->equals($this->one)); - $d = $e->modInverse($temp); - $coefficients[2] = $primes[2]->modInverse($primes[1]); - // from : - // RSAPrivateKey ::= SEQUENCE { - // version Version, - // modulus INTEGER, -- n - // publicExponent INTEGER, -- e - // privateExponent INTEGER, -- d - // prime1 INTEGER, -- p - // prime2 INTEGER, -- q - // exponent1 INTEGER, -- d mod (p-1) - // exponent2 INTEGER, -- d mod (q-1) - // coefficient INTEGER, -- (inverse of q) mod p - // otherPrimeInfos OtherPrimeInfos OPTIONAL - // } - return array('privatekey' => $this->_convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients), 'publickey' => $this->_convertPublicKey($n, $e), 'partialkey' => \false); - } - /** - * Convert a private key to the appropriate format. - * - * @access private - * @see self::setPrivateKeyFormat() - * @param string $RSAPrivateKey - * @return string - */ - function _convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients) - { - $signed = $this->privateKeyFormat != self::PRIVATE_FORMAT_XML; - $num_primes = \count($primes); - $raw = array( - 'version' => $num_primes == 2 ? \chr(0) : \chr(1), - // two-prime vs. multi - 'modulus' => $n->toBytes($signed), - 'publicExponent' => $e->toBytes($signed), - 'privateExponent' => $d->toBytes($signed), - 'prime1' => $primes[1]->toBytes($signed), - 'prime2' => $primes[2]->toBytes($signed), - 'exponent1' => $exponents[1]->toBytes($signed), - 'exponent2' => $exponents[2]->toBytes($signed), - 'coefficient' => $coefficients[2]->toBytes($signed), - ); - // if the format in question does not support multi-prime rsa and multi-prime rsa was used, - // call _convertPublicKey() instead. - switch ($this->privateKeyFormat) { - case self::PRIVATE_FORMAT_XML: - if ($num_primes != 2) { - return \false; - } - return "\r\n" . ' ' . \base64_encode($raw['modulus']) . "\r\n" . ' ' . \base64_encode($raw['publicExponent']) . "\r\n" . '

    ' . \base64_encode($raw['prime1']) . "

    \r\n" . ' ' . \base64_encode($raw['prime2']) . "\r\n" . ' ' . \base64_encode($raw['exponent1']) . "\r\n" . ' ' . \base64_encode($raw['exponent2']) . "\r\n" . ' ' . \base64_encode($raw['coefficient']) . "\r\n" . ' ' . \base64_encode($raw['privateExponent']) . "\r\n" . '
    '; - break; - case self::PRIVATE_FORMAT_PUTTY: - if ($num_primes != 2) { - return \false; - } - $key = "PuTTY-User-Key-File-2: ssh-rsa\r\nEncryption: "; - $encryption = !empty($this->password) || \is_string($this->password) ? 'aes256-cbc' : 'none'; - $key .= $encryption; - $key .= "\r\nComment: " . $this->comment . "\r\n"; - $public = \pack('Na*Na*Na*', \strlen('ssh-rsa'), 'ssh-rsa', \strlen($raw['publicExponent']), $raw['publicExponent'], \strlen($raw['modulus']), $raw['modulus']); - $source = \pack('Na*Na*Na*Na*', \strlen('ssh-rsa'), 'ssh-rsa', \strlen($encryption), $encryption, \strlen($this->comment), $this->comment, \strlen($public), $public); - $public = \base64_encode($public); - $key .= "Public-Lines: " . (\strlen($public) + 63 >> 6) . "\r\n"; - $key .= \chunk_split($public, 64); - $private = \pack('Na*Na*Na*Na*', \strlen($raw['privateExponent']), $raw['privateExponent'], \strlen($raw['prime1']), $raw['prime1'], \strlen($raw['prime2']), $raw['prime2'], \strlen($raw['coefficient']), $raw['coefficient']); - if (empty($this->password) && !\is_string($this->password)) { - $source .= \pack('Na*', \strlen($private), $private); - $hashkey = 'putty-private-key-file-mac-key'; - } else { - $private .= \WPMailSMTP\Vendor\phpseclib\Crypt\Random::string(16 - (\strlen($private) & 15)); - $source .= \pack('Na*', \strlen($private), $private); - $sequence = 0; - $symkey = ''; - while (\strlen($symkey) < 32) { - $temp = \pack('Na*', $sequence++, $this->password); - $symkey .= \pack('H*', \sha1($temp)); - } - $symkey = \substr($symkey, 0, 32); - $crypto = new \WPMailSMTP\Vendor\phpseclib\Crypt\AES(); - $crypto->setKey($symkey); - $crypto->disablePadding(); - $private = $crypto->encrypt($private); - $hashkey = 'putty-private-key-file-mac-key' . $this->password; - } - $private = \base64_encode($private); - $key .= 'Private-Lines: ' . (\strlen($private) + 63 >> 6) . "\r\n"; - $key .= \chunk_split($private, 64); - $hash = new \WPMailSMTP\Vendor\phpseclib\Crypt\Hash('sha1'); - $hash->setKey(\pack('H*', \sha1($hashkey))); - $key .= 'Private-MAC: ' . \bin2hex($hash->hash($source)) . "\r\n"; - return $key; - case self::PRIVATE_FORMAT_OPENSSH: - if ($num_primes != 2) { - return \false; - } - $publicKey = \pack('Na*Na*Na*', \strlen('ssh-rsa'), 'ssh-rsa', \strlen($raw['publicExponent']), $raw['publicExponent'], \strlen($raw['modulus']), $raw['modulus']); - $privateKey = \pack('Na*Na*Na*Na*Na*Na*Na*', \strlen('ssh-rsa'), 'ssh-rsa', \strlen($raw['modulus']), $raw['modulus'], \strlen($raw['publicExponent']), $raw['publicExponent'], \strlen($raw['privateExponent']), $raw['privateExponent'], \strlen($raw['coefficient']), $raw['coefficient'], \strlen($raw['prime1']), $raw['prime1'], \strlen($raw['prime2']), $raw['prime2']); - $checkint = \WPMailSMTP\Vendor\phpseclib\Crypt\Random::string(4); - $paddedKey = \pack('a*Na*', $checkint . $checkint . $privateKey, \strlen($this->comment), $this->comment); - $paddingLength = 7 * \strlen($paddedKey) % 8; - for ($i = 1; $i <= $paddingLength; $i++) { - $paddedKey .= \chr($i); - } - $key = \pack('Na*Na*Na*NNa*Na*', \strlen('none'), 'none', \strlen('none'), 'none', 0, '', 1, \strlen($publicKey), $publicKey, \strlen($paddedKey), $paddedKey); - $key = "openssh-key-v1\0{$key}"; - return "-----BEGIN OPENSSH PRIVATE KEY-----\r\n" . \chunk_split(\base64_encode($key), 70) . "-----END OPENSSH PRIVATE KEY-----"; - default: - // eg. self::PRIVATE_FORMAT_PKCS1 - $components = array(); - foreach ($raw as $name => $value) { - $components[$name] = \pack('Ca*a*', self::ASN1_INTEGER, $this->_encodeLength(\strlen($value)), $value); - } - $RSAPrivateKey = \implode('', $components); - if ($num_primes > 2) { - $OtherPrimeInfos = ''; - for ($i = 3; $i <= $num_primes; $i++) { - // OtherPrimeInfos ::= SEQUENCE SIZE(1..MAX) OF OtherPrimeInfo - // - // OtherPrimeInfo ::= SEQUENCE { - // prime INTEGER, -- ri - // exponent INTEGER, -- di - // coefficient INTEGER -- ti - // } - $OtherPrimeInfo = \pack('Ca*a*', self::ASN1_INTEGER, $this->_encodeLength(\strlen($primes[$i]->toBytes(\true))), $primes[$i]->toBytes(\true)); - $OtherPrimeInfo .= \pack('Ca*a*', self::ASN1_INTEGER, $this->_encodeLength(\strlen($exponents[$i]->toBytes(\true))), $exponents[$i]->toBytes(\true)); - $OtherPrimeInfo .= \pack('Ca*a*', self::ASN1_INTEGER, $this->_encodeLength(\strlen($coefficients[$i]->toBytes(\true))), $coefficients[$i]->toBytes(\true)); - $OtherPrimeInfos .= \pack('Ca*a*', self::ASN1_SEQUENCE, $this->_encodeLength(\strlen($OtherPrimeInfo)), $OtherPrimeInfo); - } - $RSAPrivateKey .= \pack('Ca*a*', self::ASN1_SEQUENCE, $this->_encodeLength(\strlen($OtherPrimeInfos)), $OtherPrimeInfos); - } - $RSAPrivateKey = \pack('Ca*a*', self::ASN1_SEQUENCE, $this->_encodeLength(\strlen($RSAPrivateKey)), $RSAPrivateKey); - if ($this->privateKeyFormat == self::PRIVATE_FORMAT_PKCS8) { - $rsaOID = \pack('H*', '300d06092a864886f70d0101010500'); - // hex version of MA0GCSqGSIb3DQEBAQUA - $RSAPrivateKey = \pack('Ca*a*Ca*a*', self::ASN1_INTEGER, "\1\0", $rsaOID, 4, $this->_encodeLength(\strlen($RSAPrivateKey)), $RSAPrivateKey); - $RSAPrivateKey = \pack('Ca*a*', self::ASN1_SEQUENCE, $this->_encodeLength(\strlen($RSAPrivateKey)), $RSAPrivateKey); - if (!empty($this->password) || \is_string($this->password)) { - $salt = \WPMailSMTP\Vendor\phpseclib\Crypt\Random::string(8); - $iterationCount = 2048; - $crypto = new \WPMailSMTP\Vendor\phpseclib\Crypt\DES(); - $crypto->setPassword($this->password, 'pbkdf1', 'md5', $salt, $iterationCount); - $RSAPrivateKey = $crypto->encrypt($RSAPrivateKey); - $parameters = \pack('Ca*a*Ca*N', self::ASN1_OCTETSTRING, $this->_encodeLength(\strlen($salt)), $salt, self::ASN1_INTEGER, $this->_encodeLength(4), $iterationCount); - $pbeWithMD5AndDES_CBC = "*H\r\1\5\3"; - $encryptionAlgorithm = \pack('Ca*a*Ca*a*', self::ASN1_OBJECT, $this->_encodeLength(\strlen($pbeWithMD5AndDES_CBC)), $pbeWithMD5AndDES_CBC, self::ASN1_SEQUENCE, $this->_encodeLength(\strlen($parameters)), $parameters); - $RSAPrivateKey = \pack('Ca*a*Ca*a*', self::ASN1_SEQUENCE, $this->_encodeLength(\strlen($encryptionAlgorithm)), $encryptionAlgorithm, self::ASN1_OCTETSTRING, $this->_encodeLength(\strlen($RSAPrivateKey)), $RSAPrivateKey); - $RSAPrivateKey = \pack('Ca*a*', self::ASN1_SEQUENCE, $this->_encodeLength(\strlen($RSAPrivateKey)), $RSAPrivateKey); - $RSAPrivateKey = "-----BEGIN ENCRYPTED PRIVATE KEY-----\r\n" . \chunk_split(\base64_encode($RSAPrivateKey), 64) . '-----END ENCRYPTED PRIVATE KEY-----'; - } else { - $RSAPrivateKey = "-----BEGIN PRIVATE KEY-----\r\n" . \chunk_split(\base64_encode($RSAPrivateKey), 64) . '-----END PRIVATE KEY-----'; - } - return $RSAPrivateKey; - } - if (!empty($this->password) || \is_string($this->password)) { - $iv = \WPMailSMTP\Vendor\phpseclib\Crypt\Random::string(8); - $symkey = \pack('H*', \md5($this->password . $iv)); - // symkey is short for symmetric key - $symkey .= \substr(\pack('H*', \md5($symkey . $this->password . $iv)), 0, 8); - $des = new \WPMailSMTP\Vendor\phpseclib\Crypt\TripleDES(); - $des->setKey($symkey); - $des->setIV($iv); - $iv = \strtoupper(\bin2hex($iv)); - $RSAPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\r\n" . "Proc-Type: 4,ENCRYPTED\r\n" . "DEK-Info: DES-EDE3-CBC,{$iv}\r\n" . "\r\n" . \chunk_split(\base64_encode($des->encrypt($RSAPrivateKey)), 64) . '-----END RSA PRIVATE KEY-----'; - } else { - $RSAPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\r\n" . \chunk_split(\base64_encode($RSAPrivateKey), 64) . '-----END RSA PRIVATE KEY-----'; - } - return $RSAPrivateKey; - } - } - /** - * Convert a public key to the appropriate format - * - * @access private - * @see self::setPublicKeyFormat() - * @param string $RSAPrivateKey - * @return string - */ - function _convertPublicKey($n, $e) - { - $signed = $this->publicKeyFormat != self::PUBLIC_FORMAT_XML; - $modulus = $n->toBytes($signed); - $publicExponent = $e->toBytes($signed); - switch ($this->publicKeyFormat) { - case self::PUBLIC_FORMAT_RAW: - return array('e' => $e->copy(), 'n' => $n->copy()); - case self::PUBLIC_FORMAT_XML: - return "\r\n" . ' ' . \base64_encode($modulus) . "\r\n" . ' ' . \base64_encode($publicExponent) . "\r\n" . ''; - break; - case self::PUBLIC_FORMAT_OPENSSH: - // from : - // string "ssh-rsa" - // mpint e - // mpint n - $RSAPublicKey = \pack('Na*Na*Na*', \strlen('ssh-rsa'), 'ssh-rsa', \strlen($publicExponent), $publicExponent, \strlen($modulus), $modulus); - $RSAPublicKey = 'ssh-rsa ' . \base64_encode($RSAPublicKey) . ' ' . $this->comment; - return $RSAPublicKey; - default: - // eg. self::PUBLIC_FORMAT_PKCS1_RAW or self::PUBLIC_FORMAT_PKCS1 - // from : - // RSAPublicKey ::= SEQUENCE { - // modulus INTEGER, -- n - // publicExponent INTEGER -- e - // } - $components = array('modulus' => \pack('Ca*a*', self::ASN1_INTEGER, $this->_encodeLength(\strlen($modulus)), $modulus), 'publicExponent' => \pack('Ca*a*', self::ASN1_INTEGER, $this->_encodeLength(\strlen($publicExponent)), $publicExponent)); - $RSAPublicKey = \pack('Ca*a*a*', self::ASN1_SEQUENCE, $this->_encodeLength(\strlen($components['modulus']) + \strlen($components['publicExponent'])), $components['modulus'], $components['publicExponent']); - if ($this->publicKeyFormat == self::PUBLIC_FORMAT_PKCS1_RAW) { - $RSAPublicKey = "-----BEGIN RSA PUBLIC KEY-----\r\n" . \chunk_split(\base64_encode($RSAPublicKey), 64) . '-----END RSA PUBLIC KEY-----'; - } else { - // sequence(oid(1.2.840.113549.1.1.1), null)) = rsaEncryption. - $rsaOID = \pack('H*', '300d06092a864886f70d0101010500'); - // hex version of MA0GCSqGSIb3DQEBAQUA - $RSAPublicKey = \chr(0) . $RSAPublicKey; - $RSAPublicKey = \chr(3) . $this->_encodeLength(\strlen($RSAPublicKey)) . $RSAPublicKey; - $RSAPublicKey = \pack('Ca*a*', self::ASN1_SEQUENCE, $this->_encodeLength(\strlen($rsaOID . $RSAPublicKey)), $rsaOID . $RSAPublicKey); - $RSAPublicKey = "-----BEGIN PUBLIC KEY-----\r\n" . \chunk_split(\base64_encode($RSAPublicKey), 64) . '-----END PUBLIC KEY-----'; - } - return $RSAPublicKey; - } - } - /** - * Break a public or private key down into its constituant components - * - * @access private - * @see self::_convertPublicKey() - * @see self::_convertPrivateKey() - * @param string|array $key - * @param int $type - * @return array|bool - */ - function _parseKey($key, $type) - { - if ($type != self::PUBLIC_FORMAT_RAW && !\is_string($key)) { - return \false; - } - switch ($type) { - case self::PUBLIC_FORMAT_RAW: - if (!\is_array($key)) { - return \false; - } - $components = array(); - switch (\true) { - case isset($key['e']): - $components['publicExponent'] = $key['e']->copy(); - break; - case isset($key['exponent']): - $components['publicExponent'] = $key['exponent']->copy(); - break; - case isset($key['publicExponent']): - $components['publicExponent'] = $key['publicExponent']->copy(); - break; - case isset($key[0]): - $components['publicExponent'] = $key[0]->copy(); - } - switch (\true) { - case isset($key['n']): - $components['modulus'] = $key['n']->copy(); - break; - case isset($key['modulo']): - $components['modulus'] = $key['modulo']->copy(); - break; - case isset($key['modulus']): - $components['modulus'] = $key['modulus']->copy(); - break; - case isset($key[1]): - $components['modulus'] = $key[1]->copy(); - } - return isset($components['modulus']) && isset($components['publicExponent']) ? $components : \false; - case self::PRIVATE_FORMAT_PKCS1: - case self::PRIVATE_FORMAT_PKCS8: - case self::PUBLIC_FORMAT_PKCS1: - /* Although PKCS#1 proposes a format that public and private keys can use, encrypting them is - "outside the scope" of PKCS#1. PKCS#1 then refers you to PKCS#12 and PKCS#15 if you're wanting to - protect private keys, however, that's not what OpenSSL* does. OpenSSL protects private keys by adding - two new "fields" to the key - DEK-Info and Proc-Type. These fields are discussed here: - - http://tools.ietf.org/html/rfc1421#section-4.6.1.1 - http://tools.ietf.org/html/rfc1421#section-4.6.1.3 - - DES-EDE3-CBC as an algorithm, however, is not discussed anywhere, near as I can tell. - DES-CBC and DES-EDE are discussed in RFC1423, however, DES-EDE3-CBC isn't, nor is its key derivation - function. As is, the definitive authority on this encoding scheme isn't the IETF but rather OpenSSL's - own implementation. ie. the implementation *is* the standard and any bugs that may exist in that - implementation are part of the standard, as well. - - * OpenSSL is the de facto standard. It's utilized by OpenSSH and other projects */ - if (\preg_match('#DEK-Info: (.+),(.+)#', $key, $matches)) { - $iv = \pack('H*', \trim($matches[2])); - $symkey = \pack('H*', \md5($this->password . \substr($iv, 0, 8))); - // symkey is short for symmetric key - $symkey .= \pack('H*', \md5($symkey . $this->password . \substr($iv, 0, 8))); - // remove the Proc-Type / DEK-Info sections as they're no longer needed - $key = \preg_replace('#^(?:Proc-Type|DEK-Info): .*#m', '', $key); - $ciphertext = $this->_extractBER($key); - if ($ciphertext === \false) { - $ciphertext = $key; - } - switch ($matches[1]) { - case 'AES-256-CBC': - $crypto = new \WPMailSMTP\Vendor\phpseclib\Crypt\AES(); - break; - case 'AES-128-CBC': - $symkey = \substr($symkey, 0, 16); - $crypto = new \WPMailSMTP\Vendor\phpseclib\Crypt\AES(); - break; - case 'DES-EDE3-CFB': - $crypto = new \WPMailSMTP\Vendor\phpseclib\Crypt\TripleDES(\WPMailSMTP\Vendor\phpseclib\Crypt\Base::MODE_CFB); - break; - case 'DES-EDE3-CBC': - $symkey = \substr($symkey, 0, 24); - $crypto = new \WPMailSMTP\Vendor\phpseclib\Crypt\TripleDES(); - break; - case 'DES-CBC': - $crypto = new \WPMailSMTP\Vendor\phpseclib\Crypt\DES(); - break; - default: - return \false; - } - $crypto->setKey($symkey); - $crypto->setIV($iv); - $decoded = $crypto->decrypt($ciphertext); - } else { - $decoded = $this->_extractBER($key); - } - if ($decoded !== \false) { - $key = $decoded; - } - $components = array(); - if (\ord($this->_string_shift($key)) != self::ASN1_SEQUENCE) { - return \false; - } - if ($this->_decodeLength($key) != \strlen($key)) { - return \false; - } - $tag = \ord($this->_string_shift($key)); - /* intended for keys for which OpenSSL's asn1parse returns the following: - - 0:d=0 hl=4 l= 631 cons: SEQUENCE - 4:d=1 hl=2 l= 1 prim: INTEGER :00 - 7:d=1 hl=2 l= 13 cons: SEQUENCE - 9:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption - 20:d=2 hl=2 l= 0 prim: NULL - 22:d=1 hl=4 l= 609 prim: OCTET STRING - - ie. PKCS8 keys*/ - if ($tag == self::ASN1_INTEGER && \substr($key, 0, 3) == "\1\0000") { - $this->_string_shift($key, 3); - $tag = self::ASN1_SEQUENCE; - } - if ($tag == self::ASN1_SEQUENCE) { - $temp = $this->_string_shift($key, $this->_decodeLength($key)); - if (\ord($this->_string_shift($temp)) != self::ASN1_OBJECT) { - return \false; - } - $length = $this->_decodeLength($temp); - switch ($this->_string_shift($temp, $length)) { - case "*H\r\1\1\1": - // rsaEncryption - break; - case "*H\r\1\5\3": - // pbeWithMD5AndDES-CBC - /* - PBEParameter ::= SEQUENCE { - salt OCTET STRING (SIZE(8)), - iterationCount INTEGER } - */ - if (\ord($this->_string_shift($temp)) != self::ASN1_SEQUENCE) { - return \false; - } - if ($this->_decodeLength($temp) != \strlen($temp)) { - return \false; - } - $this->_string_shift($temp); - // assume it's an octet string - $salt = $this->_string_shift($temp, $this->_decodeLength($temp)); - if (\ord($this->_string_shift($temp)) != self::ASN1_INTEGER) { - return \false; - } - $this->_decodeLength($temp); - list(, $iterationCount) = \unpack('N', \str_pad($temp, 4, \chr(0), \STR_PAD_LEFT)); - $this->_string_shift($key); - // assume it's an octet string - $length = $this->_decodeLength($key); - if (\strlen($key) != $length) { - return \false; - } - $crypto = new \WPMailSMTP\Vendor\phpseclib\Crypt\DES(); - $crypto->setPassword($this->password, 'pbkdf1', 'md5', $salt, $iterationCount); - $key = $crypto->decrypt($key); - if ($key === \false) { - return \false; - } - return $this->_parseKey($key, self::PRIVATE_FORMAT_PKCS1); - default: - return \false; - } - /* intended for keys for which OpenSSL's asn1parse returns the following: - - 0:d=0 hl=4 l= 290 cons: SEQUENCE - 4:d=1 hl=2 l= 13 cons: SEQUENCE - 6:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption - 17:d=2 hl=2 l= 0 prim: NULL - 19:d=1 hl=4 l= 271 prim: BIT STRING */ - $tag = \ord($this->_string_shift($key)); - // skip over the BIT STRING / OCTET STRING tag - $this->_decodeLength($key); - // skip over the BIT STRING / OCTET STRING length - // "The initial octet shall encode, as an unsigned binary integer wtih bit 1 as the least significant bit, the number of - // unused bits in the final subsequent octet. The number shall be in the range zero to seven." - // -- http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf (section 8.6.2.2) - if ($tag == self::ASN1_BITSTRING) { - $this->_string_shift($key); - } - if (\ord($this->_string_shift($key)) != self::ASN1_SEQUENCE) { - return \false; - } - if ($this->_decodeLength($key) != \strlen($key)) { - return \false; - } - $tag = \ord($this->_string_shift($key)); - } - if ($tag != self::ASN1_INTEGER) { - return \false; - } - $length = $this->_decodeLength($key); - $temp = $this->_string_shift($key, $length); - if (\strlen($temp) != 1 || \ord($temp) > 2) { - $components['modulus'] = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($temp, 256); - $this->_string_shift($key); - // skip over self::ASN1_INTEGER - $length = $this->_decodeLength($key); - $components[$type == self::PUBLIC_FORMAT_PKCS1 ? 'publicExponent' : 'privateExponent'] = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($key, $length), 256); - return $components; - } - if (\ord($this->_string_shift($key)) != self::ASN1_INTEGER) { - return \false; - } - $length = $this->_decodeLength($key); - $components['modulus'] = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($key, $length), 256); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['publicExponent'] = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($key, $length), 256); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['privateExponent'] = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($key, $length), 256); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['primes'] = array(1 => new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($key, $length), 256)); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['primes'][] = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($key, $length), 256); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['exponents'] = array(1 => new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($key, $length), 256)); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['exponents'][] = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($key, $length), 256); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['coefficients'] = array(2 => new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($key, $length), 256)); - if (!empty($key)) { - if (\ord($this->_string_shift($key)) != self::ASN1_SEQUENCE) { - return \false; - } - $this->_decodeLength($key); - while (!empty($key)) { - if (\ord($this->_string_shift($key)) != self::ASN1_SEQUENCE) { - return \false; - } - $this->_decodeLength($key); - $key = \substr($key, 1); - $length = $this->_decodeLength($key); - $components['primes'][] = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($key, $length), 256); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['exponents'][] = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($key, $length), 256); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['coefficients'][] = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($key, $length), 256); - } - } - return $components; - case self::PUBLIC_FORMAT_OPENSSH: - $parts = \explode(' ', $key, 3); - $key = isset($parts[1]) ? \base64_decode($parts[1]) : \false; - if ($key === \false) { - return \false; - } - $comment = isset($parts[2]) ? $parts[2] : \false; - $cleanup = \substr($key, 0, 11) == "\0\0\0\7ssh-rsa"; - if (\strlen($key) <= 4) { - return \false; - } - \extract(\unpack('Nlength', $this->_string_shift($key, 4))); - $publicExponent = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($key, $length), -256); - if (\strlen($key) <= 4) { - return \false; - } - \extract(\unpack('Nlength', $this->_string_shift($key, 4))); - $modulus = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($key, $length), -256); - if ($cleanup && \strlen($key)) { - if (\strlen($key) <= 4) { - return \false; - } - \extract(\unpack('Nlength', $this->_string_shift($key, 4))); - $realModulus = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($key, $length), -256); - return \strlen($key) ? \false : array('modulus' => $realModulus, 'publicExponent' => $modulus, 'comment' => $comment); - } else { - return \strlen($key) ? \false : array('modulus' => $modulus, 'publicExponent' => $publicExponent, 'comment' => $comment); - } - // http://www.w3.org/TR/xmldsig-core/#sec-RSAKeyValue - // http://en.wikipedia.org/wiki/XML_Signature - case self::PRIVATE_FORMAT_XML: - case self::PUBLIC_FORMAT_XML: - $this->components = array(); - $xml = \xml_parser_create('UTF-8'); - \xml_set_object($xml, $this); - \xml_set_element_handler($xml, '_start_element_handler', '_stop_element_handler'); - \xml_set_character_data_handler($xml, '_data_handler'); - // add to account for "dangling" tags like ... that are sometimes added - if (!\xml_parse($xml, '' . $key . '')) { - \xml_parser_free($xml); - unset($xml); - return \false; - } - \xml_parser_free($xml); - unset($xml); - return isset($this->components['modulus']) && isset($this->components['publicExponent']) ? $this->components : \false; - // from PuTTY's SSHPUBK.C - case self::PRIVATE_FORMAT_PUTTY: - $components = array(); - $key = \preg_split('#\\r\\n|\\r|\\n#', $key); - $type = \trim(\preg_replace('#PuTTY-User-Key-File-2: (.+)#', '$1', $key[0])); - if ($type != 'ssh-rsa') { - return \false; - } - $encryption = \trim(\preg_replace('#Encryption: (.+)#', '$1', $key[1])); - $comment = \trim(\preg_replace('#Comment: (.+)#', '$1', $key[2])); - $publicLength = \trim(\preg_replace('#Public-Lines: (\\d+)#', '$1', $key[3])); - $public = \base64_decode(\implode('', \array_map('trim', \array_slice($key, 4, $publicLength)))); - $public = \substr($public, 11); - \extract(\unpack('Nlength', $this->_string_shift($public, 4))); - $components['publicExponent'] = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($public, $length), -256); - \extract(\unpack('Nlength', $this->_string_shift($public, 4))); - $components['modulus'] = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($public, $length), -256); - $privateLength = \trim(\preg_replace('#Private-Lines: (\\d+)#', '$1', $key[$publicLength + 4])); - $private = \base64_decode(\implode('', \array_map('trim', \array_slice($key, $publicLength + 5, $privateLength)))); - switch ($encryption) { - case 'aes256-cbc': - $symkey = ''; - $sequence = 0; - while (\strlen($symkey) < 32) { - $temp = \pack('Na*', $sequence++, $this->password); - $symkey .= \pack('H*', \sha1($temp)); - } - $symkey = \substr($symkey, 0, 32); - $crypto = new \WPMailSMTP\Vendor\phpseclib\Crypt\AES(); - } - if ($encryption != 'none') { - $crypto->setKey($symkey); - $crypto->disablePadding(); - $private = $crypto->decrypt($private); - if ($private === \false) { - return \false; - } - } - \extract(\unpack('Nlength', $this->_string_shift($private, 4))); - if (\strlen($private) < $length) { - return \false; - } - $components['privateExponent'] = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($private, $length), -256); - \extract(\unpack('Nlength', $this->_string_shift($private, 4))); - if (\strlen($private) < $length) { - return \false; - } - $components['primes'] = array(1 => new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($private, $length), -256)); - \extract(\unpack('Nlength', $this->_string_shift($private, 4))); - if (\strlen($private) < $length) { - return \false; - } - $components['primes'][] = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($private, $length), -256); - $temp = $components['primes'][1]->subtract($this->one); - $components['exponents'] = array(1 => $components['publicExponent']->modInverse($temp)); - $temp = $components['primes'][2]->subtract($this->one); - $components['exponents'][] = $components['publicExponent']->modInverse($temp); - \extract(\unpack('Nlength', $this->_string_shift($private, 4))); - if (\strlen($private) < $length) { - return \false; - } - $components['coefficients'] = array(2 => new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($private, $length), -256)); - return $components; - case self::PRIVATE_FORMAT_OPENSSH: - $components = array(); - $decoded = $this->_extractBER($key); - $magic = $this->_string_shift($decoded, 15); - if ($magic !== "openssh-key-v1\0") { - return \false; - } - $options = $this->_string_shift($decoded, 24); - // \0\0\0\4none = ciphername - // \0\0\0\4none = kdfname - // \0\0\0\0 = kdfoptions - // \0\0\0\1 = numkeys - if ($options != "\0\0\0\4none\0\0\0\4none\0\0\0\0\0\0\0\1") { - return \false; - } - \extract(\unpack('Nlength', $this->_string_shift($decoded, 4))); - if (\strlen($decoded) < $length) { - return \false; - } - $publicKey = $this->_string_shift($decoded, $length); - \extract(\unpack('Nlength', $this->_string_shift($decoded, 4))); - if (\strlen($decoded) < $length) { - return \false; - } - $paddedKey = $this->_string_shift($decoded, $length); - if ($this->_string_shift($publicKey, 11) !== "\0\0\0\7ssh-rsa") { - return \false; - } - $checkint1 = $this->_string_shift($paddedKey, 4); - $checkint2 = $this->_string_shift($paddedKey, 4); - if (\strlen($checkint1) != 4 || $checkint1 !== $checkint2) { - return \false; - } - if ($this->_string_shift($paddedKey, 11) !== "\0\0\0\7ssh-rsa") { - return \false; - } - $values = array(&$components['modulus'], &$components['publicExponent'], &$components['privateExponent'], &$components['coefficients'][2], &$components['primes'][1], &$components['primes'][2]); - foreach ($values as &$value) { - \extract(\unpack('Nlength', $this->_string_shift($paddedKey, 4))); - if (\strlen($paddedKey) < $length) { - return \false; - } - $value = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($this->_string_shift($paddedKey, $length), -256); - } - \extract(\unpack('Nlength', $this->_string_shift($paddedKey, 4))); - if (\strlen($paddedKey) < $length) { - return \false; - } - $components['comment'] = $this->_string_shift($decoded, $length); - $temp = $components['primes'][1]->subtract($this->one); - $components['exponents'] = array(1 => $components['publicExponent']->modInverse($temp)); - $temp = $components['primes'][2]->subtract($this->one); - $components['exponents'][] = $components['publicExponent']->modInverse($temp); - return $components; - } - return \false; - } - /** - * Returns the key size - * - * More specifically, this returns the size of the modulo in bits. - * - * @access public - * @return int - */ - function getSize() - { - return !isset($this->modulus) ? 0 : \strlen($this->modulus->toBits()); - } - /** - * Start Element Handler - * - * Called by xml_set_element_handler() - * - * @access private - * @param resource $parser - * @param string $name - * @param array $attribs - */ - function _start_element_handler($parser, $name, $attribs) - { - //$name = strtoupper($name); - switch ($name) { - case 'MODULUS': - $this->current =& $this->components['modulus']; - break; - case 'EXPONENT': - $this->current =& $this->components['publicExponent']; - break; - case 'P': - $this->current =& $this->components['primes'][1]; - break; - case 'Q': - $this->current =& $this->components['primes'][2]; - break; - case 'DP': - $this->current =& $this->components['exponents'][1]; - break; - case 'DQ': - $this->current =& $this->components['exponents'][2]; - break; - case 'INVERSEQ': - $this->current =& $this->components['coefficients'][2]; - break; - case 'D': - $this->current =& $this->components['privateExponent']; - } - $this->current = ''; - } - /** - * Stop Element Handler - * - * Called by xml_set_element_handler() - * - * @access private - * @param resource $parser - * @param string $name - */ - function _stop_element_handler($parser, $name) - { - if (isset($this->current)) { - $this->current = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger(\base64_decode($this->current), 256); - unset($this->current); - } - } - /** - * Data Handler - * - * Called by xml_set_character_data_handler() - * - * @access private - * @param resource $parser - * @param string $data - */ - function _data_handler($parser, $data) - { - if (!isset($this->current) || \is_object($this->current)) { - return; - } - $this->current .= \trim($data); - } - /** - * Loads a public or private key - * - * Returns true on success and false on failure (ie. an incorrect password was provided or the key was malformed) - * - * @access public - * @param string|RSA|array $key - * @param bool|int $type optional - * @return bool - */ - function loadKey($key, $type = \false) - { - if ($key instanceof \WPMailSMTP\Vendor\phpseclib\Crypt\RSA) { - $this->privateKeyFormat = $key->privateKeyFormat; - $this->publicKeyFormat = $key->publicKeyFormat; - $this->k = $key->k; - $this->hLen = $key->hLen; - $this->sLen = $key->sLen; - $this->mgfHLen = $key->mgfHLen; - $this->encryptionMode = $key->encryptionMode; - $this->signatureMode = $key->signatureMode; - $this->password = $key->password; - $this->configFile = $key->configFile; - $this->comment = $key->comment; - if (\is_object($key->hash)) { - $this->hash = new \WPMailSMTP\Vendor\phpseclib\Crypt\Hash($key->hash->getHash()); - } - if (\is_object($key->mgfHash)) { - $this->mgfHash = new \WPMailSMTP\Vendor\phpseclib\Crypt\Hash($key->mgfHash->getHash()); - } - if (\is_object($key->modulus)) { - $this->modulus = $key->modulus->copy(); - } - if (\is_object($key->exponent)) { - $this->exponent = $key->exponent->copy(); - } - if (\is_object($key->publicExponent)) { - $this->publicExponent = $key->publicExponent->copy(); - } - $this->primes = array(); - $this->exponents = array(); - $this->coefficients = array(); - foreach ($this->primes as $prime) { - $this->primes[] = $prime->copy(); - } - foreach ($this->exponents as $exponent) { - $this->exponents[] = $exponent->copy(); - } - foreach ($this->coefficients as $coefficient) { - $this->coefficients[] = $coefficient->copy(); - } - return \true; - } - if ($type === \false) { - $types = array(self::PUBLIC_FORMAT_RAW, self::PRIVATE_FORMAT_PKCS1, self::PRIVATE_FORMAT_XML, self::PRIVATE_FORMAT_PUTTY, self::PUBLIC_FORMAT_OPENSSH, self::PRIVATE_FORMAT_OPENSSH); - foreach ($types as $type) { - $components = $this->_parseKey($key, $type); - if ($components !== \false) { - break; - } - } - } else { - $components = $this->_parseKey($key, $type); - } - if ($components === \false) { - $this->comment = null; - $this->modulus = null; - $this->k = null; - $this->exponent = null; - $this->primes = null; - $this->exponents = null; - $this->coefficients = null; - $this->publicExponent = null; - return \false; - } - if (isset($components['comment']) && $components['comment'] !== \false) { - $this->comment = $components['comment']; - } - $this->modulus = $components['modulus']; - $this->k = \strlen($this->modulus->toBytes()); - $this->exponent = isset($components['privateExponent']) ? $components['privateExponent'] : $components['publicExponent']; - if (isset($components['primes'])) { - $this->primes = $components['primes']; - $this->exponents = $components['exponents']; - $this->coefficients = $components['coefficients']; - $this->publicExponent = $components['publicExponent']; - } else { - $this->primes = array(); - $this->exponents = array(); - $this->coefficients = array(); - $this->publicExponent = \false; - } - switch ($type) { - case self::PUBLIC_FORMAT_OPENSSH: - case self::PUBLIC_FORMAT_RAW: - $this->setPublicKey(); - break; - case self::PRIVATE_FORMAT_PKCS1: - switch (\true) { - case \strpos($key, '-BEGIN PUBLIC KEY-') !== \false: - case \strpos($key, '-BEGIN RSA PUBLIC KEY-') !== \false: - $this->setPublicKey(); - } - } - return \true; - } - /** - * 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::loadKey() - * @access public - * @param string $password - */ - function setPassword($password = \false) - { - $this->password = $password; - } - /** - * Defines the public key - * - * Some private key formats define the public exponent and some don't. Those that don't define it are problematic when - * used in certain contexts. For example, in SSH-2, RSA authentication works by sending the public key along with a - * message signed by the private key to the server. The SSH-2 server looks the public key up in an index of public keys - * and if it's present then proceeds to verify the signature. Problem is, if your private key doesn't include the public - * exponent this won't work unless you manually add the public exponent. phpseclib tries to guess if the key being used - * is the public key but in the event that it guesses incorrectly you might still want to explicitly set the key as being - * public. - * - * Do note that when a new key is loaded the index will be cleared. - * - * Returns true on success, false on failure - * - * @see self::getPublicKey() - * @access public - * @param string $key optional - * @param int $type optional - * @return bool - */ - function setPublicKey($key = \false, $type = \false) - { - // if a public key has already been loaded return false - if (!empty($this->publicExponent)) { - return \false; - } - if ($key === \false && !empty($this->modulus)) { - $this->publicExponent = $this->exponent; - return \true; - } - if ($type === \false) { - $types = array(self::PUBLIC_FORMAT_RAW, self::PUBLIC_FORMAT_PKCS1, self::PUBLIC_FORMAT_XML, self::PUBLIC_FORMAT_OPENSSH); - foreach ($types as $type) { - $components = $this->_parseKey($key, $type); - if ($components !== \false) { - break; - } - } - } else { - $components = $this->_parseKey($key, $type); - } - if ($components === \false) { - return \false; - } - if (empty($this->modulus) || !$this->modulus->equals($components['modulus'])) { - $this->modulus = $components['modulus']; - $this->exponent = $this->publicExponent = $components['publicExponent']; - return \true; - } - $this->publicExponent = $components['publicExponent']; - return \true; - } - /** - * Defines the private key - * - * If phpseclib guessed a private key was a public key and loaded it as such it might be desirable to force - * phpseclib to treat the key as a private key. This function will do that. - * - * Do note that when a new key is loaded the index will be cleared. - * - * Returns true on success, false on failure - * - * @see self::getPublicKey() - * @access public - * @param string $key optional - * @param int $type optional - * @return bool - */ - function setPrivateKey($key = \false, $type = \false) - { - if ($key === \false && !empty($this->publicExponent)) { - $this->publicExponent = \false; - return \true; - } - $rsa = new \WPMailSMTP\Vendor\phpseclib\Crypt\RSA(); - if (!$rsa->loadKey($key, $type)) { - return \false; - } - $rsa->publicExponent = \false; - // don't overwrite the old key if the new key is invalid - $this->loadKey($rsa); - return \true; - } - /** - * 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. - * - * @see self::getPublicKey() - * @access public - * @param string $key - * @param int $type optional - */ - function getPublicKey($type = self::PUBLIC_FORMAT_PKCS8) - { - if (empty($this->modulus) || empty($this->publicExponent)) { - return \false; - } - $oldFormat = $this->publicKeyFormat; - $this->publicKeyFormat = $type; - $temp = $this->_convertPublicKey($this->modulus, $this->publicExponent); - $this->publicKeyFormat = $oldFormat; - return $temp; - } - /** - * 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) - * - * @access public - * @param string $algorithm The hashing algorithm to be used. Valid options are 'md5' and 'sha256'. False is returned - * for invalid values. - * @return mixed - */ - function getPublicKeyFingerprint($algorithm = 'md5') - { - if (empty($this->modulus) || empty($this->publicExponent)) { - return \false; - } - $modulus = $this->modulus->toBytes(\true); - $publicExponent = $this->publicExponent->toBytes(\true); - $RSAPublicKey = \pack('Na*Na*Na*', \strlen('ssh-rsa'), 'ssh-rsa', \strlen($publicExponent), $publicExponent, \strlen($modulus), $modulus); - switch ($algorithm) { - case 'sha256': - $hash = new \WPMailSMTP\Vendor\phpseclib\Crypt\Hash('sha256'); - $base = \base64_encode($hash->hash($RSAPublicKey)); - return \substr($base, 0, \strlen($base) - 1); - case 'md5': - return \substr(\chunk_split(\md5($RSAPublicKey), 2, ':'), 0, -1); - default: - return \false; - } - } - /** - * Returns the private key - * - * The private key is only returned if the currently loaded key contains the constituent prime numbers. - * - * @see self::getPublicKey() - * @access public - * @param string $key - * @param int $type optional - * @return mixed - */ - function getPrivateKey($type = self::PUBLIC_FORMAT_PKCS1) - { - if (empty($this->primes)) { - return \false; - } - $oldFormat = $this->privateKeyFormat; - $this->privateKeyFormat = $type; - $temp = $this->_convertPrivateKey($this->modulus, $this->publicExponent, $this->exponent, $this->primes, $this->exponents, $this->coefficients); - $this->privateKeyFormat = $oldFormat; - return $temp; - } - /** - * Returns a minimalistic private key - * - * Returns the private key without the prime number constituants. Structurally identical to a public key that - * hasn't been set as the public key - * - * @see self::getPrivateKey() - * @access private - * @param string $key - * @param int $type optional - */ - function _getPrivatePublicKey($mode = self::PUBLIC_FORMAT_PKCS8) - { - if (empty($this->modulus) || empty($this->exponent)) { - return \false; - } - $oldFormat = $this->publicKeyFormat; - $this->publicKeyFormat = $mode; - $temp = $this->_convertPublicKey($this->modulus, $this->exponent); - $this->publicKeyFormat = $oldFormat; - return $temp; - } - /** - * __toString() magic method - * - * @access public - * @return string - */ - function __toString() - { - $key = $this->getPrivateKey($this->privateKeyFormat); - if ($key !== \false) { - return $key; - } - $key = $this->_getPrivatePublicKey($this->publicKeyFormat); - return $key !== \false ? $key : ''; - } - /** - * __clone() magic method - * - * @access public - * @return Crypt_RSA - */ - function __clone() - { - $key = new \WPMailSMTP\Vendor\phpseclib\Crypt\RSA(); - $key->loadKey($this); - return $key; - } - /** - * Generates the smallest and largest numbers requiring $bits bits - * - * @access private - * @param int $bits - * @return array - */ - function _generateMinMax($bits) - { - $bytes = $bits >> 3; - $min = \str_repeat(\chr(0), $bytes); - $max = \str_repeat(\chr(0xff), $bytes); - $msb = $bits & 7; - if ($msb) { - $min = \chr(1 << $msb - 1) . $min; - $max = \chr((1 << $msb) - 1) . $max; - } else { - $min[0] = \chr(0x80); - } - return array('min' => new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($min, 256), 'max' => new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($max, 256)); - } - /** - * 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. - * - * @access private - * @param string $string - * @return int - */ - function _decodeLength(&$string) - { - $length = \ord($this->_string_shift($string)); - if ($length & 0x80) { - // definite length, long form - $length &= 0x7f; - $temp = $this->_string_shift($string, $length); - list(, $length) = \unpack('N', \substr(\str_pad($temp, 4, \chr(0), \STR_PAD_LEFT), -4)); - } - return $length; - } - /** - * 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. - * - * @access private - * @param int $length - * @return string - */ - function _encodeLength($length) - { - if ($length <= 0x7f) { - return \chr($length); - } - $temp = \ltrim(\pack('N', $length), \chr(0)); - return \pack('Ca*', 0x80 | \strlen($temp), $temp); - } - /** - * String Shift - * - * Inspired by array_shift - * - * @param string $string - * @param int $index - * @return string - * @access private - */ - function _string_shift(&$string, $index = 1) - { - $substr = \substr($string, 0, $index); - $string = \substr($string, $index); - return $substr; - } - /** - * Determines the private key format - * - * @see self::createKey() - * @access public - * @param int $format - */ - function setPrivateKeyFormat($format) - { - $this->privateKeyFormat = $format; - } - /** - * Determines the public key format - * - * @see self::createKey() - * @access public - * @param int $format - */ - function setPublicKeyFormat($format) - { - $this->publicKeyFormat = $format; - } - /** - * Determines which hashing function should be used - * - * Used with signature production / verification and (if the encryption mode is self::ENCRYPTION_OAEP) encryption and - * decryption. If $hash isn't supported, sha1 is used. - * - * @access public - * @param string $hash - */ - function setHash($hash) - { - // \phpseclib\Crypt\Hash supports algorithms that PKCS#1 doesn't support. md5-96 and sha1-96, for example. - switch ($hash) { - case 'md2': - case 'md5': - case 'sha1': - case 'sha256': - case 'sha384': - case 'sha512': - $this->hash = new \WPMailSMTP\Vendor\phpseclib\Crypt\Hash($hash); - $this->hashName = $hash; - break; - default: - $this->hash = new \WPMailSMTP\Vendor\phpseclib\Crypt\Hash('sha1'); - $this->hashName = 'sha1'; - } - $this->hLen = $this->hash->getLength(); - } - /** - * Determines which hashing function should be used for the mask generation function - * - * The mask generation function is used by self::ENCRYPTION_OAEP and self::SIGNATURE_PSS and although it's - * best if Hash and MGFHash are set to the same thing this is not a requirement. - * - * @access public - * @param string $hash - */ - function setMGFHash($hash) - { - // \phpseclib\Crypt\Hash supports algorithms that PKCS#1 doesn't support. md5-96 and sha1-96, for example. - switch ($hash) { - case 'md2': - case 'md5': - case 'sha1': - case 'sha256': - case 'sha384': - case 'sha512': - $this->mgfHash = new \WPMailSMTP\Vendor\phpseclib\Crypt\Hash($hash); - break; - default: - $this->mgfHash = new \WPMailSMTP\Vendor\phpseclib\Crypt\Hash('sha1'); - } - $this->mgfHLen = $this->mgfHash->getLength(); - } - /** - * Determines the salt length - * - * 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. - * - * @access public - * @param int $format - */ - function setSaltLength($sLen) - { - $this->sLen = $sLen; - } - /** - * Integer-to-Octet-String primitive - * - * See {@link http://tools.ietf.org/html/rfc3447#section-4.1 RFC3447#section-4.1}. - * - * @access private - * @param \phpseclib\Math\BigInteger $x - * @param int $xLen - * @return string - */ - function _i2osp($x, $xLen) - { - $x = $x->toBytes(); - if (\strlen($x) > $xLen) { - \user_error('Integer too large'); - return \false; - } - return \str_pad($x, $xLen, \chr(0), \STR_PAD_LEFT); - } - /** - * Octet-String-to-Integer primitive - * - * See {@link http://tools.ietf.org/html/rfc3447#section-4.2 RFC3447#section-4.2}. - * - * @access private - * @param string $x - * @return \phpseclib\Math\BigInteger - */ - function _os2ip($x) - { - return new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger($x, 256); - } - /** - * Exponentiate with or without Chinese Remainder Theorem - * - * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.1 RFC3447#section-5.1.2}. - * - * @access private - * @param \phpseclib\Math\BigInteger $x - * @return \phpseclib\Math\BigInteger - */ - function _exponentiate($x) - { - switch (\true) { - case empty($this->primes): - case $this->primes[1]->equals($this->zero): - case empty($this->coefficients): - case $this->coefficients[2]->equals($this->zero): - case empty($this->exponents): - case $this->exponents[1]->equals($this->zero): - return $x->modPow($this->exponent, $this->modulus); - } - $num_primes = \count($this->primes); - if (\defined('WPMailSMTP\\Vendor\\CRYPT_RSA_DISABLE_BLINDING')) { - $m_i = array(1 => $x->modPow($this->exponents[1], $this->primes[1]), 2 => $x->modPow($this->exponents[2], $this->primes[2])); - $h = $m_i[1]->subtract($m_i[2]); - $h = $h->multiply($this->coefficients[2]); - list(, $h) = $h->divide($this->primes[1]); - $m = $m_i[2]->add($h->multiply($this->primes[2])); - $r = $this->primes[1]; - for ($i = 3; $i <= $num_primes; $i++) { - $m_i = $x->modPow($this->exponents[$i], $this->primes[$i]); - $r = $r->multiply($this->primes[$i - 1]); - $h = $m_i->subtract($m); - $h = $h->multiply($this->coefficients[$i]); - list(, $h) = $h->divide($this->primes[$i]); - $m = $m->add($r->multiply($h)); - } - } else { - $smallest = $this->primes[1]; - for ($i = 2; $i <= $num_primes; $i++) { - if ($smallest->compare($this->primes[$i]) > 0) { - $smallest = $this->primes[$i]; - } - } - $one = new \WPMailSMTP\Vendor\phpseclib\Math\BigInteger(1); - $r = $one->random($one, $smallest->subtract($one)); - $m_i = array(1 => $this->_blind($x, $r, 1), 2 => $this->_blind($x, $r, 2)); - $h = $m_i[1]->subtract($m_i[2]); - $h = $h->multiply($this->coefficients[2]); - list(, $h) = $h->divide($this->primes[1]); - $m = $m_i[2]->add($h->multiply($this->primes[2])); - $r = $this->primes[1]; - for ($i = 3; $i <= $num_primes; $i++) { - $m_i = $this->_blind($x, $r, $i); - $r = $r->multiply($this->primes[$i - 1]); - $h = $m_i->subtract($m); - $h = $h->multiply($this->coefficients[$i]); - list(, $h) = $h->divide($this->primes[$i]); - $m = $m->add($r->multiply($h)); - } - } - return $m; - } - /** - * Performs RSA Blinding - * - * Protects against timing attacks by employing RSA Blinding. - * Returns $x->modPow($this->exponents[$i], $this->primes[$i]) - * - * @access private - * @param \phpseclib\Math\BigInteger $x - * @param \phpseclib\Math\BigInteger $r - * @param int $i - * @return \phpseclib\Math\BigInteger - */ - function _blind($x, $r, $i) - { - $x = $x->multiply($r->modPow($this->publicExponent, $this->primes[$i])); - $x = $x->modPow($this->exponents[$i], $this->primes[$i]); - $r = $r->modInverse($this->primes[$i]); - $x = $x->multiply($r); - list(, $x) = $x->divide($this->primes[$i]); - return $x; - } - /** - * Performs blinded RSA equality testing - * - * Protects against a particular type of timing attack described. - * - * See {@link http://codahale.com/a-lesson-in-timing-attacks/ A Lesson In Timing Attacks (or, Don't use MessageDigest.isEquals)} - * - * Thanks for the heads up singpolyma! - * - * @access private - * @param string $x - * @param string $y - * @return bool - */ - function _equals($x, $y) - { - if (\function_exists('hash_equals')) { - return \hash_equals($x, $y); - } - if (\strlen($x) != \strlen($y)) { - return \false; - } - $result = "\0"; - $x ^= $y; - for ($i = 0; $i < \strlen($x); $i++) { - $result |= $x[$i]; - } - return $result === "\0"; - } - /** - * RSAEP - * - * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.1 RFC3447#section-5.1.1}. - * - * @access private - * @param \phpseclib\Math\BigInteger $m - * @return \phpseclib\Math\BigInteger - */ - function _rsaep($m) - { - if ($m->compare($this->zero) < 0 || $m->compare($this->modulus) > 0) { - \user_error('Message representative out of range'); - return \false; - } - return $this->_exponentiate($m); - } - /** - * RSADP - * - * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.2 RFC3447#section-5.1.2}. - * - * @access private - * @param \phpseclib\Math\BigInteger $c - * @return \phpseclib\Math\BigInteger - */ - function _rsadp($c) - { - if ($c->compare($this->zero) < 0 || $c->compare($this->modulus) > 0) { - \user_error('Ciphertext representative out of range'); - return \false; - } - return $this->_exponentiate($c); - } - /** - * RSASP1 - * - * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.1 RFC3447#section-5.2.1}. - * - * @access private - * @param \phpseclib\Math\BigInteger $m - * @return \phpseclib\Math\BigInteger - */ - function _rsasp1($m) - { - if ($m->compare($this->zero) < 0 || $m->compare($this->modulus) > 0) { - \user_error('Message representative out of range'); - return \false; - } - return $this->_exponentiate($m); - } - /** - * RSAVP1 - * - * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.2 RFC3447#section-5.2.2}. - * - * @access private - * @param \phpseclib\Math\BigInteger $s - * @return \phpseclib\Math\BigInteger - */ - function _rsavp1($s) - { - if ($s->compare($this->zero) < 0 || $s->compare($this->modulus) > 0) { - \user_error('Signature representative out of range'); - return \false; - } - return $this->_exponentiate($s); - } - /** - * MGF1 - * - * See {@link http://tools.ietf.org/html/rfc3447#appendix-B.2.1 RFC3447#appendix-B.2.1}. - * - * @access private - * @param string $mgfSeed - * @param int $mgfLen - * @return string - */ - function _mgf1($mgfSeed, $maskLen) - { - // if $maskLen would yield strings larger than 4GB, PKCS#1 suggests a "Mask too long" error be output. - $t = ''; - $count = \ceil($maskLen / $this->mgfHLen); - for ($i = 0; $i < $count; $i++) { - $c = \pack('N', $i); - $t .= $this->mgfHash->hash($mgfSeed . $c); - } - return \substr($t, 0, $maskLen); - } - /** - * 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}. - * - * @access private - * @param string $m - * @param string $l - * @return string - */ - function _rsaes_oaep_encrypt($m, $l = '') - { - $mLen = \strlen($m); - // Length checking - // if $l is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error - // be output. - if ($mLen > $this->k - 2 * $this->hLen - 2) { - \user_error('Message too long'); - return \false; - } - // EME-OAEP encoding - $lHash = $this->hash->hash($l); - $ps = \str_repeat(\chr(0), $this->k - $mLen - 2 * $this->hLen - 2); - $db = $lHash . $ps . \chr(1) . $m; - $seed = \WPMailSMTP\Vendor\phpseclib\Crypt\Random::string($this->hLen); - $dbMask = $this->_mgf1($seed, $this->k - $this->hLen - 1); - $maskedDB = $db ^ $dbMask; - $seedMask = $this->_mgf1($maskedDB, $this->hLen); - $maskedSeed = $seed ^ $seedMask; - $em = \chr(0) . $maskedSeed . $maskedDB; - // RSA encryption - $m = $this->_os2ip($em); - $c = $this->_rsaep($m); - $c = $this->_i2osp($c, $this->k); - // Output the ciphertext C - return $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]. - * - * As for $l... 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. - * - * @access private - * @param string $c - * @param string $l - * @return string - */ - function _rsaes_oaep_decrypt($c, $l = '') - { - // Length checking - // if $l is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error - // be output. - if (\strlen($c) != $this->k || $this->k < 2 * $this->hLen + 2) { - \user_error('Decryption error'); - return \false; - } - // RSA decryption - $c = $this->_os2ip($c); - $m = $this->_rsadp($c); - if ($m === \false) { - \user_error('Decryption error'); - return \false; - } - $em = $this->_i2osp($m, $this->k); - // EME-OAEP decoding - $lHash = $this->hash->hash($l); - $y = \ord($em[0]); - $maskedSeed = \substr($em, 1, $this->hLen); - $maskedDB = \substr($em, $this->hLen + 1); - $seedMask = $this->_mgf1($maskedDB, $this->hLen); - $seed = $maskedSeed ^ $seedMask; - $dbMask = $this->_mgf1($seed, $this->k - $this->hLen - 1); - $db = $maskedDB ^ $dbMask; - $lHash2 = \substr($db, 0, $this->hLen); - $m = \substr($db, $this->hLen); - $hashesMatch = $this->_equals($lHash, $lHash2); - $leadingZeros = 1; - $patternMatch = 0; - $offset = 0; - for ($i = 0; $i < \strlen($m); $i++) { - $patternMatch |= $leadingZeros & $m[$i] === "\1"; - $leadingZeros &= $m[$i] === "\0"; - $offset += $patternMatch ? 0 : 1; - } - // we do & instead of && to avoid https://en.wikipedia.org/wiki/Short-circuit_evaluation - // to protect against timing attacks - if (!$hashesMatch & !$patternMatch) { - \user_error('Decryption error'); - return \false; - } - // Output the message M - return \substr($m, $offset + 1); - } - /** - * Raw Encryption / Decryption - * - * Doesn't use padding and is not recommended. - * - * @access private - * @param string $m - * @return string - */ - function _raw_encrypt($m) - { - $temp = $this->_os2ip($m); - $temp = $this->_rsaep($temp); - return $this->_i2osp($temp, $this->k); - } - /** - * RSAES-PKCS1-V1_5-ENCRYPT - * - * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.1 RFC3447#section-7.2.1}. - * - * @access private - * @param string $m - * @return string - */ - function _rsaes_pkcs1_v1_5_encrypt($m) - { - $mLen = \strlen($m); - // Length checking - if ($mLen > $this->k - 11) { - \user_error('Message too long'); - return \false; - } - // EME-PKCS1-v1_5 encoding - $psLen = $this->k - $mLen - 3; - $ps = ''; - while (\strlen($ps) != $psLen) { - $temp = \WPMailSMTP\Vendor\phpseclib\Crypt\Random::string($psLen - \strlen($ps)); - $temp = \str_replace("\0", '', $temp); - $ps .= $temp; - } - $type = 2; - // see the comments of _rsaes_pkcs1_v1_5_decrypt() to understand why this is being done - if (\defined('WPMailSMTP\\Vendor\\CRYPT_RSA_PKCS15_COMPAT') && (!isset($this->publicExponent) || $this->exponent !== $this->publicExponent)) { - $type = 1; - // "The padding string PS shall consist of k-3-||D|| octets. ... for block type 01, they shall have value FF" - $ps = \str_repeat("", $psLen); - } - $em = \chr(0) . \chr($type) . $ps . \chr(0) . $m; - // RSA encryption - $m = $this->_os2ip($em); - $c = $this->_rsaep($m); - $c = $this->_i2osp($c, $this->k); - // Output the ciphertext C - return $c; - } - /** - * RSAES-PKCS1-V1_5-DECRYPT - * - * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.2 RFC3447#section-7.2.2}. - * - * For compatibility purposes, this function departs slightly from the description given in RFC3447. - * The reason being that RFC2313#section-8.1 (PKCS#1 v1.5) states that ciphertext's encrypted by the - * private key should have the second byte set to either 0 or 1 and that ciphertext's encrypted by the - * public key should have the second byte set to 2. In RFC3447 (PKCS#1 v2.1), the second byte is supposed - * to be 2 regardless of which key is used. For compatibility purposes, we'll just check to make sure the - * second byte is 2 or less. If it is, we'll accept the decrypted string as valid. - * - * As a consequence of this, a private key encrypted ciphertext produced with \phpseclib\Crypt\RSA may not decrypt - * with a strictly PKCS#1 v1.5 compliant RSA implementation. Public key encrypted ciphertext's should but - * not private key encrypted ciphertext's. - * - * @access private - * @param string $c - * @return string - */ - function _rsaes_pkcs1_v1_5_decrypt($c) - { - // Length checking - if (\strlen($c) != $this->k) { - // or if k < 11 - \user_error('Decryption error'); - return \false; - } - // RSA decryption - $c = $this->_os2ip($c); - $m = $this->_rsadp($c); - if ($m === \false) { - \user_error('Decryption error'); - return \false; - } - $em = $this->_i2osp($m, $this->k); - // EME-PKCS1-v1_5 decoding - if (\ord($em[0]) != 0 || \ord($em[1]) > 2) { - \user_error('Decryption error'); - return \false; - } - $ps = \substr($em, 2, \strpos($em, \chr(0), 2) - 2); - $m = \substr($em, \strlen($ps) + 3); - if (\strlen($ps) < 8) { - \user_error('Decryption error'); - return \false; - } - // Output M - return $m; - } - /** - * EMSA-PSS-ENCODE - * - * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.1 RFC3447#section-9.1.1}. - * - * @access private - * @param string $m - * @param int $emBits - */ - function _emsa_pss_encode($m, $emBits) - { - // if $m is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error - // be output. - $emLen = $emBits + 1 >> 3; - // ie. ceil($emBits / 8) - $sLen = $this->sLen !== null ? $this->sLen : $this->hLen; - $mHash = $this->hash->hash($m); - if ($emLen < $this->hLen + $sLen + 2) { - \user_error('Encoding error'); - return \false; - } - $salt = \WPMailSMTP\Vendor\phpseclib\Crypt\Random::string($sLen); - $m2 = "\0\0\0\0\0\0\0\0" . $mHash . $salt; - $h = $this->hash->hash($m2); - $ps = \str_repeat(\chr(0), $emLen - $sLen - $this->hLen - 2); - $db = $ps . \chr(1) . $salt; - $dbMask = $this->_mgf1($h, $emLen - $this->hLen - 1); - $maskedDB = $db ^ $dbMask; - $maskedDB[0] = ~\chr(0xff << ($emBits & 7)) & $maskedDB[0]; - $em = $maskedDB . $h . \chr(0xbc); - return $em; - } - /** - * EMSA-PSS-VERIFY - * - * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.2 RFC3447#section-9.1.2}. - * - * @access private - * @param string $m - * @param string $em - * @param int $emBits - * @return string - */ - function _emsa_pss_verify($m, $em, $emBits) - { - // if $m is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error - // be output. - $emLen = $emBits + 7 >> 3; - // ie. ceil($emBits / 8); - $sLen = $this->sLen !== null ? $this->sLen : $this->hLen; - $mHash = $this->hash->hash($m); - if ($emLen < $this->hLen + $sLen + 2) { - return \false; - } - if ($em[\strlen($em) - 1] != \chr(0xbc)) { - return \false; - } - $maskedDB = \substr($em, 0, -$this->hLen - 1); - $h = \substr($em, -$this->hLen - 1, $this->hLen); - $temp = \chr(0xff << ($emBits & 7)); - if ((~$maskedDB[0] & $temp) != $temp) { - return \false; - } - $dbMask = $this->_mgf1($h, $emLen - $this->hLen - 1); - $db = $maskedDB ^ $dbMask; - $db[0] = ~\chr(0xff << ($emBits & 7)) & $db[0]; - $temp = $emLen - $this->hLen - $sLen - 2; - if (\substr($db, 0, $temp) != \str_repeat(\chr(0), $temp) || \ord($db[$temp]) != 1) { - return \false; - } - $salt = \substr($db, $temp + 1); - // should be $sLen long - $m2 = "\0\0\0\0\0\0\0\0" . $mHash . $salt; - $h2 = $this->hash->hash($m2); - return $this->_equals($h, $h2); - } - /** - * RSASSA-PSS-SIGN - * - * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.1 RFC3447#section-8.1.1}. - * - * @access private - * @param string $m - * @return string - */ - function _rsassa_pss_sign($m) - { - // EMSA-PSS encoding - $em = $this->_emsa_pss_encode($m, 8 * $this->k - 1); - // RSA signature - $m = $this->_os2ip($em); - $s = $this->_rsasp1($m); - $s = $this->_i2osp($s, $this->k); - // Output the signature S - return $s; - } - /** - * RSASSA-PSS-VERIFY - * - * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.2 RFC3447#section-8.1.2}. - * - * @access private - * @param string $m - * @param string $s - * @return string - */ - function _rsassa_pss_verify($m, $s) - { - // Length checking - if (\strlen($s) != $this->k) { - \user_error('Invalid signature'); - return \false; - } - // RSA verification - $modBits = \strlen($this->modulus->toBits()); - $s2 = $this->_os2ip($s); - $m2 = $this->_rsavp1($s2); - if ($m2 === \false) { - \user_error('Invalid signature'); - return \false; - } - $em = $this->_i2osp($m2, $this->k); - if ($em === \false) { - \user_error('Invalid signature'); - return \false; - } - // EMSA-PSS verification - return $this->_emsa_pss_verify($m, $em, $modBits - 1); - } - /** - * EMSA-PKCS1-V1_5-ENCODE - * - * See {@link http://tools.ietf.org/html/rfc3447#section-9.2 RFC3447#section-9.2}. - * - * @access private - * @param string $m - * @param int $emLen - * @return string - */ - function _emsa_pkcs1_v1_5_encode($m, $emLen) - { - $h = $this->hash->hash($m); - if ($h === \false) { - return \false; - } - // see http://tools.ietf.org/html/rfc3447#page-43 - switch ($this->hashName) { - case 'md2': - $t = \pack('H*', '3020300c06082a864886f70d020205000410'); - break; - case 'md5': - $t = \pack('H*', '3020300c06082a864886f70d020505000410'); - break; - case 'sha1': - $t = \pack('H*', '3021300906052b0e03021a05000414'); - break; - case 'sha256': - $t = \pack('H*', '3031300d060960864801650304020105000420'); - break; - case 'sha384': - $t = \pack('H*', '3041300d060960864801650304020205000430'); - break; - case 'sha512': - $t = \pack('H*', '3051300d060960864801650304020305000440'); - } - $t .= $h; - $tLen = \strlen($t); - if ($emLen < $tLen + 11) { - \user_error('Intended encoded message length too short'); - return \false; - } - $ps = \str_repeat(\chr(0xff), $emLen - $tLen - 3); - $em = "\0\1{$ps}\0{$t}"; - return $em; - } - /** - * RSASSA-PKCS1-V1_5-SIGN - * - * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.1 RFC3447#section-8.2.1}. - * - * @access private - * @param string $m - * @return string - */ - function _rsassa_pkcs1_v1_5_sign($m) - { - // EMSA-PKCS1-v1_5 encoding - $em = $this->_emsa_pkcs1_v1_5_encode($m, $this->k); - if ($em === \false) { - \user_error('RSA modulus too short'); - return \false; - } - // RSA signature - $m = $this->_os2ip($em); - $s = $this->_rsasp1($m); - $s = $this->_i2osp($s, $this->k); - // Output the signature S - return $s; - } - /** - * RSASSA-PKCS1-V1_5-VERIFY - * - * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.2 RFC3447#section-8.2.2}. - * - * @access private - * @param string $m - * @return string - */ - function _rsassa_pkcs1_v1_5_verify($m, $s) - { - // Length checking - if (\strlen($s) != $this->k) { - \user_error('Invalid signature'); - return \false; - } - // RSA verification - $s = $this->_os2ip($s); - $m2 = $this->_rsavp1($s); - if ($m2 === \false) { - \user_error('Invalid signature'); - return \false; - } - $em = $this->_i2osp($m2, $this->k); - if ($em === \false) { - \user_error('Invalid signature'); - return \false; - } - // EMSA-PKCS1-v1_5 encoding - $em2 = $this->_emsa_pkcs1_v1_5_encode($m, $this->k); - if ($em2 === \false) { - \user_error('RSA modulus too short'); - return \false; - } - // Compare - return $this->_equals($em, $em2); - } - /** - * Set Encryption Mode - * - * Valid values include self::ENCRYPTION_OAEP and self::ENCRYPTION_PKCS1. - * - * @access public - * @param int $mode - */ - function setEncryptionMode($mode) - { - $this->encryptionMode = $mode; - } - /** - * Set Signature Mode - * - * Valid values include self::SIGNATURE_PSS and self::SIGNATURE_PKCS1 - * - * @access public - * @param int $mode - */ - function setSignatureMode($mode) - { - $this->signatureMode = $mode; - } - /** - * Set public key comment. - * - * @access public - * @param string $comment - */ - function setComment($comment) - { - $this->comment = $comment; - } - /** - * Get public key comment. - * - * @access public - * @return string - */ - function getComment() - { - return $this->comment; - } - /** - * Encryption - * - * Both self::ENCRYPTION_OAEP and self::ENCRYPTION_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() - * @access public - * @param string $plaintext - * @return string - */ - function encrypt($plaintext) - { - switch ($this->encryptionMode) { - case self::ENCRYPTION_NONE: - $plaintext = \str_split($plaintext, $this->k); - $ciphertext = ''; - foreach ($plaintext as $m) { - $ciphertext .= $this->_raw_encrypt($m); - } - return $ciphertext; - case self::ENCRYPTION_PKCS1: - $length = $this->k - 11; - if ($length <= 0) { - return \false; - } - $plaintext = \str_split($plaintext, $length); - $ciphertext = ''; - foreach ($plaintext as $m) { - $ciphertext .= $this->_rsaes_pkcs1_v1_5_encrypt($m); - } - return $ciphertext; - //case self::ENCRYPTION_OAEP: - default: - $length = $this->k - 2 * $this->hLen - 2; - if ($length <= 0) { - return \false; - } - $plaintext = \str_split($plaintext, $length); - $ciphertext = ''; - foreach ($plaintext as $m) { - $ciphertext .= $this->_rsaes_oaep_encrypt($m); - } - return $ciphertext; - } - } - /** - * Decryption - * - * @see self::encrypt() - * @access public - * @param string $plaintext - * @return string - */ - function decrypt($ciphertext) - { - if ($this->k <= 0) { - return \false; - } - $ciphertext = \str_split($ciphertext, $this->k); - $ciphertext[\count($ciphertext) - 1] = \str_pad($ciphertext[\count($ciphertext) - 1], $this->k, \chr(0), \STR_PAD_LEFT); - $plaintext = ''; - switch ($this->encryptionMode) { - case self::ENCRYPTION_NONE: - $decrypt = '_raw_encrypt'; - break; - case self::ENCRYPTION_PKCS1: - $decrypt = '_rsaes_pkcs1_v1_5_decrypt'; - break; - //case self::ENCRYPTION_OAEP: - default: - $decrypt = '_rsaes_oaep_decrypt'; - } - foreach ($ciphertext as $c) { - $temp = $this->{$decrypt}($c); - if ($temp === \false) { - return \false; - } - $plaintext .= $temp; - } - return $plaintext; - } - /** - * Create a signature - * - * @see self::verify() - * @access public - * @param string $message - * @return string - */ - function sign($message) - { - if (empty($this->modulus) || empty($this->exponent)) { - return \false; - } - switch ($this->signatureMode) { - case self::SIGNATURE_PKCS1: - return $this->_rsassa_pkcs1_v1_5_sign($message); - //case self::SIGNATURE_PSS: - default: - return $this->_rsassa_pss_sign($message); - } - } - /** - * Verifies a signature - * - * @see self::sign() - * @access public - * @param string $message - * @param string $signature - * @return bool - */ - function verify($message, $signature) - { - if (empty($this->modulus) || empty($this->exponent)) { - return \false; - } - switch ($this->signatureMode) { - case self::SIGNATURE_PKCS1: - return $this->_rsassa_pkcs1_v1_5_verify($message, $signature); - //case self::SIGNATURE_PSS: - default: - return $this->_rsassa_pss_verify($message, $signature); - } - } - /** - * Extract raw BER from Base64 encoding - * - * @access private - * @param string $str - * @return string - */ - function _extractBER($str) - { - /* X.509 certs are assumed to be base64 encoded but sometimes they'll have additional things in them - * above and beyond the ceritificate. - * ie. some may have the following preceding the -----BEGIN CERTIFICATE----- line: - * - * Bag Attributes - * localKeyID: 01 00 00 00 - * subject=/O=organization/OU=org unit/CN=common name - * issuer=/O=organization/CN=common name - */ - $temp = \preg_replace('#.*?^-+[^-]+-+[\\r\\n ]*$#ms', '', $str, 1); - // remove the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- stuff - $temp = \preg_replace('#-+[^-]+-+#', '', $temp); - // remove new lines - $temp = \str_replace(array("\r", "\n", ' '), '', $temp); - $temp = \preg_match('#^[a-zA-Z\\d/+]*={0,2}$#', $temp) ? \base64_decode($temp) : \false; - return $temp != \false ? $temp : $str; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Random.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Random.php deleted file mode 100644 index 378287f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Random.php +++ /dev/null @@ -1,259 +0,0 @@ - - * - * - * - * @category Crypt - * @package Random - * @author Jim Wigginton - * @copyright 2007 Jim Wigginton - * @license http://www.opensource.org/licenses/mit-license.html MIT License - * @link http://phpseclib.sourceforge.net - */ -namespace WPMailSMTP\Vendor\phpseclib\Crypt; - -/** - * Pure-PHP Random Number Generator - * - * @package Random - * @author Jim Wigginton - * @access public - */ -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 - * @return string - */ - static function string($length) - { - if (!$length) { - return ''; - } - if (\version_compare(\PHP_VERSION, '7.0.0', '>=')) { - try { - return \random_bytes($length); - } catch (\Throwable $e) { - // If a sufficient source of randomness is unavailable, random_bytes() will throw an - // object that implements the Throwable interface (Exception, TypeError, Error). - // We don't actually need to do anything here. The string() method should just continue - // as normal. Note, however, that if we don't have a sufficient source of randomness for - // random_bytes(), most of the other calls here will fail too, so we'll end up using - // the PHP implementation. - } - } - if (\strtoupper(\substr(\PHP_OS, 0, 3)) === 'WIN') { - // method 1. prior to PHP 5.3 this would call rand() on windows hence the function_exists('class_alias') call. - // ie. class_alias is a function that was introduced in PHP 5.3 - if (\extension_loaded('mcrypt') && \function_exists('class_alias')) { - return @\mcrypt_create_iv($length); - } - // method 2. openssl_random_pseudo_bytes was introduced in PHP 5.3.0 but prior to PHP 5.3.4 there was, - // to quote , "possible blocking behavior". as of 5.3.4 - // openssl_random_pseudo_bytes and mcrypt_create_iv do the exact same thing on Windows. ie. they both - // call php_win32_get_random_bytes(): - // - // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/ext/openssl/openssl.c#L5008 - // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/ext/mcrypt/mcrypt.c#L1392 - // - // php_win32_get_random_bytes() is defined thusly: - // - // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/win32/winutil.c#L80 - // - // we're calling it, all the same, in the off chance that the mcrypt extension is not available - if (\extension_loaded('openssl') && \version_compare(\PHP_VERSION, '5.3.4', '>=')) { - return \openssl_random_pseudo_bytes($length); - } - } else { - // method 1. the fastest - if (\extension_loaded('openssl')) { - return \openssl_random_pseudo_bytes($length); - } - // method 2 - static $fp = \true; - if ($fp === \true) { - // warning's will be output unles the error suppression operator is used. errors such as - // "open_basedir restriction in effect", "Permission denied", "No such file or directory", etc. - $fp = @\fopen('/dev/urandom', 'rb'); - } - if ($fp !== \true && $fp !== \false) { - // surprisingly faster than !is_bool() or is_resource() - $temp = \fread($fp, $length); - if (\strlen($temp) == $length) { - return $temp; - } - } - // method 3. pretty much does the same thing as method 2 per the following url: - // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/ext/mcrypt/mcrypt.c#L1391 - // surprisingly slower than method 2. maybe that's because mcrypt_create_iv does a bunch of error checking that we're - // not doing. regardless, this'll only be called if this PHP script couldn't open /dev/urandom due to open_basedir - // restrictions or some such - if (\extension_loaded('mcrypt')) { - return @\mcrypt_create_iv($length, \MCRYPT_DEV_URANDOM); - } - } - // at this point we have no choice but to use a pure-PHP CSPRNG - // cascade entropy across multiple PHP instances by fixing the session and collecting all - // environmental variables, including the previous session data and the current session - // data. - // - // mt_rand seeds itself by looking at the PID and the time, both of which are (relatively) - // easy to guess at. linux uses mouse clicks, keyboard timings, etc, as entropy sources, but - // PHP isn't low level to be able to use those as sources and on a web server there's not likely - // going to be a ton of keyboard or mouse action. web servers do have one thing that we can use - // however, a ton of people visiting the website. obviously you don't want to base your seeding - // soley on parameters a potential attacker sends but (1) not everything in $_SERVER is controlled - // by the user and (2) this isn't just looking at the data sent by the current user - it's based - // on the data sent by all users. one user requests the page and a hash of their info is saved. - // another user visits the page and the serialization of their data is utilized along with the - // server envirnment stuff and a hash of the previous http request data (which itself utilizes - // a hash of the session data before that). certainly an attacker should be assumed to have - // full control over his own http requests. he, however, is not going to have control over - // everyone's http requests. - static $crypto = \false, $v; - if ($crypto === \false) { - // save old session data - $old_session_id = \session_id(); - $old_use_cookies = \ini_get('session.use_cookies'); - $old_session_cache_limiter = \session_cache_limiter(); - $_OLD_SESSION = isset($_SESSION) ? $_SESSION : \false; - if ($old_session_id != '') { - \session_write_close(); - } - \session_id(1); - \ini_set('session.use_cookies', 0); - \session_cache_limiter(''); - \session_start(); - $v = $seed = $_SESSION['seed'] = \pack('H*', \sha1((isset($_SERVER) ? phpseclib_safe_serialize($_SERVER) : '') . (isset($_POST) ? phpseclib_safe_serialize($_POST) : '') . (isset($_GET) ? phpseclib_safe_serialize($_GET) : '') . (isset($_COOKIE) ? phpseclib_safe_serialize($_COOKIE) : '') . phpseclib_safe_serialize($GLOBALS) . phpseclib_safe_serialize($_SESSION) . phpseclib_safe_serialize($_OLD_SESSION))); - if (!isset($_SESSION['count'])) { - $_SESSION['count'] = 0; - } - $_SESSION['count']++; - \session_write_close(); - // restore old session data - if ($old_session_id != '') { - \session_id($old_session_id); - \session_start(); - \ini_set('session.use_cookies', $old_use_cookies); - \session_cache_limiter($old_session_cache_limiter); - } else { - if ($_OLD_SESSION !== \false) { - $_SESSION = $_OLD_SESSION; - unset($_OLD_SESSION); - } else { - unset($_SESSION); - } - } - // in SSH2 a shared secret and an exchange hash are generated through the key exchange process. - // the IV client to server is the hash of that "nonce" with the letter A and for the encryption key it's the letter C. - // if the hash doesn't produce enough a key or an IV that's long enough concat successive hashes of the - // original hash and the current hash. we'll be emulating that. for more info see the following URL: - // - // http://tools.ietf.org/html/rfc4253#section-7.2 - // - // see the is_string($crypto) part for an example of how to expand the keys - $key = \pack('H*', \sha1($seed . 'A')); - $iv = \pack('H*', \sha1($seed . 'C')); - // ciphers are used as per the nist.gov link below. also, see this link: - // - // http://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator#Designs_based_on_cryptographic_primitives - switch (\true) { - case \class_exists('WPMailSMTP\\Vendor\\phpseclib\\Crypt\\AES'): - $crypto = new \WPMailSMTP\Vendor\phpseclib\Crypt\AES(\WPMailSMTP\Vendor\phpseclib\Crypt\Base::MODE_CTR); - break; - case \class_exists('WPMailSMTP\\Vendor\\phpseclib\\Crypt\\Twofish'): - $crypto = new \WPMailSMTP\Vendor\phpseclib\Crypt\Twofish(\WPMailSMTP\Vendor\phpseclib\Crypt\Base::MODE_CTR); - break; - case \class_exists('WPMailSMTP\\Vendor\\phpseclib\\Crypt\\Blowfish'): - $crypto = new \WPMailSMTP\Vendor\phpseclib\Crypt\Blowfish(\WPMailSMTP\Vendor\phpseclib\Crypt\Base::MODE_CTR); - break; - case \class_exists('WPMailSMTP\\Vendor\\phpseclib\\Crypt\\TripleDES'): - $crypto = new \WPMailSMTP\Vendor\phpseclib\Crypt\TripleDES(\WPMailSMTP\Vendor\phpseclib\Crypt\Base::MODE_CTR); - break; - case \class_exists('WPMailSMTP\\Vendor\\phpseclib\\Crypt\\DES'): - $crypto = new \WPMailSMTP\Vendor\phpseclib\Crypt\DES(\WPMailSMTP\Vendor\phpseclib\Crypt\Base::MODE_CTR); - break; - case \class_exists('WPMailSMTP\\Vendor\\phpseclib\\Crypt\\RC4'): - $crypto = new \WPMailSMTP\Vendor\phpseclib\Crypt\RC4(); - break; - default: - \user_error(__CLASS__ . ' requires at least one symmetric cipher be loaded'); - return \false; - } - $crypto->setKey($key); - $crypto->setIV($iv); - $crypto->enableContinuousBuffer(); - } - //return $crypto->encrypt(str_repeat("\0", $length)); - // the following is based off of ANSI X9.31: - // - // http://csrc.nist.gov/groups/STM/cavp/documents/rng/931rngext.pdf - // - // OpenSSL uses that same standard for it's random numbers: - // - // http://www.opensource.apple.com/source/OpenSSL/OpenSSL-38/openssl/fips-1.0/rand/fips_rand.c - // (do a search for "ANS X9.31 A.2.4") - $result = ''; - while (\strlen($result) < $length) { - $i = $crypto->encrypt(\microtime()); - // strlen(microtime()) == 21 - $r = $crypto->encrypt($i ^ $v); - // strlen($v) == 20 - $v = $crypto->encrypt($r ^ $i); - // strlen($r) == 20 - $result .= $r; - } - return \substr($result, 0, $length); - } -} -if (!\function_exists('WPMailSMTP\\Vendor\\phpseclib_safe_serialize')) { - /** - * Safely serialize variables - * - * If a class has a private __sleep() method it'll give a fatal error on PHP 5.2 and earlier. - * PHP 5.3 will emit a warning. - * - * @param mixed $arr - * @access public - */ - function phpseclib_safe_serialize(&$arr) - { - if (\is_object($arr)) { - return ''; - } - if (!\is_array($arr)) { - return \serialize($arr); - } - // prevent circular array recursion - if (isset($arr['__phpseclib_marker'])) { - return ''; - } - $safearr = array(); - $arr['__phpseclib_marker'] = \true; - foreach (\array_keys($arr) as $key) { - // do not recurse on the '__phpseclib_marker' key itself, for smaller memory usage - if ($key !== '__phpseclib_marker') { - $safearr[$key] = phpseclib_safe_serialize($arr[$key]); - } - } - unset($arr['__phpseclib_marker']); - return \serialize($safearr); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php deleted file mode 100644 index bfdfb3e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php +++ /dev/null @@ -1,983 +0,0 @@ - - * setKey('abcdefghijklmnop'); - * - * $size = 10 * 1024; - * $plaintext = ''; - * for ($i = 0; $i < $size; $i++) { - * $plaintext.= 'a'; - * } - * - * echo $rijndael->decrypt($rijndael->encrypt($plaintext)); - * ?> - * - * - * @category Crypt - * @package Rijndael - * @author Jim Wigginton - * @copyright 2008 Jim Wigginton - * @license http://www.opensource.org/licenses/mit-license.html MIT License - * @link http://phpseclib.sourceforge.net - */ -namespace WPMailSMTP\Vendor\phpseclib\Crypt; - -/** - * Pure-PHP implementation of Rijndael. - * - * @package Rijndael - * @author Jim Wigginton - * @access public - */ -class Rijndael extends \WPMailSMTP\Vendor\phpseclib\Crypt\Base -{ - /** - * The mcrypt specific name of the cipher - * - * Mcrypt is useable for 128/192/256-bit $block_size/$key_length. For 160/224 not. - * \phpseclib\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 \phpseclib\Crypt\Base::cipher_name_mcrypt - * @see \phpseclib\Crypt\Base::engine - * @see self::isValidEngine() - * @var string - * @access private - */ - var $cipher_name_mcrypt = 'rijndael-128'; - /** - * The default salt used by setPassword() - * - * @see \phpseclib\Crypt\Base::password_default_salt - * @see \phpseclib\Crypt\Base::setPassword() - * @var string - * @access private - */ - var $password_default_salt = 'phpseclib'; - /** - * The Key Schedule - * - * @see self::_setup() - * @var array - * @access private - */ - var $w; - /** - * The Inverse Key Schedule - * - * @see self::_setup() - * @var array - * @access private - */ - var $dw; - /** - * The Block Length divided by 32 - * - * @see self::setBlockLength() - * @var int - * @access private - * @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. - */ - var $Nb = 4; - /** - * The Key Length (in bytes) - * - * @see self::setKeyLength() - * @var int - * @access private - * @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. - */ - var $key_length = 16; - /** - * The Key Length divided by 32 - * - * @see self::setKeyLength() - * @var int - * @access private - * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4 - */ - var $Nk = 4; - /** - * The Number of Rounds - * - * @var int - * @access private - * @internal The max value is 14, the min value is 10. - */ - var $Nr; - /** - * Shift offsets - * - * @var array - * @access private - */ - var $c; - /** - * Holds the last used key- and block_size information - * - * @var array - * @access private - */ - var $kl; - /** - * Sets the key length. - * - * Valid key lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to - * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount. - * - * 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. - * - * @access public - * @param int $length - */ - function setKeyLength($length) - { - switch (\true) { - case $length <= 128: - $this->key_length = 16; - break; - case $length <= 160: - $this->key_length = 20; - break; - case $length <= 192: - $this->key_length = 24; - break; - case $length <= 224: - $this->key_length = 28; - break; - default: - $this->key_length = 32; - } - parent::setKeyLength($length); - } - /** - * Sets the block length - * - * Valid block lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to - * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount. - * - * @access public - * @param int $length - */ - function setBlockLength($length) - { - $length >>= 5; - if ($length > 8) { - $length = 8; - } elseif ($length < 4) { - $length = 4; - } - $this->Nb = $length; - $this->block_size = $length << 2; - $this->changed = \true; - $this->_setEngine(); - } - /** - * Test for engine validity - * - * This is mainly just a wrapper to set things up for \phpseclib\Crypt\Base::isValidEngine() - * - * @see \phpseclib\Crypt\Base::__construct() - * @param int $engine - * @access public - * @return bool - */ - function isValidEngine($engine) - { - switch ($engine) { - case self::ENGINE_OPENSSL: - if ($this->block_size != 16) { - return \false; - } - $this->cipher_name_openssl_ecb = 'aes-' . ($this->key_length << 3) . '-ecb'; - $this->cipher_name_openssl = 'aes-' . ($this->key_length << 3) . '-' . $this->_openssl_translate_mode(); - break; - case self::ENGINE_MCRYPT: - $this->cipher_name_mcrypt = 'rijndael-' . ($this->block_size << 3); - if ($this->key_length % 8) { - // is it a 160/224-bit key? - // mcrypt is not usable for them, only for 128/192/256-bit keys - return \false; - } - } - return parent::isValidEngine($engine); - } - /** - * Encrypts a block - * - * @access private - * @param string $in - * @return string - */ - function _encryptBlock($in) - { - static $tables; - if (empty($tables)) { - $tables =& $this->_getTables(); - } - $t0 = $tables[0]; - $t1 = $tables[1]; - $t2 = $tables[2]; - $t3 = $tables[3]; - $sbox = $tables[4]; - $state = array(); - $words = \unpack('N*', $in); - $c = $this->c; - $w = $this->w; - $Nb = $this->Nb; - $Nr = $this->Nr; - // addRoundKey - $wc = $Nb - 1; - foreach ($words as $word) { - $state[] = $word ^ $w[++$wc]; - } - // fips-197.pdf#page=19, "Figure 5. Pseudo Code for the Cipher", states that this loop has four components - - // subBytes, shiftRows, mixColumns, and addRoundKey. fips-197.pdf#page=30, "Implementation Suggestions Regarding - // Various Platforms" suggests that performs enhanced implementations are described in Rijndael-ammended.pdf. - // Rijndael-ammended.pdf#page=20, "Implementation aspects / 32-bit processor", discusses such an optimization. - // Unfortunately, the description given there is not quite correct. Per aes.spec.v316.pdf#page=19 [1], - // equation (7.4.7) is supposed to use addition instead of subtraction, so we'll do that here, as well. - // [1] http://fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.v316.pdf - $temp = array(); - for ($round = 1; $round < $Nr; ++$round) { - $i = 0; - // $c[0] == 0 - $j = $c[1]; - $k = $c[2]; - $l = $c[3]; - while ($i < $Nb) { - $temp[$i] = $t0[$state[$i] >> 24 & 0xff] ^ $t1[$state[$j] >> 16 & 0xff] ^ $t2[$state[$k] >> 8 & 0xff] ^ $t3[$state[$l] & 0xff] ^ $w[++$wc]; - ++$i; - $j = ($j + 1) % $Nb; - $k = ($k + 1) % $Nb; - $l = ($l + 1) % $Nb; - } - $state = $temp; - } - // subWord - for ($i = 0; $i < $Nb; ++$i) { - $state[$i] = $sbox[$state[$i] & 0xff] | $sbox[$state[$i] >> 8 & 0xff] << 8 | $sbox[$state[$i] >> 16 & 0xff] << 16 | $sbox[$state[$i] >> 24 & 0xff] << 24; - } - // shiftRows + addRoundKey - $i = 0; - // $c[0] == 0 - $j = $c[1]; - $k = $c[2]; - $l = $c[3]; - while ($i < $Nb) { - $temp[$i] = $state[$i] & 0xff000000 ^ $state[$j] & 0xff0000 ^ $state[$k] & 0xff00 ^ $state[$l] & 0xff ^ $w[$i]; - ++$i; - $j = ($j + 1) % $Nb; - $k = ($k + 1) % $Nb; - $l = ($l + 1) % $Nb; - } - switch ($Nb) { - case 8: - return \pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6], $temp[7]); - case 7: - return \pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6]); - case 6: - return \pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5]); - case 5: - return \pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4]); - default: - return \pack('N*', $temp[0], $temp[1], $temp[2], $temp[3]); - } - } - /** - * Decrypts a block - * - * @access private - * @param string $in - * @return string - */ - function _decryptBlock($in) - { - static $invtables; - if (empty($invtables)) { - $invtables =& $this->_getInvTables(); - } - $dt0 = $invtables[0]; - $dt1 = $invtables[1]; - $dt2 = $invtables[2]; - $dt3 = $invtables[3]; - $isbox = $invtables[4]; - $state = array(); - $words = \unpack('N*', $in); - $c = $this->c; - $dw = $this->dw; - $Nb = $this->Nb; - $Nr = $this->Nr; - // addRoundKey - $wc = $Nb - 1; - foreach ($words as $word) { - $state[] = $word ^ $dw[++$wc]; - } - $temp = array(); - for ($round = $Nr - 1; $round > 0; --$round) { - $i = 0; - // $c[0] == 0 - $j = $Nb - $c[1]; - $k = $Nb - $c[2]; - $l = $Nb - $c[3]; - while ($i < $Nb) { - $temp[$i] = $dt0[$state[$i] >> 24 & 0xff] ^ $dt1[$state[$j] >> 16 & 0xff] ^ $dt2[$state[$k] >> 8 & 0xff] ^ $dt3[$state[$l] & 0xff] ^ $dw[++$wc]; - ++$i; - $j = ($j + 1) % $Nb; - $k = ($k + 1) % $Nb; - $l = ($l + 1) % $Nb; - } - $state = $temp; - } - // invShiftRows + invSubWord + addRoundKey - $i = 0; - // $c[0] == 0 - $j = $Nb - $c[1]; - $k = $Nb - $c[2]; - $l = $Nb - $c[3]; - while ($i < $Nb) { - $word = $state[$i] & 0xff000000 | $state[$j] & 0xff0000 | $state[$k] & 0xff00 | $state[$l] & 0xff; - $temp[$i] = $dw[$i] ^ ($isbox[$word & 0xff] | $isbox[$word >> 8 & 0xff] << 8 | $isbox[$word >> 16 & 0xff] << 16 | $isbox[$word >> 24 & 0xff] << 24); - ++$i; - $j = ($j + 1) % $Nb; - $k = ($k + 1) % $Nb; - $l = ($l + 1) % $Nb; - } - switch ($Nb) { - case 8: - return \pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6], $temp[7]); - case 7: - return \pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6]); - case 6: - return \pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5]); - case 5: - return \pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4]); - default: - return \pack('N*', $temp[0], $temp[1], $temp[2], $temp[3]); - } - } - /** - * Setup the key (expansion) - * - * @see \phpseclib\Crypt\Base::_setupKey() - * @access private - */ - function _setupKey() - { - // Each number in $rcon is equal to the previous number multiplied by two in Rijndael's finite field. - // See http://en.wikipedia.org/wiki/Finite_field_arithmetic#Multiplicative_inverse - static $rcon = array(0, 0x1000000, 0x2000000, 0x4000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000, 0x1b000000, 0x36000000, 0x6c000000, 0xd8000000, 0xab000000, 0x4d000000, 0x9a000000, 0x2f000000, 0x5e000000, 0xbc000000, 0x63000000, 0xc6000000, 0x97000000, 0x35000000, 0x6a000000, 0xd4000000, 0xb3000000, 0x7d000000, 0xfa000000, 0xef000000, 0xc5000000, 0x91000000); - if (isset($this->kl['key']) && $this->key === $this->kl['key'] && $this->key_length === $this->kl['key_length'] && $this->block_size === $this->kl['block_size']) { - // already expanded - return; - } - $this->kl = array('key' => $this->key, 'key_length' => $this->key_length, 'block_size' => $this->block_size); - $this->Nk = $this->key_length >> 2; - // see Rijndael-ammended.pdf#page=44 - $this->Nr = \max($this->Nk, $this->Nb) + 6; - // shift offsets for Nb = 5, 7 are defined in Rijndael-ammended.pdf#page=44, - // "Table 8: Shift offsets in Shiftrow for the alternative block lengths" - // shift offsets for Nb = 4, 6, 8 are defined in Rijndael-ammended.pdf#page=14, - // "Table 2: Shift offsets for different block lengths" - switch ($this->Nb) { - case 4: - case 5: - case 6: - $this->c = array(0, 1, 2, 3); - break; - case 7: - $this->c = array(0, 1, 2, 4); - break; - case 8: - $this->c = array(0, 1, 3, 4); - } - $w = \array_values(\unpack('N*words', $this->key)); - $length = $this->Nb * ($this->Nr + 1); - for ($i = $this->Nk; $i < $length; $i++) { - $temp = $w[$i - 1]; - if ($i % $this->Nk == 0) { - // according to , "the size of an integer is platform-dependent". - // on a 32-bit machine, it's 32-bits, and on a 64-bit machine, it's 64-bits. on a 32-bit machine, - // 0xFFFFFFFF << 8 == 0xFFFFFF00, but on a 64-bit machine, it equals 0xFFFFFFFF00. as such, doing 'and' - // with 0xFFFFFFFF (or 0xFFFFFF00) on a 32-bit machine is unnecessary, but on a 64-bit machine, it is. - $temp = $temp << 8 & 0xffffff00 | $temp >> 24 & 0xff; - // rotWord - $temp = $this->_subWord($temp) ^ $rcon[$i / $this->Nk]; - } elseif ($this->Nk > 6 && $i % $this->Nk == 4) { - $temp = $this->_subWord($temp); - } - $w[$i] = $w[$i - $this->Nk] ^ $temp; - } - // convert the key schedule from a vector of $Nb * ($Nr + 1) length to a matrix with $Nr + 1 rows and $Nb columns - // and generate the inverse key schedule. more specifically, - // according to (section 5.3.3), - // "The key expansion for the Inverse Cipher is defined as follows: - // 1. Apply the Key Expansion. - // 2. Apply InvMixColumn to all Round Keys except the first and the last one." - // also, see fips-197.pdf#page=27, "5.3.5 Equivalent Inverse Cipher" - list($dt0, $dt1, $dt2, $dt3) = $this->_getInvTables(); - $temp = $this->w = $this->dw = array(); - for ($i = $row = $col = 0; $i < $length; $i++, $col++) { - if ($col == $this->Nb) { - if ($row == 0) { - $this->dw[0] = $this->w[0]; - } else { - // subWord + invMixColumn + invSubWord = invMixColumn - $j = 0; - while ($j < $this->Nb) { - $dw = $this->_subWord($this->w[$row][$j]); - $temp[$j] = $dt0[$dw >> 24 & 0xff] ^ $dt1[$dw >> 16 & 0xff] ^ $dt2[$dw >> 8 & 0xff] ^ $dt3[$dw & 0xff]; - $j++; - } - $this->dw[$row] = $temp; - } - $col = 0; - $row++; - } - $this->w[$row][$col] = $w[$i]; - } - $this->dw[$row] = $this->w[$row]; - // Converting to 1-dim key arrays (both ascending) - $this->dw = \array_reverse($this->dw); - $w = \array_pop($this->w); - $dw = \array_pop($this->dw); - foreach ($this->w as $r => $wr) { - foreach ($wr as $c => $wc) { - $w[] = $wc; - $dw[] = $this->dw[$r][$c]; - } - } - $this->w = $w; - $this->dw = $dw; - } - /** - * Performs S-Box substitutions - * - * @access private - * @param int $word - */ - function _subWord($word) - { - static $sbox; - if (empty($sbox)) { - list(, , , , $sbox) = $this->_getTables(); - } - return $sbox[$word & 0xff] | $sbox[$word >> 8 & 0xff] << 8 | $sbox[$word >> 16 & 0xff] << 16 | $sbox[$word >> 24 & 0xff] << 24; - } - /** - * Provides the mixColumns and sboxes tables - * - * @see self::_encryptBlock() - * @see self::_setupInlineCrypt() - * @see self::_subWord() - * @access private - * @return array &$tables - */ - function &_getTables() - { - static $tables; - if (empty($tables)) { - // according to (section 5.2.1), - // precomputed tables can be used in the mixColumns phase. in that example, they're assigned t0...t3, so - // those are the names we'll use. - $t3 = \array_map('intval', array( - // with array_map('intval', ...) we ensure we have only int's and not - // some slower floats converted by php automatically on high values - 0x6363a5c6, - 0x7c7c84f8, - 0x777799ee, - 0x7b7b8df6, - 0xf2f20dff, - 0x6b6bbdd6, - 0x6f6fb1de, - 0xc5c55491, - 0x30305060, - 0x1010302, - 0x6767a9ce, - 0x2b2b7d56, - 0xfefe19e7, - 0xd7d762b5, - 0xababe64d, - 0x76769aec, - 0xcaca458f, - 0x82829d1f, - 0xc9c94089, - 0x7d7d87fa, - 0xfafa15ef, - 0x5959ebb2, - 0x4747c98e, - 0xf0f00bfb, - 0xadadec41, - 0xd4d467b3, - 0xa2a2fd5f, - 0xafafea45, - 0x9c9cbf23, - 0xa4a4f753, - 0x727296e4, - 0xc0c05b9b, - 0xb7b7c275, - 0xfdfd1ce1, - 0x9393ae3d, - 0x26266a4c, - 0x36365a6c, - 0x3f3f417e, - 0xf7f702f5, - 0xcccc4f83, - 0x34345c68, - 0xa5a5f451, - 0xe5e534d1, - 0xf1f108f9, - 0x717193e2, - 0xd8d873ab, - 0x31315362, - 0x15153f2a, - 0x4040c08, - 0xc7c75295, - 0x23236546, - 0xc3c35e9d, - 0x18182830, - 0x9696a137, - 0x5050f0a, - 0x9a9ab52f, - 0x707090e, - 0x12123624, - 0x80809b1b, - 0xe2e23ddf, - 0xebeb26cd, - 0x2727694e, - 0xb2b2cd7f, - 0x75759fea, - 0x9091b12, - 0x83839e1d, - 0x2c2c7458, - 0x1a1a2e34, - 0x1b1b2d36, - 0x6e6eb2dc, - 0x5a5aeeb4, - 0xa0a0fb5b, - 0x5252f6a4, - 0x3b3b4d76, - 0xd6d661b7, - 0xb3b3ce7d, - 0x29297b52, - 0xe3e33edd, - 0x2f2f715e, - 0x84849713, - 0x5353f5a6, - 0xd1d168b9, - 0x0, - 0xeded2cc1, - 0x20206040, - 0xfcfc1fe3, - 0xb1b1c879, - 0x5b5bedb6, - 0x6a6abed4, - 0xcbcb468d, - 0xbebed967, - 0x39394b72, - 0x4a4ade94, - 0x4c4cd498, - 0x5858e8b0, - 0xcfcf4a85, - 0xd0d06bbb, - 0xefef2ac5, - 0xaaaae54f, - 0xfbfb16ed, - 0x4343c586, - 0x4d4dd79a, - 0x33335566, - 0x85859411, - 0x4545cf8a, - 0xf9f910e9, - 0x2020604, - 0x7f7f81fe, - 0x5050f0a0, - 0x3c3c4478, - 0x9f9fba25, - 0xa8a8e34b, - 0x5151f3a2, - 0xa3a3fe5d, - 0x4040c080, - 0x8f8f8a05, - 0x9292ad3f, - 0x9d9dbc21, - 0x38384870, - 0xf5f504f1, - 0xbcbcdf63, - 0xb6b6c177, - 0xdada75af, - 0x21216342, - 0x10103020, - 0xffff1ae5, - 0xf3f30efd, - 0xd2d26dbf, - 0xcdcd4c81, - 0xc0c1418, - 0x13133526, - 0xecec2fc3, - 0x5f5fe1be, - 0x9797a235, - 0x4444cc88, - 0x1717392e, - 0xc4c45793, - 0xa7a7f255, - 0x7e7e82fc, - 0x3d3d477a, - 0x6464acc8, - 0x5d5de7ba, - 0x19192b32, - 0x737395e6, - 0x6060a0c0, - 0x81819819, - 0x4f4fd19e, - 0xdcdc7fa3, - 0x22226644, - 0x2a2a7e54, - 0x9090ab3b, - 0x8888830b, - 0x4646ca8c, - 0xeeee29c7, - 0xb8b8d36b, - 0x14143c28, - 0xdede79a7, - 0x5e5ee2bc, - 0xb0b1d16, - 0xdbdb76ad, - 0xe0e03bdb, - 0x32325664, - 0x3a3a4e74, - 0xa0a1e14, - 0x4949db92, - 0x6060a0c, - 0x24246c48, - 0x5c5ce4b8, - 0xc2c25d9f, - 0xd3d36ebd, - 0xacacef43, - 0x6262a6c4, - 0x9191a839, - 0x9595a431, - 0xe4e437d3, - 0x79798bf2, - 0xe7e732d5, - 0xc8c8438b, - 0x3737596e, - 0x6d6db7da, - 0x8d8d8c01, - 0xd5d564b1, - 0x4e4ed29c, - 0xa9a9e049, - 0x6c6cb4d8, - 0x5656faac, - 0xf4f407f3, - 0xeaea25cf, - 0x6565afca, - 0x7a7a8ef4, - 0xaeaee947, - 0x8081810, - 0xbabad56f, - 0x787888f0, - 0x25256f4a, - 0x2e2e725c, - 0x1c1c2438, - 0xa6a6f157, - 0xb4b4c773, - 0xc6c65197, - 0xe8e823cb, - 0xdddd7ca1, - 0x74749ce8, - 0x1f1f213e, - 0x4b4bdd96, - 0xbdbddc61, - 0x8b8b860d, - 0x8a8a850f, - 0x707090e0, - 0x3e3e427c, - 0xb5b5c471, - 0x6666aacc, - 0x4848d890, - 0x3030506, - 0xf6f601f7, - 0xe0e121c, - 0x6161a3c2, - 0x35355f6a, - 0x5757f9ae, - 0xb9b9d069, - 0x86869117, - 0xc1c15899, - 0x1d1d273a, - 0x9e9eb927, - 0xe1e138d9, - 0xf8f813eb, - 0x9898b32b, - 0x11113322, - 0x6969bbd2, - 0xd9d970a9, - 0x8e8e8907, - 0x9494a733, - 0x9b9bb62d, - 0x1e1e223c, - 0x87879215, - 0xe9e920c9, - 0xcece4987, - 0x5555ffaa, - 0x28287850, - 0xdfdf7aa5, - 0x8c8c8f03, - 0xa1a1f859, - 0x89898009, - 0xd0d171a, - 0xbfbfda65, - 0xe6e631d7, - 0x4242c684, - 0x6868b8d0, - 0x4141c382, - 0x9999b029, - 0x2d2d775a, - 0xf0f111e, - 0xb0b0cb7b, - 0x5454fca8, - 0xbbbbd66d, - 0x16163a2c, - )); - foreach ($t3 as $t3i) { - $t0[] = $t3i << 24 & 0xff000000 | $t3i >> 8 & 0xffffff; - $t1[] = $t3i << 16 & 0xffff0000 | $t3i >> 16 & 0xffff; - $t2[] = $t3i << 8 & 0xffffff00 | $t3i >> 24 & 0xff; - } - $tables = array( - // The Precomputed mixColumns tables t0 - t3 - $t0, - $t1, - $t2, - $t3, - // The SubByte S-Box - array(0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x1, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x4, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x5, 0x9a, 0x7, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x9, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x0, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x2, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0xc, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0xb, 0xdb, 0xe0, 0x32, 0x3a, 0xa, 0x49, 0x6, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x8, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x3, 0xf6, 0xe, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0xd, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0xf, 0xb0, 0x54, 0xbb, 0x16), - ); - } - return $tables; - } - /** - * Provides the inverse mixColumns and inverse sboxes tables - * - * @see self::_decryptBlock() - * @see self::_setupInlineCrypt() - * @see self::_setupKey() - * @access private - * @return array &$tables - */ - function &_getInvTables() - { - static $tables; - if (empty($tables)) { - $dt3 = \array_map('intval', array(0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x24c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x82b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x36aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x7f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x5bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x6d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x0, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0xefffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0xfd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0xa67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x90d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x1269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x4984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0xb412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0xd9541ff, 0xa8017139, 0xcb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0)); - foreach ($dt3 as $dt3i) { - $dt0[] = $dt3i << 24 & 0xff000000 | $dt3i >> 8 & 0xffffff; - $dt1[] = $dt3i << 16 & 0xffff0000 | $dt3i >> 16 & 0xffff; - $dt2[] = $dt3i << 8 & 0xffffff00 | $dt3i >> 24 & 0xff; - } - $tables = array( - // The Precomputed inverse mixColumns tables dt0 - dt3 - $dt0, - $dt1, - $dt2, - $dt3, - // The inverse SubByte S-Box - array(0x52, 0x9, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0xb, 0x42, 0xfa, 0xc3, 0x4e, 0x8, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x0, 0x8c, 0xbc, 0xd3, 0xa, 0xf7, 0xe4, 0x58, 0x5, 0xb8, 0xb3, 0x45, 0x6, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0xf, 0x2, 0xc1, 0xaf, 0xbd, 0x3, 0x1, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0xe, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x7, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0xd, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x4, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0xc, 0x7d), - ); - } - return $tables; - } - /** - * Setup the performance-optimized function for de/encrypt() - * - * @see \phpseclib\Crypt\Base::_setupInlineCrypt() - * @access private - */ - function _setupInlineCrypt() - { - // Note: _setupInlineCrypt() will be called only if $this->changed === true - // So here we are'nt under the same heavy timing-stress as we are in _de/encryptBlock() or de/encrypt(). - // However...the here generated function- $code, stored as php callback in $this->inline_crypt, must work as fast as even possible. - $lambda_functions =& self::_getLambdaFunctions(); - // We create max. 10 hi-optimized code for memory reason. Means: For each $key one ultra fast inline-crypt function. - // (Currently, for Crypt_Rijndael/AES, one generated $lambda_function cost on php5.5@32bit ~80kb unfreeable mem and ~130kb on php5.5@64bit) - // After that, we'll still create very fast optimized code but not the hi-ultimative code, for each $mode one. - $gen_hi_opt_code = (bool) (\count($lambda_functions) < 10); - // Generation of a uniqe hash for our generated code - $code_hash = "Crypt_Rijndael, {$this->mode}, {$this->Nr}, {$this->Nb}"; - if ($gen_hi_opt_code) { - $code_hash = \str_pad($code_hash, 32) . $this->_hashInlineCryptFunction($this->key); - } - if (!isset($lambda_functions[$code_hash])) { - switch (\true) { - case $gen_hi_opt_code: - // The hi-optimized $lambda_functions will use the key-words hardcoded for better performance. - $w = $this->w; - $dw = $this->dw; - $init_encrypt = ''; - $init_decrypt = ''; - break; - default: - for ($i = 0, $cw = \count($this->w); $i < $cw; ++$i) { - $w[] = '$w[' . $i . ']'; - $dw[] = '$dw[' . $i . ']'; - } - $init_encrypt = '$w = $self->w;'; - $init_decrypt = '$dw = $self->dw;'; - } - $Nr = $this->Nr; - $Nb = $this->Nb; - $c = $this->c; - // Generating encrypt code: - $init_encrypt .= ' - static $tables; - if (empty($tables)) { - $tables = &$self->_getTables(); - } - $t0 = $tables[0]; - $t1 = $tables[1]; - $t2 = $tables[2]; - $t3 = $tables[3]; - $sbox = $tables[4]; - '; - $s = 'e'; - $e = 's'; - $wc = $Nb - 1; - // Preround: addRoundKey - $encrypt_block = '$in = unpack("N*", $in);' . "\n"; - for ($i = 0; $i < $Nb; ++$i) { - $encrypt_block .= '$s' . $i . ' = $in[' . ($i + 1) . '] ^ ' . $w[++$wc] . ";\n"; - } - // Mainrounds: shiftRows + subWord + mixColumns + addRoundKey - for ($round = 1; $round < $Nr; ++$round) { - list($s, $e) = array($e, $s); - for ($i = 0; $i < $Nb; ++$i) { - $encrypt_block .= '$' . $e . $i . ' = - $t0[($' . $s . $i . ' >> 24) & 0xff] ^ - $t1[($' . $s . ($i + $c[1]) % $Nb . ' >> 16) & 0xff] ^ - $t2[($' . $s . ($i + $c[2]) % $Nb . ' >> 8) & 0xff] ^ - $t3[ $' . $s . ($i + $c[3]) % $Nb . ' & 0xff] ^ - ' . $w[++$wc] . ";\n"; - } - } - // Finalround: subWord + shiftRows + addRoundKey - for ($i = 0; $i < $Nb; ++$i) { - $encrypt_block .= '$' . $e . $i . ' = - $sbox[ $' . $e . $i . ' & 0xff] | - ($sbox[($' . $e . $i . ' >> 8) & 0xff] << 8) | - ($sbox[($' . $e . $i . ' >> 16) & 0xff] << 16) | - ($sbox[($' . $e . $i . ' >> 24) & 0xff] << 24);' . "\n"; - } - $encrypt_block .= '$in = pack("N*"' . "\n"; - for ($i = 0; $i < $Nb; ++$i) { - $encrypt_block .= ', - ($' . $e . $i . ' & ' . (int) 0xff000000 . ') ^ - ($' . $e . ($i + $c[1]) % $Nb . ' & 0x00FF0000 ) ^ - ($' . $e . ($i + $c[2]) % $Nb . ' & 0x0000FF00 ) ^ - ($' . $e . ($i + $c[3]) % $Nb . ' & 0x000000FF ) ^ - ' . $w[$i] . "\n"; - } - $encrypt_block .= ');'; - // Generating decrypt code: - $init_decrypt .= ' - static $invtables; - if (empty($invtables)) { - $invtables = &$self->_getInvTables(); - } - $dt0 = $invtables[0]; - $dt1 = $invtables[1]; - $dt2 = $invtables[2]; - $dt3 = $invtables[3]; - $isbox = $invtables[4]; - '; - $s = 'e'; - $e = 's'; - $wc = $Nb - 1; - // Preround: addRoundKey - $decrypt_block = '$in = unpack("N*", $in);' . "\n"; - for ($i = 0; $i < $Nb; ++$i) { - $decrypt_block .= '$s' . $i . ' = $in[' . ($i + 1) . '] ^ ' . $dw[++$wc] . ';' . "\n"; - } - // Mainrounds: shiftRows + subWord + mixColumns + addRoundKey - for ($round = 1; $round < $Nr; ++$round) { - list($s, $e) = array($e, $s); - for ($i = 0; $i < $Nb; ++$i) { - $decrypt_block .= '$' . $e . $i . ' = - $dt0[($' . $s . $i . ' >> 24) & 0xff] ^ - $dt1[($' . $s . ($Nb + $i - $c[1]) % $Nb . ' >> 16) & 0xff] ^ - $dt2[($' . $s . ($Nb + $i - $c[2]) % $Nb . ' >> 8) & 0xff] ^ - $dt3[ $' . $s . ($Nb + $i - $c[3]) % $Nb . ' & 0xff] ^ - ' . $dw[++$wc] . ";\n"; - } - } - // Finalround: subWord + shiftRows + addRoundKey - for ($i = 0; $i < $Nb; ++$i) { - $decrypt_block .= '$' . $e . $i . ' = - $isbox[ $' . $e . $i . ' & 0xff] | - ($isbox[($' . $e . $i . ' >> 8) & 0xff] << 8) | - ($isbox[($' . $e . $i . ' >> 16) & 0xff] << 16) | - ($isbox[($' . $e . $i . ' >> 24) & 0xff] << 24);' . "\n"; - } - $decrypt_block .= '$in = pack("N*"' . "\n"; - for ($i = 0; $i < $Nb; ++$i) { - $decrypt_block .= ', - ($' . $e . $i . ' & ' . (int) 0xff000000 . ') ^ - ($' . $e . ($Nb + $i - $c[1]) % $Nb . ' & 0x00FF0000 ) ^ - ($' . $e . ($Nb + $i - $c[2]) % $Nb . ' & 0x0000FF00 ) ^ - ($' . $e . ($Nb + $i - $c[3]) % $Nb . ' & 0x000000FF ) ^ - ' . $dw[$i] . "\n"; - } - $decrypt_block .= ');'; - $lambda_functions[$code_hash] = $this->_createInlineCryptFunction(array('init_crypt' => '', 'init_encrypt' => $init_encrypt, 'init_decrypt' => $init_decrypt, 'encrypt_block' => $encrypt_block, 'decrypt_block' => $decrypt_block)); - } - $this->inline_crypt = $lambda_functions[$code_hash]; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger.php deleted file mode 100644 index 249e313..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/Math/BigInteger.php +++ /dev/null @@ -1,3247 +0,0 @@ -> and << cannot be used, nor can the modulo operator %, - * which only supports integers. Although this fact will slow this library down, the fact that such a high - * base is being used should more than compensate. - * - * Numbers are stored in {@link http://en.wikipedia.org/wiki/Endianness little endian} format. ie. - * (new \phpseclib\Math\BigInteger(pow(2, 26)))->value = array(0, 1) - * - * Useful resources are as follows: - * - * - {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf Handbook of Applied Cryptography (HAC)} - * - {@link http://math.libtomcrypt.com/files/tommath.pdf Multi-Precision Math (MPM)} - * - Java's BigInteger classes. See /j2se/src/share/classes/java/math in jdk-1_5_0-src-jrl.zip - * - * Here's an example of how to use this library: - * - * add($b); - * - * echo $c->toString(); // outputs 5 - * ?> - * - * - * @category Math - * @package BigInteger - * @author Jim Wigginton - * @copyright 2006 Jim Wigginton - * @license http://www.opensource.org/licenses/mit-license.html MIT License - */ -namespace WPMailSMTP\Vendor\phpseclib\Math; - -use WPMailSMTP\Vendor\phpseclib\Crypt\Random; -/** - * Pure-PHP arbitrary precision integer arithmetic library. Supports base-2, base-10, base-16, and base-256 - * numbers. - * - * @package BigInteger - * @author Jim Wigginton - * @access public - */ -class BigInteger -{ - /**#@+ - * Reduction constants - * - * @access private - * @see BigInteger::_reduce() - */ - /** - * @see BigInteger::_montgomery() - * @see BigInteger::_prepMontgomery() - */ - const MONTGOMERY = 0; - /** - * @see BigInteger::_barrett() - */ - const BARRETT = 1; - /** - * @see BigInteger::_mod2() - */ - const POWEROF2 = 2; - /** - * @see BigInteger::_remainder() - */ - const CLASSIC = 3; - /** - * @see BigInteger::__clone() - */ - const NONE = 4; - /**#@-*/ - /**#@+ - * 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. - * - * @access private - */ - /** - * $result[self::VALUE] contains the value. - */ - const VALUE = 0; - /** - * $result[self::SIGN] contains the sign. - */ - const SIGN = 1; - /**#@-*/ - /**#@+ - * @access private - * @see BigInteger::_montgomery() - * @see BigInteger::_barrett() - */ - /** - * 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; - /**#@-*/ - /**#@+ - * Mode constants. - * - * @access private - * @see BigInteger::__construct() - */ - /** - * To use the pure-PHP implementation - */ - const MODE_INTERNAL = 1; - /** - * To use the BCMath library - * - * (if enabled; otherwise, the internal implementation will be used) - */ - const MODE_BCMATH = 2; - /** - * To use the GMP library - * - * (if present; otherwise, either the BCMath or the internal implementation will be used) - */ - const MODE_GMP = 3; - /**#@-*/ - /** - * Karatsuba Cutoff - * - * At what point do we switch between Karatsuba multiplication and schoolbook long multiplication? - * - * @access private - */ - const KARATSUBA_CUTOFF = 25; - /**#@+ - * Static properties used by the pure-PHP implementation. - * - * @see __construct() - */ - protected static $base; - protected static $baseFull; - protected static $maxDigit; - protected static $msb; - /** - * $max10 in greatest $max10Len satisfying - * $max10 = 10**$max10Len <= 2**$base. - */ - protected static $max10; - /** - * $max10Len in greatest $max10Len satisfying - * $max10 = 10**$max10Len <= 2**$base. - */ - protected static $max10Len; - protected static $maxDigit2; - /**#@-*/ - /** - * Holds the BigInteger's value. - * - * @var array - * @access private - */ - var $value; - /** - * Holds the BigInteger's magnitude. - * - * @var bool - * @access private - */ - var $is_negative = \false; - /** - * Precision - * - * @see self::setPrecision() - * @access private - */ - var $precision = -1; - /** - * Precision Bitmask - * - * @see self::setPrecision() - * @access private - */ - var $bitmask = \false; - /** - * Mode independent value used for serialization. - * - * If the bcmath or gmp extensions are installed $this->value will be a non-serializable resource, hence the need for - * a variable that'll be serializable regardless of whether or not extensions are being used. Unlike $this->value, - * however, $this->hex is only calculated when $this->__sleep() is called. - * - * @see self::__sleep() - * @see self::__wakeup() - * @var string - * @access private - */ - var $hex; - /** - * 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. - * - * Here's an example: - * - * toString(); // outputs 50 - * ?> - * - * - * @param $x base-10 number or base-$base number if $base set. - * @param int $base - * @return \phpseclib\Math\BigInteger - * @access public - */ - function __construct($x = 0, $base = 10) - { - if (!\defined('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_MODE')) { - switch (\true) { - case \extension_loaded('gmp'): - \define('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_MODE', self::MODE_GMP); - break; - case \extension_loaded('bcmath'): - \define('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_MODE', self::MODE_BCMATH); - break; - default: - \define('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_MODE', self::MODE_INTERNAL); - } - } - if (\extension_loaded('openssl') && !\defined('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_OPENSSL_DISABLE') && !\defined('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_OPENSSL_ENABLED')) { - // some versions of XAMPP have mismatched versions of OpenSSL which causes it not to work - $versions = array(); - // avoid generating errors (even with suppression) when phpinfo() is disabled (common in production systems) - if (\strpos(\ini_get('disable_functions'), 'phpinfo') === \false) { - \ob_start(); - @\phpinfo(); - $content = \ob_get_contents(); - \ob_end_clean(); - \preg_match_all('#OpenSSL (Header|Library) Version(.*)#im', $content, $matches); - if (!empty($matches[1])) { - for ($i = 0; $i < \count($matches[1]); $i++) { - $fullVersion = \trim(\str_replace('=>', '', \strip_tags($matches[2][$i]))); - // Remove letter part in OpenSSL version - if (!\preg_match('/(\\d+\\.\\d+\\.\\d+)/i', $fullVersion, $m)) { - $versions[$matches[1][$i]] = $fullVersion; - } else { - $versions[$matches[1][$i]] = $m[0]; - } - } - } - } - // it doesn't appear that OpenSSL versions were reported upon until PHP 5.3+ - switch (\true) { - case !isset($versions['Header']): - case !isset($versions['Library']): - case $versions['Header'] == $versions['Library']: - case \version_compare($versions['Header'], '1.0.0') >= 0 && \version_compare($versions['Library'], '1.0.0') >= 0: - \define('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_OPENSSL_ENABLED', \true); - break; - default: - \define('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_OPENSSL_DISABLE', \true); - } - } - if (!\defined('PHP_INT_SIZE')) { - \define('PHP_INT_SIZE', 4); - } - if (empty(self::$base) && MATH_BIGINTEGER_MODE == self::MODE_INTERNAL) { - switch (\PHP_INT_SIZE) { - case 8: - // use 64-bit integers if int size is 8 bytes - self::$base = 31; - self::$baseFull = 0x80000000; - self::$maxDigit = 0x7fffffff; - self::$msb = 0x40000000; - self::$max10 = 1000000000; - self::$max10Len = 9; - self::$maxDigit2 = \pow(2, 62); - break; - //case 4: // use 64-bit floats if int size is 4 bytes - default: - self::$base = 26; - self::$baseFull = 0x4000000; - self::$maxDigit = 0x3ffffff; - self::$msb = 0x2000000; - self::$max10 = 10000000; - self::$max10Len = 7; - self::$maxDigit2 = \pow(2, 52); - } - } - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - switch (\true) { - case \is_resource($x) && \get_resource_type($x) == 'GMP integer': - // PHP 5.6 switched GMP from using resources to objects - case $x instanceof \GMP: - $this->value = $x; - return; - } - $this->value = \gmp_init(0); - break; - case self::MODE_BCMATH: - $this->value = '0'; - break; - default: - $this->value = array(); - } - // '0' counts as empty() but when the base is 256 '0' is equal to ord('0') or 48 - // '0' is the only value like this per http://php.net/empty - if (empty($x) && (\abs($base) != 256 || $x !== '0')) { - return; - } - switch ($base) { - case -256: - if (\ord($x[0]) & 0x80) { - $x = ~$x; - $this->is_negative = \true; - } - case 256: - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - $this->value = \function_exists('gmp_import') ? \gmp_import($x) : \gmp_init('0x' . \bin2hex($x)); - if ($this->is_negative) { - $this->value = \gmp_neg($this->value); - } - break; - case self::MODE_BCMATH: - // round $len to the nearest 4 (thanks, DavidMJ!) - $len = \strlen($x) + 3 & 0xfffffffc; - $x = \str_pad($x, $len, \chr(0), \STR_PAD_LEFT); - for ($i = 0; $i < $len; $i += 4) { - $this->value = \bcmul($this->value, '4294967296', 0); - // 4294967296 == 2**32 - $this->value = \bcadd($this->value, 0x1000000 * \ord($x[$i]) + (\ord($x[$i + 1]) << 16 | \ord($x[$i + 2]) << 8 | \ord($x[$i + 3])), 0); - } - if ($this->is_negative) { - $this->value = '-' . $this->value; - } - break; - // converts a base-2**8 (big endian / msb) number to base-2**26 (little endian / lsb) - default: - while (\strlen($x)) { - $this->value[] = $this->_bytes2int($this->_base256_rshift($x, self::$base)); - } - } - if ($this->is_negative) { - if (MATH_BIGINTEGER_MODE != self::MODE_INTERNAL) { - $this->is_negative = \false; - } - $temp = $this->add(new static('-1')); - $this->value = $temp->value; - } - break; - case 16: - case -16: - if ($base > 0 && $x[0] == '-') { - $this->is_negative = \true; - $x = \substr($x, 1); - } - $x = \preg_replace('#^(?:0x)?([A-Fa-f0-9]*).*#', '$1', $x); - $is_negative = \false; - if ($base < 0 && \hexdec($x[0]) >= 8) { - $this->is_negative = $is_negative = \true; - $x = \bin2hex(~\pack('H*', $x)); - } - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - $temp = $this->is_negative ? '-0x' . $x : '0x' . $x; - $this->value = \gmp_init($temp); - $this->is_negative = \false; - break; - case self::MODE_BCMATH: - $x = \strlen($x) & 1 ? '0' . $x : $x; - $temp = new static(\pack('H*', $x), 256); - $this->value = $this->is_negative ? '-' . $temp->value : $temp->value; - $this->is_negative = \false; - break; - default: - $x = \strlen($x) & 1 ? '0' . $x : $x; - $temp = new static(\pack('H*', $x), 256); - $this->value = $temp->value; - } - if ($is_negative) { - $temp = $this->add(new static('-1')); - $this->value = $temp->value; - } - break; - case 10: - case -10: - // (?value = \gmp_init($x); - break; - case self::MODE_BCMATH: - // explicitly casting $x to a string is necessary, here, since doing $x[0] on -1 yields different - // results then doing it on '-1' does (modInverse does $x[0]) - $this->value = $x === '-' ? '0' : (string) $x; - break; - default: - $temp = new static(); - $multiplier = new static(); - $multiplier->value = array(self::$max10); - if ($x[0] == '-') { - $this->is_negative = \true; - $x = \substr($x, 1); - } - $x = \str_pad($x, \strlen($x) + (self::$max10Len - 1) * \strlen($x) % self::$max10Len, 0, \STR_PAD_LEFT); - while (\strlen($x)) { - $temp = $temp->multiply($multiplier); - $temp = $temp->add(new static($this->_int2bytes(\substr($x, 0, self::$max10Len)), 256)); - $x = \substr($x, self::$max10Len); - } - $this->value = $temp->value; - } - break; - case 2: - // base-2 support originally implemented by Lluis Pamies - thanks! - case -2: - if ($base > 0 && $x[0] == '-') { - $this->is_negative = \true; - $x = \substr($x, 1); - } - $x = \preg_replace('#^([01]*).*#', '$1', $x); - $x = \str_pad($x, \strlen($x) + 3 * \strlen($x) % 4, 0, \STR_PAD_LEFT); - $str = '0x'; - while (\strlen($x)) { - $part = \substr($x, 0, 4); - $str .= \dechex(\bindec($part)); - $x = \substr($x, 4); - } - if ($this->is_negative) { - $str = '-' . $str; - } - $temp = new static($str, 8 * $base); - // ie. either -16 or +16 - $this->value = $temp->value; - $this->is_negative = $temp->is_negative; - break; - default: - } - } - /** - * 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. - * - * Here's an example: - * - * toBytes(); // outputs chr(65) - * ?> - * - * - * @param bool $twos_compliment - * @return string - * @access public - * @internal Converts a base-2**26 number to base-2**8 - */ - function toBytes($twos_compliment = \false) - { - if ($twos_compliment) { - $comparison = $this->compare(new static()); - if ($comparison == 0) { - return $this->precision > 0 ? \str_repeat(\chr(0), $this->precision + 1 >> 3) : ''; - } - $temp = $comparison < 0 ? $this->add(new static(1)) : $this->copy(); - $bytes = $temp->toBytes(); - if (!\strlen($bytes)) { - // eg. if the number we're trying to convert is -1 - $bytes = \chr(0); - } - if ($this->precision <= 0 && \ord($bytes[0]) & 0x80) { - $bytes = \chr(0) . $bytes; - } - return $comparison < 0 ? ~$bytes : $bytes; - } - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - if (\gmp_cmp($this->value, \gmp_init(0)) == 0) { - return $this->precision > 0 ? \str_repeat(\chr(0), $this->precision + 1 >> 3) : ''; - } - if (\function_exists('gmp_export')) { - $temp = \gmp_export($this->value); - } else { - $temp = \gmp_strval(\gmp_abs($this->value), 16); - $temp = \strlen($temp) & 1 ? '0' . $temp : $temp; - $temp = \pack('H*', $temp); - } - return $this->precision > 0 ? \substr(\str_pad($temp, $this->precision >> 3, \chr(0), \STR_PAD_LEFT), -($this->precision >> 3)) : \ltrim($temp, \chr(0)); - case self::MODE_BCMATH: - if ($this->value === '0') { - return $this->precision > 0 ? \str_repeat(\chr(0), $this->precision + 1 >> 3) : ''; - } - $value = ''; - $current = $this->value; - if ($current[0] == '-') { - $current = \substr($current, 1); - } - while (\bccomp($current, '0', 0) > 0) { - $temp = \bcmod($current, '16777216'); - $value = \chr($temp >> 16) . \chr($temp >> 8) . \chr($temp) . $value; - $current = \bcdiv($current, '16777216', 0); - } - return $this->precision > 0 ? \substr(\str_pad($value, $this->precision >> 3, \chr(0), \STR_PAD_LEFT), -($this->precision >> 3)) : \ltrim($value, \chr(0)); - } - if (!\count($this->value)) { - return $this->precision > 0 ? \str_repeat(\chr(0), $this->precision + 1 >> 3) : ''; - } - $result = $this->_int2bytes($this->value[\count($this->value) - 1]); - $temp = $this->copy(); - for ($i = \count($temp->value) - 2; $i >= 0; --$i) { - $temp->_base256_lshift($result, self::$base); - $result = $result | \str_pad($temp->_int2bytes($temp->value[$i]), \strlen($result), \chr(0), \STR_PAD_LEFT); - } - return $this->precision > 0 ? \str_pad(\substr($result, -($this->precision + 7 >> 3)), $this->precision + 7 >> 3, \chr(0), \STR_PAD_LEFT) : $result; - } - /** - * Converts a BigInteger to a hex string (eg. base-16)). - * - * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're - * saved as two's compliment. - * - * Here's an example: - * - * toHex(); // outputs '41' - * ?> - * - * - * @param bool $twos_compliment - * @return string - * @access public - * @internal Converts a base-2**26 number to base-2**8 - */ - function toHex($twos_compliment = \false) - { - return \bin2hex($this->toBytes($twos_compliment)); - } - /** - * 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. - * - * Here's an example: - * - * toBits(); // outputs '1000001' - * ?> - * - * - * @param bool $twos_compliment - * @return string - * @access public - * @internal Converts a base-2**26 number to base-2**2 - */ - function toBits($twos_compliment = \false) - { - $hex = $this->toHex($twos_compliment); - $bits = ''; - for ($i = \strlen($hex) - 8, $start = \strlen($hex) & 7; $i >= $start; $i -= 8) { - $bits = \str_pad(\decbin(\hexdec(\substr($hex, $i, 8))), 32, '0', \STR_PAD_LEFT) . $bits; - } - if ($start) { - // hexdec('') == 0 - $bits = \str_pad(\decbin(\hexdec(\substr($hex, 0, $start))), 8, '0', \STR_PAD_LEFT) . $bits; - } - $result = $this->precision > 0 ? \substr($bits, -$this->precision) : \ltrim($bits, '0'); - if ($twos_compliment && $this->compare(new static()) > 0 && $this->precision <= 0) { - return '0' . $result; - } - return $result; - } - /** - * Converts a BigInteger to a base-10 number. - * - * Here's an example: - * - * toString(); // outputs 50 - * ?> - * - * - * @return string - * @access public - * @internal Converts a base-2**26 number to base-10**7 (which is pretty much base-10) - */ - function toString() - { - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - return \gmp_strval($this->value); - case self::MODE_BCMATH: - if ($this->value === '0') { - return '0'; - } - return \ltrim($this->value, '0'); - } - if (!\count($this->value)) { - return '0'; - } - $temp = $this->copy(); - $temp->bitmask = \false; - $temp->is_negative = \false; - $divisor = new static(); - $divisor->value = array(self::$max10); - $result = ''; - while (\count($temp->value)) { - list($temp, $mod) = $temp->divide($divisor); - $result = \str_pad(isset($mod->value[0]) ? $mod->value[0] : '', self::$max10Len, '0', \STR_PAD_LEFT) . $result; - } - $result = \ltrim($result, '0'); - if (empty($result)) { - $result = '0'; - } - if ($this->is_negative) { - $result = '-' . $result; - } - return $result; - } - /** - * Copy an object - * - * PHP5 passes objects by reference while PHP4 passes by value. As such, we need a function to guarantee - * that all objects are passed by value, when appropriate. More information can be found here: - * - * {@link http://php.net/language.oop5.basic#51624} - * - * @access public - * @see self::__clone() - * @return \phpseclib\Math\BigInteger - */ - function copy() - { - $temp = new static(); - $temp->value = $this->value; - $temp->is_negative = $this->is_negative; - $temp->precision = $this->precision; - $temp->bitmask = $this->bitmask; - return $temp; - } - /** - * __toString() magic method - * - * Will be called, automatically, if you're supporting just PHP5. If you're supporting PHP4, you'll need to call - * toString(). - * - * @access public - * @internal Implemented per a suggestion by Techie-Michael - thanks! - */ - function __toString() - { - return $this->toString(); - } - /** - * __clone() magic method - * - * Although you can call BigInteger::__toString() directly in PHP5, you cannot call BigInteger::__clone() directly - * in PHP5. You can in PHP4 since it's not a magic method, but in PHP5, you have to call it by using the PHP5 - * only syntax of $y = clone $x. As such, if you're trying to write an application that works on both PHP4 and - * PHP5, call BigInteger::copy(), instead. - * - * @access public - * @see self::copy() - * @return \phpseclib\Math\BigInteger - */ - function __clone() - { - return $this->copy(); - } - /** - * __sleep() magic method - * - * Will be called, automatically, when serialize() is called on a BigInteger object. - * - * @see self::__wakeup() - * @access public - */ - function __sleep() - { - $this->hex = $this->toHex(\true); - $vars = array('hex'); - if ($this->precision > 0) { - $vars[] = 'precision'; - } - return $vars; - } - /** - * __wakeup() magic method - * - * Will be called, automatically, when unserialize() is called on a BigInteger object. - * - * @see self::__sleep() - * @access public - */ - function __wakeup() - { - $temp = new static($this->hex, -16); - $this->value = $temp->value; - $this->is_negative = $temp->is_negative; - if ($this->precision > 0) { - // recalculate $this->bitmask - $this->setPrecision($this->precision); - } - } - /** - * __debugInfo() magic method - * - * Will be called, automatically, when print_r() or var_dump() are called - * - * @access public - */ - function __debugInfo() - { - $opts = array(); - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - $engine = 'gmp'; - break; - case self::MODE_BCMATH: - $engine = 'bcmath'; - break; - case self::MODE_INTERNAL: - $engine = 'internal'; - $opts[] = \PHP_INT_SIZE == 8 ? '64-bit' : '32-bit'; - } - if (MATH_BIGINTEGER_MODE != self::MODE_GMP && \defined('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_OPENSSL_ENABLED')) { - $opts[] = 'OpenSSL'; - } - if (!empty($opts)) { - $engine .= ' (' . \implode('.', $opts) . ')'; - } - return array('value' => '0x' . $this->toHex(\true), 'engine' => $engine); - } - /** - * Adds two BigIntegers. - * - * Here's an example: - * - * add($b); - * - * echo $c->toString(); // outputs 30 - * ?> - * - * - * @param \phpseclib\Math\BigInteger $y - * @return \phpseclib\Math\BigInteger - * @access public - * @internal Performs base-2**52 addition - */ - function add($y) - { - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - $temp = new static(); - $temp->value = \gmp_add($this->value, $y->value); - return $this->_normalize($temp); - case self::MODE_BCMATH: - $temp = new static(); - $temp->value = \bcadd($this->value, $y->value, 0); - return $this->_normalize($temp); - } - $temp = $this->_add($this->value, $this->is_negative, $y->value, $y->is_negative); - $result = new static(); - $result->value = $temp[self::VALUE]; - $result->is_negative = $temp[self::SIGN]; - return $this->_normalize($result); - } - /** - * Performs addition. - * - * @param array $x_value - * @param bool $x_negative - * @param array $y_value - * @param bool $y_negative - * @return array - * @access private - */ - function _add($x_value, $x_negative, $y_value, $y_negative) - { - $x_size = \count($x_value); - $y_size = \count($y_value); - if ($x_size == 0) { - return array(self::VALUE => $y_value, self::SIGN => $y_negative); - } elseif ($y_size == 0) { - return array(self::VALUE => $x_value, self::SIGN => $x_negative); - } - // subtract, if appropriate - if ($x_negative != $y_negative) { - if ($x_value == $y_value) { - return array(self::VALUE => array(), self::SIGN => \false); - } - $temp = $this->_subtract($x_value, \false, $y_value, \false); - $temp[self::SIGN] = $this->_compare($x_value, \false, $y_value, \false) > 0 ? $x_negative : $y_negative; - return $temp; - } - if ($x_size < $y_size) { - $size = $x_size; - $value = $y_value; - } else { - $size = $y_size; - $value = $x_value; - } - $value[\count($value)] = 0; - // just in case the carry adds an extra digit - $carry = 0; - for ($i = 0, $j = 1; $j < $size; $i += 2, $j += 2) { - $sum = $x_value[$j] * self::$baseFull + $x_value[$i] + $y_value[$j] * self::$baseFull + $y_value[$i] + $carry; - $carry = $sum >= self::$maxDigit2; - // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1 - $sum = $carry ? $sum - self::$maxDigit2 : $sum; - $temp = self::$base === 26 ? \intval($sum / 0x4000000) : $sum >> 31; - $value[$i] = (int) ($sum - self::$baseFull * $temp); - // eg. a faster alternative to fmod($sum, 0x4000000) - $value[$j] = $temp; - } - if ($j == $size) { - // ie. if $y_size is odd - $sum = $x_value[$i] + $y_value[$i] + $carry; - $carry = $sum >= self::$baseFull; - $value[$i] = $carry ? $sum - self::$baseFull : $sum; - ++$i; - // ie. let $i = $j since we've just done $value[$i] - } - if ($carry) { - for (; $value[$i] == self::$maxDigit; ++$i) { - $value[$i] = 0; - } - ++$value[$i]; - } - return array(self::VALUE => $this->_trim($value), self::SIGN => $x_negative); - } - /** - * Subtracts two BigIntegers. - * - * Here's an example: - * - * subtract($b); - * - * echo $c->toString(); // outputs -10 - * ?> - * - * - * @param \phpseclib\Math\BigInteger $y - * @return \phpseclib\Math\BigInteger - * @access public - * @internal Performs base-2**52 subtraction - */ - function subtract($y) - { - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - $temp = new static(); - $temp->value = \gmp_sub($this->value, $y->value); - return $this->_normalize($temp); - case self::MODE_BCMATH: - $temp = new static(); - $temp->value = \bcsub($this->value, $y->value, 0); - return $this->_normalize($temp); - } - $temp = $this->_subtract($this->value, $this->is_negative, $y->value, $y->is_negative); - $result = new static(); - $result->value = $temp[self::VALUE]; - $result->is_negative = $temp[self::SIGN]; - return $this->_normalize($result); - } - /** - * Performs subtraction. - * - * @param array $x_value - * @param bool $x_negative - * @param array $y_value - * @param bool $y_negative - * @return array - * @access private - */ - function _subtract($x_value, $x_negative, $y_value, $y_negative) - { - $x_size = \count($x_value); - $y_size = \count($y_value); - if ($x_size == 0) { - return array(self::VALUE => $y_value, self::SIGN => !$y_negative); - } elseif ($y_size == 0) { - return array(self::VALUE => $x_value, self::SIGN => $x_negative); - } - // add, if appropriate (ie. -$x - +$y or +$x - -$y) - if ($x_negative != $y_negative) { - $temp = $this->_add($x_value, \false, $y_value, \false); - $temp[self::SIGN] = $x_negative; - return $temp; - } - $diff = $this->_compare($x_value, $x_negative, $y_value, $y_negative); - if (!$diff) { - return array(self::VALUE => array(), self::SIGN => \false); - } - // switch $x and $y around, if appropriate. - if (!$x_negative && $diff < 0 || $x_negative && $diff > 0) { - $temp = $x_value; - $x_value = $y_value; - $y_value = $temp; - $x_negative = !$x_negative; - $x_size = \count($x_value); - $y_size = \count($y_value); - } - // at this point, $x_value should be at least as big as - if not bigger than - $y_value - $carry = 0; - for ($i = 0, $j = 1; $j < $y_size; $i += 2, $j += 2) { - $sum = $x_value[$j] * self::$baseFull + $x_value[$i] - $y_value[$j] * self::$baseFull - $y_value[$i] - $carry; - $carry = $sum < 0; - // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1 - $sum = $carry ? $sum + self::$maxDigit2 : $sum; - $temp = self::$base === 26 ? \intval($sum / 0x4000000) : $sum >> 31; - $x_value[$i] = (int) ($sum - self::$baseFull * $temp); - $x_value[$j] = $temp; - } - if ($j == $y_size) { - // ie. if $y_size is odd - $sum = $x_value[$i] - $y_value[$i] - $carry; - $carry = $sum < 0; - $x_value[$i] = $carry ? $sum + self::$baseFull : $sum; - ++$i; - } - if ($carry) { - for (; !$x_value[$i]; ++$i) { - $x_value[$i] = self::$maxDigit; - } - --$x_value[$i]; - } - return array(self::VALUE => $this->_trim($x_value), self::SIGN => $x_negative); - } - /** - * Multiplies two BigIntegers - * - * Here's an example: - * - * multiply($b); - * - * echo $c->toString(); // outputs 200 - * ?> - * - * - * @param \phpseclib\Math\BigInteger $x - * @return \phpseclib\Math\BigInteger - * @access public - */ - function multiply($x) - { - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - $temp = new static(); - $temp->value = \gmp_mul($this->value, $x->value); - return $this->_normalize($temp); - case self::MODE_BCMATH: - $temp = new static(); - $temp->value = \bcmul($this->value, $x->value, 0); - return $this->_normalize($temp); - } - $temp = $this->_multiply($this->value, $this->is_negative, $x->value, $x->is_negative); - $product = new static(); - $product->value = $temp[self::VALUE]; - $product->is_negative = $temp[self::SIGN]; - return $this->_normalize($product); - } - /** - * Performs multiplication. - * - * @param array $x_value - * @param bool $x_negative - * @param array $y_value - * @param bool $y_negative - * @return array - * @access private - */ - function _multiply($x_value, $x_negative, $y_value, $y_negative) - { - //if ( $x_value == $y_value ) { - // return array( - // self::VALUE => $this->_square($x_value), - // self::SIGN => $x_sign != $y_value - // ); - //} - $x_length = \count($x_value); - $y_length = \count($y_value); - if (!$x_length || !$y_length) { - // a 0 is being multiplied - return array(self::VALUE => array(), self::SIGN => \false); - } - return array(self::VALUE => \min($x_length, $y_length) < 2 * self::KARATSUBA_CUTOFF ? $this->_trim($this->_regularMultiply($x_value, $y_value)) : $this->_trim($this->_karatsuba($x_value, $y_value)), self::SIGN => $x_negative != $y_negative); - } - /** - * Performs long multiplication on two BigIntegers - * - * Modeled after 'multiply' in MutableBigInteger.java. - * - * @param array $x_value - * @param array $y_value - * @return array - * @access private - */ - function _regularMultiply($x_value, $y_value) - { - $x_length = \count($x_value); - $y_length = \count($y_value); - if (!$x_length || !$y_length) { - // a 0 is being multiplied - return array(); - } - if ($x_length < $y_length) { - $temp = $x_value; - $x_value = $y_value; - $y_value = $temp; - $x_length = \count($x_value); - $y_length = \count($y_value); - } - $product_value = $this->_array_repeat(0, $x_length + $y_length); - // the following for loop could be removed if the for loop following it - // (the one with nested for loops) initially set $i to 0, but - // doing so would also make the result in one set of unnecessary adds, - // since on the outermost loops first pass, $product->value[$k] is going - // to always be 0 - $carry = 0; - for ($j = 0; $j < $x_length; ++$j) { - // ie. $i = 0 - $temp = $x_value[$j] * $y_value[0] + $carry; - // $product_value[$k] == 0 - $carry = self::$base === 26 ? \intval($temp / 0x4000000) : $temp >> 31; - $product_value[$j] = (int) ($temp - self::$baseFull * $carry); - } - $product_value[$j] = $carry; - // the above for loop is what the previous comment was talking about. the - // following for loop is the "one with nested for loops" - for ($i = 1; $i < $y_length; ++$i) { - $carry = 0; - for ($j = 0, $k = $i; $j < $x_length; ++$j, ++$k) { - $temp = $product_value[$k] + $x_value[$j] * $y_value[$i] + $carry; - $carry = self::$base === 26 ? \intval($temp / 0x4000000) : $temp >> 31; - $product_value[$k] = (int) ($temp - self::$baseFull * $carry); - } - $product_value[$k] = $carry; - } - return $product_value; - } - /** - * 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 - * @access private - */ - function _karatsuba($x_value, $y_value) - { - $m = \min(\count($x_value) >> 1, \count($y_value) >> 1); - if ($m < self::KARATSUBA_CUTOFF) { - return $this->_regularMultiply($x_value, $y_value); - } - $x1 = \array_slice($x_value, $m); - $x0 = \array_slice($x_value, 0, $m); - $y1 = \array_slice($y_value, $m); - $y0 = \array_slice($y_value, 0, $m); - $z2 = $this->_karatsuba($x1, $y1); - $z0 = $this->_karatsuba($x0, $y0); - $z1 = $this->_add($x1, \false, $x0, \false); - $temp = $this->_add($y1, \false, $y0, \false); - $z1 = $this->_karatsuba($z1[self::VALUE], $temp[self::VALUE]); - $temp = $this->_add($z2, \false, $z0, \false); - $z1 = $this->_subtract($z1, \false, $temp[self::VALUE], \false); - $z2 = \array_merge(\array_fill(0, 2 * $m, 0), $z2); - $z1[self::VALUE] = \array_merge(\array_fill(0, $m, 0), $z1[self::VALUE]); - $xy = $this->_add($z2, \false, $z1[self::VALUE], $z1[self::SIGN]); - $xy = $this->_add($xy[self::VALUE], $xy[self::SIGN], $z0, \false); - return $xy[self::VALUE]; - } - /** - * Performs squaring - * - * @param array $x - * @return array - * @access private - */ - function _square($x = \false) - { - return \count($x) < 2 * self::KARATSUBA_CUTOFF ? $this->_trim($this->_baseSquare($x)) : $this->_trim($this->_karatsubaSquare($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 - * @access private - */ - function _baseSquare($value) - { - if (empty($value)) { - return array(); - } - $square_value = $this->_array_repeat(0, 2 * \count($value)); - for ($i = 0, $max_index = \count($value) - 1; $i <= $max_index; ++$i) { - $i2 = $i << 1; - $temp = $square_value[$i2] + $value[$i] * $value[$i]; - $carry = self::$base === 26 ? \intval($temp / 0x4000000) : $temp >> 31; - $square_value[$i2] = (int) ($temp - self::$baseFull * $carry); - // note how we start from $i+1 instead of 0 as we do in multiplication. - for ($j = $i + 1, $k = $i2 + 1; $j <= $max_index; ++$j, ++$k) { - $temp = $square_value[$k] + 2 * $value[$j] * $value[$i] + $carry; - $carry = self::$base === 26 ? \intval($temp / 0x4000000) : $temp >> 31; - $square_value[$k] = (int) ($temp - self::$baseFull * $carry); - } - // the following line can yield values larger 2**15. at this point, PHP should switch - // over to floats. - $square_value[$i + $max_index + 1] = $carry; - } - return $square_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 - * @access private - */ - function _karatsubaSquare($value) - { - $m = \count($value) >> 1; - if ($m < self::KARATSUBA_CUTOFF) { - return $this->_baseSquare($value); - } - $x1 = \array_slice($value, $m); - $x0 = \array_slice($value, 0, $m); - $z2 = $this->_karatsubaSquare($x1); - $z0 = $this->_karatsubaSquare($x0); - $z1 = $this->_add($x1, \false, $x0, \false); - $z1 = $this->_karatsubaSquare($z1[self::VALUE]); - $temp = $this->_add($z2, \false, $z0, \false); - $z1 = $this->_subtract($z1, \false, $temp[self::VALUE], \false); - $z2 = \array_merge(\array_fill(0, 2 * $m, 0), $z2); - $z1[self::VALUE] = \array_merge(\array_fill(0, $m, 0), $z1[self::VALUE]); - $xx = $this->_add($z2, \false, $z1[self::VALUE], $z1[self::SIGN]); - $xx = $this->_add($xx[self::VALUE], $xx[self::SIGN], $z0, \false); - return $xx[self::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). - * - * Here's an example: - * - * divide($b); - * - * echo $quotient->toString(); // outputs 0 - * echo "\r\n"; - * echo $remainder->toString(); // outputs 10 - * ?> - * - * - * @param \phpseclib\Math\BigInteger $y - * @return array - * @access public - * @internal This function is based off of {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=9 HAC 14.20}. - */ - function divide($y) - { - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - $quotient = new static(); - $remainder = new static(); - list($quotient->value, $remainder->value) = \gmp_div_qr($this->value, $y->value); - if (\gmp_sign($remainder->value) < 0) { - $remainder->value = \gmp_add($remainder->value, \gmp_abs($y->value)); - } - return array($this->_normalize($quotient), $this->_normalize($remainder)); - case self::MODE_BCMATH: - $quotient = new static(); - $remainder = new static(); - $quotient->value = \bcdiv($this->value, $y->value, 0); - $remainder->value = \bcmod($this->value, $y->value); - if ($remainder->value[0] == '-') { - $remainder->value = \bcadd($remainder->value, $y->value[0] == '-' ? \substr($y->value, 1) : $y->value, 0); - } - return array($this->_normalize($quotient), $this->_normalize($remainder)); - } - if (\count($y->value) == 1) { - list($q, $r) = $this->_divide_digit($this->value, $y->value[0]); - $quotient = new static(); - $remainder = new static(); - $quotient->value = $q; - $remainder->value = array($r); - $quotient->is_negative = $this->is_negative != $y->is_negative; - return array($this->_normalize($quotient), $this->_normalize($remainder)); - } - static $zero; - if (!isset($zero)) { - $zero = new static(); - } - $x = $this->copy(); - $y = $y->copy(); - $x_sign = $x->is_negative; - $y_sign = $y->is_negative; - $x->is_negative = $y->is_negative = \false; - $diff = $x->compare($y); - if (!$diff) { - $temp = new static(); - $temp->value = array(1); - $temp->is_negative = $x_sign != $y_sign; - return array($this->_normalize($temp), $this->_normalize(new static())); - } - if ($diff < 0) { - // if $x is negative, "add" $y. - if ($x_sign) { - $x = $y->subtract($x); - } - return array($this->_normalize(new static()), $this->_normalize($x)); - } - // normalize $x and $y as described in HAC 14.23 / 14.24 - $msb = $y->value[\count($y->value) - 1]; - for ($shift = 0; !($msb & self::$msb); ++$shift) { - $msb <<= 1; - } - $x->_lshift($shift); - $y->_lshift($shift); - $y_value =& $y->value; - $x_max = \count($x->value) - 1; - $y_max = \count($y->value) - 1; - $quotient = new static(); - $quotient_value =& $quotient->value; - $quotient_value = $this->_array_repeat(0, $x_max - $y_max + 1); - static $temp, $lhs, $rhs; - if (!isset($temp)) { - $temp = new static(); - $lhs = new static(); - $rhs = new static(); - } - $temp_value =& $temp->value; - $rhs_value =& $rhs->value; - // $temp = $y << ($x_max - $y_max-1) in base 2**26 - $temp_value = \array_merge($this->_array_repeat(0, $x_max - $y_max), $y_value); - while ($x->compare($temp) >= 0) { - // calculate the "common residue" - ++$quotient_value[$x_max - $y_max]; - $x = $x->subtract($temp); - $x_max = \count($x->value) - 1; - } - for ($i = $x_max; $i >= $y_max + 1; --$i) { - $x_value =& $x->value; - $x_window = array(isset($x_value[$i]) ? $x_value[$i] : 0, isset($x_value[$i - 1]) ? $x_value[$i - 1] : 0, isset($x_value[$i - 2]) ? $x_value[$i - 2] : 0); - $y_window = array($y_value[$y_max], $y_max > 0 ? $y_value[$y_max - 1] : 0); - $q_index = $i - $y_max - 1; - if ($x_window[0] == $y_window[0]) { - $quotient_value[$q_index] = self::$maxDigit; - } else { - $quotient_value[$q_index] = $this->_safe_divide($x_window[0] * self::$baseFull + $x_window[1], $y_window[0]); - } - $temp_value = array($y_window[1], $y_window[0]); - $lhs->value = array($quotient_value[$q_index]); - $lhs = $lhs->multiply($temp); - $rhs_value = array($x_window[2], $x_window[1], $x_window[0]); - while ($lhs->compare($rhs) > 0) { - --$quotient_value[$q_index]; - $lhs->value = array($quotient_value[$q_index]); - $lhs = $lhs->multiply($temp); - } - $adjust = $this->_array_repeat(0, $q_index); - $temp_value = array($quotient_value[$q_index]); - $temp = $temp->multiply($y); - $temp_value =& $temp->value; - if (\count($temp_value)) { - $temp_value = \array_merge($adjust, $temp_value); - } - $x = $x->subtract($temp); - if ($x->compare($zero) < 0) { - $temp_value = \array_merge($adjust, $y_value); - $x = $x->add($temp); - --$quotient_value[$q_index]; - } - $x_max = \count($x_value) - 1; - } - // unnormalize the remainder - $x->_rshift($shift); - $quotient->is_negative = $x_sign != $y_sign; - // calculate the "common residue", if appropriate - if ($x_sign) { - $y->_rshift($shift); - $x = $y->subtract($x); - } - return array($this->_normalize($quotient), $this->_normalize($x)); - } - /** - * Divides a BigInteger by a regular integer - * - * abc / x = a00 / x + b0 / x + c / x - * - * @param array $dividend - * @param array $divisor - * @return array - * @access private - */ - function _divide_digit($dividend, $divisor) - { - $carry = 0; - $result = array(); - for ($i = \count($dividend) - 1; $i >= 0; --$i) { - $temp = self::$baseFull * $carry + $dividend[$i]; - $result[$i] = $this->_safe_divide($temp, $divisor); - $carry = (int) ($temp - $divisor * $result[$i]); - } - return array($result, $carry); - } - /** - * Performs modular exponentiation. - * - * Here's an example: - * - * modPow($b, $c); - * - * echo $c->toString(); // outputs 10 - * ?> - * - * - * @param \phpseclib\Math\BigInteger $e - * @param \phpseclib\Math\BigInteger $n - * @return \phpseclib\Math\BigInteger - * @access public - * @internal 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. - */ - function modPow($e, $n) - { - $n = $this->bitmask !== \false && $this->bitmask->compare($n) < 0 ? $this->bitmask : $n->abs(); - if ($e->compare(new static()) < 0) { - $e = $e->abs(); - $temp = $this->modInverse($n); - if ($temp === \false) { - return \false; - } - return $this->_normalize($temp->modPow($e, $n)); - } - if (MATH_BIGINTEGER_MODE == self::MODE_GMP) { - $temp = new static(); - $temp->value = \gmp_powm($this->value, $e->value, $n->value); - return $this->_normalize($temp); - } - if ($this->compare(new static()) < 0 || $this->compare($n) > 0) { - list(, $temp) = $this->divide($n); - return $temp->modPow($e, $n); - } - if (\defined('WPMailSMTP\\Vendor\\MATH_BIGINTEGER_OPENSSL_ENABLED')) { - $components = array('modulus' => $n->toBytes(\true), 'publicExponent' => $e->toBytes(\true)); - $components = array('modulus' => \pack('Ca*a*', 2, $this->_encodeASN1Length(\strlen($components['modulus'])), $components['modulus']), 'publicExponent' => \pack('Ca*a*', 2, $this->_encodeASN1Length(\strlen($components['publicExponent'])), $components['publicExponent'])); - $RSAPublicKey = \pack('Ca*a*a*', 48, $this->_encodeASN1Length(\strlen($components['modulus']) + \strlen($components['publicExponent'])), $components['modulus'], $components['publicExponent']); - $rsaOID = \pack('H*', '300d06092a864886f70d0101010500'); - // hex version of MA0GCSqGSIb3DQEBAQUA - $RSAPublicKey = \chr(0) . $RSAPublicKey; - $RSAPublicKey = \chr(3) . $this->_encodeASN1Length(\strlen($RSAPublicKey)) . $RSAPublicKey; - $encapsulated = \pack('Ca*a*', 48, $this->_encodeASN1Length(\strlen($rsaOID . $RSAPublicKey)), $rsaOID . $RSAPublicKey); - $RSAPublicKey = "-----BEGIN PUBLIC KEY-----\r\n" . \chunk_split(\base64_encode($encapsulated)) . '-----END PUBLIC KEY-----'; - $plaintext = \str_pad($this->toBytes(), \strlen($n->toBytes(\true)) - 1, "\0", \STR_PAD_LEFT); - if (\openssl_public_encrypt($plaintext, $result, $RSAPublicKey, \OPENSSL_NO_PADDING)) { - return new static($result, 256); - } - } - if (MATH_BIGINTEGER_MODE == self::MODE_BCMATH) { - $temp = new static(); - $temp->value = \bcpowmod($this->value, $e->value, $n->value, 0); - return $this->_normalize($temp); - } - if (empty($e->value)) { - $temp = new static(); - $temp->value = array(1); - return $this->_normalize($temp); - } - if ($e->value == array(1)) { - list(, $temp) = $this->divide($n); - return $this->_normalize($temp); - } - if ($e->value == array(2)) { - $temp = new static(); - $temp->value = $this->_square($this->value); - list(, $temp) = $temp->divide($n); - return $this->_normalize($temp); - } - return $this->_normalize($this->_slidingWindow($e, $n, self::BARRETT)); - // the following code, although not callable, can be run independently of the above code - // although the above code performed better in my benchmarks the following could might - // perform better under different circumstances. in lieu of deleting it it's just been - // made uncallable - // is the modulo odd? - if ($n->value[0] & 1) { - return $this->_normalize($this->_slidingWindow($e, $n, self::MONTGOMERY)); - } - // if it's not, it's even - // find the lowest set bit (eg. the max pow of 2 that divides $n) - for ($i = 0; $i < \count($n->value); ++$i) { - if ($n->value[$i]) { - $temp = \decbin($n->value[$i]); - $j = \strlen($temp) - \strrpos($temp, '1') - 1; - $j += 26 * $i; - break; - } - } - // at this point, 2^$j * $n/(2^$j) == $n - $mod1 = $n->copy(); - $mod1->_rshift($j); - $mod2 = new static(); - $mod2->value = array(1); - $mod2->_lshift($j); - $part1 = $mod1->value != array(1) ? $this->_slidingWindow($e, $mod1, self::MONTGOMERY) : new static(); - $part2 = $this->_slidingWindow($e, $mod2, self::POWEROF2); - $y1 = $mod2->modInverse($mod1); - $y2 = $mod1->modInverse($mod2); - $result = $part1->multiply($mod2); - $result = $result->multiply($y1); - $temp = $part2->multiply($mod1); - $temp = $temp->multiply($y2); - $result = $result->add($temp); - list(, $result) = $result->divide($n); - return $this->_normalize($result); - } - /** - * Performs modular exponentiation. - * - * Alias for modPow(). - * - * @param \phpseclib\Math\BigInteger $e - * @param \phpseclib\Math\BigInteger $n - * @return \phpseclib\Math\BigInteger - * @access public - */ - function powMod($e, $n) - { - return $this->modPow($e, $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. - * - * @param \phpseclib\Math\BigInteger $e - * @param \phpseclib\Math\BigInteger $n - * @param int $mode - * @return \phpseclib\Math\BigInteger - * @access private - */ - function _slidingWindow($e, $n, $mode) - { - static $window_ranges = array(7, 25, 81, 241, 673, 1793); - // from BigInteger.java's oddModPow function - //static $window_ranges = array(0, 7, 36, 140, 450, 1303, 3529); // from MPM 7.3.1 - $e_value = $e->value; - $e_length = \count($e_value) - 1; - $e_bits = \decbin($e_value[$e_length]); - for ($i = $e_length - 1; $i >= 0; --$i) { - $e_bits .= \str_pad(\decbin($e_value[$i]), self::$base, '0', \STR_PAD_LEFT); - } - $e_length = \strlen($e_bits); - // calculate the appropriate window size. - // $window_size == 3 if $window_ranges is between 25 and 81, for example. - for ($i = 0, $window_size = 1; $i < \count($window_ranges) && $e_length > $window_ranges[$i]; ++$window_size, ++$i) { - } - $n_value = $n->value; - // precompute $this^0 through $this^$window_size - $powers = array(); - $powers[1] = $this->_prepareReduce($this->value, $n_value, $mode); - $powers[2] = $this->_squareReduce($powers[1], $n_value, $mode); - // we do every other number since substr($e_bits, $i, $j+1) (see below) is supposed to end - // in a 1. ie. it's supposed to be odd. - $temp = 1 << $window_size - 1; - for ($i = 1; $i < $temp; ++$i) { - $i2 = $i << 1; - $powers[$i2 + 1] = $this->_multiplyReduce($powers[$i2 - 1], $powers[2], $n_value, $mode); - } - $result = array(1); - $result = $this->_prepareReduce($result, $n_value, $mode); - for ($i = 0; $i < $e_length;) { - if (!$e_bits[$i]) { - $result = $this->_squareReduce($result, $n_value, $mode); - ++$i; - } else { - for ($j = $window_size - 1; $j > 0; --$j) { - if (!empty($e_bits[$i + $j])) { - break; - } - } - // eg. the length of substr($e_bits, $i, $j + 1) - for ($k = 0; $k <= $j; ++$k) { - $result = $this->_squareReduce($result, $n_value, $mode); - } - $result = $this->_multiplyReduce($result, $powers[\bindec(\substr($e_bits, $i, $j + 1))], $n_value, $mode); - $i += $j + 1; - } - } - $temp = new static(); - $temp->value = $this->_reduce($result, $n_value, $mode); - return $temp; - } - /** - * Modular reduction - * - * For most $modes this will return the remainder. - * - * @see self::_slidingWindow() - * @access private - * @param array $x - * @param array $n - * @param int $mode - * @return array - */ - function _reduce($x, $n, $mode) - { - switch ($mode) { - case self::MONTGOMERY: - return $this->_montgomery($x, $n); - case self::BARRETT: - return $this->_barrett($x, $n); - case self::POWEROF2: - $lhs = new static(); - $lhs->value = $x; - $rhs = new static(); - $rhs->value = $n; - return $x->_mod2($n); - case self::CLASSIC: - $lhs = new static(); - $lhs->value = $x; - $rhs = new static(); - $rhs->value = $n; - list(, $temp) = $lhs->divide($rhs); - return $temp->value; - case self::NONE: - return $x; - default: - } - } - /** - * Modular reduction preperation - * - * @see self::_slidingWindow() - * @access private - * @param array $x - * @param array $n - * @param int $mode - * @return array - */ - function _prepareReduce($x, $n, $mode) - { - if ($mode == self::MONTGOMERY) { - return $this->_prepMontgomery($x, $n); - } - return $this->_reduce($x, $n, $mode); - } - /** - * Modular multiply - * - * @see self::_slidingWindow() - * @access private - * @param array $x - * @param array $y - * @param array $n - * @param int $mode - * @return array - */ - function _multiplyReduce($x, $y, $n, $mode) - { - if ($mode == self::MONTGOMERY) { - return $this->_montgomeryMultiply($x, $y, $n); - } - $temp = $this->_multiply($x, \false, $y, \false); - return $this->_reduce($temp[self::VALUE], $n, $mode); - } - /** - * Modular square - * - * @see self::_slidingWindow() - * @access private - * @param array $x - * @param array $n - * @param int $mode - * @return array - */ - function _squareReduce($x, $n, $mode) - { - if ($mode == self::MONTGOMERY) { - return $this->_montgomeryMultiply($x, $x, $n); - } - return $this->_reduce($this->_square($x), $n, $mode); - } - /** - * Modulos for Powers of Two - * - * Calculates $x%$n, where $n = 2**$e, for some $e. Since this is basically the same as doing $x & ($n-1), - * we'll just use this function as a wrapper for doing that. - * - * @see self::_slidingWindow() - * @access private - * @param \phpseclib\Math\BigInteger - * @return \phpseclib\Math\BigInteger - */ - function _mod2($n) - { - $temp = new static(); - $temp->value = array(1); - return $this->bitwise_and($n->subtract($temp)); - } - /** - * 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. - * - * @see self::_slidingWindow() - * @access private - * @param array $n - * @param array $m - * @return array - */ - function _barrett($n, $m) - { - static $cache = array(self::VARIABLE => array(), self::DATA => array()); - $m_length = \count($m); - // if ($this->_compare($n, $this->_square($m)) >= 0) { - if (\count($n) > 2 * $m_length) { - $lhs = new static(); - $rhs = new static(); - $lhs->value = $n; - $rhs->value = $m; - list(, $temp) = $lhs->divide($rhs); - return $temp->value; - } - // if (m.length >> 1) + 2 <= m.length then m is too small and n can't be reduced - if ($m_length < 5) { - return $this->_regularBarrett($n, $m); - } - // n = 2 * m.length - if (($key = \array_search($m, $cache[self::VARIABLE])) === \false) { - $key = \count($cache[self::VARIABLE]); - $cache[self::VARIABLE][] = $m; - $lhs = new static(); - $lhs_value =& $lhs->value; - $lhs_value = $this->_array_repeat(0, $m_length + ($m_length >> 1)); - $lhs_value[] = 1; - $rhs = new static(); - $rhs->value = $m; - list($u, $m1) = $lhs->divide($rhs); - $u = $u->value; - $m1 = $m1->value; - $cache[self::DATA][] = array( - 'u' => $u, - // m.length >> 1 (technically (m.length >> 1) + 1) - 'm1' => $m1, - ); - } else { - \extract($cache[self::DATA][$key]); - } - $cutoff = $m_length + ($m_length >> 1); - $lsd = \array_slice($n, 0, $cutoff); - // m.length + (m.length >> 1) - $msd = \array_slice($n, $cutoff); - // m.length >> 1 - $lsd = $this->_trim($lsd); - $temp = $this->_multiply($msd, \false, $m1, \false); - $n = $this->_add($lsd, \false, $temp[self::VALUE], \false); - // m.length + (m.length >> 1) + 1 - if ($m_length & 1) { - return $this->_regularBarrett($n[self::VALUE], $m); - } - // (m.length + (m.length >> 1) + 1) - (m.length - 1) == (m.length >> 1) + 2 - $temp = \array_slice($n[self::VALUE], $m_length - 1); - // if even: ((m.length >> 1) + 2) + (m.length >> 1) == m.length + 2 - // if odd: ((m.length >> 1) + 2) + (m.length >> 1) == (m.length - 1) + 2 == m.length + 1 - $temp = $this->_multiply($temp, \false, $u, \false); - // if even: (m.length + 2) - ((m.length >> 1) + 1) = m.length - (m.length >> 1) + 1 - // if odd: (m.length + 1) - ((m.length >> 1) + 1) = m.length - (m.length >> 1) - $temp = \array_slice($temp[self::VALUE], ($m_length >> 1) + 1); - // if even: (m.length - (m.length >> 1) + 1) + m.length = 2 * m.length - (m.length >> 1) + 1 - // if odd: (m.length - (m.length >> 1)) + m.length = 2 * m.length - (m.length >> 1) - $temp = $this->_multiply($temp, \false, $m, \false); - // at this point, if m had an odd number of digits, we'd be subtracting a 2 * m.length - (m.length >> 1) digit - // number from a m.length + (m.length >> 1) + 1 digit number. ie. there'd be an extra digit and the while loop - // following this comment would loop a lot (hence our calling _regularBarrett() in that situation). - $result = $this->_subtract($n[self::VALUE], \false, $temp[self::VALUE], \false); - while ($this->_compare($result[self::VALUE], $result[self::SIGN], $m, \false) >= 0) { - $result = $this->_subtract($result[self::VALUE], $result[self::SIGN], $m, \false); - } - return $result[self::VALUE]; - } - /** - * (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. - * - * @see self::_slidingWindow() - * @access private - * @param array $x - * @param array $n - * @return array - */ - function _regularBarrett($x, $n) - { - static $cache = array(self::VARIABLE => array(), self::DATA => array()); - $n_length = \count($n); - if (\count($x) > 2 * $n_length) { - $lhs = new static(); - $rhs = new static(); - $lhs->value = $x; - $rhs->value = $n; - list(, $temp) = $lhs->divide($rhs); - return $temp->value; - } - if (($key = \array_search($n, $cache[self::VARIABLE])) === \false) { - $key = \count($cache[self::VARIABLE]); - $cache[self::VARIABLE][] = $n; - $lhs = new static(); - $lhs_value =& $lhs->value; - $lhs_value = $this->_array_repeat(0, 2 * $n_length); - $lhs_value[] = 1; - $rhs = new static(); - $rhs->value = $n; - list($temp, ) = $lhs->divide($rhs); - // m.length - $cache[self::DATA][] = $temp->value; - } - // 2 * m.length - (m.length - 1) = m.length + 1 - $temp = \array_slice($x, $n_length - 1); - // (m.length + 1) + m.length = 2 * m.length + 1 - $temp = $this->_multiply($temp, \false, $cache[self::DATA][$key], \false); - // (2 * m.length + 1) - (m.length - 1) = m.length + 2 - $temp = \array_slice($temp[self::VALUE], $n_length + 1); - // m.length + 1 - $result = \array_slice($x, 0, $n_length + 1); - // m.length + 1 - $temp = $this->_multiplyLower($temp, \false, $n, \false, $n_length + 1); - // $temp == array_slice($temp->_multiply($temp, false, $n, false)->value, 0, $n_length + 1) - if ($this->_compare($result, \false, $temp[self::VALUE], $temp[self::SIGN]) < 0) { - $corrector_value = $this->_array_repeat(0, $n_length + 1); - $corrector_value[\count($corrector_value)] = 1; - $result = $this->_add($result, \false, $corrector_value, \false); - $result = $result[self::VALUE]; - } - // at this point, we're subtracting a number with m.length + 1 digits from another number with m.length + 1 digits - $result = $this->_subtract($result, \false, $temp[self::VALUE], $temp[self::SIGN]); - while ($this->_compare($result[self::VALUE], $result[self::SIGN], $n, \false) > 0) { - $result = $this->_subtract($result[self::VALUE], $result[self::SIGN], $n, \false); - } - return $result[self::VALUE]; - } - /** - * 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 - * @return array - * @access private - */ - function _multiplyLower($x_value, $x_negative, $y_value, $y_negative, $stop) - { - $x_length = \count($x_value); - $y_length = \count($y_value); - if (!$x_length || !$y_length) { - // a 0 is being multiplied - return array(self::VALUE => array(), self::SIGN => \false); - } - if ($x_length < $y_length) { - $temp = $x_value; - $x_value = $y_value; - $y_value = $temp; - $x_length = \count($x_value); - $y_length = \count($y_value); - } - $product_value = $this->_array_repeat(0, $x_length + $y_length); - // the following for loop could be removed if the for loop following it - // (the one with nested for loops) initially set $i to 0, but - // doing so would also make the result in one set of unnecessary adds, - // since on the outermost loops first pass, $product->value[$k] is going - // to always be 0 - $carry = 0; - for ($j = 0; $j < $x_length; ++$j) { - // ie. $i = 0, $k = $i - $temp = $x_value[$j] * $y_value[0] + $carry; - // $product_value[$k] == 0 - $carry = self::$base === 26 ? \intval($temp / 0x4000000) : $temp >> 31; - $product_value[$j] = (int) ($temp - self::$baseFull * $carry); - } - if ($j < $stop) { - $product_value[$j] = $carry; - } - // the above for loop is what the previous comment was talking about. the - // following for loop is the "one with nested for loops" - for ($i = 1; $i < $y_length; ++$i) { - $carry = 0; - for ($j = 0, $k = $i; $j < $x_length && $k < $stop; ++$j, ++$k) { - $temp = $product_value[$k] + $x_value[$j] * $y_value[$i] + $carry; - $carry = self::$base === 26 ? \intval($temp / 0x4000000) : $temp >> 31; - $product_value[$k] = (int) ($temp - self::$baseFull * $carry); - } - if ($k < $stop) { - $product_value[$k] = $carry; - } - } - return array(self::VALUE => $this->_trim($product_value), self::SIGN => $x_negative != $y_negative); - } - /** - * Montgomery Modular Reduction - * - * ($x->_prepMontgomery($n))->_montgomery($n) yields $x % $n. - * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=170 MPM 6.3} provides insights on how this can be - * improved upon (basically, by using the comba method). gcd($n, 2) must be equal to one for this function - * to work correctly. - * - * @see self::_prepMontgomery() - * @see self::_slidingWindow() - * @access private - * @param array $x - * @param array $n - * @return array - */ - function _montgomery($x, $n) - { - static $cache = array(self::VARIABLE => array(), self::DATA => array()); - if (($key = \array_search($n, $cache[self::VARIABLE])) === \false) { - $key = \count($cache[self::VARIABLE]); - $cache[self::VARIABLE][] = $x; - $cache[self::DATA][] = $this->_modInverse67108864($n); - } - $k = \count($n); - $result = array(self::VALUE => $x); - for ($i = 0; $i < $k; ++$i) { - $temp = $result[self::VALUE][$i] * $cache[self::DATA][$key]; - $temp = $temp - self::$baseFull * (self::$base === 26 ? \intval($temp / 0x4000000) : $temp >> 31); - $temp = $this->_regularMultiply(array($temp), $n); - $temp = \array_merge($this->_array_repeat(0, $i), $temp); - $result = $this->_add($result[self::VALUE], \false, $temp, \false); - } - $result[self::VALUE] = \array_slice($result[self::VALUE], $k); - if ($this->_compare($result, \false, $n, \false) >= 0) { - $result = $this->_subtract($result[self::VALUE], \false, $n, \false); - } - return $result[self::VALUE]; - } - /** - * 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() - * @access private - * @param array $x - * @param array $y - * @param array $m - * @return array - */ - function _montgomeryMultiply($x, $y, $m) - { - $temp = $this->_multiply($x, \false, $y, \false); - return $this->_montgomery($temp[self::VALUE], $m); - // the following code, although not callable, can be run independently of the above code - // although the above code performed better in my benchmarks the following could might - // perform better under different circumstances. in lieu of deleting it it's just been - // made uncallable - static $cache = array(self::VARIABLE => array(), self::DATA => array()); - if (($key = \array_search($m, $cache[self::VARIABLE])) === \false) { - $key = \count($cache[self::VARIABLE]); - $cache[self::VARIABLE][] = $m; - $cache[self::DATA][] = $this->_modInverse67108864($m); - } - $n = \max(\count($x), \count($y), \count($m)); - $x = \array_pad($x, $n, 0); - $y = \array_pad($y, $n, 0); - $m = \array_pad($m, $n, 0); - $a = array(self::VALUE => $this->_array_repeat(0, $n + 1)); - for ($i = 0; $i < $n; ++$i) { - $temp = $a[self::VALUE][0] + $x[$i] * $y[0]; - $temp = $temp - self::$baseFull * (self::$base === 26 ? \intval($temp / 0x4000000) : $temp >> 31); - $temp = $temp * $cache[self::DATA][$key]; - $temp = $temp - self::$baseFull * (self::$base === 26 ? \intval($temp / 0x4000000) : $temp >> 31); - $temp = $this->_add($this->_regularMultiply(array($x[$i]), $y), \false, $this->_regularMultiply(array($temp), $m), \false); - $a = $this->_add($a[self::VALUE], \false, $temp[self::VALUE], \false); - $a[self::VALUE] = \array_slice($a[self::VALUE], 1); - } - if ($this->_compare($a[self::VALUE], \false, $m, \false) >= 0) { - $a = $this->_subtract($a[self::VALUE], \false, $m, \false); - } - return $a[self::VALUE]; - } - /** - * Prepare a number for use in Montgomery Modular Reductions - * - * @see self::_montgomery() - * @see self::_slidingWindow() - * @access private - * @param array $x - * @param array $n - * @return array - */ - function _prepMontgomery($x, $n) - { - $lhs = new static(); - $lhs->value = \array_merge($this->_array_repeat(0, \count($n)), $x); - $rhs = new static(); - $rhs->value = $n; - list(, $temp) = $lhs->divide($rhs); - return $temp->value; - } - /** - * 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! - * - * @see self::_montgomery() - * @access private - * @param array $x - * @return int - */ - function _modInverse67108864($x) - { - $x = -$x[0]; - $result = $x & 0x3; - // x**-1 mod 2**2 - $result = $result * (2 - $x * $result) & 0xf; - // x**-1 mod 2**4 - $result = $result * (2 - ($x & 0xff) * $result) & 0xff; - // x**-1 mod 2**8 - $result = $result * (2 - ($x & 0xffff) * $result & 0xffff) & 0xffff; - // x**-1 mod 2**16 - $result = \fmod($result * (2 - \fmod($x * $result, self::$baseFull)), self::$baseFull); - // x**-1 mod 2**26 - return $result & self::$maxDigit; - } - /** - * Calculates modular inverses. - * - * Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses. - * - * Here's an example: - * - * modInverse($b); - * echo $c->toString(); // outputs 4 - * - * echo "\r\n"; - * - * $d = $a->multiply($c); - * list(, $d) = $d->divide($b); - * echo $d; // outputs 1 (as per the definition of modular inverse) - * ?> - * - * - * @param \phpseclib\Math\BigInteger $n - * @return \phpseclib\Math\BigInteger|false - * @access public - * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=21 HAC 14.64} for more information. - */ - function modInverse($n) - { - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - $temp = new static(); - $temp->value = \gmp_invert($this->value, $n->value); - return $temp->value === \false ? \false : $this->_normalize($temp); - } - static $zero, $one; - if (!isset($zero)) { - $zero = new static(); - $one = new static(1); - } - // $x mod -$n == $x mod $n. - $n = $n->abs(); - if ($this->compare($zero) < 0) { - $temp = $this->abs(); - $temp = $temp->modInverse($n); - return $this->_normalize($n->subtract($temp)); - } - \extract($this->extendedGCD($n)); - if (!$gcd->equals($one)) { - return \false; - } - $x = $x->compare($zero) < 0 ? $x->add($n) : $x; - return $this->compare($zero) < 0 ? $this->_normalize($n->subtract($x)) : $this->_normalize($x); - } - /** - * 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. - * - * Here's an example: - * - * extendedGCD($b)); - * - * echo $gcd->toString() . "\r\n"; // outputs 21 - * echo $a->toString() * $x->toString() + $b->toString() * $y->toString(); // outputs 21 - * ?> - * - * - * @param \phpseclib\Math\BigInteger $n - * @return \phpseclib\Math\BigInteger - * @access public - * @internal Calculates the GCD using the binary xGCD algorithim described in - * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=19 HAC 14.61}. As the text above 14.61 notes, - * the more traditional algorithim requires "relatively costly multiple-precision divisions". - */ - function extendedGCD($n) - { - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - \extract(\gmp_gcdext($this->value, $n->value)); - return array('gcd' => $this->_normalize(new static($g)), 'x' => $this->_normalize(new static($s)), 'y' => $this->_normalize(new static($t))); - case self::MODE_BCMATH: - // it might be faster to use the binary xGCD algorithim here, as well, but (1) that algorithim works - // best when the base is a power of 2 and (2) i don't think it'd make much difference, anyway. as is, - // the basic extended euclidean algorithim is what we're using. - $u = $this->value; - $v = $n->value; - $a = '1'; - $b = '0'; - $c = '0'; - $d = '1'; - while (\bccomp($v, '0', 0) != 0) { - $q = \bcdiv($u, $v, 0); - $temp = $u; - $u = $v; - $v = \bcsub($temp, \bcmul($v, $q, 0), 0); - $temp = $a; - $a = $c; - $c = \bcsub($temp, \bcmul($a, $q, 0), 0); - $temp = $b; - $b = $d; - $d = \bcsub($temp, \bcmul($b, $q, 0), 0); - } - return array('gcd' => $this->_normalize(new static($u)), 'x' => $this->_normalize(new static($a)), 'y' => $this->_normalize(new static($b))); - } - $y = $n->copy(); - $x = $this->copy(); - $g = new static(); - $g->value = array(1); - while (!($x->value[0] & 1 || $y->value[0] & 1)) { - $x->_rshift(1); - $y->_rshift(1); - $g->_lshift(1); - } - $u = $x->copy(); - $v = $y->copy(); - $a = new static(); - $b = new static(); - $c = new static(); - $d = new static(); - $a->value = $d->value = $g->value = array(1); - $b->value = $c->value = array(); - while (!empty($u->value)) { - while (!($u->value[0] & 1)) { - $u->_rshift(1); - if (!empty($a->value) && $a->value[0] & 1 || !empty($b->value) && $b->value[0] & 1) { - $a = $a->add($y); - $b = $b->subtract($x); - } - $a->_rshift(1); - $b->_rshift(1); - } - while (!($v->value[0] & 1)) { - $v->_rshift(1); - if (!empty($d->value) && $d->value[0] & 1 || !empty($c->value) && $c->value[0] & 1) { - $c = $c->add($y); - $d = $d->subtract($x); - } - $c->_rshift(1); - $d->_rshift(1); - } - if ($u->compare($v) >= 0) { - $u = $u->subtract($v); - $a = $a->subtract($c); - $b = $b->subtract($d); - } else { - $v = $v->subtract($u); - $c = $c->subtract($a); - $d = $d->subtract($b); - } - } - return array('gcd' => $this->_normalize($g->multiply($v)), 'x' => $this->_normalize($c), 'y' => $this->_normalize($d)); - } - /** - * Calculates the greatest common divisor - * - * Say you have 693 and 609. The GCD is 21. - * - * Here's an example: - * - * extendedGCD($b); - * - * echo $gcd->toString() . "\r\n"; // outputs 21 - * ?> - * - * - * @param \phpseclib\Math\BigInteger $n - * @return \phpseclib\Math\BigInteger - * @access public - */ - function gcd($n) - { - \extract($this->extendedGCD($n)); - return $gcd; - } - /** - * Absolute value. - * - * @return \phpseclib\Math\BigInteger - * @access public - */ - function abs() - { - $temp = new static(); - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - $temp->value = \gmp_abs($this->value); - break; - case self::MODE_BCMATH: - $temp->value = \bccomp($this->value, '0', 0) < 0 ? \substr($this->value, 1) : $this->value; - break; - default: - $temp->value = $this->value; - } - return $temp; - } - /** - * 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). - * - * @param \phpseclib\Math\BigInteger $y - * @return int < 0 if $this is less than $y; > 0 if $this is greater than $y, and 0 if they are equal. - * @access public - * @see self::equals() - * @internal Could return $this->subtract($x), but that's not as fast as what we do do. - */ - function compare($y) - { - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - $r = \gmp_cmp($this->value, $y->value); - if ($r < -1) { - $r = -1; - } - if ($r > 1) { - $r = 1; - } - return $r; - case self::MODE_BCMATH: - return \bccomp($this->value, $y->value, 0); - } - return $this->_compare($this->value, $this->is_negative, $y->value, $y->is_negative); - } - /** - * Compares two numbers. - * - * @param array $x_value - * @param bool $x_negative - * @param array $y_value - * @param bool $y_negative - * @return int - * @see self::compare() - * @access private - */ - function _compare($x_value, $x_negative, $y_value, $y_negative) - { - if ($x_negative != $y_negative) { - return !$x_negative && $y_negative ? 1 : -1; - } - $result = $x_negative ? -1 : 1; - if (\count($x_value) != \count($y_value)) { - return \count($x_value) > \count($y_value) ? $result : -$result; - } - $size = \max(\count($x_value), \count($y_value)); - $x_value = \array_pad($x_value, $size, 0); - $y_value = \array_pad($y_value, $size, 0); - for ($i = \count($x_value) - 1; $i >= 0; --$i) { - if ($x_value[$i] != $y_value[$i]) { - return $x_value[$i] > $y_value[$i] ? $result : -$result; - } - } - return 0; - } - /** - * 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 \phpseclib\Math\BigInteger $x - * @return bool - * @access public - * @see self::compare() - */ - function equals($x) - { - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - return \gmp_cmp($this->value, $x->value) == 0; - default: - return $this->value === $x->value && $this->is_negative == $x->is_negative; - } - } - /** - * Set Precision - * - * Some bitwise operations give different results depending on the precision being used. Examples include left - * shift, not, and rotates. - * - * @param int $bits - * @access public - */ - function setPrecision($bits) - { - $this->precision = $bits; - if (MATH_BIGINTEGER_MODE != self::MODE_BCMATH) { - $this->bitmask = new static(\chr((1 << ($bits & 0x7)) - 1) . \str_repeat(\chr(0xff), $bits >> 3), 256); - } else { - $this->bitmask = new static(\bcpow('2', $bits, 0)); - } - $temp = $this->_normalize($this); - $this->value = $temp->value; - } - /** - * Logical And - * - * @param \phpseclib\Math\BigInteger $x - * @access public - * @internal Implemented per a request by Lluis Pamies i Juarez - * @return \phpseclib\Math\BigInteger - */ - function bitwise_and($x) - { - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - $temp = new static(); - $temp->value = \gmp_and($this->value, $x->value); - return $this->_normalize($temp); - case self::MODE_BCMATH: - $left = $this->toBytes(); - $right = $x->toBytes(); - $length = \max(\strlen($left), \strlen($right)); - $left = \str_pad($left, $length, \chr(0), \STR_PAD_LEFT); - $right = \str_pad($right, $length, \chr(0), \STR_PAD_LEFT); - return $this->_normalize(new static($left & $right, 256)); - } - $result = $this->copy(); - $length = \min(\count($x->value), \count($this->value)); - $result->value = \array_slice($result->value, 0, $length); - for ($i = 0; $i < $length; ++$i) { - $result->value[$i] &= $x->value[$i]; - } - return $this->_normalize($result); - } - /** - * Logical Or - * - * @param \phpseclib\Math\BigInteger $x - * @access public - * @internal Implemented per a request by Lluis Pamies i Juarez - * @return \phpseclib\Math\BigInteger - */ - function bitwise_or($x) - { - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - $temp = new static(); - $temp->value = \gmp_or($this->value, $x->value); - return $this->_normalize($temp); - case self::MODE_BCMATH: - $left = $this->toBytes(); - $right = $x->toBytes(); - $length = \max(\strlen($left), \strlen($right)); - $left = \str_pad($left, $length, \chr(0), \STR_PAD_LEFT); - $right = \str_pad($right, $length, \chr(0), \STR_PAD_LEFT); - return $this->_normalize(new static($left | $right, 256)); - } - $length = \max(\count($this->value), \count($x->value)); - $result = $this->copy(); - $result->value = \array_pad($result->value, $length, 0); - $x->value = \array_pad($x->value, $length, 0); - for ($i = 0; $i < $length; ++$i) { - $result->value[$i] |= $x->value[$i]; - } - return $this->_normalize($result); - } - /** - * Logical Exclusive-Or - * - * @param \phpseclib\Math\BigInteger $x - * @access public - * @internal Implemented per a request by Lluis Pamies i Juarez - * @return \phpseclib\Math\BigInteger - */ - function bitwise_xor($x) - { - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - $temp = new static(); - $temp->value = \gmp_xor(\gmp_abs($this->value), \gmp_abs($x->value)); - return $this->_normalize($temp); - case self::MODE_BCMATH: - $left = $this->toBytes(); - $right = $x->toBytes(); - $length = \max(\strlen($left), \strlen($right)); - $left = \str_pad($left, $length, \chr(0), \STR_PAD_LEFT); - $right = \str_pad($right, $length, \chr(0), \STR_PAD_LEFT); - return $this->_normalize(new static($left ^ $right, 256)); - } - $length = \max(\count($this->value), \count($x->value)); - $result = $this->copy(); - $result->is_negative = \false; - $result->value = \array_pad($result->value, $length, 0); - $x->value = \array_pad($x->value, $length, 0); - for ($i = 0; $i < $length; ++$i) { - $result->value[$i] ^= $x->value[$i]; - } - return $this->_normalize($result); - } - /** - * Logical Not - * - * @access public - * @internal Implemented per a request by Lluis Pamies i Juarez - * @return \phpseclib\Math\BigInteger - */ - function bitwise_not() - { - // calculuate "not" without regard to $this->precision - // (will always result in a smaller number. ie. ~1 isn't 1111 1110 - it's 0) - $temp = $this->toBytes(); - if ($temp == '') { - return $this->_normalize(new static()); - } - $pre_msb = \decbin(\ord($temp[0])); - $temp = ~$temp; - $msb = \decbin(\ord($temp[0])); - if (\strlen($msb) == 8) { - $msb = \substr($msb, \strpos($msb, '0')); - } - $temp[0] = \chr(\bindec($msb)); - // see if we need to add extra leading 1's - $current_bits = \strlen($pre_msb) + 8 * \strlen($temp) - 8; - $new_bits = $this->precision - $current_bits; - if ($new_bits <= 0) { - return $this->_normalize(new static($temp, 256)); - } - // generate as many leading 1's as we need to. - $leading_ones = \chr((1 << ($new_bits & 0x7)) - 1) . \str_repeat(\chr(0xff), $new_bits >> 3); - $this->_base256_lshift($leading_ones, $current_bits); - $temp = \str_pad($temp, \strlen($leading_ones), \chr(0), \STR_PAD_LEFT); - return $this->_normalize(new static($leading_ones | $temp, 256)); - } - /** - * Logical Right Shift - * - * Shifts BigInteger's by $shift bits, effectively dividing by 2**$shift. - * - * @param int $shift - * @return \phpseclib\Math\BigInteger - * @access public - * @internal The only version that yields any speed increases is the internal version. - */ - function bitwise_rightShift($shift) - { - $temp = new static(); - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - static $two; - if (!isset($two)) { - $two = \gmp_init('2'); - } - $temp->value = \gmp_div_q($this->value, \gmp_pow($two, $shift)); - break; - case self::MODE_BCMATH: - $temp->value = \bcdiv($this->value, \bcpow('2', $shift, 0), 0); - break; - default: - // could just replace _lshift with this, but then all _lshift() calls would need to be rewritten - // and I don't want to do that... - $temp->value = $this->value; - $temp->_rshift($shift); - } - return $this->_normalize($temp); - } - /** - * Logical Left Shift - * - * Shifts BigInteger's by $shift bits, effectively multiplying by 2**$shift. - * - * @param int $shift - * @return \phpseclib\Math\BigInteger - * @access public - * @internal The only version that yields any speed increases is the internal version. - */ - function bitwise_leftShift($shift) - { - $temp = new static(); - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - static $two; - if (!isset($two)) { - $two = \gmp_init('2'); - } - $temp->value = \gmp_mul($this->value, \gmp_pow($two, $shift)); - break; - case self::MODE_BCMATH: - $temp->value = \bcmul($this->value, \bcpow('2', $shift, 0), 0); - break; - default: - // could just replace _rshift with this, but then all _lshift() calls would need to be rewritten - // and I don't want to do that... - $temp->value = $this->value; - $temp->_lshift($shift); - } - return $this->_normalize($temp); - } - /** - * Logical Left Rotate - * - * Instead of the top x bits being dropped they're appended to the shifted bit string. - * - * @param int $shift - * @return \phpseclib\Math\BigInteger - * @access public - */ - function bitwise_leftRotate($shift) - { - $bits = $this->toBytes(); - if ($this->precision > 0) { - $precision = $this->precision; - if (MATH_BIGINTEGER_MODE == self::MODE_BCMATH) { - $mask = $this->bitmask->subtract(new static(1)); - $mask = $mask->toBytes(); - } else { - $mask = $this->bitmask->toBytes(); - } - } else { - $temp = \ord($bits[0]); - for ($i = 0; $temp >> $i; ++$i) { - } - $precision = 8 * \strlen($bits) - 8 + $i; - $mask = \chr((1 << ($precision & 0x7)) - 1) . \str_repeat(\chr(0xff), $precision >> 3); - } - if ($shift < 0) { - $shift += $precision; - } - $shift %= $precision; - if (!$shift) { - return $this->copy(); - } - $left = $this->bitwise_leftShift($shift); - $left = $left->bitwise_and(new static($mask, 256)); - $right = $this->bitwise_rightShift($precision - $shift); - $result = MATH_BIGINTEGER_MODE != self::MODE_BCMATH ? $left->bitwise_or($right) : $left->add($right); - return $this->_normalize($result); - } - /** - * Logical Right Rotate - * - * Instead of the bottom x bits being dropped they're prepended to the shifted bit string. - * - * @param int $shift - * @return \phpseclib\Math\BigInteger - * @access public - */ - function bitwise_rightRotate($shift) - { - return $this->bitwise_leftRotate(-$shift); - } - /** - * Generates a random BigInteger - * - * Byte length is equal to $length. Uses \phpseclib\Crypt\Random if it's loaded and mt_rand if it's not. - * - * @param int $length - * @return \phpseclib\Math\BigInteger - * @access private - */ - function _random_number_helper($size) - { - if (\class_exists('WPMailSMTP\\Vendor\\phpseclib\\Crypt\\Random')) { - $random = \WPMailSMTP\Vendor\phpseclib\Crypt\Random::string($size); - } else { - $random = ''; - if ($size & 1) { - $random .= \chr(\mt_rand(0, 255)); - } - $blocks = $size >> 1; - for ($i = 0; $i < $blocks; ++$i) { - // mt_rand(-2147483648, 0x7FFFFFFF) always produces -2147483648 on some systems - $random .= \pack('n', \mt_rand(0, 0xffff)); - } - } - return new static($random, 256); - } - /** - * Generate a random number - * - * Returns a random number between $min and $max where $min and $max - * can be defined using one of the two methods: - * - * $min->random($max) - * $max->random($min) - * - * @param \phpseclib\Math\BigInteger $arg1 - * @param \phpseclib\Math\BigInteger $arg2 - * @return \phpseclib\Math\BigInteger - * @access public - * @internal The API for creating random numbers used to be $a->random($min, $max), where $a was a BigInteger object. - * That method is still supported for BC purposes. - */ - function random($arg1, $arg2 = \false) - { - if ($arg1 === \false) { - return \false; - } - if ($arg2 === \false) { - $max = $arg1; - $min = $this; - } else { - $min = $arg1; - $max = $arg2; - } - $compare = $max->compare($min); - if (!$compare) { - return $this->_normalize($min); - } elseif ($compare < 0) { - // if $min is bigger then $max, swap $min and $max - $temp = $max; - $max = $min; - $min = $temp; - } - static $one; - if (!isset($one)) { - $one = new static(1); - } - $max = $max->subtract($min->subtract($one)); - $size = \strlen(\ltrim($max->toBytes(), \chr(0))); - /* - doing $random % $max doesn't work because some numbers will be more likely to occur than others. - eg. if $max is 140 and $random's max is 255 then that'd mean both $random = 5 and $random = 145 - would produce 5 whereas the only value of random that could produce 139 would be 139. ie. - not all numbers would be equally likely. some would be more likely than others. - - creating a whole new random number until you find one that is within the range doesn't work - because, for sufficiently small ranges, the likelihood that you'd get a number within that range - would be pretty small. eg. with $random's max being 255 and if your $max being 1 the probability - would be pretty high that $random would be greater than $max. - - phpseclib works around this using the technique described here: - - http://crypto.stackexchange.com/questions/5708/creating-a-small-number-from-a-cryptographically-secure-random-string - */ - $random_max = new static(\chr(1) . \str_repeat("\0", $size), 256); - $random = $this->_random_number_helper($size); - list($max_multiple) = $random_max->divide($max); - $max_multiple = $max_multiple->multiply($max); - while ($random->compare($max_multiple) >= 0) { - $random = $random->subtract($max_multiple); - $random_max = $random_max->subtract($max_multiple); - $random = $random->bitwise_leftShift(8); - $random = $random->add($this->_random_number_helper(1)); - $random_max = $random_max->bitwise_leftShift(8); - list($max_multiple) = $random_max->divide($max); - $max_multiple = $max_multiple->multiply($max); - } - list(, $random) = $random->divide($max); - return $this->_normalize($random->add($min)); - } - /** - * Generate a random prime number. - * - * If there's not a prime within the given range, false will be returned. - * If more than $timeout seconds have elapsed, give up and return false. - * - * @param \phpseclib\Math\BigInteger $arg1 - * @param \phpseclib\Math\BigInteger $arg2 - * @param int $timeout - * @return Math_BigInteger|false - * @access public - * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=15 HAC 4.44}. - */ - function randomPrime($arg1, $arg2 = \false, $timeout = \false) - { - if ($arg1 === \false) { - return \false; - } - if ($arg2 === \false) { - $max = $arg1; - $min = $this; - } else { - $min = $arg1; - $max = $arg2; - } - $compare = $max->compare($min); - if (!$compare) { - return $min->isPrime() ? $min : \false; - } elseif ($compare < 0) { - // if $min is bigger then $max, swap $min and $max - $temp = $max; - $max = $min; - $min = $temp; - } - static $one, $two; - if (!isset($one)) { - $one = new static(1); - $two = new static(2); - } - $start = \time(); - $x = $this->random($min, $max); - // gmp_nextprime() requires PHP 5 >= 5.2.0 per . - if (MATH_BIGINTEGER_MODE == self::MODE_GMP && \extension_loaded('gmp')) { - $p = new static(); - $p->value = \gmp_nextprime($x->value); - if ($p->compare($max) <= 0) { - return $p; - } - if (!$min->equals($x)) { - $x = $x->subtract($one); - } - return $x->randomPrime($min, $x); - } - if ($x->equals($two)) { - return $x; - } - $x->_make_odd(); - if ($x->compare($max) > 0) { - // if $x > $max then $max is even and if $min == $max then no prime number exists between the specified range - if ($min->equals($max)) { - return \false; - } - $x = $min->copy(); - $x->_make_odd(); - } - $initial_x = $x->copy(); - while (\true) { - if ($timeout !== \false && \time() - $start > $timeout) { - return \false; - } - if ($x->isPrime()) { - return $x; - } - $x = $x->add($two); - if ($x->compare($max) > 0) { - $x = $min->copy(); - if ($x->equals($two)) { - return $x; - } - $x->_make_odd(); - } - if ($x->equals($initial_x)) { - return \false; - } - } - } - /** - * 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() - * @access private - */ - function _make_odd() - { - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - \gmp_setbit($this->value, 0); - break; - case self::MODE_BCMATH: - if ($this->value[\strlen($this->value) - 1] % 2 == 0) { - $this->value = \bcadd($this->value, '1'); - } - break; - default: - $this->value[0] |= 1; - } - } - /** - * 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 \phpseclib\Math\BigInteger $t - * @return bool - * @access public - * @internal 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}. - */ - function isPrime($t = \false) - { - $length = \strlen($this->toBytes()); - if (!$t) { - // see HAC 4.49 "Note (controlling the error probability)" - // @codingStandardsIgnoreStart - if ($length >= 163) { - $t = 2; - } else { - if ($length >= 106) { - $t = 3; - } else { - if ($length >= 81) { - $t = 4; - } else { - if ($length >= 68) { - $t = 5; - } else { - if ($length >= 56) { - $t = 6; - } else { - if ($length >= 50) { - $t = 7; - } else { - if ($length >= 43) { - $t = 8; - } else { - if ($length >= 37) { - $t = 9; - } else { - if ($length >= 31) { - $t = 12; - } else { - if ($length >= 25) { - $t = 15; - } else { - if ($length >= 18) { - $t = 18; - } else { - $t = 27; - } - } - } - } - } - } - } - } - } - } - } - // @codingStandardsIgnoreEnd - } - // ie. gmp_testbit($this, 0) - // ie. isEven() or !isOdd() - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - return \gmp_prob_prime($this->value, $t) != 0; - case self::MODE_BCMATH: - if ($this->value === '2') { - return \true; - } - if ($this->value[\strlen($this->value) - 1] % 2 == 0) { - return \false; - } - break; - default: - if ($this->value == array(2)) { - return \true; - } - if (~$this->value[0] & 1) { - return \false; - } - } - static $primes, $zero, $one, $two; - if (!isset($primes)) { - $primes = array(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); - if (MATH_BIGINTEGER_MODE != self::MODE_INTERNAL) { - for ($i = 0; $i < \count($primes); ++$i) { - $primes[$i] = new static($primes[$i]); - } - } - $zero = new static(); - $one = new static(1); - $two = new static(2); - } - if ($this->equals($one)) { - return \false; - } - // see HAC 4.4.1 "Random search for probable primes" - if (MATH_BIGINTEGER_MODE != self::MODE_INTERNAL) { - foreach ($primes as $prime) { - list(, $r) = $this->divide($prime); - if ($r->equals($zero)) { - return $this->equals($prime); - } - } - } else { - $value = $this->value; - foreach ($primes as $prime) { - list(, $r) = $this->_divide_digit($value, $prime); - if (!$r) { - return \count($value) == 1 && $value[0] == $prime; - } - } - } - $n = $this->copy(); - $n_1 = $n->subtract($one); - $n_2 = $n->subtract($two); - $r = $n_1->copy(); - $r_value = $r->value; - // ie. $s = gmp_scan1($n, 0) and $r = gmp_div_q($n, gmp_pow(gmp_init('2'), $s)); - if (MATH_BIGINTEGER_MODE == self::MODE_BCMATH) { - $s = 0; - // if $n was 1, $r would be 0 and this would be an infinite loop, hence our $this->equals($one) check earlier - while ($r->value[\strlen($r->value) - 1] % 2 == 0) { - $r->value = \bcdiv($r->value, '2', 0); - ++$s; - } - } else { - for ($i = 0, $r_length = \count($r_value); $i < $r_length; ++$i) { - $temp = ~$r_value[$i] & 0xffffff; - for ($j = 1; $temp >> $j & 1; ++$j) { - } - if ($j != 25) { - break; - } - } - $s = 26 * $i + $j; - $r->_rshift($s); - } - for ($i = 0; $i < $t; ++$i) { - $a = $this->random($two, $n_2); - $y = $a->modPow($r, $n); - if (!$y->equals($one) && !$y->equals($n_1)) { - for ($j = 1; $j < $s && !$y->equals($n_1); ++$j) { - $y = $y->modPow($two, $n); - if ($y->equals($one)) { - return \false; - } - } - if (!$y->equals($n_1)) { - return \false; - } - } - } - return \true; - } - /** - * Logical Left Shift - * - * Shifts BigInteger's by $shift bits. - * - * @param int $shift - * @access private - */ - function _lshift($shift) - { - if ($shift == 0) { - return; - } - $num_digits = (int) ($shift / self::$base); - $shift %= self::$base; - $shift = 1 << $shift; - $carry = 0; - for ($i = 0; $i < \count($this->value); ++$i) { - $temp = $this->value[$i] * $shift + $carry; - $carry = self::$base === 26 ? \intval($temp / 0x4000000) : $temp >> 31; - $this->value[$i] = (int) ($temp - $carry * self::$baseFull); - } - if ($carry) { - $this->value[\count($this->value)] = $carry; - } - while ($num_digits--) { - \array_unshift($this->value, 0); - } - } - /** - * Logical Right Shift - * - * Shifts BigInteger's by $shift bits. - * - * @param int $shift - * @access private - */ - function _rshift($shift) - { - if ($shift == 0) { - return; - } - $num_digits = (int) ($shift / self::$base); - $shift %= self::$base; - $carry_shift = self::$base - $shift; - $carry_mask = (1 << $shift) - 1; - if ($num_digits) { - $this->value = \array_slice($this->value, $num_digits); - } - $carry = 0; - for ($i = \count($this->value) - 1; $i >= 0; --$i) { - $temp = $this->value[$i] >> $shift | $carry; - $carry = ($this->value[$i] & $carry_mask) << $carry_shift; - $this->value[$i] = $temp; - } - $this->value = $this->_trim($this->value); - } - /** - * Normalize - * - * Removes leading zeros and truncates (if necessary) to maintain the appropriate precision - * - * @param \phpseclib\Math\BigInteger - * @return \phpseclib\Math\BigInteger - * @see self::_trim() - * @access private - */ - function _normalize($result) - { - $result->precision = $this->precision; - $result->bitmask = $this->bitmask; - switch (MATH_BIGINTEGER_MODE) { - case self::MODE_GMP: - if ($this->bitmask !== \false) { - $flip = \gmp_cmp($result->value, \gmp_init(0)) < 0; - if ($flip) { - $result->value = \gmp_neg($result->value); - } - $result->value = \gmp_and($result->value, $result->bitmask->value); - if ($flip) { - $result->value = \gmp_neg($result->value); - } - } - return $result; - case self::MODE_BCMATH: - if (!empty($result->bitmask->value)) { - $result->value = \bcmod($result->value, $result->bitmask->value); - } - return $result; - } - $value =& $result->value; - if (!\count($value)) { - $result->is_negative = \false; - return $result; - } - $value = $this->_trim($value); - if (!empty($result->bitmask->value)) { - $length = \min(\count($value), \count($this->bitmask->value)); - $value = \array_slice($value, 0, $length); - for ($i = 0; $i < $length; ++$i) { - $value[$i] = $value[$i] & $this->bitmask->value[$i]; - } - } - return $result; - } - /** - * Trim - * - * Removes leading zeros - * - * @param array $value - * @return \phpseclib\Math\BigInteger - * @access private - */ - function _trim($value) - { - for ($i = \count($value) - 1; $i >= 0; --$i) { - if ($value[$i]) { - break; - } - unset($value[$i]); - } - return $value; - } - /** - * Array Repeat - * - * @param $input Array - * @param $multiplier mixed - * @return array - * @access private - */ - function _array_repeat($input, $multiplier) - { - return $multiplier ? \array_fill(0, $multiplier, $input) : array(); - } - /** - * Logical Left Shift - * - * Shifts binary strings $shift bits, essentially multiplying by 2**$shift. - * - * @param $x String - * @param $shift Integer - * @return string - * @access private - */ - function _base256_lshift(&$x, $shift) - { - if ($shift == 0) { - return; - } - $num_bytes = $shift >> 3; - // eg. floor($shift/8) - $shift &= 7; - // eg. $shift % 8 - $carry = 0; - for ($i = \strlen($x) - 1; $i >= 0; --$i) { - $temp = \ord($x[$i]) << $shift | $carry; - $x[$i] = \chr($temp); - $carry = $temp >> 8; - } - $carry = $carry != 0 ? \chr($carry) : ''; - $x = $carry . $x . \str_repeat(\chr(0), $num_bytes); - } - /** - * Logical Right Shift - * - * Shifts binary strings $shift bits, essentially dividing by 2**$shift and returning the remainder. - * - * @param $x String - * @param $shift Integer - * @return string - * @access private - */ - function _base256_rshift(&$x, $shift) - { - if ($shift == 0) { - $x = \ltrim($x, \chr(0)); - return ''; - } - $num_bytes = $shift >> 3; - // eg. floor($shift/8) - $shift &= 7; - // eg. $shift % 8 - $remainder = ''; - if ($num_bytes) { - $start = $num_bytes > \strlen($x) ? -\strlen($x) : -$num_bytes; - $remainder = \substr($x, $start); - $x = \substr($x, 0, -$num_bytes); - } - $carry = 0; - $carry_shift = 8 - $shift; - for ($i = 0; $i < \strlen($x); ++$i) { - $temp = \ord($x[$i]) >> $shift | $carry; - $carry = \ord($x[$i]) << $carry_shift & 0xff; - $x[$i] = \chr($temp); - } - $x = \ltrim($x, \chr(0)); - $remainder = \chr($carry >> $carry_shift) . $remainder; - return \ltrim($remainder, \chr(0)); - } - // one quirk about how the following functions are implemented is that PHP defines N to be an unsigned long - // at 32-bits, while java's longs are 64-bits. - /** - * Converts 32-bit integers to bytes. - * - * @param int $x - * @return string - * @access private - */ - function _int2bytes($x) - { - return \ltrim(\pack('N', $x), \chr(0)); - } - /** - * Converts bytes to 32-bit integers - * - * @param string $x - * @return int - * @access private - */ - function _bytes2int($x) - { - $temp = \unpack('Nint', \str_pad($x, 4, \chr(0), \STR_PAD_LEFT)); - return $temp['int']; - } - /** - * DER-encode an integer - * - * The ability to DER-encode integers is needed to create RSA public keys for use with OpenSSL - * - * @see self::modPow() - * @access private - * @param int $length - * @return string - */ - function _encodeASN1Length($length) - { - if ($length <= 0x7f) { - return \chr($length); - } - $temp = \ltrim(\pack('N', $length), \chr(0)); - return \pack('Ca*', 0x80 | \strlen($temp), $temp); - } - /** - * 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. - * - * @access private - * @param int $x - * @param int $y - * @return int - */ - function _safe_divide($x, $y) - { - if (self::$base === 26) { - return (int) ($x / $y); - } - // self::$base === 31 - return ($x - $x % $y) / $y; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/bootstrap.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/bootstrap.php deleted file mode 100644 index 04a7199..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/phpseclib/phpseclib/phpseclib/bootstrap.php +++ /dev/null @@ -1,15 +0,0 @@ -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(); - /** - * 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($name); - /** - * 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($name); - /** - * 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($name); - /** - * 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($name, $value); - /** - * 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($name, $value); - /** - * 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($name); - /** - * Gets the body of the message. - * - * @return StreamInterface Returns the body as a stream. - */ - public function getBody(); - /** - * 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(\WPMailSMTP\Vendor\Psr\Http\Message\StreamInterface $body); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/http-message/src/RequestInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/http-message/src/RequestInterface.php deleted file mode 100644 index 1e400ad..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/http-message/src/RequestInterface.php +++ /dev/null @@ -1,124 +0,0 @@ -getQuery()` - * or from the `QUERY_STRING` server param. - * - * @return array - */ - public function getQueryParams(); - /** - * 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); - /** - * 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(); - /** - * 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); - /** - * 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); - /** - * 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(); - /** - * 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($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($name, $value); - /** - * 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($name); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/http-message/src/StreamInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/http-message/src/StreamInterface.php deleted file mode 100644 index e770984..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/http-message/src/StreamInterface.php +++ /dev/null @@ -1,144 +0,0 @@ - - * [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(); - /** - * 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(); - /** - * 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(); - /** - * 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(); - /** - * 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(); - /** - * 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(); - /** - * 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(); - /** - * 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($scheme); - /** - * 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($user, $password = null); - /** - * 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($host); - /** - * 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($port); - /** - * 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($path); - /** - * 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($query); - /** - * 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($fragment); - /** - * 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(); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/LICENSE b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/LICENSE deleted file mode 100644 index 474c952..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2012 PHP Framework Interoperability Group - -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. diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/AbstractLogger.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/AbstractLogger.php deleted file mode 100644 index 58e99b7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/AbstractLogger.php +++ /dev/null @@ -1,121 +0,0 @@ -log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::EMERGENCY, $message, $context); - } - /** - * 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()) - { - $this->log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::ALERT, $message, $context); - } - /** - * Critical conditions. - * - * Example: Application component unavailable, unexpected exception. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function critical($message, array $context = array()) - { - $this->log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::CRITICAL, $message, $context); - } - /** - * 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()) - { - $this->log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::ERROR, $message, $context); - } - /** - * 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()) - { - $this->log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::WARNING, $message, $context); - } - /** - * Normal but significant events. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function notice($message, array $context = array()) - { - $this->log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::NOTICE, $message, $context); - } - /** - * Interesting events. - * - * Example: User logs in, SQL logs. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function info($message, array $context = array()) - { - $this->log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::INFO, $message, $context); - } - /** - * Detailed debug information. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function debug($message, array $context = array()) - { - $this->log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::DEBUG, $message, $context); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/InvalidArgumentException.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/InvalidArgumentException.php deleted file mode 100644 index 0ccd7a5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/InvalidArgumentException.php +++ /dev/null @@ -1,7 +0,0 @@ -logger = $logger; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/LoggerInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/LoggerInterface.php deleted file mode 100644 index 0baeaa7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/LoggerInterface.php +++ /dev/null @@ -1,117 +0,0 @@ -log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::EMERGENCY, $message, $context); - } - /** - * 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()) - { - $this->log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::ALERT, $message, $context); - } - /** - * Critical conditions. - * - * Example: Application component unavailable, unexpected exception. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function critical($message, array $context = array()) - { - $this->log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::CRITICAL, $message, $context); - } - /** - * 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()) - { - $this->log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::ERROR, $message, $context); - } - /** - * 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()) - { - $this->log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::WARNING, $message, $context); - } - /** - * Normal but significant events. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function notice($message, array $context = array()) - { - $this->log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::NOTICE, $message, $context); - } - /** - * Interesting events. - * - * Example: User logs in, SQL logs. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function info($message, array $context = array()) - { - $this->log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::INFO, $message, $context); - } - /** - * Detailed debug information. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function debug($message, array $context = array()) - { - $this->log(\WPMailSMTP\Vendor\Psr\Log\LogLevel::DEBUG, $message, $context); - } - /** - * Logs with an arbitrary level. - * - * @param mixed $level - * @param string $message - * @param array $context - * - * @return void - * - * @throws \Psr\Log\InvalidArgumentException - */ - public abstract function log($level, $message, array $context = array()); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/NullLogger.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/NullLogger.php deleted file mode 100644 index b4d2c2d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/psr/log/Psr/Log/NullLogger.php +++ /dev/null @@ -1,30 +0,0 @@ -logger) { }` - * blocks. - */ -class NullLogger extends \WPMailSMTP\Vendor\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()) - { - // noop - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/AccountApi.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/AccountApi.php deleted file mode 100644 index f069bd9..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/AccountApi.php +++ /dev/null @@ -1,272 +0,0 @@ -client = $client ?: new \WPMailSMTP\Vendor\GuzzleHttp\Client(); - $this->config = $config ?: new \WPMailSMTP\Vendor\SendinBlue\Client\Configuration(); - $this->headerSelector = $selector ?: new \WPMailSMTP\Vendor\SendinBlue\Client\HeaderSelector(); - } - /** - * @return Configuration - */ - public function getConfig() - { - return $this->config; - } - /** - * Operation getAccount - * - * Get your account information, plan and credits details - * - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetAccount - */ - public function getAccount() - { - list($response) = $this->getAccountWithHttpInfo(); - return $response; - } - /** - * Operation getAccountWithHttpInfo - * - * Get your account information, plan and credits details - * - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetAccount, HTTP status code, HTTP response headers (array of strings) - */ - public function getAccountWithHttpInfo() - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccount'; - $request = $this->getAccountRequest(); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccount', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getAccountAsync - * - * Get your account information, plan and credits details - * - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getAccountAsync() - { - return $this->getAccountAsyncWithHttpInfo()->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getAccountAsyncWithHttpInfo - * - * Get your account information, plan and credits details - * - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getAccountAsyncWithHttpInfo() - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccount'; - $request = $this->getAccountRequest(); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getAccount' - * - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getAccountRequest() - { - $resourcePath = '/account'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Create http client option - * - * @throws \RuntimeException on file opening failure - * @return array of http client options - */ - protected function createHttpClientOption() - { - $options = []; - if ($this->config->getDebug()) { - $options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG] = \fopen($this->config->getDebugFile(), 'a'); - if (!$options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG]) { - throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile()); - } - } - return $options; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/AttributesApi.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/AttributesApi.php deleted file mode 100644 index 45a6087..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/AttributesApi.php +++ /dev/null @@ -1,847 +0,0 @@ -client = $client ?: new \WPMailSMTP\Vendor\GuzzleHttp\Client(); - $this->config = $config ?: new \WPMailSMTP\Vendor\SendinBlue\Client\Configuration(); - $this->headerSelector = $selector ?: new \WPMailSMTP\Vendor\SendinBlue\Client\HeaderSelector(); - } - /** - * @return Configuration - */ - public function getConfig() - { - return $this->config; - } - /** - * Operation createAttribute - * - * Create contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the attribute (required) - * @param \SendinBlue\Client\Model\CreateAttribute $createAttribute Values to create an attribute (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function createAttribute($attributeCategory, $attributeName, $createAttribute) - { - $this->createAttributeWithHttpInfo($attributeCategory, $attributeName, $createAttribute); - } - /** - * Operation createAttributeWithHttpInfo - * - * Create contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the attribute (required) - * @param \SendinBlue\Client\Model\CreateAttribute $createAttribute Values to create an attribute (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function createAttributeWithHttpInfo($attributeCategory, $attributeName, $createAttribute) - { - $returnType = ''; - $request = $this->createAttributeRequest($attributeCategory, $attributeName, $createAttribute); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation createAttributeAsync - * - * Create contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the attribute (required) - * @param \SendinBlue\Client\Model\CreateAttribute $createAttribute Values to create an attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createAttributeAsync($attributeCategory, $attributeName, $createAttribute) - { - return $this->createAttributeAsyncWithHttpInfo($attributeCategory, $attributeName, $createAttribute)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation createAttributeAsyncWithHttpInfo - * - * Create contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the attribute (required) - * @param \SendinBlue\Client\Model\CreateAttribute $createAttribute Values to create an attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createAttributeAsyncWithHttpInfo($attributeCategory, $attributeName, $createAttribute) - { - $returnType = ''; - $request = $this->createAttributeRequest($attributeCategory, $attributeName, $createAttribute); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'createAttribute' - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the attribute (required) - * @param \SendinBlue\Client\Model\CreateAttribute $createAttribute Values to create an attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function createAttributeRequest($attributeCategory, $attributeName, $createAttribute) - { - // verify the required parameter 'attributeCategory' is set - if ($attributeCategory === null || \is_array($attributeCategory) && \count($attributeCategory) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $attributeCategory when calling createAttribute'); - } - // verify the required parameter 'attributeName' is set - if ($attributeName === null || \is_array($attributeName) && \count($attributeName) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $attributeName when calling createAttribute'); - } - // verify the required parameter 'createAttribute' is set - if ($createAttribute === null || \is_array($createAttribute) && \count($createAttribute) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $createAttribute when calling createAttribute'); - } - $resourcePath = '/contacts/attributes/{attributeCategory}/{attributeName}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($attributeCategory !== null) { - $resourcePath = \str_replace('{' . 'attributeCategory' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($attributeCategory), $resourcePath); - } - // path params - if ($attributeName !== null) { - $resourcePath = \str_replace('{' . 'attributeName' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($attributeName), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($createAttribute)) { - $_tempBody = $createAttribute; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation deleteAttribute - * - * Delete an attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function deleteAttribute($attributeCategory, $attributeName) - { - $this->deleteAttributeWithHttpInfo($attributeCategory, $attributeName); - } - /** - * Operation deleteAttributeWithHttpInfo - * - * Delete an attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function deleteAttributeWithHttpInfo($attributeCategory, $attributeName) - { - $returnType = ''; - $request = $this->deleteAttributeRequest($attributeCategory, $attributeName); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation deleteAttributeAsync - * - * Delete an attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteAttributeAsync($attributeCategory, $attributeName) - { - return $this->deleteAttributeAsyncWithHttpInfo($attributeCategory, $attributeName)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation deleteAttributeAsyncWithHttpInfo - * - * Delete an attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteAttributeAsyncWithHttpInfo($attributeCategory, $attributeName) - { - $returnType = ''; - $request = $this->deleteAttributeRequest($attributeCategory, $attributeName); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'deleteAttribute' - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function deleteAttributeRequest($attributeCategory, $attributeName) - { - // verify the required parameter 'attributeCategory' is set - if ($attributeCategory === null || \is_array($attributeCategory) && \count($attributeCategory) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $attributeCategory when calling deleteAttribute'); - } - // verify the required parameter 'attributeName' is set - if ($attributeName === null || \is_array($attributeName) && \count($attributeName) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $attributeName when calling deleteAttribute'); - } - $resourcePath = '/contacts/attributes/{attributeCategory}/{attributeName}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($attributeCategory !== null) { - $resourcePath = \str_replace('{' . 'attributeCategory' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($attributeCategory), $resourcePath); - } - // path params - if ($attributeName !== null) { - $resourcePath = \str_replace('{' . 'attributeName' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($attributeName), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getAttributes - * - * List all attributes - * - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetAttributes - */ - public function getAttributes() - { - list($response) = $this->getAttributesWithHttpInfo(); - return $response; - } - /** - * Operation getAttributesWithHttpInfo - * - * List all attributes - * - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetAttributes, HTTP status code, HTTP response headers (array of strings) - */ - public function getAttributesWithHttpInfo() - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAttributes'; - $request = $this->getAttributesRequest(); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAttributes', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getAttributesAsync - * - * List all attributes - * - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getAttributesAsync() - { - return $this->getAttributesAsyncWithHttpInfo()->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getAttributesAsyncWithHttpInfo - * - * List all attributes - * - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getAttributesAsyncWithHttpInfo() - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAttributes'; - $request = $this->getAttributesRequest(); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getAttributes' - * - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getAttributesRequest() - { - $resourcePath = '/contacts/attributes'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateAttribute - * - * Update contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * @param \SendinBlue\Client\Model\UpdateAttribute $updateAttribute Values to update an attribute (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateAttribute($attributeCategory, $attributeName, $updateAttribute) - { - $this->updateAttributeWithHttpInfo($attributeCategory, $attributeName, $updateAttribute); - } - /** - * Operation updateAttributeWithHttpInfo - * - * Update contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * @param \SendinBlue\Client\Model\UpdateAttribute $updateAttribute Values to update an attribute (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateAttributeWithHttpInfo($attributeCategory, $attributeName, $updateAttribute) - { - $returnType = ''; - $request = $this->updateAttributeRequest($attributeCategory, $attributeName, $updateAttribute); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateAttributeAsync - * - * Update contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * @param \SendinBlue\Client\Model\UpdateAttribute $updateAttribute Values to update an attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateAttributeAsync($attributeCategory, $attributeName, $updateAttribute) - { - return $this->updateAttributeAsyncWithHttpInfo($attributeCategory, $attributeName, $updateAttribute)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateAttributeAsyncWithHttpInfo - * - * Update contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * @param \SendinBlue\Client\Model\UpdateAttribute $updateAttribute Values to update an attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateAttributeAsyncWithHttpInfo($attributeCategory, $attributeName, $updateAttribute) - { - $returnType = ''; - $request = $this->updateAttributeRequest($attributeCategory, $attributeName, $updateAttribute); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateAttribute' - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * @param \SendinBlue\Client\Model\UpdateAttribute $updateAttribute Values to update an attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateAttributeRequest($attributeCategory, $attributeName, $updateAttribute) - { - // verify the required parameter 'attributeCategory' is set - if ($attributeCategory === null || \is_array($attributeCategory) && \count($attributeCategory) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $attributeCategory when calling updateAttribute'); - } - // verify the required parameter 'attributeName' is set - if ($attributeName === null || \is_array($attributeName) && \count($attributeName) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $attributeName when calling updateAttribute'); - } - // verify the required parameter 'updateAttribute' is set - if ($updateAttribute === null || \is_array($updateAttribute) && \count($updateAttribute) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $updateAttribute when calling updateAttribute'); - } - $resourcePath = '/contacts/attributes/{attributeCategory}/{attributeName}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($attributeCategory !== null) { - $resourcePath = \str_replace('{' . 'attributeCategory' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($attributeCategory), $resourcePath); - } - // path params - if ($attributeName !== null) { - $resourcePath = \str_replace('{' . 'attributeName' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($attributeName), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($updateAttribute)) { - $_tempBody = $updateAttribute; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Create http client option - * - * @throws \RuntimeException on file opening failure - * @return array of http client options - */ - protected function createHttpClientOption() - { - $options = []; - if ($this->config->getDebug()) { - $options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG] = \fopen($this->config->getDebugFile(), 'a'); - if (!$options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG]) { - throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile()); - } - } - return $options; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ContactsApi.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ContactsApi.php deleted file mode 100644 index b04af4e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ContactsApi.php +++ /dev/null @@ -1,5339 +0,0 @@ -client = $client ?: new \WPMailSMTP\Vendor\GuzzleHttp\Client(); - $this->config = $config ?: new \WPMailSMTP\Vendor\SendinBlue\Client\Configuration(); - $this->headerSelector = $selector ?: new \WPMailSMTP\Vendor\SendinBlue\Client\HeaderSelector(); - } - /** - * @return Configuration - */ - public function getConfig() - { - return $this->config; - } - /** - * Operation addContactToList - * - * Add existing contacts to a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\AddContactToList $contactEmails Emails addresses of the contacts (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\PostContactInfo - */ - public function addContactToList($listId, $contactEmails) - { - list($response) = $this->addContactToListWithHttpInfo($listId, $contactEmails); - return $response; - } - /** - * Operation addContactToListWithHttpInfo - * - * Add existing contacts to a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\AddContactToList $contactEmails Emails addresses of the contacts (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\PostContactInfo, HTTP status code, HTTP response headers (array of strings) - */ - public function addContactToListWithHttpInfo($listId, $contactEmails) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfo'; - $request = $this->addContactToListRequest($listId, $contactEmails); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfo', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation addContactToListAsync - * - * Add existing contacts to a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\AddContactToList $contactEmails Emails addresses of the contacts (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function addContactToListAsync($listId, $contactEmails) - { - return $this->addContactToListAsyncWithHttpInfo($listId, $contactEmails)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation addContactToListAsyncWithHttpInfo - * - * Add existing contacts to a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\AddContactToList $contactEmails Emails addresses of the contacts (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function addContactToListAsyncWithHttpInfo($listId, $contactEmails) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfo'; - $request = $this->addContactToListRequest($listId, $contactEmails); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'addContactToList' - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\AddContactToList $contactEmails Emails addresses of the contacts (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function addContactToListRequest($listId, $contactEmails) - { - // verify the required parameter 'listId' is set - if ($listId === null || \is_array($listId) && \count($listId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $listId when calling addContactToList'); - } - // verify the required parameter 'contactEmails' is set - if ($contactEmails === null || \is_array($contactEmails) && \count($contactEmails) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $contactEmails when calling addContactToList'); - } - $resourcePath = '/contacts/lists/{listId}/contacts/add'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($listId !== null) { - $resourcePath = \str_replace('{' . 'listId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($listId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($contactEmails)) { - $_tempBody = $contactEmails; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation createAttribute - * - * Create contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the attribute (required) - * @param \SendinBlue\Client\Model\CreateAttribute $createAttribute Values to create an attribute (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function createAttribute($attributeCategory, $attributeName, $createAttribute) - { - $this->createAttributeWithHttpInfo($attributeCategory, $attributeName, $createAttribute); - } - /** - * Operation createAttributeWithHttpInfo - * - * Create contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the attribute (required) - * @param \SendinBlue\Client\Model\CreateAttribute $createAttribute Values to create an attribute (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function createAttributeWithHttpInfo($attributeCategory, $attributeName, $createAttribute) - { - $returnType = ''; - $request = $this->createAttributeRequest($attributeCategory, $attributeName, $createAttribute); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation createAttributeAsync - * - * Create contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the attribute (required) - * @param \SendinBlue\Client\Model\CreateAttribute $createAttribute Values to create an attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createAttributeAsync($attributeCategory, $attributeName, $createAttribute) - { - return $this->createAttributeAsyncWithHttpInfo($attributeCategory, $attributeName, $createAttribute)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation createAttributeAsyncWithHttpInfo - * - * Create contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the attribute (required) - * @param \SendinBlue\Client\Model\CreateAttribute $createAttribute Values to create an attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createAttributeAsyncWithHttpInfo($attributeCategory, $attributeName, $createAttribute) - { - $returnType = ''; - $request = $this->createAttributeRequest($attributeCategory, $attributeName, $createAttribute); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'createAttribute' - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the attribute (required) - * @param \SendinBlue\Client\Model\CreateAttribute $createAttribute Values to create an attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function createAttributeRequest($attributeCategory, $attributeName, $createAttribute) - { - // verify the required parameter 'attributeCategory' is set - if ($attributeCategory === null || \is_array($attributeCategory) && \count($attributeCategory) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $attributeCategory when calling createAttribute'); - } - // verify the required parameter 'attributeName' is set - if ($attributeName === null || \is_array($attributeName) && \count($attributeName) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $attributeName when calling createAttribute'); - } - // verify the required parameter 'createAttribute' is set - if ($createAttribute === null || \is_array($createAttribute) && \count($createAttribute) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $createAttribute when calling createAttribute'); - } - $resourcePath = '/contacts/attributes/{attributeCategory}/{attributeName}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($attributeCategory !== null) { - $resourcePath = \str_replace('{' . 'attributeCategory' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($attributeCategory), $resourcePath); - } - // path params - if ($attributeName !== null) { - $resourcePath = \str_replace('{' . 'attributeName' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($attributeName), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($createAttribute)) { - $_tempBody = $createAttribute; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation createContact - * - * Create a contact - * - * @param \SendinBlue\Client\Model\CreateContact $createContact Values to create a contact (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreateUpdateContactModel - */ - public function createContact($createContact) - { - list($response) = $this->createContactWithHttpInfo($createContact); - return $response; - } - /** - * Operation createContactWithHttpInfo - * - * Create a contact - * - * @param \SendinBlue\Client\Model\CreateContact $createContact Values to create a contact (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreateUpdateContactModel, HTTP status code, HTTP response headers (array of strings) - */ - public function createContactWithHttpInfo($createContact) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateUpdateContactModel'; - $request = $this->createContactRequest($createContact); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateUpdateContactModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 204: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateUpdateContactModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation createContactAsync - * - * Create a contact - * - * @param \SendinBlue\Client\Model\CreateContact $createContact Values to create a contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createContactAsync($createContact) - { - return $this->createContactAsyncWithHttpInfo($createContact)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation createContactAsyncWithHttpInfo - * - * Create a contact - * - * @param \SendinBlue\Client\Model\CreateContact $createContact Values to create a contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createContactAsyncWithHttpInfo($createContact) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateUpdateContactModel'; - $request = $this->createContactRequest($createContact); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'createContact' - * - * @param \SendinBlue\Client\Model\CreateContact $createContact Values to create a contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function createContactRequest($createContact) - { - // verify the required parameter 'createContact' is set - if ($createContact === null || \is_array($createContact) && \count($createContact) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $createContact when calling createContact'); - } - $resourcePath = '/contacts'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($createContact)) { - $_tempBody = $createContact; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation createDoiContact - * - * Create Contact via DOI (Double-Opt-In) Flow - * - * @param \SendinBlue\Client\Model\CreateDoiContact $createDoiContact Values to create the Double opt-in (DOI) contact (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function createDoiContact($createDoiContact) - { - $this->createDoiContactWithHttpInfo($createDoiContact); - } - /** - * Operation createDoiContactWithHttpInfo - * - * Create Contact via DOI (Double-Opt-In) Flow - * - * @param \SendinBlue\Client\Model\CreateDoiContact $createDoiContact Values to create the Double opt-in (DOI) contact (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function createDoiContactWithHttpInfo($createDoiContact) - { - $returnType = ''; - $request = $this->createDoiContactRequest($createDoiContact); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation createDoiContactAsync - * - * Create Contact via DOI (Double-Opt-In) Flow - * - * @param \SendinBlue\Client\Model\CreateDoiContact $createDoiContact Values to create the Double opt-in (DOI) contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createDoiContactAsync($createDoiContact) - { - return $this->createDoiContactAsyncWithHttpInfo($createDoiContact)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation createDoiContactAsyncWithHttpInfo - * - * Create Contact via DOI (Double-Opt-In) Flow - * - * @param \SendinBlue\Client\Model\CreateDoiContact $createDoiContact Values to create the Double opt-in (DOI) contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createDoiContactAsyncWithHttpInfo($createDoiContact) - { - $returnType = ''; - $request = $this->createDoiContactRequest($createDoiContact); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'createDoiContact' - * - * @param \SendinBlue\Client\Model\CreateDoiContact $createDoiContact Values to create the Double opt-in (DOI) contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function createDoiContactRequest($createDoiContact) - { - // verify the required parameter 'createDoiContact' is set - if ($createDoiContact === null || \is_array($createDoiContact) && \count($createDoiContact) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $createDoiContact when calling createDoiContact'); - } - $resourcePath = '/contacts/doubleOptinConfirmation'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($createDoiContact)) { - $_tempBody = $createDoiContact; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation createFolder - * - * Create a folder - * - * @param \SendinBlue\Client\Model\CreateUpdateFolder $createFolder Name of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreateModel - */ - public function createFolder($createFolder) - { - list($response) = $this->createFolderWithHttpInfo($createFolder); - return $response; - } - /** - * Operation createFolderWithHttpInfo - * - * Create a folder - * - * @param \SendinBlue\Client\Model\CreateUpdateFolder $createFolder Name of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreateModel, HTTP status code, HTTP response headers (array of strings) - */ - public function createFolderWithHttpInfo($createFolder) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createFolderRequest($createFolder); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation createFolderAsync - * - * Create a folder - * - * @param \SendinBlue\Client\Model\CreateUpdateFolder $createFolder Name of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createFolderAsync($createFolder) - { - return $this->createFolderAsyncWithHttpInfo($createFolder)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation createFolderAsyncWithHttpInfo - * - * Create a folder - * - * @param \SendinBlue\Client\Model\CreateUpdateFolder $createFolder Name of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createFolderAsyncWithHttpInfo($createFolder) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createFolderRequest($createFolder); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'createFolder' - * - * @param \SendinBlue\Client\Model\CreateUpdateFolder $createFolder Name of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function createFolderRequest($createFolder) - { - // verify the required parameter 'createFolder' is set - if ($createFolder === null || \is_array($createFolder) && \count($createFolder) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $createFolder when calling createFolder'); - } - $resourcePath = '/contacts/folders'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($createFolder)) { - $_tempBody = $createFolder; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation createList - * - * Create a list - * - * @param \SendinBlue\Client\Model\CreateList $createList Values to create a list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreateModel - */ - public function createList($createList) - { - list($response) = $this->createListWithHttpInfo($createList); - return $response; - } - /** - * Operation createListWithHttpInfo - * - * Create a list - * - * @param \SendinBlue\Client\Model\CreateList $createList Values to create a list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreateModel, HTTP status code, HTTP response headers (array of strings) - */ - public function createListWithHttpInfo($createList) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createListRequest($createList); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation createListAsync - * - * Create a list - * - * @param \SendinBlue\Client\Model\CreateList $createList Values to create a list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createListAsync($createList) - { - return $this->createListAsyncWithHttpInfo($createList)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation createListAsyncWithHttpInfo - * - * Create a list - * - * @param \SendinBlue\Client\Model\CreateList $createList Values to create a list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createListAsyncWithHttpInfo($createList) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createListRequest($createList); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'createList' - * - * @param \SendinBlue\Client\Model\CreateList $createList Values to create a list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function createListRequest($createList) - { - // verify the required parameter 'createList' is set - if ($createList === null || \is_array($createList) && \count($createList) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $createList when calling createList'); - } - $resourcePath = '/contacts/lists'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($createList)) { - $_tempBody = $createList; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation deleteAttribute - * - * Delete an attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function deleteAttribute($attributeCategory, $attributeName) - { - $this->deleteAttributeWithHttpInfo($attributeCategory, $attributeName); - } - /** - * Operation deleteAttributeWithHttpInfo - * - * Delete an attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function deleteAttributeWithHttpInfo($attributeCategory, $attributeName) - { - $returnType = ''; - $request = $this->deleteAttributeRequest($attributeCategory, $attributeName); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation deleteAttributeAsync - * - * Delete an attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteAttributeAsync($attributeCategory, $attributeName) - { - return $this->deleteAttributeAsyncWithHttpInfo($attributeCategory, $attributeName)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation deleteAttributeAsyncWithHttpInfo - * - * Delete an attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteAttributeAsyncWithHttpInfo($attributeCategory, $attributeName) - { - $returnType = ''; - $request = $this->deleteAttributeRequest($attributeCategory, $attributeName); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'deleteAttribute' - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function deleteAttributeRequest($attributeCategory, $attributeName) - { - // verify the required parameter 'attributeCategory' is set - if ($attributeCategory === null || \is_array($attributeCategory) && \count($attributeCategory) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $attributeCategory when calling deleteAttribute'); - } - // verify the required parameter 'attributeName' is set - if ($attributeName === null || \is_array($attributeName) && \count($attributeName) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $attributeName when calling deleteAttribute'); - } - $resourcePath = '/contacts/attributes/{attributeCategory}/{attributeName}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($attributeCategory !== null) { - $resourcePath = \str_replace('{' . 'attributeCategory' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($attributeCategory), $resourcePath); - } - // path params - if ($attributeName !== null) { - $resourcePath = \str_replace('{' . 'attributeName' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($attributeName), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation deleteContact - * - * Delete a contact - * - * @param string $email Email (urlencoded) of the contact (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function deleteContact($email) - { - $this->deleteContactWithHttpInfo($email); - } - /** - * Operation deleteContactWithHttpInfo - * - * Delete a contact - * - * @param string $email Email (urlencoded) of the contact (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function deleteContactWithHttpInfo($email) - { - $returnType = ''; - $request = $this->deleteContactRequest($email); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 405: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation deleteContactAsync - * - * Delete a contact - * - * @param string $email Email (urlencoded) of the contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteContactAsync($email) - { - return $this->deleteContactAsyncWithHttpInfo($email)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation deleteContactAsyncWithHttpInfo - * - * Delete a contact - * - * @param string $email Email (urlencoded) of the contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteContactAsyncWithHttpInfo($email) - { - $returnType = ''; - $request = $this->deleteContactRequest($email); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'deleteContact' - * - * @param string $email Email (urlencoded) of the contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function deleteContactRequest($email) - { - // verify the required parameter 'email' is set - if ($email === null || \is_array($email) && \count($email) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $email when calling deleteContact'); - } - $resourcePath = '/contacts/{email}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($email !== null) { - $resourcePath = \str_replace('{' . 'email' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($email), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation deleteFolder - * - * Delete a folder (and all its lists) - * - * @param int $folderId Id of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function deleteFolder($folderId) - { - $this->deleteFolderWithHttpInfo($folderId); - } - /** - * Operation deleteFolderWithHttpInfo - * - * Delete a folder (and all its lists) - * - * @param int $folderId Id of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function deleteFolderWithHttpInfo($folderId) - { - $returnType = ''; - $request = $this->deleteFolderRequest($folderId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation deleteFolderAsync - * - * Delete a folder (and all its lists) - * - * @param int $folderId Id of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteFolderAsync($folderId) - { - return $this->deleteFolderAsyncWithHttpInfo($folderId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation deleteFolderAsyncWithHttpInfo - * - * Delete a folder (and all its lists) - * - * @param int $folderId Id of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteFolderAsyncWithHttpInfo($folderId) - { - $returnType = ''; - $request = $this->deleteFolderRequest($folderId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'deleteFolder' - * - * @param int $folderId Id of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function deleteFolderRequest($folderId) - { - // verify the required parameter 'folderId' is set - if ($folderId === null || \is_array($folderId) && \count($folderId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $folderId when calling deleteFolder'); - } - $resourcePath = '/contacts/folders/{folderId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($folderId !== null) { - $resourcePath = \str_replace('{' . 'folderId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($folderId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation deleteList - * - * Delete a list - * - * @param int $listId Id of the list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function deleteList($listId) - { - $this->deleteListWithHttpInfo($listId); - } - /** - * Operation deleteListWithHttpInfo - * - * Delete a list - * - * @param int $listId Id of the list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function deleteListWithHttpInfo($listId) - { - $returnType = ''; - $request = $this->deleteListRequest($listId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation deleteListAsync - * - * Delete a list - * - * @param int $listId Id of the list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteListAsync($listId) - { - return $this->deleteListAsyncWithHttpInfo($listId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation deleteListAsyncWithHttpInfo - * - * Delete a list - * - * @param int $listId Id of the list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteListAsyncWithHttpInfo($listId) - { - $returnType = ''; - $request = $this->deleteListRequest($listId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'deleteList' - * - * @param int $listId Id of the list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function deleteListRequest($listId) - { - // verify the required parameter 'listId' is set - if ($listId === null || \is_array($listId) && \count($listId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $listId when calling deleteList'); - } - $resourcePath = '/contacts/lists/{listId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($listId !== null) { - $resourcePath = \str_replace('{' . 'listId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($listId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getAttributes - * - * List all attributes - * - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetAttributes - */ - public function getAttributes() - { - list($response) = $this->getAttributesWithHttpInfo(); - return $response; - } - /** - * Operation getAttributesWithHttpInfo - * - * List all attributes - * - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetAttributes, HTTP status code, HTTP response headers (array of strings) - */ - public function getAttributesWithHttpInfo() - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAttributes'; - $request = $this->getAttributesRequest(); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAttributes', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getAttributesAsync - * - * List all attributes - * - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getAttributesAsync() - { - return $this->getAttributesAsyncWithHttpInfo()->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getAttributesAsyncWithHttpInfo - * - * List all attributes - * - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getAttributesAsyncWithHttpInfo() - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAttributes'; - $request = $this->getAttributesRequest(); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getAttributes' - * - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getAttributesRequest() - { - $resourcePath = '/contacts/attributes'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getContactInfo - * - * Get a contact's details - * - * @param string $email Email (urlencoded) of the contact OR its SMS attribute value (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetExtendedContactDetails - */ - public function getContactInfo($email) - { - list($response) = $this->getContactInfoWithHttpInfo($email); - return $response; - } - /** - * Operation getContactInfoWithHttpInfo - * - * Get a contact's details - * - * @param string $email Email (urlencoded) of the contact OR its SMS attribute value (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetExtendedContactDetails, HTTP status code, HTTP response headers (array of strings) - */ - public function getContactInfoWithHttpInfo($email) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetails'; - $request = $this->getContactInfoRequest($email); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetails', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getContactInfoAsync - * - * Get a contact's details - * - * @param string $email Email (urlencoded) of the contact OR its SMS attribute value (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getContactInfoAsync($email) - { - return $this->getContactInfoAsyncWithHttpInfo($email)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getContactInfoAsyncWithHttpInfo - * - * Get a contact's details - * - * @param string $email Email (urlencoded) of the contact OR its SMS attribute value (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getContactInfoAsyncWithHttpInfo($email) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetails'; - $request = $this->getContactInfoRequest($email); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getContactInfo' - * - * @param string $email Email (urlencoded) of the contact OR its SMS attribute value (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getContactInfoRequest($email) - { - // verify the required parameter 'email' is set - if ($email === null || \is_array($email) && \count($email) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $email when calling getContactInfo'); - } - $resourcePath = '/contacts/{email}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($email !== null) { - $resourcePath = \str_replace('{' . 'email' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($email), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getContactStats - * - * Get email campaigns' statistics for a contact - * - * @param string $email Email address (urlencoded) of the contact (required) - * @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be lower than equal to endDate (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be greater than equal to startDate (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetContactCampaignStats - */ - public function getContactStats($email, $startDate = null, $endDate = null) - { - list($response) = $this->getContactStatsWithHttpInfo($email, $startDate, $endDate); - return $response; - } - /** - * Operation getContactStatsWithHttpInfo - * - * Get email campaigns' statistics for a contact - * - * @param string $email Email address (urlencoded) of the contact (required) - * @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be lower than equal to endDate (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be greater than equal to startDate (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetContactCampaignStats, HTTP status code, HTTP response headers (array of strings) - */ - public function getContactStatsWithHttpInfo($email, $startDate = null, $endDate = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStats'; - $request = $this->getContactStatsRequest($email, $startDate, $endDate); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStats', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getContactStatsAsync - * - * Get email campaigns' statistics for a contact - * - * @param string $email Email address (urlencoded) of the contact (required) - * @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be lower than equal to endDate (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be greater than equal to startDate (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getContactStatsAsync($email, $startDate = null, $endDate = null) - { - return $this->getContactStatsAsyncWithHttpInfo($email, $startDate, $endDate)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getContactStatsAsyncWithHttpInfo - * - * Get email campaigns' statistics for a contact - * - * @param string $email Email address (urlencoded) of the contact (required) - * @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be lower than equal to endDate (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be greater than equal to startDate (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getContactStatsAsyncWithHttpInfo($email, $startDate = null, $endDate = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStats'; - $request = $this->getContactStatsRequest($email, $startDate, $endDate); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getContactStats' - * - * @param string $email Email address (urlencoded) of the contact (required) - * @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be lower than equal to endDate (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be greater than equal to startDate (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getContactStatsRequest($email, $startDate = null, $endDate = null) - { - // verify the required parameter 'email' is set - if ($email === null || \is_array($email) && \count($email) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $email when calling getContactStats'); - } - $resourcePath = '/contacts/{email}/campaignStats'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($startDate !== null) { - $queryParams['startDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($startDate); - } - // query params - if ($endDate !== null) { - $queryParams['endDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($endDate); - } - // path params - if ($email !== null) { - $resourcePath = \str_replace('{' . 'email' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($email), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getContacts - * - * Get all the contacts - * - * @param int $limit Number of documents per page (optional, default to 50) - * @param int $offset Index of the first document of the page (optional, default to 0) - * @param \DateTime $modifiedSince Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetContacts - */ - public function getContacts($limit = '50', $offset = '0', $modifiedSince = null) - { - list($response) = $this->getContactsWithHttpInfo($limit, $offset, $modifiedSince); - return $response; - } - /** - * Operation getContactsWithHttpInfo - * - * Get all the contacts - * - * @param int $limit Number of documents per page (optional, default to 50) - * @param int $offset Index of the first document of the page (optional, default to 0) - * @param \DateTime $modifiedSince Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetContacts, HTTP status code, HTTP response headers (array of strings) - */ - public function getContactsWithHttpInfo($limit = '50', $offset = '0', $modifiedSince = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContacts'; - $request = $this->getContactsRequest($limit, $offset, $modifiedSince); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContacts', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getContactsAsync - * - * Get all the contacts - * - * @param int $limit Number of documents per page (optional, default to 50) - * @param int $offset Index of the first document of the page (optional, default to 0) - * @param \DateTime $modifiedSince Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getContactsAsync($limit = '50', $offset = '0', $modifiedSince = null) - { - return $this->getContactsAsyncWithHttpInfo($limit, $offset, $modifiedSince)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getContactsAsyncWithHttpInfo - * - * Get all the contacts - * - * @param int $limit Number of documents per page (optional, default to 50) - * @param int $offset Index of the first document of the page (optional, default to 0) - * @param \DateTime $modifiedSince Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getContactsAsyncWithHttpInfo($limit = '50', $offset = '0', $modifiedSince = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContacts'; - $request = $this->getContactsRequest($limit, $offset, $modifiedSince); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getContacts' - * - * @param int $limit Number of documents per page (optional, default to 50) - * @param int $offset Index of the first document of the page (optional, default to 0) - * @param \DateTime $modifiedSince Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getContactsRequest($limit = '50', $offset = '0', $modifiedSince = null) - { - if ($limit !== null && $limit > 1000) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling ContactsApi.getContacts, must be smaller than or equal to 1000.'); - } - $resourcePath = '/contacts'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // query params - if ($modifiedSince !== null) { - $queryParams['modifiedSince'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($modifiedSince); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getContactsFromList - * - * Get contacts in a list - * - * @param int $listId Id of the list (required) - * @param \DateTime $modifiedSince Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. (optional) - * @param int $limit Number of documents per page (optional, default to 50) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetContacts - */ - public function getContactsFromList($listId, $modifiedSince = null, $limit = '50', $offset = '0') - { - list($response) = $this->getContactsFromListWithHttpInfo($listId, $modifiedSince, $limit, $offset); - return $response; - } - /** - * Operation getContactsFromListWithHttpInfo - * - * Get contacts in a list - * - * @param int $listId Id of the list (required) - * @param \DateTime $modifiedSince Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. (optional) - * @param int $limit Number of documents per page (optional, default to 50) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetContacts, HTTP status code, HTTP response headers (array of strings) - */ - public function getContactsFromListWithHttpInfo($listId, $modifiedSince = null, $limit = '50', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContacts'; - $request = $this->getContactsFromListRequest($listId, $modifiedSince, $limit, $offset); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContacts', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getContactsFromListAsync - * - * Get contacts in a list - * - * @param int $listId Id of the list (required) - * @param \DateTime $modifiedSince Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. (optional) - * @param int $limit Number of documents per page (optional, default to 50) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getContactsFromListAsync($listId, $modifiedSince = null, $limit = '50', $offset = '0') - { - return $this->getContactsFromListAsyncWithHttpInfo($listId, $modifiedSince, $limit, $offset)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getContactsFromListAsyncWithHttpInfo - * - * Get contacts in a list - * - * @param int $listId Id of the list (required) - * @param \DateTime $modifiedSince Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. (optional) - * @param int $limit Number of documents per page (optional, default to 50) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getContactsFromListAsyncWithHttpInfo($listId, $modifiedSince = null, $limit = '50', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContacts'; - $request = $this->getContactsFromListRequest($listId, $modifiedSince, $limit, $offset); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getContactsFromList' - * - * @param int $listId Id of the list (required) - * @param \DateTime $modifiedSince Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. (optional) - * @param int $limit Number of documents per page (optional, default to 50) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getContactsFromListRequest($listId, $modifiedSince = null, $limit = '50', $offset = '0') - { - // verify the required parameter 'listId' is set - if ($listId === null || \is_array($listId) && \count($listId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $listId when calling getContactsFromList'); - } - if ($limit !== null && $limit > 500) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling ContactsApi.getContactsFromList, must be smaller than or equal to 500.'); - } - $resourcePath = '/contacts/lists/{listId}/contacts'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($modifiedSince !== null) { - $queryParams['modifiedSince'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($modifiedSince); - } - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // path params - if ($listId !== null) { - $resourcePath = \str_replace('{' . 'listId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($listId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getFolder - * - * Returns a folder's details - * - * @param int $folderId id of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetFolder - */ - public function getFolder($folderId) - { - list($response) = $this->getFolderWithHttpInfo($folderId); - return $response; - } - /** - * Operation getFolderWithHttpInfo - * - * Returns a folder's details - * - * @param int $folderId id of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetFolder, HTTP status code, HTTP response headers (array of strings) - */ - public function getFolderWithHttpInfo($folderId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolder'; - $request = $this->getFolderRequest($folderId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolder', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getFolderAsync - * - * Returns a folder's details - * - * @param int $folderId id of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getFolderAsync($folderId) - { - return $this->getFolderAsyncWithHttpInfo($folderId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getFolderAsyncWithHttpInfo - * - * Returns a folder's details - * - * @param int $folderId id of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getFolderAsyncWithHttpInfo($folderId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolder'; - $request = $this->getFolderRequest($folderId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getFolder' - * - * @param int $folderId id of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getFolderRequest($folderId) - { - // verify the required parameter 'folderId' is set - if ($folderId === null || \is_array($folderId) && \count($folderId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $folderId when calling getFolder'); - } - $resourcePath = '/contacts/folders/{folderId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($folderId !== null) { - $resourcePath = \str_replace('{' . 'folderId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($folderId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getFolderLists - * - * Get lists in a folder - * - * @param int $folderId Id of the folder (required) - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetFolderLists - */ - public function getFolderLists($folderId, $limit = '10', $offset = '0') - { - list($response) = $this->getFolderListsWithHttpInfo($folderId, $limit, $offset); - return $response; - } - /** - * Operation getFolderListsWithHttpInfo - * - * Get lists in a folder - * - * @param int $folderId Id of the folder (required) - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetFolderLists, HTTP status code, HTTP response headers (array of strings) - */ - public function getFolderListsWithHttpInfo($folderId, $limit = '10', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolderLists'; - $request = $this->getFolderListsRequest($folderId, $limit, $offset); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolderLists', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getFolderListsAsync - * - * Get lists in a folder - * - * @param int $folderId Id of the folder (required) - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getFolderListsAsync($folderId, $limit = '10', $offset = '0') - { - return $this->getFolderListsAsyncWithHttpInfo($folderId, $limit, $offset)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getFolderListsAsyncWithHttpInfo - * - * Get lists in a folder - * - * @param int $folderId Id of the folder (required) - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getFolderListsAsyncWithHttpInfo($folderId, $limit = '10', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolderLists'; - $request = $this->getFolderListsRequest($folderId, $limit, $offset); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getFolderLists' - * - * @param int $folderId Id of the folder (required) - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getFolderListsRequest($folderId, $limit = '10', $offset = '0') - { - // verify the required parameter 'folderId' is set - if ($folderId === null || \is_array($folderId) && \count($folderId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $folderId when calling getFolderLists'); - } - if ($limit !== null && $limit > 50) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling ContactsApi.getFolderLists, must be smaller than or equal to 50.'); - } - $resourcePath = '/contacts/folders/{folderId}/lists'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // path params - if ($folderId !== null) { - $resourcePath = \str_replace('{' . 'folderId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($folderId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getFolders - * - * Get all folders - * - * @param int $limit Number of documents per page (required) - * @param int $offset Index of the first document of the page (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetFolders - */ - public function getFolders($limit, $offset) - { - list($response) = $this->getFoldersWithHttpInfo($limit, $offset); - return $response; - } - /** - * Operation getFoldersWithHttpInfo - * - * Get all folders - * - * @param int $limit Number of documents per page (required) - * @param int $offset Index of the first document of the page (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetFolders, HTTP status code, HTTP response headers (array of strings) - */ - public function getFoldersWithHttpInfo($limit, $offset) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolders'; - $request = $this->getFoldersRequest($limit, $offset); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolders', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getFoldersAsync - * - * Get all folders - * - * @param int $limit Number of documents per page (required) - * @param int $offset Index of the first document of the page (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getFoldersAsync($limit, $offset) - { - return $this->getFoldersAsyncWithHttpInfo($limit, $offset)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getFoldersAsyncWithHttpInfo - * - * Get all folders - * - * @param int $limit Number of documents per page (required) - * @param int $offset Index of the first document of the page (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getFoldersAsyncWithHttpInfo($limit, $offset) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolders'; - $request = $this->getFoldersRequest($limit, $offset); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getFolders' - * - * @param int $limit Number of documents per page (required) - * @param int $offset Index of the first document of the page (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getFoldersRequest($limit, $offset) - { - // verify the required parameter 'limit' is set - if ($limit === null || \is_array($limit) && \count($limit) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $limit when calling getFolders'); - } - if ($limit > 50) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling ContactsApi.getFolders, must be smaller than or equal to 50.'); - } - // verify the required parameter 'offset' is set - if ($offset === null || \is_array($offset) && \count($offset) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $offset when calling getFolders'); - } - $resourcePath = '/contacts/folders'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getList - * - * Get a list's details - * - * @param int $listId Id of the list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetExtendedList - */ - public function getList($listId) - { - list($response) = $this->getListWithHttpInfo($listId); - return $response; - } - /** - * Operation getListWithHttpInfo - * - * Get a list's details - * - * @param int $listId Id of the list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetExtendedList, HTTP status code, HTTP response headers (array of strings) - */ - public function getListWithHttpInfo($listId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedList'; - $request = $this->getListRequest($listId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedList', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getListAsync - * - * Get a list's details - * - * @param int $listId Id of the list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getListAsync($listId) - { - return $this->getListAsyncWithHttpInfo($listId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getListAsyncWithHttpInfo - * - * Get a list's details - * - * @param int $listId Id of the list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getListAsyncWithHttpInfo($listId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedList'; - $request = $this->getListRequest($listId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getList' - * - * @param int $listId Id of the list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getListRequest($listId) - { - // verify the required parameter 'listId' is set - if ($listId === null || \is_array($listId) && \count($listId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $listId when calling getList'); - } - $resourcePath = '/contacts/lists/{listId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($listId !== null) { - $resourcePath = \str_replace('{' . 'listId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($listId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getLists - * - * Get all the lists - * - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetLists - */ - public function getLists($limit = '10', $offset = '0') - { - list($response) = $this->getListsWithHttpInfo($limit, $offset); - return $response; - } - /** - * Operation getListsWithHttpInfo - * - * Get all the lists - * - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetLists, HTTP status code, HTTP response headers (array of strings) - */ - public function getListsWithHttpInfo($limit = '10', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetLists'; - $request = $this->getListsRequest($limit, $offset); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetLists', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getListsAsync - * - * Get all the lists - * - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getListsAsync($limit = '10', $offset = '0') - { - return $this->getListsAsyncWithHttpInfo($limit, $offset)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getListsAsyncWithHttpInfo - * - * Get all the lists - * - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getListsAsyncWithHttpInfo($limit = '10', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetLists'; - $request = $this->getListsRequest($limit, $offset); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getLists' - * - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getListsRequest($limit = '10', $offset = '0') - { - if ($limit !== null && $limit > 50) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling ContactsApi.getLists, must be smaller than or equal to 50.'); - } - $resourcePath = '/contacts/lists'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation importContacts - * - * Import contacts - * - * @param \SendinBlue\Client\Model\RequestContactImport $requestContactImport Values to import contacts in Sendinblue. To know more about the expected format, please have a look at ``https://help.sendinblue.com/hc/en-us/articles/209499265-Build-contacts-lists-for-your-email-marketing-campaigns`` (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreatedProcessId - */ - public function importContacts($requestContactImport) - { - list($response) = $this->importContactsWithHttpInfo($requestContactImport); - return $response; - } - /** - * Operation importContactsWithHttpInfo - * - * Import contacts - * - * @param \SendinBlue\Client\Model\RequestContactImport $requestContactImport Values to import contacts in Sendinblue. To know more about the expected format, please have a look at ``https://help.sendinblue.com/hc/en-us/articles/209499265-Build-contacts-lists-for-your-email-marketing-campaigns`` (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreatedProcessId, HTTP status code, HTTP response headers (array of strings) - */ - public function importContactsWithHttpInfo($requestContactImport) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreatedProcessId'; - $request = $this->importContactsRequest($requestContactImport); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 202: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreatedProcessId', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation importContactsAsync - * - * Import contacts - * - * @param \SendinBlue\Client\Model\RequestContactImport $requestContactImport Values to import contacts in Sendinblue. To know more about the expected format, please have a look at ``https://help.sendinblue.com/hc/en-us/articles/209499265-Build-contacts-lists-for-your-email-marketing-campaigns`` (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function importContactsAsync($requestContactImport) - { - return $this->importContactsAsyncWithHttpInfo($requestContactImport)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation importContactsAsyncWithHttpInfo - * - * Import contacts - * - * @param \SendinBlue\Client\Model\RequestContactImport $requestContactImport Values to import contacts in Sendinblue. To know more about the expected format, please have a look at ``https://help.sendinblue.com/hc/en-us/articles/209499265-Build-contacts-lists-for-your-email-marketing-campaigns`` (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function importContactsAsyncWithHttpInfo($requestContactImport) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreatedProcessId'; - $request = $this->importContactsRequest($requestContactImport); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'importContacts' - * - * @param \SendinBlue\Client\Model\RequestContactImport $requestContactImport Values to import contacts in Sendinblue. To know more about the expected format, please have a look at ``https://help.sendinblue.com/hc/en-us/articles/209499265-Build-contacts-lists-for-your-email-marketing-campaigns`` (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function importContactsRequest($requestContactImport) - { - // verify the required parameter 'requestContactImport' is set - if ($requestContactImport === null || \is_array($requestContactImport) && \count($requestContactImport) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $requestContactImport when calling importContacts'); - } - $resourcePath = '/contacts/import'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($requestContactImport)) { - $_tempBody = $requestContactImport; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation removeContactFromList - * - * Delete a contact from a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\RemoveContactFromList $contactEmails Emails adresses of the contact (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\PostContactInfo - */ - public function removeContactFromList($listId, $contactEmails) - { - list($response) = $this->removeContactFromListWithHttpInfo($listId, $contactEmails); - return $response; - } - /** - * Operation removeContactFromListWithHttpInfo - * - * Delete a contact from a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\RemoveContactFromList $contactEmails Emails adresses of the contact (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\PostContactInfo, HTTP status code, HTTP response headers (array of strings) - */ - public function removeContactFromListWithHttpInfo($listId, $contactEmails) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfo'; - $request = $this->removeContactFromListRequest($listId, $contactEmails); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfo', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation removeContactFromListAsync - * - * Delete a contact from a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\RemoveContactFromList $contactEmails Emails adresses of the contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function removeContactFromListAsync($listId, $contactEmails) - { - return $this->removeContactFromListAsyncWithHttpInfo($listId, $contactEmails)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation removeContactFromListAsyncWithHttpInfo - * - * Delete a contact from a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\RemoveContactFromList $contactEmails Emails adresses of the contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function removeContactFromListAsyncWithHttpInfo($listId, $contactEmails) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfo'; - $request = $this->removeContactFromListRequest($listId, $contactEmails); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'removeContactFromList' - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\RemoveContactFromList $contactEmails Emails adresses of the contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function removeContactFromListRequest($listId, $contactEmails) - { - // verify the required parameter 'listId' is set - if ($listId === null || \is_array($listId) && \count($listId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $listId when calling removeContactFromList'); - } - // verify the required parameter 'contactEmails' is set - if ($contactEmails === null || \is_array($contactEmails) && \count($contactEmails) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $contactEmails when calling removeContactFromList'); - } - $resourcePath = '/contacts/lists/{listId}/contacts/remove'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($listId !== null) { - $resourcePath = \str_replace('{' . 'listId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($listId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($contactEmails)) { - $_tempBody = $contactEmails; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation requestContactExport - * - * Export contacts - * - * @param \SendinBlue\Client\Model\RequestContactExport $requestContactExport Values to request a contact export (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreatedProcessId - */ - public function requestContactExport($requestContactExport) - { - list($response) = $this->requestContactExportWithHttpInfo($requestContactExport); - return $response; - } - /** - * Operation requestContactExportWithHttpInfo - * - * Export contacts - * - * @param \SendinBlue\Client\Model\RequestContactExport $requestContactExport Values to request a contact export (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreatedProcessId, HTTP status code, HTTP response headers (array of strings) - */ - public function requestContactExportWithHttpInfo($requestContactExport) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreatedProcessId'; - $request = $this->requestContactExportRequest($requestContactExport); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 202: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreatedProcessId', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation requestContactExportAsync - * - * Export contacts - * - * @param \SendinBlue\Client\Model\RequestContactExport $requestContactExport Values to request a contact export (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function requestContactExportAsync($requestContactExport) - { - return $this->requestContactExportAsyncWithHttpInfo($requestContactExport)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation requestContactExportAsyncWithHttpInfo - * - * Export contacts - * - * @param \SendinBlue\Client\Model\RequestContactExport $requestContactExport Values to request a contact export (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function requestContactExportAsyncWithHttpInfo($requestContactExport) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreatedProcessId'; - $request = $this->requestContactExportRequest($requestContactExport); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'requestContactExport' - * - * @param \SendinBlue\Client\Model\RequestContactExport $requestContactExport Values to request a contact export (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function requestContactExportRequest($requestContactExport) - { - // verify the required parameter 'requestContactExport' is set - if ($requestContactExport === null || \is_array($requestContactExport) && \count($requestContactExport) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $requestContactExport when calling requestContactExport'); - } - $resourcePath = '/contacts/export'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($requestContactExport)) { - $_tempBody = $requestContactExport; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateAttribute - * - * Update contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * @param \SendinBlue\Client\Model\UpdateAttribute $updateAttribute Values to update an attribute (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateAttribute($attributeCategory, $attributeName, $updateAttribute) - { - $this->updateAttributeWithHttpInfo($attributeCategory, $attributeName, $updateAttribute); - } - /** - * Operation updateAttributeWithHttpInfo - * - * Update contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * @param \SendinBlue\Client\Model\UpdateAttribute $updateAttribute Values to update an attribute (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateAttributeWithHttpInfo($attributeCategory, $attributeName, $updateAttribute) - { - $returnType = ''; - $request = $this->updateAttributeRequest($attributeCategory, $attributeName, $updateAttribute); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateAttributeAsync - * - * Update contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * @param \SendinBlue\Client\Model\UpdateAttribute $updateAttribute Values to update an attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateAttributeAsync($attributeCategory, $attributeName, $updateAttribute) - { - return $this->updateAttributeAsyncWithHttpInfo($attributeCategory, $attributeName, $updateAttribute)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateAttributeAsyncWithHttpInfo - * - * Update contact attribute - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * @param \SendinBlue\Client\Model\UpdateAttribute $updateAttribute Values to update an attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateAttributeAsyncWithHttpInfo($attributeCategory, $attributeName, $updateAttribute) - { - $returnType = ''; - $request = $this->updateAttributeRequest($attributeCategory, $attributeName, $updateAttribute); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateAttribute' - * - * @param string $attributeCategory Category of the attribute (required) - * @param string $attributeName Name of the existing attribute (required) - * @param \SendinBlue\Client\Model\UpdateAttribute $updateAttribute Values to update an attribute (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateAttributeRequest($attributeCategory, $attributeName, $updateAttribute) - { - // verify the required parameter 'attributeCategory' is set - if ($attributeCategory === null || \is_array($attributeCategory) && \count($attributeCategory) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $attributeCategory when calling updateAttribute'); - } - // verify the required parameter 'attributeName' is set - if ($attributeName === null || \is_array($attributeName) && \count($attributeName) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $attributeName when calling updateAttribute'); - } - // verify the required parameter 'updateAttribute' is set - if ($updateAttribute === null || \is_array($updateAttribute) && \count($updateAttribute) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $updateAttribute when calling updateAttribute'); - } - $resourcePath = '/contacts/attributes/{attributeCategory}/{attributeName}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($attributeCategory !== null) { - $resourcePath = \str_replace('{' . 'attributeCategory' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($attributeCategory), $resourcePath); - } - // path params - if ($attributeName !== null) { - $resourcePath = \str_replace('{' . 'attributeName' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($attributeName), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($updateAttribute)) { - $_tempBody = $updateAttribute; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateContact - * - * Update a contact - * - * @param string $email Email (urlencoded) of the contact (required) - * @param \SendinBlue\Client\Model\UpdateContact $updateContact Values to update a contact (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateContact($email, $updateContact) - { - $this->updateContactWithHttpInfo($email, $updateContact); - } - /** - * Operation updateContactWithHttpInfo - * - * Update a contact - * - * @param string $email Email (urlencoded) of the contact (required) - * @param \SendinBlue\Client\Model\UpdateContact $updateContact Values to update a contact (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateContactWithHttpInfo($email, $updateContact) - { - $returnType = ''; - $request = $this->updateContactRequest($email, $updateContact); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateContactAsync - * - * Update a contact - * - * @param string $email Email (urlencoded) of the contact (required) - * @param \SendinBlue\Client\Model\UpdateContact $updateContact Values to update a contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateContactAsync($email, $updateContact) - { - return $this->updateContactAsyncWithHttpInfo($email, $updateContact)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateContactAsyncWithHttpInfo - * - * Update a contact - * - * @param string $email Email (urlencoded) of the contact (required) - * @param \SendinBlue\Client\Model\UpdateContact $updateContact Values to update a contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateContactAsyncWithHttpInfo($email, $updateContact) - { - $returnType = ''; - $request = $this->updateContactRequest($email, $updateContact); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateContact' - * - * @param string $email Email (urlencoded) of the contact (required) - * @param \SendinBlue\Client\Model\UpdateContact $updateContact Values to update a contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateContactRequest($email, $updateContact) - { - // verify the required parameter 'email' is set - if ($email === null || \is_array($email) && \count($email) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $email when calling updateContact'); - } - // verify the required parameter 'updateContact' is set - if ($updateContact === null || \is_array($updateContact) && \count($updateContact) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $updateContact when calling updateContact'); - } - $resourcePath = '/contacts/{email}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($email !== null) { - $resourcePath = \str_replace('{' . 'email' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($email), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($updateContact)) { - $_tempBody = $updateContact; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateFolder - * - * Update a folder - * - * @param int $folderId Id of the folder (required) - * @param \SendinBlue\Client\Model\CreateUpdateFolder $updateFolder Name of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateFolder($folderId, $updateFolder) - { - $this->updateFolderWithHttpInfo($folderId, $updateFolder); - } - /** - * Operation updateFolderWithHttpInfo - * - * Update a folder - * - * @param int $folderId Id of the folder (required) - * @param \SendinBlue\Client\Model\CreateUpdateFolder $updateFolder Name of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateFolderWithHttpInfo($folderId, $updateFolder) - { - $returnType = ''; - $request = $this->updateFolderRequest($folderId, $updateFolder); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateFolderAsync - * - * Update a folder - * - * @param int $folderId Id of the folder (required) - * @param \SendinBlue\Client\Model\CreateUpdateFolder $updateFolder Name of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateFolderAsync($folderId, $updateFolder) - { - return $this->updateFolderAsyncWithHttpInfo($folderId, $updateFolder)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateFolderAsyncWithHttpInfo - * - * Update a folder - * - * @param int $folderId Id of the folder (required) - * @param \SendinBlue\Client\Model\CreateUpdateFolder $updateFolder Name of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateFolderAsyncWithHttpInfo($folderId, $updateFolder) - { - $returnType = ''; - $request = $this->updateFolderRequest($folderId, $updateFolder); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateFolder' - * - * @param int $folderId Id of the folder (required) - * @param \SendinBlue\Client\Model\CreateUpdateFolder $updateFolder Name of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateFolderRequest($folderId, $updateFolder) - { - // verify the required parameter 'folderId' is set - if ($folderId === null || \is_array($folderId) && \count($folderId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $folderId when calling updateFolder'); - } - // verify the required parameter 'updateFolder' is set - if ($updateFolder === null || \is_array($updateFolder) && \count($updateFolder) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $updateFolder when calling updateFolder'); - } - $resourcePath = '/contacts/folders/{folderId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($folderId !== null) { - $resourcePath = \str_replace('{' . 'folderId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($folderId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($updateFolder)) { - $_tempBody = $updateFolder; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateList - * - * Update a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\UpdateList $updateList Values to update a list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateList($listId, $updateList) - { - $this->updateListWithHttpInfo($listId, $updateList); - } - /** - * Operation updateListWithHttpInfo - * - * Update a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\UpdateList $updateList Values to update a list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateListWithHttpInfo($listId, $updateList) - { - $returnType = ''; - $request = $this->updateListRequest($listId, $updateList); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateListAsync - * - * Update a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\UpdateList $updateList Values to update a list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateListAsync($listId, $updateList) - { - return $this->updateListAsyncWithHttpInfo($listId, $updateList)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateListAsyncWithHttpInfo - * - * Update a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\UpdateList $updateList Values to update a list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateListAsyncWithHttpInfo($listId, $updateList) - { - $returnType = ''; - $request = $this->updateListRequest($listId, $updateList); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateList' - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\UpdateList $updateList Values to update a list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateListRequest($listId, $updateList) - { - // verify the required parameter 'listId' is set - if ($listId === null || \is_array($listId) && \count($listId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $listId when calling updateList'); - } - // verify the required parameter 'updateList' is set - if ($updateList === null || \is_array($updateList) && \count($updateList) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $updateList when calling updateList'); - } - $resourcePath = '/contacts/lists/{listId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($listId !== null) { - $resourcePath = \str_replace('{' . 'listId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($listId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($updateList)) { - $_tempBody = $updateList; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Create http client option - * - * @throws \RuntimeException on file opening failure - * @return array of http client options - */ - protected function createHttpClientOption() - { - $options = []; - if ($this->config->getDebug()) { - $options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG] = \fopen($this->config->getDebugFile(), 'a'); - if (!$options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG]) { - throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile()); - } - } - return $options; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/EmailCampaignsApi.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/EmailCampaignsApi.php deleted file mode 100644 index 811f5a1..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/EmailCampaignsApi.php +++ /dev/null @@ -1,2576 +0,0 @@ -client = $client ?: new \WPMailSMTP\Vendor\GuzzleHttp\Client(); - $this->config = $config ?: new \WPMailSMTP\Vendor\SendinBlue\Client\Configuration(); - $this->headerSelector = $selector ?: new \WPMailSMTP\Vendor\SendinBlue\Client\HeaderSelector(); - } - /** - * @return Configuration - */ - public function getConfig() - { - return $this->config; - } - /** - * Operation createEmailCampaign - * - * Create an email campaign - * - * @param \SendinBlue\Client\Model\CreateEmailCampaign $emailCampaigns Values to create a campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreateModel - */ - public function createEmailCampaign($emailCampaigns) - { - list($response) = $this->createEmailCampaignWithHttpInfo($emailCampaigns); - return $response; - } - /** - * Operation createEmailCampaignWithHttpInfo - * - * Create an email campaign - * - * @param \SendinBlue\Client\Model\CreateEmailCampaign $emailCampaigns Values to create a campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreateModel, HTTP status code, HTTP response headers (array of strings) - */ - public function createEmailCampaignWithHttpInfo($emailCampaigns) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createEmailCampaignRequest($emailCampaigns); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation createEmailCampaignAsync - * - * Create an email campaign - * - * @param \SendinBlue\Client\Model\CreateEmailCampaign $emailCampaigns Values to create a campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createEmailCampaignAsync($emailCampaigns) - { - return $this->createEmailCampaignAsyncWithHttpInfo($emailCampaigns)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation createEmailCampaignAsyncWithHttpInfo - * - * Create an email campaign - * - * @param \SendinBlue\Client\Model\CreateEmailCampaign $emailCampaigns Values to create a campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createEmailCampaignAsyncWithHttpInfo($emailCampaigns) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createEmailCampaignRequest($emailCampaigns); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'createEmailCampaign' - * - * @param \SendinBlue\Client\Model\CreateEmailCampaign $emailCampaigns Values to create a campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function createEmailCampaignRequest($emailCampaigns) - { - // verify the required parameter 'emailCampaigns' is set - if ($emailCampaigns === null || \is_array($emailCampaigns) && \count($emailCampaigns) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $emailCampaigns when calling createEmailCampaign'); - } - $resourcePath = '/emailCampaigns'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($emailCampaigns)) { - $_tempBody = $emailCampaigns; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation deleteEmailCampaign - * - * Delete an email campaign - * - * @param int $campaignId id of the campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function deleteEmailCampaign($campaignId) - { - $this->deleteEmailCampaignWithHttpInfo($campaignId); - } - /** - * Operation deleteEmailCampaignWithHttpInfo - * - * Delete an email campaign - * - * @param int $campaignId id of the campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function deleteEmailCampaignWithHttpInfo($campaignId) - { - $returnType = ''; - $request = $this->deleteEmailCampaignRequest($campaignId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation deleteEmailCampaignAsync - * - * Delete an email campaign - * - * @param int $campaignId id of the campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteEmailCampaignAsync($campaignId) - { - return $this->deleteEmailCampaignAsyncWithHttpInfo($campaignId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation deleteEmailCampaignAsyncWithHttpInfo - * - * Delete an email campaign - * - * @param int $campaignId id of the campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteEmailCampaignAsyncWithHttpInfo($campaignId) - { - $returnType = ''; - $request = $this->deleteEmailCampaignRequest($campaignId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'deleteEmailCampaign' - * - * @param int $campaignId id of the campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function deleteEmailCampaignRequest($campaignId) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling deleteEmailCampaign'); - } - $resourcePath = '/emailCampaigns/{campaignId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation emailExportRecipients - * - * Export the recipients of an email campaign - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\EmailExportRecipients $recipientExport Values to send for a recipient export request (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreatedProcessId - */ - public function emailExportRecipients($campaignId, $recipientExport = null) - { - list($response) = $this->emailExportRecipientsWithHttpInfo($campaignId, $recipientExport); - return $response; - } - /** - * Operation emailExportRecipientsWithHttpInfo - * - * Export the recipients of an email campaign - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\EmailExportRecipients $recipientExport Values to send for a recipient export request (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreatedProcessId, HTTP status code, HTTP response headers (array of strings) - */ - public function emailExportRecipientsWithHttpInfo($campaignId, $recipientExport = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreatedProcessId'; - $request = $this->emailExportRecipientsRequest($campaignId, $recipientExport); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 202: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreatedProcessId', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation emailExportRecipientsAsync - * - * Export the recipients of an email campaign - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\EmailExportRecipients $recipientExport Values to send for a recipient export request (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function emailExportRecipientsAsync($campaignId, $recipientExport = null) - { - return $this->emailExportRecipientsAsyncWithHttpInfo($campaignId, $recipientExport)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation emailExportRecipientsAsyncWithHttpInfo - * - * Export the recipients of an email campaign - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\EmailExportRecipients $recipientExport Values to send for a recipient export request (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function emailExportRecipientsAsyncWithHttpInfo($campaignId, $recipientExport = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreatedProcessId'; - $request = $this->emailExportRecipientsRequest($campaignId, $recipientExport); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'emailExportRecipients' - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\EmailExportRecipients $recipientExport Values to send for a recipient export request (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function emailExportRecipientsRequest($campaignId, $recipientExport = null) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling emailExportRecipients'); - } - $resourcePath = '/emailCampaigns/{campaignId}/exportRecipients'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($recipientExport)) { - $_tempBody = $recipientExport; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getAbTestCampaignResult - * - * Get an A/B test email campaign results - * - * @param int $campaignId Id of the A/B test campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\AbTestCampaignResult - */ - public function getAbTestCampaignResult($campaignId) - { - list($response) = $this->getAbTestCampaignResultWithHttpInfo($campaignId); - return $response; - } - /** - * Operation getAbTestCampaignResultWithHttpInfo - * - * Get an A/B test email campaign results - * - * @param int $campaignId Id of the A/B test campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\AbTestCampaignResult, HTTP status code, HTTP response headers (array of strings) - */ - public function getAbTestCampaignResultWithHttpInfo($campaignId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\AbTestCampaignResult'; - $request = $this->getAbTestCampaignResultRequest($campaignId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\AbTestCampaignResult', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 405: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getAbTestCampaignResultAsync - * - * Get an A/B test email campaign results - * - * @param int $campaignId Id of the A/B test campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getAbTestCampaignResultAsync($campaignId) - { - return $this->getAbTestCampaignResultAsyncWithHttpInfo($campaignId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getAbTestCampaignResultAsyncWithHttpInfo - * - * Get an A/B test email campaign results - * - * @param int $campaignId Id of the A/B test campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getAbTestCampaignResultAsyncWithHttpInfo($campaignId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\AbTestCampaignResult'; - $request = $this->getAbTestCampaignResultRequest($campaignId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getAbTestCampaignResult' - * - * @param int $campaignId Id of the A/B test campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getAbTestCampaignResultRequest($campaignId) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling getAbTestCampaignResult'); - } - $resourcePath = '/emailCampaigns/{campaignId}/abTestCampaignResult'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getEmailCampaign - * - * Get an email campaign report - * - * @param int $campaignId Id of the campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetEmailCampaign - */ - public function getEmailCampaign($campaignId) - { - list($response) = $this->getEmailCampaignWithHttpInfo($campaignId); - return $response; - } - /** - * Operation getEmailCampaignWithHttpInfo - * - * Get an email campaign report - * - * @param int $campaignId Id of the campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetEmailCampaign, HTTP status code, HTTP response headers (array of strings) - */ - public function getEmailCampaignWithHttpInfo($campaignId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailCampaign'; - $request = $this->getEmailCampaignRequest($campaignId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailCampaign', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getEmailCampaignAsync - * - * Get an email campaign report - * - * @param int $campaignId Id of the campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getEmailCampaignAsync($campaignId) - { - return $this->getEmailCampaignAsyncWithHttpInfo($campaignId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getEmailCampaignAsyncWithHttpInfo - * - * Get an email campaign report - * - * @param int $campaignId Id of the campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getEmailCampaignAsyncWithHttpInfo($campaignId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailCampaign'; - $request = $this->getEmailCampaignRequest($campaignId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getEmailCampaign' - * - * @param int $campaignId Id of the campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getEmailCampaignRequest($campaignId) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling getEmailCampaign'); - } - $resourcePath = '/emailCampaigns/{campaignId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getEmailCampaigns - * - * Return all your created email campaigns - * - * @param string $type Filter on the type of the campaigns (optional) - * @param string $status Filter on the status of the campaign (optional) - * @param \DateTime $startDate Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param int $limit Number of documents per page (optional, default to 500) - * @param int $offset Index of the first document in the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetEmailCampaigns - */ - public function getEmailCampaigns($type = null, $status = null, $startDate = null, $endDate = null, $limit = '500', $offset = '0') - { - list($response) = $this->getEmailCampaignsWithHttpInfo($type, $status, $startDate, $endDate, $limit, $offset); - return $response; - } - /** - * Operation getEmailCampaignsWithHttpInfo - * - * Return all your created email campaigns - * - * @param string $type Filter on the type of the campaigns (optional) - * @param string $status Filter on the status of the campaign (optional) - * @param \DateTime $startDate Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param int $limit Number of documents per page (optional, default to 500) - * @param int $offset Index of the first document in the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetEmailCampaigns, HTTP status code, HTTP response headers (array of strings) - */ - public function getEmailCampaignsWithHttpInfo($type = null, $status = null, $startDate = null, $endDate = null, $limit = '500', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailCampaigns'; - $request = $this->getEmailCampaignsRequest($type, $status, $startDate, $endDate, $limit, $offset); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailCampaigns', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getEmailCampaignsAsync - * - * Return all your created email campaigns - * - * @param string $type Filter on the type of the campaigns (optional) - * @param string $status Filter on the status of the campaign (optional) - * @param \DateTime $startDate Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param int $limit Number of documents per page (optional, default to 500) - * @param int $offset Index of the first document in the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getEmailCampaignsAsync($type = null, $status = null, $startDate = null, $endDate = null, $limit = '500', $offset = '0') - { - return $this->getEmailCampaignsAsyncWithHttpInfo($type, $status, $startDate, $endDate, $limit, $offset)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getEmailCampaignsAsyncWithHttpInfo - * - * Return all your created email campaigns - * - * @param string $type Filter on the type of the campaigns (optional) - * @param string $status Filter on the status of the campaign (optional) - * @param \DateTime $startDate Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param int $limit Number of documents per page (optional, default to 500) - * @param int $offset Index of the first document in the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getEmailCampaignsAsyncWithHttpInfo($type = null, $status = null, $startDate = null, $endDate = null, $limit = '500', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailCampaigns'; - $request = $this->getEmailCampaignsRequest($type, $status, $startDate, $endDate, $limit, $offset); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getEmailCampaigns' - * - * @param string $type Filter on the type of the campaigns (optional) - * @param string $status Filter on the status of the campaign (optional) - * @param \DateTime $startDate Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param int $limit Number of documents per page (optional, default to 500) - * @param int $offset Index of the first document in the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getEmailCampaignsRequest($type = null, $status = null, $startDate = null, $endDate = null, $limit = '500', $offset = '0') - { - if ($limit !== null && $limit > 1000) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling EmailCampaignsApi.getEmailCampaigns, must be smaller than or equal to 1000.'); - } - $resourcePath = '/emailCampaigns'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($type !== null) { - $queryParams['type'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($type); - } - // query params - if ($status !== null) { - $queryParams['status'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($status); - } - // query params - if ($startDate !== null) { - $queryParams['startDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($startDate); - } - // query params - if ($endDate !== null) { - $queryParams['endDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($endDate); - } - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getSharedTemplateUrl - * - * Get a shared template url - * - * @param int $campaignId Id of the campaign or template (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetSharedTemplateUrl - */ - public function getSharedTemplateUrl($campaignId) - { - list($response) = $this->getSharedTemplateUrlWithHttpInfo($campaignId); - return $response; - } - /** - * Operation getSharedTemplateUrlWithHttpInfo - * - * Get a shared template url - * - * @param int $campaignId Id of the campaign or template (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetSharedTemplateUrl, HTTP status code, HTTP response headers (array of strings) - */ - public function getSharedTemplateUrlWithHttpInfo($campaignId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSharedTemplateUrl'; - $request = $this->getSharedTemplateUrlRequest($campaignId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSharedTemplateUrl', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getSharedTemplateUrlAsync - * - * Get a shared template url - * - * @param int $campaignId Id of the campaign or template (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSharedTemplateUrlAsync($campaignId) - { - return $this->getSharedTemplateUrlAsyncWithHttpInfo($campaignId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getSharedTemplateUrlAsyncWithHttpInfo - * - * Get a shared template url - * - * @param int $campaignId Id of the campaign or template (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSharedTemplateUrlAsyncWithHttpInfo($campaignId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSharedTemplateUrl'; - $request = $this->getSharedTemplateUrlRequest($campaignId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getSharedTemplateUrl' - * - * @param int $campaignId Id of the campaign or template (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getSharedTemplateUrlRequest($campaignId) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling getSharedTemplateUrl'); - } - $resourcePath = '/emailCampaigns/{campaignId}/sharedUrl'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation sendEmailCampaignNow - * - * Send an email campaign immediately, based on campaignId - * - * @param int $campaignId Id of the campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function sendEmailCampaignNow($campaignId) - { - $this->sendEmailCampaignNowWithHttpInfo($campaignId); - } - /** - * Operation sendEmailCampaignNowWithHttpInfo - * - * Send an email campaign immediately, based on campaignId - * - * @param int $campaignId Id of the campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function sendEmailCampaignNowWithHttpInfo($campaignId) - { - $returnType = ''; - $request = $this->sendEmailCampaignNowRequest($campaignId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 402: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation sendEmailCampaignNowAsync - * - * Send an email campaign immediately, based on campaignId - * - * @param int $campaignId Id of the campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendEmailCampaignNowAsync($campaignId) - { - return $this->sendEmailCampaignNowAsyncWithHttpInfo($campaignId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation sendEmailCampaignNowAsyncWithHttpInfo - * - * Send an email campaign immediately, based on campaignId - * - * @param int $campaignId Id of the campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendEmailCampaignNowAsyncWithHttpInfo($campaignId) - { - $returnType = ''; - $request = $this->sendEmailCampaignNowRequest($campaignId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'sendEmailCampaignNow' - * - * @param int $campaignId Id of the campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function sendEmailCampaignNowRequest($campaignId) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling sendEmailCampaignNow'); - } - $resourcePath = '/emailCampaigns/{campaignId}/sendNow'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation sendReport - * - * Send the report of a campaign - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\SendReport $sendReport Values for send a report (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function sendReport($campaignId, $sendReport) - { - $this->sendReportWithHttpInfo($campaignId, $sendReport); - } - /** - * Operation sendReportWithHttpInfo - * - * Send the report of a campaign - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\SendReport $sendReport Values for send a report (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function sendReportWithHttpInfo($campaignId, $sendReport) - { - $returnType = ''; - $request = $this->sendReportRequest($campaignId, $sendReport); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation sendReportAsync - * - * Send the report of a campaign - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\SendReport $sendReport Values for send a report (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendReportAsync($campaignId, $sendReport) - { - return $this->sendReportAsyncWithHttpInfo($campaignId, $sendReport)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation sendReportAsyncWithHttpInfo - * - * Send the report of a campaign - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\SendReport $sendReport Values for send a report (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendReportAsyncWithHttpInfo($campaignId, $sendReport) - { - $returnType = ''; - $request = $this->sendReportRequest($campaignId, $sendReport); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'sendReport' - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\SendReport $sendReport Values for send a report (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function sendReportRequest($campaignId, $sendReport) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling sendReport'); - } - // verify the required parameter 'sendReport' is set - if ($sendReport === null || \is_array($sendReport) && \count($sendReport) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $sendReport when calling sendReport'); - } - $resourcePath = '/emailCampaigns/{campaignId}/sendReport'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($sendReport)) { - $_tempBody = $sendReport; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation sendTestEmail - * - * Send an email campaign to your test list - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\SendTestEmail $emailTo emailTo (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function sendTestEmail($campaignId, $emailTo) - { - $this->sendTestEmailWithHttpInfo($campaignId, $emailTo); - } - /** - * Operation sendTestEmailWithHttpInfo - * - * Send an email campaign to your test list - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\SendTestEmail $emailTo (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function sendTestEmailWithHttpInfo($campaignId, $emailTo) - { - $returnType = ''; - $request = $this->sendTestEmailRequest($campaignId, $emailTo); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostSendFailed', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation sendTestEmailAsync - * - * Send an email campaign to your test list - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\SendTestEmail $emailTo (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendTestEmailAsync($campaignId, $emailTo) - { - return $this->sendTestEmailAsyncWithHttpInfo($campaignId, $emailTo)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation sendTestEmailAsyncWithHttpInfo - * - * Send an email campaign to your test list - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\SendTestEmail $emailTo (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendTestEmailAsyncWithHttpInfo($campaignId, $emailTo) - { - $returnType = ''; - $request = $this->sendTestEmailRequest($campaignId, $emailTo); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'sendTestEmail' - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\SendTestEmail $emailTo (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function sendTestEmailRequest($campaignId, $emailTo) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling sendTestEmail'); - } - // verify the required parameter 'emailTo' is set - if ($emailTo === null || \is_array($emailTo) && \count($emailTo) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $emailTo when calling sendTestEmail'); - } - $resourcePath = '/emailCampaigns/{campaignId}/sendTest'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($emailTo)) { - $_tempBody = $emailTo; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateCampaignStatus - * - * Update an email campaign status - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\UpdateCampaignStatus $status Status of the campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateCampaignStatus($campaignId, $status) - { - $this->updateCampaignStatusWithHttpInfo($campaignId, $status); - } - /** - * Operation updateCampaignStatusWithHttpInfo - * - * Update an email campaign status - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\UpdateCampaignStatus $status Status of the campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateCampaignStatusWithHttpInfo($campaignId, $status) - { - $returnType = ''; - $request = $this->updateCampaignStatusRequest($campaignId, $status); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateCampaignStatusAsync - * - * Update an email campaign status - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\UpdateCampaignStatus $status Status of the campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateCampaignStatusAsync($campaignId, $status) - { - return $this->updateCampaignStatusAsyncWithHttpInfo($campaignId, $status)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateCampaignStatusAsyncWithHttpInfo - * - * Update an email campaign status - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\UpdateCampaignStatus $status Status of the campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateCampaignStatusAsyncWithHttpInfo($campaignId, $status) - { - $returnType = ''; - $request = $this->updateCampaignStatusRequest($campaignId, $status); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateCampaignStatus' - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\UpdateCampaignStatus $status Status of the campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateCampaignStatusRequest($campaignId, $status) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling updateCampaignStatus'); - } - // verify the required parameter 'status' is set - if ($status === null || \is_array($status) && \count($status) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $status when calling updateCampaignStatus'); - } - $resourcePath = '/emailCampaigns/{campaignId}/status'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($status)) { - $_tempBody = $status; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateEmailCampaign - * - * Update an email campaign - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\UpdateEmailCampaign $emailCampaign Values to update a campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateEmailCampaign($campaignId, $emailCampaign) - { - $this->updateEmailCampaignWithHttpInfo($campaignId, $emailCampaign); - } - /** - * Operation updateEmailCampaignWithHttpInfo - * - * Update an email campaign - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\UpdateEmailCampaign $emailCampaign Values to update a campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateEmailCampaignWithHttpInfo($campaignId, $emailCampaign) - { - $returnType = ''; - $request = $this->updateEmailCampaignRequest($campaignId, $emailCampaign); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateEmailCampaignAsync - * - * Update an email campaign - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\UpdateEmailCampaign $emailCampaign Values to update a campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateEmailCampaignAsync($campaignId, $emailCampaign) - { - return $this->updateEmailCampaignAsyncWithHttpInfo($campaignId, $emailCampaign)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateEmailCampaignAsyncWithHttpInfo - * - * Update an email campaign - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\UpdateEmailCampaign $emailCampaign Values to update a campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateEmailCampaignAsyncWithHttpInfo($campaignId, $emailCampaign) - { - $returnType = ''; - $request = $this->updateEmailCampaignRequest($campaignId, $emailCampaign); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateEmailCampaign' - * - * @param int $campaignId Id of the campaign (required) - * @param \SendinBlue\Client\Model\UpdateEmailCampaign $emailCampaign Values to update a campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateEmailCampaignRequest($campaignId, $emailCampaign) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling updateEmailCampaign'); - } - // verify the required parameter 'emailCampaign' is set - if ($emailCampaign === null || \is_array($emailCampaign) && \count($emailCampaign) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $emailCampaign when calling updateEmailCampaign'); - } - $resourcePath = '/emailCampaigns/{campaignId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($emailCampaign)) { - $_tempBody = $emailCampaign; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation uploadImageToGallery - * - * Upload an image to your account's image gallery - * - * @param \SendinBlue\Client\Model\UploadImageToGallery $uploadImage Parameters to upload an image (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function uploadImageToGallery($uploadImage) - { - $this->uploadImageToGalleryWithHttpInfo($uploadImage); - } - /** - * Operation uploadImageToGalleryWithHttpInfo - * - * Upload an image to your account's image gallery - * - * @param \SendinBlue\Client\Model\UploadImageToGallery $uploadImage Parameters to upload an image (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function uploadImageToGalleryWithHttpInfo($uploadImage) - { - $returnType = ''; - $request = $this->uploadImageToGalleryRequest($uploadImage); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation uploadImageToGalleryAsync - * - * Upload an image to your account's image gallery - * - * @param \SendinBlue\Client\Model\UploadImageToGallery $uploadImage Parameters to upload an image (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function uploadImageToGalleryAsync($uploadImage) - { - return $this->uploadImageToGalleryAsyncWithHttpInfo($uploadImage)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation uploadImageToGalleryAsyncWithHttpInfo - * - * Upload an image to your account's image gallery - * - * @param \SendinBlue\Client\Model\UploadImageToGallery $uploadImage Parameters to upload an image (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function uploadImageToGalleryAsyncWithHttpInfo($uploadImage) - { - $returnType = ''; - $request = $this->uploadImageToGalleryRequest($uploadImage); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'uploadImageToGallery' - * - * @param \SendinBlue\Client\Model\UploadImageToGallery $uploadImage Parameters to upload an image (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function uploadImageToGalleryRequest($uploadImage) - { - // verify the required parameter 'uploadImage' is set - if ($uploadImage === null || \is_array($uploadImage) && \count($uploadImage) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $uploadImage when calling uploadImageToGallery'); - } - $resourcePath = '/emailCampaigns/images'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($uploadImage)) { - $_tempBody = $uploadImage; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Create http client option - * - * @throws \RuntimeException on file opening failure - * @return array of http client options - */ - protected function createHttpClientOption() - { - $options = []; - if ($this->config->getDebug()) { - $options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG] = \fopen($this->config->getDebugFile(), 'a'); - if (!$options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG]) { - throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile()); - } - } - return $options; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/FoldersApi.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/FoldersApi.php deleted file mode 100644 index b406a83..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/FoldersApi.php +++ /dev/null @@ -1,1268 +0,0 @@ -client = $client ?: new \WPMailSMTP\Vendor\GuzzleHttp\Client(); - $this->config = $config ?: new \WPMailSMTP\Vendor\SendinBlue\Client\Configuration(); - $this->headerSelector = $selector ?: new \WPMailSMTP\Vendor\SendinBlue\Client\HeaderSelector(); - } - /** - * @return Configuration - */ - public function getConfig() - { - return $this->config; - } - /** - * Operation createFolder - * - * Create a folder - * - * @param \SendinBlue\Client\Model\CreateUpdateFolder $createFolder Name of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreateModel - */ - public function createFolder($createFolder) - { - list($response) = $this->createFolderWithHttpInfo($createFolder); - return $response; - } - /** - * Operation createFolderWithHttpInfo - * - * Create a folder - * - * @param \SendinBlue\Client\Model\CreateUpdateFolder $createFolder Name of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreateModel, HTTP status code, HTTP response headers (array of strings) - */ - public function createFolderWithHttpInfo($createFolder) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createFolderRequest($createFolder); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation createFolderAsync - * - * Create a folder - * - * @param \SendinBlue\Client\Model\CreateUpdateFolder $createFolder Name of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createFolderAsync($createFolder) - { - return $this->createFolderAsyncWithHttpInfo($createFolder)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation createFolderAsyncWithHttpInfo - * - * Create a folder - * - * @param \SendinBlue\Client\Model\CreateUpdateFolder $createFolder Name of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createFolderAsyncWithHttpInfo($createFolder) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createFolderRequest($createFolder); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'createFolder' - * - * @param \SendinBlue\Client\Model\CreateUpdateFolder $createFolder Name of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function createFolderRequest($createFolder) - { - // verify the required parameter 'createFolder' is set - if ($createFolder === null || \is_array($createFolder) && \count($createFolder) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $createFolder when calling createFolder'); - } - $resourcePath = '/contacts/folders'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($createFolder)) { - $_tempBody = $createFolder; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation deleteFolder - * - * Delete a folder (and all its lists) - * - * @param int $folderId Id of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function deleteFolder($folderId) - { - $this->deleteFolderWithHttpInfo($folderId); - } - /** - * Operation deleteFolderWithHttpInfo - * - * Delete a folder (and all its lists) - * - * @param int $folderId Id of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function deleteFolderWithHttpInfo($folderId) - { - $returnType = ''; - $request = $this->deleteFolderRequest($folderId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation deleteFolderAsync - * - * Delete a folder (and all its lists) - * - * @param int $folderId Id of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteFolderAsync($folderId) - { - return $this->deleteFolderAsyncWithHttpInfo($folderId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation deleteFolderAsyncWithHttpInfo - * - * Delete a folder (and all its lists) - * - * @param int $folderId Id of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteFolderAsyncWithHttpInfo($folderId) - { - $returnType = ''; - $request = $this->deleteFolderRequest($folderId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'deleteFolder' - * - * @param int $folderId Id of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function deleteFolderRequest($folderId) - { - // verify the required parameter 'folderId' is set - if ($folderId === null || \is_array($folderId) && \count($folderId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $folderId when calling deleteFolder'); - } - $resourcePath = '/contacts/folders/{folderId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($folderId !== null) { - $resourcePath = \str_replace('{' . 'folderId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($folderId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getFolder - * - * Returns a folder's details - * - * @param int $folderId id of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetFolder - */ - public function getFolder($folderId) - { - list($response) = $this->getFolderWithHttpInfo($folderId); - return $response; - } - /** - * Operation getFolderWithHttpInfo - * - * Returns a folder's details - * - * @param int $folderId id of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetFolder, HTTP status code, HTTP response headers (array of strings) - */ - public function getFolderWithHttpInfo($folderId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolder'; - $request = $this->getFolderRequest($folderId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolder', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getFolderAsync - * - * Returns a folder's details - * - * @param int $folderId id of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getFolderAsync($folderId) - { - return $this->getFolderAsyncWithHttpInfo($folderId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getFolderAsyncWithHttpInfo - * - * Returns a folder's details - * - * @param int $folderId id of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getFolderAsyncWithHttpInfo($folderId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolder'; - $request = $this->getFolderRequest($folderId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getFolder' - * - * @param int $folderId id of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getFolderRequest($folderId) - { - // verify the required parameter 'folderId' is set - if ($folderId === null || \is_array($folderId) && \count($folderId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $folderId when calling getFolder'); - } - $resourcePath = '/contacts/folders/{folderId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($folderId !== null) { - $resourcePath = \str_replace('{' . 'folderId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($folderId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getFolderLists - * - * Get lists in a folder - * - * @param int $folderId Id of the folder (required) - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetFolderLists - */ - public function getFolderLists($folderId, $limit = '10', $offset = '0') - { - list($response) = $this->getFolderListsWithHttpInfo($folderId, $limit, $offset); - return $response; - } - /** - * Operation getFolderListsWithHttpInfo - * - * Get lists in a folder - * - * @param int $folderId Id of the folder (required) - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetFolderLists, HTTP status code, HTTP response headers (array of strings) - */ - public function getFolderListsWithHttpInfo($folderId, $limit = '10', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolderLists'; - $request = $this->getFolderListsRequest($folderId, $limit, $offset); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolderLists', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getFolderListsAsync - * - * Get lists in a folder - * - * @param int $folderId Id of the folder (required) - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getFolderListsAsync($folderId, $limit = '10', $offset = '0') - { - return $this->getFolderListsAsyncWithHttpInfo($folderId, $limit, $offset)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getFolderListsAsyncWithHttpInfo - * - * Get lists in a folder - * - * @param int $folderId Id of the folder (required) - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getFolderListsAsyncWithHttpInfo($folderId, $limit = '10', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolderLists'; - $request = $this->getFolderListsRequest($folderId, $limit, $offset); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getFolderLists' - * - * @param int $folderId Id of the folder (required) - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getFolderListsRequest($folderId, $limit = '10', $offset = '0') - { - // verify the required parameter 'folderId' is set - if ($folderId === null || \is_array($folderId) && \count($folderId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $folderId when calling getFolderLists'); - } - if ($limit !== null && $limit > 50) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling FoldersApi.getFolderLists, must be smaller than or equal to 50.'); - } - $resourcePath = '/contacts/folders/{folderId}/lists'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // path params - if ($folderId !== null) { - $resourcePath = \str_replace('{' . 'folderId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($folderId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getFolders - * - * Get all folders - * - * @param int $limit Number of documents per page (required) - * @param int $offset Index of the first document of the page (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetFolders - */ - public function getFolders($limit, $offset) - { - list($response) = $this->getFoldersWithHttpInfo($limit, $offset); - return $response; - } - /** - * Operation getFoldersWithHttpInfo - * - * Get all folders - * - * @param int $limit Number of documents per page (required) - * @param int $offset Index of the first document of the page (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetFolders, HTTP status code, HTTP response headers (array of strings) - */ - public function getFoldersWithHttpInfo($limit, $offset) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolders'; - $request = $this->getFoldersRequest($limit, $offset); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolders', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getFoldersAsync - * - * Get all folders - * - * @param int $limit Number of documents per page (required) - * @param int $offset Index of the first document of the page (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getFoldersAsync($limit, $offset) - { - return $this->getFoldersAsyncWithHttpInfo($limit, $offset)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getFoldersAsyncWithHttpInfo - * - * Get all folders - * - * @param int $limit Number of documents per page (required) - * @param int $offset Index of the first document of the page (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getFoldersAsyncWithHttpInfo($limit, $offset) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolders'; - $request = $this->getFoldersRequest($limit, $offset); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getFolders' - * - * @param int $limit Number of documents per page (required) - * @param int $offset Index of the first document of the page (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getFoldersRequest($limit, $offset) - { - // verify the required parameter 'limit' is set - if ($limit === null || \is_array($limit) && \count($limit) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $limit when calling getFolders'); - } - if ($limit > 50) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling FoldersApi.getFolders, must be smaller than or equal to 50.'); - } - // verify the required parameter 'offset' is set - if ($offset === null || \is_array($offset) && \count($offset) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $offset when calling getFolders'); - } - $resourcePath = '/contacts/folders'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateFolder - * - * Update a folder - * - * @param int $folderId Id of the folder (required) - * @param \SendinBlue\Client\Model\CreateUpdateFolder $updateFolder Name of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateFolder($folderId, $updateFolder) - { - $this->updateFolderWithHttpInfo($folderId, $updateFolder); - } - /** - * Operation updateFolderWithHttpInfo - * - * Update a folder - * - * @param int $folderId Id of the folder (required) - * @param \SendinBlue\Client\Model\CreateUpdateFolder $updateFolder Name of the folder (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateFolderWithHttpInfo($folderId, $updateFolder) - { - $returnType = ''; - $request = $this->updateFolderRequest($folderId, $updateFolder); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateFolderAsync - * - * Update a folder - * - * @param int $folderId Id of the folder (required) - * @param \SendinBlue\Client\Model\CreateUpdateFolder $updateFolder Name of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateFolderAsync($folderId, $updateFolder) - { - return $this->updateFolderAsyncWithHttpInfo($folderId, $updateFolder)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateFolderAsyncWithHttpInfo - * - * Update a folder - * - * @param int $folderId Id of the folder (required) - * @param \SendinBlue\Client\Model\CreateUpdateFolder $updateFolder Name of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateFolderAsyncWithHttpInfo($folderId, $updateFolder) - { - $returnType = ''; - $request = $this->updateFolderRequest($folderId, $updateFolder); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateFolder' - * - * @param int $folderId Id of the folder (required) - * @param \SendinBlue\Client\Model\CreateUpdateFolder $updateFolder Name of the folder (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateFolderRequest($folderId, $updateFolder) - { - // verify the required parameter 'folderId' is set - if ($folderId === null || \is_array($folderId) && \count($folderId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $folderId when calling updateFolder'); - } - // verify the required parameter 'updateFolder' is set - if ($updateFolder === null || \is_array($updateFolder) && \count($updateFolder) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $updateFolder when calling updateFolder'); - } - $resourcePath = '/contacts/folders/{folderId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($folderId !== null) { - $resourcePath = \str_replace('{' . 'folderId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($folderId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($updateFolder)) { - $_tempBody = $updateFolder; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Create http client option - * - * @throws \RuntimeException on file opening failure - * @return array of http client options - */ - protected function createHttpClientOption() - { - $options = []; - if ($this->config->getDebug()) { - $options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG] = \fopen($this->config->getDebugFile(), 'a'); - if (!$options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG]) { - throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile()); - } - } - return $options; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ListsApi.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ListsApi.php deleted file mode 100644 index 1c9e3c4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ListsApi.php +++ /dev/null @@ -1,1905 +0,0 @@ -client = $client ?: new \WPMailSMTP\Vendor\GuzzleHttp\Client(); - $this->config = $config ?: new \WPMailSMTP\Vendor\SendinBlue\Client\Configuration(); - $this->headerSelector = $selector ?: new \WPMailSMTP\Vendor\SendinBlue\Client\HeaderSelector(); - } - /** - * @return Configuration - */ - public function getConfig() - { - return $this->config; - } - /** - * Operation addContactToList - * - * Add existing contacts to a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\AddContactToList $contactEmails Emails addresses of the contacts (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\PostContactInfo - */ - public function addContactToList($listId, $contactEmails) - { - list($response) = $this->addContactToListWithHttpInfo($listId, $contactEmails); - return $response; - } - /** - * Operation addContactToListWithHttpInfo - * - * Add existing contacts to a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\AddContactToList $contactEmails Emails addresses of the contacts (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\PostContactInfo, HTTP status code, HTTP response headers (array of strings) - */ - public function addContactToListWithHttpInfo($listId, $contactEmails) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfo'; - $request = $this->addContactToListRequest($listId, $contactEmails); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfo', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation addContactToListAsync - * - * Add existing contacts to a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\AddContactToList $contactEmails Emails addresses of the contacts (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function addContactToListAsync($listId, $contactEmails) - { - return $this->addContactToListAsyncWithHttpInfo($listId, $contactEmails)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation addContactToListAsyncWithHttpInfo - * - * Add existing contacts to a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\AddContactToList $contactEmails Emails addresses of the contacts (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function addContactToListAsyncWithHttpInfo($listId, $contactEmails) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfo'; - $request = $this->addContactToListRequest($listId, $contactEmails); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'addContactToList' - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\AddContactToList $contactEmails Emails addresses of the contacts (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function addContactToListRequest($listId, $contactEmails) - { - // verify the required parameter 'listId' is set - if ($listId === null || \is_array($listId) && \count($listId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $listId when calling addContactToList'); - } - // verify the required parameter 'contactEmails' is set - if ($contactEmails === null || \is_array($contactEmails) && \count($contactEmails) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $contactEmails when calling addContactToList'); - } - $resourcePath = '/contacts/lists/{listId}/contacts/add'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($listId !== null) { - $resourcePath = \str_replace('{' . 'listId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($listId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($contactEmails)) { - $_tempBody = $contactEmails; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation createList - * - * Create a list - * - * @param \SendinBlue\Client\Model\CreateList $createList Values to create a list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreateModel - */ - public function createList($createList) - { - list($response) = $this->createListWithHttpInfo($createList); - return $response; - } - /** - * Operation createListWithHttpInfo - * - * Create a list - * - * @param \SendinBlue\Client\Model\CreateList $createList Values to create a list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreateModel, HTTP status code, HTTP response headers (array of strings) - */ - public function createListWithHttpInfo($createList) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createListRequest($createList); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation createListAsync - * - * Create a list - * - * @param \SendinBlue\Client\Model\CreateList $createList Values to create a list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createListAsync($createList) - { - return $this->createListAsyncWithHttpInfo($createList)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation createListAsyncWithHttpInfo - * - * Create a list - * - * @param \SendinBlue\Client\Model\CreateList $createList Values to create a list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createListAsyncWithHttpInfo($createList) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createListRequest($createList); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'createList' - * - * @param \SendinBlue\Client\Model\CreateList $createList Values to create a list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function createListRequest($createList) - { - // verify the required parameter 'createList' is set - if ($createList === null || \is_array($createList) && \count($createList) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $createList when calling createList'); - } - $resourcePath = '/contacts/lists'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($createList)) { - $_tempBody = $createList; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation deleteList - * - * Delete a list - * - * @param int $listId Id of the list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function deleteList($listId) - { - $this->deleteListWithHttpInfo($listId); - } - /** - * Operation deleteListWithHttpInfo - * - * Delete a list - * - * @param int $listId Id of the list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function deleteListWithHttpInfo($listId) - { - $returnType = ''; - $request = $this->deleteListRequest($listId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation deleteListAsync - * - * Delete a list - * - * @param int $listId Id of the list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteListAsync($listId) - { - return $this->deleteListAsyncWithHttpInfo($listId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation deleteListAsyncWithHttpInfo - * - * Delete a list - * - * @param int $listId Id of the list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteListAsyncWithHttpInfo($listId) - { - $returnType = ''; - $request = $this->deleteListRequest($listId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'deleteList' - * - * @param int $listId Id of the list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function deleteListRequest($listId) - { - // verify the required parameter 'listId' is set - if ($listId === null || \is_array($listId) && \count($listId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $listId when calling deleteList'); - } - $resourcePath = '/contacts/lists/{listId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($listId !== null) { - $resourcePath = \str_replace('{' . 'listId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($listId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getContactsFromList - * - * Get contacts in a list - * - * @param int $listId Id of the list (required) - * @param \DateTime $modifiedSince Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. (optional) - * @param int $limit Number of documents per page (optional, default to 50) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetContacts - */ - public function getContactsFromList($listId, $modifiedSince = null, $limit = '50', $offset = '0') - { - list($response) = $this->getContactsFromListWithHttpInfo($listId, $modifiedSince, $limit, $offset); - return $response; - } - /** - * Operation getContactsFromListWithHttpInfo - * - * Get contacts in a list - * - * @param int $listId Id of the list (required) - * @param \DateTime $modifiedSince Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. (optional) - * @param int $limit Number of documents per page (optional, default to 50) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetContacts, HTTP status code, HTTP response headers (array of strings) - */ - public function getContactsFromListWithHttpInfo($listId, $modifiedSince = null, $limit = '50', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContacts'; - $request = $this->getContactsFromListRequest($listId, $modifiedSince, $limit, $offset); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContacts', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getContactsFromListAsync - * - * Get contacts in a list - * - * @param int $listId Id of the list (required) - * @param \DateTime $modifiedSince Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. (optional) - * @param int $limit Number of documents per page (optional, default to 50) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getContactsFromListAsync($listId, $modifiedSince = null, $limit = '50', $offset = '0') - { - return $this->getContactsFromListAsyncWithHttpInfo($listId, $modifiedSince, $limit, $offset)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getContactsFromListAsyncWithHttpInfo - * - * Get contacts in a list - * - * @param int $listId Id of the list (required) - * @param \DateTime $modifiedSince Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. (optional) - * @param int $limit Number of documents per page (optional, default to 50) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getContactsFromListAsyncWithHttpInfo($listId, $modifiedSince = null, $limit = '50', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContacts'; - $request = $this->getContactsFromListRequest($listId, $modifiedSince, $limit, $offset); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getContactsFromList' - * - * @param int $listId Id of the list (required) - * @param \DateTime $modifiedSince Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. (optional) - * @param int $limit Number of documents per page (optional, default to 50) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getContactsFromListRequest($listId, $modifiedSince = null, $limit = '50', $offset = '0') - { - // verify the required parameter 'listId' is set - if ($listId === null || \is_array($listId) && \count($listId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $listId when calling getContactsFromList'); - } - if ($limit !== null && $limit > 500) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling ListsApi.getContactsFromList, must be smaller than or equal to 500.'); - } - $resourcePath = '/contacts/lists/{listId}/contacts'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($modifiedSince !== null) { - $queryParams['modifiedSince'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($modifiedSince); - } - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // path params - if ($listId !== null) { - $resourcePath = \str_replace('{' . 'listId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($listId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getFolderLists - * - * Get lists in a folder - * - * @param int $folderId Id of the folder (required) - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetFolderLists - */ - public function getFolderLists($folderId, $limit = '10', $offset = '0') - { - list($response) = $this->getFolderListsWithHttpInfo($folderId, $limit, $offset); - return $response; - } - /** - * Operation getFolderListsWithHttpInfo - * - * Get lists in a folder - * - * @param int $folderId Id of the folder (required) - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetFolderLists, HTTP status code, HTTP response headers (array of strings) - */ - public function getFolderListsWithHttpInfo($folderId, $limit = '10', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolderLists'; - $request = $this->getFolderListsRequest($folderId, $limit, $offset); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolderLists', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getFolderListsAsync - * - * Get lists in a folder - * - * @param int $folderId Id of the folder (required) - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getFolderListsAsync($folderId, $limit = '10', $offset = '0') - { - return $this->getFolderListsAsyncWithHttpInfo($folderId, $limit, $offset)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getFolderListsAsyncWithHttpInfo - * - * Get lists in a folder - * - * @param int $folderId Id of the folder (required) - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getFolderListsAsyncWithHttpInfo($folderId, $limit = '10', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetFolderLists'; - $request = $this->getFolderListsRequest($folderId, $limit, $offset); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getFolderLists' - * - * @param int $folderId Id of the folder (required) - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getFolderListsRequest($folderId, $limit = '10', $offset = '0') - { - // verify the required parameter 'folderId' is set - if ($folderId === null || \is_array($folderId) && \count($folderId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $folderId when calling getFolderLists'); - } - if ($limit !== null && $limit > 50) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling ListsApi.getFolderLists, must be smaller than or equal to 50.'); - } - $resourcePath = '/contacts/folders/{folderId}/lists'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // path params - if ($folderId !== null) { - $resourcePath = \str_replace('{' . 'folderId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($folderId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getList - * - * Get a list's details - * - * @param int $listId Id of the list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetExtendedList - */ - public function getList($listId) - { - list($response) = $this->getListWithHttpInfo($listId); - return $response; - } - /** - * Operation getListWithHttpInfo - * - * Get a list's details - * - * @param int $listId Id of the list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetExtendedList, HTTP status code, HTTP response headers (array of strings) - */ - public function getListWithHttpInfo($listId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedList'; - $request = $this->getListRequest($listId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedList', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getListAsync - * - * Get a list's details - * - * @param int $listId Id of the list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getListAsync($listId) - { - return $this->getListAsyncWithHttpInfo($listId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getListAsyncWithHttpInfo - * - * Get a list's details - * - * @param int $listId Id of the list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getListAsyncWithHttpInfo($listId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedList'; - $request = $this->getListRequest($listId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getList' - * - * @param int $listId Id of the list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getListRequest($listId) - { - // verify the required parameter 'listId' is set - if ($listId === null || \is_array($listId) && \count($listId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $listId when calling getList'); - } - $resourcePath = '/contacts/lists/{listId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($listId !== null) { - $resourcePath = \str_replace('{' . 'listId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($listId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getLists - * - * Get all the lists - * - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetLists - */ - public function getLists($limit = '10', $offset = '0') - { - list($response) = $this->getListsWithHttpInfo($limit, $offset); - return $response; - } - /** - * Operation getListsWithHttpInfo - * - * Get all the lists - * - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetLists, HTTP status code, HTTP response headers (array of strings) - */ - public function getListsWithHttpInfo($limit = '10', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetLists'; - $request = $this->getListsRequest($limit, $offset); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetLists', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getListsAsync - * - * Get all the lists - * - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getListsAsync($limit = '10', $offset = '0') - { - return $this->getListsAsyncWithHttpInfo($limit, $offset)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getListsAsyncWithHttpInfo - * - * Get all the lists - * - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getListsAsyncWithHttpInfo($limit = '10', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetLists'; - $request = $this->getListsRequest($limit, $offset); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getLists' - * - * @param int $limit Number of documents per page (optional, default to 10) - * @param int $offset Index of the first document of the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getListsRequest($limit = '10', $offset = '0') - { - if ($limit !== null && $limit > 50) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling ListsApi.getLists, must be smaller than or equal to 50.'); - } - $resourcePath = '/contacts/lists'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation removeContactFromList - * - * Delete a contact from a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\RemoveContactFromList $contactEmails Emails adresses of the contact (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\PostContactInfo - */ - public function removeContactFromList($listId, $contactEmails) - { - list($response) = $this->removeContactFromListWithHttpInfo($listId, $contactEmails); - return $response; - } - /** - * Operation removeContactFromListWithHttpInfo - * - * Delete a contact from a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\RemoveContactFromList $contactEmails Emails adresses of the contact (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\PostContactInfo, HTTP status code, HTTP response headers (array of strings) - */ - public function removeContactFromListWithHttpInfo($listId, $contactEmails) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfo'; - $request = $this->removeContactFromListRequest($listId, $contactEmails); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfo', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation removeContactFromListAsync - * - * Delete a contact from a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\RemoveContactFromList $contactEmails Emails adresses of the contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function removeContactFromListAsync($listId, $contactEmails) - { - return $this->removeContactFromListAsyncWithHttpInfo($listId, $contactEmails)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation removeContactFromListAsyncWithHttpInfo - * - * Delete a contact from a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\RemoveContactFromList $contactEmails Emails adresses of the contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function removeContactFromListAsyncWithHttpInfo($listId, $contactEmails) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfo'; - $request = $this->removeContactFromListRequest($listId, $contactEmails); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'removeContactFromList' - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\RemoveContactFromList $contactEmails Emails adresses of the contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function removeContactFromListRequest($listId, $contactEmails) - { - // verify the required parameter 'listId' is set - if ($listId === null || \is_array($listId) && \count($listId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $listId when calling removeContactFromList'); - } - // verify the required parameter 'contactEmails' is set - if ($contactEmails === null || \is_array($contactEmails) && \count($contactEmails) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $contactEmails when calling removeContactFromList'); - } - $resourcePath = '/contacts/lists/{listId}/contacts/remove'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($listId !== null) { - $resourcePath = \str_replace('{' . 'listId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($listId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($contactEmails)) { - $_tempBody = $contactEmails; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateList - * - * Update a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\UpdateList $updateList Values to update a list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateList($listId, $updateList) - { - $this->updateListWithHttpInfo($listId, $updateList); - } - /** - * Operation updateListWithHttpInfo - * - * Update a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\UpdateList $updateList Values to update a list (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateListWithHttpInfo($listId, $updateList) - { - $returnType = ''; - $request = $this->updateListRequest($listId, $updateList); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateListAsync - * - * Update a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\UpdateList $updateList Values to update a list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateListAsync($listId, $updateList) - { - return $this->updateListAsyncWithHttpInfo($listId, $updateList)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateListAsyncWithHttpInfo - * - * Update a list - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\UpdateList $updateList Values to update a list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateListAsyncWithHttpInfo($listId, $updateList) - { - $returnType = ''; - $request = $this->updateListRequest($listId, $updateList); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateList' - * - * @param int $listId Id of the list (required) - * @param \SendinBlue\Client\Model\UpdateList $updateList Values to update a list (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateListRequest($listId, $updateList) - { - // verify the required parameter 'listId' is set - if ($listId === null || \is_array($listId) && \count($listId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $listId when calling updateList'); - } - // verify the required parameter 'updateList' is set - if ($updateList === null || \is_array($updateList) && \count($updateList) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $updateList when calling updateList'); - } - $resourcePath = '/contacts/lists/{listId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($listId !== null) { - $resourcePath = \str_replace('{' . 'listId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($listId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($updateList)) { - $_tempBody = $updateList; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Create http client option - * - * @throws \RuntimeException on file opening failure - * @return array of http client options - */ - protected function createHttpClientOption() - { - $options = []; - if ($this->config->getDebug()) { - $options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG] = \fopen($this->config->getDebugFile(), 'a'); - if (!$options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG]) { - throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile()); - } - } - return $options; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ProcessApi.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ProcessApi.php deleted file mode 100644 index 0bd8c00..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ProcessApi.php +++ /dev/null @@ -1,494 +0,0 @@ -client = $client ?: new \WPMailSMTP\Vendor\GuzzleHttp\Client(); - $this->config = $config ?: new \WPMailSMTP\Vendor\SendinBlue\Client\Configuration(); - $this->headerSelector = $selector ?: new \WPMailSMTP\Vendor\SendinBlue\Client\HeaderSelector(); - } - /** - * @return Configuration - */ - public function getConfig() - { - return $this->config; - } - /** - * Operation getProcess - * - * Return the informations for a process - * - * @param int $processId Id of the process (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetProcess - */ - public function getProcess($processId) - { - list($response) = $this->getProcessWithHttpInfo($processId); - return $response; - } - /** - * Operation getProcessWithHttpInfo - * - * Return the informations for a process - * - * @param int $processId Id of the process (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetProcess, HTTP status code, HTTP response headers (array of strings) - */ - public function getProcessWithHttpInfo($processId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetProcess'; - $request = $this->getProcessRequest($processId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetProcess', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getProcessAsync - * - * Return the informations for a process - * - * @param int $processId Id of the process (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getProcessAsync($processId) - { - return $this->getProcessAsyncWithHttpInfo($processId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getProcessAsyncWithHttpInfo - * - * Return the informations for a process - * - * @param int $processId Id of the process (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getProcessAsyncWithHttpInfo($processId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetProcess'; - $request = $this->getProcessRequest($processId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getProcess' - * - * @param int $processId Id of the process (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getProcessRequest($processId) - { - // verify the required parameter 'processId' is set - if ($processId === null || \is_array($processId) && \count($processId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $processId when calling getProcess'); - } - $resourcePath = '/processes/{processId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($processId !== null) { - $resourcePath = \str_replace('{' . 'processId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($processId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getProcesses - * - * Return all the processes for your account - * - * @param int $limit Number limitation for the result returned (optional, default to 10) - * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetProcesses - */ - public function getProcesses($limit = '10', $offset = '0') - { - list($response) = $this->getProcessesWithHttpInfo($limit, $offset); - return $response; - } - /** - * Operation getProcessesWithHttpInfo - * - * Return all the processes for your account - * - * @param int $limit Number limitation for the result returned (optional, default to 10) - * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetProcesses, HTTP status code, HTTP response headers (array of strings) - */ - public function getProcessesWithHttpInfo($limit = '10', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetProcesses'; - $request = $this->getProcessesRequest($limit, $offset); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetProcesses', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getProcessesAsync - * - * Return all the processes for your account - * - * @param int $limit Number limitation for the result returned (optional, default to 10) - * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getProcessesAsync($limit = '10', $offset = '0') - { - return $this->getProcessesAsyncWithHttpInfo($limit, $offset)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getProcessesAsyncWithHttpInfo - * - * Return all the processes for your account - * - * @param int $limit Number limitation for the result returned (optional, default to 10) - * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getProcessesAsyncWithHttpInfo($limit = '10', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetProcesses'; - $request = $this->getProcessesRequest($limit, $offset); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getProcesses' - * - * @param int $limit Number limitation for the result returned (optional, default to 10) - * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getProcessesRequest($limit = '10', $offset = '0') - { - if ($limit !== null && $limit > 50) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling ProcessApi.getProcesses, must be smaller than or equal to 50.'); - } - $resourcePath = '/processes'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Create http client option - * - * @throws \RuntimeException on file opening failure - * @return array of http client options - */ - protected function createHttpClientOption() - { - $options = []; - if ($this->config->getDebug()) { - $options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG] = \fopen($this->config->getDebugFile(), 'a'); - if (!$options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG]) { - throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile()); - } - } - return $options; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ResellerApi.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ResellerApi.php deleted file mode 100644 index 7cba725..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/ResellerApi.php +++ /dev/null @@ -1,3217 +0,0 @@ -client = $client ?: new \WPMailSMTP\Vendor\GuzzleHttp\Client(); - $this->config = $config ?: new \WPMailSMTP\Vendor\SendinBlue\Client\Configuration(); - $this->headerSelector = $selector ?: new \WPMailSMTP\Vendor\SendinBlue\Client\HeaderSelector(); - } - /** - * @return Configuration - */ - public function getConfig() - { - return $this->config; - } - /** - * Operation addCredits - * - * Add Email and/or SMS credits to a specific child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\AddCredits $addCredits Values to post to add credit to a specific child account (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\RemainingCreditModel - */ - public function addCredits($childIdentifier, $addCredits) - { - list($response) = $this->addCreditsWithHttpInfo($childIdentifier, $addCredits); - return $response; - } - /** - * Operation addCreditsWithHttpInfo - * - * Add Email and/or SMS credits to a specific child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\AddCredits $addCredits Values to post to add credit to a specific child account (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\RemainingCreditModel, HTTP status code, HTTP response headers (array of strings) - */ - public function addCreditsWithHttpInfo($childIdentifier, $addCredits) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemainingCreditModel'; - $request = $this->addCreditsRequest($childIdentifier, $addCredits); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemainingCreditModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 403: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation addCreditsAsync - * - * Add Email and/or SMS credits to a specific child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\AddCredits $addCredits Values to post to add credit to a specific child account (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function addCreditsAsync($childIdentifier, $addCredits) - { - return $this->addCreditsAsyncWithHttpInfo($childIdentifier, $addCredits)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation addCreditsAsyncWithHttpInfo - * - * Add Email and/or SMS credits to a specific child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\AddCredits $addCredits Values to post to add credit to a specific child account (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function addCreditsAsyncWithHttpInfo($childIdentifier, $addCredits) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemainingCreditModel'; - $request = $this->addCreditsRequest($childIdentifier, $addCredits); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'addCredits' - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\AddCredits $addCredits Values to post to add credit to a specific child account (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function addCreditsRequest($childIdentifier, $addCredits) - { - // verify the required parameter 'childIdentifier' is set - if ($childIdentifier === null || \is_array($childIdentifier) && \count($childIdentifier) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $childIdentifier when calling addCredits'); - } - // verify the required parameter 'addCredits' is set - if ($addCredits === null || \is_array($addCredits) && \count($addCredits) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $addCredits when calling addCredits'); - } - $resourcePath = '/reseller/children/{childIdentifier}/credits/add'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($childIdentifier !== null) { - $resourcePath = \str_replace('{' . 'childIdentifier' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($childIdentifier), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($addCredits)) { - $_tempBody = $addCredits; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation associateIpToChild - * - * Associate a dedicated IP to the child - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\ManageIp $ip IP to associate (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function associateIpToChild($childIdentifier, $ip) - { - $this->associateIpToChildWithHttpInfo($childIdentifier, $ip); - } - /** - * Operation associateIpToChildWithHttpInfo - * - * Associate a dedicated IP to the child - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\ManageIp $ip IP to associate (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function associateIpToChildWithHttpInfo($childIdentifier, $ip) - { - $returnType = ''; - $request = $this->associateIpToChildRequest($childIdentifier, $ip); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation associateIpToChildAsync - * - * Associate a dedicated IP to the child - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\ManageIp $ip IP to associate (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function associateIpToChildAsync($childIdentifier, $ip) - { - return $this->associateIpToChildAsyncWithHttpInfo($childIdentifier, $ip)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation associateIpToChildAsyncWithHttpInfo - * - * Associate a dedicated IP to the child - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\ManageIp $ip IP to associate (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function associateIpToChildAsyncWithHttpInfo($childIdentifier, $ip) - { - $returnType = ''; - $request = $this->associateIpToChildRequest($childIdentifier, $ip); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'associateIpToChild' - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\ManageIp $ip IP to associate (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function associateIpToChildRequest($childIdentifier, $ip) - { - // verify the required parameter 'childIdentifier' is set - if ($childIdentifier === null || \is_array($childIdentifier) && \count($childIdentifier) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $childIdentifier when calling associateIpToChild'); - } - // verify the required parameter 'ip' is set - if ($ip === null || \is_array($ip) && \count($ip) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $ip when calling associateIpToChild'); - } - $resourcePath = '/reseller/children/{childIdentifier}/ips/associate'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($childIdentifier !== null) { - $resourcePath = \str_replace('{' . 'childIdentifier' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($childIdentifier), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($ip)) { - $_tempBody = $ip; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation createChildDomain - * - * Create a domain for a child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\AddChildDomain $addChildDomain Sender domain to add for a specific child account. This will not be displayed to the parent account. (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function createChildDomain($childIdentifier, $addChildDomain) - { - $this->createChildDomainWithHttpInfo($childIdentifier, $addChildDomain); - } - /** - * Operation createChildDomainWithHttpInfo - * - * Create a domain for a child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\AddChildDomain $addChildDomain Sender domain to add for a specific child account. This will not be displayed to the parent account. (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function createChildDomainWithHttpInfo($childIdentifier, $addChildDomain) - { - $returnType = ''; - $request = $this->createChildDomainRequest($childIdentifier, $addChildDomain); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 403: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation createChildDomainAsync - * - * Create a domain for a child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\AddChildDomain $addChildDomain Sender domain to add for a specific child account. This will not be displayed to the parent account. (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createChildDomainAsync($childIdentifier, $addChildDomain) - { - return $this->createChildDomainAsyncWithHttpInfo($childIdentifier, $addChildDomain)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation createChildDomainAsyncWithHttpInfo - * - * Create a domain for a child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\AddChildDomain $addChildDomain Sender domain to add for a specific child account. This will not be displayed to the parent account. (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createChildDomainAsyncWithHttpInfo($childIdentifier, $addChildDomain) - { - $returnType = ''; - $request = $this->createChildDomainRequest($childIdentifier, $addChildDomain); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'createChildDomain' - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\AddChildDomain $addChildDomain Sender domain to add for a specific child account. This will not be displayed to the parent account. (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function createChildDomainRequest($childIdentifier, $addChildDomain) - { - // verify the required parameter 'childIdentifier' is set - if ($childIdentifier === null || \is_array($childIdentifier) && \count($childIdentifier) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $childIdentifier when calling createChildDomain'); - } - // verify the required parameter 'addChildDomain' is set - if ($addChildDomain === null || \is_array($addChildDomain) && \count($addChildDomain) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $addChildDomain when calling createChildDomain'); - } - $resourcePath = '/reseller/children/{childIdentifier}/domains'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($childIdentifier !== null) { - $resourcePath = \str_replace('{' . 'childIdentifier' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($childIdentifier), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($addChildDomain)) { - $_tempBody = $addChildDomain; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation createResellerChild - * - * Creates a reseller child - * - * @param \SendinBlue\Client\Model\CreateChild $resellerChild reseller child to add (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreateReseller - */ - public function createResellerChild($resellerChild = null) - { - list($response) = $this->createResellerChildWithHttpInfo($resellerChild); - return $response; - } - /** - * Operation createResellerChildWithHttpInfo - * - * Creates a reseller child - * - * @param \SendinBlue\Client\Model\CreateChild $resellerChild reseller child to add (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreateReseller, HTTP status code, HTTP response headers (array of strings) - */ - public function createResellerChildWithHttpInfo($resellerChild = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateReseller'; - $request = $this->createResellerChildRequest($resellerChild); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateReseller', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 403: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation createResellerChildAsync - * - * Creates a reseller child - * - * @param \SendinBlue\Client\Model\CreateChild $resellerChild reseller child to add (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createResellerChildAsync($resellerChild = null) - { - return $this->createResellerChildAsyncWithHttpInfo($resellerChild)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation createResellerChildAsyncWithHttpInfo - * - * Creates a reseller child - * - * @param \SendinBlue\Client\Model\CreateChild $resellerChild reseller child to add (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createResellerChildAsyncWithHttpInfo($resellerChild = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateReseller'; - $request = $this->createResellerChildRequest($resellerChild); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'createResellerChild' - * - * @param \SendinBlue\Client\Model\CreateChild $resellerChild reseller child to add (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function createResellerChildRequest($resellerChild = null) - { - $resourcePath = '/reseller/children'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($resellerChild)) { - $_tempBody = $resellerChild; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation deleteChildDomain - * - * Delete the sender domain of the reseller child based on the childIdentifier and domainName passed - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param string $domainName Pass the existing domain that needs to be deleted (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function deleteChildDomain($childIdentifier, $domainName) - { - $this->deleteChildDomainWithHttpInfo($childIdentifier, $domainName); - } - /** - * Operation deleteChildDomainWithHttpInfo - * - * Delete the sender domain of the reseller child based on the childIdentifier and domainName passed - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param string $domainName Pass the existing domain that needs to be deleted (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function deleteChildDomainWithHttpInfo($childIdentifier, $domainName) - { - $returnType = ''; - $request = $this->deleteChildDomainRequest($childIdentifier, $domainName); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 403: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation deleteChildDomainAsync - * - * Delete the sender domain of the reseller child based on the childIdentifier and domainName passed - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param string $domainName Pass the existing domain that needs to be deleted (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteChildDomainAsync($childIdentifier, $domainName) - { - return $this->deleteChildDomainAsyncWithHttpInfo($childIdentifier, $domainName)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation deleteChildDomainAsyncWithHttpInfo - * - * Delete the sender domain of the reseller child based on the childIdentifier and domainName passed - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param string $domainName Pass the existing domain that needs to be deleted (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteChildDomainAsyncWithHttpInfo($childIdentifier, $domainName) - { - $returnType = ''; - $request = $this->deleteChildDomainRequest($childIdentifier, $domainName); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'deleteChildDomain' - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param string $domainName Pass the existing domain that needs to be deleted (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function deleteChildDomainRequest($childIdentifier, $domainName) - { - // verify the required parameter 'childIdentifier' is set - if ($childIdentifier === null || \is_array($childIdentifier) && \count($childIdentifier) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $childIdentifier when calling deleteChildDomain'); - } - // verify the required parameter 'domainName' is set - if ($domainName === null || \is_array($domainName) && \count($domainName) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $domainName when calling deleteChildDomain'); - } - $resourcePath = '/reseller/children/{childIdentifier}/domains/{domainName}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($childIdentifier !== null) { - $resourcePath = \str_replace('{' . 'childIdentifier' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($childIdentifier), $resourcePath); - } - // path params - if ($domainName !== null) { - $resourcePath = \str_replace('{' . 'domainName' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($domainName), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation deleteResellerChild - * - * Delete a single reseller child based on the child identifier supplied - * - * @param string $childIdentifier Either auth key or child id of reseller's child (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function deleteResellerChild($childIdentifier) - { - $this->deleteResellerChildWithHttpInfo($childIdentifier); - } - /** - * Operation deleteResellerChildWithHttpInfo - * - * Delete a single reseller child based on the child identifier supplied - * - * @param string $childIdentifier Either auth key or child id of reseller's child (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function deleteResellerChildWithHttpInfo($childIdentifier) - { - $returnType = ''; - $request = $this->deleteResellerChildRequest($childIdentifier); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 403: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation deleteResellerChildAsync - * - * Delete a single reseller child based on the child identifier supplied - * - * @param string $childIdentifier Either auth key or child id of reseller's child (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteResellerChildAsync($childIdentifier) - { - return $this->deleteResellerChildAsyncWithHttpInfo($childIdentifier)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation deleteResellerChildAsyncWithHttpInfo - * - * Delete a single reseller child based on the child identifier supplied - * - * @param string $childIdentifier Either auth key or child id of reseller's child (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteResellerChildAsyncWithHttpInfo($childIdentifier) - { - $returnType = ''; - $request = $this->deleteResellerChildRequest($childIdentifier); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'deleteResellerChild' - * - * @param string $childIdentifier Either auth key or child id of reseller's child (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function deleteResellerChildRequest($childIdentifier) - { - // verify the required parameter 'childIdentifier' is set - if ($childIdentifier === null || \is_array($childIdentifier) && \count($childIdentifier) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $childIdentifier when calling deleteResellerChild'); - } - $resourcePath = '/reseller/children/{childIdentifier}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($childIdentifier !== null) { - $resourcePath = \str_replace('{' . 'childIdentifier' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($childIdentifier), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation dissociateIpFromChild - * - * Dissociate a dedicated IP to the child - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\ManageIp $ip IP to dissociate (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function dissociateIpFromChild($childIdentifier, $ip) - { - $this->dissociateIpFromChildWithHttpInfo($childIdentifier, $ip); - } - /** - * Operation dissociateIpFromChildWithHttpInfo - * - * Dissociate a dedicated IP to the child - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\ManageIp $ip IP to dissociate (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function dissociateIpFromChildWithHttpInfo($childIdentifier, $ip) - { - $returnType = ''; - $request = $this->dissociateIpFromChildRequest($childIdentifier, $ip); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation dissociateIpFromChildAsync - * - * Dissociate a dedicated IP to the child - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\ManageIp $ip IP to dissociate (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function dissociateIpFromChildAsync($childIdentifier, $ip) - { - return $this->dissociateIpFromChildAsyncWithHttpInfo($childIdentifier, $ip)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation dissociateIpFromChildAsyncWithHttpInfo - * - * Dissociate a dedicated IP to the child - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\ManageIp $ip IP to dissociate (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function dissociateIpFromChildAsyncWithHttpInfo($childIdentifier, $ip) - { - $returnType = ''; - $request = $this->dissociateIpFromChildRequest($childIdentifier, $ip); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'dissociateIpFromChild' - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\ManageIp $ip IP to dissociate (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function dissociateIpFromChildRequest($childIdentifier, $ip) - { - // verify the required parameter 'childIdentifier' is set - if ($childIdentifier === null || \is_array($childIdentifier) && \count($childIdentifier) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $childIdentifier when calling dissociateIpFromChild'); - } - // verify the required parameter 'ip' is set - if ($ip === null || \is_array($ip) && \count($ip) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $ip when calling dissociateIpFromChild'); - } - $resourcePath = '/reseller/children/{childIdentifier}/ips/dissociate'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($childIdentifier !== null) { - $resourcePath = \str_replace('{' . 'childIdentifier' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($childIdentifier), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($ip)) { - $_tempBody = $ip; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getChildAccountCreationStatus - * - * Get the status of a reseller's child account creation, whether it is successfully created (exists) or not based on the identifier supplied - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetChildAccountCreationStatus - */ - public function getChildAccountCreationStatus($childIdentifier) - { - list($response) = $this->getChildAccountCreationStatusWithHttpInfo($childIdentifier); - return $response; - } - /** - * Operation getChildAccountCreationStatusWithHttpInfo - * - * Get the status of a reseller's child account creation, whether it is successfully created (exists) or not based on the identifier supplied - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetChildAccountCreationStatus, HTTP status code, HTTP response headers (array of strings) - */ - public function getChildAccountCreationStatusWithHttpInfo($childIdentifier) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildAccountCreationStatus'; - $request = $this->getChildAccountCreationStatusRequest($childIdentifier); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildAccountCreationStatus', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 403: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getChildAccountCreationStatusAsync - * - * Get the status of a reseller's child account creation, whether it is successfully created (exists) or not based on the identifier supplied - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getChildAccountCreationStatusAsync($childIdentifier) - { - return $this->getChildAccountCreationStatusAsyncWithHttpInfo($childIdentifier)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getChildAccountCreationStatusAsyncWithHttpInfo - * - * Get the status of a reseller's child account creation, whether it is successfully created (exists) or not based on the identifier supplied - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getChildAccountCreationStatusAsyncWithHttpInfo($childIdentifier) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildAccountCreationStatus'; - $request = $this->getChildAccountCreationStatusRequest($childIdentifier); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getChildAccountCreationStatus' - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getChildAccountCreationStatusRequest($childIdentifier) - { - // verify the required parameter 'childIdentifier' is set - if ($childIdentifier === null || \is_array($childIdentifier) && \count($childIdentifier) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $childIdentifier when calling getChildAccountCreationStatus'); - } - $resourcePath = '/reseller/children/{childIdentifier}/accountCreationStatus'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($childIdentifier !== null) { - $resourcePath = \str_replace('{' . 'childIdentifier' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($childIdentifier), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getChildDomains - * - * Get all sender domains for a specific child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetChildDomains - */ - public function getChildDomains($childIdentifier) - { - list($response) = $this->getChildDomainsWithHttpInfo($childIdentifier); - return $response; - } - /** - * Operation getChildDomainsWithHttpInfo - * - * Get all sender domains for a specific child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetChildDomains, HTTP status code, HTTP response headers (array of strings) - */ - public function getChildDomainsWithHttpInfo($childIdentifier) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildDomains'; - $request = $this->getChildDomainsRequest($childIdentifier); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildDomains', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 403: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getChildDomainsAsync - * - * Get all sender domains for a specific child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getChildDomainsAsync($childIdentifier) - { - return $this->getChildDomainsAsyncWithHttpInfo($childIdentifier)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getChildDomainsAsyncWithHttpInfo - * - * Get all sender domains for a specific child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getChildDomainsAsyncWithHttpInfo($childIdentifier) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildDomains'; - $request = $this->getChildDomainsRequest($childIdentifier); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getChildDomains' - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getChildDomainsRequest($childIdentifier) - { - // verify the required parameter 'childIdentifier' is set - if ($childIdentifier === null || \is_array($childIdentifier) && \count($childIdentifier) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $childIdentifier when calling getChildDomains'); - } - $resourcePath = '/reseller/children/{childIdentifier}/domains'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($childIdentifier !== null) { - $resourcePath = \str_replace('{' . 'childIdentifier' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($childIdentifier), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getChildInfo - * - * Get a child account's details - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetChildInfo - */ - public function getChildInfo($childIdentifier) - { - list($response) = $this->getChildInfoWithHttpInfo($childIdentifier); - return $response; - } - /** - * Operation getChildInfoWithHttpInfo - * - * Get a child account's details - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetChildInfo, HTTP status code, HTTP response headers (array of strings) - */ - public function getChildInfoWithHttpInfo($childIdentifier) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfo'; - $request = $this->getChildInfoRequest($childIdentifier); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfo', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 403: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getChildInfoAsync - * - * Get a child account's details - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getChildInfoAsync($childIdentifier) - { - return $this->getChildInfoAsyncWithHttpInfo($childIdentifier)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getChildInfoAsyncWithHttpInfo - * - * Get a child account's details - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getChildInfoAsyncWithHttpInfo($childIdentifier) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfo'; - $request = $this->getChildInfoRequest($childIdentifier); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getChildInfo' - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getChildInfoRequest($childIdentifier) - { - // verify the required parameter 'childIdentifier' is set - if ($childIdentifier === null || \is_array($childIdentifier) && \count($childIdentifier) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $childIdentifier when calling getChildInfo'); - } - $resourcePath = '/reseller/children/{childIdentifier}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($childIdentifier !== null) { - $resourcePath = \str_replace('{' . 'childIdentifier' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($childIdentifier), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getResellerChilds - * - * Get the list of all children accounts - * - * @param int $limit Number of documents for child accounts information per page (optional, default to 10) - * @param int $offset Index of the first document in the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetChildrenList - */ - public function getResellerChilds($limit = '10', $offset = '0') - { - list($response) = $this->getResellerChildsWithHttpInfo($limit, $offset); - return $response; - } - /** - * Operation getResellerChildsWithHttpInfo - * - * Get the list of all children accounts - * - * @param int $limit Number of documents for child accounts information per page (optional, default to 10) - * @param int $offset Index of the first document in the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetChildrenList, HTTP status code, HTTP response headers (array of strings) - */ - public function getResellerChildsWithHttpInfo($limit = '10', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildrenList'; - $request = $this->getResellerChildsRequest($limit, $offset); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildrenList', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 403: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getResellerChildsAsync - * - * Get the list of all children accounts - * - * @param int $limit Number of documents for child accounts information per page (optional, default to 10) - * @param int $offset Index of the first document in the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getResellerChildsAsync($limit = '10', $offset = '0') - { - return $this->getResellerChildsAsyncWithHttpInfo($limit, $offset)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getResellerChildsAsyncWithHttpInfo - * - * Get the list of all children accounts - * - * @param int $limit Number of documents for child accounts information per page (optional, default to 10) - * @param int $offset Index of the first document in the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getResellerChildsAsyncWithHttpInfo($limit = '10', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildrenList'; - $request = $this->getResellerChildsRequest($limit, $offset); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getResellerChilds' - * - * @param int $limit Number of documents for child accounts information per page (optional, default to 10) - * @param int $offset Index of the first document in the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getResellerChildsRequest($limit = '10', $offset = '0') - { - if ($limit !== null && $limit > 20) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling ResellerApi.getResellerChilds, must be smaller than or equal to 20.'); - } - $resourcePath = '/reseller/children'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getSsoToken - * - * Get session token to access Sendinblue (SSO) - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetSsoToken - */ - public function getSsoToken($childIdentifier) - { - list($response) = $this->getSsoTokenWithHttpInfo($childIdentifier); - return $response; - } - /** - * Operation getSsoTokenWithHttpInfo - * - * Get session token to access Sendinblue (SSO) - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetSsoToken, HTTP status code, HTTP response headers (array of strings) - */ - public function getSsoTokenWithHttpInfo($childIdentifier) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSsoToken'; - $request = $this->getSsoTokenRequest($childIdentifier); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSsoToken', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 403: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getSsoTokenAsync - * - * Get session token to access Sendinblue (SSO) - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSsoTokenAsync($childIdentifier) - { - return $this->getSsoTokenAsyncWithHttpInfo($childIdentifier)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getSsoTokenAsyncWithHttpInfo - * - * Get session token to access Sendinblue (SSO) - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSsoTokenAsyncWithHttpInfo($childIdentifier) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSsoToken'; - $request = $this->getSsoTokenRequest($childIdentifier); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getSsoToken' - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getSsoTokenRequest($childIdentifier) - { - // verify the required parameter 'childIdentifier' is set - if ($childIdentifier === null || \is_array($childIdentifier) && \count($childIdentifier) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $childIdentifier when calling getSsoToken'); - } - $resourcePath = '/reseller/children/{childIdentifier}/auth'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($childIdentifier !== null) { - $resourcePath = \str_replace('{' . 'childIdentifier' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($childIdentifier), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation removeCredits - * - * Remove Email and/or SMS credits from a specific child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\RemoveCredits $removeCredits Values to post to remove email or SMS credits from a specific child account (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\RemainingCreditModel - */ - public function removeCredits($childIdentifier, $removeCredits) - { - list($response) = $this->removeCreditsWithHttpInfo($childIdentifier, $removeCredits); - return $response; - } - /** - * Operation removeCreditsWithHttpInfo - * - * Remove Email and/or SMS credits from a specific child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\RemoveCredits $removeCredits Values to post to remove email or SMS credits from a specific child account (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\RemainingCreditModel, HTTP status code, HTTP response headers (array of strings) - */ - public function removeCreditsWithHttpInfo($childIdentifier, $removeCredits) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemainingCreditModel'; - $request = $this->removeCreditsRequest($childIdentifier, $removeCredits); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemainingCreditModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 403: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation removeCreditsAsync - * - * Remove Email and/or SMS credits from a specific child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\RemoveCredits $removeCredits Values to post to remove email or SMS credits from a specific child account (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function removeCreditsAsync($childIdentifier, $removeCredits) - { - return $this->removeCreditsAsyncWithHttpInfo($childIdentifier, $removeCredits)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation removeCreditsAsyncWithHttpInfo - * - * Remove Email and/or SMS credits from a specific child account - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\RemoveCredits $removeCredits Values to post to remove email or SMS credits from a specific child account (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function removeCreditsAsyncWithHttpInfo($childIdentifier, $removeCredits) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemainingCreditModel'; - $request = $this->removeCreditsRequest($childIdentifier, $removeCredits); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'removeCredits' - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\RemoveCredits $removeCredits Values to post to remove email or SMS credits from a specific child account (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function removeCreditsRequest($childIdentifier, $removeCredits) - { - // verify the required parameter 'childIdentifier' is set - if ($childIdentifier === null || \is_array($childIdentifier) && \count($childIdentifier) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $childIdentifier when calling removeCredits'); - } - // verify the required parameter 'removeCredits' is set - if ($removeCredits === null || \is_array($removeCredits) && \count($removeCredits) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $removeCredits when calling removeCredits'); - } - $resourcePath = '/reseller/children/{childIdentifier}/credits/remove'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($childIdentifier !== null) { - $resourcePath = \str_replace('{' . 'childIdentifier' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($childIdentifier), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($removeCredits)) { - $_tempBody = $removeCredits; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateChildAccountStatus - * - * Update info of reseller's child account status based on the childIdentifier supplied - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\UpdateChildAccountStatus $updateChildAccountStatus values to update in child account status (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateChildAccountStatus($childIdentifier, $updateChildAccountStatus) - { - $this->updateChildAccountStatusWithHttpInfo($childIdentifier, $updateChildAccountStatus); - } - /** - * Operation updateChildAccountStatusWithHttpInfo - * - * Update info of reseller's child account status based on the childIdentifier supplied - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\UpdateChildAccountStatus $updateChildAccountStatus values to update in child account status (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateChildAccountStatusWithHttpInfo($childIdentifier, $updateChildAccountStatus) - { - $returnType = ''; - $request = $this->updateChildAccountStatusRequest($childIdentifier, $updateChildAccountStatus); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 403: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateChildAccountStatusAsync - * - * Update info of reseller's child account status based on the childIdentifier supplied - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\UpdateChildAccountStatus $updateChildAccountStatus values to update in child account status (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateChildAccountStatusAsync($childIdentifier, $updateChildAccountStatus) - { - return $this->updateChildAccountStatusAsyncWithHttpInfo($childIdentifier, $updateChildAccountStatus)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateChildAccountStatusAsyncWithHttpInfo - * - * Update info of reseller's child account status based on the childIdentifier supplied - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\UpdateChildAccountStatus $updateChildAccountStatus values to update in child account status (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateChildAccountStatusAsyncWithHttpInfo($childIdentifier, $updateChildAccountStatus) - { - $returnType = ''; - $request = $this->updateChildAccountStatusRequest($childIdentifier, $updateChildAccountStatus); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateChildAccountStatus' - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\UpdateChildAccountStatus $updateChildAccountStatus values to update in child account status (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateChildAccountStatusRequest($childIdentifier, $updateChildAccountStatus) - { - // verify the required parameter 'childIdentifier' is set - if ($childIdentifier === null || \is_array($childIdentifier) && \count($childIdentifier) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $childIdentifier when calling updateChildAccountStatus'); - } - // verify the required parameter 'updateChildAccountStatus' is set - if ($updateChildAccountStatus === null || \is_array($updateChildAccountStatus) && \count($updateChildAccountStatus) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $updateChildAccountStatus when calling updateChildAccountStatus'); - } - $resourcePath = '/reseller/children/{childIdentifier}/accountStatus'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($childIdentifier !== null) { - $resourcePath = \str_replace('{' . 'childIdentifier' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($childIdentifier), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($updateChildAccountStatus)) { - $_tempBody = $updateChildAccountStatus; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateChildDomain - * - * Update the sender domain of reseller's child based on the childIdentifier and domainName passed - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param string $domainName Pass the existing domain that needs to be updated (required) - * @param \SendinBlue\Client\Model\UpdateChildDomain $updateChildDomain value to update for sender domain (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateChildDomain($childIdentifier, $domainName, $updateChildDomain) - { - $this->updateChildDomainWithHttpInfo($childIdentifier, $domainName, $updateChildDomain); - } - /** - * Operation updateChildDomainWithHttpInfo - * - * Update the sender domain of reseller's child based on the childIdentifier and domainName passed - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param string $domainName Pass the existing domain that needs to be updated (required) - * @param \SendinBlue\Client\Model\UpdateChildDomain $updateChildDomain value to update for sender domain (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateChildDomainWithHttpInfo($childIdentifier, $domainName, $updateChildDomain) - { - $returnType = ''; - $request = $this->updateChildDomainRequest($childIdentifier, $domainName, $updateChildDomain); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 403: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateChildDomainAsync - * - * Update the sender domain of reseller's child based on the childIdentifier and domainName passed - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param string $domainName Pass the existing domain that needs to be updated (required) - * @param \SendinBlue\Client\Model\UpdateChildDomain $updateChildDomain value to update for sender domain (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateChildDomainAsync($childIdentifier, $domainName, $updateChildDomain) - { - return $this->updateChildDomainAsyncWithHttpInfo($childIdentifier, $domainName, $updateChildDomain)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateChildDomainAsyncWithHttpInfo - * - * Update the sender domain of reseller's child based on the childIdentifier and domainName passed - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param string $domainName Pass the existing domain that needs to be updated (required) - * @param \SendinBlue\Client\Model\UpdateChildDomain $updateChildDomain value to update for sender domain (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateChildDomainAsyncWithHttpInfo($childIdentifier, $domainName, $updateChildDomain) - { - $returnType = ''; - $request = $this->updateChildDomainRequest($childIdentifier, $domainName, $updateChildDomain); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateChildDomain' - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param string $domainName Pass the existing domain that needs to be updated (required) - * @param \SendinBlue\Client\Model\UpdateChildDomain $updateChildDomain value to update for sender domain (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateChildDomainRequest($childIdentifier, $domainName, $updateChildDomain) - { - // verify the required parameter 'childIdentifier' is set - if ($childIdentifier === null || \is_array($childIdentifier) && \count($childIdentifier) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $childIdentifier when calling updateChildDomain'); - } - // verify the required parameter 'domainName' is set - if ($domainName === null || \is_array($domainName) && \count($domainName) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $domainName when calling updateChildDomain'); - } - // verify the required parameter 'updateChildDomain' is set - if ($updateChildDomain === null || \is_array($updateChildDomain) && \count($updateChildDomain) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $updateChildDomain when calling updateChildDomain'); - } - $resourcePath = '/reseller/children/{childIdentifier}/domains/{domainName}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($childIdentifier !== null) { - $resourcePath = \str_replace('{' . 'childIdentifier' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($childIdentifier), $resourcePath); - } - // path params - if ($domainName !== null) { - $resourcePath = \str_replace('{' . 'domainName' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($domainName), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($updateChildDomain)) { - $_tempBody = $updateChildDomain; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateResellerChild - * - * Update info of reseller's child based on the child identifier supplied - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\UpdateChild $resellerChild values to update in child profile (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateResellerChild($childIdentifier, $resellerChild) - { - $this->updateResellerChildWithHttpInfo($childIdentifier, $resellerChild); - } - /** - * Operation updateResellerChildWithHttpInfo - * - * Update info of reseller's child based on the child identifier supplied - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\UpdateChild $resellerChild values to update in child profile (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateResellerChildWithHttpInfo($childIdentifier, $resellerChild) - { - $returnType = ''; - $request = $this->updateResellerChildRequest($childIdentifier, $resellerChild); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 403: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateResellerChildAsync - * - * Update info of reseller's child based on the child identifier supplied - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\UpdateChild $resellerChild values to update in child profile (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateResellerChildAsync($childIdentifier, $resellerChild) - { - return $this->updateResellerChildAsyncWithHttpInfo($childIdentifier, $resellerChild)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateResellerChildAsyncWithHttpInfo - * - * Update info of reseller's child based on the child identifier supplied - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\UpdateChild $resellerChild values to update in child profile (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateResellerChildAsyncWithHttpInfo($childIdentifier, $resellerChild) - { - $returnType = ''; - $request = $this->updateResellerChildRequest($childIdentifier, $resellerChild); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateResellerChild' - * - * @param string $childIdentifier Either auth key or id of reseller's child (required) - * @param \SendinBlue\Client\Model\UpdateChild $resellerChild values to update in child profile (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateResellerChildRequest($childIdentifier, $resellerChild) - { - // verify the required parameter 'childIdentifier' is set - if ($childIdentifier === null || \is_array($childIdentifier) && \count($childIdentifier) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $childIdentifier when calling updateResellerChild'); - } - // verify the required parameter 'resellerChild' is set - if ($resellerChild === null || \is_array($resellerChild) && \count($resellerChild) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $resellerChild when calling updateResellerChild'); - } - $resourcePath = '/reseller/children/{childIdentifier}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($childIdentifier !== null) { - $resourcePath = \str_replace('{' . 'childIdentifier' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($childIdentifier), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($resellerChild)) { - $_tempBody = $resellerChild; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Create http client option - * - * @throws \RuntimeException on file opening failure - * @return array of http client options - */ - protected function createHttpClientOption() - { - $options = []; - if ($this->config->getDebug()) { - $options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG] = \fopen($this->config->getDebugFile(), 'a'); - if (!$options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG]) { - throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile()); - } - } - return $options; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SMSCampaignsApi.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SMSCampaignsApi.php deleted file mode 100644 index 82a7223..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SMSCampaignsApi.php +++ /dev/null @@ -1,2002 +0,0 @@ -client = $client ?: new \WPMailSMTP\Vendor\GuzzleHttp\Client(); - $this->config = $config ?: new \WPMailSMTP\Vendor\SendinBlue\Client\Configuration(); - $this->headerSelector = $selector ?: new \WPMailSMTP\Vendor\SendinBlue\Client\HeaderSelector(); - } - /** - * @return Configuration - */ - public function getConfig() - { - return $this->config; - } - /** - * Operation createSmsCampaign - * - * Creates an SMS campaign - * - * @param \SendinBlue\Client\Model\CreateSmsCampaign $createSmsCampaign Values to create an SMS Campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreateModel - */ - public function createSmsCampaign($createSmsCampaign) - { - list($response) = $this->createSmsCampaignWithHttpInfo($createSmsCampaign); - return $response; - } - /** - * Operation createSmsCampaignWithHttpInfo - * - * Creates an SMS campaign - * - * @param \SendinBlue\Client\Model\CreateSmsCampaign $createSmsCampaign Values to create an SMS Campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreateModel, HTTP status code, HTTP response headers (array of strings) - */ - public function createSmsCampaignWithHttpInfo($createSmsCampaign) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createSmsCampaignRequest($createSmsCampaign); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation createSmsCampaignAsync - * - * Creates an SMS campaign - * - * @param \SendinBlue\Client\Model\CreateSmsCampaign $createSmsCampaign Values to create an SMS Campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createSmsCampaignAsync($createSmsCampaign) - { - return $this->createSmsCampaignAsyncWithHttpInfo($createSmsCampaign)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation createSmsCampaignAsyncWithHttpInfo - * - * Creates an SMS campaign - * - * @param \SendinBlue\Client\Model\CreateSmsCampaign $createSmsCampaign Values to create an SMS Campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createSmsCampaignAsyncWithHttpInfo($createSmsCampaign) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createSmsCampaignRequest($createSmsCampaign); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'createSmsCampaign' - * - * @param \SendinBlue\Client\Model\CreateSmsCampaign $createSmsCampaign Values to create an SMS Campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function createSmsCampaignRequest($createSmsCampaign) - { - // verify the required parameter 'createSmsCampaign' is set - if ($createSmsCampaign === null || \is_array($createSmsCampaign) && \count($createSmsCampaign) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $createSmsCampaign when calling createSmsCampaign'); - } - $resourcePath = '/smsCampaigns'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($createSmsCampaign)) { - $_tempBody = $createSmsCampaign; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation deleteSmsCampaign - * - * Delete an SMS campaign - * - * @param int $campaignId id of the SMS campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function deleteSmsCampaign($campaignId) - { - $this->deleteSmsCampaignWithHttpInfo($campaignId); - } - /** - * Operation deleteSmsCampaignWithHttpInfo - * - * Delete an SMS campaign - * - * @param int $campaignId id of the SMS campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function deleteSmsCampaignWithHttpInfo($campaignId) - { - $returnType = ''; - $request = $this->deleteSmsCampaignRequest($campaignId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation deleteSmsCampaignAsync - * - * Delete an SMS campaign - * - * @param int $campaignId id of the SMS campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteSmsCampaignAsync($campaignId) - { - return $this->deleteSmsCampaignAsyncWithHttpInfo($campaignId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation deleteSmsCampaignAsyncWithHttpInfo - * - * Delete an SMS campaign - * - * @param int $campaignId id of the SMS campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteSmsCampaignAsyncWithHttpInfo($campaignId) - { - $returnType = ''; - $request = $this->deleteSmsCampaignRequest($campaignId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'deleteSmsCampaign' - * - * @param int $campaignId id of the SMS campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function deleteSmsCampaignRequest($campaignId) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling deleteSmsCampaign'); - } - $resourcePath = '/smsCampaigns/{campaignId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getSmsCampaign - * - * Get an SMS campaign - * - * @param int $campaignId id of the SMS campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetSmsCampaign - */ - public function getSmsCampaign($campaignId) - { - list($response) = $this->getSmsCampaignWithHttpInfo($campaignId); - return $response; - } - /** - * Operation getSmsCampaignWithHttpInfo - * - * Get an SMS campaign - * - * @param int $campaignId id of the SMS campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetSmsCampaign, HTTP status code, HTTP response headers (array of strings) - */ - public function getSmsCampaignWithHttpInfo($campaignId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsCampaign'; - $request = $this->getSmsCampaignRequest($campaignId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsCampaign', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getSmsCampaignAsync - * - * Get an SMS campaign - * - * @param int $campaignId id of the SMS campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSmsCampaignAsync($campaignId) - { - return $this->getSmsCampaignAsyncWithHttpInfo($campaignId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getSmsCampaignAsyncWithHttpInfo - * - * Get an SMS campaign - * - * @param int $campaignId id of the SMS campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSmsCampaignAsyncWithHttpInfo($campaignId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsCampaign'; - $request = $this->getSmsCampaignRequest($campaignId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getSmsCampaign' - * - * @param int $campaignId id of the SMS campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getSmsCampaignRequest($campaignId) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling getSmsCampaign'); - } - $resourcePath = '/smsCampaigns/{campaignId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getSmsCampaigns - * - * Returns the information for all your created SMS campaigns - * - * @param string $status Status of campaign. (optional) - * @param \DateTime $startDate Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param int $limit Number limitation for the result returned (optional, default to 500) - * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetSmsCampaigns - */ - public function getSmsCampaigns($status = null, $startDate = null, $endDate = null, $limit = '500', $offset = '0') - { - list($response) = $this->getSmsCampaignsWithHttpInfo($status, $startDate, $endDate, $limit, $offset); - return $response; - } - /** - * Operation getSmsCampaignsWithHttpInfo - * - * Returns the information for all your created SMS campaigns - * - * @param string $status Status of campaign. (optional) - * @param \DateTime $startDate Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param int $limit Number limitation for the result returned (optional, default to 500) - * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetSmsCampaigns, HTTP status code, HTTP response headers (array of strings) - */ - public function getSmsCampaignsWithHttpInfo($status = null, $startDate = null, $endDate = null, $limit = '500', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsCampaigns'; - $request = $this->getSmsCampaignsRequest($status, $startDate, $endDate, $limit, $offset); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsCampaigns', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getSmsCampaignsAsync - * - * Returns the information for all your created SMS campaigns - * - * @param string $status Status of campaign. (optional) - * @param \DateTime $startDate Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param int $limit Number limitation for the result returned (optional, default to 500) - * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSmsCampaignsAsync($status = null, $startDate = null, $endDate = null, $limit = '500', $offset = '0') - { - return $this->getSmsCampaignsAsyncWithHttpInfo($status, $startDate, $endDate, $limit, $offset)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getSmsCampaignsAsyncWithHttpInfo - * - * Returns the information for all your created SMS campaigns - * - * @param string $status Status of campaign. (optional) - * @param \DateTime $startDate Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param int $limit Number limitation for the result returned (optional, default to 500) - * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSmsCampaignsAsyncWithHttpInfo($status = null, $startDate = null, $endDate = null, $limit = '500', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsCampaigns'; - $request = $this->getSmsCampaignsRequest($status, $startDate, $endDate, $limit, $offset); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getSmsCampaigns' - * - * @param string $status Status of campaign. (optional) - * @param \DateTime $startDate Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either 'status' not passed and if passed is set to 'sent' ) (optional) - * @param int $limit Number limitation for the result returned (optional, default to 500) - * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getSmsCampaignsRequest($status = null, $startDate = null, $endDate = null, $limit = '500', $offset = '0') - { - if ($limit !== null && $limit > 1000) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling SMSCampaignsApi.getSmsCampaigns, must be smaller than or equal to 1000.'); - } - $resourcePath = '/smsCampaigns'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($status !== null) { - $queryParams['status'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($status); - } - // query params - if ($startDate !== null) { - $queryParams['startDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($startDate); - } - // query params - if ($endDate !== null) { - $queryParams['endDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($endDate); - } - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation requestSmsRecipientExport - * - * Export an SMS campaign's recipients - * - * @param int $campaignId id of the campaign (required) - * @param \SendinBlue\Client\Model\RequestSmsRecipientExport $recipientExport Values to send for a recipient export request (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreatedProcessId - */ - public function requestSmsRecipientExport($campaignId, $recipientExport = null) - { - list($response) = $this->requestSmsRecipientExportWithHttpInfo($campaignId, $recipientExport); - return $response; - } - /** - * Operation requestSmsRecipientExportWithHttpInfo - * - * Export an SMS campaign's recipients - * - * @param int $campaignId id of the campaign (required) - * @param \SendinBlue\Client\Model\RequestSmsRecipientExport $recipientExport Values to send for a recipient export request (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreatedProcessId, HTTP status code, HTTP response headers (array of strings) - */ - public function requestSmsRecipientExportWithHttpInfo($campaignId, $recipientExport = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreatedProcessId'; - $request = $this->requestSmsRecipientExportRequest($campaignId, $recipientExport); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 202: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreatedProcessId', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation requestSmsRecipientExportAsync - * - * Export an SMS campaign's recipients - * - * @param int $campaignId id of the campaign (required) - * @param \SendinBlue\Client\Model\RequestSmsRecipientExport $recipientExport Values to send for a recipient export request (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function requestSmsRecipientExportAsync($campaignId, $recipientExport = null) - { - return $this->requestSmsRecipientExportAsyncWithHttpInfo($campaignId, $recipientExport)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation requestSmsRecipientExportAsyncWithHttpInfo - * - * Export an SMS campaign's recipients - * - * @param int $campaignId id of the campaign (required) - * @param \SendinBlue\Client\Model\RequestSmsRecipientExport $recipientExport Values to send for a recipient export request (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function requestSmsRecipientExportAsyncWithHttpInfo($campaignId, $recipientExport = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreatedProcessId'; - $request = $this->requestSmsRecipientExportRequest($campaignId, $recipientExport); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'requestSmsRecipientExport' - * - * @param int $campaignId id of the campaign (required) - * @param \SendinBlue\Client\Model\RequestSmsRecipientExport $recipientExport Values to send for a recipient export request (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function requestSmsRecipientExportRequest($campaignId, $recipientExport = null) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling requestSmsRecipientExport'); - } - $resourcePath = '/smsCampaigns/{campaignId}/exportRecipients'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($recipientExport)) { - $_tempBody = $recipientExport; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation sendSmsCampaignNow - * - * Send your SMS campaign immediately - * - * @param int $campaignId id of the campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function sendSmsCampaignNow($campaignId) - { - $this->sendSmsCampaignNowWithHttpInfo($campaignId); - } - /** - * Operation sendSmsCampaignNowWithHttpInfo - * - * Send your SMS campaign immediately - * - * @param int $campaignId id of the campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function sendSmsCampaignNowWithHttpInfo($campaignId) - { - $returnType = ''; - $request = $this->sendSmsCampaignNowRequest($campaignId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 402: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation sendSmsCampaignNowAsync - * - * Send your SMS campaign immediately - * - * @param int $campaignId id of the campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendSmsCampaignNowAsync($campaignId) - { - return $this->sendSmsCampaignNowAsyncWithHttpInfo($campaignId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation sendSmsCampaignNowAsyncWithHttpInfo - * - * Send your SMS campaign immediately - * - * @param int $campaignId id of the campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendSmsCampaignNowAsyncWithHttpInfo($campaignId) - { - $returnType = ''; - $request = $this->sendSmsCampaignNowRequest($campaignId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'sendSmsCampaignNow' - * - * @param int $campaignId id of the campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function sendSmsCampaignNowRequest($campaignId) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling sendSmsCampaignNow'); - } - $resourcePath = '/smsCampaigns/{campaignId}/sendNow'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation sendSmsReport - * - * Send an SMS campaign's report - * - * @param int $campaignId id of the campaign (required) - * @param \SendinBlue\Client\Model\SendReport $sendReport Values for send a report (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function sendSmsReport($campaignId, $sendReport) - { - $this->sendSmsReportWithHttpInfo($campaignId, $sendReport); - } - /** - * Operation sendSmsReportWithHttpInfo - * - * Send an SMS campaign's report - * - * @param int $campaignId id of the campaign (required) - * @param \SendinBlue\Client\Model\SendReport $sendReport Values for send a report (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function sendSmsReportWithHttpInfo($campaignId, $sendReport) - { - $returnType = ''; - $request = $this->sendSmsReportRequest($campaignId, $sendReport); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation sendSmsReportAsync - * - * Send an SMS campaign's report - * - * @param int $campaignId id of the campaign (required) - * @param \SendinBlue\Client\Model\SendReport $sendReport Values for send a report (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendSmsReportAsync($campaignId, $sendReport) - { - return $this->sendSmsReportAsyncWithHttpInfo($campaignId, $sendReport)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation sendSmsReportAsyncWithHttpInfo - * - * Send an SMS campaign's report - * - * @param int $campaignId id of the campaign (required) - * @param \SendinBlue\Client\Model\SendReport $sendReport Values for send a report (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendSmsReportAsyncWithHttpInfo($campaignId, $sendReport) - { - $returnType = ''; - $request = $this->sendSmsReportRequest($campaignId, $sendReport); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'sendSmsReport' - * - * @param int $campaignId id of the campaign (required) - * @param \SendinBlue\Client\Model\SendReport $sendReport Values for send a report (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function sendSmsReportRequest($campaignId, $sendReport) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling sendSmsReport'); - } - // verify the required parameter 'sendReport' is set - if ($sendReport === null || \is_array($sendReport) && \count($sendReport) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $sendReport when calling sendSmsReport'); - } - $resourcePath = '/smsCampaigns/{campaignId}/sendReport'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($sendReport)) { - $_tempBody = $sendReport; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation sendTestSms - * - * Send a test SMS campaign - * - * @param int $campaignId Id of the SMS campaign (required) - * @param \SendinBlue\Client\Model\SendTestSms $phoneNumber Mobile number of the recipient with the country code. This number must belong to one of your contacts in SendinBlue account and must not be blacklisted (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function sendTestSms($campaignId, $phoneNumber) - { - $this->sendTestSmsWithHttpInfo($campaignId, $phoneNumber); - } - /** - * Operation sendTestSmsWithHttpInfo - * - * Send a test SMS campaign - * - * @param int $campaignId Id of the SMS campaign (required) - * @param \SendinBlue\Client\Model\SendTestSms $phoneNumber Mobile number of the recipient with the country code. This number must belong to one of your contacts in SendinBlue account and must not be blacklisted (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function sendTestSmsWithHttpInfo($campaignId, $phoneNumber) - { - $returnType = ''; - $request = $this->sendTestSmsRequest($campaignId, $phoneNumber); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostSendSmsTestFailed', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation sendTestSmsAsync - * - * Send a test SMS campaign - * - * @param int $campaignId Id of the SMS campaign (required) - * @param \SendinBlue\Client\Model\SendTestSms $phoneNumber Mobile number of the recipient with the country code. This number must belong to one of your contacts in SendinBlue account and must not be blacklisted (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendTestSmsAsync($campaignId, $phoneNumber) - { - return $this->sendTestSmsAsyncWithHttpInfo($campaignId, $phoneNumber)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation sendTestSmsAsyncWithHttpInfo - * - * Send a test SMS campaign - * - * @param int $campaignId Id of the SMS campaign (required) - * @param \SendinBlue\Client\Model\SendTestSms $phoneNumber Mobile number of the recipient with the country code. This number must belong to one of your contacts in SendinBlue account and must not be blacklisted (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendTestSmsAsyncWithHttpInfo($campaignId, $phoneNumber) - { - $returnType = ''; - $request = $this->sendTestSmsRequest($campaignId, $phoneNumber); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'sendTestSms' - * - * @param int $campaignId Id of the SMS campaign (required) - * @param \SendinBlue\Client\Model\SendTestSms $phoneNumber Mobile number of the recipient with the country code. This number must belong to one of your contacts in SendinBlue account and must not be blacklisted (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function sendTestSmsRequest($campaignId, $phoneNumber) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling sendTestSms'); - } - // verify the required parameter 'phoneNumber' is set - if ($phoneNumber === null || \is_array($phoneNumber) && \count($phoneNumber) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $phoneNumber when calling sendTestSms'); - } - $resourcePath = '/smsCampaigns/{campaignId}/sendTest'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($phoneNumber)) { - $_tempBody = $phoneNumber; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateSmsCampaign - * - * Update an SMS campaign - * - * @param int $campaignId id of the SMS campaign (required) - * @param \SendinBlue\Client\Model\UpdateSmsCampaign $updateSmsCampaign Values to update an SMS Campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateSmsCampaign($campaignId, $updateSmsCampaign) - { - $this->updateSmsCampaignWithHttpInfo($campaignId, $updateSmsCampaign); - } - /** - * Operation updateSmsCampaignWithHttpInfo - * - * Update an SMS campaign - * - * @param int $campaignId id of the SMS campaign (required) - * @param \SendinBlue\Client\Model\UpdateSmsCampaign $updateSmsCampaign Values to update an SMS Campaign (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateSmsCampaignWithHttpInfo($campaignId, $updateSmsCampaign) - { - $returnType = ''; - $request = $this->updateSmsCampaignRequest($campaignId, $updateSmsCampaign); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateSmsCampaignAsync - * - * Update an SMS campaign - * - * @param int $campaignId id of the SMS campaign (required) - * @param \SendinBlue\Client\Model\UpdateSmsCampaign $updateSmsCampaign Values to update an SMS Campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateSmsCampaignAsync($campaignId, $updateSmsCampaign) - { - return $this->updateSmsCampaignAsyncWithHttpInfo($campaignId, $updateSmsCampaign)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateSmsCampaignAsyncWithHttpInfo - * - * Update an SMS campaign - * - * @param int $campaignId id of the SMS campaign (required) - * @param \SendinBlue\Client\Model\UpdateSmsCampaign $updateSmsCampaign Values to update an SMS Campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateSmsCampaignAsyncWithHttpInfo($campaignId, $updateSmsCampaign) - { - $returnType = ''; - $request = $this->updateSmsCampaignRequest($campaignId, $updateSmsCampaign); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateSmsCampaign' - * - * @param int $campaignId id of the SMS campaign (required) - * @param \SendinBlue\Client\Model\UpdateSmsCampaign $updateSmsCampaign Values to update an SMS Campaign (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateSmsCampaignRequest($campaignId, $updateSmsCampaign) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling updateSmsCampaign'); - } - // verify the required parameter 'updateSmsCampaign' is set - if ($updateSmsCampaign === null || \is_array($updateSmsCampaign) && \count($updateSmsCampaign) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $updateSmsCampaign when calling updateSmsCampaign'); - } - $resourcePath = '/smsCampaigns/{campaignId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($updateSmsCampaign)) { - $_tempBody = $updateSmsCampaign; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateSmsCampaignStatus - * - * Update a campaign's status - * - * @param int $campaignId id of the campaign (required) - * @param \SendinBlue\Client\Model\UpdateCampaignStatus $status Status of the campaign. (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateSmsCampaignStatus($campaignId, $status) - { - $this->updateSmsCampaignStatusWithHttpInfo($campaignId, $status); - } - /** - * Operation updateSmsCampaignStatusWithHttpInfo - * - * Update a campaign's status - * - * @param int $campaignId id of the campaign (required) - * @param \SendinBlue\Client\Model\UpdateCampaignStatus $status Status of the campaign. (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateSmsCampaignStatusWithHttpInfo($campaignId, $status) - { - $returnType = ''; - $request = $this->updateSmsCampaignStatusRequest($campaignId, $status); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateSmsCampaignStatusAsync - * - * Update a campaign's status - * - * @param int $campaignId id of the campaign (required) - * @param \SendinBlue\Client\Model\UpdateCampaignStatus $status Status of the campaign. (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateSmsCampaignStatusAsync($campaignId, $status) - { - return $this->updateSmsCampaignStatusAsyncWithHttpInfo($campaignId, $status)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateSmsCampaignStatusAsyncWithHttpInfo - * - * Update a campaign's status - * - * @param int $campaignId id of the campaign (required) - * @param \SendinBlue\Client\Model\UpdateCampaignStatus $status Status of the campaign. (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateSmsCampaignStatusAsyncWithHttpInfo($campaignId, $status) - { - $returnType = ''; - $request = $this->updateSmsCampaignStatusRequest($campaignId, $status); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateSmsCampaignStatus' - * - * @param int $campaignId id of the campaign (required) - * @param \SendinBlue\Client\Model\UpdateCampaignStatus $status Status of the campaign. (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateSmsCampaignStatusRequest($campaignId, $status) - { - // verify the required parameter 'campaignId' is set - if ($campaignId === null || \is_array($campaignId) && \count($campaignId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $campaignId when calling updateSmsCampaignStatus'); - } - // verify the required parameter 'status' is set - if ($status === null || \is_array($status) && \count($status) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $status when calling updateSmsCampaignStatus'); - } - $resourcePath = '/smsCampaigns/{campaignId}/status'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($campaignId !== null) { - $resourcePath = \str_replace('{' . 'campaignId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($campaignId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($status)) { - $_tempBody = $status; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Create http client option - * - * @throws \RuntimeException on file opening failure - * @return array of http client options - */ - protected function createHttpClientOption() - { - $options = []; - if ($this->config->getDebug()) { - $options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG] = \fopen($this->config->getDebugFile(), 'a'); - if (!$options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG]) { - throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile()); - } - } - return $options; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SMTPApi.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SMTPApi.php deleted file mode 100644 index e7569d2..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SMTPApi.php +++ /dev/null @@ -1,3515 +0,0 @@ -client = $client ?: new \WPMailSMTP\Vendor\GuzzleHttp\Client(); - $this->config = $config ?: new \WPMailSMTP\Vendor\SendinBlue\Client\Configuration(); - $this->headerSelector = $selector ?: new \WPMailSMTP\Vendor\SendinBlue\Client\HeaderSelector(); - } - /** - * @return Configuration - */ - public function getConfig() - { - return $this->config; - } - /** - * Operation createSmtpTemplate - * - * Create an email template - * - * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreateModel - */ - public function createSmtpTemplate($smtpTemplate) - { - list($response) = $this->createSmtpTemplateWithHttpInfo($smtpTemplate); - return $response; - } - /** - * Operation createSmtpTemplateWithHttpInfo - * - * Create an email template - * - * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreateModel, HTTP status code, HTTP response headers (array of strings) - */ - public function createSmtpTemplateWithHttpInfo($smtpTemplate) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createSmtpTemplateRequest($smtpTemplate); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation createSmtpTemplateAsync - * - * Create an email template - * - * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createSmtpTemplateAsync($smtpTemplate) - { - return $this->createSmtpTemplateAsyncWithHttpInfo($smtpTemplate)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation createSmtpTemplateAsyncWithHttpInfo - * - * Create an email template - * - * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createSmtpTemplateAsyncWithHttpInfo($smtpTemplate) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createSmtpTemplateRequest($smtpTemplate); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'createSmtpTemplate' - * - * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function createSmtpTemplateRequest($smtpTemplate) - { - // verify the required parameter 'smtpTemplate' is set - if ($smtpTemplate === null || \is_array($smtpTemplate) && \count($smtpTemplate) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $smtpTemplate when calling createSmtpTemplate'); - } - $resourcePath = '/smtp/templates'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($smtpTemplate)) { - $_tempBody = $smtpTemplate; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation deleteHardbounces - * - * Delete hardbounces - * - * @param \SendinBlue\Client\Model\DeleteHardbounces $deleteHardbounces values to delete hardbounces (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function deleteHardbounces($deleteHardbounces = null) - { - $this->deleteHardbouncesWithHttpInfo($deleteHardbounces); - } - /** - * Operation deleteHardbouncesWithHttpInfo - * - * Delete hardbounces - * - * @param \SendinBlue\Client\Model\DeleteHardbounces $deleteHardbounces values to delete hardbounces (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function deleteHardbouncesWithHttpInfo($deleteHardbounces = null) - { - $returnType = ''; - $request = $this->deleteHardbouncesRequest($deleteHardbounces); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation deleteHardbouncesAsync - * - * Delete hardbounces - * - * @param \SendinBlue\Client\Model\DeleteHardbounces $deleteHardbounces values to delete hardbounces (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteHardbouncesAsync($deleteHardbounces = null) - { - return $this->deleteHardbouncesAsyncWithHttpInfo($deleteHardbounces)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation deleteHardbouncesAsyncWithHttpInfo - * - * Delete hardbounces - * - * @param \SendinBlue\Client\Model\DeleteHardbounces $deleteHardbounces values to delete hardbounces (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteHardbouncesAsyncWithHttpInfo($deleteHardbounces = null) - { - $returnType = ''; - $request = $this->deleteHardbouncesRequest($deleteHardbounces); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'deleteHardbounces' - * - * @param \SendinBlue\Client\Model\DeleteHardbounces $deleteHardbounces values to delete hardbounces (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function deleteHardbouncesRequest($deleteHardbounces = null) - { - $resourcePath = '/smtp/deleteHardbounces'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($deleteHardbounces)) { - $_tempBody = $deleteHardbounces; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation deleteSmtpTemplate - * - * Delete an inactive email template - * - * @param int $templateId id of the template (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function deleteSmtpTemplate($templateId) - { - $this->deleteSmtpTemplateWithHttpInfo($templateId); - } - /** - * Operation deleteSmtpTemplateWithHttpInfo - * - * Delete an inactive email template - * - * @param int $templateId id of the template (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function deleteSmtpTemplateWithHttpInfo($templateId) - { - $returnType = ''; - $request = $this->deleteSmtpTemplateRequest($templateId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation deleteSmtpTemplateAsync - * - * Delete an inactive email template - * - * @param int $templateId id of the template (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteSmtpTemplateAsync($templateId) - { - return $this->deleteSmtpTemplateAsyncWithHttpInfo($templateId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation deleteSmtpTemplateAsyncWithHttpInfo - * - * Delete an inactive email template - * - * @param int $templateId id of the template (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteSmtpTemplateAsyncWithHttpInfo($templateId) - { - $returnType = ''; - $request = $this->deleteSmtpTemplateRequest($templateId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'deleteSmtpTemplate' - * - * @param int $templateId id of the template (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function deleteSmtpTemplateRequest($templateId) - { - // verify the required parameter 'templateId' is set - if ($templateId === null || \is_array($templateId) && \count($templateId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $templateId when calling deleteSmtpTemplate'); - } - $resourcePath = '/smtp/templates/{templateId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($templateId !== null) { - $resourcePath = \str_replace('{' . 'templateId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($templateId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getAggregatedSmtpReport - * - * Get your transactional email activity aggregated over a period of time - * - * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) - * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $tag Tag of the emails (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetAggregatedReport - */ - public function getAggregatedSmtpReport($startDate = null, $endDate = null, $days = null, $tag = null) - { - list($response) = $this->getAggregatedSmtpReportWithHttpInfo($startDate, $endDate, $days, $tag); - return $response; - } - /** - * Operation getAggregatedSmtpReportWithHttpInfo - * - * Get your transactional email activity aggregated over a period of time - * - * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) - * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $tag Tag of the emails (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetAggregatedReport, HTTP status code, HTTP response headers (array of strings) - */ - public function getAggregatedSmtpReportWithHttpInfo($startDate = null, $endDate = null, $days = null, $tag = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAggregatedReport'; - $request = $this->getAggregatedSmtpReportRequest($startDate, $endDate, $days, $tag); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAggregatedReport', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getAggregatedSmtpReportAsync - * - * Get your transactional email activity aggregated over a period of time - * - * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) - * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $tag Tag of the emails (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getAggregatedSmtpReportAsync($startDate = null, $endDate = null, $days = null, $tag = null) - { - return $this->getAggregatedSmtpReportAsyncWithHttpInfo($startDate, $endDate, $days, $tag)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getAggregatedSmtpReportAsyncWithHttpInfo - * - * Get your transactional email activity aggregated over a period of time - * - * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) - * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $tag Tag of the emails (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getAggregatedSmtpReportAsyncWithHttpInfo($startDate = null, $endDate = null, $days = null, $tag = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAggregatedReport'; - $request = $this->getAggregatedSmtpReportRequest($startDate, $endDate, $days, $tag); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getAggregatedSmtpReport' - * - * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) - * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $tag Tag of the emails (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getAggregatedSmtpReportRequest($startDate = null, $endDate = null, $days = null, $tag = null) - { - $resourcePath = '/smtp/statistics/aggregatedReport'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($startDate !== null) { - $queryParams['startDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($startDate); - } - // query params - if ($endDate !== null) { - $queryParams['endDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($endDate); - } - // query params - if ($days !== null) { - $queryParams['days'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($days); - } - // query params - if ($tag !== null) { - $queryParams['tag'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($tag); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getEmailEventReport - * - * Get all your transactional email activity (unaggregated events) - * - * @param int $limit Number limitation for the result returned (optional, default to 50) - * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) - * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) - * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $email Filter the report for a specific email addresses (optional) - * @param string $event Filter the report for a specific event type (optional) - * @param string $tags Filter the report for tags (serialized and urlencoded array) (optional) - * @param string $messageId Filter on a specific message id (optional) - * @param int $templateId Filter on a specific template id (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetEmailEventReport - */ - public function getEmailEventReport($limit = '50', $offset = '0', $startDate = null, $endDate = null, $days = null, $email = null, $event = null, $tags = null, $messageId = null, $templateId = null) - { - list($response) = $this->getEmailEventReportWithHttpInfo($limit, $offset, $startDate, $endDate, $days, $email, $event, $tags, $messageId, $templateId); - return $response; - } - /** - * Operation getEmailEventReportWithHttpInfo - * - * Get all your transactional email activity (unaggregated events) - * - * @param int $limit Number limitation for the result returned (optional, default to 50) - * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) - * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) - * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $email Filter the report for a specific email addresses (optional) - * @param string $event Filter the report for a specific event type (optional) - * @param string $tags Filter the report for tags (serialized and urlencoded array) (optional) - * @param string $messageId Filter on a specific message id (optional) - * @param int $templateId Filter on a specific template id (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetEmailEventReport, HTTP status code, HTTP response headers (array of strings) - */ - public function getEmailEventReportWithHttpInfo($limit = '50', $offset = '0', $startDate = null, $endDate = null, $days = null, $email = null, $event = null, $tags = null, $messageId = null, $templateId = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailEventReport'; - $request = $this->getEmailEventReportRequest($limit, $offset, $startDate, $endDate, $days, $email, $event, $tags, $messageId, $templateId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailEventReport', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getEmailEventReportAsync - * - * Get all your transactional email activity (unaggregated events) - * - * @param int $limit Number limitation for the result returned (optional, default to 50) - * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) - * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) - * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $email Filter the report for a specific email addresses (optional) - * @param string $event Filter the report for a specific event type (optional) - * @param string $tags Filter the report for tags (serialized and urlencoded array) (optional) - * @param string $messageId Filter on a specific message id (optional) - * @param int $templateId Filter on a specific template id (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getEmailEventReportAsync($limit = '50', $offset = '0', $startDate = null, $endDate = null, $days = null, $email = null, $event = null, $tags = null, $messageId = null, $templateId = null) - { - return $this->getEmailEventReportAsyncWithHttpInfo($limit, $offset, $startDate, $endDate, $days, $email, $event, $tags, $messageId, $templateId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getEmailEventReportAsyncWithHttpInfo - * - * Get all your transactional email activity (unaggregated events) - * - * @param int $limit Number limitation for the result returned (optional, default to 50) - * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) - * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) - * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $email Filter the report for a specific email addresses (optional) - * @param string $event Filter the report for a specific event type (optional) - * @param string $tags Filter the report for tags (serialized and urlencoded array) (optional) - * @param string $messageId Filter on a specific message id (optional) - * @param int $templateId Filter on a specific template id (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getEmailEventReportAsyncWithHttpInfo($limit = '50', $offset = '0', $startDate = null, $endDate = null, $days = null, $email = null, $event = null, $tags = null, $messageId = null, $templateId = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailEventReport'; - $request = $this->getEmailEventReportRequest($limit, $offset, $startDate, $endDate, $days, $email, $event, $tags, $messageId, $templateId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getEmailEventReport' - * - * @param int $limit Number limitation for the result returned (optional, default to 50) - * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) - * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) - * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $email Filter the report for a specific email addresses (optional) - * @param string $event Filter the report for a specific event type (optional) - * @param string $tags Filter the report for tags (serialized and urlencoded array) (optional) - * @param string $messageId Filter on a specific message id (optional) - * @param int $templateId Filter on a specific template id (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getEmailEventReportRequest($limit = '50', $offset = '0', $startDate = null, $endDate = null, $days = null, $email = null, $event = null, $tags = null, $messageId = null, $templateId = null) - { - if ($limit !== null && $limit > 100) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling SMTPApi.getEmailEventReport, must be smaller than or equal to 100.'); - } - $resourcePath = '/smtp/statistics/events'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // query params - if ($startDate !== null) { - $queryParams['startDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($startDate); - } - // query params - if ($endDate !== null) { - $queryParams['endDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($endDate); - } - // query params - if ($days !== null) { - $queryParams['days'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($days); - } - // query params - if ($email !== null) { - $queryParams['email'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($email); - } - // query params - if ($event !== null) { - $queryParams['event'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($event); - } - // query params - if ($tags !== null) { - $queryParams['tags'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($tags); - } - // query params - if ($messageId !== null) { - $queryParams['messageId'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($messageId); - } - // query params - if ($templateId !== null) { - $queryParams['templateId'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($templateId); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getSmtpReport - * - * Get your transactional email activity aggregated per day - * - * @param int $limit Number of documents returned per page (optional, default to 10) - * @param int $offset Index of the first document on the page (optional, default to 0) - * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD) (optional) - * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD) (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $tag Tag of the emails (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetReports - */ - public function getSmtpReport($limit = '10', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null) - { - list($response) = $this->getSmtpReportWithHttpInfo($limit, $offset, $startDate, $endDate, $days, $tag); - return $response; - } - /** - * Operation getSmtpReportWithHttpInfo - * - * Get your transactional email activity aggregated per day - * - * @param int $limit Number of documents returned per page (optional, default to 10) - * @param int $offset Index of the first document on the page (optional, default to 0) - * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD) (optional) - * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD) (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $tag Tag of the emails (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetReports, HTTP status code, HTTP response headers (array of strings) - */ - public function getSmtpReportWithHttpInfo($limit = '10', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetReports'; - $request = $this->getSmtpReportRequest($limit, $offset, $startDate, $endDate, $days, $tag); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetReports', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getSmtpReportAsync - * - * Get your transactional email activity aggregated per day - * - * @param int $limit Number of documents returned per page (optional, default to 10) - * @param int $offset Index of the first document on the page (optional, default to 0) - * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD) (optional) - * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD) (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $tag Tag of the emails (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSmtpReportAsync($limit = '10', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null) - { - return $this->getSmtpReportAsyncWithHttpInfo($limit, $offset, $startDate, $endDate, $days, $tag)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getSmtpReportAsyncWithHttpInfo - * - * Get your transactional email activity aggregated per day - * - * @param int $limit Number of documents returned per page (optional, default to 10) - * @param int $offset Index of the first document on the page (optional, default to 0) - * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD) (optional) - * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD) (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $tag Tag of the emails (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSmtpReportAsyncWithHttpInfo($limit = '10', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetReports'; - $request = $this->getSmtpReportRequest($limit, $offset, $startDate, $endDate, $days, $tag); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getSmtpReport' - * - * @param int $limit Number of documents returned per page (optional, default to 10) - * @param int $offset Index of the first document on the page (optional, default to 0) - * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD) (optional) - * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD) (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $tag Tag of the emails (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getSmtpReportRequest($limit = '10', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null) - { - if ($limit !== null && $limit > 30) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling SMTPApi.getSmtpReport, must be smaller than or equal to 30.'); - } - $resourcePath = '/smtp/statistics/reports'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // query params - if ($startDate !== null) { - $queryParams['startDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($startDate); - } - // query params - if ($endDate !== null) { - $queryParams['endDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($endDate); - } - // query params - if ($days !== null) { - $queryParams['days'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($days); - } - // query params - if ($tag !== null) { - $queryParams['tag'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($tag); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getSmtpTemplate - * - * Returns the template information - * - * @param int $templateId id of the template (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetSmtpTemplateOverview - */ - public function getSmtpTemplate($templateId) - { - list($response) = $this->getSmtpTemplateWithHttpInfo($templateId); - return $response; - } - /** - * Operation getSmtpTemplateWithHttpInfo - * - * Returns the template information - * - * @param int $templateId id of the template (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetSmtpTemplateOverview, HTTP status code, HTTP response headers (array of strings) - */ - public function getSmtpTemplateWithHttpInfo($templateId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmtpTemplateOverview'; - $request = $this->getSmtpTemplateRequest($templateId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmtpTemplateOverview', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getSmtpTemplateAsync - * - * Returns the template information - * - * @param int $templateId id of the template (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSmtpTemplateAsync($templateId) - { - return $this->getSmtpTemplateAsyncWithHttpInfo($templateId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getSmtpTemplateAsyncWithHttpInfo - * - * Returns the template information - * - * @param int $templateId id of the template (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSmtpTemplateAsyncWithHttpInfo($templateId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmtpTemplateOverview'; - $request = $this->getSmtpTemplateRequest($templateId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getSmtpTemplate' - * - * @param int $templateId id of the template (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getSmtpTemplateRequest($templateId) - { - // verify the required parameter 'templateId' is set - if ($templateId === null || \is_array($templateId) && \count($templateId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $templateId when calling getSmtpTemplate'); - } - $resourcePath = '/smtp/templates/{templateId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($templateId !== null) { - $resourcePath = \str_replace('{' . 'templateId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($templateId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getSmtpTemplates - * - * Get the list of email templates - * - * @param bool $templateStatus Filter on the status of the template. Active = true, inactive = false (optional) - * @param int $limit Number of documents returned per page (optional, default to 50) - * @param int $offset Index of the first document in the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetSmtpTemplates - */ - public function getSmtpTemplates($templateStatus = null, $limit = '50', $offset = '0') - { - list($response) = $this->getSmtpTemplatesWithHttpInfo($templateStatus, $limit, $offset); - return $response; - } - /** - * Operation getSmtpTemplatesWithHttpInfo - * - * Get the list of email templates - * - * @param bool $templateStatus Filter on the status of the template. Active = true, inactive = false (optional) - * @param int $limit Number of documents returned per page (optional, default to 50) - * @param int $offset Index of the first document in the page (optional, default to 0) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetSmtpTemplates, HTTP status code, HTTP response headers (array of strings) - */ - public function getSmtpTemplatesWithHttpInfo($templateStatus = null, $limit = '50', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmtpTemplates'; - $request = $this->getSmtpTemplatesRequest($templateStatus, $limit, $offset); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmtpTemplates', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getSmtpTemplatesAsync - * - * Get the list of email templates - * - * @param bool $templateStatus Filter on the status of the template. Active = true, inactive = false (optional) - * @param int $limit Number of documents returned per page (optional, default to 50) - * @param int $offset Index of the first document in the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSmtpTemplatesAsync($templateStatus = null, $limit = '50', $offset = '0') - { - return $this->getSmtpTemplatesAsyncWithHttpInfo($templateStatus, $limit, $offset)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getSmtpTemplatesAsyncWithHttpInfo - * - * Get the list of email templates - * - * @param bool $templateStatus Filter on the status of the template. Active = true, inactive = false (optional) - * @param int $limit Number of documents returned per page (optional, default to 50) - * @param int $offset Index of the first document in the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSmtpTemplatesAsyncWithHttpInfo($templateStatus = null, $limit = '50', $offset = '0') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmtpTemplates'; - $request = $this->getSmtpTemplatesRequest($templateStatus, $limit, $offset); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getSmtpTemplates' - * - * @param bool $templateStatus Filter on the status of the template. Active = true, inactive = false (optional) - * @param int $limit Number of documents returned per page (optional, default to 50) - * @param int $offset Index of the first document in the page (optional, default to 0) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getSmtpTemplatesRequest($templateStatus = null, $limit = '50', $offset = '0') - { - if ($limit !== null && $limit > 1000) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling SMTPApi.getSmtpTemplates, must be smaller than or equal to 1000.'); - } - $resourcePath = '/smtp/templates'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($templateStatus !== null) { - $queryParams['templateStatus'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($templateStatus); - } - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getTransacBlockedContacts - * - * Get the list of blocked or unsubscribed transactional contacts - * - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the blocked or unsubscribed contacts (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the blocked or unsubscribed contacts (optional) - * @param int $limit Number of documents returned per page (optional, default to 50) - * @param int $offset Index of the first document on the page (optional, default to 0) - * @param string[] $senders Comma separated list of emails of the senders from which contacts are blocked or unsubscribed (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetTransacBlockedContacts - */ - public function getTransacBlockedContacts($startDate = null, $endDate = null, $limit = '50', $offset = '0', $senders = null) - { - list($response) = $this->getTransacBlockedContactsWithHttpInfo($startDate, $endDate, $limit, $offset, $senders); - return $response; - } - /** - * Operation getTransacBlockedContactsWithHttpInfo - * - * Get the list of blocked or unsubscribed transactional contacts - * - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the blocked or unsubscribed contacts (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the blocked or unsubscribed contacts (optional) - * @param int $limit Number of documents returned per page (optional, default to 50) - * @param int $offset Index of the first document on the page (optional, default to 0) - * @param string[] $senders Comma separated list of emails of the senders from which contacts are blocked or unsubscribed (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetTransacBlockedContacts, HTTP status code, HTTP response headers (array of strings) - */ - public function getTransacBlockedContactsWithHttpInfo($startDate = null, $endDate = null, $limit = '50', $offset = '0', $senders = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacBlockedContacts'; - $request = $this->getTransacBlockedContactsRequest($startDate, $endDate, $limit, $offset, $senders); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacBlockedContacts', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getTransacBlockedContactsAsync - * - * Get the list of blocked or unsubscribed transactional contacts - * - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the blocked or unsubscribed contacts (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the blocked or unsubscribed contacts (optional) - * @param int $limit Number of documents returned per page (optional, default to 50) - * @param int $offset Index of the first document on the page (optional, default to 0) - * @param string[] $senders Comma separated list of emails of the senders from which contacts are blocked or unsubscribed (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getTransacBlockedContactsAsync($startDate = null, $endDate = null, $limit = '50', $offset = '0', $senders = null) - { - return $this->getTransacBlockedContactsAsyncWithHttpInfo($startDate, $endDate, $limit, $offset, $senders)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getTransacBlockedContactsAsyncWithHttpInfo - * - * Get the list of blocked or unsubscribed transactional contacts - * - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the blocked or unsubscribed contacts (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the blocked or unsubscribed contacts (optional) - * @param int $limit Number of documents returned per page (optional, default to 50) - * @param int $offset Index of the first document on the page (optional, default to 0) - * @param string[] $senders Comma separated list of emails of the senders from which contacts are blocked or unsubscribed (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getTransacBlockedContactsAsyncWithHttpInfo($startDate = null, $endDate = null, $limit = '50', $offset = '0', $senders = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacBlockedContacts'; - $request = $this->getTransacBlockedContactsRequest($startDate, $endDate, $limit, $offset, $senders); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getTransacBlockedContacts' - * - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the blocked or unsubscribed contacts (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the blocked or unsubscribed contacts (optional) - * @param int $limit Number of documents returned per page (optional, default to 50) - * @param int $offset Index of the first document on the page (optional, default to 0) - * @param string[] $senders Comma separated list of emails of the senders from which contacts are blocked or unsubscribed (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getTransacBlockedContactsRequest($startDate = null, $endDate = null, $limit = '50', $offset = '0', $senders = null) - { - if ($limit !== null && $limit > 100) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling SMTPApi.getTransacBlockedContacts, must be smaller than or equal to 100.'); - } - $resourcePath = '/smtp/blockedContacts'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($startDate !== null) { - $queryParams['startDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($startDate); - } - // query params - if ($endDate !== null) { - $queryParams['endDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($endDate); - } - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // query params - if (\is_array($senders)) { - $queryParams['senders'] = $senders; - } else { - if ($senders !== null) { - $queryParams['senders'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($senders); - } - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getTransacEmailContent - * - * Get the personalized content of a sent transactional email - * - * @param string $uuid Unique id of the transactional email that has been sent to a particular contact (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetTransacEmailContent - */ - public function getTransacEmailContent($uuid) - { - list($response) = $this->getTransacEmailContentWithHttpInfo($uuid); - return $response; - } - /** - * Operation getTransacEmailContentWithHttpInfo - * - * Get the personalized content of a sent transactional email - * - * @param string $uuid Unique id of the transactional email that has been sent to a particular contact (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetTransacEmailContent, HTTP status code, HTTP response headers (array of strings) - */ - public function getTransacEmailContentWithHttpInfo($uuid) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailContent'; - $request = $this->getTransacEmailContentRequest($uuid); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailContent', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getTransacEmailContentAsync - * - * Get the personalized content of a sent transactional email - * - * @param string $uuid Unique id of the transactional email that has been sent to a particular contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getTransacEmailContentAsync($uuid) - { - return $this->getTransacEmailContentAsyncWithHttpInfo($uuid)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getTransacEmailContentAsyncWithHttpInfo - * - * Get the personalized content of a sent transactional email - * - * @param string $uuid Unique id of the transactional email that has been sent to a particular contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getTransacEmailContentAsyncWithHttpInfo($uuid) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailContent'; - $request = $this->getTransacEmailContentRequest($uuid); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getTransacEmailContent' - * - * @param string $uuid Unique id of the transactional email that has been sent to a particular contact (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getTransacEmailContentRequest($uuid) - { - // verify the required parameter 'uuid' is set - if ($uuid === null || \is_array($uuid) && \count($uuid) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $uuid when calling getTransacEmailContent'); - } - $resourcePath = '/smtp/emails/{uuid}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($uuid !== null) { - $resourcePath = \str_replace('{' . 'uuid' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($uuid), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getTransacEmailsList - * - * Get the list of transactional emails on the basis of allowed filters - * - * @param string $email Mandatory if templateId and messageId are not passed in query filters. Email address to which transactional email has been sent. (optional) - * @param int $templateId Mandatory if email and messageId are not passed in query filters. Id of the template that was used to compose transactional email. (optional) - * @param string $messageId Mandatory if templateId and email are not passed in query filters. Message ID of the transactional email sent. (optional) - * @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Maximum time period that can be selected is one month. (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the list. Maximum time period that can be selected is one month. (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetTransacEmailsList - */ - public function getTransacEmailsList($email = null, $templateId = null, $messageId = null, $startDate = null, $endDate = null) - { - list($response) = $this->getTransacEmailsListWithHttpInfo($email, $templateId, $messageId, $startDate, $endDate); - return $response; - } - /** - * Operation getTransacEmailsListWithHttpInfo - * - * Get the list of transactional emails on the basis of allowed filters - * - * @param string $email Mandatory if templateId and messageId are not passed in query filters. Email address to which transactional email has been sent. (optional) - * @param int $templateId Mandatory if email and messageId are not passed in query filters. Id of the template that was used to compose transactional email. (optional) - * @param string $messageId Mandatory if templateId and email are not passed in query filters. Message ID of the transactional email sent. (optional) - * @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Maximum time period that can be selected is one month. (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the list. Maximum time period that can be selected is one month. (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetTransacEmailsList, HTTP status code, HTTP response headers (array of strings) - */ - public function getTransacEmailsListWithHttpInfo($email = null, $templateId = null, $messageId = null, $startDate = null, $endDate = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailsList'; - $request = $this->getTransacEmailsListRequest($email, $templateId, $messageId, $startDate, $endDate); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailsList', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getTransacEmailsListAsync - * - * Get the list of transactional emails on the basis of allowed filters - * - * @param string $email Mandatory if templateId and messageId are not passed in query filters. Email address to which transactional email has been sent. (optional) - * @param int $templateId Mandatory if email and messageId are not passed in query filters. Id of the template that was used to compose transactional email. (optional) - * @param string $messageId Mandatory if templateId and email are not passed in query filters. Message ID of the transactional email sent. (optional) - * @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Maximum time period that can be selected is one month. (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the list. Maximum time period that can be selected is one month. (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getTransacEmailsListAsync($email = null, $templateId = null, $messageId = null, $startDate = null, $endDate = null) - { - return $this->getTransacEmailsListAsyncWithHttpInfo($email, $templateId, $messageId, $startDate, $endDate)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getTransacEmailsListAsyncWithHttpInfo - * - * Get the list of transactional emails on the basis of allowed filters - * - * @param string $email Mandatory if templateId and messageId are not passed in query filters. Email address to which transactional email has been sent. (optional) - * @param int $templateId Mandatory if email and messageId are not passed in query filters. Id of the template that was used to compose transactional email. (optional) - * @param string $messageId Mandatory if templateId and email are not passed in query filters. Message ID of the transactional email sent. (optional) - * @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Maximum time period that can be selected is one month. (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the list. Maximum time period that can be selected is one month. (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getTransacEmailsListAsyncWithHttpInfo($email = null, $templateId = null, $messageId = null, $startDate = null, $endDate = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailsList'; - $request = $this->getTransacEmailsListRequest($email, $templateId, $messageId, $startDate, $endDate); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getTransacEmailsList' - * - * @param string $email Mandatory if templateId and messageId are not passed in query filters. Email address to which transactional email has been sent. (optional) - * @param int $templateId Mandatory if email and messageId are not passed in query filters. Id of the template that was used to compose transactional email. (optional) - * @param string $messageId Mandatory if templateId and email are not passed in query filters. Message ID of the transactional email sent. (optional) - * @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Maximum time period that can be selected is one month. (optional) - * @param \DateTime $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the list. Maximum time period that can be selected is one month. (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getTransacEmailsListRequest($email = null, $templateId = null, $messageId = null, $startDate = null, $endDate = null) - { - $resourcePath = '/smtp/emails'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($email !== null) { - $queryParams['email'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($email); - } - // query params - if ($templateId !== null) { - $queryParams['templateId'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($templateId); - } - // query params - if ($messageId !== null) { - $queryParams['messageId'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($messageId); - } - // query params - if ($startDate !== null) { - $queryParams['startDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($startDate); - } - // query params - if ($endDate !== null) { - $queryParams['endDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($endDate); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation sendTemplate - * - * Send a template - * - * @param int $templateId Id of the template (required) - * @param \SendinBlue\Client\Model\SendEmail $sendEmail sendEmail (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\SendTemplateEmail - */ - public function sendTemplate($templateId, $sendEmail) - { - list($response) = $this->sendTemplateWithHttpInfo($templateId, $sendEmail); - return $response; - } - /** - * Operation sendTemplateWithHttpInfo - * - * Send a template - * - * @param int $templateId Id of the template (required) - * @param \SendinBlue\Client\Model\SendEmail $sendEmail (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\SendTemplateEmail, HTTP status code, HTTP response headers (array of strings) - */ - public function sendTemplateWithHttpInfo($templateId, $sendEmail) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendTemplateEmail'; - $request = $this->sendTemplateRequest($templateId, $sendEmail); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendTemplateEmail', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostSendFailed', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation sendTemplateAsync - * - * Send a template - * - * @param int $templateId Id of the template (required) - * @param \SendinBlue\Client\Model\SendEmail $sendEmail (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendTemplateAsync($templateId, $sendEmail) - { - return $this->sendTemplateAsyncWithHttpInfo($templateId, $sendEmail)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation sendTemplateAsyncWithHttpInfo - * - * Send a template - * - * @param int $templateId Id of the template (required) - * @param \SendinBlue\Client\Model\SendEmail $sendEmail (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendTemplateAsyncWithHttpInfo($templateId, $sendEmail) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendTemplateEmail'; - $request = $this->sendTemplateRequest($templateId, $sendEmail); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'sendTemplate' - * - * @param int $templateId Id of the template (required) - * @param \SendinBlue\Client\Model\SendEmail $sendEmail (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function sendTemplateRequest($templateId, $sendEmail) - { - // verify the required parameter 'templateId' is set - if ($templateId === null || \is_array($templateId) && \count($templateId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $templateId when calling sendTemplate'); - } - // verify the required parameter 'sendEmail' is set - if ($sendEmail === null || \is_array($sendEmail) && \count($sendEmail) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $sendEmail when calling sendTemplate'); - } - $resourcePath = '/smtp/templates/{templateId}/send'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($templateId !== null) { - $resourcePath = \str_replace('{' . 'templateId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($templateId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($sendEmail)) { - $_tempBody = $sendEmail; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation sendTestTemplate - * - * Send a template to your test list - * - * @param int $templateId Id of the template (required) - * @param \SendinBlue\Client\Model\SendTestEmail $sendTestEmail sendTestEmail (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function sendTestTemplate($templateId, $sendTestEmail) - { - $this->sendTestTemplateWithHttpInfo($templateId, $sendTestEmail); - } - /** - * Operation sendTestTemplateWithHttpInfo - * - * Send a template to your test list - * - * @param int $templateId Id of the template (required) - * @param \SendinBlue\Client\Model\SendTestEmail $sendTestEmail (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function sendTestTemplateWithHttpInfo($templateId, $sendTestEmail) - { - $returnType = ''; - $request = $this->sendTestTemplateRequest($templateId, $sendTestEmail); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostSendFailed', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation sendTestTemplateAsync - * - * Send a template to your test list - * - * @param int $templateId Id of the template (required) - * @param \SendinBlue\Client\Model\SendTestEmail $sendTestEmail (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendTestTemplateAsync($templateId, $sendTestEmail) - { - return $this->sendTestTemplateAsyncWithHttpInfo($templateId, $sendTestEmail)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation sendTestTemplateAsyncWithHttpInfo - * - * Send a template to your test list - * - * @param int $templateId Id of the template (required) - * @param \SendinBlue\Client\Model\SendTestEmail $sendTestEmail (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendTestTemplateAsyncWithHttpInfo($templateId, $sendTestEmail) - { - $returnType = ''; - $request = $this->sendTestTemplateRequest($templateId, $sendTestEmail); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'sendTestTemplate' - * - * @param int $templateId Id of the template (required) - * @param \SendinBlue\Client\Model\SendTestEmail $sendTestEmail (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function sendTestTemplateRequest($templateId, $sendTestEmail) - { - // verify the required parameter 'templateId' is set - if ($templateId === null || \is_array($templateId) && \count($templateId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $templateId when calling sendTestTemplate'); - } - // verify the required parameter 'sendTestEmail' is set - if ($sendTestEmail === null || \is_array($sendTestEmail) && \count($sendTestEmail) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $sendTestEmail when calling sendTestTemplate'); - } - $resourcePath = '/smtp/templates/{templateId}/sendTest'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($templateId !== null) { - $resourcePath = \str_replace('{' . 'templateId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($templateId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($sendTestEmail)) { - $_tempBody = $sendTestEmail; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation sendTransacEmail - * - * Send a transactional email - * - * @param \SendinBlue\Client\Model\SendSmtpEmail $sendSmtpEmail Values to send a transactional email (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreateSmtpEmail - */ - public function sendTransacEmail($sendSmtpEmail) - { - list($response) = $this->sendTransacEmailWithHttpInfo($sendSmtpEmail); - return $response; - } - /** - * Operation sendTransacEmailWithHttpInfo - * - * Send a transactional email - * - * @param \SendinBlue\Client\Model\SendSmtpEmail $sendSmtpEmail Values to send a transactional email (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreateSmtpEmail, HTTP status code, HTTP response headers (array of strings) - */ - public function sendTransacEmailWithHttpInfo($sendSmtpEmail) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmtpEmail'; - $request = $this->sendTransacEmailRequest($sendSmtpEmail); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmtpEmail', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation sendTransacEmailAsync - * - * Send a transactional email - * - * @param \SendinBlue\Client\Model\SendSmtpEmail $sendSmtpEmail Values to send a transactional email (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendTransacEmailAsync($sendSmtpEmail) - { - return $this->sendTransacEmailAsyncWithHttpInfo($sendSmtpEmail)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation sendTransacEmailAsyncWithHttpInfo - * - * Send a transactional email - * - * @param \SendinBlue\Client\Model\SendSmtpEmail $sendSmtpEmail Values to send a transactional email (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendTransacEmailAsyncWithHttpInfo($sendSmtpEmail) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmtpEmail'; - $request = $this->sendTransacEmailRequest($sendSmtpEmail); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'sendTransacEmail' - * - * @param \SendinBlue\Client\Model\SendSmtpEmail $sendSmtpEmail Values to send a transactional email (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function sendTransacEmailRequest($sendSmtpEmail) - { - // verify the required parameter 'sendSmtpEmail' is set - if ($sendSmtpEmail === null || \is_array($sendSmtpEmail) && \count($sendSmtpEmail) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $sendSmtpEmail when calling sendTransacEmail'); - } - $resourcePath = '/smtp/email'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($sendSmtpEmail)) { - $_tempBody = $sendSmtpEmail; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation smtpBlockedContactsEmailDelete - * - * Unblock or resubscribe a transactional contact - * - * @param string $email contact email (urlencoded) to unblock. (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function smtpBlockedContactsEmailDelete($email) - { - $this->smtpBlockedContactsEmailDeleteWithHttpInfo($email); - } - /** - * Operation smtpBlockedContactsEmailDeleteWithHttpInfo - * - * Unblock or resubscribe a transactional contact - * - * @param string $email contact email (urlencoded) to unblock. (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function smtpBlockedContactsEmailDeleteWithHttpInfo($email) - { - $returnType = ''; - $request = $this->smtpBlockedContactsEmailDeleteRequest($email); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation smtpBlockedContactsEmailDeleteAsync - * - * Unblock or resubscribe a transactional contact - * - * @param string $email contact email (urlencoded) to unblock. (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function smtpBlockedContactsEmailDeleteAsync($email) - { - return $this->smtpBlockedContactsEmailDeleteAsyncWithHttpInfo($email)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation smtpBlockedContactsEmailDeleteAsyncWithHttpInfo - * - * Unblock or resubscribe a transactional contact - * - * @param string $email contact email (urlencoded) to unblock. (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function smtpBlockedContactsEmailDeleteAsyncWithHttpInfo($email) - { - $returnType = ''; - $request = $this->smtpBlockedContactsEmailDeleteRequest($email); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'smtpBlockedContactsEmailDelete' - * - * @param string $email contact email (urlencoded) to unblock. (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function smtpBlockedContactsEmailDeleteRequest($email) - { - // verify the required parameter 'email' is set - if ($email === null || \is_array($email) && \count($email) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $email when calling smtpBlockedContactsEmailDelete'); - } - $resourcePath = '/smtp/blockedContacts/{email}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($email !== null) { - $resourcePath = \str_replace('{' . 'email' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($email), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation smtpLogMessageIdDelete - * - * Delete an SMTP transactional log - * - * @param string $messageId MessageId of the transactional log to delete (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function smtpLogMessageIdDelete($messageId) - { - $this->smtpLogMessageIdDeleteWithHttpInfo($messageId); - } - /** - * Operation smtpLogMessageIdDeleteWithHttpInfo - * - * Delete an SMTP transactional log - * - * @param string $messageId MessageId of the transactional log to delete (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function smtpLogMessageIdDeleteWithHttpInfo($messageId) - { - $returnType = ''; - $request = $this->smtpLogMessageIdDeleteRequest($messageId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation smtpLogMessageIdDeleteAsync - * - * Delete an SMTP transactional log - * - * @param string $messageId MessageId of the transactional log to delete (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function smtpLogMessageIdDeleteAsync($messageId) - { - return $this->smtpLogMessageIdDeleteAsyncWithHttpInfo($messageId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation smtpLogMessageIdDeleteAsyncWithHttpInfo - * - * Delete an SMTP transactional log - * - * @param string $messageId MessageId of the transactional log to delete (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function smtpLogMessageIdDeleteAsyncWithHttpInfo($messageId) - { - $returnType = ''; - $request = $this->smtpLogMessageIdDeleteRequest($messageId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'smtpLogMessageIdDelete' - * - * @param string $messageId MessageId of the transactional log to delete (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function smtpLogMessageIdDeleteRequest($messageId) - { - // verify the required parameter 'messageId' is set - if ($messageId === null || \is_array($messageId) && \count($messageId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $messageId when calling smtpLogMessageIdDelete'); - } - $resourcePath = '/smtp/log/{messageId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($messageId !== null) { - $resourcePath = \str_replace('{' . 'messageId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($messageId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateSmtpTemplate - * - * Update an email template - * - * @param int $templateId id of the template (required) - * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in transactional email template (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateSmtpTemplate($templateId, $smtpTemplate) - { - $this->updateSmtpTemplateWithHttpInfo($templateId, $smtpTemplate); - } - /** - * Operation updateSmtpTemplateWithHttpInfo - * - * Update an email template - * - * @param int $templateId id of the template (required) - * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in transactional email template (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateSmtpTemplateWithHttpInfo($templateId, $smtpTemplate) - { - $returnType = ''; - $request = $this->updateSmtpTemplateRequest($templateId, $smtpTemplate); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateSmtpTemplateAsync - * - * Update an email template - * - * @param int $templateId id of the template (required) - * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in transactional email template (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateSmtpTemplateAsync($templateId, $smtpTemplate) - { - return $this->updateSmtpTemplateAsyncWithHttpInfo($templateId, $smtpTemplate)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateSmtpTemplateAsyncWithHttpInfo - * - * Update an email template - * - * @param int $templateId id of the template (required) - * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in transactional email template (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateSmtpTemplateAsyncWithHttpInfo($templateId, $smtpTemplate) - { - $returnType = ''; - $request = $this->updateSmtpTemplateRequest($templateId, $smtpTemplate); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateSmtpTemplate' - * - * @param int $templateId id of the template (required) - * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in transactional email template (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateSmtpTemplateRequest($templateId, $smtpTemplate) - { - // verify the required parameter 'templateId' is set - if ($templateId === null || \is_array($templateId) && \count($templateId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $templateId when calling updateSmtpTemplate'); - } - // verify the required parameter 'smtpTemplate' is set - if ($smtpTemplate === null || \is_array($smtpTemplate) && \count($smtpTemplate) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $smtpTemplate when calling updateSmtpTemplate'); - } - $resourcePath = '/smtp/templates/{templateId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($templateId !== null) { - $resourcePath = \str_replace('{' . 'templateId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($templateId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($smtpTemplate)) { - $_tempBody = $smtpTemplate; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Create http client option - * - * @throws \RuntimeException on file opening failure - * @return array of http client options - */ - protected function createHttpClientOption() - { - $options = []; - if ($this->config->getDebug()) { - $options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG] = \fopen($this->config->getDebugFile(), 'a'); - if (!$options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG]) { - throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile()); - } - } - return $options; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SendersApi.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SendersApi.php deleted file mode 100644 index c703469..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/SendersApi.php +++ /dev/null @@ -1,1207 +0,0 @@ -client = $client ?: new \WPMailSMTP\Vendor\GuzzleHttp\Client(); - $this->config = $config ?: new \WPMailSMTP\Vendor\SendinBlue\Client\Configuration(); - $this->headerSelector = $selector ?: new \WPMailSMTP\Vendor\SendinBlue\Client\HeaderSelector(); - } - /** - * @return Configuration - */ - public function getConfig() - { - return $this->config; - } - /** - * Operation createSender - * - * Create a new sender - * - * @param \SendinBlue\Client\Model\CreateSender $sender sender's name (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreateSenderModel - */ - public function createSender($sender = null) - { - list($response) = $this->createSenderWithHttpInfo($sender); - return $response; - } - /** - * Operation createSenderWithHttpInfo - * - * Create a new sender - * - * @param \SendinBlue\Client\Model\CreateSender $sender sender's name (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreateSenderModel, HTTP status code, HTTP response headers (array of strings) - */ - public function createSenderWithHttpInfo($sender = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSenderModel'; - $request = $this->createSenderRequest($sender); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSenderModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation createSenderAsync - * - * Create a new sender - * - * @param \SendinBlue\Client\Model\CreateSender $sender sender's name (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createSenderAsync($sender = null) - { - return $this->createSenderAsyncWithHttpInfo($sender)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation createSenderAsyncWithHttpInfo - * - * Create a new sender - * - * @param \SendinBlue\Client\Model\CreateSender $sender sender's name (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createSenderAsyncWithHttpInfo($sender = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSenderModel'; - $request = $this->createSenderRequest($sender); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'createSender' - * - * @param \SendinBlue\Client\Model\CreateSender $sender sender's name (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function createSenderRequest($sender = null) - { - $resourcePath = '/senders'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($sender)) { - $_tempBody = $sender; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation deleteSender - * - * Delete a sender - * - * @param int $senderId Id of the sender (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function deleteSender($senderId) - { - $this->deleteSenderWithHttpInfo($senderId); - } - /** - * Operation deleteSenderWithHttpInfo - * - * Delete a sender - * - * @param int $senderId Id of the sender (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function deleteSenderWithHttpInfo($senderId) - { - $returnType = ''; - $request = $this->deleteSenderRequest($senderId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation deleteSenderAsync - * - * Delete a sender - * - * @param int $senderId Id of the sender (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteSenderAsync($senderId) - { - return $this->deleteSenderAsyncWithHttpInfo($senderId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation deleteSenderAsyncWithHttpInfo - * - * Delete a sender - * - * @param int $senderId Id of the sender (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteSenderAsyncWithHttpInfo($senderId) - { - $returnType = ''; - $request = $this->deleteSenderRequest($senderId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'deleteSender' - * - * @param int $senderId Id of the sender (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function deleteSenderRequest($senderId) - { - // verify the required parameter 'senderId' is set - if ($senderId === null || \is_array($senderId) && \count($senderId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $senderId when calling deleteSender'); - } - $resourcePath = '/senders/{senderId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($senderId !== null) { - $resourcePath = \str_replace('{' . 'senderId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($senderId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getIps - * - * Get all the dedicated IPs for your account - * - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetIps - */ - public function getIps() - { - list($response) = $this->getIpsWithHttpInfo(); - return $response; - } - /** - * Operation getIpsWithHttpInfo - * - * Get all the dedicated IPs for your account - * - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetIps, HTTP status code, HTTP response headers (array of strings) - */ - public function getIpsWithHttpInfo() - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIps'; - $request = $this->getIpsRequest(); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIps', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getIpsAsync - * - * Get all the dedicated IPs for your account - * - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getIpsAsync() - { - return $this->getIpsAsyncWithHttpInfo()->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getIpsAsyncWithHttpInfo - * - * Get all the dedicated IPs for your account - * - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getIpsAsyncWithHttpInfo() - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIps'; - $request = $this->getIpsRequest(); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getIps' - * - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getIpsRequest() - { - $resourcePath = '/senders/ips'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getIpsFromSender - * - * Get all the dedicated IPs for a sender - * - * @param int $senderId Id of the sender (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetIpsFromSender - */ - public function getIpsFromSender($senderId) - { - list($response) = $this->getIpsFromSenderWithHttpInfo($senderId); - return $response; - } - /** - * Operation getIpsFromSenderWithHttpInfo - * - * Get all the dedicated IPs for a sender - * - * @param int $senderId Id of the sender (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetIpsFromSender, HTTP status code, HTTP response headers (array of strings) - */ - public function getIpsFromSenderWithHttpInfo($senderId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIpsFromSender'; - $request = $this->getIpsFromSenderRequest($senderId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIpsFromSender', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getIpsFromSenderAsync - * - * Get all the dedicated IPs for a sender - * - * @param int $senderId Id of the sender (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getIpsFromSenderAsync($senderId) - { - return $this->getIpsFromSenderAsyncWithHttpInfo($senderId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getIpsFromSenderAsyncWithHttpInfo - * - * Get all the dedicated IPs for a sender - * - * @param int $senderId Id of the sender (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getIpsFromSenderAsyncWithHttpInfo($senderId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIpsFromSender'; - $request = $this->getIpsFromSenderRequest($senderId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getIpsFromSender' - * - * @param int $senderId Id of the sender (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getIpsFromSenderRequest($senderId) - { - // verify the required parameter 'senderId' is set - if ($senderId === null || \is_array($senderId) && \count($senderId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $senderId when calling getIpsFromSender'); - } - $resourcePath = '/senders/{senderId}/ips'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($senderId !== null) { - $resourcePath = \str_replace('{' . 'senderId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($senderId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getSenders - * - * Get the list of all your senders - * - * @param string $ip Filter your senders for a specific ip (available for dedicated IP usage only) (optional) - * @param string $domain Filter your senders for a specific domain (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetSendersList - */ - public function getSenders($ip = null, $domain = null) - { - list($response) = $this->getSendersWithHttpInfo($ip, $domain); - return $response; - } - /** - * Operation getSendersWithHttpInfo - * - * Get the list of all your senders - * - * @param string $ip Filter your senders for a specific ip (available for dedicated IP usage only) (optional) - * @param string $domain Filter your senders for a specific domain (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetSendersList, HTTP status code, HTTP response headers (array of strings) - */ - public function getSendersWithHttpInfo($ip = null, $domain = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSendersList'; - $request = $this->getSendersRequest($ip, $domain); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSendersList', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getSendersAsync - * - * Get the list of all your senders - * - * @param string $ip Filter your senders for a specific ip (available for dedicated IP usage only) (optional) - * @param string $domain Filter your senders for a specific domain (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSendersAsync($ip = null, $domain = null) - { - return $this->getSendersAsyncWithHttpInfo($ip, $domain)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getSendersAsyncWithHttpInfo - * - * Get the list of all your senders - * - * @param string $ip Filter your senders for a specific ip (available for dedicated IP usage only) (optional) - * @param string $domain Filter your senders for a specific domain (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSendersAsyncWithHttpInfo($ip = null, $domain = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSendersList'; - $request = $this->getSendersRequest($ip, $domain); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getSenders' - * - * @param string $ip Filter your senders for a specific ip (available for dedicated IP usage only) (optional) - * @param string $domain Filter your senders for a specific domain (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getSendersRequest($ip = null, $domain = null) - { - $resourcePath = '/senders'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($ip !== null) { - $queryParams['ip'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($ip); - } - // query params - if ($domain !== null) { - $queryParams['domain'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($domain); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateSender - * - * Update a sender - * - * @param int $senderId Id of the sender (required) - * @param \SendinBlue\Client\Model\UpdateSender $sender sender's name (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateSender($senderId, $sender = null) - { - $this->updateSenderWithHttpInfo($senderId, $sender); - } - /** - * Operation updateSenderWithHttpInfo - * - * Update a sender - * - * @param int $senderId Id of the sender (required) - * @param \SendinBlue\Client\Model\UpdateSender $sender sender's name (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateSenderWithHttpInfo($senderId, $sender = null) - { - $returnType = ''; - $request = $this->updateSenderRequest($senderId, $sender); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateSenderAsync - * - * Update a sender - * - * @param int $senderId Id of the sender (required) - * @param \SendinBlue\Client\Model\UpdateSender $sender sender's name (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateSenderAsync($senderId, $sender = null) - { - return $this->updateSenderAsyncWithHttpInfo($senderId, $sender)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateSenderAsyncWithHttpInfo - * - * Update a sender - * - * @param int $senderId Id of the sender (required) - * @param \SendinBlue\Client\Model\UpdateSender $sender sender's name (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateSenderAsyncWithHttpInfo($senderId, $sender = null) - { - $returnType = ''; - $request = $this->updateSenderRequest($senderId, $sender); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateSender' - * - * @param int $senderId Id of the sender (required) - * @param \SendinBlue\Client\Model\UpdateSender $sender sender's name (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateSenderRequest($senderId, $sender = null) - { - // verify the required parameter 'senderId' is set - if ($senderId === null || \is_array($senderId) && \count($senderId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $senderId when calling updateSender'); - } - $resourcePath = '/senders/{senderId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($senderId !== null) { - $resourcePath = \str_replace('{' . 'senderId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($senderId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($sender)) { - $_tempBody = $sender; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Create http client option - * - * @throws \RuntimeException on file opening failure - * @return array of http client options - */ - protected function createHttpClientOption() - { - $options = []; - if ($this->config->getDebug()) { - $options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG] = \fopen($this->config->getDebugFile(), 'a'); - if (!$options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG]) { - throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile()); - } - } - return $options; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/TransactionalSMSApi.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/TransactionalSMSApi.php deleted file mode 100644 index e1cda4d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/TransactionalSMSApi.php +++ /dev/null @@ -1,979 +0,0 @@ -client = $client ?: new \WPMailSMTP\Vendor\GuzzleHttp\Client(); - $this->config = $config ?: new \WPMailSMTP\Vendor\SendinBlue\Client\Configuration(); - $this->headerSelector = $selector ?: new \WPMailSMTP\Vendor\SendinBlue\Client\HeaderSelector(); - } - /** - * @return Configuration - */ - public function getConfig() - { - return $this->config; - } - /** - * Operation getSmsEvents - * - * Get all your SMS activity (unaggregated events) - * - * @param int $limit Number of documents per page (optional, default to 50) - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report (optional) - * @param int $offset Index of the first document of the page (optional, default to 0) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $phoneNumber Filter the report for a specific phone number (optional) - * @param string $event Filter the report for specific events (optional) - * @param string $tags Filter the report for specific tags passed as a serialized urlencoded array (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetSmsEventReport - */ - public function getSmsEvents($limit = '50', $startDate = null, $endDate = null, $offset = '0', $days = null, $phoneNumber = null, $event = null, $tags = null) - { - list($response) = $this->getSmsEventsWithHttpInfo($limit, $startDate, $endDate, $offset, $days, $phoneNumber, $event, $tags); - return $response; - } - /** - * Operation getSmsEventsWithHttpInfo - * - * Get all your SMS activity (unaggregated events) - * - * @param int $limit Number of documents per page (optional, default to 50) - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report (optional) - * @param int $offset Index of the first document of the page (optional, default to 0) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $phoneNumber Filter the report for a specific phone number (optional) - * @param string $event Filter the report for specific events (optional) - * @param string $tags Filter the report for specific tags passed as a serialized urlencoded array (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetSmsEventReport, HTTP status code, HTTP response headers (array of strings) - */ - public function getSmsEventsWithHttpInfo($limit = '50', $startDate = null, $endDate = null, $offset = '0', $days = null, $phoneNumber = null, $event = null, $tags = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsEventReport'; - $request = $this->getSmsEventsRequest($limit, $startDate, $endDate, $offset, $days, $phoneNumber, $event, $tags); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsEventReport', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getSmsEventsAsync - * - * Get all your SMS activity (unaggregated events) - * - * @param int $limit Number of documents per page (optional, default to 50) - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report (optional) - * @param int $offset Index of the first document of the page (optional, default to 0) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $phoneNumber Filter the report for a specific phone number (optional) - * @param string $event Filter the report for specific events (optional) - * @param string $tags Filter the report for specific tags passed as a serialized urlencoded array (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSmsEventsAsync($limit = '50', $startDate = null, $endDate = null, $offset = '0', $days = null, $phoneNumber = null, $event = null, $tags = null) - { - return $this->getSmsEventsAsyncWithHttpInfo($limit, $startDate, $endDate, $offset, $days, $phoneNumber, $event, $tags)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getSmsEventsAsyncWithHttpInfo - * - * Get all your SMS activity (unaggregated events) - * - * @param int $limit Number of documents per page (optional, default to 50) - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report (optional) - * @param int $offset Index of the first document of the page (optional, default to 0) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $phoneNumber Filter the report for a specific phone number (optional) - * @param string $event Filter the report for specific events (optional) - * @param string $tags Filter the report for specific tags passed as a serialized urlencoded array (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getSmsEventsAsyncWithHttpInfo($limit = '50', $startDate = null, $endDate = null, $offset = '0', $days = null, $phoneNumber = null, $event = null, $tags = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsEventReport'; - $request = $this->getSmsEventsRequest($limit, $startDate, $endDate, $offset, $days, $phoneNumber, $event, $tags); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getSmsEvents' - * - * @param int $limit Number of documents per page (optional, default to 50) - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report (optional) - * @param int $offset Index of the first document of the page (optional, default to 0) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $phoneNumber Filter the report for a specific phone number (optional) - * @param string $event Filter the report for specific events (optional) - * @param string $tags Filter the report for specific tags passed as a serialized urlencoded array (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getSmsEventsRequest($limit = '50', $startDate = null, $endDate = null, $offset = '0', $days = null, $phoneNumber = null, $event = null, $tags = null) - { - if ($limit !== null && $limit > 100) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling TransactionalSMSApi.getSmsEvents, must be smaller than or equal to 100.'); - } - $resourcePath = '/transactionalSMS/statistics/events'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($limit !== null) { - $queryParams['limit'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($limit); - } - // query params - if ($startDate !== null) { - $queryParams['startDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($startDate); - } - // query params - if ($endDate !== null) { - $queryParams['endDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($endDate); - } - // query params - if ($offset !== null) { - $queryParams['offset'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($offset); - } - // query params - if ($days !== null) { - $queryParams['days'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($days); - } - // query params - if ($phoneNumber !== null) { - $queryParams['phoneNumber'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($phoneNumber); - } - // query params - if ($event !== null) { - $queryParams['event'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($event); - } - // query params - if ($tags !== null) { - $queryParams['tags'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($tags); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getTransacAggregatedSmsReport - * - * Get your SMS activity aggregated over a period of time - * - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with startDate and endDate (optional) - * @param string $tag Filter on a tag (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetTransacAggregatedSmsReport - */ - public function getTransacAggregatedSmsReport($startDate = null, $endDate = null, $days = null, $tag = null) - { - list($response) = $this->getTransacAggregatedSmsReportWithHttpInfo($startDate, $endDate, $days, $tag); - return $response; - } - /** - * Operation getTransacAggregatedSmsReportWithHttpInfo - * - * Get your SMS activity aggregated over a period of time - * - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with startDate and endDate (optional) - * @param string $tag Filter on a tag (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetTransacAggregatedSmsReport, HTTP status code, HTTP response headers (array of strings) - */ - public function getTransacAggregatedSmsReportWithHttpInfo($startDate = null, $endDate = null, $days = null, $tag = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacAggregatedSmsReport'; - $request = $this->getTransacAggregatedSmsReportRequest($startDate, $endDate, $days, $tag); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacAggregatedSmsReport', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getTransacAggregatedSmsReportAsync - * - * Get your SMS activity aggregated over a period of time - * - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with startDate and endDate (optional) - * @param string $tag Filter on a tag (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getTransacAggregatedSmsReportAsync($startDate = null, $endDate = null, $days = null, $tag = null) - { - return $this->getTransacAggregatedSmsReportAsyncWithHttpInfo($startDate, $endDate, $days, $tag)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getTransacAggregatedSmsReportAsyncWithHttpInfo - * - * Get your SMS activity aggregated over a period of time - * - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with startDate and endDate (optional) - * @param string $tag Filter on a tag (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getTransacAggregatedSmsReportAsyncWithHttpInfo($startDate = null, $endDate = null, $days = null, $tag = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacAggregatedSmsReport'; - $request = $this->getTransacAggregatedSmsReportRequest($startDate, $endDate, $days, $tag); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getTransacAggregatedSmsReport' - * - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with startDate and endDate (optional) - * @param string $tag Filter on a tag (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getTransacAggregatedSmsReportRequest($startDate = null, $endDate = null, $days = null, $tag = null) - { - $resourcePath = '/transactionalSMS/statistics/aggregatedReport'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($startDate !== null) { - $queryParams['startDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($startDate); - } - // query params - if ($endDate !== null) { - $queryParams['endDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($endDate); - } - // query params - if ($days !== null) { - $queryParams['days'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($days); - } - // query params - if ($tag !== null) { - $queryParams['tag'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($tag); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getTransacSmsReport - * - * Get your SMS activity aggregated per day - * - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $tag Filter on a tag (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetTransacSmsReport - */ - public function getTransacSmsReport($startDate = null, $endDate = null, $days = null, $tag = null) - { - list($response) = $this->getTransacSmsReportWithHttpInfo($startDate, $endDate, $days, $tag); - return $response; - } - /** - * Operation getTransacSmsReportWithHttpInfo - * - * Get your SMS activity aggregated per day - * - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $tag Filter on a tag (optional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetTransacSmsReport, HTTP status code, HTTP response headers (array of strings) - */ - public function getTransacSmsReportWithHttpInfo($startDate = null, $endDate = null, $days = null, $tag = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacSmsReport'; - $request = $this->getTransacSmsReportRequest($startDate, $endDate, $days, $tag); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacSmsReport', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getTransacSmsReportAsync - * - * Get your SMS activity aggregated per day - * - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $tag Filter on a tag (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getTransacSmsReportAsync($startDate = null, $endDate = null, $days = null, $tag = null) - { - return $this->getTransacSmsReportAsyncWithHttpInfo($startDate, $endDate, $days, $tag)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getTransacSmsReportAsyncWithHttpInfo - * - * Get your SMS activity aggregated per day - * - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $tag Filter on a tag (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getTransacSmsReportAsyncWithHttpInfo($startDate = null, $endDate = null, $days = null, $tag = null) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacSmsReport'; - $request = $this->getTransacSmsReportRequest($startDate, $endDate, $days, $tag); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getTransacSmsReport' - * - * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report (optional) - * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report (optional) - * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) - * @param string $tag Filter on a tag (optional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getTransacSmsReportRequest($startDate = null, $endDate = null, $days = null, $tag = null) - { - $resourcePath = '/transactionalSMS/statistics/reports'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($startDate !== null) { - $queryParams['startDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($startDate); - } - // query params - if ($endDate !== null) { - $queryParams['endDate'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($endDate); - } - // query params - if ($days !== null) { - $queryParams['days'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($days); - } - // query params - if ($tag !== null) { - $queryParams['tag'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($tag); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation sendTransacSms - * - * Send SMS message to a mobile number - * - * @param \SendinBlue\Client\Model\SendTransacSms $sendTransacSms Values to send a transactional SMS (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\SendSms - */ - public function sendTransacSms($sendTransacSms) - { - list($response) = $this->sendTransacSmsWithHttpInfo($sendTransacSms); - return $response; - } - /** - * Operation sendTransacSmsWithHttpInfo - * - * Send SMS message to a mobile number - * - * @param \SendinBlue\Client\Model\SendTransacSms $sendTransacSms Values to send a transactional SMS (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\SendSms, HTTP status code, HTTP response headers (array of strings) - */ - public function sendTransacSmsWithHttpInfo($sendTransacSms) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSms'; - $request = $this->sendTransacSmsRequest($sendTransacSms); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSms', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 402: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation sendTransacSmsAsync - * - * Send SMS message to a mobile number - * - * @param \SendinBlue\Client\Model\SendTransacSms $sendTransacSms Values to send a transactional SMS (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendTransacSmsAsync($sendTransacSms) - { - return $this->sendTransacSmsAsyncWithHttpInfo($sendTransacSms)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation sendTransacSmsAsyncWithHttpInfo - * - * Send SMS message to a mobile number - * - * @param \SendinBlue\Client\Model\SendTransacSms $sendTransacSms Values to send a transactional SMS (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function sendTransacSmsAsyncWithHttpInfo($sendTransacSms) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSms'; - $request = $this->sendTransacSmsRequest($sendTransacSms); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'sendTransacSms' - * - * @param \SendinBlue\Client\Model\SendTransacSms $sendTransacSms Values to send a transactional SMS (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function sendTransacSmsRequest($sendTransacSms) - { - // verify the required parameter 'sendTransacSms' is set - if ($sendTransacSms === null || \is_array($sendTransacSms) && \count($sendTransacSms) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $sendTransacSms when calling sendTransacSms'); - } - $resourcePath = '/transactionalSMS/sms'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($sendTransacSms)) { - $_tempBody = $sendTransacSms; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Create http client option - * - * @throws \RuntimeException on file opening failure - * @return array of http client options - */ - protected function createHttpClientOption() - { - $options = []; - if ($this->config->getDebug()) { - $options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG] = \fopen($this->config->getDebugFile(), 'a'); - if (!$options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG]) { - throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile()); - } - } - return $options; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/WebhooksApi.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/WebhooksApi.php deleted file mode 100644 index 07401a5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Api/WebhooksApi.php +++ /dev/null @@ -1,1030 +0,0 @@ -client = $client ?: new \WPMailSMTP\Vendor\GuzzleHttp\Client(); - $this->config = $config ?: new \WPMailSMTP\Vendor\SendinBlue\Client\Configuration(); - $this->headerSelector = $selector ?: new \WPMailSMTP\Vendor\SendinBlue\Client\HeaderSelector(); - } - /** - * @return Configuration - */ - public function getConfig() - { - return $this->config; - } - /** - * Operation createWebhook - * - * Create a webhook - * - * @param \SendinBlue\Client\Model\CreateWebhook $createWebhook Values to create a webhook (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\CreateModel - */ - public function createWebhook($createWebhook) - { - list($response) = $this->createWebhookWithHttpInfo($createWebhook); - return $response; - } - /** - * Operation createWebhookWithHttpInfo - * - * Create a webhook - * - * @param \SendinBlue\Client\Model\CreateWebhook $createWebhook Values to create a webhook (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\CreateModel, HTTP status code, HTTP response headers (array of strings) - */ - public function createWebhookWithHttpInfo($createWebhook) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createWebhookRequest($createWebhook); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 201: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation createWebhookAsync - * - * Create a webhook - * - * @param \SendinBlue\Client\Model\CreateWebhook $createWebhook Values to create a webhook (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createWebhookAsync($createWebhook) - { - return $this->createWebhookAsyncWithHttpInfo($createWebhook)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation createWebhookAsyncWithHttpInfo - * - * Create a webhook - * - * @param \SendinBlue\Client\Model\CreateWebhook $createWebhook Values to create a webhook (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function createWebhookAsyncWithHttpInfo($createWebhook) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateModel'; - $request = $this->createWebhookRequest($createWebhook); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'createWebhook' - * - * @param \SendinBlue\Client\Model\CreateWebhook $createWebhook Values to create a webhook (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function createWebhookRequest($createWebhook) - { - // verify the required parameter 'createWebhook' is set - if ($createWebhook === null || \is_array($createWebhook) && \count($createWebhook) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $createWebhook when calling createWebhook'); - } - $resourcePath = '/webhooks'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // body params - $_tempBody = null; - if (isset($createWebhook)) { - $_tempBody = $createWebhook; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation deleteWebhook - * - * Delete a webhook - * - * @param int $webhookId Id of the webhook (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function deleteWebhook($webhookId) - { - $this->deleteWebhookWithHttpInfo($webhookId); - } - /** - * Operation deleteWebhookWithHttpInfo - * - * Delete a webhook - * - * @param int $webhookId Id of the webhook (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function deleteWebhookWithHttpInfo($webhookId) - { - $returnType = ''; - $request = $this->deleteWebhookRequest($webhookId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation deleteWebhookAsync - * - * Delete a webhook - * - * @param int $webhookId Id of the webhook (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteWebhookAsync($webhookId) - { - return $this->deleteWebhookAsyncWithHttpInfo($webhookId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation deleteWebhookAsyncWithHttpInfo - * - * Delete a webhook - * - * @param int $webhookId Id of the webhook (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function deleteWebhookAsyncWithHttpInfo($webhookId) - { - $returnType = ''; - $request = $this->deleteWebhookRequest($webhookId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'deleteWebhook' - * - * @param int $webhookId Id of the webhook (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function deleteWebhookRequest($webhookId) - { - // verify the required parameter 'webhookId' is set - if ($webhookId === null || \is_array($webhookId) && \count($webhookId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $webhookId when calling deleteWebhook'); - } - $resourcePath = '/webhooks/{webhookId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($webhookId !== null) { - $resourcePath = \str_replace('{' . 'webhookId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($webhookId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getWebhook - * - * Get a webhook details - * - * @param int $webhookId Id of the webhook (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetWebhook - */ - public function getWebhook($webhookId) - { - list($response) = $this->getWebhookWithHttpInfo($webhookId); - return $response; - } - /** - * Operation getWebhookWithHttpInfo - * - * Get a webhook details - * - * @param int $webhookId Id of the webhook (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetWebhook, HTTP status code, HTTP response headers (array of strings) - */ - public function getWebhookWithHttpInfo($webhookId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetWebhook'; - $request = $this->getWebhookRequest($webhookId); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetWebhook', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getWebhookAsync - * - * Get a webhook details - * - * @param int $webhookId Id of the webhook (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getWebhookAsync($webhookId) - { - return $this->getWebhookAsyncWithHttpInfo($webhookId)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getWebhookAsyncWithHttpInfo - * - * Get a webhook details - * - * @param int $webhookId Id of the webhook (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getWebhookAsyncWithHttpInfo($webhookId) - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetWebhook'; - $request = $this->getWebhookRequest($webhookId); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getWebhook' - * - * @param int $webhookId Id of the webhook (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getWebhookRequest($webhookId) - { - // verify the required parameter 'webhookId' is set - if ($webhookId === null || \is_array($webhookId) && \count($webhookId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $webhookId when calling getWebhook'); - } - $resourcePath = '/webhooks/{webhookId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($webhookId !== null) { - $resourcePath = \str_replace('{' . 'webhookId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($webhookId), $resourcePath); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation getWebhooks - * - * Get all webhooks - * - * @param string $type Filter on webhook type (optional, default to transactional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return \SendinBlue\Client\Model\GetWebhooks - */ - public function getWebhooks($type = 'transactional') - { - list($response) = $this->getWebhooksWithHttpInfo($type); - return $response; - } - /** - * Operation getWebhooksWithHttpInfo - * - * Get all webhooks - * - * @param string $type Filter on webhook type (optional, default to transactional) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of \SendinBlue\Client\Model\GetWebhooks, HTTP status code, HTTP response headers (array of strings) - */ - public function getWebhooksWithHttpInfo($type = 'transactional') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetWebhooks'; - $request = $this->getWebhooksRequest($type); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 200: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetWebhooks', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation getWebhooksAsync - * - * Get all webhooks - * - * @param string $type Filter on webhook type (optional, default to transactional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getWebhooksAsync($type = 'transactional') - { - return $this->getWebhooksAsyncWithHttpInfo($type)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation getWebhooksAsyncWithHttpInfo - * - * Get all webhooks - * - * @param string $type Filter on webhook type (optional, default to transactional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function getWebhooksAsyncWithHttpInfo($type = 'transactional') - { - $returnType = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetWebhooks'; - $request = $this->getWebhooksRequest($type); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - $responseBody = $response->getBody(); - if ($returnType === '\\SplFileObject') { - $content = $responseBody; - //stream goes to serializer - } else { - $content = $responseBody->getContents(); - if ($returnType !== 'string') { - $content = \json_decode($content); - } - } - return [\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'getWebhooks' - * - * @param string $type Filter on webhook type (optional, default to transactional) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function getWebhooksRequest($type = 'transactional') - { - $resourcePath = '/webhooks'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // query params - if ($type !== null) { - $queryParams['type'] = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toQueryValue($type); - } - // body params - $_tempBody = null; - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Operation updateWebhook - * - * Update a webhook - * - * @param int $webhookId Id of the webhook (required) - * @param \SendinBlue\Client\Model\UpdateWebhook $updateWebhook Values to update a webhook (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return void - */ - public function updateWebhook($webhookId, $updateWebhook) - { - $this->updateWebhookWithHttpInfo($webhookId, $updateWebhook); - } - /** - * Operation updateWebhookWithHttpInfo - * - * Update a webhook - * - * @param int $webhookId Id of the webhook (required) - * @param \SendinBlue\Client\Model\UpdateWebhook $updateWebhook Values to update a webhook (required) - * - * @throws \SendinBlue\Client\ApiException on non-2xx response - * @throws \InvalidArgumentException - * @return array of null, HTTP status code, HTTP response headers (array of strings) - */ - public function updateWebhookWithHttpInfo($webhookId, $updateWebhook) - { - $returnType = ''; - $request = $this->updateWebhookRequest($webhookId, $updateWebhook); - try { - $options = $this->createHttpClientOption(); - try { - $response = $this->client->send($request, $options); - } catch (\WPMailSMTP\Vendor\GuzzleHttp\Exception\RequestException $e) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException("[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null); - } - $statusCode = $response->getStatusCode(); - if ($statusCode < 200 || $statusCode > 299) { - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $request->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - } - return [null, $statusCode, $response->getHeaders()]; - } catch (\WPMailSMTP\Vendor\SendinBlue\Client\ApiException $e) { - switch ($e->getCode()) { - case 400: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - case 404: - $data = \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::deserialize($e->getResponseBody(), 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\ErrorModel', $e->getResponseHeaders()); - $e->setResponseObject($data); - break; - } - throw $e; - } - } - /** - * Operation updateWebhookAsync - * - * Update a webhook - * - * @param int $webhookId Id of the webhook (required) - * @param \SendinBlue\Client\Model\UpdateWebhook $updateWebhook Values to update a webhook (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateWebhookAsync($webhookId, $updateWebhook) - { - return $this->updateWebhookAsyncWithHttpInfo($webhookId, $updateWebhook)->then(function ($response) { - return $response[0]; - }); - } - /** - * Operation updateWebhookAsyncWithHttpInfo - * - * Update a webhook - * - * @param int $webhookId Id of the webhook (required) - * @param \SendinBlue\Client\Model\UpdateWebhook $updateWebhook Values to update a webhook (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public function updateWebhookAsyncWithHttpInfo($webhookId, $updateWebhook) - { - $returnType = ''; - $request = $this->updateWebhookRequest($webhookId, $updateWebhook); - return $this->client->sendAsync($request, $this->createHttpClientOption())->then(function ($response) use($returnType) { - return [null, $response->getStatusCode(), $response->getHeaders()]; - }, function ($exception) { - $response = $exception->getResponse(); - $statusCode = $response->getStatusCode(); - throw new \WPMailSMTP\Vendor\SendinBlue\Client\ApiException(\sprintf('[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri()), $statusCode, $response->getHeaders(), $response->getBody()); - }); - } - /** - * Create request for operation 'updateWebhook' - * - * @param int $webhookId Id of the webhook (required) - * @param \SendinBlue\Client\Model\UpdateWebhook $updateWebhook Values to update a webhook (required) - * - * @throws \InvalidArgumentException - * @return \GuzzleHttp\Psr7\Request - */ - protected function updateWebhookRequest($webhookId, $updateWebhook) - { - // verify the required parameter 'webhookId' is set - if ($webhookId === null || \is_array($webhookId) && \count($webhookId) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $webhookId when calling updateWebhook'); - } - // verify the required parameter 'updateWebhook' is set - if ($updateWebhook === null || \is_array($updateWebhook) && \count($updateWebhook) === 0) { - throw new \InvalidArgumentException('Missing the required parameter $updateWebhook when calling updateWebhook'); - } - $resourcePath = '/webhooks/{webhookId}'; - $formParams = []; - $queryParams = []; - $headerParams = []; - $httpBody = ''; - $multipart = \false; - // path params - if ($webhookId !== null) { - $resourcePath = \str_replace('{' . 'webhookId' . '}', \WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::toPathValue($webhookId), $resourcePath); - } - // body params - $_tempBody = null; - if (isset($updateWebhook)) { - $_tempBody = $updateWebhook; - } - if ($multipart) { - $headers = $this->headerSelector->selectHeadersForMultipart(['application/json']); - } else { - $headers = $this->headerSelector->selectHeaders(['application/json'], ['application/json']); - } - // for model (json/xml) - if (isset($_tempBody)) { - // $_tempBody is the method argument, if present - $httpBody = $_tempBody; - if ($headers['Content-Type'] === 'application/json') { - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($httpBody); - } - // array has no __toString(), so we should encode it manually - if (\is_array($httpBody)) { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($httpBody)); - } - } - } elseif (\count($formParams) > 0) { - if ($multipart) { - $multipartContents = []; - foreach ($formParams as $formParamName => $formParamValue) { - $multipartContents[] = ['name' => $formParamName, 'contents' => $formParamValue]; - } - // for HTTP post (form) - $httpBody = new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\MultipartStream($multipartContents); - } elseif ($headers['Content-Type'] === 'application/json') { - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\json_encode($formParams); - } else { - // for HTTP post (form) - $httpBody = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($formParams); - } - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('api-key'); - if ($apiKey !== null) { - $headers['api-key'] = $apiKey; - } - // this endpoint requires API key authentication - $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); - if ($apiKey !== null) { - $headers['partner-key'] = $apiKey; - } - $defaultHeaders = []; - if ($this->config->getUserAgent()) { - $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); - } - $headers = \array_merge($defaultHeaders, $headerParams, $headers); - $query = \WPMailSMTP\Vendor\GuzzleHttp\Psr7\build_query($queryParams); - return new \WPMailSMTP\Vendor\GuzzleHttp\Psr7\Request('PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody); - } - /** - * Create http client option - * - * @throws \RuntimeException on file opening failure - * @return array of http client options - */ - protected function createHttpClientOption() - { - $options = []; - if ($this->config->getDebug()) { - $options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG] = \fopen($this->config->getDebugFile(), 'a'); - if (!$options[\WPMailSMTP\Vendor\GuzzleHttp\RequestOptions::DEBUG]) { - throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile()); - } - } - return $options; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/ApiException.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/ApiException.php deleted file mode 100644 index 4228cda..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/ApiException.php +++ /dev/null @@ -1,110 +0,0 @@ -responseHeaders = $responseHeaders; - $this->responseBody = $responseBody; - } - /** - * Gets the HTTP response header - * - * @return string[]|null HTTP response header - */ - public function getResponseHeaders() - { - return $this->responseHeaders; - } - /** - * Gets the HTTP body of the server response either as Json or string - * - * @return mixed HTTP body of the server response either as \stdClass or string - */ - public function getResponseBody() - { - return $this->responseBody; - } - /** - * Sets the deseralized response object (during deserialization) - * - * @param mixed $obj Deserialized response object - * - * @return void - */ - public function setResponseObject($obj) - { - $this->responseObject = $obj; - } - /** - * Gets the deseralized response object (during deserialization) - * - * @return mixed the deserialized response object - */ - public function getResponseObject() - { - return $this->responseObject; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Configuration.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Configuration.php deleted file mode 100644 index 0945abf..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Configuration.php +++ /dev/null @@ -1,386 +0,0 @@ -tempFolderPath = \sys_get_temp_dir(); - } - /** - * Sets API key - * - * @param string $apiKeyIdentifier API key identifier (authentication scheme) - * @param string $key API key or token - * - * @return $this - */ - public function setApiKey($apiKeyIdentifier, $key) - { - $this->apiKeys[$apiKeyIdentifier] = $key; - return $this; - } - /** - * Gets API key - * - * @param string $apiKeyIdentifier API key identifier (authentication scheme) - * - * @return string API key or token - */ - public function getApiKey($apiKeyIdentifier) - { - return isset($this->apiKeys[$apiKeyIdentifier]) ? $this->apiKeys[$apiKeyIdentifier] : null; - } - /** - * Sets the prefix for API key (e.g. Bearer) - * - * @param string $apiKeyIdentifier API key identifier (authentication scheme) - * @param string $prefix API key prefix, e.g. Bearer - * - * @return $this - */ - public function setApiKeyPrefix($apiKeyIdentifier, $prefix) - { - $this->apiKeyPrefixes[$apiKeyIdentifier] = $prefix; - return $this; - } - /** - * Gets API key prefix - * - * @param string $apiKeyIdentifier API key identifier (authentication scheme) - * - * @return string - */ - public function getApiKeyPrefix($apiKeyIdentifier) - { - return isset($this->apiKeyPrefixes[$apiKeyIdentifier]) ? $this->apiKeyPrefixes[$apiKeyIdentifier] : null; - } - /** - * Sets the access token for OAuth - * - * @param string $accessToken Token for OAuth - * - * @return $this - */ - public function setAccessToken($accessToken) - { - $this->accessToken = $accessToken; - return $this; - } - /** - * Gets the access token for OAuth - * - * @return string Access token for OAuth - */ - public function getAccessToken() - { - return $this->accessToken; - } - /** - * Sets the username for HTTP basic authentication - * - * @param string $username Username for HTTP basic authentication - * - * @return $this - */ - public function setUsername($username) - { - $this->username = $username; - return $this; - } - /** - * Gets the username for HTTP basic authentication - * - * @return string Username for HTTP basic authentication - */ - public function getUsername() - { - return $this->username; - } - /** - * Sets the password for HTTP basic authentication - * - * @param string $password Password for HTTP basic authentication - * - * @return $this - */ - public function setPassword($password) - { - $this->password = $password; - return $this; - } - /** - * Gets the password for HTTP basic authentication - * - * @return string Password for HTTP basic authentication - */ - public function getPassword() - { - return $this->password; - } - /** - * Sets the host - * - * @param string $host Host - * - * @return $this - */ - public function setHost($host) - { - $this->host = $host; - return $this; - } - /** - * Gets the host - * - * @return string Host - */ - public function getHost() - { - return $this->host; - } - /** - * Sets the user agent of the api client - * - * @param string $userAgent the user agent of the api client - * - * @throws \InvalidArgumentException - * @return $this - */ - public function setUserAgent($userAgent) - { - if (!\is_string($userAgent)) { - throw new \InvalidArgumentException('User-agent must be a string.'); - } - $this->userAgent = $userAgent; - return $this; - } - /** - * Gets the user agent of the api client - * - * @return string user agent - */ - public function getUserAgent() - { - return $this->userAgent; - } - /** - * Sets debug flag - * - * @param bool $debug Debug flag - * - * @return $this - */ - public function setDebug($debug) - { - $this->debug = $debug; - return $this; - } - /** - * Gets the debug flag - * - * @return bool - */ - public function getDebug() - { - return $this->debug; - } - /** - * Sets the debug file - * - * @param string $debugFile Debug file - * - * @return $this - */ - public function setDebugFile($debugFile) - { - $this->debugFile = $debugFile; - return $this; - } - /** - * Gets the debug file - * - * @return string - */ - public function getDebugFile() - { - return $this->debugFile; - } - /** - * Sets the temp folder path - * - * @param string $tempFolderPath Temp folder path - * - * @return $this - */ - public function setTempFolderPath($tempFolderPath) - { - $this->tempFolderPath = $tempFolderPath; - return $this; - } - /** - * Gets the temp folder path - * - * @return string Temp folder path - */ - public function getTempFolderPath() - { - return $this->tempFolderPath; - } - /** - * Gets the default configuration instance - * - * @return Configuration - */ - public static function getDefaultConfiguration() - { - if (self::$defaultConfiguration === null) { - self::$defaultConfiguration = new \WPMailSMTP\Vendor\SendinBlue\Client\Configuration(); - } - return self::$defaultConfiguration; - } - /** - * Sets the detault configuration instance - * - * @param Configuration $config An instance of the Configuration Object - * - * @return void - */ - public static function setDefaultConfiguration(\WPMailSMTP\Vendor\SendinBlue\Client\Configuration $config) - { - self::$defaultConfiguration = $config; - } - /** - * Gets the essential information for debugging - * - * @return string The report for debugging - */ - public static function toDebugReport() - { - $report = 'PHP SDK (SendinBlue\\Client) Debug Report:' . \PHP_EOL; - $report .= ' OS: ' . \php_uname() . \PHP_EOL; - $report .= ' PHP Version: ' . \PHP_VERSION . \PHP_EOL; - $report .= ' OpenAPI Spec Version: 3.0.0' . \PHP_EOL; - $report .= ' Temp Folder Path: ' . self::getDefaultConfiguration()->getTempFolderPath() . \PHP_EOL; - return $report; - } - /** - * Get API key (with prefix if set) - * - * @param string $apiKeyIdentifier name of apikey - * - * @return string API key with the prefix - */ - public function getApiKeyWithPrefix($apiKeyIdentifier) - { - $prefix = $this->getApiKeyPrefix($apiKeyIdentifier); - $apiKey = $this->getApiKey($apiKeyIdentifier); - if ($apiKey === null) { - return null; - } - if ($prefix === null) { - $keyWithPrefix = $apiKey; - } else { - $keyWithPrefix = $prefix . ' ' . $apiKey; - } - return $keyWithPrefix; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/HeaderSelector.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/HeaderSelector.php deleted file mode 100644 index bb85942..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/HeaderSelector.php +++ /dev/null @@ -1,99 +0,0 @@ -selectAcceptHeader($accept); - if ($accept !== null) { - $headers['Accept'] = $accept; - } - $headers['Content-Type'] = $this->selectContentTypeHeader($contentTypes); - return $headers; - } - /** - * @param string[] $accept - * @return array - */ - public function selectHeadersForMultipart($accept) - { - $headers = $this->selectHeaders($accept, []); - unset($headers['Content-Type']); - return $headers; - } - /** - * Return the header 'Accept' based on an array of Accept provided - * - * @param string[] $accept Array of header - * - * @return string Accept (e.g. application/json) - */ - private function selectAcceptHeader($accept) - { - if (\count($accept) === 0 || \count($accept) === 1 && $accept[0] === '') { - return null; - } elseif (\preg_grep("/application\\/json/i", $accept)) { - return 'application/json'; - } else { - return \implode(',', $accept); - } - } - /** - * Return the content type based on an array of content-type provided - * - * @param string[] $contentType Array fo content-type - * - * @return string Content-Type (e.g. application/json) - */ - private function selectContentTypeHeader($contentType) - { - if (\count($contentType) === 0 || \count($contentType) === 1 && $contentType[0] === '') { - return 'application/json'; - } elseif (\preg_grep("/application\\/json/i", $contentType)) { - return 'application/json'; - } else { - return \implode(',', $contentType); - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AbTestCampaignResult.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AbTestCampaignResult.php deleted file mode 100644 index 7374b8a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AbTestCampaignResult.php +++ /dev/null @@ -1,405 +0,0 @@ - 'string', 'winningCriteria' => 'string', 'winningSubjectLine' => 'string', 'openRate' => 'string', 'clickRate' => 'string', 'winningVersionRate' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['winningVersion' => null, 'winningCriteria' => null, 'winningSubjectLine' => null, 'openRate' => null, 'clickRate' => null, 'winningVersionRate' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['winningVersion' => 'winningVersion', 'winningCriteria' => 'winningCriteria', 'winningSubjectLine' => 'winningSubjectLine', 'openRate' => 'openRate', 'clickRate' => 'clickRate', 'winningVersionRate' => 'winningVersionRate']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['winningVersion' => 'setWinningVersion', 'winningCriteria' => 'setWinningCriteria', 'winningSubjectLine' => 'setWinningSubjectLine', 'openRate' => 'setOpenRate', 'clickRate' => 'setClickRate', 'winningVersionRate' => 'setWinningVersionRate']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['winningVersion' => 'getWinningVersion', 'winningCriteria' => 'getWinningCriteria', 'winningSubjectLine' => 'getWinningSubjectLine', 'openRate' => 'getOpenRate', 'clickRate' => 'getClickRate', 'winningVersionRate' => 'getWinningVersionRate']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const WINNING_VERSION_NOT_AVAILABLE = 'notAvailable'; - const WINNING_VERSION_PENDING = 'pending'; - const WINNING_VERSION_TIE = 'tie'; - const WINNING_VERSION_A = 'A'; - const WINNING_VERSION_B = 'B'; - const WINNING_CRITERIA_OPEN = 'Open'; - const WINNING_CRITERIA_CLICK = 'Click'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getWinningVersionAllowableValues() - { - return [self::WINNING_VERSION_NOT_AVAILABLE, self::WINNING_VERSION_PENDING, self::WINNING_VERSION_TIE, self::WINNING_VERSION_A, self::WINNING_VERSION_B]; - } - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getWinningCriteriaAllowableValues() - { - return [self::WINNING_CRITERIA_OPEN, self::WINNING_CRITERIA_CLICK]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['winningVersion'] = isset($data['winningVersion']) ? $data['winningVersion'] : null; - $this->container['winningCriteria'] = isset($data['winningCriteria']) ? $data['winningCriteria'] : null; - $this->container['winningSubjectLine'] = isset($data['winningSubjectLine']) ? $data['winningSubjectLine'] : null; - $this->container['openRate'] = isset($data['openRate']) ? $data['openRate'] : null; - $this->container['clickRate'] = isset($data['clickRate']) ? $data['clickRate'] : null; - $this->container['winningVersionRate'] = isset($data['winningVersionRate']) ? $data['winningVersionRate'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - $allowedValues = $this->getWinningVersionAllowableValues(); - if (!\is_null($this->container['winningVersion']) && !\in_array($this->container['winningVersion'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'winningVersion', must be one of '%s'", \implode("', '", $allowedValues)); - } - $allowedValues = $this->getWinningCriteriaAllowableValues(); - if (!\is_null($this->container['winningCriteria']) && !\in_array($this->container['winningCriteria'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'winningCriteria', must be one of '%s'", \implode("', '", $allowedValues)); - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets winningVersion - * - * @return string - */ - public function getWinningVersion() - { - return $this->container['winningVersion']; - } - /** - * Sets winningVersion - * - * @param string $winningVersion Winning Campaign Info. pending = Campaign has been picked for sending and winning version is yet to be decided, tie = A tie happened between both the versions, notAvailable = Campaign has not yet been picked for sending. - * - * @return $this - */ - public function setWinningVersion($winningVersion) - { - $allowedValues = $this->getWinningVersionAllowableValues(); - if (!\is_null($winningVersion) && !\in_array($winningVersion, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'winningVersion', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['winningVersion'] = $winningVersion; - return $this; - } - /** - * Gets winningCriteria - * - * @return string - */ - public function getWinningCriteria() - { - return $this->container['winningCriteria']; - } - /** - * Sets winningCriteria - * - * @param string $winningCriteria Criteria choosen for winning version (Open/Click) - * - * @return $this - */ - public function setWinningCriteria($winningCriteria) - { - $allowedValues = $this->getWinningCriteriaAllowableValues(); - if (!\is_null($winningCriteria) && !\in_array($winningCriteria, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'winningCriteria', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['winningCriteria'] = $winningCriteria; - return $this; - } - /** - * Gets winningSubjectLine - * - * @return string - */ - public function getWinningSubjectLine() - { - return $this->container['winningSubjectLine']; - } - /** - * Sets winningSubjectLine - * - * @param string $winningSubjectLine Subject Line of current winning version - * - * @return $this - */ - public function setWinningSubjectLine($winningSubjectLine) - { - $this->container['winningSubjectLine'] = $winningSubjectLine; - return $this; - } - /** - * Gets openRate - * - * @return string - */ - public function getOpenRate() - { - return $this->container['openRate']; - } - /** - * Sets openRate - * - * @param string $openRate Open rate for current winning version - * - * @return $this - */ - public function setOpenRate($openRate) - { - $this->container['openRate'] = $openRate; - return $this; - } - /** - * Gets clickRate - * - * @return string - */ - public function getClickRate() - { - return $this->container['clickRate']; - } - /** - * Sets clickRate - * - * @param string $clickRate Click rate for current winning version - * - * @return $this - */ - public function setClickRate($clickRate) - { - $this->container['clickRate'] = $clickRate; - return $this; - } - /** - * Gets winningVersionRate - * - * @return string - */ - public function getWinningVersionRate() - { - return $this->container['winningVersionRate']; - } - /** - * Sets winningVersionRate - * - * @param string $winningVersionRate Open/Click rate for the winner version - * - * @return $this - */ - public function setWinningVersionRate($winningVersionRate) - { - $this->container['winningVersionRate'] = $winningVersionRate; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddChildDomain.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddChildDomain.php deleted file mode 100644 index c3144af..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddChildDomain.php +++ /dev/null @@ -1,254 +0,0 @@ - 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['domain' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['domain' => 'domain']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['domain' => 'setDomain']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['domain' => 'getDomain']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['domain'] = isset($data['domain']) ? $data['domain'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets domain - * - * @return string - */ - public function getDomain() - { - return $this->container['domain']; - } - /** - * Sets domain - * - * @param string $domain Sender domain to add for a specific child account - * - * @return $this - */ - public function setDomain($domain) - { - $this->container['domain'] = $domain; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddContactToList.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddContactToList.php deleted file mode 100644 index e4d02eb..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddContactToList.php +++ /dev/null @@ -1,254 +0,0 @@ - 'string[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['emails' => 'email']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['emails' => 'emails']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['emails' => 'setEmails']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['emails' => 'getEmails']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['emails'] = isset($data['emails']) ? $data['emails'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets emails - * - * @return string[] - */ - public function getEmails() - { - return $this->container['emails']; - } - /** - * Sets emails - * - * @param string[] $emails Emails to add to a list. You can pass a maximum of 150 emails for addition in one request. If you need to add the emails in bulk, please prefer /contacts/import api. - * - * @return $this - */ - public function setEmails($emails) - { - $this->container['emails'] = $emails; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddCredits.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddCredits.php deleted file mode 100644 index c600ccd..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/AddCredits.php +++ /dev/null @@ -1,276 +0,0 @@ - 'int', 'email' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['sms' => 'int64', 'email' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['sms' => 'sms', 'email' => 'email']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['sms' => 'setSms', 'email' => 'setEmail']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['sms' => 'getSms', 'email' => 'getEmail']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['sms'] = isset($data['sms']) ? $data['sms'] : null; - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets sms - * - * @return int - */ - public function getSms() - { - return $this->container['sms']; - } - /** - * Sets sms - * - * @param int $sms Required if email credits are empty. SMS credits to be added to the child account - * - * @return $this - */ - public function setSms($sms) - { - $this->container['sms'] = $sms; - return $this; - } - /** - * Gets email - * - * @return int - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param int $email Required if sms credits are empty. Email credits to be added to the child account - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateAttribute.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateAttribute.php deleted file mode 100644 index c9c2d78..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateAttribute.php +++ /dev/null @@ -1,321 +0,0 @@ - 'string', 'enumeration' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateAttributeEnumeration[]', 'type' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['value' => null, 'enumeration' => null, 'type' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['value' => 'value', 'enumeration' => 'enumeration', 'type' => 'type']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['value' => 'setValue', 'enumeration' => 'setEnumeration', 'type' => 'setType']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['value' => 'getValue', 'enumeration' => 'getEnumeration', 'type' => 'getType']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const TYPE_TEXT = 'text'; - const TYPE_DATE = 'date'; - const TYPE_FLOAT = 'float'; - const TYPE_BOOLEAN = 'boolean'; - const TYPE_ID = 'id'; - const TYPE_CATEGORY = 'category'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getTypeAllowableValues() - { - return [self::TYPE_TEXT, self::TYPE_DATE, self::TYPE_FLOAT, self::TYPE_BOOLEAN, self::TYPE_ID, self::TYPE_CATEGORY]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['value'] = isset($data['value']) ? $data['value'] : null; - $this->container['enumeration'] = isset($data['enumeration']) ? $data['enumeration'] : null; - $this->container['type'] = isset($data['type']) ? $data['type'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - $allowedValues = $this->getTypeAllowableValues(); - if (!\is_null($this->container['type']) && !\in_array($this->container['type'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues)); - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets value - * - * @return string - */ - public function getValue() - { - return $this->container['value']; - } - /** - * Sets value - * - * @param string $value Value of the attribute. Use only if the attribute's category is 'calculated' or 'global' - * - * @return $this - */ - public function setValue($value) - { - $this->container['value'] = $value; - return $this; - } - /** - * Gets enumeration - * - * @return \SendinBlue\Client\Model\CreateAttributeEnumeration[] - */ - public function getEnumeration() - { - return $this->container['enumeration']; - } - /** - * Sets enumeration - * - * @param \SendinBlue\Client\Model\CreateAttributeEnumeration[] $enumeration List of values and labels that the attribute can take. Use only if the attribute's category is \"category\". For example, `[{\"value\":1, \"label\":\"male\"}, {\"value\":2, \"label\":\"female\"}]` - * - * @return $this - */ - public function setEnumeration($enumeration) - { - $this->container['enumeration'] = $enumeration; - return $this; - } - /** - * Gets type - * - * @return string - */ - public function getType() - { - return $this->container['type']; - } - /** - * Sets type - * - * @param string $type Type of the attribute. Use only if the attribute's category is 'normal', 'category' or 'transactional' ( type 'boolean' is only available if the category is 'normal' attribute, type 'id' is only available if the category is 'transactional' attribute & type 'category' is only available if the category is 'category' attribute ) - * - * @return $this - */ - public function setType($type) - { - $allowedValues = $this->getTypeAllowableValues(); - if (!\is_null($type) && !\in_array($type, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['type'] = $type; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateAttributeEnumeration.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateAttributeEnumeration.php deleted file mode 100644 index f886691..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateAttributeEnumeration.php +++ /dev/null @@ -1,282 +0,0 @@ - 'int', 'label' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['value' => null, 'label' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['value' => 'value', 'label' => 'label']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['value' => 'setValue', 'label' => 'setLabel']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['value' => 'getValue', 'label' => 'getLabel']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['value'] = isset($data['value']) ? $data['value'] : null; - $this->container['label'] = isset($data['label']) ? $data['label'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['value'] === null) { - $invalidProperties[] = "'value' can't be null"; - } - if ($this->container['label'] === null) { - $invalidProperties[] = "'label' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets value - * - * @return int - */ - public function getValue() - { - return $this->container['value']; - } - /** - * Sets value - * - * @param int $value Id of the value - * - * @return $this - */ - public function setValue($value) - { - $this->container['value'] = $value; - return $this; - } - /** - * Gets label - * - * @return string - */ - public function getLabel() - { - return $this->container['label']; - } - /** - * Sets label - * - * @param string $label Label of the value - * - * @return $this - */ - public function setLabel($label) - { - $this->container['label'] = $label; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateChild.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateChild.php deleted file mode 100644 index a34d64b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateChild.php +++ /dev/null @@ -1,402 +0,0 @@ - 'string', 'firstName' => 'string', 'lastName' => 'string', 'companyName' => 'string', 'password' => 'string', 'language' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'firstName' => null, 'lastName' => null, 'companyName' => null, 'password' => 'password', 'language' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'firstName' => 'firstName', 'lastName' => 'lastName', 'companyName' => 'companyName', 'password' => 'password', 'language' => 'language']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'firstName' => 'setFirstName', 'lastName' => 'setLastName', 'companyName' => 'setCompanyName', 'password' => 'setPassword', 'language' => 'setLanguage']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'firstName' => 'getFirstName', 'lastName' => 'getLastName', 'companyName' => 'getCompanyName', 'password' => 'getPassword', 'language' => 'getLanguage']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const LANGUAGE_FR = 'fr'; - const LANGUAGE_ES = 'es'; - const LANGUAGE_PT = 'pt'; - const LANGUAGE_IT = 'it'; - const LANGUAGE_DE = 'de'; - const LANGUAGE_EN = 'en'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getLanguageAllowableValues() - { - return [self::LANGUAGE_FR, self::LANGUAGE_ES, self::LANGUAGE_PT, self::LANGUAGE_IT, self::LANGUAGE_DE, self::LANGUAGE_EN]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['firstName'] = isset($data['firstName']) ? $data['firstName'] : null; - $this->container['lastName'] = isset($data['lastName']) ? $data['lastName'] : null; - $this->container['companyName'] = isset($data['companyName']) ? $data['companyName'] : null; - $this->container['password'] = isset($data['password']) ? $data['password'] : null; - $this->container['language'] = isset($data['language']) ? $data['language'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - if ($this->container['firstName'] === null) { - $invalidProperties[] = "'firstName' can't be null"; - } - if ($this->container['lastName'] === null) { - $invalidProperties[] = "'lastName' can't be null"; - } - if ($this->container['companyName'] === null) { - $invalidProperties[] = "'companyName' can't be null"; - } - if ($this->container['password'] === null) { - $invalidProperties[] = "'password' can't be null"; - } - $allowedValues = $this->getLanguageAllowableValues(); - if (!\is_null($this->container['language']) && !\in_array($this->container['language'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'language', must be one of '%s'", \implode("', '", $allowedValues)); - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email address to create the child account - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets firstName - * - * @return string - */ - public function getFirstName() - { - return $this->container['firstName']; - } - /** - * Sets firstName - * - * @param string $firstName First name to use to create the child account - * - * @return $this - */ - public function setFirstName($firstName) - { - $this->container['firstName'] = $firstName; - return $this; - } - /** - * Gets lastName - * - * @return string - */ - public function getLastName() - { - return $this->container['lastName']; - } - /** - * Sets lastName - * - * @param string $lastName Last name to use to create the child account - * - * @return $this - */ - public function setLastName($lastName) - { - $this->container['lastName'] = $lastName; - return $this; - } - /** - * Gets companyName - * - * @return string - */ - public function getCompanyName() - { - return $this->container['companyName']; - } - /** - * Sets companyName - * - * @param string $companyName Company name to use to create the child account - * - * @return $this - */ - public function setCompanyName($companyName) - { - $this->container['companyName'] = $companyName; - return $this; - } - /** - * Gets password - * - * @return string - */ - public function getPassword() - { - return $this->container['password']; - } - /** - * Sets password - * - * @param string $password Password for the child account to login - * - * @return $this - */ - public function setPassword($password) - { - $this->container['password'] = $password; - return $this; - } - /** - * Gets language - * - * @return string - */ - public function getLanguage() - { - return $this->container['language']; - } - /** - * Sets language - * - * @param string $language Language of the child account - * - * @return $this - */ - public function setLanguage($language) - { - $allowedValues = $this->getLanguageAllowableValues(); - if (!\is_null($language) && !\in_array($language, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'language', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['language'] = $language; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateContact.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateContact.php deleted file mode 100644 index 94ce81f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateContact.php +++ /dev/null @@ -1,386 +0,0 @@ - 'string', 'attributes' => 'object', 'emailBlacklisted' => 'bool', 'smsBlacklisted' => 'bool', 'listIds' => 'int[]', 'updateEnabled' => 'bool', 'smtpBlacklistSender' => 'string[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'attributes' => null, 'emailBlacklisted' => null, 'smsBlacklisted' => null, 'listIds' => 'int64', 'updateEnabled' => null, 'smtpBlacklistSender' => 'email']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'attributes' => 'attributes', 'emailBlacklisted' => 'emailBlacklisted', 'smsBlacklisted' => 'smsBlacklisted', 'listIds' => 'listIds', 'updateEnabled' => 'updateEnabled', 'smtpBlacklistSender' => 'smtpBlacklistSender']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'attributes' => 'setAttributes', 'emailBlacklisted' => 'setEmailBlacklisted', 'smsBlacklisted' => 'setSmsBlacklisted', 'listIds' => 'setListIds', 'updateEnabled' => 'setUpdateEnabled', 'smtpBlacklistSender' => 'setSmtpBlacklistSender']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'attributes' => 'getAttributes', 'emailBlacklisted' => 'getEmailBlacklisted', 'smsBlacklisted' => 'getSmsBlacklisted', 'listIds' => 'getListIds', 'updateEnabled' => 'getUpdateEnabled', 'smtpBlacklistSender' => 'getSmtpBlacklistSender']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['attributes'] = isset($data['attributes']) ? $data['attributes'] : null; - $this->container['emailBlacklisted'] = isset($data['emailBlacklisted']) ? $data['emailBlacklisted'] : null; - $this->container['smsBlacklisted'] = isset($data['smsBlacklisted']) ? $data['smsBlacklisted'] : null; - $this->container['listIds'] = isset($data['listIds']) ? $data['listIds'] : null; - $this->container['updateEnabled'] = isset($data['updateEnabled']) ? $data['updateEnabled'] : \false; - $this->container['smtpBlacklistSender'] = isset($data['smtpBlacklistSender']) ? $data['smtpBlacklistSender'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email address of the user. Mandatory if \"SMS\" field is not passed in \"attributes\" parameter. Mobile Number in \"SMS\" field should be passed with proper country code. For example {\"SMS\":\"+91xxxxxxxxxx\"} or {\"SMS\":\"0091xxxxxxxxxx\"} - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets attributes - * - * @return object - */ - public function getAttributes() - { - return $this->container['attributes']; - } - /** - * Sets attributes - * - * @param object $attributes Pass the set of attributes and their values. These attributes must be present in your SendinBlue account. For eg. `{\"FNAME\":\"Elly\", \"LNAME\":\"Roger\"}` - * - * @return $this - */ - public function setAttributes($attributes) - { - $this->container['attributes'] = $attributes; - return $this; - } - /** - * Gets emailBlacklisted - * - * @return bool - */ - public function getEmailBlacklisted() - { - return $this->container['emailBlacklisted']; - } - /** - * Sets emailBlacklisted - * - * @param bool $emailBlacklisted Set this field to blacklist the contact for emails (emailBlacklisted = true) - * - * @return $this - */ - public function setEmailBlacklisted($emailBlacklisted) - { - $this->container['emailBlacklisted'] = $emailBlacklisted; - return $this; - } - /** - * Gets smsBlacklisted - * - * @return bool - */ - public function getSmsBlacklisted() - { - return $this->container['smsBlacklisted']; - } - /** - * Sets smsBlacklisted - * - * @param bool $smsBlacklisted Set this field to blacklist the contact for SMS (smsBlacklisted = true) - * - * @return $this - */ - public function setSmsBlacklisted($smsBlacklisted) - { - $this->container['smsBlacklisted'] = $smsBlacklisted; - return $this; - } - /** - * Gets listIds - * - * @return int[] - */ - public function getListIds() - { - return $this->container['listIds']; - } - /** - * Sets listIds - * - * @param int[] $listIds Ids of the lists to add the contact to - * - * @return $this - */ - public function setListIds($listIds) - { - $this->container['listIds'] = $listIds; - return $this; - } - /** - * Gets updateEnabled - * - * @return bool - */ - public function getUpdateEnabled() - { - return $this->container['updateEnabled']; - } - /** - * Sets updateEnabled - * - * @param bool $updateEnabled Facilitate to update the existing contact in the same request (updateEnabled = true) - * - * @return $this - */ - public function setUpdateEnabled($updateEnabled) - { - $this->container['updateEnabled'] = $updateEnabled; - return $this; - } - /** - * Gets smtpBlacklistSender - * - * @return string[] - */ - public function getSmtpBlacklistSender() - { - return $this->container['smtpBlacklistSender']; - } - /** - * Sets smtpBlacklistSender - * - * @param string[] $smtpBlacklistSender transactional email forbidden sender for contact. Use only for email Contact ( only available if updateEnabled = true ) - * - * @return $this - */ - public function setSmtpBlacklistSender($smtpBlacklistSender) - { - $this->container['smtpBlacklistSender'] = $smtpBlacklistSender; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateDoiContact.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateDoiContact.php deleted file mode 100644 index dbee52a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateDoiContact.php +++ /dev/null @@ -1,373 +0,0 @@ - 'string', 'attributes' => 'object', 'includeListIds' => 'int[]', 'excludeListIds' => 'int[]', 'templateId' => 'int', 'redirectionUrl' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'attributes' => null, 'includeListIds' => 'int64', 'excludeListIds' => 'int64', 'templateId' => 'int64', 'redirectionUrl' => 'url']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'attributes' => 'attributes', 'includeListIds' => 'includeListIds', 'excludeListIds' => 'excludeListIds', 'templateId' => 'templateId', 'redirectionUrl' => 'redirectionUrl']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'attributes' => 'setAttributes', 'includeListIds' => 'setIncludeListIds', 'excludeListIds' => 'setExcludeListIds', 'templateId' => 'setTemplateId', 'redirectionUrl' => 'setRedirectionUrl']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'attributes' => 'getAttributes', 'includeListIds' => 'getIncludeListIds', 'excludeListIds' => 'getExcludeListIds', 'templateId' => 'getTemplateId', 'redirectionUrl' => 'getRedirectionUrl']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['attributes'] = isset($data['attributes']) ? $data['attributes'] : null; - $this->container['includeListIds'] = isset($data['includeListIds']) ? $data['includeListIds'] : null; - $this->container['excludeListIds'] = isset($data['excludeListIds']) ? $data['excludeListIds'] : null; - $this->container['templateId'] = isset($data['templateId']) ? $data['templateId'] : null; - $this->container['redirectionUrl'] = isset($data['redirectionUrl']) ? $data['redirectionUrl'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - if ($this->container['includeListIds'] === null) { - $invalidProperties[] = "'includeListIds' can't be null"; - } - if ($this->container['templateId'] === null) { - $invalidProperties[] = "'templateId' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email address where the confirmation email will be sent. This email address will be the identifier for all other contact attributes. - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets attributes - * - * @return object - */ - public function getAttributes() - { - return $this->container['attributes']; - } - /** - * Sets attributes - * - * @param object $attributes Pass the set of attributes and their values. These attributes must be present in your SendinBlue account. For eg. {'FNAME':'Elly', 'LNAME':'Roger'} - * - * @return $this - */ - public function setAttributes($attributes) - { - $this->container['attributes'] = $attributes; - return $this; - } - /** - * Gets includeListIds - * - * @return int[] - */ - public function getIncludeListIds() - { - return $this->container['includeListIds']; - } - /** - * Sets includeListIds - * - * @param int[] $includeListIds Lists under user account where contact should be added - * - * @return $this - */ - public function setIncludeListIds($includeListIds) - { - $this->container['includeListIds'] = $includeListIds; - return $this; - } - /** - * Gets excludeListIds - * - * @return int[] - */ - public function getExcludeListIds() - { - return $this->container['excludeListIds']; - } - /** - * Sets excludeListIds - * - * @param int[] $excludeListIds Lists under user account where contact should not be added - * - * @return $this - */ - public function setExcludeListIds($excludeListIds) - { - $this->container['excludeListIds'] = $excludeListIds; - return $this; - } - /** - * Gets templateId - * - * @return int - */ - public function getTemplateId() - { - return $this->container['templateId']; - } - /** - * Sets templateId - * - * @param int $templateId Id of the Double opt-in (DOI) template - * - * @return $this - */ - public function setTemplateId($templateId) - { - $this->container['templateId'] = $templateId; - return $this; - } - /** - * Gets redirectionUrl - * - * @return string - */ - public function getRedirectionUrl() - { - return $this->container['redirectionUrl']; - } - /** - * Sets redirectionUrl - * - * @param string $redirectionUrl URL of the web page that user will be redirected to after clicking on the double opt in URL. When editing your DOI template you can reference this URL by using the tag {{ params.DOIurl }}. - * - * @return $this - */ - public function setRedirectionUrl($redirectionUrl) - { - $this->container['redirectionUrl'] = $redirectionUrl; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaign.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaign.php deleted file mode 100644 index 21bf14a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaign.php +++ /dev/null @@ -1,909 +0,0 @@ - 'string', 'sender' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateEmailCampaignSender', 'name' => 'string', 'htmlContent' => 'string', 'htmlUrl' => 'string', 'templateId' => 'int', 'scheduledAt' => '\\DateTime', 'subject' => 'string', 'replyTo' => 'string', 'toField' => 'string', 'recipients' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateEmailCampaignRecipients', 'attachmentUrl' => 'string', 'inlineImageActivation' => 'bool', 'mirrorActive' => 'bool', 'footer' => 'string', 'header' => 'string', 'utmCampaign' => 'string', 'params' => 'object', 'sendAtBestTime' => 'bool', 'abTesting' => 'bool', 'subjectA' => 'string', 'subjectB' => 'string', 'splitRule' => 'int', 'winnerCriteria' => 'string', 'winnerDelay' => 'int', 'ipWarmupEnable' => 'bool', 'initialQuota' => 'int', 'increaseRate' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['tag' => null, 'sender' => null, 'name' => null, 'htmlContent' => null, 'htmlUrl' => 'url', 'templateId' => 'int64', 'scheduledAt' => 'date-time', 'subject' => null, 'replyTo' => 'email', 'toField' => null, 'recipients' => null, 'attachmentUrl' => 'url', 'inlineImageActivation' => null, 'mirrorActive' => null, 'footer' => null, 'header' => null, 'utmCampaign' => null, 'params' => null, 'sendAtBestTime' => null, 'abTesting' => null, 'subjectA' => null, 'subjectB' => null, 'splitRule' => 'int64', 'winnerCriteria' => null, 'winnerDelay' => 'int64', 'ipWarmupEnable' => null, 'initialQuota' => 'int64', 'increaseRate' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['tag' => 'tag', 'sender' => 'sender', 'name' => 'name', 'htmlContent' => 'htmlContent', 'htmlUrl' => 'htmlUrl', 'templateId' => 'templateId', 'scheduledAt' => 'scheduledAt', 'subject' => 'subject', 'replyTo' => 'replyTo', 'toField' => 'toField', 'recipients' => 'recipients', 'attachmentUrl' => 'attachmentUrl', 'inlineImageActivation' => 'inlineImageActivation', 'mirrorActive' => 'mirrorActive', 'footer' => 'footer', 'header' => 'header', 'utmCampaign' => 'utmCampaign', 'params' => 'params', 'sendAtBestTime' => 'sendAtBestTime', 'abTesting' => 'abTesting', 'subjectA' => 'subjectA', 'subjectB' => 'subjectB', 'splitRule' => 'splitRule', 'winnerCriteria' => 'winnerCriteria', 'winnerDelay' => 'winnerDelay', 'ipWarmupEnable' => 'ipWarmupEnable', 'initialQuota' => 'initialQuota', 'increaseRate' => 'increaseRate']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['tag' => 'setTag', 'sender' => 'setSender', 'name' => 'setName', 'htmlContent' => 'setHtmlContent', 'htmlUrl' => 'setHtmlUrl', 'templateId' => 'setTemplateId', 'scheduledAt' => 'setScheduledAt', 'subject' => 'setSubject', 'replyTo' => 'setReplyTo', 'toField' => 'setToField', 'recipients' => 'setRecipients', 'attachmentUrl' => 'setAttachmentUrl', 'inlineImageActivation' => 'setInlineImageActivation', 'mirrorActive' => 'setMirrorActive', 'footer' => 'setFooter', 'header' => 'setHeader', 'utmCampaign' => 'setUtmCampaign', 'params' => 'setParams', 'sendAtBestTime' => 'setSendAtBestTime', 'abTesting' => 'setAbTesting', 'subjectA' => 'setSubjectA', 'subjectB' => 'setSubjectB', 'splitRule' => 'setSplitRule', 'winnerCriteria' => 'setWinnerCriteria', 'winnerDelay' => 'setWinnerDelay', 'ipWarmupEnable' => 'setIpWarmupEnable', 'initialQuota' => 'setInitialQuota', 'increaseRate' => 'setIncreaseRate']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['tag' => 'getTag', 'sender' => 'getSender', 'name' => 'getName', 'htmlContent' => 'getHtmlContent', 'htmlUrl' => 'getHtmlUrl', 'templateId' => 'getTemplateId', 'scheduledAt' => 'getScheduledAt', 'subject' => 'getSubject', 'replyTo' => 'getReplyTo', 'toField' => 'getToField', 'recipients' => 'getRecipients', 'attachmentUrl' => 'getAttachmentUrl', 'inlineImageActivation' => 'getInlineImageActivation', 'mirrorActive' => 'getMirrorActive', 'footer' => 'getFooter', 'header' => 'getHeader', 'utmCampaign' => 'getUtmCampaign', 'params' => 'getParams', 'sendAtBestTime' => 'getSendAtBestTime', 'abTesting' => 'getAbTesting', 'subjectA' => 'getSubjectA', 'subjectB' => 'getSubjectB', 'splitRule' => 'getSplitRule', 'winnerCriteria' => 'getWinnerCriteria', 'winnerDelay' => 'getWinnerDelay', 'ipWarmupEnable' => 'getIpWarmupEnable', 'initialQuota' => 'getInitialQuota', 'increaseRate' => 'getIncreaseRate']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const WINNER_CRITERIA_OPEN = 'open'; - const WINNER_CRITERIA_CLICK = 'click'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getWinnerCriteriaAllowableValues() - { - return [self::WINNER_CRITERIA_OPEN, self::WINNER_CRITERIA_CLICK]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['tag'] = isset($data['tag']) ? $data['tag'] : null; - $this->container['sender'] = isset($data['sender']) ? $data['sender'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['htmlContent'] = isset($data['htmlContent']) ? $data['htmlContent'] : null; - $this->container['htmlUrl'] = isset($data['htmlUrl']) ? $data['htmlUrl'] : null; - $this->container['templateId'] = isset($data['templateId']) ? $data['templateId'] : null; - $this->container['scheduledAt'] = isset($data['scheduledAt']) ? $data['scheduledAt'] : null; - $this->container['subject'] = isset($data['subject']) ? $data['subject'] : null; - $this->container['replyTo'] = isset($data['replyTo']) ? $data['replyTo'] : null; - $this->container['toField'] = isset($data['toField']) ? $data['toField'] : null; - $this->container['recipients'] = isset($data['recipients']) ? $data['recipients'] : null; - $this->container['attachmentUrl'] = isset($data['attachmentUrl']) ? $data['attachmentUrl'] : null; - $this->container['inlineImageActivation'] = isset($data['inlineImageActivation']) ? $data['inlineImageActivation'] : \false; - $this->container['mirrorActive'] = isset($data['mirrorActive']) ? $data['mirrorActive'] : null; - $this->container['footer'] = isset($data['footer']) ? $data['footer'] : null; - $this->container['header'] = isset($data['header']) ? $data['header'] : null; - $this->container['utmCampaign'] = isset($data['utmCampaign']) ? $data['utmCampaign'] : null; - $this->container['params'] = isset($data['params']) ? $data['params'] : null; - $this->container['sendAtBestTime'] = isset($data['sendAtBestTime']) ? $data['sendAtBestTime'] : \false; - $this->container['abTesting'] = isset($data['abTesting']) ? $data['abTesting'] : \false; - $this->container['subjectA'] = isset($data['subjectA']) ? $data['subjectA'] : null; - $this->container['subjectB'] = isset($data['subjectB']) ? $data['subjectB'] : null; - $this->container['splitRule'] = isset($data['splitRule']) ? $data['splitRule'] : null; - $this->container['winnerCriteria'] = isset($data['winnerCriteria']) ? $data['winnerCriteria'] : null; - $this->container['winnerDelay'] = isset($data['winnerDelay']) ? $data['winnerDelay'] : null; - $this->container['ipWarmupEnable'] = isset($data['ipWarmupEnable']) ? $data['ipWarmupEnable'] : \false; - $this->container['initialQuota'] = isset($data['initialQuota']) ? $data['initialQuota'] : null; - $this->container['increaseRate'] = isset($data['increaseRate']) ? $data['increaseRate'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['sender'] === null) { - $invalidProperties[] = "'sender' can't be null"; - } - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if (!\is_null($this->container['splitRule']) && $this->container['splitRule'] > 50) { - $invalidProperties[] = "invalid value for 'splitRule', must be smaller than or equal to 50."; - } - if (!\is_null($this->container['splitRule']) && $this->container['splitRule'] < 1) { - $invalidProperties[] = "invalid value for 'splitRule', must be bigger than or equal to 1."; - } - $allowedValues = $this->getWinnerCriteriaAllowableValues(); - if (!\is_null($this->container['winnerCriteria']) && !\in_array($this->container['winnerCriteria'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'winnerCriteria', must be one of '%s'", \implode("', '", $allowedValues)); - } - if (!\is_null($this->container['winnerDelay']) && $this->container['winnerDelay'] > 168) { - $invalidProperties[] = "invalid value for 'winnerDelay', must be smaller than or equal to 168."; - } - if (!\is_null($this->container['winnerDelay']) && $this->container['winnerDelay'] < 1) { - $invalidProperties[] = "invalid value for 'winnerDelay', must be bigger than or equal to 1."; - } - if (!\is_null($this->container['increaseRate']) && $this->container['increaseRate'] > 100) { - $invalidProperties[] = "invalid value for 'increaseRate', must be smaller than or equal to 100."; - } - if (!\is_null($this->container['increaseRate']) && $this->container['increaseRate'] < 0) { - $invalidProperties[] = "invalid value for 'increaseRate', must be bigger than or equal to 0."; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets tag - * - * @return string - */ - public function getTag() - { - return $this->container['tag']; - } - /** - * Sets tag - * - * @param string $tag Tag of the campaign - * - * @return $this - */ - public function setTag($tag) - { - $this->container['tag'] = $tag; - return $this; - } - /** - * Gets sender - * - * @return \SendinBlue\Client\Model\CreateEmailCampaignSender - */ - public function getSender() - { - return $this->container['sender']; - } - /** - * Sets sender - * - * @param \SendinBlue\Client\Model\CreateEmailCampaignSender $sender sender - * - * @return $this - */ - public function setSender($sender) - { - $this->container['sender'] = $sender; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the campaign - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets htmlContent - * - * @return string - */ - public function getHtmlContent() - { - return $this->container['htmlContent']; - } - /** - * Sets htmlContent - * - * @param string $htmlContent Mandatory if htmlUrl and templateId are empty. Body of the message (HTML) - * - * @return $this - */ - public function setHtmlContent($htmlContent) - { - $this->container['htmlContent'] = $htmlContent; - return $this; - } - /** - * Gets htmlUrl - * - * @return string - */ - public function getHtmlUrl() - { - return $this->container['htmlUrl']; - } - /** - * Sets htmlUrl - * - * @param string $htmlUrl Mandatory if htmlContent and templateId are empty. Url to the message (HTML) - * - * @return $this - */ - public function setHtmlUrl($htmlUrl) - { - $this->container['htmlUrl'] = $htmlUrl; - return $this; - } - /** - * Gets templateId - * - * @return int - */ - public function getTemplateId() - { - return $this->container['templateId']; - } - /** - * Sets templateId - * - * @param int $templateId Mandatory if htmlContent and htmlUrl are empty. Id of the transactional email template with status 'active'. Used to copy only its content fetched from htmlContent/htmlUrl to an email campaign for RSS feature. - * - * @return $this - */ - public function setTemplateId($templateId) - { - $this->container['templateId'] = $templateId; - return $this; - } - /** - * Gets scheduledAt - * - * @return \DateTime - */ - public function getScheduledAt() - { - return $this->container['scheduledAt']; - } - /** - * Sets scheduledAt - * - * @param \DateTime $scheduledAt Sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. If sendAtBestTime is set to true, your campaign will be sent according to the date passed (ignoring the time part). - * - * @return $this - */ - public function setScheduledAt($scheduledAt) - { - $this->container['scheduledAt'] = $scheduledAt; - return $this; - } - /** - * Gets subject - * - * @return string - */ - public function getSubject() - { - return $this->container['subject']; - } - /** - * Sets subject - * - * @param string $subject Subject of the campaign. Mandatory if abTesting is false. Ignored if abTesting is true. - * - * @return $this - */ - public function setSubject($subject) - { - $this->container['subject'] = $subject; - return $this; - } - /** - * Gets replyTo - * - * @return string - */ - public function getReplyTo() - { - return $this->container['replyTo']; - } - /** - * Sets replyTo - * - * @param string $replyTo Email on which the campaign recipients will be able to reply to - * - * @return $this - */ - public function setReplyTo($replyTo) - { - $this->container['replyTo'] = $replyTo; - return $this; - } - /** - * Gets toField - * - * @return string - */ - public function getToField() - { - return $this->container['toField']; - } - /** - * Sets toField - * - * @param string $toField To personalize the «To» Field. If you want to include the first name and last name of your recipient, add {FNAME} {LNAME}. These contact attributes must already exist in your SendinBlue account. If input parameter 'params' used please use {{contact.FNAME}} {{contact.LNAME}} for personalization - * - * @return $this - */ - public function setToField($toField) - { - $this->container['toField'] = $toField; - return $this; - } - /** - * Gets recipients - * - * @return \SendinBlue\Client\Model\CreateEmailCampaignRecipients - */ - public function getRecipients() - { - return $this->container['recipients']; - } - /** - * Sets recipients - * - * @param \SendinBlue\Client\Model\CreateEmailCampaignRecipients $recipients recipients - * - * @return $this - */ - public function setRecipients($recipients) - { - $this->container['recipients'] = $recipients; - return $this; - } - /** - * Gets attachmentUrl - * - * @return string - */ - public function getAttachmentUrl() - { - return $this->container['attachmentUrl']; - } - /** - * Sets attachmentUrl - * - * @param string $attachmentUrl Absolute url of the attachment (no local file). Extension allowed: xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps - * - * @return $this - */ - public function setAttachmentUrl($attachmentUrl) - { - $this->container['attachmentUrl'] = $attachmentUrl; - return $this; - } - /** - * Gets inlineImageActivation - * - * @return bool - */ - public function getInlineImageActivation() - { - return $this->container['inlineImageActivation']; - } - /** - * Sets inlineImageActivation - * - * @param bool $inlineImageActivation Use true to embedded the images in your email. Final size of the email should be less than 4MB. Campaigns with embedded images can not be sent to more than 5000 contacts - * - * @return $this - */ - public function setInlineImageActivation($inlineImageActivation) - { - $this->container['inlineImageActivation'] = $inlineImageActivation; - return $this; - } - /** - * Gets mirrorActive - * - * @return bool - */ - public function getMirrorActive() - { - return $this->container['mirrorActive']; - } - /** - * Sets mirrorActive - * - * @param bool $mirrorActive Use true to enable the mirror link - * - * @return $this - */ - public function setMirrorActive($mirrorActive) - { - $this->container['mirrorActive'] = $mirrorActive; - return $this; - } - /** - * Gets footer - * - * @return string - */ - public function getFooter() - { - return $this->container['footer']; - } - /** - * Sets footer - * - * @param string $footer Footer of the email campaign - * - * @return $this - */ - public function setFooter($footer) - { - $this->container['footer'] = $footer; - return $this; - } - /** - * Gets header - * - * @return string - */ - public function getHeader() - { - return $this->container['header']; - } - /** - * Sets header - * - * @param string $header Header of the email campaign - * - * @return $this - */ - public function setHeader($header) - { - $this->container['header'] = $header; - return $this; - } - /** - * Gets utmCampaign - * - * @return string - */ - public function getUtmCampaign() - { - return $this->container['utmCampaign']; - } - /** - * Sets utmCampaign - * - * @param string $utmCampaign Customize the utm_campaign value. If this field is empty, the campaign name will be used. Only alphanumeric characters and spaces are allowed - * - * @return $this - */ - public function setUtmCampaign($utmCampaign) - { - $this->container['utmCampaign'] = $utmCampaign; - return $this; - } - /** - * Gets params - * - * @return object - */ - public function getParams() - { - return $this->container['params']; - } - /** - * Sets params - * - * @param object $params Pass the set of attributes to customize the type classic campaign. For example, `{\"FNAME\":\"Joe\", \"LNAME:\"Doe\"}`. Only available if 'type' is 'classic'. It's considered only if campaign is in New Template Language format. The New Template Language is dependent on the values of 'subject', 'htmlContent/htmlUrl', 'sender.name' & 'toField' - * - * @return $this - */ - public function setParams($params) - { - $this->container['params'] = $params; - return $this; - } - /** - * Gets sendAtBestTime - * - * @return bool - */ - public function getSendAtBestTime() - { - return $this->container['sendAtBestTime']; - } - /** - * Sets sendAtBestTime - * - * @param bool $sendAtBestTime Set this to true if you want to send your campaign at best time. - * - * @return $this - */ - public function setSendAtBestTime($sendAtBestTime) - { - $this->container['sendAtBestTime'] = $sendAtBestTime; - return $this; - } - /** - * Gets abTesting - * - * @return bool - */ - public function getAbTesting() - { - return $this->container['abTesting']; - } - /** - * Sets abTesting - * - * @param bool $abTesting Status of A/B Test. abTesting = false means it is disabled, & abTesting = true means it is enabled. 'subjectA', 'subjectB', 'splitRule', 'winnerCriteria' & 'winnerDelay' will be considered when abTesting is set to true. 'subjectA' & 'subjectB' are mandatory together & 'subject' if passed is ignored. Can be set to true only if 'sendAtBestTime' is 'false'. You will be able to set up two subject lines for your campaign and send them to a random sample of your total recipients. Half of the test group will receive version A, and the other half will receive version B - * - * @return $this - */ - public function setAbTesting($abTesting) - { - $this->container['abTesting'] = $abTesting; - return $this; - } - /** - * Gets subjectA - * - * @return string - */ - public function getSubjectA() - { - return $this->container['subjectA']; - } - /** - * Sets subjectA - * - * @param string $subjectA Subject A of the campaign. Mandatory if abTesting = true. subjectA & subjectB should have unique value - * - * @return $this - */ - public function setSubjectA($subjectA) - { - $this->container['subjectA'] = $subjectA; - return $this; - } - /** - * Gets subjectB - * - * @return string - */ - public function getSubjectB() - { - return $this->container['subjectB']; - } - /** - * Sets subjectB - * - * @param string $subjectB Subject B of the campaign. Mandatory if abTesting = true. subjectA & subjectB should have unique value - * - * @return $this - */ - public function setSubjectB($subjectB) - { - $this->container['subjectB'] = $subjectB; - return $this; - } - /** - * Gets splitRule - * - * @return int - */ - public function getSplitRule() - { - return $this->container['splitRule']; - } - /** - * Sets splitRule - * - * @param int $splitRule Add the size of your test groups. Mandatory if abTesting = true & 'recipients' is passed. We'll send version A and B to a random sample of recipients, and then the winning version to everyone else - * - * @return $this - */ - public function setSplitRule($splitRule) - { - if (!\is_null($splitRule) && $splitRule > 50) { - throw new \InvalidArgumentException('invalid value for $splitRule when calling CreateEmailCampaign., must be smaller than or equal to 50.'); - } - if (!\is_null($splitRule) && $splitRule < 1) { - throw new \InvalidArgumentException('invalid value for $splitRule when calling CreateEmailCampaign., must be bigger than or equal to 1.'); - } - $this->container['splitRule'] = $splitRule; - return $this; - } - /** - * Gets winnerCriteria - * - * @return string - */ - public function getWinnerCriteria() - { - return $this->container['winnerCriteria']; - } - /** - * Sets winnerCriteria - * - * @param string $winnerCriteria Choose the metrics that will determinate the winning version. Mandatory if 'splitRule' >= 1 and < 50. If splitRule = 50, 'winnerCriteria' is ignored if passed - * - * @return $this - */ - public function setWinnerCriteria($winnerCriteria) - { - $allowedValues = $this->getWinnerCriteriaAllowableValues(); - if (!\is_null($winnerCriteria) && !\in_array($winnerCriteria, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'winnerCriteria', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['winnerCriteria'] = $winnerCriteria; - return $this; - } - /** - * Gets winnerDelay - * - * @return int - */ - public function getWinnerDelay() - { - return $this->container['winnerDelay']; - } - /** - * Sets winnerDelay - * - * @param int $winnerDelay Choose the duration of the test in hours. Maximum is 7 days, pass 24*7 = 168 hours. The winning version will be sent at the end of the test. Mandatory if 'splitRule' >= 1 and < 50. If splitRule = 50, 'winnerDelay' is ignored if passed - * - * @return $this - */ - public function setWinnerDelay($winnerDelay) - { - if (!\is_null($winnerDelay) && $winnerDelay > 168) { - throw new \InvalidArgumentException('invalid value for $winnerDelay when calling CreateEmailCampaign., must be smaller than or equal to 168.'); - } - if (!\is_null($winnerDelay) && $winnerDelay < 1) { - throw new \InvalidArgumentException('invalid value for $winnerDelay when calling CreateEmailCampaign., must be bigger than or equal to 1.'); - } - $this->container['winnerDelay'] = $winnerDelay; - return $this; - } - /** - * Gets ipWarmupEnable - * - * @return bool - */ - public function getIpWarmupEnable() - { - return $this->container['ipWarmupEnable']; - } - /** - * Sets ipWarmupEnable - * - * @param bool $ipWarmupEnable Available for dedicated ip clients. Set this to true if you wish to warm up your ip. - * - * @return $this - */ - public function setIpWarmupEnable($ipWarmupEnable) - { - $this->container['ipWarmupEnable'] = $ipWarmupEnable; - return $this; - } - /** - * Gets initialQuota - * - * @return int - */ - public function getInitialQuota() - { - return $this->container['initialQuota']; - } - /** - * Sets initialQuota - * - * @param int $initialQuota Mandatory if ipWarmupEnable is set to true. Set an initial quota greater than 1 for warming up your ip. We recommend you set a value of 3000. - * - * @return $this - */ - public function setInitialQuota($initialQuota) - { - $this->container['initialQuota'] = $initialQuota; - return $this; - } - /** - * Gets increaseRate - * - * @return int - */ - public function getIncreaseRate() - { - return $this->container['increaseRate']; - } - /** - * Sets increaseRate - * - * @param int $increaseRate Mandatory if ipWarmupEnable is set to true. Set a percentage increase rate for warming up your ip. We recommend you set the increase rate to 30% per day. If you want to send the same number of emails every day, set the daily increase value to 0%. - * - * @return $this - */ - public function setIncreaseRate($increaseRate) - { - if (!\is_null($increaseRate) && $increaseRate > 100) { - throw new \InvalidArgumentException('invalid value for $increaseRate when calling CreateEmailCampaign., must be smaller than or equal to 100.'); - } - if (!\is_null($increaseRate) && $increaseRate < 0) { - throw new \InvalidArgumentException('invalid value for $increaseRate when calling CreateEmailCampaign., must be bigger than or equal to 0.'); - } - $this->container['increaseRate'] = $increaseRate; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignRecipients.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignRecipients.php deleted file mode 100644 index de800f4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignRecipients.php +++ /dev/null @@ -1,277 +0,0 @@ - 'int[]', 'listIds' => 'int[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['exclusionListIds' => 'int64', 'listIds' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['exclusionListIds' => 'exclusionListIds', 'listIds' => 'listIds']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['exclusionListIds' => 'setExclusionListIds', 'listIds' => 'setListIds']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['exclusionListIds' => 'getExclusionListIds', 'listIds' => 'getListIds']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['exclusionListIds'] = isset($data['exclusionListIds']) ? $data['exclusionListIds'] : null; - $this->container['listIds'] = isset($data['listIds']) ? $data['listIds'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets exclusionListIds - * - * @return int[] - */ - public function getExclusionListIds() - { - return $this->container['exclusionListIds']; - } - /** - * Sets exclusionListIds - * - * @param int[] $exclusionListIds List ids to exclude from the campaign - * - * @return $this - */ - public function setExclusionListIds($exclusionListIds) - { - $this->container['exclusionListIds'] = $exclusionListIds; - return $this; - } - /** - * Gets listIds - * - * @return int[] - */ - public function getListIds() - { - return $this->container['listIds']; - } - /** - * Sets listIds - * - * @param int[] $listIds Mandatory if scheduledAt is not empty. List Ids to send the campaign to - * - * @return $this - */ - public function setListIds($listIds) - { - $this->container['listIds'] = $listIds; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignSender.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignSender.php deleted file mode 100644 index 4d3dbe6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignSender.php +++ /dev/null @@ -1,302 +0,0 @@ - 'string', 'email' => 'string', 'id' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'email' => 'email', 'id' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'email' => 'email', 'id' => 'id']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'email' => 'setEmail', 'id' => 'setId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'email' => 'getEmail', 'id' => 'getId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Sender Name - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Sender email - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id Select the sender for the campaign on the basis of sender id. In order to select a sender with specific pool of IP’s, dedicated ip users shall pass id (instead of email). - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateList.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateList.php deleted file mode 100644 index 133a78b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateList.php +++ /dev/null @@ -1,282 +0,0 @@ - 'string', 'folderId' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'folderId' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'folderId' => 'folderId']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'folderId' => 'setFolderId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'folderId' => 'getFolderId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['folderId'] = isset($data['folderId']) ? $data['folderId'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['folderId'] === null) { - $invalidProperties[] = "'folderId' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the list - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets folderId - * - * @return int - */ - public function getFolderId() - { - return $this->container['folderId']; - } - /** - * Sets folderId - * - * @param int $folderId Id of the parent folder in which this list is to be created - * - * @return $this - */ - public function setFolderId($folderId) - { - $this->container['folderId'] = $folderId; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateModel.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateModel.php deleted file mode 100644 index baf6b3e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateModel.php +++ /dev/null @@ -1,257 +0,0 @@ - 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the object created - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateReseller.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateReseller.php deleted file mode 100644 index 7093316..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateReseller.php +++ /dev/null @@ -1,279 +0,0 @@ - 'string', 'id' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['authKey' => null, 'id' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['authKey' => 'authKey', 'id' => 'id']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['authKey' => 'setAuthKey', 'id' => 'setId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['authKey' => 'getAuthKey', 'id' => 'getId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['authKey'] = isset($data['authKey']) ? $data['authKey'] : null; - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['authKey'] === null) { - $invalidProperties[] = "'authKey' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets authKey - * - * @return string - */ - public function getAuthKey() - { - return $this->container['authKey']; - } - /** - * Sets authKey - * - * @param string $authKey AuthKey of Reseller child created - * - * @return $this - */ - public function setAuthKey($authKey) - { - $this->container['authKey'] = $authKey; - return $this; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id Id of Reseller child created - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSender.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSender.php deleted file mode 100644 index d7c1ba7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSender.php +++ /dev/null @@ -1,304 +0,0 @@ - 'string', 'email' => 'string', 'ips' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSenderIps[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'email' => 'email', 'ips' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'email' => 'email', 'ips' => 'ips']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'email' => 'setEmail', 'ips' => 'setIps']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'email' => 'getEmail', 'ips' => 'getIps']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['ips'] = isset($data['ips']) ? $data['ips'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name From Name to use for the sender - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email From email to use for the sender. A verification email will be sent to this address. - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets ips - * - * @return \SendinBlue\Client\Model\CreateSenderIps[] - */ - public function getIps() - { - return $this->container['ips']; - } - /** - * Sets ips - * - * @param \SendinBlue\Client\Model\CreateSenderIps[] $ips Mandatory in case of dedicated IP, IPs to associate to the sender - * - * @return $this - */ - public function setIps($ips) - { - $this->container['ips'] = $ips; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSenderIps.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSenderIps.php deleted file mode 100644 index 1cd2ed6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSenderIps.php +++ /dev/null @@ -1,316 +0,0 @@ - 'string', 'domain' => 'string', 'weight' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['ip' => null, 'domain' => null, 'weight' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['ip' => 'ip', 'domain' => 'domain', 'weight' => 'weight']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['ip' => 'setIp', 'domain' => 'setDomain', 'weight' => 'setWeight']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['ip' => 'getIp', 'domain' => 'getDomain', 'weight' => 'getWeight']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['ip'] = isset($data['ip']) ? $data['ip'] : null; - $this->container['domain'] = isset($data['domain']) ? $data['domain'] : null; - $this->container['weight'] = isset($data['weight']) ? $data['weight'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['ip'] === null) { - $invalidProperties[] = "'ip' can't be null"; - } - if ($this->container['domain'] === null) { - $invalidProperties[] = "'domain' can't be null"; - } - if (!\is_null($this->container['weight']) && $this->container['weight'] > 100) { - $invalidProperties[] = "invalid value for 'weight', must be smaller than or equal to 100."; - } - if (!\is_null($this->container['weight']) && $this->container['weight'] < 1) { - $invalidProperties[] = "invalid value for 'weight', must be bigger than or equal to 1."; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets ip - * - * @return string - */ - public function getIp() - { - return $this->container['ip']; - } - /** - * Sets ip - * - * @param string $ip Dedicated IP available in your account - * - * @return $this - */ - public function setIp($ip) - { - $this->container['ip'] = $ip; - return $this; - } - /** - * Gets domain - * - * @return string - */ - public function getDomain() - { - return $this->container['domain']; - } - /** - * Sets domain - * - * @param string $domain Domain of the IP - * - * @return $this - */ - public function setDomain($domain) - { - $this->container['domain'] = $domain; - return $this; - } - /** - * Gets weight - * - * @return int - */ - public function getWeight() - { - return $this->container['weight']; - } - /** - * Sets weight - * - * @param int $weight Weight to apply to the IP. Sum of all IP weights must be 100. Should be passed for either ALL or NONE of the IPs. If it's not passed, the sending will be equally balanced on all IPs. - * - * @return $this - */ - public function setWeight($weight) - { - if (!\is_null($weight) && $weight > 100) { - throw new \InvalidArgumentException('invalid value for $weight when calling CreateSenderIps., must be smaller than or equal to 100.'); - } - if (!\is_null($weight) && $weight < 1) { - throw new \InvalidArgumentException('invalid value for $weight when calling CreateSenderIps., must be bigger than or equal to 1.'); - } - $this->container['weight'] = $weight; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSenderModel.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSenderModel.php deleted file mode 100644 index eb17dec..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSenderModel.php +++ /dev/null @@ -1,301 +0,0 @@ - 'int', 'spfError' => 'bool', 'dkimError' => 'bool']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64', 'spfError' => null, 'dkimError' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id', 'spfError' => 'spfError', 'dkimError' => 'dkimError']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId', 'spfError' => 'setSpfError', 'dkimError' => 'setDkimError']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId', 'spfError' => 'getSpfError', 'dkimError' => 'getDkimError']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['spfError'] = isset($data['spfError']) ? $data['spfError'] : null; - $this->container['dkimError'] = isset($data['dkimError']) ? $data['dkimError'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the Sender created - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets spfError - * - * @return bool - */ - public function getSpfError() - { - return $this->container['spfError']; - } - /** - * Sets spfError - * - * @param bool $spfError Status of SPF configuration for the sender (true = SPF not well configured, false = SPF well configured) - * - * @return $this - */ - public function setSpfError($spfError) - { - $this->container['spfError'] = $spfError; - return $this; - } - /** - * Gets dkimError - * - * @return bool - */ - public function getDkimError() - { - return $this->container['dkimError']; - } - /** - * Sets dkimError - * - * @param bool $dkimError Status of DKIM configuration for the sender (true = DKIM not well configured, false = DKIM well configured) - * - * @return $this - */ - public function setDkimError($dkimError) - { - $this->container['dkimError'] = $dkimError; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaign.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaign.php deleted file mode 100644 index 20b3937..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaign.php +++ /dev/null @@ -1,357 +0,0 @@ - 'string', 'sender' => 'string', 'content' => 'string', 'recipients' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmsCampaignRecipients', 'scheduledAt' => '\\DateTime']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'sender' => null, 'content' => null, 'recipients' => null, 'scheduledAt' => 'date-time']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'sender' => 'sender', 'content' => 'content', 'recipients' => 'recipients', 'scheduledAt' => 'scheduledAt']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'sender' => 'setSender', 'content' => 'setContent', 'recipients' => 'setRecipients', 'scheduledAt' => 'setScheduledAt']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'sender' => 'getSender', 'content' => 'getContent', 'recipients' => 'getRecipients', 'scheduledAt' => 'getScheduledAt']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['sender'] = isset($data['sender']) ? $data['sender'] : null; - $this->container['content'] = isset($data['content']) ? $data['content'] : null; - $this->container['recipients'] = isset($data['recipients']) ? $data['recipients'] : null; - $this->container['scheduledAt'] = isset($data['scheduledAt']) ? $data['scheduledAt'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['sender'] === null) { - $invalidProperties[] = "'sender' can't be null"; - } - if (\mb_strlen($this->container['sender']) > 11) { - $invalidProperties[] = "invalid value for 'sender', the character length must be smaller than or equal to 11."; - } - if ($this->container['content'] === null) { - $invalidProperties[] = "'content' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the campaign - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets sender - * - * @return string - */ - public function getSender() - { - return $this->container['sender']; - } - /** - * Sets sender - * - * @param string $sender Name of the sender. The number of characters is limited to 11 - * - * @return $this - */ - public function setSender($sender) - { - if (\mb_strlen($sender) > 11) { - throw new \InvalidArgumentException('invalid length for $sender when calling CreateSmsCampaign., must be smaller than or equal to 11.'); - } - $this->container['sender'] = $sender; - return $this; - } - /** - * Gets content - * - * @return string - */ - public function getContent() - { - return $this->container['content']; - } - /** - * Sets content - * - * @param string $content Content of the message. The maximum characters used per SMS is 160, if used more than that, it will be counted as more than one SMS - * - * @return $this - */ - public function setContent($content) - { - $this->container['content'] = $content; - return $this; - } - /** - * Gets recipients - * - * @return \SendinBlue\Client\Model\CreateSmsCampaignRecipients - */ - public function getRecipients() - { - return $this->container['recipients']; - } - /** - * Sets recipients - * - * @param \SendinBlue\Client\Model\CreateSmsCampaignRecipients $recipients recipients - * - * @return $this - */ - public function setRecipients($recipients) - { - $this->container['recipients'] = $recipients; - return $this; - } - /** - * Gets scheduledAt - * - * @return \DateTime - */ - public function getScheduledAt() - { - return $this->container['scheduledAt']; - } - /** - * Sets scheduledAt - * - * @param \DateTime $scheduledAt UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. - * - * @return $this - */ - public function setScheduledAt($scheduledAt) - { - $this->container['scheduledAt'] = $scheduledAt; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaignRecipients.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaignRecipients.php deleted file mode 100644 index 82470ee..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaignRecipients.php +++ /dev/null @@ -1,279 +0,0 @@ - 'int[]', 'exclusionListIds' => 'int[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['listIds' => 'int64', 'exclusionListIds' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['listIds' => 'listIds', 'exclusionListIds' => 'exclusionListIds']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['listIds' => 'setListIds', 'exclusionListIds' => 'setExclusionListIds']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['listIds' => 'getListIds', 'exclusionListIds' => 'getExclusionListIds']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['listIds'] = isset($data['listIds']) ? $data['listIds'] : null; - $this->container['exclusionListIds'] = isset($data['exclusionListIds']) ? $data['exclusionListIds'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['listIds'] === null) { - $invalidProperties[] = "'listIds' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets listIds - * - * @return int[] - */ - public function getListIds() - { - return $this->container['listIds']; - } - /** - * Sets listIds - * - * @param int[] $listIds Lists Ids to send the campaign to. REQUIRED if scheduledAt is not empty - * - * @return $this - */ - public function setListIds($listIds) - { - $this->container['listIds'] = $listIds; - return $this; - } - /** - * Gets exclusionListIds - * - * @return int[] - */ - public function getExclusionListIds() - { - return $this->container['exclusionListIds']; - } - /** - * Sets exclusionListIds - * - * @param int[] $exclusionListIds List ids which have to be excluded from a campaign - * - * @return $this - */ - public function setExclusionListIds($exclusionListIds) - { - $this->container['exclusionListIds'] = $exclusionListIds; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpEmail.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpEmail.php deleted file mode 100644 index 44d00c1..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpEmail.php +++ /dev/null @@ -1,257 +0,0 @@ - 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['messageId' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['messageId' => 'messageId']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['messageId' => 'setMessageId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['messageId' => 'getMessageId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['messageId'] = isset($data['messageId']) ? $data['messageId'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['messageId'] === null) { - $invalidProperties[] = "'messageId' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets messageId - * - * @return string - */ - public function getMessageId() - { - return $this->container['messageId']; - } - /** - * Sets messageId - * - * @param string $messageId Message ID of the transactional email sent - * - * @return $this - */ - public function setMessageId($messageId) - { - $this->container['messageId'] = $messageId; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplate.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplate.php deleted file mode 100644 index bdd5e56..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplate.php +++ /dev/null @@ -1,461 +0,0 @@ - 'string', 'sender' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmtpTemplateSender', 'templateName' => 'string', 'htmlContent' => 'string', 'htmlUrl' => 'string', 'subject' => 'string', 'replyTo' => 'string', 'toField' => 'string', 'attachmentUrl' => 'string', 'isActive' => 'bool']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['tag' => null, 'sender' => null, 'templateName' => null, 'htmlContent' => null, 'htmlUrl' => 'url', 'subject' => null, 'replyTo' => 'email', 'toField' => null, 'attachmentUrl' => 'url', 'isActive' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['tag' => 'tag', 'sender' => 'sender', 'templateName' => 'templateName', 'htmlContent' => 'htmlContent', 'htmlUrl' => 'htmlUrl', 'subject' => 'subject', 'replyTo' => 'replyTo', 'toField' => 'toField', 'attachmentUrl' => 'attachmentUrl', 'isActive' => 'isActive']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['tag' => 'setTag', 'sender' => 'setSender', 'templateName' => 'setTemplateName', 'htmlContent' => 'setHtmlContent', 'htmlUrl' => 'setHtmlUrl', 'subject' => 'setSubject', 'replyTo' => 'setReplyTo', 'toField' => 'setToField', 'attachmentUrl' => 'setAttachmentUrl', 'isActive' => 'setIsActive']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['tag' => 'getTag', 'sender' => 'getSender', 'templateName' => 'getTemplateName', 'htmlContent' => 'getHtmlContent', 'htmlUrl' => 'getHtmlUrl', 'subject' => 'getSubject', 'replyTo' => 'getReplyTo', 'toField' => 'getToField', 'attachmentUrl' => 'getAttachmentUrl', 'isActive' => 'getIsActive']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['tag'] = isset($data['tag']) ? $data['tag'] : null; - $this->container['sender'] = isset($data['sender']) ? $data['sender'] : null; - $this->container['templateName'] = isset($data['templateName']) ? $data['templateName'] : null; - $this->container['htmlContent'] = isset($data['htmlContent']) ? $data['htmlContent'] : null; - $this->container['htmlUrl'] = isset($data['htmlUrl']) ? $data['htmlUrl'] : null; - $this->container['subject'] = isset($data['subject']) ? $data['subject'] : null; - $this->container['replyTo'] = isset($data['replyTo']) ? $data['replyTo'] : null; - $this->container['toField'] = isset($data['toField']) ? $data['toField'] : null; - $this->container['attachmentUrl'] = isset($data['attachmentUrl']) ? $data['attachmentUrl'] : null; - $this->container['isActive'] = isset($data['isActive']) ? $data['isActive'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['sender'] === null) { - $invalidProperties[] = "'sender' can't be null"; - } - if ($this->container['templateName'] === null) { - $invalidProperties[] = "'templateName' can't be null"; - } - if ($this->container['subject'] === null) { - $invalidProperties[] = "'subject' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets tag - * - * @return string - */ - public function getTag() - { - return $this->container['tag']; - } - /** - * Sets tag - * - * @param string $tag Tag of the template - * - * @return $this - */ - public function setTag($tag) - { - $this->container['tag'] = $tag; - return $this; - } - /** - * Gets sender - * - * @return \SendinBlue\Client\Model\CreateSmtpTemplateSender - */ - public function getSender() - { - return $this->container['sender']; - } - /** - * Sets sender - * - * @param \SendinBlue\Client\Model\CreateSmtpTemplateSender $sender sender - * - * @return $this - */ - public function setSender($sender) - { - $this->container['sender'] = $sender; - return $this; - } - /** - * Gets templateName - * - * @return string - */ - public function getTemplateName() - { - return $this->container['templateName']; - } - /** - * Sets templateName - * - * @param string $templateName Name of the template - * - * @return $this - */ - public function setTemplateName($templateName) - { - $this->container['templateName'] = $templateName; - return $this; - } - /** - * Gets htmlContent - * - * @return string - */ - public function getHtmlContent() - { - return $this->container['htmlContent']; - } - /** - * Sets htmlContent - * - * @param string $htmlContent Body of the message (HTML version). The field must have more than 10 characters. REQUIRED if htmlUrl is empty - * - * @return $this - */ - public function setHtmlContent($htmlContent) - { - $this->container['htmlContent'] = $htmlContent; - return $this; - } - /** - * Gets htmlUrl - * - * @return string - */ - public function getHtmlUrl() - { - return $this->container['htmlUrl']; - } - /** - * Sets htmlUrl - * - * @param string $htmlUrl Url which contents the body of the email message. REQUIRED if htmlContent is empty - * - * @return $this - */ - public function setHtmlUrl($htmlUrl) - { - $this->container['htmlUrl'] = $htmlUrl; - return $this; - } - /** - * Gets subject - * - * @return string - */ - public function getSubject() - { - return $this->container['subject']; - } - /** - * Sets subject - * - * @param string $subject Subject of the template - * - * @return $this - */ - public function setSubject($subject) - { - $this->container['subject'] = $subject; - return $this; - } - /** - * Gets replyTo - * - * @return string - */ - public function getReplyTo() - { - return $this->container['replyTo']; - } - /** - * Sets replyTo - * - * @param string $replyTo Email on which campaign recipients will be able to reply to - * - * @return $this - */ - public function setReplyTo($replyTo) - { - $this->container['replyTo'] = $replyTo; - return $this; - } - /** - * Gets toField - * - * @return string - */ - public function getToField() - { - return $this->container['toField']; - } - /** - * Sets toField - * - * @param string $toField To personalize the «To» Field. If you want to include the first name and last name of your recipient, add {FNAME} {LNAME}. These contact attributes must already exist in your SendinBlue account. If input parameter 'params' used please use {{contact.FNAME}} {{contact.LNAME}} for personalization - * - * @return $this - */ - public function setToField($toField) - { - $this->container['toField'] = $toField; - return $this; - } - /** - * Gets attachmentUrl - * - * @return string - */ - public function getAttachmentUrl() - { - return $this->container['attachmentUrl']; - } - /** - * Sets attachmentUrl - * - * @param string $attachmentUrl Absolute url of the attachment (no local file). Extension allowed: xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps - * - * @return $this - */ - public function setAttachmentUrl($attachmentUrl) - { - $this->container['attachmentUrl'] = $attachmentUrl; - return $this; - } - /** - * Gets isActive - * - * @return bool - */ - public function getIsActive() - { - return $this->container['isActive']; - } - /** - * Sets isActive - * - * @param bool $isActive Status of template. isActive = true means template is active and isActive = false means template is inactive - * - * @return $this - */ - public function setIsActive($isActive) - { - $this->container['isActive'] = $isActive; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplateSender.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplateSender.php deleted file mode 100644 index 0bed2c8..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplateSender.php +++ /dev/null @@ -1,302 +0,0 @@ - 'string', 'email' => 'string', 'id' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'email' => 'email', 'id' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'email' => 'email', 'id' => 'id']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'email' => 'setEmail', 'id' => 'setId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'email' => 'getEmail', 'id' => 'getId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the sender. If not passed, will be set to default - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email of the sender - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id Select the sender for the template on the basis of sender id. In order to select a sender with specific pool of IP’s, dedicated ip users shall pass id (instead of email). - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateUpdateContactModel.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateUpdateContactModel.php deleted file mode 100644 index 5cfea20..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateUpdateContactModel.php +++ /dev/null @@ -1,254 +0,0 @@ - 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the contact when a new contact is created - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateUpdateFolder.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateUpdateFolder.php deleted file mode 100644 index 61e882a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateUpdateFolder.php +++ /dev/null @@ -1,254 +0,0 @@ - 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the folder - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateWebhook.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateWebhook.php deleted file mode 100644 index bac4841..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreateWebhook.php +++ /dev/null @@ -1,374 +0,0 @@ - 'string', 'description' => 'string', 'events' => 'string[]', 'type' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['url' => 'url', 'description' => null, 'events' => null, 'type' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['url' => 'url', 'description' => 'description', 'events' => 'events', 'type' => 'type']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['url' => 'setUrl', 'description' => 'setDescription', 'events' => 'setEvents', 'type' => 'setType']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['url' => 'getUrl', 'description' => 'getDescription', 'events' => 'getEvents', 'type' => 'getType']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const EVENTS_SENT = 'sent'; - const EVENTS_HARD_BOUNCE = 'hardBounce'; - const EVENTS_SOFT_BOUNCE = 'softBounce'; - const EVENTS_BLOCKED = 'blocked'; - const EVENTS_SPAM = 'spam'; - const EVENTS_DELIVERED = 'delivered'; - const EVENTS_REQUEST = 'request'; - const EVENTS_CLICK = 'click'; - const EVENTS_INVALID = 'invalid'; - const EVENTS_DEFERRED = 'deferred'; - const EVENTS_OPENED = 'opened'; - const EVENTS_UNIQUE_OPENED = 'uniqueOpened'; - const EVENTS_UNSUBSCRIBED = 'unsubscribed'; - const EVENTS_LIST_ADDITION = 'listAddition'; - const EVENTS_CONTACT_UPDATED = 'contactUpdated'; - const EVENTS_CONTACT_DELETED = 'contactDeleted'; - const TYPE_TRANSACTIONAL = 'transactional'; - const TYPE_MARKETING = 'marketing'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getEventsAllowableValues() - { - return [self::EVENTS_SENT, self::EVENTS_HARD_BOUNCE, self::EVENTS_SOFT_BOUNCE, self::EVENTS_BLOCKED, self::EVENTS_SPAM, self::EVENTS_DELIVERED, self::EVENTS_REQUEST, self::EVENTS_CLICK, self::EVENTS_INVALID, self::EVENTS_DEFERRED, self::EVENTS_OPENED, self::EVENTS_UNIQUE_OPENED, self::EVENTS_UNSUBSCRIBED, self::EVENTS_LIST_ADDITION, self::EVENTS_CONTACT_UPDATED, self::EVENTS_CONTACT_DELETED]; - } - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getTypeAllowableValues() - { - return [self::TYPE_TRANSACTIONAL, self::TYPE_MARKETING]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['url'] = isset($data['url']) ? $data['url'] : null; - $this->container['description'] = isset($data['description']) ? $data['description'] : null; - $this->container['events'] = isset($data['events']) ? $data['events'] : null; - $this->container['type'] = isset($data['type']) ? $data['type'] : 'transactional'; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['url'] === null) { - $invalidProperties[] = "'url' can't be null"; - } - if ($this->container['events'] === null) { - $invalidProperties[] = "'events' can't be null"; - } - $allowedValues = $this->getTypeAllowableValues(); - if (!\is_null($this->container['type']) && !\in_array($this->container['type'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues)); - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets url - * - * @return string - */ - public function getUrl() - { - return $this->container['url']; - } - /** - * Sets url - * - * @param string $url URL of the webhook - * - * @return $this - */ - public function setUrl($url) - { - $this->container['url'] = $url; - return $this; - } - /** - * Gets description - * - * @return string - */ - public function getDescription() - { - return $this->container['description']; - } - /** - * Sets description - * - * @param string $description Description of the webhook - * - * @return $this - */ - public function setDescription($description) - { - $this->container['description'] = $description; - return $this; - } - /** - * Gets events - * - * @return string[] - */ - public function getEvents() - { - return $this->container['events']; - } - /** - * Sets events - * - * @param string[] $events Events triggering the webhook. Possible values for Transactional type webhook – sent, request, delivered, hardBounce, softBounce, blocked, spam, invalid, deferred, click, opened, uniqueOpened and unsubscribed and possible values for Marketing type webhook – spam, opened, click, hardBounce, softBounce, unsubscribed, listAddition & delivered - * - * @return $this - */ - public function setEvents($events) - { - $allowedValues = $this->getEventsAllowableValues(); - if (\array_diff($events, $allowedValues)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'events', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['events'] = $events; - return $this; - } - /** - * Gets type - * - * @return string - */ - public function getType() - { - return $this->container['type']; - } - /** - * Sets type - * - * @param string $type Type of the webhook - * - * @return $this - */ - public function setType($type) - { - $allowedValues = $this->getTypeAllowableValues(); - if (!\is_null($type) && !\in_array($type, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['type'] = $type; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreatedProcessId.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreatedProcessId.php deleted file mode 100644 index e3f2c0c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/CreatedProcessId.php +++ /dev/null @@ -1,257 +0,0 @@ - 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['processId' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['processId' => 'processId']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['processId' => 'setProcessId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['processId' => 'getProcessId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['processId'] = isset($data['processId']) ? $data['processId'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['processId'] === null) { - $invalidProperties[] = "'processId' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets processId - * - * @return int - */ - public function getProcessId() - { - return $this->container['processId']; - } - /** - * Sets processId - * - * @param int $processId Id of the process created - * - * @return $this - */ - public function setProcessId($processId) - { - $this->container['processId'] = $processId; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/DeleteHardbounces.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/DeleteHardbounces.php deleted file mode 100644 index 4d26398..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/DeleteHardbounces.php +++ /dev/null @@ -1,298 +0,0 @@ - 'string', 'endDate' => 'string', 'contactEmail' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['startDate' => null, 'endDate' => null, 'contactEmail' => 'email']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['startDate' => 'startDate', 'endDate' => 'endDate', 'contactEmail' => 'contactEmail']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['startDate' => 'setStartDate', 'endDate' => 'setEndDate', 'contactEmail' => 'setContactEmail']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['startDate' => 'getStartDate', 'endDate' => 'getEndDate', 'contactEmail' => 'getContactEmail']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['startDate'] = isset($data['startDate']) ? $data['startDate'] : null; - $this->container['endDate'] = isset($data['endDate']) ? $data['endDate'] : null; - $this->container['contactEmail'] = isset($data['contactEmail']) ? $data['contactEmail'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets startDate - * - * @return string - */ - public function getStartDate() - { - return $this->container['startDate']; - } - /** - * Sets startDate - * - * @param string $startDate Starting date (YYYY-MM-DD) of the time period for deletion. The hardbounces occurred after this date will be deleted. Must be less than or equal to the endDate - * - * @return $this - */ - public function setStartDate($startDate) - { - $this->container['startDate'] = $startDate; - return $this; - } - /** - * Gets endDate - * - * @return string - */ - public function getEndDate() - { - return $this->container['endDate']; - } - /** - * Sets endDate - * - * @param string $endDate Ending date (YYYY-MM-DD) of the time period for deletion. The hardbounces until this date will be deleted. Must be greater than or equal to the startDate - * - * @return $this - */ - public function setEndDate($endDate) - { - $this->container['endDate'] = $endDate; - return $this; - } - /** - * Gets contactEmail - * - * @return string - */ - public function getContactEmail() - { - return $this->container['contactEmail']; - } - /** - * Sets contactEmail - * - * @param string $contactEmail Target a specific email address - * - * @return $this - */ - public function setContactEmail($contactEmail) - { - $this->container['contactEmail'] = $contactEmail; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/EmailExportRecipients.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/EmailExportRecipients.php deleted file mode 100644 index c52a4a7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/EmailExportRecipients.php +++ /dev/null @@ -1,304 +0,0 @@ - 'string', 'recipientsType' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['notifyURL' => 'url', 'recipientsType' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['notifyURL' => 'notifyURL', 'recipientsType' => 'recipientsType']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['notifyURL' => 'setNotifyURL', 'recipientsType' => 'setRecipientsType']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['notifyURL' => 'getNotifyURL', 'recipientsType' => 'getRecipientsType']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const RECIPIENTS_TYPE_ALL = 'all'; - const RECIPIENTS_TYPE_NON_CLICKERS = 'nonClickers'; - const RECIPIENTS_TYPE_NON_OPENERS = 'nonOpeners'; - const RECIPIENTS_TYPE_CLICKERS = 'clickers'; - const RECIPIENTS_TYPE_OPENERS = 'openers'; - const RECIPIENTS_TYPE_SOFT_BOUNCES = 'softBounces'; - const RECIPIENTS_TYPE_HARD_BOUNCES = 'hardBounces'; - const RECIPIENTS_TYPE_UNSUBSCRIBED = 'unsubscribed'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getRecipientsTypeAllowableValues() - { - return [self::RECIPIENTS_TYPE_ALL, self::RECIPIENTS_TYPE_NON_CLICKERS, self::RECIPIENTS_TYPE_NON_OPENERS, self::RECIPIENTS_TYPE_CLICKERS, self::RECIPIENTS_TYPE_OPENERS, self::RECIPIENTS_TYPE_SOFT_BOUNCES, self::RECIPIENTS_TYPE_HARD_BOUNCES, self::RECIPIENTS_TYPE_UNSUBSCRIBED]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['notifyURL'] = isset($data['notifyURL']) ? $data['notifyURL'] : null; - $this->container['recipientsType'] = isset($data['recipientsType']) ? $data['recipientsType'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['recipientsType'] === null) { - $invalidProperties[] = "'recipientsType' can't be null"; - } - $allowedValues = $this->getRecipientsTypeAllowableValues(); - if (!\is_null($this->container['recipientsType']) && !\in_array($this->container['recipientsType'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'recipientsType', must be one of '%s'", \implode("', '", $allowedValues)); - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets notifyURL - * - * @return string - */ - public function getNotifyURL() - { - return $this->container['notifyURL']; - } - /** - * Sets notifyURL - * - * @param string $notifyURL Webhook called once the export process is finished. For reference, https://help.sendinblue.com/hc/en-us/articles/360007666479 - * - * @return $this - */ - public function setNotifyURL($notifyURL) - { - $this->container['notifyURL'] = $notifyURL; - return $this; - } - /** - * Gets recipientsType - * - * @return string - */ - public function getRecipientsType() - { - return $this->container['recipientsType']; - } - /** - * Sets recipientsType - * - * @param string $recipientsType Type of recipients to export for a campaign - * - * @return $this - */ - public function setRecipientsType($recipientsType) - { - $allowedValues = $this->getRecipientsTypeAllowableValues(); - if (!\in_array($recipientsType, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'recipientsType', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['recipientsType'] = $recipientsType; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ErrorModel.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ErrorModel.php deleted file mode 100644 index f33e004..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ErrorModel.php +++ /dev/null @@ -1,314 +0,0 @@ - 'string', 'message' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['code' => null, 'message' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['code' => 'code', 'message' => 'message']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['code' => 'setCode', 'message' => 'setMessage']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['code' => 'getCode', 'message' => 'getMessage']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const CODE_INVALID_PARAMETER = 'invalid_parameter'; - const CODE_MISSING_PARAMETER = 'missing_parameter'; - const CODE_OUT_OF_RANGE = 'out_of_range'; - const CODE_CAMPAIGN_PROCESSING = 'campaign_processing'; - const CODE_CAMPAIGN_SENT = 'campaign_sent'; - const CODE_DOCUMENT_NOT_FOUND = 'document_not_found'; - const CODE_RESELLER_PERMISSION_DENIED = 'reseller_permission_denied'; - const CODE_NOT_ENOUGH_CREDITS = 'not_enough_credits'; - const CODE_PERMISSION_DENIED = 'permission_denied'; - const CODE_DUPLICATE_PARAMETER = 'duplicate_parameter'; - const CODE_DUPLICATE_REQUEST = 'duplicate_request'; - const CODE_METHOD_NOT_ALLOWED = 'method_not_allowed'; - const CODE_UNAUTHORIZED = 'unauthorized'; - const CODE_ACCOUNT_UNDER_VALIDATION = 'account_under_validation'; - const CODE_NOT_ACCEPTABLE = 'not_acceptable'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getCodeAllowableValues() - { - return [self::CODE_INVALID_PARAMETER, self::CODE_MISSING_PARAMETER, self::CODE_OUT_OF_RANGE, self::CODE_CAMPAIGN_PROCESSING, self::CODE_CAMPAIGN_SENT, self::CODE_DOCUMENT_NOT_FOUND, self::CODE_RESELLER_PERMISSION_DENIED, self::CODE_NOT_ENOUGH_CREDITS, self::CODE_PERMISSION_DENIED, self::CODE_DUPLICATE_PARAMETER, self::CODE_DUPLICATE_REQUEST, self::CODE_METHOD_NOT_ALLOWED, self::CODE_UNAUTHORIZED, self::CODE_ACCOUNT_UNDER_VALIDATION, self::CODE_NOT_ACCEPTABLE]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['code'] = isset($data['code']) ? $data['code'] : null; - $this->container['message'] = isset($data['message']) ? $data['message'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['code'] === null) { - $invalidProperties[] = "'code' can't be null"; - } - $allowedValues = $this->getCodeAllowableValues(); - if (!\is_null($this->container['code']) && !\in_array($this->container['code'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'code', must be one of '%s'", \implode("', '", $allowedValues)); - } - if ($this->container['message'] === null) { - $invalidProperties[] = "'message' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets code - * - * @return string - */ - public function getCode() - { - return $this->container['code']; - } - /** - * Sets code - * - * @param string $code Error code displayed in case of a failure - * - * @return $this - */ - public function setCode($code) - { - $allowedValues = $this->getCodeAllowableValues(); - if (!\in_array($code, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'code', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['code'] = $code; - return $this; - } - /** - * Gets message - * - * @return string - */ - public function getMessage() - { - return $this->container['message']; - } - /** - * Sets message - * - * @param string $message Readable message associated to the failure - * - * @return $this - */ - public function setMessage($message) - { - $this->container['message'] = $message; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccount.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccount.php deleted file mode 100644 index 617e91b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccount.php +++ /dev/null @@ -1,429 +0,0 @@ - 'string', 'firstName' => 'string', 'lastName' => 'string', 'companyName' => 'string', 'address' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedClientAddress', 'plan' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccountPlan[]', 'relay' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccountRelay', 'marketingAutomation' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccountMarketingAutomation']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'firstName' => null, 'lastName' => null, 'companyName' => null, 'address' => null, 'plan' => null, 'relay' => null, 'marketingAutomation' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'firstName' => 'firstName', 'lastName' => 'lastName', 'companyName' => 'companyName', 'address' => 'address', 'plan' => 'plan', 'relay' => 'relay', 'marketingAutomation' => 'marketingAutomation']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'firstName' => 'setFirstName', 'lastName' => 'setLastName', 'companyName' => 'setCompanyName', 'address' => 'setAddress', 'plan' => 'setPlan', 'relay' => 'setRelay', 'marketingAutomation' => 'setMarketingAutomation']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'firstName' => 'getFirstName', 'lastName' => 'getLastName', 'companyName' => 'getCompanyName', 'address' => 'getAddress', 'plan' => 'getPlan', 'relay' => 'getRelay', 'marketingAutomation' => 'getMarketingAutomation']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['firstName'] = isset($data['firstName']) ? $data['firstName'] : null; - $this->container['lastName'] = isset($data['lastName']) ? $data['lastName'] : null; - $this->container['companyName'] = isset($data['companyName']) ? $data['companyName'] : null; - $this->container['address'] = isset($data['address']) ? $data['address'] : null; - $this->container['plan'] = isset($data['plan']) ? $data['plan'] : null; - $this->container['relay'] = isset($data['relay']) ? $data['relay'] : null; - $this->container['marketingAutomation'] = isset($data['marketingAutomation']) ? $data['marketingAutomation'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - if ($this->container['firstName'] === null) { - $invalidProperties[] = "'firstName' can't be null"; - } - if ($this->container['lastName'] === null) { - $invalidProperties[] = "'lastName' can't be null"; - } - if ($this->container['companyName'] === null) { - $invalidProperties[] = "'companyName' can't be null"; - } - if ($this->container['address'] === null) { - $invalidProperties[] = "'address' can't be null"; - } - if ($this->container['plan'] === null) { - $invalidProperties[] = "'plan' can't be null"; - } - if ($this->container['relay'] === null) { - $invalidProperties[] = "'relay' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Login Email - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets firstName - * - * @return string - */ - public function getFirstName() - { - return $this->container['firstName']; - } - /** - * Sets firstName - * - * @param string $firstName First Name - * - * @return $this - */ - public function setFirstName($firstName) - { - $this->container['firstName'] = $firstName; - return $this; - } - /** - * Gets lastName - * - * @return string - */ - public function getLastName() - { - return $this->container['lastName']; - } - /** - * Sets lastName - * - * @param string $lastName Last Name - * - * @return $this - */ - public function setLastName($lastName) - { - $this->container['lastName'] = $lastName; - return $this; - } - /** - * Gets companyName - * - * @return string - */ - public function getCompanyName() - { - return $this->container['companyName']; - } - /** - * Sets companyName - * - * @param string $companyName Name of the company - * - * @return $this - */ - public function setCompanyName($companyName) - { - $this->container['companyName'] = $companyName; - return $this; - } - /** - * Gets address - * - * @return \SendinBlue\Client\Model\GetExtendedClientAddress - */ - public function getAddress() - { - return $this->container['address']; - } - /** - * Sets address - * - * @param \SendinBlue\Client\Model\GetExtendedClientAddress $address address - * - * @return $this - */ - public function setAddress($address) - { - $this->container['address'] = $address; - return $this; - } - /** - * Gets plan - * - * @return \SendinBlue\Client\Model\GetAccountPlan[] - */ - public function getPlan() - { - return $this->container['plan']; - } - /** - * Sets plan - * - * @param \SendinBlue\Client\Model\GetAccountPlan[] $plan Information about your plans and credits - * - * @return $this - */ - public function setPlan($plan) - { - $this->container['plan'] = $plan; - return $this; - } - /** - * Gets relay - * - * @return \SendinBlue\Client\Model\GetAccountRelay - */ - public function getRelay() - { - return $this->container['relay']; - } - /** - * Sets relay - * - * @param \SendinBlue\Client\Model\GetAccountRelay $relay relay - * - * @return $this - */ - public function setRelay($relay) - { - $this->container['relay'] = $relay; - return $this; - } - /** - * Gets marketingAutomation - * - * @return \SendinBlue\Client\Model\GetAccountMarketingAutomation - */ - public function getMarketingAutomation() - { - return $this->container['marketingAutomation']; - } - /** - * Sets marketingAutomation - * - * @param \SendinBlue\Client\Model\GetAccountMarketingAutomation $marketingAutomation marketingAutomation - * - * @return $this - */ - public function setMarketingAutomation($marketingAutomation) - { - $this->container['marketingAutomation'] = $marketingAutomation; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountMarketingAutomation.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountMarketingAutomation.php deleted file mode 100644 index 182c9ed..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountMarketingAutomation.php +++ /dev/null @@ -1,279 +0,0 @@ - 'string', 'enabled' => 'bool']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['key' => null, 'enabled' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['key' => 'key', 'enabled' => 'enabled']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['key' => 'setKey', 'enabled' => 'setEnabled']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['key' => 'getKey', 'enabled' => 'getEnabled']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['key'] = isset($data['key']) ? $data['key'] : null; - $this->container['enabled'] = isset($data['enabled']) ? $data['enabled'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['enabled'] === null) { - $invalidProperties[] = "'enabled' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets key - * - * @return string - */ - public function getKey() - { - return $this->container['key']; - } - /** - * Sets key - * - * @param string $key Marketing Automation Tracker ID - * - * @return $this - */ - public function setKey($key) - { - $this->container['key'] = $key; - return $this; - } - /** - * Gets enabled - * - * @return bool - */ - public function getEnabled() - { - return $this->container['enabled']; - } - /** - * Sets enabled - * - * @param bool $enabled Status of Marketing Automation Plateform activation for your account (true=enabled, false=disabled) - * - * @return $this - */ - public function setEnabled($enabled) - { - $this->container['enabled'] = $enabled; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountPlan.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountPlan.php deleted file mode 100644 index 331c064..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountPlan.php +++ /dev/null @@ -1,413 +0,0 @@ - 'string', 'creditsType' => 'string', 'credits' => 'float', 'startDate' => '\\DateTime', 'endDate' => '\\DateTime', 'userLimit' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['type' => null, 'creditsType' => null, 'credits' => 'float', 'startDate' => 'date', 'endDate' => 'date', 'userLimit' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['type' => 'type', 'creditsType' => 'creditsType', 'credits' => 'credits', 'startDate' => 'startDate', 'endDate' => 'endDate', 'userLimit' => 'userLimit']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['type' => 'setType', 'creditsType' => 'setCreditsType', 'credits' => 'setCredits', 'startDate' => 'setStartDate', 'endDate' => 'setEndDate', 'userLimit' => 'setUserLimit']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['type' => 'getType', 'creditsType' => 'getCreditsType', 'credits' => 'getCredits', 'startDate' => 'getStartDate', 'endDate' => 'getEndDate', 'userLimit' => 'getUserLimit']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const TYPE_PAY_AS_YOU_GO = 'payAsYouGo'; - const TYPE_FREE = 'free'; - const TYPE_SUBSCRIPTION = 'subscription'; - const TYPE_SMS = 'sms'; - const TYPE_RESELLER = 'reseller'; - const CREDITS_TYPE_SEND_LIMIT = 'sendLimit'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getTypeAllowableValues() - { - return [self::TYPE_PAY_AS_YOU_GO, self::TYPE_FREE, self::TYPE_SUBSCRIPTION, self::TYPE_SMS, self::TYPE_RESELLER]; - } - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getCreditsTypeAllowableValues() - { - return [self::CREDITS_TYPE_SEND_LIMIT]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['type'] = isset($data['type']) ? $data['type'] : null; - $this->container['creditsType'] = isset($data['creditsType']) ? $data['creditsType'] : null; - $this->container['credits'] = isset($data['credits']) ? $data['credits'] : null; - $this->container['startDate'] = isset($data['startDate']) ? $data['startDate'] : null; - $this->container['endDate'] = isset($data['endDate']) ? $data['endDate'] : null; - $this->container['userLimit'] = isset($data['userLimit']) ? $data['userLimit'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['type'] === null) { - $invalidProperties[] = "'type' can't be null"; - } - $allowedValues = $this->getTypeAllowableValues(); - if (!\is_null($this->container['type']) && !\in_array($this->container['type'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues)); - } - if ($this->container['creditsType'] === null) { - $invalidProperties[] = "'creditsType' can't be null"; - } - $allowedValues = $this->getCreditsTypeAllowableValues(); - if (!\is_null($this->container['creditsType']) && !\in_array($this->container['creditsType'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'creditsType', must be one of '%s'", \implode("', '", $allowedValues)); - } - if ($this->container['credits'] === null) { - $invalidProperties[] = "'credits' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets type - * - * @return string - */ - public function getType() - { - return $this->container['type']; - } - /** - * Sets type - * - * @param string $type Displays the plan type of the user - * - * @return $this - */ - public function setType($type) - { - $allowedValues = $this->getTypeAllowableValues(); - if (!\in_array($type, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['type'] = $type; - return $this; - } - /** - * Gets creditsType - * - * @return string - */ - public function getCreditsType() - { - return $this->container['creditsType']; - } - /** - * Sets creditsType - * - * @param string $creditsType This is the type of the credit, \"Send Limit\" is one of the possible types of credit of a user. \"Send Limit\" implies the total number of emails you can send to the subscribers in your account. - * - * @return $this - */ - public function setCreditsType($creditsType) - { - $allowedValues = $this->getCreditsTypeAllowableValues(); - if (!\in_array($creditsType, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'creditsType', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['creditsType'] = $creditsType; - return $this; - } - /** - * Gets credits - * - * @return float - */ - public function getCredits() - { - return $this->container['credits']; - } - /** - * Sets credits - * - * @param float $credits Remaining credits of the user - * - * @return $this - */ - public function setCredits($credits) - { - $this->container['credits'] = $credits; - return $this; - } - /** - * Gets startDate - * - * @return \DateTime - */ - public function getStartDate() - { - return $this->container['startDate']; - } - /** - * Sets startDate - * - * @param \DateTime $startDate Date of the period from which the plan will start (only available for \"subscription\" and \"reseller\" plan type) - * - * @return $this - */ - public function setStartDate($startDate) - { - $this->container['startDate'] = $startDate; - return $this; - } - /** - * Gets endDate - * - * @return \DateTime - */ - public function getEndDate() - { - return $this->container['endDate']; - } - /** - * Sets endDate - * - * @param \DateTime $endDate Date of the period from which the plan will end (only available for \"subscription\" and \"reseller\" plan type) - * - * @return $this - */ - public function setEndDate($endDate) - { - $this->container['endDate'] = $endDate; - return $this; - } - /** - * Gets userLimit - * - * @return int - */ - public function getUserLimit() - { - return $this->container['userLimit']; - } - /** - * Sets userLimit - * - * @param int $userLimit Only in case of reseller account. It implies the total number of child accounts you can add to your account. - * - * @return $this - */ - public function setUserLimit($userLimit) - { - $this->container['userLimit'] = $userLimit; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountRelay.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountRelay.php deleted file mode 100644 index b72f495..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountRelay.php +++ /dev/null @@ -1,283 +0,0 @@ - 'bool', 'data' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAccountRelayData']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['enabled' => null, 'data' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['enabled' => 'enabled', 'data' => 'data']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['enabled' => 'setEnabled', 'data' => 'setData']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['enabled' => 'getEnabled', 'data' => 'getData']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['enabled'] = isset($data['enabled']) ? $data['enabled'] : null; - $this->container['data'] = isset($data['data']) ? $data['data'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['enabled'] === null) { - $invalidProperties[] = "'enabled' can't be null"; - } - if ($this->container['data'] === null) { - $invalidProperties[] = "'data' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets enabled - * - * @return bool - */ - public function getEnabled() - { - return $this->container['enabled']; - } - /** - * Sets enabled - * - * @param bool $enabled Status of your transactional email Account (true=Enabled, false=Disabled) - * - * @return $this - */ - public function setEnabled($enabled) - { - $this->container['enabled'] = $enabled; - return $this; - } - /** - * Gets data - * - * @return \SendinBlue\Client\Model\GetAccountRelayData - */ - public function getData() - { - return $this->container['data']; - } - /** - * Sets data - * - * @param \SendinBlue\Client\Model\GetAccountRelayData $data data - * - * @return $this - */ - public function setData($data) - { - $this->container['data'] = $data; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountRelayData.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountRelayData.php deleted file mode 100644 index 96caab4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAccountRelayData.php +++ /dev/null @@ -1,308 +0,0 @@ - 'string', 'relay' => 'string', 'port' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['userName' => 'email', 'relay' => null, 'port' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['userName' => 'userName', 'relay' => 'relay', 'port' => 'port']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['userName' => 'setUserName', 'relay' => 'setRelay', 'port' => 'setPort']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['userName' => 'getUserName', 'relay' => 'getRelay', 'port' => 'getPort']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['userName'] = isset($data['userName']) ? $data['userName'] : null; - $this->container['relay'] = isset($data['relay']) ? $data['relay'] : null; - $this->container['port'] = isset($data['port']) ? $data['port'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['userName'] === null) { - $invalidProperties[] = "'userName' can't be null"; - } - if ($this->container['relay'] === null) { - $invalidProperties[] = "'relay' can't be null"; - } - if ($this->container['port'] === null) { - $invalidProperties[] = "'port' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets userName - * - * @return string - */ - public function getUserName() - { - return $this->container['userName']; - } - /** - * Sets userName - * - * @param string $userName Email to use as login on transactional platform - * - * @return $this - */ - public function setUserName($userName) - { - $this->container['userName'] = $userName; - return $this; - } - /** - * Gets relay - * - * @return string - */ - public function getRelay() - { - return $this->container['relay']; - } - /** - * Sets relay - * - * @param string $relay URL of the SMTP Relay - * - * @return $this - */ - public function setRelay($relay) - { - $this->container['relay'] = $relay; - return $this; - } - /** - * Gets port - * - * @return int - */ - public function getPort() - { - return $this->container['port']; - } - /** - * Sets port - * - * @param int $port Port used for SMTP Relay - * - * @return $this - */ - public function setPort($port) - { - $this->container['port'] = $port; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAggregatedReport.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAggregatedReport.php deleted file mode 100644 index 9085864..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAggregatedReport.php +++ /dev/null @@ -1,557 +0,0 @@ - 'string', 'requests' => 'int', 'delivered' => 'int', 'hardBounces' => 'int', 'softBounces' => 'int', 'clicks' => 'int', 'uniqueClicks' => 'int', 'opens' => 'int', 'uniqueOpens' => 'int', 'spamReports' => 'int', 'blocked' => 'int', 'invalid' => 'int', 'unsubscribed' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['range' => null, 'requests' => 'int64', 'delivered' => 'int64', 'hardBounces' => 'int64', 'softBounces' => 'int64', 'clicks' => 'int64', 'uniqueClicks' => 'int64', 'opens' => 'int64', 'uniqueOpens' => 'int64', 'spamReports' => 'int64', 'blocked' => 'int64', 'invalid' => 'int64', 'unsubscribed' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['range' => 'range', 'requests' => 'requests', 'delivered' => 'delivered', 'hardBounces' => 'hardBounces', 'softBounces' => 'softBounces', 'clicks' => 'clicks', 'uniqueClicks' => 'uniqueClicks', 'opens' => 'opens', 'uniqueOpens' => 'uniqueOpens', 'spamReports' => 'spamReports', 'blocked' => 'blocked', 'invalid' => 'invalid', 'unsubscribed' => 'unsubscribed']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['range' => 'setRange', 'requests' => 'setRequests', 'delivered' => 'setDelivered', 'hardBounces' => 'setHardBounces', 'softBounces' => 'setSoftBounces', 'clicks' => 'setClicks', 'uniqueClicks' => 'setUniqueClicks', 'opens' => 'setOpens', 'uniqueOpens' => 'setUniqueOpens', 'spamReports' => 'setSpamReports', 'blocked' => 'setBlocked', 'invalid' => 'setInvalid', 'unsubscribed' => 'setUnsubscribed']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['range' => 'getRange', 'requests' => 'getRequests', 'delivered' => 'getDelivered', 'hardBounces' => 'getHardBounces', 'softBounces' => 'getSoftBounces', 'clicks' => 'getClicks', 'uniqueClicks' => 'getUniqueClicks', 'opens' => 'getOpens', 'uniqueOpens' => 'getUniqueOpens', 'spamReports' => 'getSpamReports', 'blocked' => 'getBlocked', 'invalid' => 'getInvalid', 'unsubscribed' => 'getUnsubscribed']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['range'] = isset($data['range']) ? $data['range'] : null; - $this->container['requests'] = isset($data['requests']) ? $data['requests'] : null; - $this->container['delivered'] = isset($data['delivered']) ? $data['delivered'] : null; - $this->container['hardBounces'] = isset($data['hardBounces']) ? $data['hardBounces'] : null; - $this->container['softBounces'] = isset($data['softBounces']) ? $data['softBounces'] : null; - $this->container['clicks'] = isset($data['clicks']) ? $data['clicks'] : null; - $this->container['uniqueClicks'] = isset($data['uniqueClicks']) ? $data['uniqueClicks'] : null; - $this->container['opens'] = isset($data['opens']) ? $data['opens'] : null; - $this->container['uniqueOpens'] = isset($data['uniqueOpens']) ? $data['uniqueOpens'] : null; - $this->container['spamReports'] = isset($data['spamReports']) ? $data['spamReports'] : null; - $this->container['blocked'] = isset($data['blocked']) ? $data['blocked'] : null; - $this->container['invalid'] = isset($data['invalid']) ? $data['invalid'] : null; - $this->container['unsubscribed'] = isset($data['unsubscribed']) ? $data['unsubscribed'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['range'] === null) { - $invalidProperties[] = "'range' can't be null"; - } - if ($this->container['requests'] === null) { - $invalidProperties[] = "'requests' can't be null"; - } - if ($this->container['delivered'] === null) { - $invalidProperties[] = "'delivered' can't be null"; - } - if ($this->container['hardBounces'] === null) { - $invalidProperties[] = "'hardBounces' can't be null"; - } - if ($this->container['softBounces'] === null) { - $invalidProperties[] = "'softBounces' can't be null"; - } - if ($this->container['clicks'] === null) { - $invalidProperties[] = "'clicks' can't be null"; - } - if ($this->container['uniqueClicks'] === null) { - $invalidProperties[] = "'uniqueClicks' can't be null"; - } - if ($this->container['opens'] === null) { - $invalidProperties[] = "'opens' can't be null"; - } - if ($this->container['uniqueOpens'] === null) { - $invalidProperties[] = "'uniqueOpens' can't be null"; - } - if ($this->container['spamReports'] === null) { - $invalidProperties[] = "'spamReports' can't be null"; - } - if ($this->container['blocked'] === null) { - $invalidProperties[] = "'blocked' can't be null"; - } - if ($this->container['invalid'] === null) { - $invalidProperties[] = "'invalid' can't be null"; - } - if ($this->container['unsubscribed'] === null) { - $invalidProperties[] = "'unsubscribed' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets range - * - * @return string - */ - public function getRange() - { - return $this->container['range']; - } - /** - * Sets range - * - * @param string $range Time frame of the report - * - * @return $this - */ - public function setRange($range) - { - $this->container['range'] = $range; - return $this; - } - /** - * Gets requests - * - * @return int - */ - public function getRequests() - { - return $this->container['requests']; - } - /** - * Sets requests - * - * @param int $requests Number of requests for the timeframe - * - * @return $this - */ - public function setRequests($requests) - { - $this->container['requests'] = $requests; - return $this; - } - /** - * Gets delivered - * - * @return int - */ - public function getDelivered() - { - return $this->container['delivered']; - } - /** - * Sets delivered - * - * @param int $delivered Number of delivered emails for the timeframe - * - * @return $this - */ - public function setDelivered($delivered) - { - $this->container['delivered'] = $delivered; - return $this; - } - /** - * Gets hardBounces - * - * @return int - */ - public function getHardBounces() - { - return $this->container['hardBounces']; - } - /** - * Sets hardBounces - * - * @param int $hardBounces Number of hardbounces for the timeframe - * - * @return $this - */ - public function setHardBounces($hardBounces) - { - $this->container['hardBounces'] = $hardBounces; - return $this; - } - /** - * Gets softBounces - * - * @return int - */ - public function getSoftBounces() - { - return $this->container['softBounces']; - } - /** - * Sets softBounces - * - * @param int $softBounces Number of softbounces for the timeframe - * - * @return $this - */ - public function setSoftBounces($softBounces) - { - $this->container['softBounces'] = $softBounces; - return $this; - } - /** - * Gets clicks - * - * @return int - */ - public function getClicks() - { - return $this->container['clicks']; - } - /** - * Sets clicks - * - * @param int $clicks Number of clicks for the timeframe - * - * @return $this - */ - public function setClicks($clicks) - { - $this->container['clicks'] = $clicks; - return $this; - } - /** - * Gets uniqueClicks - * - * @return int - */ - public function getUniqueClicks() - { - return $this->container['uniqueClicks']; - } - /** - * Sets uniqueClicks - * - * @param int $uniqueClicks Number of unique clicks for the timeframe - * - * @return $this - */ - public function setUniqueClicks($uniqueClicks) - { - $this->container['uniqueClicks'] = $uniqueClicks; - return $this; - } - /** - * Gets opens - * - * @return int - */ - public function getOpens() - { - return $this->container['opens']; - } - /** - * Sets opens - * - * @param int $opens Number of openings for the timeframe - * - * @return $this - */ - public function setOpens($opens) - { - $this->container['opens'] = $opens; - return $this; - } - /** - * Gets uniqueOpens - * - * @return int - */ - public function getUniqueOpens() - { - return $this->container['uniqueOpens']; - } - /** - * Sets uniqueOpens - * - * @param int $uniqueOpens Number of unique openings for the timeframe - * - * @return $this - */ - public function setUniqueOpens($uniqueOpens) - { - $this->container['uniqueOpens'] = $uniqueOpens; - return $this; - } - /** - * Gets spamReports - * - * @return int - */ - public function getSpamReports() - { - return $this->container['spamReports']; - } - /** - * Sets spamReports - * - * @param int $spamReports Number of complaint (spam report) for the timeframe - * - * @return $this - */ - public function setSpamReports($spamReports) - { - $this->container['spamReports'] = $spamReports; - return $this; - } - /** - * Gets blocked - * - * @return int - */ - public function getBlocked() - { - return $this->container['blocked']; - } - /** - * Sets blocked - * - * @param int $blocked Number of blocked contact emails for the timeframe - * - * @return $this - */ - public function setBlocked($blocked) - { - $this->container['blocked'] = $blocked; - return $this; - } - /** - * Gets invalid - * - * @return int - */ - public function getInvalid() - { - return $this->container['invalid']; - } - /** - * Sets invalid - * - * @param int $invalid Number of invalid emails for the timeframe - * - * @return $this - */ - public function setInvalid($invalid) - { - $this->container['invalid'] = $invalid; - return $this; - } - /** - * Gets unsubscribed - * - * @return int - */ - public function getUnsubscribed() - { - return $this->container['unsubscribed']; - } - /** - * Sets unsubscribed - * - * @param int $unsubscribed Number of unsubscribed emails for the timeframe - * - * @return $this - */ - public function setUnsubscribed($unsubscribed) - { - $this->container['unsubscribed'] = $unsubscribed; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributes.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributes.php deleted file mode 100644 index 4327cdb..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributes.php +++ /dev/null @@ -1,257 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAttributesAttributes[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['attributes' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['attributes' => 'attributes']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['attributes' => 'setAttributes']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['attributes' => 'getAttributes']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['attributes'] = isset($data['attributes']) ? $data['attributes'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['attributes'] === null) { - $invalidProperties[] = "'attributes' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets attributes - * - * @return \SendinBlue\Client\Model\GetAttributesAttributes[] - */ - public function getAttributes() - { - return $this->container['attributes']; - } - /** - * Sets attributes - * - * @param \SendinBlue\Client\Model\GetAttributesAttributes[] $attributes Listing of available contact attributes in your account - * - * @return $this - */ - public function setAttributes($attributes) - { - $this->container['attributes'] = $attributes; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributesAttributes.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributesAttributes.php deleted file mode 100644 index f47e8ab..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributesAttributes.php +++ /dev/null @@ -1,392 +0,0 @@ - 'string', 'category' => 'string', 'type' => 'string', 'enumeration' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetAttributesEnumeration[]', 'calculatedValue' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'category' => null, 'type' => null, 'enumeration' => null, 'calculatedValue' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'category' => 'category', 'type' => 'type', 'enumeration' => 'enumeration', 'calculatedValue' => 'calculatedValue']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'category' => 'setCategory', 'type' => 'setType', 'enumeration' => 'setEnumeration', 'calculatedValue' => 'setCalculatedValue']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'category' => 'getCategory', 'type' => 'getType', 'enumeration' => 'getEnumeration', 'calculatedValue' => 'getCalculatedValue']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const CATEGORY_NORMAL = 'normal'; - const CATEGORY_TRANSACTIONAL = 'transactional'; - const CATEGORY_CATEGORY = 'category'; - const CATEGORY_CALCULATED = 'calculated'; - const CATEGORY__GLOBAL = 'global'; - const TYPE_TEXT = 'text'; - const TYPE_DATE = 'date'; - const TYPE_FLOAT = 'float'; - const TYPE_ID = 'id'; - const TYPE_BOOLEAN = 'boolean'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getCategoryAllowableValues() - { - return [self::CATEGORY_NORMAL, self::CATEGORY_TRANSACTIONAL, self::CATEGORY_CATEGORY, self::CATEGORY_CALCULATED, self::CATEGORY__GLOBAL]; - } - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getTypeAllowableValues() - { - return [self::TYPE_TEXT, self::TYPE_DATE, self::TYPE_FLOAT, self::TYPE_ID, self::TYPE_BOOLEAN]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['category'] = isset($data['category']) ? $data['category'] : null; - $this->container['type'] = isset($data['type']) ? $data['type'] : null; - $this->container['enumeration'] = isset($data['enumeration']) ? $data['enumeration'] : null; - $this->container['calculatedValue'] = isset($data['calculatedValue']) ? $data['calculatedValue'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['category'] === null) { - $invalidProperties[] = "'category' can't be null"; - } - $allowedValues = $this->getCategoryAllowableValues(); - if (!\is_null($this->container['category']) && !\in_array($this->container['category'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'category', must be one of '%s'", \implode("', '", $allowedValues)); - } - $allowedValues = $this->getTypeAllowableValues(); - if (!\is_null($this->container['type']) && !\in_array($this->container['type'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues)); - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the attribute - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets category - * - * @return string - */ - public function getCategory() - { - return $this->container['category']; - } - /** - * Sets category - * - * @param string $category Category of the attribute - * - * @return $this - */ - public function setCategory($category) - { - $allowedValues = $this->getCategoryAllowableValues(); - if (!\in_array($category, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'category', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['category'] = $category; - return $this; - } - /** - * Gets type - * - * @return string - */ - public function getType() - { - return $this->container['type']; - } - /** - * Sets type - * - * @param string $type Type of the attribute - * - * @return $this - */ - public function setType($type) - { - $allowedValues = $this->getTypeAllowableValues(); - if (!\is_null($type) && !\in_array($type, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['type'] = $type; - return $this; - } - /** - * Gets enumeration - * - * @return \SendinBlue\Client\Model\GetAttributesEnumeration[] - */ - public function getEnumeration() - { - return $this->container['enumeration']; - } - /** - * Sets enumeration - * - * @param \SendinBlue\Client\Model\GetAttributesEnumeration[] $enumeration Parameter only available for \"category\" type attributes. - * - * @return $this - */ - public function setEnumeration($enumeration) - { - $this->container['enumeration'] = $enumeration; - return $this; - } - /** - * Gets calculatedValue - * - * @return string - */ - public function getCalculatedValue() - { - return $this->container['calculatedValue']; - } - /** - * Sets calculatedValue - * - * @param string $calculatedValue Calculated value formula - * - * @return $this - */ - public function setCalculatedValue($calculatedValue) - { - $this->container['calculatedValue'] = $calculatedValue; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributesEnumeration.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributesEnumeration.php deleted file mode 100644 index 7d64d1d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetAttributesEnumeration.php +++ /dev/null @@ -1,282 +0,0 @@ - 'int', 'label' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['value' => 'int64', 'label' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['value' => 'value', 'label' => 'label']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['value' => 'setValue', 'label' => 'setLabel']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['value' => 'getValue', 'label' => 'getLabel']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['value'] = isset($data['value']) ? $data['value'] : null; - $this->container['label'] = isset($data['label']) ? $data['label'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['value'] === null) { - $invalidProperties[] = "'value' can't be null"; - } - if ($this->container['label'] === null) { - $invalidProperties[] = "'label' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets value - * - * @return int - */ - public function getValue() - { - return $this->container['value']; - } - /** - * Sets value - * - * @param int $value ID of Value of the \"category\" type attribute - * - * @return $this - */ - public function setValue($value) - { - $this->container['value'] = $value; - return $this; - } - /** - * Gets label - * - * @return string - */ - public function getLabel() - { - return $this->container['label']; - } - /** - * Sets label - * - * @param string $label Label of the \"category\" type attribute - * - * @return $this - */ - public function setLabel($label) - { - $this->container['label'] = $label; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignOverview.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignOverview.php deleted file mode 100644 index 9a15771..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignOverview.php +++ /dev/null @@ -1,572 +0,0 @@ - 'int', 'name' => 'string', 'subject' => 'string', 'type' => 'string', 'status' => 'string', 'scheduledAt' => '\\DateTime', 'abTesting' => 'bool', 'subjectA' => 'string', 'subjectB' => 'string', 'splitRule' => 'int', 'winnerCriteria' => 'string', 'winnerDelay' => 'int', 'sendAtBestTime' => 'bool']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64', 'name' => null, 'subject' => null, 'type' => null, 'status' => null, 'scheduledAt' => 'date-time', 'abTesting' => null, 'subjectA' => null, 'subjectB' => null, 'splitRule' => null, 'winnerCriteria' => null, 'winnerDelay' => null, 'sendAtBestTime' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id', 'name' => 'name', 'subject' => 'subject', 'type' => 'type', 'status' => 'status', 'scheduledAt' => 'scheduledAt', 'abTesting' => 'abTesting', 'subjectA' => 'subjectA', 'subjectB' => 'subjectB', 'splitRule' => 'splitRule', 'winnerCriteria' => 'winnerCriteria', 'winnerDelay' => 'winnerDelay', 'sendAtBestTime' => 'sendAtBestTime']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId', 'name' => 'setName', 'subject' => 'setSubject', 'type' => 'setType', 'status' => 'setStatus', 'scheduledAt' => 'setScheduledAt', 'abTesting' => 'setAbTesting', 'subjectA' => 'setSubjectA', 'subjectB' => 'setSubjectB', 'splitRule' => 'setSplitRule', 'winnerCriteria' => 'setWinnerCriteria', 'winnerDelay' => 'setWinnerDelay', 'sendAtBestTime' => 'setSendAtBestTime']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId', 'name' => 'getName', 'subject' => 'getSubject', 'type' => 'getType', 'status' => 'getStatus', 'scheduledAt' => 'getScheduledAt', 'abTesting' => 'getAbTesting', 'subjectA' => 'getSubjectA', 'subjectB' => 'getSubjectB', 'splitRule' => 'getSplitRule', 'winnerCriteria' => 'getWinnerCriteria', 'winnerDelay' => 'getWinnerDelay', 'sendAtBestTime' => 'getSendAtBestTime']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const TYPE_CLASSIC = 'classic'; - const TYPE_TRIGGER = 'trigger'; - const STATUS_DRAFT = 'draft'; - const STATUS_SENT = 'sent'; - const STATUS_ARCHIVE = 'archive'; - const STATUS_QUEUED = 'queued'; - const STATUS_SUSPENDED = 'suspended'; - const STATUS_IN_PROCESS = 'in_process'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getTypeAllowableValues() - { - return [self::TYPE_CLASSIC, self::TYPE_TRIGGER]; - } - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getStatusAllowableValues() - { - return [self::STATUS_DRAFT, self::STATUS_SENT, self::STATUS_ARCHIVE, self::STATUS_QUEUED, self::STATUS_SUSPENDED, self::STATUS_IN_PROCESS]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['subject'] = isset($data['subject']) ? $data['subject'] : null; - $this->container['type'] = isset($data['type']) ? $data['type'] : null; - $this->container['status'] = isset($data['status']) ? $data['status'] : null; - $this->container['scheduledAt'] = isset($data['scheduledAt']) ? $data['scheduledAt'] : null; - $this->container['abTesting'] = isset($data['abTesting']) ? $data['abTesting'] : null; - $this->container['subjectA'] = isset($data['subjectA']) ? $data['subjectA'] : null; - $this->container['subjectB'] = isset($data['subjectB']) ? $data['subjectB'] : null; - $this->container['splitRule'] = isset($data['splitRule']) ? $data['splitRule'] : null; - $this->container['winnerCriteria'] = isset($data['winnerCriteria']) ? $data['winnerCriteria'] : null; - $this->container['winnerDelay'] = isset($data['winnerDelay']) ? $data['winnerDelay'] : null; - $this->container['sendAtBestTime'] = isset($data['sendAtBestTime']) ? $data['sendAtBestTime'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['type'] === null) { - $invalidProperties[] = "'type' can't be null"; - } - $allowedValues = $this->getTypeAllowableValues(); - if (!\is_null($this->container['type']) && !\in_array($this->container['type'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues)); - } - if ($this->container['status'] === null) { - $invalidProperties[] = "'status' can't be null"; - } - $allowedValues = $this->getStatusAllowableValues(); - if (!\is_null($this->container['status']) && !\in_array($this->container['status'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'status', must be one of '%s'", \implode("', '", $allowedValues)); - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the campaign - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the campaign - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets subject - * - * @return string - */ - public function getSubject() - { - return $this->container['subject']; - } - /** - * Sets subject - * - * @param string $subject Subject of the campaign. Only available if `abTesting` flag of the campaign is `false` - * - * @return $this - */ - public function setSubject($subject) - { - $this->container['subject'] = $subject; - return $this; - } - /** - * Gets type - * - * @return string - */ - public function getType() - { - return $this->container['type']; - } - /** - * Sets type - * - * @param string $type Type of campaign - * - * @return $this - */ - public function setType($type) - { - $allowedValues = $this->getTypeAllowableValues(); - if (!\in_array($type, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['type'] = $type; - return $this; - } - /** - * Gets status - * - * @return string - */ - public function getStatus() - { - return $this->container['status']; - } - /** - * Sets status - * - * @param string $status Status of the campaign - * - * @return $this - */ - public function setStatus($status) - { - $allowedValues = $this->getStatusAllowableValues(); - if (!\in_array($status, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'status', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['status'] = $status; - return $this; - } - /** - * Gets scheduledAt - * - * @return \DateTime - */ - public function getScheduledAt() - { - return $this->container['scheduledAt']; - } - /** - * Sets scheduledAt - * - * @param \DateTime $scheduledAt UTC date-time on which campaign is scheduled (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setScheduledAt($scheduledAt) - { - $this->container['scheduledAt'] = $scheduledAt; - return $this; - } - /** - * Gets abTesting - * - * @return bool - */ - public function getAbTesting() - { - return $this->container['abTesting']; - } - /** - * Sets abTesting - * - * @param bool $abTesting Status of A/B Test for the campaign. abTesting = false means it is disabled, & abTesting = true means it is enabled. - * - * @return $this - */ - public function setAbTesting($abTesting) - { - $this->container['abTesting'] = $abTesting; - return $this; - } - /** - * Gets subjectA - * - * @return string - */ - public function getSubjectA() - { - return $this->container['subjectA']; - } - /** - * Sets subjectA - * - * @param string $subjectA Subject A of the ab-test campaign. Only available if `abTesting` flag of the campaign is `true` - * - * @return $this - */ - public function setSubjectA($subjectA) - { - $this->container['subjectA'] = $subjectA; - return $this; - } - /** - * Gets subjectB - * - * @return string - */ - public function getSubjectB() - { - return $this->container['subjectB']; - } - /** - * Sets subjectB - * - * @param string $subjectB Subject B of the ab-test campaign. Only available if `abTesting` flag of the campaign is `true` - * - * @return $this - */ - public function setSubjectB($subjectB) - { - $this->container['subjectB'] = $subjectB; - return $this; - } - /** - * Gets splitRule - * - * @return int - */ - public function getSplitRule() - { - return $this->container['splitRule']; - } - /** - * Sets splitRule - * - * @param int $splitRule The size of your ab-test groups. Only available if `abTesting` flag of the campaign is `true` - * - * @return $this - */ - public function setSplitRule($splitRule) - { - $this->container['splitRule'] = $splitRule; - return $this; - } - /** - * Gets winnerCriteria - * - * @return string - */ - public function getWinnerCriteria() - { - return $this->container['winnerCriteria']; - } - /** - * Sets winnerCriteria - * - * @param string $winnerCriteria Criteria for the winning version. Only available if `abTesting` flag of the campaign is `true` - * - * @return $this - */ - public function setWinnerCriteria($winnerCriteria) - { - $this->container['winnerCriteria'] = $winnerCriteria; - return $this; - } - /** - * Gets winnerDelay - * - * @return int - */ - public function getWinnerDelay() - { - return $this->container['winnerDelay']; - } - /** - * Sets winnerDelay - * - * @param int $winnerDelay The duration of the test in hours at the end of which the winning version will be sent. Only available if `abTesting` flag of the campaign is `true` - * - * @return $this - */ - public function setWinnerDelay($winnerDelay) - { - $this->container['winnerDelay'] = $winnerDelay; - return $this; - } - /** - * Gets sendAtBestTime - * - * @return bool - */ - public function getSendAtBestTime() - { - return $this->container['sendAtBestTime']; - } - /** - * Sets sendAtBestTime - * - * @param bool $sendAtBestTime It is true if you have chosen to send your campaign at best time, otherwise it is false - * - * @return $this - */ - public function setSendAtBestTime($sendAtBestTime) - { - $this->container['sendAtBestTime'] = $sendAtBestTime; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignRecipients.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignRecipients.php deleted file mode 100644 index f3a12f2..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignRecipients.php +++ /dev/null @@ -1,282 +0,0 @@ - 'int[]', 'exclusionLists' => 'int[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['lists' => 'int64', 'exclusionLists' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['lists' => 'lists', 'exclusionLists' => 'exclusionLists']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['lists' => 'setLists', 'exclusionLists' => 'setExclusionLists']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['lists' => 'getLists', 'exclusionLists' => 'getExclusionLists']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['lists'] = isset($data['lists']) ? $data['lists'] : null; - $this->container['exclusionLists'] = isset($data['exclusionLists']) ? $data['exclusionLists'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['lists'] === null) { - $invalidProperties[] = "'lists' can't be null"; - } - if ($this->container['exclusionLists'] === null) { - $invalidProperties[] = "'exclusionLists' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets lists - * - * @return int[] - */ - public function getLists() - { - return $this->container['lists']; - } - /** - * Sets lists - * - * @param int[] $lists lists - * - * @return $this - */ - public function setLists($lists) - { - $this->container['lists'] = $lists; - return $this; - } - /** - * Gets exclusionLists - * - * @return int[] - */ - public function getExclusionLists() - { - return $this->container['exclusionLists']; - } - /** - * Sets exclusionLists - * - * @param int[] $exclusionLists exclusionLists - * - * @return $this - */ - public function setExclusionLists($exclusionLists) - { - $this->container['exclusionLists'] = $exclusionLists; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignStats.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignStats.php deleted file mode 100644 index 5708d26..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetCampaignStats.php +++ /dev/null @@ -1,526 +0,0 @@ - 'int', 'uniqueClicks' => 'int', 'clickers' => 'int', 'complaints' => 'int', 'delivered' => 'int', 'sent' => 'int', 'softBounces' => 'int', 'hardBounces' => 'int', 'uniqueViews' => 'int', 'unsubscriptions' => 'int', 'viewed' => 'int', 'deferred' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['listId' => 'int64', 'uniqueClicks' => 'int64', 'clickers' => 'int64', 'complaints' => 'int64', 'delivered' => 'int64', 'sent' => 'int64', 'softBounces' => 'int64', 'hardBounces' => 'int64', 'uniqueViews' => 'int64', 'unsubscriptions' => 'int64', 'viewed' => 'int64', 'deferred' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['listId' => 'listId', 'uniqueClicks' => 'uniqueClicks', 'clickers' => 'clickers', 'complaints' => 'complaints', 'delivered' => 'delivered', 'sent' => 'sent', 'softBounces' => 'softBounces', 'hardBounces' => 'hardBounces', 'uniqueViews' => 'uniqueViews', 'unsubscriptions' => 'unsubscriptions', 'viewed' => 'viewed', 'deferred' => 'deferred']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['listId' => 'setListId', 'uniqueClicks' => 'setUniqueClicks', 'clickers' => 'setClickers', 'complaints' => 'setComplaints', 'delivered' => 'setDelivered', 'sent' => 'setSent', 'softBounces' => 'setSoftBounces', 'hardBounces' => 'setHardBounces', 'uniqueViews' => 'setUniqueViews', 'unsubscriptions' => 'setUnsubscriptions', 'viewed' => 'setViewed', 'deferred' => 'setDeferred']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['listId' => 'getListId', 'uniqueClicks' => 'getUniqueClicks', 'clickers' => 'getClickers', 'complaints' => 'getComplaints', 'delivered' => 'getDelivered', 'sent' => 'getSent', 'softBounces' => 'getSoftBounces', 'hardBounces' => 'getHardBounces', 'uniqueViews' => 'getUniqueViews', 'unsubscriptions' => 'getUnsubscriptions', 'viewed' => 'getViewed', 'deferred' => 'getDeferred']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['listId'] = isset($data['listId']) ? $data['listId'] : null; - $this->container['uniqueClicks'] = isset($data['uniqueClicks']) ? $data['uniqueClicks'] : null; - $this->container['clickers'] = isset($data['clickers']) ? $data['clickers'] : null; - $this->container['complaints'] = isset($data['complaints']) ? $data['complaints'] : null; - $this->container['delivered'] = isset($data['delivered']) ? $data['delivered'] : null; - $this->container['sent'] = isset($data['sent']) ? $data['sent'] : null; - $this->container['softBounces'] = isset($data['softBounces']) ? $data['softBounces'] : null; - $this->container['hardBounces'] = isset($data['hardBounces']) ? $data['hardBounces'] : null; - $this->container['uniqueViews'] = isset($data['uniqueViews']) ? $data['uniqueViews'] : null; - $this->container['unsubscriptions'] = isset($data['unsubscriptions']) ? $data['unsubscriptions'] : null; - $this->container['viewed'] = isset($data['viewed']) ? $data['viewed'] : null; - $this->container['deferred'] = isset($data['deferred']) ? $data['deferred'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['uniqueClicks'] === null) { - $invalidProperties[] = "'uniqueClicks' can't be null"; - } - if ($this->container['clickers'] === null) { - $invalidProperties[] = "'clickers' can't be null"; - } - if ($this->container['complaints'] === null) { - $invalidProperties[] = "'complaints' can't be null"; - } - if ($this->container['delivered'] === null) { - $invalidProperties[] = "'delivered' can't be null"; - } - if ($this->container['sent'] === null) { - $invalidProperties[] = "'sent' can't be null"; - } - if ($this->container['softBounces'] === null) { - $invalidProperties[] = "'softBounces' can't be null"; - } - if ($this->container['hardBounces'] === null) { - $invalidProperties[] = "'hardBounces' can't be null"; - } - if ($this->container['uniqueViews'] === null) { - $invalidProperties[] = "'uniqueViews' can't be null"; - } - if ($this->container['unsubscriptions'] === null) { - $invalidProperties[] = "'unsubscriptions' can't be null"; - } - if ($this->container['viewed'] === null) { - $invalidProperties[] = "'viewed' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets listId - * - * @return int - */ - public function getListId() - { - return $this->container['listId']; - } - /** - * Sets listId - * - * @param int $listId List Id of email campaign (only in case of get email campaign(s)(not for global stats)) - * - * @return $this - */ - public function setListId($listId) - { - $this->container['listId'] = $listId; - return $this; - } - /** - * Gets uniqueClicks - * - * @return int - */ - public function getUniqueClicks() - { - return $this->container['uniqueClicks']; - } - /** - * Sets uniqueClicks - * - * @param int $uniqueClicks Number of unique clicks for the campaign - * - * @return $this - */ - public function setUniqueClicks($uniqueClicks) - { - $this->container['uniqueClicks'] = $uniqueClicks; - return $this; - } - /** - * Gets clickers - * - * @return int - */ - public function getClickers() - { - return $this->container['clickers']; - } - /** - * Sets clickers - * - * @param int $clickers Number of total clicks for the campaign - * - * @return $this - */ - public function setClickers($clickers) - { - $this->container['clickers'] = $clickers; - return $this; - } - /** - * Gets complaints - * - * @return int - */ - public function getComplaints() - { - return $this->container['complaints']; - } - /** - * Sets complaints - * - * @param int $complaints Number of complaints (Spam reports) for the campaign - * - * @return $this - */ - public function setComplaints($complaints) - { - $this->container['complaints'] = $complaints; - return $this; - } - /** - * Gets delivered - * - * @return int - */ - public function getDelivered() - { - return $this->container['delivered']; - } - /** - * Sets delivered - * - * @param int $delivered Number of delivered emails for the campaign - * - * @return $this - */ - public function setDelivered($delivered) - { - $this->container['delivered'] = $delivered; - return $this; - } - /** - * Gets sent - * - * @return int - */ - public function getSent() - { - return $this->container['sent']; - } - /** - * Sets sent - * - * @param int $sent Number of sent emails for the campaign - * - * @return $this - */ - public function setSent($sent) - { - $this->container['sent'] = $sent; - return $this; - } - /** - * Gets softBounces - * - * @return int - */ - public function getSoftBounces() - { - return $this->container['softBounces']; - } - /** - * Sets softBounces - * - * @param int $softBounces Number of softbounce for the campaign - * - * @return $this - */ - public function setSoftBounces($softBounces) - { - $this->container['softBounces'] = $softBounces; - return $this; - } - /** - * Gets hardBounces - * - * @return int - */ - public function getHardBounces() - { - return $this->container['hardBounces']; - } - /** - * Sets hardBounces - * - * @param int $hardBounces Number of harbounce for the campaign - * - * @return $this - */ - public function setHardBounces($hardBounces) - { - $this->container['hardBounces'] = $hardBounces; - return $this; - } - /** - * Gets uniqueViews - * - * @return int - */ - public function getUniqueViews() - { - return $this->container['uniqueViews']; - } - /** - * Sets uniqueViews - * - * @param int $uniqueViews Number of unique openings for the campaign - * - * @return $this - */ - public function setUniqueViews($uniqueViews) - { - $this->container['uniqueViews'] = $uniqueViews; - return $this; - } - /** - * Gets unsubscriptions - * - * @return int - */ - public function getUnsubscriptions() - { - return $this->container['unsubscriptions']; - } - /** - * Sets unsubscriptions - * - * @param int $unsubscriptions Number of unsubscription for the campaign - * - * @return $this - */ - public function setUnsubscriptions($unsubscriptions) - { - $this->container['unsubscriptions'] = $unsubscriptions; - return $this; - } - /** - * Gets viewed - * - * @return int - */ - public function getViewed() - { - return $this->container['viewed']; - } - /** - * Sets viewed - * - * @param int $viewed Number of openings for the campaign - * - * @return $this - */ - public function setViewed($viewed) - { - $this->container['viewed'] = $viewed; - return $this; - } - /** - * Gets deferred - * - * @return int - */ - public function getDeferred() - { - return $this->container['deferred']; - } - /** - * Sets deferred - * - * @param int $deferred Number of deferred emails for the campaign - * - * @return $this - */ - public function setDeferred($deferred) - { - $this->container['deferred'] = $deferred; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildAccountCreationStatus.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildAccountCreationStatus.php deleted file mode 100644 index 46e7965..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildAccountCreationStatus.php +++ /dev/null @@ -1,257 +0,0 @@ - 'bool']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['childAccountCreated' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['childAccountCreated' => 'childAccountCreated']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['childAccountCreated' => 'setChildAccountCreated']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['childAccountCreated' => 'getChildAccountCreated']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['childAccountCreated'] = isset($data['childAccountCreated']) ? $data['childAccountCreated'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['childAccountCreated'] === null) { - $invalidProperties[] = "'childAccountCreated' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets childAccountCreated - * - * @return bool - */ - public function getChildAccountCreated() - { - return $this->container['childAccountCreated']; - } - /** - * Sets childAccountCreated - * - * @param bool $childAccountCreated Status of child account creation whether it is successfully created (exists) or not. - * - * @return $this - */ - public function setChildAccountCreated($childAccountCreated) - { - $this->container['childAccountCreated'] = $childAccountCreated; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildDomain.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildDomain.php deleted file mode 100644 index bc8dbbd..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildDomain.php +++ /dev/null @@ -1,282 +0,0 @@ - 'string', 'active' => 'bool']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['domain' => null, 'active' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['domain' => 'domain', 'active' => 'active']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['domain' => 'setDomain', 'active' => 'setActive']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['domain' => 'getDomain', 'active' => 'getActive']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['domain'] = isset($data['domain']) ? $data['domain'] : null; - $this->container['active'] = isset($data['active']) ? $data['active'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['domain'] === null) { - $invalidProperties[] = "'domain' can't be null"; - } - if ($this->container['active'] === null) { - $invalidProperties[] = "'active' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets domain - * - * @return string - */ - public function getDomain() - { - return $this->container['domain']; - } - /** - * Sets domain - * - * @param string $domain Sender domain - * - * @return $this - */ - public function setDomain($domain) - { - $this->container['domain'] = $domain; - return $this; - } - /** - * Gets active - * - * @return bool - */ - public function getActive() - { - return $this->container['active']; - } - /** - * Sets active - * - * @param bool $active indicates whether a domain is verified or not - * - * @return $this - */ - public function setActive($active) - { - $this->container['active'] = $active; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildDomains.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildDomains.php deleted file mode 100644 index 17ba4c4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildDomains.php +++ /dev/null @@ -1,232 +0,0 @@ -listInvalidProperties()) === 0; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfo.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfo.php deleted file mode 100644 index 479d7e2..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfo.php +++ /dev/null @@ -1,445 +0,0 @@ - 'string', 'firstName' => 'string', 'lastName' => 'string', 'companyName' => 'string', 'credits' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfoCredits', 'statistics' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfoStatistics', 'password' => 'string', 'ips' => 'string[]', 'apiKeys' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfoApiKeys']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'firstName' => null, 'lastName' => null, 'companyName' => null, 'credits' => null, 'statistics' => null, 'password' => 'password', 'ips' => null, 'apiKeys' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'firstName' => 'firstName', 'lastName' => 'lastName', 'companyName' => 'companyName', 'credits' => 'credits', 'statistics' => 'statistics', 'password' => 'password', 'ips' => 'ips', 'apiKeys' => 'apiKeys']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'firstName' => 'setFirstName', 'lastName' => 'setLastName', 'companyName' => 'setCompanyName', 'credits' => 'setCredits', 'statistics' => 'setStatistics', 'password' => 'setPassword', 'ips' => 'setIps', 'apiKeys' => 'setApiKeys']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'firstName' => 'getFirstName', 'lastName' => 'getLastName', 'companyName' => 'getCompanyName', 'credits' => 'getCredits', 'statistics' => 'getStatistics', 'password' => 'getPassword', 'ips' => 'getIps', 'apiKeys' => 'getApiKeys']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['firstName'] = isset($data['firstName']) ? $data['firstName'] : null; - $this->container['lastName'] = isset($data['lastName']) ? $data['lastName'] : null; - $this->container['companyName'] = isset($data['companyName']) ? $data['companyName'] : null; - $this->container['credits'] = isset($data['credits']) ? $data['credits'] : null; - $this->container['statistics'] = isset($data['statistics']) ? $data['statistics'] : null; - $this->container['password'] = isset($data['password']) ? $data['password'] : null; - $this->container['ips'] = isset($data['ips']) ? $data['ips'] : null; - $this->container['apiKeys'] = isset($data['apiKeys']) ? $data['apiKeys'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - if ($this->container['firstName'] === null) { - $invalidProperties[] = "'firstName' can't be null"; - } - if ($this->container['lastName'] === null) { - $invalidProperties[] = "'lastName' can't be null"; - } - if ($this->container['companyName'] === null) { - $invalidProperties[] = "'companyName' can't be null"; - } - if ($this->container['password'] === null) { - $invalidProperties[] = "'password' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Login Email - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets firstName - * - * @return string - */ - public function getFirstName() - { - return $this->container['firstName']; - } - /** - * Sets firstName - * - * @param string $firstName First Name - * - * @return $this - */ - public function setFirstName($firstName) - { - $this->container['firstName'] = $firstName; - return $this; - } - /** - * Gets lastName - * - * @return string - */ - public function getLastName() - { - return $this->container['lastName']; - } - /** - * Sets lastName - * - * @param string $lastName Last Name - * - * @return $this - */ - public function setLastName($lastName) - { - $this->container['lastName'] = $lastName; - return $this; - } - /** - * Gets companyName - * - * @return string - */ - public function getCompanyName() - { - return $this->container['companyName']; - } - /** - * Sets companyName - * - * @param string $companyName Name of the company - * - * @return $this - */ - public function setCompanyName($companyName) - { - $this->container['companyName'] = $companyName; - return $this; - } - /** - * Gets credits - * - * @return \SendinBlue\Client\Model\GetChildInfoCredits - */ - public function getCredits() - { - return $this->container['credits']; - } - /** - * Sets credits - * - * @param \SendinBlue\Client\Model\GetChildInfoCredits $credits credits - * - * @return $this - */ - public function setCredits($credits) - { - $this->container['credits'] = $credits; - return $this; - } - /** - * Gets statistics - * - * @return \SendinBlue\Client\Model\GetChildInfoStatistics - */ - public function getStatistics() - { - return $this->container['statistics']; - } - /** - * Sets statistics - * - * @param \SendinBlue\Client\Model\GetChildInfoStatistics $statistics statistics - * - * @return $this - */ - public function setStatistics($statistics) - { - $this->container['statistics'] = $statistics; - return $this; - } - /** - * Gets password - * - * @return string - */ - public function getPassword() - { - return $this->container['password']; - } - /** - * Sets password - * - * @param string $password The encrypted password of child account - * - * @return $this - */ - public function setPassword($password) - { - $this->container['password'] = $password; - return $this; - } - /** - * Gets ips - * - * @return string[] - */ - public function getIps() - { - return $this->container['ips']; - } - /** - * Sets ips - * - * @param string[] $ips IP(s) associated to a child account user - * - * @return $this - */ - public function setIps($ips) - { - $this->container['ips'] = $ips; - return $this; - } - /** - * Gets apiKeys - * - * @return \SendinBlue\Client\Model\GetChildInfoApiKeys - */ - public function getApiKeys() - { - return $this->container['apiKeys']; - } - /** - * Sets apiKeys - * - * @param \SendinBlue\Client\Model\GetChildInfoApiKeys $apiKeys apiKeys - * - * @return $this - */ - public function setApiKeys($apiKeys) - { - $this->container['apiKeys'] = $apiKeys; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeys.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeys.php deleted file mode 100644 index 473009f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeys.php +++ /dev/null @@ -1,280 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfoApiKeysV2[]', 'v3' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetChildInfoApiKeysV3[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['v2' => null, 'v3' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['v2' => 'v2', 'v3' => 'v3']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['v2' => 'setV2', 'v3' => 'setV3']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['v2' => 'getV2', 'v3' => 'getV3']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['v2'] = isset($data['v2']) ? $data['v2'] : null; - $this->container['v3'] = isset($data['v3']) ? $data['v3'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['v2'] === null) { - $invalidProperties[] = "'v2' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets v2 - * - * @return \SendinBlue\Client\Model\GetChildInfoApiKeysV2[] - */ - public function getV2() - { - return $this->container['v2']; - } - /** - * Sets v2 - * - * @param \SendinBlue\Client\Model\GetChildInfoApiKeysV2[] $v2 v2 - * - * @return $this - */ - public function setV2($v2) - { - $this->container['v2'] = $v2; - return $this; - } - /** - * Gets v3 - * - * @return \SendinBlue\Client\Model\GetChildInfoApiKeysV3[] - */ - public function getV3() - { - return $this->container['v3']; - } - /** - * Sets v3 - * - * @param \SendinBlue\Client\Model\GetChildInfoApiKeysV3[] $v3 v3 - * - * @return $this - */ - public function setV3($v3) - { - $this->container['v3'] = $v3; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV2.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV2.php deleted file mode 100644 index 916f7b3..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV2.php +++ /dev/null @@ -1,282 +0,0 @@ - 'string', 'key' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'key' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'key' => 'key']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'key' => 'setKey']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'key' => 'getKey']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['key'] = isset($data['key']) ? $data['key'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['key'] === null) { - $invalidProperties[] = "'key' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the key for version 2 - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets key - * - * @return string - */ - public function getKey() - { - return $this->container['key']; - } - /** - * Sets key - * - * @param string $key API Key for version 2 - * - * @return $this - */ - public function setKey($key) - { - $this->container['key'] = $key; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV3.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV3.php deleted file mode 100644 index b529236..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV3.php +++ /dev/null @@ -1,282 +0,0 @@ - 'string', 'key' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'key' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'key' => 'key']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'key' => 'setKey']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'key' => 'getKey']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['key'] = isset($data['key']) ? $data['key'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['key'] === null) { - $invalidProperties[] = "'key' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the key for version 3 - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets key - * - * @return string - */ - public function getKey() - { - return $this->container['key']; - } - /** - * Sets key - * - * @param string $key API Key for version 3 - * - * @return $this - */ - public function setKey($key) - { - $this->container['key'] = $key; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoCredits.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoCredits.php deleted file mode 100644 index 6cf3c61..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoCredits.php +++ /dev/null @@ -1,277 +0,0 @@ - 'int', 'smsCredits' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['emailCredits' => 'int64', 'smsCredits' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['emailCredits' => 'emailCredits', 'smsCredits' => 'smsCredits']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['emailCredits' => 'setEmailCredits', 'smsCredits' => 'setSmsCredits']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['emailCredits' => 'getEmailCredits', 'smsCredits' => 'getSmsCredits']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['emailCredits'] = isset($data['emailCredits']) ? $data['emailCredits'] : null; - $this->container['smsCredits'] = isset($data['smsCredits']) ? $data['smsCredits'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets emailCredits - * - * @return int - */ - public function getEmailCredits() - { - return $this->container['emailCredits']; - } - /** - * Sets emailCredits - * - * @param int $emailCredits Email credits available for your child - * - * @return $this - */ - public function setEmailCredits($emailCredits) - { - $this->container['emailCredits'] = $emailCredits; - return $this; - } - /** - * Gets smsCredits - * - * @return int - */ - public function getSmsCredits() - { - return $this->container['smsCredits']; - } - /** - * Sets smsCredits - * - * @param int $smsCredits SMS credits available for your child - * - * @return $this - */ - public function setSmsCredits($smsCredits) - { - $this->container['smsCredits'] = $smsCredits; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoStatistics.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoStatistics.php deleted file mode 100644 index ff0b847..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildInfoStatistics.php +++ /dev/null @@ -1,299 +0,0 @@ - 'int', 'currentMonthTotalSent' => 'int', 'totalSent' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['previousMonthTotalSent' => 'int64', 'currentMonthTotalSent' => 'int64', 'totalSent' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['previousMonthTotalSent' => 'previousMonthTotalSent', 'currentMonthTotalSent' => 'currentMonthTotalSent', 'totalSent' => 'totalSent']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['previousMonthTotalSent' => 'setPreviousMonthTotalSent', 'currentMonthTotalSent' => 'setCurrentMonthTotalSent', 'totalSent' => 'setTotalSent']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['previousMonthTotalSent' => 'getPreviousMonthTotalSent', 'currentMonthTotalSent' => 'getCurrentMonthTotalSent', 'totalSent' => 'getTotalSent']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['previousMonthTotalSent'] = isset($data['previousMonthTotalSent']) ? $data['previousMonthTotalSent'] : null; - $this->container['currentMonthTotalSent'] = isset($data['currentMonthTotalSent']) ? $data['currentMonthTotalSent'] : null; - $this->container['totalSent'] = isset($data['totalSent']) ? $data['totalSent'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets previousMonthTotalSent - * - * @return int - */ - public function getPreviousMonthTotalSent() - { - return $this->container['previousMonthTotalSent']; - } - /** - * Sets previousMonthTotalSent - * - * @param int $previousMonthTotalSent Overall emails sent for the previous month - * - * @return $this - */ - public function setPreviousMonthTotalSent($previousMonthTotalSent) - { - $this->container['previousMonthTotalSent'] = $previousMonthTotalSent; - return $this; - } - /** - * Gets currentMonthTotalSent - * - * @return int - */ - public function getCurrentMonthTotalSent() - { - return $this->container['currentMonthTotalSent']; - } - /** - * Sets currentMonthTotalSent - * - * @param int $currentMonthTotalSent Overall emails sent for current month - * - * @return $this - */ - public function setCurrentMonthTotalSent($currentMonthTotalSent) - { - $this->container['currentMonthTotalSent'] = $currentMonthTotalSent; - return $this; - } - /** - * Gets totalSent - * - * @return int - */ - public function getTotalSent() - { - return $this->container['totalSent']; - } - /** - * Sets totalSent - * - * @param int $totalSent Overall emails sent for since the account exists - * - * @return $this - */ - public function setTotalSent($totalSent) - { - $this->container['totalSent'] = $totalSent; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildrenList.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildrenList.php deleted file mode 100644 index 21f5c7a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetChildrenList.php +++ /dev/null @@ -1,279 +0,0 @@ - 'object[]', 'count' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['children' => null, 'count' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['children' => 'children', 'count' => 'count']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['children' => 'setChildren', 'count' => 'setCount']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['children' => 'getChildren', 'count' => 'getCount']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['children'] = isset($data['children']) ? $data['children'] : null; - $this->container['count'] = isset($data['count']) ? $data['count'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['count'] === null) { - $invalidProperties[] = "'count' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets children - * - * @return object[] - */ - public function getChildren() - { - return $this->container['children']; - } - /** - * Sets children - * - * @param object[] $children Your children's account information - * - * @return $this - */ - public function setChildren($children) - { - $this->container['children'] = $children; - return $this; - } - /** - * Gets count - * - * @return int - */ - public function getCount() - { - return $this->container['count']; - } - /** - * Sets count - * - * @param int $count Number of child accounts - * - * @return $this - */ - public function setCount($count) - { - $this->container['count'] = $count; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetClient.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetClient.php deleted file mode 100644 index c971f79..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetClient.php +++ /dev/null @@ -1,332 +0,0 @@ - 'string', 'firstName' => 'string', 'lastName' => 'string', 'companyName' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'firstName' => null, 'lastName' => null, 'companyName' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'firstName' => 'firstName', 'lastName' => 'lastName', 'companyName' => 'companyName']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'firstName' => 'setFirstName', 'lastName' => 'setLastName', 'companyName' => 'setCompanyName']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'firstName' => 'getFirstName', 'lastName' => 'getLastName', 'companyName' => 'getCompanyName']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['firstName'] = isset($data['firstName']) ? $data['firstName'] : null; - $this->container['lastName'] = isset($data['lastName']) ? $data['lastName'] : null; - $this->container['companyName'] = isset($data['companyName']) ? $data['companyName'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - if ($this->container['firstName'] === null) { - $invalidProperties[] = "'firstName' can't be null"; - } - if ($this->container['lastName'] === null) { - $invalidProperties[] = "'lastName' can't be null"; - } - if ($this->container['companyName'] === null) { - $invalidProperties[] = "'companyName' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Login Email - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets firstName - * - * @return string - */ - public function getFirstName() - { - return $this->container['firstName']; - } - /** - * Sets firstName - * - * @param string $firstName First Name - * - * @return $this - */ - public function setFirstName($firstName) - { - $this->container['firstName'] = $firstName; - return $this; - } - /** - * Gets lastName - * - * @return string - */ - public function getLastName() - { - return $this->container['lastName']; - } - /** - * Sets lastName - * - * @param string $lastName Last Name - * - * @return $this - */ - public function setLastName($lastName) - { - $this->container['lastName'] = $lastName; - return $this; - } - /** - * Gets companyName - * - * @return string - */ - public function getCompanyName() - { - return $this->container['companyName']; - } - /** - * Sets companyName - * - * @param string $companyName Name of the company - * - * @return $this - */ - public function setCompanyName($companyName) - { - $this->container['companyName'] = $companyName; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStats.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStats.php deleted file mode 100644 index c9ef97b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStats.php +++ /dev/null @@ -1,409 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsMessagesSent[]', 'hardBounces' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsMessagesSent[]', 'softBounces' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsMessagesSent[]', 'complaints' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsMessagesSent[]', 'unsubscriptions' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStatsUnsubscriptions', 'opened' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStatsOpened[]', 'clicked' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStatsClicked[]', 'transacAttributes' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetContactCampaignStatsTransacAttributes[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['messagesSent' => null, 'hardBounces' => null, 'softBounces' => null, 'complaints' => null, 'unsubscriptions' => null, 'opened' => null, 'clicked' => null, 'transacAttributes' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['messagesSent' => 'messagesSent', 'hardBounces' => 'hardBounces', 'softBounces' => 'softBounces', 'complaints' => 'complaints', 'unsubscriptions' => 'unsubscriptions', 'opened' => 'opened', 'clicked' => 'clicked', 'transacAttributes' => 'transacAttributes']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['messagesSent' => 'setMessagesSent', 'hardBounces' => 'setHardBounces', 'softBounces' => 'setSoftBounces', 'complaints' => 'setComplaints', 'unsubscriptions' => 'setUnsubscriptions', 'opened' => 'setOpened', 'clicked' => 'setClicked', 'transacAttributes' => 'setTransacAttributes']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['messagesSent' => 'getMessagesSent', 'hardBounces' => 'getHardBounces', 'softBounces' => 'getSoftBounces', 'complaints' => 'getComplaints', 'unsubscriptions' => 'getUnsubscriptions', 'opened' => 'getOpened', 'clicked' => 'getClicked', 'transacAttributes' => 'getTransacAttributes']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['messagesSent'] = isset($data['messagesSent']) ? $data['messagesSent'] : null; - $this->container['hardBounces'] = isset($data['hardBounces']) ? $data['hardBounces'] : null; - $this->container['softBounces'] = isset($data['softBounces']) ? $data['softBounces'] : null; - $this->container['complaints'] = isset($data['complaints']) ? $data['complaints'] : null; - $this->container['unsubscriptions'] = isset($data['unsubscriptions']) ? $data['unsubscriptions'] : null; - $this->container['opened'] = isset($data['opened']) ? $data['opened'] : null; - $this->container['clicked'] = isset($data['clicked']) ? $data['clicked'] : null; - $this->container['transacAttributes'] = isset($data['transacAttributes']) ? $data['transacAttributes'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets messagesSent - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] - */ - public function getMessagesSent() - { - return $this->container['messagesSent']; - } - /** - * Sets messagesSent - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] $messagesSent messagesSent - * - * @return $this - */ - public function setMessagesSent($messagesSent) - { - $this->container['messagesSent'] = $messagesSent; - return $this; - } - /** - * Gets hardBounces - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] - */ - public function getHardBounces() - { - return $this->container['hardBounces']; - } - /** - * Sets hardBounces - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] $hardBounces hardBounces - * - * @return $this - */ - public function setHardBounces($hardBounces) - { - $this->container['hardBounces'] = $hardBounces; - return $this; - } - /** - * Gets softBounces - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] - */ - public function getSoftBounces() - { - return $this->container['softBounces']; - } - /** - * Sets softBounces - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] $softBounces softBounces - * - * @return $this - */ - public function setSoftBounces($softBounces) - { - $this->container['softBounces'] = $softBounces; - return $this; - } - /** - * Gets complaints - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] - */ - public function getComplaints() - { - return $this->container['complaints']; - } - /** - * Sets complaints - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] $complaints complaints - * - * @return $this - */ - public function setComplaints($complaints) - { - $this->container['complaints'] = $complaints; - return $this; - } - /** - * Gets unsubscriptions - * - * @return \SendinBlue\Client\Model\GetContactCampaignStatsUnsubscriptions - */ - public function getUnsubscriptions() - { - return $this->container['unsubscriptions']; - } - /** - * Sets unsubscriptions - * - * @param \SendinBlue\Client\Model\GetContactCampaignStatsUnsubscriptions $unsubscriptions unsubscriptions - * - * @return $this - */ - public function setUnsubscriptions($unsubscriptions) - { - $this->container['unsubscriptions'] = $unsubscriptions; - return $this; - } - /** - * Gets opened - * - * @return \SendinBlue\Client\Model\GetContactCampaignStatsOpened[] - */ - public function getOpened() - { - return $this->container['opened']; - } - /** - * Sets opened - * - * @param \SendinBlue\Client\Model\GetContactCampaignStatsOpened[] $opened opened - * - * @return $this - */ - public function setOpened($opened) - { - $this->container['opened'] = $opened; - return $this; - } - /** - * Gets clicked - * - * @return \SendinBlue\Client\Model\GetContactCampaignStatsClicked[] - */ - public function getClicked() - { - return $this->container['clicked']; - } - /** - * Sets clicked - * - * @param \SendinBlue\Client\Model\GetContactCampaignStatsClicked[] $clicked clicked - * - * @return $this - */ - public function setClicked($clicked) - { - $this->container['clicked'] = $clicked; - return $this; - } - /** - * Gets transacAttributes - * - * @return \SendinBlue\Client\Model\GetContactCampaignStatsTransacAttributes[] - */ - public function getTransacAttributes() - { - return $this->container['transacAttributes']; - } - /** - * Sets transacAttributes - * - * @param \SendinBlue\Client\Model\GetContactCampaignStatsTransacAttributes[] $transacAttributes transacAttributes - * - * @return $this - */ - public function setTransacAttributes($transacAttributes) - { - $this->container['transacAttributes'] = $transacAttributes; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsClicked.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsClicked.php deleted file mode 100644 index 2b4b35f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsClicked.php +++ /dev/null @@ -1,282 +0,0 @@ - 'int', 'links' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsLinks[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['campaignId' => 'int64', 'links' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['campaignId' => 'campaignId', 'links' => 'links']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['campaignId' => 'setCampaignId', 'links' => 'setLinks']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['campaignId' => 'getCampaignId', 'links' => 'getLinks']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['campaignId'] = isset($data['campaignId']) ? $data['campaignId'] : null; - $this->container['links'] = isset($data['links']) ? $data['links'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['campaignId'] === null) { - $invalidProperties[] = "'campaignId' can't be null"; - } - if ($this->container['links'] === null) { - $invalidProperties[] = "'links' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets campaignId - * - * @return int - */ - public function getCampaignId() - { - return $this->container['campaignId']; - } - /** - * Sets campaignId - * - * @param int $campaignId ID of the campaign which generated the event - * - * @return $this - */ - public function setCampaignId($campaignId) - { - $this->container['campaignId'] = $campaignId; - return $this; - } - /** - * Gets links - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsLinks[] - */ - public function getLinks() - { - return $this->container['links']; - } - /** - * Sets links - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsLinks[] $links links - * - * @return $this - */ - public function setLinks($links) - { - $this->container['links'] = $links; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsOpened.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsOpened.php deleted file mode 100644 index f16e5b1..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsOpened.php +++ /dev/null @@ -1,332 +0,0 @@ - 'int', 'count' => 'int', 'eventTime' => '\\DateTime', 'ip' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['campaignId' => 'int64', 'count' => 'int64', 'eventTime' => 'date-time', 'ip' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['campaignId' => 'campaignId', 'count' => 'count', 'eventTime' => 'eventTime', 'ip' => 'ip']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['campaignId' => 'setCampaignId', 'count' => 'setCount', 'eventTime' => 'setEventTime', 'ip' => 'setIp']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['campaignId' => 'getCampaignId', 'count' => 'getCount', 'eventTime' => 'getEventTime', 'ip' => 'getIp']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['campaignId'] = isset($data['campaignId']) ? $data['campaignId'] : null; - $this->container['count'] = isset($data['count']) ? $data['count'] : null; - $this->container['eventTime'] = isset($data['eventTime']) ? $data['eventTime'] : null; - $this->container['ip'] = isset($data['ip']) ? $data['ip'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['campaignId'] === null) { - $invalidProperties[] = "'campaignId' can't be null"; - } - if ($this->container['count'] === null) { - $invalidProperties[] = "'count' can't be null"; - } - if ($this->container['eventTime'] === null) { - $invalidProperties[] = "'eventTime' can't be null"; - } - if ($this->container['ip'] === null) { - $invalidProperties[] = "'ip' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets campaignId - * - * @return int - */ - public function getCampaignId() - { - return $this->container['campaignId']; - } - /** - * Sets campaignId - * - * @param int $campaignId ID of the campaign which generated the event - * - * @return $this - */ - public function setCampaignId($campaignId) - { - $this->container['campaignId'] = $campaignId; - return $this; - } - /** - * Gets count - * - * @return int - */ - public function getCount() - { - return $this->container['count']; - } - /** - * Sets count - * - * @param int $count Number of openings of the campaign - * - * @return $this - */ - public function setCount($count) - { - $this->container['count'] = $count; - return $this; - } - /** - * Gets eventTime - * - * @return \DateTime - */ - public function getEventTime() - { - return $this->container['eventTime']; - } - /** - * Sets eventTime - * - * @param \DateTime $eventTime UTC date-time of the event - * - * @return $this - */ - public function setEventTime($eventTime) - { - $this->container['eventTime'] = $eventTime; - return $this; - } - /** - * Gets ip - * - * @return string - */ - public function getIp() - { - return $this->container['ip']; - } - /** - * Sets ip - * - * @param string $ip IP from which the user has opened the campaign - * - * @return $this - */ - public function setIp($ip) - { - $this->container['ip'] = $ip; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsTransacAttributes.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsTransacAttributes.php deleted file mode 100644 index 8c2f155..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsTransacAttributes.php +++ /dev/null @@ -1,307 +0,0 @@ - '\\DateTime', 'orderPrice' => 'float', 'orderId' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['orderDate' => 'date', 'orderPrice' => 'float', 'orderId' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['orderDate' => 'orderDate', 'orderPrice' => 'orderPrice', 'orderId' => 'orderId']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['orderDate' => 'setOrderDate', 'orderPrice' => 'setOrderPrice', 'orderId' => 'setOrderId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['orderDate' => 'getOrderDate', 'orderPrice' => 'getOrderPrice', 'orderId' => 'getOrderId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['orderDate'] = isset($data['orderDate']) ? $data['orderDate'] : null; - $this->container['orderPrice'] = isset($data['orderPrice']) ? $data['orderPrice'] : null; - $this->container['orderId'] = isset($data['orderId']) ? $data['orderId'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['orderDate'] === null) { - $invalidProperties[] = "'orderDate' can't be null"; - } - if ($this->container['orderPrice'] === null) { - $invalidProperties[] = "'orderPrice' can't be null"; - } - if ($this->container['orderId'] === null) { - $invalidProperties[] = "'orderId' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets orderDate - * - * @return \DateTime - */ - public function getOrderDate() - { - return $this->container['orderDate']; - } - /** - * Sets orderDate - * - * @param \DateTime $orderDate Date of the order - * - * @return $this - */ - public function setOrderDate($orderDate) - { - $this->container['orderDate'] = $orderDate; - return $this; - } - /** - * Gets orderPrice - * - * @return float - */ - public function getOrderPrice() - { - return $this->container['orderPrice']; - } - /** - * Sets orderPrice - * - * @param float $orderPrice Price of the order - * - * @return $this - */ - public function setOrderPrice($orderPrice) - { - $this->container['orderPrice'] = $orderPrice; - return $this; - } - /** - * Gets orderId - * - * @return int - */ - public function getOrderId() - { - return $this->container['orderId']; - } - /** - * Sets orderId - * - * @param int $orderId ID of the order - * - * @return $this - */ - public function setOrderId($orderId) - { - $this->container['orderId'] = $orderId; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsUnsubscriptions.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsUnsubscriptions.php deleted file mode 100644 index 778a8e9..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsUnsubscriptions.php +++ /dev/null @@ -1,282 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription[]', 'adminUnsubscription' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['userUnsubscription' => null, 'adminUnsubscription' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['userUnsubscription' => 'userUnsubscription', 'adminUnsubscription' => 'adminUnsubscription']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['userUnsubscription' => 'setUserUnsubscription', 'adminUnsubscription' => 'setAdminUnsubscription']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['userUnsubscription' => 'getUserUnsubscription', 'adminUnsubscription' => 'getAdminUnsubscription']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['userUnsubscription'] = isset($data['userUnsubscription']) ? $data['userUnsubscription'] : null; - $this->container['adminUnsubscription'] = isset($data['adminUnsubscription']) ? $data['adminUnsubscription'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['userUnsubscription'] === null) { - $invalidProperties[] = "'userUnsubscription' can't be null"; - } - if ($this->container['adminUnsubscription'] === null) { - $invalidProperties[] = "'adminUnsubscription' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets userUnsubscription - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription[] - */ - public function getUserUnsubscription() - { - return $this->container['userUnsubscription']; - } - /** - * Sets userUnsubscription - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription[] $userUnsubscription Contact has unsubscribed via the unsubscription link in the email - * - * @return $this - */ - public function setUserUnsubscription($userUnsubscription) - { - $this->container['userUnsubscription'] = $userUnsubscription; - return $this; - } - /** - * Gets adminUnsubscription - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription[] - */ - public function getAdminUnsubscription() - { - return $this->container['adminUnsubscription']; - } - /** - * Sets adminUnsubscription - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription[] $adminUnsubscription Contact has been unsubscribed from the administrator - * - * @return $this - */ - public function setAdminUnsubscription($adminUnsubscription) - { - $this->container['adminUnsubscription'] = $adminUnsubscription; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactDetails.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactDetails.php deleted file mode 100644 index 8221270..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContactDetails.php +++ /dev/null @@ -1,454 +0,0 @@ - 'string', 'id' => 'int', 'emailBlacklisted' => 'bool', 'smsBlacklisted' => 'bool', 'createdAt' => '\\DateTime', 'modifiedAt' => '\\DateTime', 'listIds' => 'int[]', 'listUnsubscribed' => 'int[]', 'attributes' => 'object']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'id' => 'int64', 'emailBlacklisted' => null, 'smsBlacklisted' => null, 'createdAt' => 'date-time', 'modifiedAt' => 'date-time', 'listIds' => 'int64', 'listUnsubscribed' => 'int64', 'attributes' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'id' => 'id', 'emailBlacklisted' => 'emailBlacklisted', 'smsBlacklisted' => 'smsBlacklisted', 'createdAt' => 'createdAt', 'modifiedAt' => 'modifiedAt', 'listIds' => 'listIds', 'listUnsubscribed' => 'listUnsubscribed', 'attributes' => 'attributes']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'id' => 'setId', 'emailBlacklisted' => 'setEmailBlacklisted', 'smsBlacklisted' => 'setSmsBlacklisted', 'createdAt' => 'setCreatedAt', 'modifiedAt' => 'setModifiedAt', 'listIds' => 'setListIds', 'listUnsubscribed' => 'setListUnsubscribed', 'attributes' => 'setAttributes']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'id' => 'getId', 'emailBlacklisted' => 'getEmailBlacklisted', 'smsBlacklisted' => 'getSmsBlacklisted', 'createdAt' => 'getCreatedAt', 'modifiedAt' => 'getModifiedAt', 'listIds' => 'getListIds', 'listUnsubscribed' => 'getListUnsubscribed', 'attributes' => 'getAttributes']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['emailBlacklisted'] = isset($data['emailBlacklisted']) ? $data['emailBlacklisted'] : null; - $this->container['smsBlacklisted'] = isset($data['smsBlacklisted']) ? $data['smsBlacklisted'] : null; - $this->container['createdAt'] = isset($data['createdAt']) ? $data['createdAt'] : null; - $this->container['modifiedAt'] = isset($data['modifiedAt']) ? $data['modifiedAt'] : null; - $this->container['listIds'] = isset($data['listIds']) ? $data['listIds'] : null; - $this->container['listUnsubscribed'] = isset($data['listUnsubscribed']) ? $data['listUnsubscribed'] : null; - $this->container['attributes'] = isset($data['attributes']) ? $data['attributes'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['emailBlacklisted'] === null) { - $invalidProperties[] = "'emailBlacklisted' can't be null"; - } - if ($this->container['smsBlacklisted'] === null) { - $invalidProperties[] = "'smsBlacklisted' can't be null"; - } - if ($this->container['createdAt'] === null) { - $invalidProperties[] = "'createdAt' can't be null"; - } - if ($this->container['modifiedAt'] === null) { - $invalidProperties[] = "'modifiedAt' can't be null"; - } - if ($this->container['listIds'] === null) { - $invalidProperties[] = "'listIds' can't be null"; - } - if ($this->container['attributes'] === null) { - $invalidProperties[] = "'attributes' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email address of the contact for which you requested the details - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the contact for which you requested the details - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets emailBlacklisted - * - * @return bool - */ - public function getEmailBlacklisted() - { - return $this->container['emailBlacklisted']; - } - /** - * Sets emailBlacklisted - * - * @param bool $emailBlacklisted Blacklist status for email campaigns (true=blacklisted, false=not blacklisted) - * - * @return $this - */ - public function setEmailBlacklisted($emailBlacklisted) - { - $this->container['emailBlacklisted'] = $emailBlacklisted; - return $this; - } - /** - * Gets smsBlacklisted - * - * @return bool - */ - public function getSmsBlacklisted() - { - return $this->container['smsBlacklisted']; - } - /** - * Sets smsBlacklisted - * - * @param bool $smsBlacklisted Blacklist status for SMS campaigns (true=blacklisted, false=not blacklisted) - * - * @return $this - */ - public function setSmsBlacklisted($smsBlacklisted) - { - $this->container['smsBlacklisted'] = $smsBlacklisted; - return $this; - } - /** - * Gets createdAt - * - * @return \DateTime - */ - public function getCreatedAt() - { - return $this->container['createdAt']; - } - /** - * Sets createdAt - * - * @param \DateTime $createdAt Creation UTC date-time of the contact (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setCreatedAt($createdAt) - { - $this->container['createdAt'] = $createdAt; - return $this; - } - /** - * Gets modifiedAt - * - * @return \DateTime - */ - public function getModifiedAt() - { - return $this->container['modifiedAt']; - } - /** - * Sets modifiedAt - * - * @param \DateTime $modifiedAt Last modification UTC date-time of the contact (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setModifiedAt($modifiedAt) - { - $this->container['modifiedAt'] = $modifiedAt; - return $this; - } - /** - * Gets listIds - * - * @return int[] - */ - public function getListIds() - { - return $this->container['listIds']; - } - /** - * Sets listIds - * - * @param int[] $listIds listIds - * - * @return $this - */ - public function setListIds($listIds) - { - $this->container['listIds'] = $listIds; - return $this; - } - /** - * Gets listUnsubscribed - * - * @return int[] - */ - public function getListUnsubscribed() - { - return $this->container['listUnsubscribed']; - } - /** - * Sets listUnsubscribed - * - * @param int[] $listUnsubscribed listUnsubscribed - * - * @return $this - */ - public function setListUnsubscribed($listUnsubscribed) - { - $this->container['listUnsubscribed'] = $listUnsubscribed; - return $this; - } - /** - * Gets attributes - * - * @return object - */ - public function getAttributes() - { - return $this->container['attributes']; - } - /** - * Sets attributes - * - * @param object $attributes Set of attributes of the contact - * - * @return $this - */ - public function setAttributes($attributes) - { - $this->container['attributes'] = $attributes; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContacts.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContacts.php deleted file mode 100644 index 110c2d5..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetContacts.php +++ /dev/null @@ -1,282 +0,0 @@ - 'object[]', 'count' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['contacts' => null, 'count' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['contacts' => 'contacts', 'count' => 'count']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['contacts' => 'setContacts', 'count' => 'setCount']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['contacts' => 'getContacts', 'count' => 'getCount']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['contacts'] = isset($data['contacts']) ? $data['contacts'] : null; - $this->container['count'] = isset($data['count']) ? $data['count'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['contacts'] === null) { - $invalidProperties[] = "'contacts' can't be null"; - } - if ($this->container['count'] === null) { - $invalidProperties[] = "'count' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets contacts - * - * @return object[] - */ - public function getContacts() - { - return $this->container['contacts']; - } - /** - * Sets contacts - * - * @param object[] $contacts contacts - * - * @return $this - */ - public function setContacts($contacts) - { - $this->container['contacts'] = $contacts; - return $this; - } - /** - * Gets count - * - * @return int - */ - public function getCount() - { - return $this->container['count']; - } - /** - * Sets count - * - * @param int $count Number of contacts - * - * @return $this - */ - public function setCount($count) - { - $this->container['count'] = $count; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetDeviceBrowserStats.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetDeviceBrowserStats.php deleted file mode 100644 index 6155957..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetDeviceBrowserStats.php +++ /dev/null @@ -1,332 +0,0 @@ - 'int', 'uniqueClicks' => 'int', 'viewed' => 'int', 'uniqueViews' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['clickers' => 'int64', 'uniqueClicks' => 'int64', 'viewed' => 'int64', 'uniqueViews' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['clickers' => 'clickers', 'uniqueClicks' => 'uniqueClicks', 'viewed' => 'viewed', 'uniqueViews' => 'uniqueViews']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['clickers' => 'setClickers', 'uniqueClicks' => 'setUniqueClicks', 'viewed' => 'setViewed', 'uniqueViews' => 'setUniqueViews']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['clickers' => 'getClickers', 'uniqueClicks' => 'getUniqueClicks', 'viewed' => 'getViewed', 'uniqueViews' => 'getUniqueViews']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['clickers'] = isset($data['clickers']) ? $data['clickers'] : null; - $this->container['uniqueClicks'] = isset($data['uniqueClicks']) ? $data['uniqueClicks'] : null; - $this->container['viewed'] = isset($data['viewed']) ? $data['viewed'] : null; - $this->container['uniqueViews'] = isset($data['uniqueViews']) ? $data['uniqueViews'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['clickers'] === null) { - $invalidProperties[] = "'clickers' can't be null"; - } - if ($this->container['uniqueClicks'] === null) { - $invalidProperties[] = "'uniqueClicks' can't be null"; - } - if ($this->container['viewed'] === null) { - $invalidProperties[] = "'viewed' can't be null"; - } - if ($this->container['uniqueViews'] === null) { - $invalidProperties[] = "'uniqueViews' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets clickers - * - * @return int - */ - public function getClickers() - { - return $this->container['clickers']; - } - /** - * Sets clickers - * - * @param int $clickers Number of total clicks for the campaign using the particular browser - * - * @return $this - */ - public function setClickers($clickers) - { - $this->container['clickers'] = $clickers; - return $this; - } - /** - * Gets uniqueClicks - * - * @return int - */ - public function getUniqueClicks() - { - return $this->container['uniqueClicks']; - } - /** - * Sets uniqueClicks - * - * @param int $uniqueClicks Number of unique clicks for the campaign using the particular browser - * - * @return $this - */ - public function setUniqueClicks($uniqueClicks) - { - $this->container['uniqueClicks'] = $uniqueClicks; - return $this; - } - /** - * Gets viewed - * - * @return int - */ - public function getViewed() - { - return $this->container['viewed']; - } - /** - * Sets viewed - * - * @param int $viewed Number of openings for the campaign using the particular browser - * - * @return $this - */ - public function setViewed($viewed) - { - $this->container['viewed'] = $viewed; - return $this; - } - /** - * Gets uniqueViews - * - * @return int - */ - public function getUniqueViews() - { - return $this->container['uniqueViews']; - } - /** - * Sets uniqueViews - * - * @param int $uniqueViews Number of unique openings for the campaign using the particular browser - * - * @return $this - */ - public function setUniqueViews($uniqueViews) - { - $this->container['uniqueViews'] = $uniqueViews; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaign.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaign.php deleted file mode 100644 index a815bf9..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaign.php +++ /dev/null @@ -1,1004 +0,0 @@ - 'int', 'name' => 'string', 'subject' => 'string', 'type' => 'string', 'status' => 'string', 'scheduledAt' => '\\DateTime', 'abTesting' => 'bool', 'subjectA' => 'string', 'subjectB' => 'string', 'splitRule' => 'int', 'winnerCriteria' => 'string', 'winnerDelay' => 'int', 'sendAtBestTime' => 'bool', 'testSent' => 'bool', 'header' => 'string', 'footer' => 'string', 'sender' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedCampaignOverviewSender', 'replyTo' => 'string', 'toField' => 'string', 'htmlContent' => 'string', 'shareLink' => 'string', 'tag' => 'string', 'createdAt' => '\\DateTime', 'modifiedAt' => '\\DateTime', 'inlineImageActivation' => 'bool', 'mirrorActive' => 'bool', 'recurring' => 'bool', 'sentDate' => '\\DateTime', 'returnBounce' => 'int', 'recipients' => 'object', 'statistics' => 'object']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64', 'name' => null, 'subject' => null, 'type' => null, 'status' => null, 'scheduledAt' => 'date-time', 'abTesting' => null, 'subjectA' => null, 'subjectB' => null, 'splitRule' => null, 'winnerCriteria' => null, 'winnerDelay' => null, 'sendAtBestTime' => null, 'testSent' => null, 'header' => null, 'footer' => null, 'sender' => null, 'replyTo' => 'email', 'toField' => null, 'htmlContent' => null, 'shareLink' => 'url', 'tag' => null, 'createdAt' => 'date-time', 'modifiedAt' => 'date-time', 'inlineImageActivation' => null, 'mirrorActive' => null, 'recurring' => null, 'sentDate' => 'date-time', 'returnBounce' => 'int64', 'recipients' => null, 'statistics' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id', 'name' => 'name', 'subject' => 'subject', 'type' => 'type', 'status' => 'status', 'scheduledAt' => 'scheduledAt', 'abTesting' => 'abTesting', 'subjectA' => 'subjectA', 'subjectB' => 'subjectB', 'splitRule' => 'splitRule', 'winnerCriteria' => 'winnerCriteria', 'winnerDelay' => 'winnerDelay', 'sendAtBestTime' => 'sendAtBestTime', 'testSent' => 'testSent', 'header' => 'header', 'footer' => 'footer', 'sender' => 'sender', 'replyTo' => 'replyTo', 'toField' => 'toField', 'htmlContent' => 'htmlContent', 'shareLink' => 'shareLink', 'tag' => 'tag', 'createdAt' => 'createdAt', 'modifiedAt' => 'modifiedAt', 'inlineImageActivation' => 'inlineImageActivation', 'mirrorActive' => 'mirrorActive', 'recurring' => 'recurring', 'sentDate' => 'sentDate', 'returnBounce' => 'returnBounce', 'recipients' => 'recipients', 'statistics' => 'statistics']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId', 'name' => 'setName', 'subject' => 'setSubject', 'type' => 'setType', 'status' => 'setStatus', 'scheduledAt' => 'setScheduledAt', 'abTesting' => 'setAbTesting', 'subjectA' => 'setSubjectA', 'subjectB' => 'setSubjectB', 'splitRule' => 'setSplitRule', 'winnerCriteria' => 'setWinnerCriteria', 'winnerDelay' => 'setWinnerDelay', 'sendAtBestTime' => 'setSendAtBestTime', 'testSent' => 'setTestSent', 'header' => 'setHeader', 'footer' => 'setFooter', 'sender' => 'setSender', 'replyTo' => 'setReplyTo', 'toField' => 'setToField', 'htmlContent' => 'setHtmlContent', 'shareLink' => 'setShareLink', 'tag' => 'setTag', 'createdAt' => 'setCreatedAt', 'modifiedAt' => 'setModifiedAt', 'inlineImageActivation' => 'setInlineImageActivation', 'mirrorActive' => 'setMirrorActive', 'recurring' => 'setRecurring', 'sentDate' => 'setSentDate', 'returnBounce' => 'setReturnBounce', 'recipients' => 'setRecipients', 'statistics' => 'setStatistics']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId', 'name' => 'getName', 'subject' => 'getSubject', 'type' => 'getType', 'status' => 'getStatus', 'scheduledAt' => 'getScheduledAt', 'abTesting' => 'getAbTesting', 'subjectA' => 'getSubjectA', 'subjectB' => 'getSubjectB', 'splitRule' => 'getSplitRule', 'winnerCriteria' => 'getWinnerCriteria', 'winnerDelay' => 'getWinnerDelay', 'sendAtBestTime' => 'getSendAtBestTime', 'testSent' => 'getTestSent', 'header' => 'getHeader', 'footer' => 'getFooter', 'sender' => 'getSender', 'replyTo' => 'getReplyTo', 'toField' => 'getToField', 'htmlContent' => 'getHtmlContent', 'shareLink' => 'getShareLink', 'tag' => 'getTag', 'createdAt' => 'getCreatedAt', 'modifiedAt' => 'getModifiedAt', 'inlineImageActivation' => 'getInlineImageActivation', 'mirrorActive' => 'getMirrorActive', 'recurring' => 'getRecurring', 'sentDate' => 'getSentDate', 'returnBounce' => 'getReturnBounce', 'recipients' => 'getRecipients', 'statistics' => 'getStatistics']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const TYPE_CLASSIC = 'classic'; - const TYPE_TRIGGER = 'trigger'; - const STATUS_DRAFT = 'draft'; - const STATUS_SENT = 'sent'; - const STATUS_ARCHIVE = 'archive'; - const STATUS_QUEUED = 'queued'; - const STATUS_SUSPENDED = 'suspended'; - const STATUS_IN_PROCESS = 'in_process'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getTypeAllowableValues() - { - return [self::TYPE_CLASSIC, self::TYPE_TRIGGER]; - } - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getStatusAllowableValues() - { - return [self::STATUS_DRAFT, self::STATUS_SENT, self::STATUS_ARCHIVE, self::STATUS_QUEUED, self::STATUS_SUSPENDED, self::STATUS_IN_PROCESS]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['subject'] = isset($data['subject']) ? $data['subject'] : null; - $this->container['type'] = isset($data['type']) ? $data['type'] : null; - $this->container['status'] = isset($data['status']) ? $data['status'] : null; - $this->container['scheduledAt'] = isset($data['scheduledAt']) ? $data['scheduledAt'] : null; - $this->container['abTesting'] = isset($data['abTesting']) ? $data['abTesting'] : null; - $this->container['subjectA'] = isset($data['subjectA']) ? $data['subjectA'] : null; - $this->container['subjectB'] = isset($data['subjectB']) ? $data['subjectB'] : null; - $this->container['splitRule'] = isset($data['splitRule']) ? $data['splitRule'] : null; - $this->container['winnerCriteria'] = isset($data['winnerCriteria']) ? $data['winnerCriteria'] : null; - $this->container['winnerDelay'] = isset($data['winnerDelay']) ? $data['winnerDelay'] : null; - $this->container['sendAtBestTime'] = isset($data['sendAtBestTime']) ? $data['sendAtBestTime'] : null; - $this->container['testSent'] = isset($data['testSent']) ? $data['testSent'] : null; - $this->container['header'] = isset($data['header']) ? $data['header'] : null; - $this->container['footer'] = isset($data['footer']) ? $data['footer'] : null; - $this->container['sender'] = isset($data['sender']) ? $data['sender'] : null; - $this->container['replyTo'] = isset($data['replyTo']) ? $data['replyTo'] : null; - $this->container['toField'] = isset($data['toField']) ? $data['toField'] : null; - $this->container['htmlContent'] = isset($data['htmlContent']) ? $data['htmlContent'] : null; - $this->container['shareLink'] = isset($data['shareLink']) ? $data['shareLink'] : null; - $this->container['tag'] = isset($data['tag']) ? $data['tag'] : null; - $this->container['createdAt'] = isset($data['createdAt']) ? $data['createdAt'] : null; - $this->container['modifiedAt'] = isset($data['modifiedAt']) ? $data['modifiedAt'] : null; - $this->container['inlineImageActivation'] = isset($data['inlineImageActivation']) ? $data['inlineImageActivation'] : null; - $this->container['mirrorActive'] = isset($data['mirrorActive']) ? $data['mirrorActive'] : null; - $this->container['recurring'] = isset($data['recurring']) ? $data['recurring'] : null; - $this->container['sentDate'] = isset($data['sentDate']) ? $data['sentDate'] : null; - $this->container['returnBounce'] = isset($data['returnBounce']) ? $data['returnBounce'] : null; - $this->container['recipients'] = isset($data['recipients']) ? $data['recipients'] : null; - $this->container['statistics'] = isset($data['statistics']) ? $data['statistics'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['type'] === null) { - $invalidProperties[] = "'type' can't be null"; - } - $allowedValues = $this->getTypeAllowableValues(); - if (!\is_null($this->container['type']) && !\in_array($this->container['type'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues)); - } - if ($this->container['status'] === null) { - $invalidProperties[] = "'status' can't be null"; - } - $allowedValues = $this->getStatusAllowableValues(); - if (!\is_null($this->container['status']) && !\in_array($this->container['status'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'status', must be one of '%s'", \implode("', '", $allowedValues)); - } - if ($this->container['testSent'] === null) { - $invalidProperties[] = "'testSent' can't be null"; - } - if ($this->container['header'] === null) { - $invalidProperties[] = "'header' can't be null"; - } - if ($this->container['footer'] === null) { - $invalidProperties[] = "'footer' can't be null"; - } - if ($this->container['sender'] === null) { - $invalidProperties[] = "'sender' can't be null"; - } - if ($this->container['replyTo'] === null) { - $invalidProperties[] = "'replyTo' can't be null"; - } - if ($this->container['toField'] === null) { - $invalidProperties[] = "'toField' can't be null"; - } - if ($this->container['htmlContent'] === null) { - $invalidProperties[] = "'htmlContent' can't be null"; - } - if ($this->container['tag'] === null) { - $invalidProperties[] = "'tag' can't be null"; - } - if ($this->container['createdAt'] === null) { - $invalidProperties[] = "'createdAt' can't be null"; - } - if ($this->container['modifiedAt'] === null) { - $invalidProperties[] = "'modifiedAt' can't be null"; - } - if ($this->container['recipients'] === null) { - $invalidProperties[] = "'recipients' can't be null"; - } - if ($this->container['statistics'] === null) { - $invalidProperties[] = "'statistics' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the campaign - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the campaign - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets subject - * - * @return string - */ - public function getSubject() - { - return $this->container['subject']; - } - /** - * Sets subject - * - * @param string $subject Subject of the campaign. Only available if `abTesting` flag of the campaign is `false` - * - * @return $this - */ - public function setSubject($subject) - { - $this->container['subject'] = $subject; - return $this; - } - /** - * Gets type - * - * @return string - */ - public function getType() - { - return $this->container['type']; - } - /** - * Sets type - * - * @param string $type Type of campaign - * - * @return $this - */ - public function setType($type) - { - $allowedValues = $this->getTypeAllowableValues(); - if (!\in_array($type, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['type'] = $type; - return $this; - } - /** - * Gets status - * - * @return string - */ - public function getStatus() - { - return $this->container['status']; - } - /** - * Sets status - * - * @param string $status Status of the campaign - * - * @return $this - */ - public function setStatus($status) - { - $allowedValues = $this->getStatusAllowableValues(); - if (!\in_array($status, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'status', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['status'] = $status; - return $this; - } - /** - * Gets scheduledAt - * - * @return \DateTime - */ - public function getScheduledAt() - { - return $this->container['scheduledAt']; - } - /** - * Sets scheduledAt - * - * @param \DateTime $scheduledAt UTC date-time on which campaign is scheduled (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setScheduledAt($scheduledAt) - { - $this->container['scheduledAt'] = $scheduledAt; - return $this; - } - /** - * Gets abTesting - * - * @return bool - */ - public function getAbTesting() - { - return $this->container['abTesting']; - } - /** - * Sets abTesting - * - * @param bool $abTesting Status of A/B Test for the campaign. abTesting = false means it is disabled, & abTesting = true means it is enabled. - * - * @return $this - */ - public function setAbTesting($abTesting) - { - $this->container['abTesting'] = $abTesting; - return $this; - } - /** - * Gets subjectA - * - * @return string - */ - public function getSubjectA() - { - return $this->container['subjectA']; - } - /** - * Sets subjectA - * - * @param string $subjectA Subject A of the ab-test campaign. Only available if `abTesting` flag of the campaign is `true` - * - * @return $this - */ - public function setSubjectA($subjectA) - { - $this->container['subjectA'] = $subjectA; - return $this; - } - /** - * Gets subjectB - * - * @return string - */ - public function getSubjectB() - { - return $this->container['subjectB']; - } - /** - * Sets subjectB - * - * @param string $subjectB Subject B of the ab-test campaign. Only available if `abTesting` flag of the campaign is `true` - * - * @return $this - */ - public function setSubjectB($subjectB) - { - $this->container['subjectB'] = $subjectB; - return $this; - } - /** - * Gets splitRule - * - * @return int - */ - public function getSplitRule() - { - return $this->container['splitRule']; - } - /** - * Sets splitRule - * - * @param int $splitRule The size of your ab-test groups. Only available if `abTesting` flag of the campaign is `true` - * - * @return $this - */ - public function setSplitRule($splitRule) - { - $this->container['splitRule'] = $splitRule; - return $this; - } - /** - * Gets winnerCriteria - * - * @return string - */ - public function getWinnerCriteria() - { - return $this->container['winnerCriteria']; - } - /** - * Sets winnerCriteria - * - * @param string $winnerCriteria Criteria for the winning version. Only available if `abTesting` flag of the campaign is `true` - * - * @return $this - */ - public function setWinnerCriteria($winnerCriteria) - { - $this->container['winnerCriteria'] = $winnerCriteria; - return $this; - } - /** - * Gets winnerDelay - * - * @return int - */ - public function getWinnerDelay() - { - return $this->container['winnerDelay']; - } - /** - * Sets winnerDelay - * - * @param int $winnerDelay The duration of the test in hours at the end of which the winning version will be sent. Only available if `abTesting` flag of the campaign is `true` - * - * @return $this - */ - public function setWinnerDelay($winnerDelay) - { - $this->container['winnerDelay'] = $winnerDelay; - return $this; - } - /** - * Gets sendAtBestTime - * - * @return bool - */ - public function getSendAtBestTime() - { - return $this->container['sendAtBestTime']; - } - /** - * Sets sendAtBestTime - * - * @param bool $sendAtBestTime It is true if you have chosen to send your campaign at best time, otherwise it is false - * - * @return $this - */ - public function setSendAtBestTime($sendAtBestTime) - { - $this->container['sendAtBestTime'] = $sendAtBestTime; - return $this; - } - /** - * Gets testSent - * - * @return bool - */ - public function getTestSent() - { - return $this->container['testSent']; - } - /** - * Sets testSent - * - * @param bool $testSent Retrieved the status of test email sending. (true=Test email has been sent false=Test email has not been sent) - * - * @return $this - */ - public function setTestSent($testSent) - { - $this->container['testSent'] = $testSent; - return $this; - } - /** - * Gets header - * - * @return string - */ - public function getHeader() - { - return $this->container['header']; - } - /** - * Sets header - * - * @param string $header Header of the campaign - * - * @return $this - */ - public function setHeader($header) - { - $this->container['header'] = $header; - return $this; - } - /** - * Gets footer - * - * @return string - */ - public function getFooter() - { - return $this->container['footer']; - } - /** - * Sets footer - * - * @param string $footer Footer of the campaign - * - * @return $this - */ - public function setFooter($footer) - { - $this->container['footer'] = $footer; - return $this; - } - /** - * Gets sender - * - * @return \SendinBlue\Client\Model\GetExtendedCampaignOverviewSender - */ - public function getSender() - { - return $this->container['sender']; - } - /** - * Sets sender - * - * @param \SendinBlue\Client\Model\GetExtendedCampaignOverviewSender $sender sender - * - * @return $this - */ - public function setSender($sender) - { - $this->container['sender'] = $sender; - return $this; - } - /** - * Gets replyTo - * - * @return string - */ - public function getReplyTo() - { - return $this->container['replyTo']; - } - /** - * Sets replyTo - * - * @param string $replyTo Email defined as the \"Reply to\" of the campaign - * - * @return $this - */ - public function setReplyTo($replyTo) - { - $this->container['replyTo'] = $replyTo; - return $this; - } - /** - * Gets toField - * - * @return string - */ - public function getToField() - { - return $this->container['toField']; - } - /** - * Sets toField - * - * @param string $toField Customisation of the \"to\" field of the campaign - * - * @return $this - */ - public function setToField($toField) - { - $this->container['toField'] = $toField; - return $this; - } - /** - * Gets htmlContent - * - * @return string - */ - public function getHtmlContent() - { - return $this->container['htmlContent']; - } - /** - * Sets htmlContent - * - * @param string $htmlContent HTML content of the campaign - * - * @return $this - */ - public function setHtmlContent($htmlContent) - { - $this->container['htmlContent'] = $htmlContent; - return $this; - } - /** - * Gets shareLink - * - * @return string - */ - public function getShareLink() - { - return $this->container['shareLink']; - } - /** - * Sets shareLink - * - * @param string $shareLink Link to share the campaign on social medias - * - * @return $this - */ - public function setShareLink($shareLink) - { - $this->container['shareLink'] = $shareLink; - return $this; - } - /** - * Gets tag - * - * @return string - */ - public function getTag() - { - return $this->container['tag']; - } - /** - * Sets tag - * - * @param string $tag Tag of the campaign - * - * @return $this - */ - public function setTag($tag) - { - $this->container['tag'] = $tag; - return $this; - } - /** - * Gets createdAt - * - * @return \DateTime - */ - public function getCreatedAt() - { - return $this->container['createdAt']; - } - /** - * Sets createdAt - * - * @param \DateTime $createdAt Creation UTC date-time of the campaign (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setCreatedAt($createdAt) - { - $this->container['createdAt'] = $createdAt; - return $this; - } - /** - * Gets modifiedAt - * - * @return \DateTime - */ - public function getModifiedAt() - { - return $this->container['modifiedAt']; - } - /** - * Sets modifiedAt - * - * @param \DateTime $modifiedAt UTC date-time of last modification of the campaign (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setModifiedAt($modifiedAt) - { - $this->container['modifiedAt'] = $modifiedAt; - return $this; - } - /** - * Gets inlineImageActivation - * - * @return bool - */ - public function getInlineImageActivation() - { - return $this->container['inlineImageActivation']; - } - /** - * Sets inlineImageActivation - * - * @param bool $inlineImageActivation Status of inline image. inlineImageActivation = false means image can’t be embedded, & inlineImageActivation = true means image can be embedded, in the email. - * - * @return $this - */ - public function setInlineImageActivation($inlineImageActivation) - { - $this->container['inlineImageActivation'] = $inlineImageActivation; - return $this; - } - /** - * Gets mirrorActive - * - * @return bool - */ - public function getMirrorActive() - { - return $this->container['mirrorActive']; - } - /** - * Sets mirrorActive - * - * @param bool $mirrorActive Status of mirror links in campaign. mirrorActive = false means mirror links are deactivated, & mirrorActive = true means mirror links are activated, in the campaign - * - * @return $this - */ - public function setMirrorActive($mirrorActive) - { - $this->container['mirrorActive'] = $mirrorActive; - return $this; - } - /** - * Gets recurring - * - * @return bool - */ - public function getRecurring() - { - return $this->container['recurring']; - } - /** - * Sets recurring - * - * @param bool $recurring FOR TRIGGER ONLY ! Type of trigger campaign.recurring = false means contact can receive the same Trigger campaign only once, & recurring = true means contact can receive the same Trigger campaign several times - * - * @return $this - */ - public function setRecurring($recurring) - { - $this->container['recurring'] = $recurring; - return $this; - } - /** - * Gets sentDate - * - * @return \DateTime - */ - public function getSentDate() - { - return $this->container['sentDate']; - } - /** - * Sets sentDate - * - * @param \DateTime $sentDate Sent UTC date-time of the campaign (YYYY-MM-DDTHH:mm:ss.SSSZ). Only available if 'status' of the campaign is 'sent' - * - * @return $this - */ - public function setSentDate($sentDate) - { - $this->container['sentDate'] = $sentDate; - return $this; - } - /** - * Gets returnBounce - * - * @return int - */ - public function getReturnBounce() - { - return $this->container['returnBounce']; - } - /** - * Sets returnBounce - * - * @param int $returnBounce Total number of non-delivered campaigns for a particular campaign id. - * - * @return $this - */ - public function setReturnBounce($returnBounce) - { - $this->container['returnBounce'] = $returnBounce; - return $this; - } - /** - * Gets recipients - * - * @return object - */ - public function getRecipients() - { - return $this->container['recipients']; - } - /** - * Sets recipients - * - * @param object $recipients recipients - * - * @return $this - */ - public function setRecipients($recipients) - { - $this->container['recipients'] = $recipients; - return $this; - } - /** - * Gets statistics - * - * @return object - */ - public function getStatistics() - { - return $this->container['statistics']; - } - /** - * Sets statistics - * - * @param object $statistics statistics - * - * @return $this - */ - public function setStatistics($statistics) - { - $this->container['statistics'] = $statistics; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaigns.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaigns.php deleted file mode 100644 index 3ce10b0..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaigns.php +++ /dev/null @@ -1,279 +0,0 @@ - 'object[]', 'count' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['campaigns' => null, 'count' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['campaigns' => 'campaigns', 'count' => 'count']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['campaigns' => 'setCampaigns', 'count' => 'setCount']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['campaigns' => 'getCampaigns', 'count' => 'getCount']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['campaigns'] = isset($data['campaigns']) ? $data['campaigns'] : null; - $this->container['count'] = isset($data['count']) ? $data['count'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['count'] === null) { - $invalidProperties[] = "'count' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets campaigns - * - * @return object[] - */ - public function getCampaigns() - { - return $this->container['campaigns']; - } - /** - * Sets campaigns - * - * @param object[] $campaigns campaigns - * - * @return $this - */ - public function setCampaigns($campaigns) - { - $this->container['campaigns'] = $campaigns; - return $this; - } - /** - * Gets count - * - * @return int - */ - public function getCount() - { - return $this->container['count']; - } - /** - * Sets count - * - * @param int $count Number of Email campaigns retrieved - * - * @return $this - */ - public function setCount($count) - { - $this->container['count'] = $count; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReport.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReport.php deleted file mode 100644 index fd9ac7a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReport.php +++ /dev/null @@ -1,254 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetEmailEventReportEvents[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['events' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['events' => 'events']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['events' => 'setEvents']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['events' => 'getEvents']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['events'] = isset($data['events']) ? $data['events'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets events - * - * @return \SendinBlue\Client\Model\GetEmailEventReportEvents[] - */ - public function getEvents() - { - return $this->container['events']; - } - /** - * Sets events - * - * @param \SendinBlue\Client\Model\GetEmailEventReportEvents[] $events events - * - * @return $this - */ - public function setEvents($events) - { - $this->container['events'] = $events; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReportEvents.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReportEvents.php deleted file mode 100644 index 37d0bef..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReportEvents.php +++ /dev/null @@ -1,493 +0,0 @@ - 'string', 'date' => '\\DateTime', 'subject' => 'string', 'messageId' => 'string', 'event' => 'string', 'reason' => 'string', 'tag' => 'string', 'ip' => 'string', 'link' => 'string', 'from' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'date' => 'date-time', 'subject' => null, 'messageId' => null, 'event' => null, 'reason' => null, 'tag' => null, 'ip' => null, 'link' => null, 'from' => 'email']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'date' => 'date', 'subject' => 'subject', 'messageId' => 'messageId', 'event' => 'event', 'reason' => 'reason', 'tag' => 'tag', 'ip' => 'ip', 'link' => 'link', 'from' => 'from']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'date' => 'setDate', 'subject' => 'setSubject', 'messageId' => 'setMessageId', 'event' => 'setEvent', 'reason' => 'setReason', 'tag' => 'setTag', 'ip' => 'setIp', 'link' => 'setLink', 'from' => 'setFrom']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'date' => 'getDate', 'subject' => 'getSubject', 'messageId' => 'getMessageId', 'event' => 'getEvent', 'reason' => 'getReason', 'tag' => 'getTag', 'ip' => 'getIp', 'link' => 'getLink', 'from' => 'getFrom']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const EVENT_BOUNCES = 'bounces'; - const EVENT_HARD_BOUNCES = 'hardBounces'; - const EVENT_SOFT_BOUNCES = 'softBounces'; - const EVENT_DELIVERED = 'delivered'; - const EVENT_SPAM = 'spam'; - const EVENT_REQUESTS = 'requests'; - const EVENT_OPENED = 'opened'; - const EVENT_CLICKS = 'clicks'; - const EVENT_INVALID = 'invalid'; - const EVENT_DEFERRED = 'deferred'; - const EVENT_BLOCKED = 'blocked'; - const EVENT_UNSUBSCRIBED = 'unsubscribed'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getEventAllowableValues() - { - return [self::EVENT_BOUNCES, self::EVENT_HARD_BOUNCES, self::EVENT_SOFT_BOUNCES, self::EVENT_DELIVERED, self::EVENT_SPAM, self::EVENT_REQUESTS, self::EVENT_OPENED, self::EVENT_CLICKS, self::EVENT_INVALID, self::EVENT_DEFERRED, self::EVENT_BLOCKED, self::EVENT_UNSUBSCRIBED]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['date'] = isset($data['date']) ? $data['date'] : null; - $this->container['subject'] = isset($data['subject']) ? $data['subject'] : null; - $this->container['messageId'] = isset($data['messageId']) ? $data['messageId'] : null; - $this->container['event'] = isset($data['event']) ? $data['event'] : null; - $this->container['reason'] = isset($data['reason']) ? $data['reason'] : null; - $this->container['tag'] = isset($data['tag']) ? $data['tag'] : null; - $this->container['ip'] = isset($data['ip']) ? $data['ip'] : null; - $this->container['link'] = isset($data['link']) ? $data['link'] : null; - $this->container['from'] = isset($data['from']) ? $data['from'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - if ($this->container['date'] === null) { - $invalidProperties[] = "'date' can't be null"; - } - if ($this->container['messageId'] === null) { - $invalidProperties[] = "'messageId' can't be null"; - } - if ($this->container['event'] === null) { - $invalidProperties[] = "'event' can't be null"; - } - $allowedValues = $this->getEventAllowableValues(); - if (!\is_null($this->container['event']) && !\in_array($this->container['event'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'event', must be one of '%s'", \implode("', '", $allowedValues)); - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email address which generates the event - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets date - * - * @return \DateTime - */ - public function getDate() - { - return $this->container['date']; - } - /** - * Sets date - * - * @param \DateTime $date UTC date-time on which the event has been generated - * - * @return $this - */ - public function setDate($date) - { - $this->container['date'] = $date; - return $this; - } - /** - * Gets subject - * - * @return string - */ - public function getSubject() - { - return $this->container['subject']; - } - /** - * Sets subject - * - * @param string $subject Subject of the event - * - * @return $this - */ - public function setSubject($subject) - { - $this->container['subject'] = $subject; - return $this; - } - /** - * Gets messageId - * - * @return string - */ - public function getMessageId() - { - return $this->container['messageId']; - } - /** - * Sets messageId - * - * @param string $messageId Message ID which generated the event - * - * @return $this - */ - public function setMessageId($messageId) - { - $this->container['messageId'] = $messageId; - return $this; - } - /** - * Gets event - * - * @return string - */ - public function getEvent() - { - return $this->container['event']; - } - /** - * Sets event - * - * @param string $event Event which occurred - * - * @return $this - */ - public function setEvent($event) - { - $allowedValues = $this->getEventAllowableValues(); - if (!\in_array($event, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'event', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['event'] = $event; - return $this; - } - /** - * Gets reason - * - * @return string - */ - public function getReason() - { - return $this->container['reason']; - } - /** - * Sets reason - * - * @param string $reason Reason of bounce (only available if the event is hardbounce or softbounce) - * - * @return $this - */ - public function setReason($reason) - { - $this->container['reason'] = $reason; - return $this; - } - /** - * Gets tag - * - * @return string - */ - public function getTag() - { - return $this->container['tag']; - } - /** - * Sets tag - * - * @param string $tag Tag of the email which generated the event - * - * @return $this - */ - public function setTag($tag) - { - $this->container['tag'] = $tag; - return $this; - } - /** - * Gets ip - * - * @return string - */ - public function getIp() - { - return $this->container['ip']; - } - /** - * Sets ip - * - * @param string $ip IP from which the user has opened the email or clicked on the link (only available if the event is opened or clicks) - * - * @return $this - */ - public function setIp($ip) - { - $this->container['ip'] = $ip; - return $this; - } - /** - * Gets link - * - * @return string - */ - public function getLink() - { - return $this->container['link']; - } - /** - * Sets link - * - * @param string $link The link which is sent to the user (only available if the event is requests or opened or clicks) - * - * @return $this - */ - public function setLink($link) - { - $this->container['link'] = $link; - return $this; - } - /** - * Gets from - * - * @return string - */ - public function getFrom() - { - return $this->container['from']; - } - /** - * Sets from - * - * @param string $from Sender email from which the emails are sent - * - * @return $this - */ - public function setFrom($from) - { - $this->container['from'] = $from; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverview.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverview.php deleted file mode 100644 index 8c35b37..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverview.php +++ /dev/null @@ -1,954 +0,0 @@ - 'int', 'name' => 'string', 'subject' => 'string', 'type' => 'string', 'status' => 'string', 'scheduledAt' => '\\DateTime', 'abTesting' => 'bool', 'subjectA' => 'string', 'subjectB' => 'string', 'splitRule' => 'int', 'winnerCriteria' => 'string', 'winnerDelay' => 'int', 'sendAtBestTime' => 'bool', 'testSent' => 'bool', 'header' => 'string', 'footer' => 'string', 'sender' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedCampaignOverviewSender', 'replyTo' => 'string', 'toField' => 'string', 'htmlContent' => 'string', 'shareLink' => 'string', 'tag' => 'string', 'createdAt' => '\\DateTime', 'modifiedAt' => '\\DateTime', 'inlineImageActivation' => 'bool', 'mirrorActive' => 'bool', 'recurring' => 'bool', 'sentDate' => '\\DateTime', 'returnBounce' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64', 'name' => null, 'subject' => null, 'type' => null, 'status' => null, 'scheduledAt' => 'date-time', 'abTesting' => null, 'subjectA' => null, 'subjectB' => null, 'splitRule' => null, 'winnerCriteria' => null, 'winnerDelay' => null, 'sendAtBestTime' => null, 'testSent' => null, 'header' => null, 'footer' => null, 'sender' => null, 'replyTo' => 'email', 'toField' => null, 'htmlContent' => null, 'shareLink' => 'url', 'tag' => null, 'createdAt' => 'date-time', 'modifiedAt' => 'date-time', 'inlineImageActivation' => null, 'mirrorActive' => null, 'recurring' => null, 'sentDate' => 'date-time', 'returnBounce' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id', 'name' => 'name', 'subject' => 'subject', 'type' => 'type', 'status' => 'status', 'scheduledAt' => 'scheduledAt', 'abTesting' => 'abTesting', 'subjectA' => 'subjectA', 'subjectB' => 'subjectB', 'splitRule' => 'splitRule', 'winnerCriteria' => 'winnerCriteria', 'winnerDelay' => 'winnerDelay', 'sendAtBestTime' => 'sendAtBestTime', 'testSent' => 'testSent', 'header' => 'header', 'footer' => 'footer', 'sender' => 'sender', 'replyTo' => 'replyTo', 'toField' => 'toField', 'htmlContent' => 'htmlContent', 'shareLink' => 'shareLink', 'tag' => 'tag', 'createdAt' => 'createdAt', 'modifiedAt' => 'modifiedAt', 'inlineImageActivation' => 'inlineImageActivation', 'mirrorActive' => 'mirrorActive', 'recurring' => 'recurring', 'sentDate' => 'sentDate', 'returnBounce' => 'returnBounce']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId', 'name' => 'setName', 'subject' => 'setSubject', 'type' => 'setType', 'status' => 'setStatus', 'scheduledAt' => 'setScheduledAt', 'abTesting' => 'setAbTesting', 'subjectA' => 'setSubjectA', 'subjectB' => 'setSubjectB', 'splitRule' => 'setSplitRule', 'winnerCriteria' => 'setWinnerCriteria', 'winnerDelay' => 'setWinnerDelay', 'sendAtBestTime' => 'setSendAtBestTime', 'testSent' => 'setTestSent', 'header' => 'setHeader', 'footer' => 'setFooter', 'sender' => 'setSender', 'replyTo' => 'setReplyTo', 'toField' => 'setToField', 'htmlContent' => 'setHtmlContent', 'shareLink' => 'setShareLink', 'tag' => 'setTag', 'createdAt' => 'setCreatedAt', 'modifiedAt' => 'setModifiedAt', 'inlineImageActivation' => 'setInlineImageActivation', 'mirrorActive' => 'setMirrorActive', 'recurring' => 'setRecurring', 'sentDate' => 'setSentDate', 'returnBounce' => 'setReturnBounce']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId', 'name' => 'getName', 'subject' => 'getSubject', 'type' => 'getType', 'status' => 'getStatus', 'scheduledAt' => 'getScheduledAt', 'abTesting' => 'getAbTesting', 'subjectA' => 'getSubjectA', 'subjectB' => 'getSubjectB', 'splitRule' => 'getSplitRule', 'winnerCriteria' => 'getWinnerCriteria', 'winnerDelay' => 'getWinnerDelay', 'sendAtBestTime' => 'getSendAtBestTime', 'testSent' => 'getTestSent', 'header' => 'getHeader', 'footer' => 'getFooter', 'sender' => 'getSender', 'replyTo' => 'getReplyTo', 'toField' => 'getToField', 'htmlContent' => 'getHtmlContent', 'shareLink' => 'getShareLink', 'tag' => 'getTag', 'createdAt' => 'getCreatedAt', 'modifiedAt' => 'getModifiedAt', 'inlineImageActivation' => 'getInlineImageActivation', 'mirrorActive' => 'getMirrorActive', 'recurring' => 'getRecurring', 'sentDate' => 'getSentDate', 'returnBounce' => 'getReturnBounce']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const TYPE_CLASSIC = 'classic'; - const TYPE_TRIGGER = 'trigger'; - const STATUS_DRAFT = 'draft'; - const STATUS_SENT = 'sent'; - const STATUS_ARCHIVE = 'archive'; - const STATUS_QUEUED = 'queued'; - const STATUS_SUSPENDED = 'suspended'; - const STATUS_IN_PROCESS = 'in_process'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getTypeAllowableValues() - { - return [self::TYPE_CLASSIC, self::TYPE_TRIGGER]; - } - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getStatusAllowableValues() - { - return [self::STATUS_DRAFT, self::STATUS_SENT, self::STATUS_ARCHIVE, self::STATUS_QUEUED, self::STATUS_SUSPENDED, self::STATUS_IN_PROCESS]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['subject'] = isset($data['subject']) ? $data['subject'] : null; - $this->container['type'] = isset($data['type']) ? $data['type'] : null; - $this->container['status'] = isset($data['status']) ? $data['status'] : null; - $this->container['scheduledAt'] = isset($data['scheduledAt']) ? $data['scheduledAt'] : null; - $this->container['abTesting'] = isset($data['abTesting']) ? $data['abTesting'] : null; - $this->container['subjectA'] = isset($data['subjectA']) ? $data['subjectA'] : null; - $this->container['subjectB'] = isset($data['subjectB']) ? $data['subjectB'] : null; - $this->container['splitRule'] = isset($data['splitRule']) ? $data['splitRule'] : null; - $this->container['winnerCriteria'] = isset($data['winnerCriteria']) ? $data['winnerCriteria'] : null; - $this->container['winnerDelay'] = isset($data['winnerDelay']) ? $data['winnerDelay'] : null; - $this->container['sendAtBestTime'] = isset($data['sendAtBestTime']) ? $data['sendAtBestTime'] : null; - $this->container['testSent'] = isset($data['testSent']) ? $data['testSent'] : null; - $this->container['header'] = isset($data['header']) ? $data['header'] : null; - $this->container['footer'] = isset($data['footer']) ? $data['footer'] : null; - $this->container['sender'] = isset($data['sender']) ? $data['sender'] : null; - $this->container['replyTo'] = isset($data['replyTo']) ? $data['replyTo'] : null; - $this->container['toField'] = isset($data['toField']) ? $data['toField'] : null; - $this->container['htmlContent'] = isset($data['htmlContent']) ? $data['htmlContent'] : null; - $this->container['shareLink'] = isset($data['shareLink']) ? $data['shareLink'] : null; - $this->container['tag'] = isset($data['tag']) ? $data['tag'] : null; - $this->container['createdAt'] = isset($data['createdAt']) ? $data['createdAt'] : null; - $this->container['modifiedAt'] = isset($data['modifiedAt']) ? $data['modifiedAt'] : null; - $this->container['inlineImageActivation'] = isset($data['inlineImageActivation']) ? $data['inlineImageActivation'] : null; - $this->container['mirrorActive'] = isset($data['mirrorActive']) ? $data['mirrorActive'] : null; - $this->container['recurring'] = isset($data['recurring']) ? $data['recurring'] : null; - $this->container['sentDate'] = isset($data['sentDate']) ? $data['sentDate'] : null; - $this->container['returnBounce'] = isset($data['returnBounce']) ? $data['returnBounce'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['type'] === null) { - $invalidProperties[] = "'type' can't be null"; - } - $allowedValues = $this->getTypeAllowableValues(); - if (!\is_null($this->container['type']) && !\in_array($this->container['type'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues)); - } - if ($this->container['status'] === null) { - $invalidProperties[] = "'status' can't be null"; - } - $allowedValues = $this->getStatusAllowableValues(); - if (!\is_null($this->container['status']) && !\in_array($this->container['status'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'status', must be one of '%s'", \implode("', '", $allowedValues)); - } - if ($this->container['testSent'] === null) { - $invalidProperties[] = "'testSent' can't be null"; - } - if ($this->container['header'] === null) { - $invalidProperties[] = "'header' can't be null"; - } - if ($this->container['footer'] === null) { - $invalidProperties[] = "'footer' can't be null"; - } - if ($this->container['sender'] === null) { - $invalidProperties[] = "'sender' can't be null"; - } - if ($this->container['replyTo'] === null) { - $invalidProperties[] = "'replyTo' can't be null"; - } - if ($this->container['toField'] === null) { - $invalidProperties[] = "'toField' can't be null"; - } - if ($this->container['htmlContent'] === null) { - $invalidProperties[] = "'htmlContent' can't be null"; - } - if ($this->container['tag'] === null) { - $invalidProperties[] = "'tag' can't be null"; - } - if ($this->container['createdAt'] === null) { - $invalidProperties[] = "'createdAt' can't be null"; - } - if ($this->container['modifiedAt'] === null) { - $invalidProperties[] = "'modifiedAt' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the campaign - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the campaign - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets subject - * - * @return string - */ - public function getSubject() - { - return $this->container['subject']; - } - /** - * Sets subject - * - * @param string $subject Subject of the campaign. Only available if `abTesting` flag of the campaign is `false` - * - * @return $this - */ - public function setSubject($subject) - { - $this->container['subject'] = $subject; - return $this; - } - /** - * Gets type - * - * @return string - */ - public function getType() - { - return $this->container['type']; - } - /** - * Sets type - * - * @param string $type Type of campaign - * - * @return $this - */ - public function setType($type) - { - $allowedValues = $this->getTypeAllowableValues(); - if (!\in_array($type, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['type'] = $type; - return $this; - } - /** - * Gets status - * - * @return string - */ - public function getStatus() - { - return $this->container['status']; - } - /** - * Sets status - * - * @param string $status Status of the campaign - * - * @return $this - */ - public function setStatus($status) - { - $allowedValues = $this->getStatusAllowableValues(); - if (!\in_array($status, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'status', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['status'] = $status; - return $this; - } - /** - * Gets scheduledAt - * - * @return \DateTime - */ - public function getScheduledAt() - { - return $this->container['scheduledAt']; - } - /** - * Sets scheduledAt - * - * @param \DateTime $scheduledAt UTC date-time on which campaign is scheduled (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setScheduledAt($scheduledAt) - { - $this->container['scheduledAt'] = $scheduledAt; - return $this; - } - /** - * Gets abTesting - * - * @return bool - */ - public function getAbTesting() - { - return $this->container['abTesting']; - } - /** - * Sets abTesting - * - * @param bool $abTesting Status of A/B Test for the campaign. abTesting = false means it is disabled, & abTesting = true means it is enabled. - * - * @return $this - */ - public function setAbTesting($abTesting) - { - $this->container['abTesting'] = $abTesting; - return $this; - } - /** - * Gets subjectA - * - * @return string - */ - public function getSubjectA() - { - return $this->container['subjectA']; - } - /** - * Sets subjectA - * - * @param string $subjectA Subject A of the ab-test campaign. Only available if `abTesting` flag of the campaign is `true` - * - * @return $this - */ - public function setSubjectA($subjectA) - { - $this->container['subjectA'] = $subjectA; - return $this; - } - /** - * Gets subjectB - * - * @return string - */ - public function getSubjectB() - { - return $this->container['subjectB']; - } - /** - * Sets subjectB - * - * @param string $subjectB Subject B of the ab-test campaign. Only available if `abTesting` flag of the campaign is `true` - * - * @return $this - */ - public function setSubjectB($subjectB) - { - $this->container['subjectB'] = $subjectB; - return $this; - } - /** - * Gets splitRule - * - * @return int - */ - public function getSplitRule() - { - return $this->container['splitRule']; - } - /** - * Sets splitRule - * - * @param int $splitRule The size of your ab-test groups. Only available if `abTesting` flag of the campaign is `true` - * - * @return $this - */ - public function setSplitRule($splitRule) - { - $this->container['splitRule'] = $splitRule; - return $this; - } - /** - * Gets winnerCriteria - * - * @return string - */ - public function getWinnerCriteria() - { - return $this->container['winnerCriteria']; - } - /** - * Sets winnerCriteria - * - * @param string $winnerCriteria Criteria for the winning version. Only available if `abTesting` flag of the campaign is `true` - * - * @return $this - */ - public function setWinnerCriteria($winnerCriteria) - { - $this->container['winnerCriteria'] = $winnerCriteria; - return $this; - } - /** - * Gets winnerDelay - * - * @return int - */ - public function getWinnerDelay() - { - return $this->container['winnerDelay']; - } - /** - * Sets winnerDelay - * - * @param int $winnerDelay The duration of the test in hours at the end of which the winning version will be sent. Only available if `abTesting` flag of the campaign is `true` - * - * @return $this - */ - public function setWinnerDelay($winnerDelay) - { - $this->container['winnerDelay'] = $winnerDelay; - return $this; - } - /** - * Gets sendAtBestTime - * - * @return bool - */ - public function getSendAtBestTime() - { - return $this->container['sendAtBestTime']; - } - /** - * Sets sendAtBestTime - * - * @param bool $sendAtBestTime It is true if you have chosen to send your campaign at best time, otherwise it is false - * - * @return $this - */ - public function setSendAtBestTime($sendAtBestTime) - { - $this->container['sendAtBestTime'] = $sendAtBestTime; - return $this; - } - /** - * Gets testSent - * - * @return bool - */ - public function getTestSent() - { - return $this->container['testSent']; - } - /** - * Sets testSent - * - * @param bool $testSent Retrieved the status of test email sending. (true=Test email has been sent false=Test email has not been sent) - * - * @return $this - */ - public function setTestSent($testSent) - { - $this->container['testSent'] = $testSent; - return $this; - } - /** - * Gets header - * - * @return string - */ - public function getHeader() - { - return $this->container['header']; - } - /** - * Sets header - * - * @param string $header Header of the campaign - * - * @return $this - */ - public function setHeader($header) - { - $this->container['header'] = $header; - return $this; - } - /** - * Gets footer - * - * @return string - */ - public function getFooter() - { - return $this->container['footer']; - } - /** - * Sets footer - * - * @param string $footer Footer of the campaign - * - * @return $this - */ - public function setFooter($footer) - { - $this->container['footer'] = $footer; - return $this; - } - /** - * Gets sender - * - * @return \SendinBlue\Client\Model\GetExtendedCampaignOverviewSender - */ - public function getSender() - { - return $this->container['sender']; - } - /** - * Sets sender - * - * @param \SendinBlue\Client\Model\GetExtendedCampaignOverviewSender $sender sender - * - * @return $this - */ - public function setSender($sender) - { - $this->container['sender'] = $sender; - return $this; - } - /** - * Gets replyTo - * - * @return string - */ - public function getReplyTo() - { - return $this->container['replyTo']; - } - /** - * Sets replyTo - * - * @param string $replyTo Email defined as the \"Reply to\" of the campaign - * - * @return $this - */ - public function setReplyTo($replyTo) - { - $this->container['replyTo'] = $replyTo; - return $this; - } - /** - * Gets toField - * - * @return string - */ - public function getToField() - { - return $this->container['toField']; - } - /** - * Sets toField - * - * @param string $toField Customisation of the \"to\" field of the campaign - * - * @return $this - */ - public function setToField($toField) - { - $this->container['toField'] = $toField; - return $this; - } - /** - * Gets htmlContent - * - * @return string - */ - public function getHtmlContent() - { - return $this->container['htmlContent']; - } - /** - * Sets htmlContent - * - * @param string $htmlContent HTML content of the campaign - * - * @return $this - */ - public function setHtmlContent($htmlContent) - { - $this->container['htmlContent'] = $htmlContent; - return $this; - } - /** - * Gets shareLink - * - * @return string - */ - public function getShareLink() - { - return $this->container['shareLink']; - } - /** - * Sets shareLink - * - * @param string $shareLink Link to share the campaign on social medias - * - * @return $this - */ - public function setShareLink($shareLink) - { - $this->container['shareLink'] = $shareLink; - return $this; - } - /** - * Gets tag - * - * @return string - */ - public function getTag() - { - return $this->container['tag']; - } - /** - * Sets tag - * - * @param string $tag Tag of the campaign - * - * @return $this - */ - public function setTag($tag) - { - $this->container['tag'] = $tag; - return $this; - } - /** - * Gets createdAt - * - * @return \DateTime - */ - public function getCreatedAt() - { - return $this->container['createdAt']; - } - /** - * Sets createdAt - * - * @param \DateTime $createdAt Creation UTC date-time of the campaign (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setCreatedAt($createdAt) - { - $this->container['createdAt'] = $createdAt; - return $this; - } - /** - * Gets modifiedAt - * - * @return \DateTime - */ - public function getModifiedAt() - { - return $this->container['modifiedAt']; - } - /** - * Sets modifiedAt - * - * @param \DateTime $modifiedAt UTC date-time of last modification of the campaign (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setModifiedAt($modifiedAt) - { - $this->container['modifiedAt'] = $modifiedAt; - return $this; - } - /** - * Gets inlineImageActivation - * - * @return bool - */ - public function getInlineImageActivation() - { - return $this->container['inlineImageActivation']; - } - /** - * Sets inlineImageActivation - * - * @param bool $inlineImageActivation Status of inline image. inlineImageActivation = false means image can’t be embedded, & inlineImageActivation = true means image can be embedded, in the email. - * - * @return $this - */ - public function setInlineImageActivation($inlineImageActivation) - { - $this->container['inlineImageActivation'] = $inlineImageActivation; - return $this; - } - /** - * Gets mirrorActive - * - * @return bool - */ - public function getMirrorActive() - { - return $this->container['mirrorActive']; - } - /** - * Sets mirrorActive - * - * @param bool $mirrorActive Status of mirror links in campaign. mirrorActive = false means mirror links are deactivated, & mirrorActive = true means mirror links are activated, in the campaign - * - * @return $this - */ - public function setMirrorActive($mirrorActive) - { - $this->container['mirrorActive'] = $mirrorActive; - return $this; - } - /** - * Gets recurring - * - * @return bool - */ - public function getRecurring() - { - return $this->container['recurring']; - } - /** - * Sets recurring - * - * @param bool $recurring FOR TRIGGER ONLY ! Type of trigger campaign.recurring = false means contact can receive the same Trigger campaign only once, & recurring = true means contact can receive the same Trigger campaign several times - * - * @return $this - */ - public function setRecurring($recurring) - { - $this->container['recurring'] = $recurring; - return $this; - } - /** - * Gets sentDate - * - * @return \DateTime - */ - public function getSentDate() - { - return $this->container['sentDate']; - } - /** - * Sets sentDate - * - * @param \DateTime $sentDate Sent UTC date-time of the campaign (YYYY-MM-DDTHH:mm:ss.SSSZ). Only available if 'status' of the campaign is 'sent' - * - * @return $this - */ - public function setSentDate($sentDate) - { - $this->container['sentDate'] = $sentDate; - return $this; - } - /** - * Gets returnBounce - * - * @return int - */ - public function getReturnBounce() - { - return $this->container['returnBounce']; - } - /** - * Sets returnBounce - * - * @param int $returnBounce Total number of non-delivered campaigns for a particular campaign id. - * - * @return $this - */ - public function setReturnBounce($returnBounce) - { - $this->container['returnBounce'] = $returnBounce; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverviewSender.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverviewSender.php deleted file mode 100644 index 2777716..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverviewSender.php +++ /dev/null @@ -1,298 +0,0 @@ - 'string', 'email' => 'string', 'id' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'email' => 'email', 'id' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'email' => 'email', 'id' => 'id']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'email' => 'setEmail', 'id' => 'setId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'email' => 'getEmail', 'id' => 'getId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Sender name of the campaign - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Sender email of the campaign - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets id - * - * @return string - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param string $id Sender id of the campaign - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignStats.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignStats.php deleted file mode 100644 index c51ceb6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignStats.php +++ /dev/null @@ -1,432 +0,0 @@ - 'object', 'campaignStats' => 'object[]', 'mirrorClick' => 'int', 'remaining' => 'int', 'linksStats' => 'object', 'statsByDomain' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetStatsByDomain', 'statsByDevice' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetStatsByDevice', 'statsByBrowser' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetStatsByBrowser']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['globalStats' => null, 'campaignStats' => null, 'mirrorClick' => 'int64', 'remaining' => 'int64', 'linksStats' => null, 'statsByDomain' => null, 'statsByDevice' => null, 'statsByBrowser' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['globalStats' => 'globalStats', 'campaignStats' => 'campaignStats', 'mirrorClick' => 'mirrorClick', 'remaining' => 'remaining', 'linksStats' => 'linksStats', 'statsByDomain' => 'statsByDomain', 'statsByDevice' => 'statsByDevice', 'statsByBrowser' => 'statsByBrowser']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['globalStats' => 'setGlobalStats', 'campaignStats' => 'setCampaignStats', 'mirrorClick' => 'setMirrorClick', 'remaining' => 'setRemaining', 'linksStats' => 'setLinksStats', 'statsByDomain' => 'setStatsByDomain', 'statsByDevice' => 'setStatsByDevice', 'statsByBrowser' => 'setStatsByBrowser']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['globalStats' => 'getGlobalStats', 'campaignStats' => 'getCampaignStats', 'mirrorClick' => 'getMirrorClick', 'remaining' => 'getRemaining', 'linksStats' => 'getLinksStats', 'statsByDomain' => 'getStatsByDomain', 'statsByDevice' => 'getStatsByDevice', 'statsByBrowser' => 'getStatsByBrowser']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['globalStats'] = isset($data['globalStats']) ? $data['globalStats'] : null; - $this->container['campaignStats'] = isset($data['campaignStats']) ? $data['campaignStats'] : null; - $this->container['mirrorClick'] = isset($data['mirrorClick']) ? $data['mirrorClick'] : null; - $this->container['remaining'] = isset($data['remaining']) ? $data['remaining'] : null; - $this->container['linksStats'] = isset($data['linksStats']) ? $data['linksStats'] : null; - $this->container['statsByDomain'] = isset($data['statsByDomain']) ? $data['statsByDomain'] : null; - $this->container['statsByDevice'] = isset($data['statsByDevice']) ? $data['statsByDevice'] : null; - $this->container['statsByBrowser'] = isset($data['statsByBrowser']) ? $data['statsByBrowser'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['globalStats'] === null) { - $invalidProperties[] = "'globalStats' can't be null"; - } - if ($this->container['campaignStats'] === null) { - $invalidProperties[] = "'campaignStats' can't be null"; - } - if ($this->container['mirrorClick'] === null) { - $invalidProperties[] = "'mirrorClick' can't be null"; - } - if ($this->container['remaining'] === null) { - $invalidProperties[] = "'remaining' can't be null"; - } - if ($this->container['linksStats'] === null) { - $invalidProperties[] = "'linksStats' can't be null"; - } - if ($this->container['statsByDomain'] === null) { - $invalidProperties[] = "'statsByDomain' can't be null"; - } - if ($this->container['statsByDevice'] === null) { - $invalidProperties[] = "'statsByDevice' can't be null"; - } - if ($this->container['statsByBrowser'] === null) { - $invalidProperties[] = "'statsByBrowser' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets globalStats - * - * @return object - */ - public function getGlobalStats() - { - return $this->container['globalStats']; - } - /** - * Sets globalStats - * - * @param object $globalStats Overall statistics of the campaign - * - * @return $this - */ - public function setGlobalStats($globalStats) - { - $this->container['globalStats'] = $globalStats; - return $this; - } - /** - * Gets campaignStats - * - * @return object[] - */ - public function getCampaignStats() - { - return $this->container['campaignStats']; - } - /** - * Sets campaignStats - * - * @param object[] $campaignStats List-wise statistics of the campaign. - * - * @return $this - */ - public function setCampaignStats($campaignStats) - { - $this->container['campaignStats'] = $campaignStats; - return $this; - } - /** - * Gets mirrorClick - * - * @return int - */ - public function getMirrorClick() - { - return $this->container['mirrorClick']; - } - /** - * Sets mirrorClick - * - * @param int $mirrorClick Number of clicks on mirror link - * - * @return $this - */ - public function setMirrorClick($mirrorClick) - { - $this->container['mirrorClick'] = $mirrorClick; - return $this; - } - /** - * Gets remaining - * - * @return int - */ - public function getRemaining() - { - return $this->container['remaining']; - } - /** - * Sets remaining - * - * @param int $remaining Number of remaning emails to send - * - * @return $this - */ - public function setRemaining($remaining) - { - $this->container['remaining'] = $remaining; - return $this; - } - /** - * Gets linksStats - * - * @return object - */ - public function getLinksStats() - { - return $this->container['linksStats']; - } - /** - * Sets linksStats - * - * @param object $linksStats Statistics about the number of clicks for the links - * - * @return $this - */ - public function setLinksStats($linksStats) - { - $this->container['linksStats'] = $linksStats; - return $this; - } - /** - * Gets statsByDomain - * - * @return \SendinBlue\Client\Model\GetStatsByDomain - */ - public function getStatsByDomain() - { - return $this->container['statsByDomain']; - } - /** - * Sets statsByDomain - * - * @param \SendinBlue\Client\Model\GetStatsByDomain $statsByDomain statsByDomain - * - * @return $this - */ - public function setStatsByDomain($statsByDomain) - { - $this->container['statsByDomain'] = $statsByDomain; - return $this; - } - /** - * Gets statsByDevice - * - * @return \SendinBlue\Client\Model\GetStatsByDevice - */ - public function getStatsByDevice() - { - return $this->container['statsByDevice']; - } - /** - * Sets statsByDevice - * - * @param \SendinBlue\Client\Model\GetStatsByDevice $statsByDevice Statistics about the campaign on the basis of various devices - * - * @return $this - */ - public function setStatsByDevice($statsByDevice) - { - $this->container['statsByDevice'] = $statsByDevice; - return $this; - } - /** - * Gets statsByBrowser - * - * @return \SendinBlue\Client\Model\GetStatsByBrowser - */ - public function getStatsByBrowser() - { - return $this->container['statsByBrowser']; - } - /** - * Sets statsByBrowser - * - * @param \SendinBlue\Client\Model\GetStatsByBrowser $statsByBrowser Statistics about the campaign on the basis of various browsers - * - * @return $this - */ - public function setStatsByBrowser($statsByBrowser) - { - $this->container['statsByBrowser'] = $statsByBrowser; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedClient.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedClient.php deleted file mode 100644 index e8f963e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedClient.php +++ /dev/null @@ -1,357 +0,0 @@ - 'string', 'firstName' => 'string', 'lastName' => 'string', 'companyName' => 'string', 'address' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedClientAddress']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'firstName' => null, 'lastName' => null, 'companyName' => null, 'address' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'firstName' => 'firstName', 'lastName' => 'lastName', 'companyName' => 'companyName', 'address' => 'address']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'firstName' => 'setFirstName', 'lastName' => 'setLastName', 'companyName' => 'setCompanyName', 'address' => 'setAddress']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'firstName' => 'getFirstName', 'lastName' => 'getLastName', 'companyName' => 'getCompanyName', 'address' => 'getAddress']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['firstName'] = isset($data['firstName']) ? $data['firstName'] : null; - $this->container['lastName'] = isset($data['lastName']) ? $data['lastName'] : null; - $this->container['companyName'] = isset($data['companyName']) ? $data['companyName'] : null; - $this->container['address'] = isset($data['address']) ? $data['address'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - if ($this->container['firstName'] === null) { - $invalidProperties[] = "'firstName' can't be null"; - } - if ($this->container['lastName'] === null) { - $invalidProperties[] = "'lastName' can't be null"; - } - if ($this->container['companyName'] === null) { - $invalidProperties[] = "'companyName' can't be null"; - } - if ($this->container['address'] === null) { - $invalidProperties[] = "'address' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Login Email - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets firstName - * - * @return string - */ - public function getFirstName() - { - return $this->container['firstName']; - } - /** - * Sets firstName - * - * @param string $firstName First Name - * - * @return $this - */ - public function setFirstName($firstName) - { - $this->container['firstName'] = $firstName; - return $this; - } - /** - * Gets lastName - * - * @return string - */ - public function getLastName() - { - return $this->container['lastName']; - } - /** - * Sets lastName - * - * @param string $lastName Last Name - * - * @return $this - */ - public function setLastName($lastName) - { - $this->container['lastName'] = $lastName; - return $this; - } - /** - * Gets companyName - * - * @return string - */ - public function getCompanyName() - { - return $this->container['companyName']; - } - /** - * Sets companyName - * - * @param string $companyName Name of the company - * - * @return $this - */ - public function setCompanyName($companyName) - { - $this->container['companyName'] = $companyName; - return $this; - } - /** - * Gets address - * - * @return \SendinBlue\Client\Model\GetExtendedClientAddress - */ - public function getAddress() - { - return $this->container['address']; - } - /** - * Sets address - * - * @param \SendinBlue\Client\Model\GetExtendedClientAddress $address address - * - * @return $this - */ - public function setAddress($address) - { - $this->container['address'] = $address; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedClientAddress.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedClientAddress.php deleted file mode 100644 index c42622f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedClientAddress.php +++ /dev/null @@ -1,333 +0,0 @@ - 'string', 'city' => 'string', 'zipCode' => 'string', 'country' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['street' => null, 'city' => null, 'zipCode' => null, 'country' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['street' => 'street', 'city' => 'city', 'zipCode' => 'zipCode', 'country' => 'country']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['street' => 'setStreet', 'city' => 'setCity', 'zipCode' => 'setZipCode', 'country' => 'setCountry']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['street' => 'getStreet', 'city' => 'getCity', 'zipCode' => 'getZipCode', 'country' => 'getCountry']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['street'] = isset($data['street']) ? $data['street'] : null; - $this->container['city'] = isset($data['city']) ? $data['city'] : null; - $this->container['zipCode'] = isset($data['zipCode']) ? $data['zipCode'] : null; - $this->container['country'] = isset($data['country']) ? $data['country'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['street'] === null) { - $invalidProperties[] = "'street' can't be null"; - } - if ($this->container['city'] === null) { - $invalidProperties[] = "'city' can't be null"; - } - if ($this->container['zipCode'] === null) { - $invalidProperties[] = "'zipCode' can't be null"; - } - if ($this->container['country'] === null) { - $invalidProperties[] = "'country' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets street - * - * @return string - */ - public function getStreet() - { - return $this->container['street']; - } - /** - * Sets street - * - * @param string $street Street information - * - * @return $this - */ - public function setStreet($street) - { - $this->container['street'] = $street; - return $this; - } - /** - * Gets city - * - * @return string - */ - public function getCity() - { - return $this->container['city']; - } - /** - * Sets city - * - * @param string $city City information - * - * @return $this - */ - public function setCity($city) - { - $this->container['city'] = $city; - return $this; - } - /** - * Gets zipCode - * - * @return string - */ - public function getZipCode() - { - return $this->container['zipCode']; - } - /** - * Sets zipCode - * - * @param string $zipCode Zip Code information - * - * @return $this - */ - public function setZipCode($zipCode) - { - $this->container['zipCode'] = $zipCode; - return $this; - } - /** - * Gets country - * - * @return string - */ - public function getCountry() - { - return $this->container['country']; - } - /** - * Sets country - * - * @param string $country Country information - * - * @return $this - */ - public function setCountry($country) - { - $this->container['country'] = $country; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetails.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetails.php deleted file mode 100644 index 9995330..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetails.php +++ /dev/null @@ -1,479 +0,0 @@ - 'string', 'id' => 'int', 'emailBlacklisted' => 'bool', 'smsBlacklisted' => 'bool', 'createdAt' => '\\DateTime', 'modifiedAt' => '\\DateTime', 'listIds' => 'int[]', 'listUnsubscribed' => 'int[]', 'attributes' => 'object', 'statistics' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatistics']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'id' => 'int64', 'emailBlacklisted' => null, 'smsBlacklisted' => null, 'createdAt' => 'date-time', 'modifiedAt' => 'date-time', 'listIds' => 'int64', 'listUnsubscribed' => 'int64', 'attributes' => null, 'statistics' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'id' => 'id', 'emailBlacklisted' => 'emailBlacklisted', 'smsBlacklisted' => 'smsBlacklisted', 'createdAt' => 'createdAt', 'modifiedAt' => 'modifiedAt', 'listIds' => 'listIds', 'listUnsubscribed' => 'listUnsubscribed', 'attributes' => 'attributes', 'statistics' => 'statistics']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'id' => 'setId', 'emailBlacklisted' => 'setEmailBlacklisted', 'smsBlacklisted' => 'setSmsBlacklisted', 'createdAt' => 'setCreatedAt', 'modifiedAt' => 'setModifiedAt', 'listIds' => 'setListIds', 'listUnsubscribed' => 'setListUnsubscribed', 'attributes' => 'setAttributes', 'statistics' => 'setStatistics']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'id' => 'getId', 'emailBlacklisted' => 'getEmailBlacklisted', 'smsBlacklisted' => 'getSmsBlacklisted', 'createdAt' => 'getCreatedAt', 'modifiedAt' => 'getModifiedAt', 'listIds' => 'getListIds', 'listUnsubscribed' => 'getListUnsubscribed', 'attributes' => 'getAttributes', 'statistics' => 'getStatistics']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['emailBlacklisted'] = isset($data['emailBlacklisted']) ? $data['emailBlacklisted'] : null; - $this->container['smsBlacklisted'] = isset($data['smsBlacklisted']) ? $data['smsBlacklisted'] : null; - $this->container['createdAt'] = isset($data['createdAt']) ? $data['createdAt'] : null; - $this->container['modifiedAt'] = isset($data['modifiedAt']) ? $data['modifiedAt'] : null; - $this->container['listIds'] = isset($data['listIds']) ? $data['listIds'] : null; - $this->container['listUnsubscribed'] = isset($data['listUnsubscribed']) ? $data['listUnsubscribed'] : null; - $this->container['attributes'] = isset($data['attributes']) ? $data['attributes'] : null; - $this->container['statistics'] = isset($data['statistics']) ? $data['statistics'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['emailBlacklisted'] === null) { - $invalidProperties[] = "'emailBlacklisted' can't be null"; - } - if ($this->container['smsBlacklisted'] === null) { - $invalidProperties[] = "'smsBlacklisted' can't be null"; - } - if ($this->container['createdAt'] === null) { - $invalidProperties[] = "'createdAt' can't be null"; - } - if ($this->container['modifiedAt'] === null) { - $invalidProperties[] = "'modifiedAt' can't be null"; - } - if ($this->container['listIds'] === null) { - $invalidProperties[] = "'listIds' can't be null"; - } - if ($this->container['attributes'] === null) { - $invalidProperties[] = "'attributes' can't be null"; - } - if ($this->container['statistics'] === null) { - $invalidProperties[] = "'statistics' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email address of the contact for which you requested the details - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the contact for which you requested the details - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets emailBlacklisted - * - * @return bool - */ - public function getEmailBlacklisted() - { - return $this->container['emailBlacklisted']; - } - /** - * Sets emailBlacklisted - * - * @param bool $emailBlacklisted Blacklist status for email campaigns (true=blacklisted, false=not blacklisted) - * - * @return $this - */ - public function setEmailBlacklisted($emailBlacklisted) - { - $this->container['emailBlacklisted'] = $emailBlacklisted; - return $this; - } - /** - * Gets smsBlacklisted - * - * @return bool - */ - public function getSmsBlacklisted() - { - return $this->container['smsBlacklisted']; - } - /** - * Sets smsBlacklisted - * - * @param bool $smsBlacklisted Blacklist status for SMS campaigns (true=blacklisted, false=not blacklisted) - * - * @return $this - */ - public function setSmsBlacklisted($smsBlacklisted) - { - $this->container['smsBlacklisted'] = $smsBlacklisted; - return $this; - } - /** - * Gets createdAt - * - * @return \DateTime - */ - public function getCreatedAt() - { - return $this->container['createdAt']; - } - /** - * Sets createdAt - * - * @param \DateTime $createdAt Creation UTC date-time of the contact (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setCreatedAt($createdAt) - { - $this->container['createdAt'] = $createdAt; - return $this; - } - /** - * Gets modifiedAt - * - * @return \DateTime - */ - public function getModifiedAt() - { - return $this->container['modifiedAt']; - } - /** - * Sets modifiedAt - * - * @param \DateTime $modifiedAt Last modification UTC date-time of the contact (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setModifiedAt($modifiedAt) - { - $this->container['modifiedAt'] = $modifiedAt; - return $this; - } - /** - * Gets listIds - * - * @return int[] - */ - public function getListIds() - { - return $this->container['listIds']; - } - /** - * Sets listIds - * - * @param int[] $listIds listIds - * - * @return $this - */ - public function setListIds($listIds) - { - $this->container['listIds'] = $listIds; - return $this; - } - /** - * Gets listUnsubscribed - * - * @return int[] - */ - public function getListUnsubscribed() - { - return $this->container['listUnsubscribed']; - } - /** - * Sets listUnsubscribed - * - * @param int[] $listUnsubscribed listUnsubscribed - * - * @return $this - */ - public function setListUnsubscribed($listUnsubscribed) - { - $this->container['listUnsubscribed'] = $listUnsubscribed; - return $this; - } - /** - * Gets attributes - * - * @return object - */ - public function getAttributes() - { - return $this->container['attributes']; - } - /** - * Sets attributes - * - * @param object $attributes Set of attributes of the contact - * - * @return $this - */ - public function setAttributes($attributes) - { - $this->container['attributes'] = $attributes; - return $this; - } - /** - * Gets statistics - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatistics - */ - public function getStatistics() - { - return $this->container['statistics']; - } - /** - * Sets statistics - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatistics $statistics statistics - * - * @return $this - */ - public function setStatistics($statistics) - { - $this->container['statistics'] = $statistics; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatistics.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatistics.php deleted file mode 100644 index fdf3d18..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatistics.php +++ /dev/null @@ -1,409 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsMessagesSent[]', 'hardBounces' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsMessagesSent[]', 'softBounces' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsMessagesSent[]', 'complaints' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsMessagesSent[]', 'unsubscriptions' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsUnsubscriptions', 'opened' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsOpened[]', 'clicked' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsClicked[]', 'transacAttributes' => 'object[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['messagesSent' => null, 'hardBounces' => null, 'softBounces' => null, 'complaints' => null, 'unsubscriptions' => null, 'opened' => null, 'clicked' => null, 'transacAttributes' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['messagesSent' => 'messagesSent', 'hardBounces' => 'hardBounces', 'softBounces' => 'softBounces', 'complaints' => 'complaints', 'unsubscriptions' => 'unsubscriptions', 'opened' => 'opened', 'clicked' => 'clicked', 'transacAttributes' => 'transacAttributes']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['messagesSent' => 'setMessagesSent', 'hardBounces' => 'setHardBounces', 'softBounces' => 'setSoftBounces', 'complaints' => 'setComplaints', 'unsubscriptions' => 'setUnsubscriptions', 'opened' => 'setOpened', 'clicked' => 'setClicked', 'transacAttributes' => 'setTransacAttributes']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['messagesSent' => 'getMessagesSent', 'hardBounces' => 'getHardBounces', 'softBounces' => 'getSoftBounces', 'complaints' => 'getComplaints', 'unsubscriptions' => 'getUnsubscriptions', 'opened' => 'getOpened', 'clicked' => 'getClicked', 'transacAttributes' => 'getTransacAttributes']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['messagesSent'] = isset($data['messagesSent']) ? $data['messagesSent'] : null; - $this->container['hardBounces'] = isset($data['hardBounces']) ? $data['hardBounces'] : null; - $this->container['softBounces'] = isset($data['softBounces']) ? $data['softBounces'] : null; - $this->container['complaints'] = isset($data['complaints']) ? $data['complaints'] : null; - $this->container['unsubscriptions'] = isset($data['unsubscriptions']) ? $data['unsubscriptions'] : null; - $this->container['opened'] = isset($data['opened']) ? $data['opened'] : null; - $this->container['clicked'] = isset($data['clicked']) ? $data['clicked'] : null; - $this->container['transacAttributes'] = isset($data['transacAttributes']) ? $data['transacAttributes'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets messagesSent - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] - */ - public function getMessagesSent() - { - return $this->container['messagesSent']; - } - /** - * Sets messagesSent - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] $messagesSent Listing of the sent campaign for the contact - * - * @return $this - */ - public function setMessagesSent($messagesSent) - { - $this->container['messagesSent'] = $messagesSent; - return $this; - } - /** - * Gets hardBounces - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] - */ - public function getHardBounces() - { - return $this->container['hardBounces']; - } - /** - * Sets hardBounces - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] $hardBounces Listing of the hardbounes generated by the contact - * - * @return $this - */ - public function setHardBounces($hardBounces) - { - $this->container['hardBounces'] = $hardBounces; - return $this; - } - /** - * Gets softBounces - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] - */ - public function getSoftBounces() - { - return $this->container['softBounces']; - } - /** - * Sets softBounces - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] $softBounces Listing of the softbounes generated by the contact - * - * @return $this - */ - public function setSoftBounces($softBounces) - { - $this->container['softBounces'] = $softBounces; - return $this; - } - /** - * Gets complaints - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] - */ - public function getComplaints() - { - return $this->container['complaints']; - } - /** - * Sets complaints - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsMessagesSent[] $complaints Listing of the complaints generated by the contact - * - * @return $this - */ - public function setComplaints($complaints) - { - $this->container['complaints'] = $complaints; - return $this; - } - /** - * Gets unsubscriptions - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsUnsubscriptions - */ - public function getUnsubscriptions() - { - return $this->container['unsubscriptions']; - } - /** - * Sets unsubscriptions - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsUnsubscriptions $unsubscriptions unsubscriptions - * - * @return $this - */ - public function setUnsubscriptions($unsubscriptions) - { - $this->container['unsubscriptions'] = $unsubscriptions; - return $this; - } - /** - * Gets opened - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsOpened[] - */ - public function getOpened() - { - return $this->container['opened']; - } - /** - * Sets opened - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsOpened[] $opened Listing of the openings generated by the contact - * - * @return $this - */ - public function setOpened($opened) - { - $this->container['opened'] = $opened; - return $this; - } - /** - * Gets clicked - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsClicked[] - */ - public function getClicked() - { - return $this->container['clicked']; - } - /** - * Sets clicked - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsClicked[] $clicked Listing of the clicks generated by the contact - * - * @return $this - */ - public function setClicked($clicked) - { - $this->container['clicked'] = $clicked; - return $this; - } - /** - * Gets transacAttributes - * - * @return object[] - */ - public function getTransacAttributes() - { - return $this->container['transacAttributes']; - } - /** - * Sets transacAttributes - * - * @param object[] $transacAttributes Listing of the transactional attributes for the contact - * - * @return $this - */ - public function setTransacAttributes($transacAttributes) - { - $this->container['transacAttributes'] = $transacAttributes; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsClicked.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsClicked.php deleted file mode 100644 index bf00ac2..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsClicked.php +++ /dev/null @@ -1,282 +0,0 @@ - 'int', 'links' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsLinks[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['campaignId' => 'int64', 'links' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['campaignId' => 'campaignId', 'links' => 'links']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['campaignId' => 'setCampaignId', 'links' => 'setLinks']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['campaignId' => 'getCampaignId', 'links' => 'getLinks']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['campaignId'] = isset($data['campaignId']) ? $data['campaignId'] : null; - $this->container['links'] = isset($data['links']) ? $data['links'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['campaignId'] === null) { - $invalidProperties[] = "'campaignId' can't be null"; - } - if ($this->container['links'] === null) { - $invalidProperties[] = "'links' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets campaignId - * - * @return int - */ - public function getCampaignId() - { - return $this->container['campaignId']; - } - /** - * Sets campaignId - * - * @param int $campaignId ID of the campaign which generated the event - * - * @return $this - */ - public function setCampaignId($campaignId) - { - $this->container['campaignId'] = $campaignId; - return $this; - } - /** - * Gets links - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsLinks[] - */ - public function getLinks() - { - return $this->container['links']; - } - /** - * Sets links - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsLinks[] $links Listing of the clicked links for the campaign - * - * @return $this - */ - public function setLinks($links) - { - $this->container['links'] = $links; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsLinks.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsLinks.php deleted file mode 100644 index 094aad9..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsLinks.php +++ /dev/null @@ -1,332 +0,0 @@ - 'int', 'eventTime' => '\\DateTime', 'ip' => 'string', 'url' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['count' => 'int64', 'eventTime' => 'date-time', 'ip' => null, 'url' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['count' => 'count', 'eventTime' => 'eventTime', 'ip' => 'ip', 'url' => 'url']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['count' => 'setCount', 'eventTime' => 'setEventTime', 'ip' => 'setIp', 'url' => 'setUrl']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['count' => 'getCount', 'eventTime' => 'getEventTime', 'ip' => 'getIp', 'url' => 'getUrl']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['count'] = isset($data['count']) ? $data['count'] : null; - $this->container['eventTime'] = isset($data['eventTime']) ? $data['eventTime'] : null; - $this->container['ip'] = isset($data['ip']) ? $data['ip'] : null; - $this->container['url'] = isset($data['url']) ? $data['url'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['count'] === null) { - $invalidProperties[] = "'count' can't be null"; - } - if ($this->container['eventTime'] === null) { - $invalidProperties[] = "'eventTime' can't be null"; - } - if ($this->container['ip'] === null) { - $invalidProperties[] = "'ip' can't be null"; - } - if ($this->container['url'] === null) { - $invalidProperties[] = "'url' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets count - * - * @return int - */ - public function getCount() - { - return $this->container['count']; - } - /** - * Sets count - * - * @param int $count Number of clicks on this link for the campaign - * - * @return $this - */ - public function setCount($count) - { - $this->container['count'] = $count; - return $this; - } - /** - * Gets eventTime - * - * @return \DateTime - */ - public function getEventTime() - { - return $this->container['eventTime']; - } - /** - * Sets eventTime - * - * @param \DateTime $eventTime UTC date-time of the event - * - * @return $this - */ - public function setEventTime($eventTime) - { - $this->container['eventTime'] = $eventTime; - return $this; - } - /** - * Gets ip - * - * @return string - */ - public function getIp() - { - return $this->container['ip']; - } - /** - * Sets ip - * - * @param string $ip IP from which the user has clicked on the link - * - * @return $this - */ - public function setIp($ip) - { - $this->container['ip'] = $ip; - return $this; - } - /** - * Gets url - * - * @return string - */ - public function getUrl() - { - return $this->container['url']; - } - /** - * Sets url - * - * @param string $url URL of the clicked link - * - * @return $this - */ - public function setUrl($url) - { - $this->container['url'] = $url; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsMessagesSent.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsMessagesSent.php deleted file mode 100644 index 6a35024..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsMessagesSent.php +++ /dev/null @@ -1,282 +0,0 @@ - 'int', 'eventTime' => '\\DateTime']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['campaignId' => 'int64', 'eventTime' => 'date-time']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['campaignId' => 'campaignId', 'eventTime' => 'eventTime']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['campaignId' => 'setCampaignId', 'eventTime' => 'setEventTime']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['campaignId' => 'getCampaignId', 'eventTime' => 'getEventTime']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['campaignId'] = isset($data['campaignId']) ? $data['campaignId'] : null; - $this->container['eventTime'] = isset($data['eventTime']) ? $data['eventTime'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['campaignId'] === null) { - $invalidProperties[] = "'campaignId' can't be null"; - } - if ($this->container['eventTime'] === null) { - $invalidProperties[] = "'eventTime' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets campaignId - * - * @return int - */ - public function getCampaignId() - { - return $this->container['campaignId']; - } - /** - * Sets campaignId - * - * @param int $campaignId ID of the campaign which generated the event - * - * @return $this - */ - public function setCampaignId($campaignId) - { - $this->container['campaignId'] = $campaignId; - return $this; - } - /** - * Gets eventTime - * - * @return \DateTime - */ - public function getEventTime() - { - return $this->container['eventTime']; - } - /** - * Sets eventTime - * - * @param \DateTime $eventTime UTC date-time of the event - * - * @return $this - */ - public function setEventTime($eventTime) - { - $this->container['eventTime'] = $eventTime; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsOpened.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsOpened.php deleted file mode 100644 index 0631411..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsOpened.php +++ /dev/null @@ -1,332 +0,0 @@ - 'int', 'count' => 'int', 'eventTime' => '\\DateTime', 'ip' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['campaignId' => 'int64', 'count' => 'int64', 'eventTime' => 'date-time', 'ip' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['campaignId' => 'campaignId', 'count' => 'count', 'eventTime' => 'eventTime', 'ip' => 'ip']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['campaignId' => 'setCampaignId', 'count' => 'setCount', 'eventTime' => 'setEventTime', 'ip' => 'setIp']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['campaignId' => 'getCampaignId', 'count' => 'getCount', 'eventTime' => 'getEventTime', 'ip' => 'getIp']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['campaignId'] = isset($data['campaignId']) ? $data['campaignId'] : null; - $this->container['count'] = isset($data['count']) ? $data['count'] : null; - $this->container['eventTime'] = isset($data['eventTime']) ? $data['eventTime'] : null; - $this->container['ip'] = isset($data['ip']) ? $data['ip'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['campaignId'] === null) { - $invalidProperties[] = "'campaignId' can't be null"; - } - if ($this->container['count'] === null) { - $invalidProperties[] = "'count' can't be null"; - } - if ($this->container['eventTime'] === null) { - $invalidProperties[] = "'eventTime' can't be null"; - } - if ($this->container['ip'] === null) { - $invalidProperties[] = "'ip' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets campaignId - * - * @return int - */ - public function getCampaignId() - { - return $this->container['campaignId']; - } - /** - * Sets campaignId - * - * @param int $campaignId ID of the campaign which generated the event - * - * @return $this - */ - public function setCampaignId($campaignId) - { - $this->container['campaignId'] = $campaignId; - return $this; - } - /** - * Gets count - * - * @return int - */ - public function getCount() - { - return $this->container['count']; - } - /** - * Sets count - * - * @param int $count Number of openings for the campaign - * - * @return $this - */ - public function setCount($count) - { - $this->container['count'] = $count; - return $this; - } - /** - * Gets eventTime - * - * @return \DateTime - */ - public function getEventTime() - { - return $this->container['eventTime']; - } - /** - * Sets eventTime - * - * @param \DateTime $eventTime UTC date-time of the event - * - * @return $this - */ - public function setEventTime($eventTime) - { - $this->container['eventTime'] = $eventTime; - return $this; - } - /** - * Gets ip - * - * @return string - */ - public function getIp() - { - return $this->container['ip']; - } - /** - * Sets ip - * - * @param string $ip IP from which the user has opened the email - * - * @return $this - */ - public function setIp($ip) - { - $this->container['ip'] = $ip; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptions.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptions.php deleted file mode 100644 index 372ee8d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptions.php +++ /dev/null @@ -1,283 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription[]', 'adminUnsubscription' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['userUnsubscription' => null, 'adminUnsubscription' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['userUnsubscription' => 'userUnsubscription', 'adminUnsubscription' => 'adminUnsubscription']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['userUnsubscription' => 'setUserUnsubscription', 'adminUnsubscription' => 'setAdminUnsubscription']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['userUnsubscription' => 'getUserUnsubscription', 'adminUnsubscription' => 'getAdminUnsubscription']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['userUnsubscription'] = isset($data['userUnsubscription']) ? $data['userUnsubscription'] : null; - $this->container['adminUnsubscription'] = isset($data['adminUnsubscription']) ? $data['adminUnsubscription'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['userUnsubscription'] === null) { - $invalidProperties[] = "'userUnsubscription' can't be null"; - } - if ($this->container['adminUnsubscription'] === null) { - $invalidProperties[] = "'adminUnsubscription' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets userUnsubscription - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription[] - */ - public function getUserUnsubscription() - { - return $this->container['userUnsubscription']; - } - /** - * Sets userUnsubscription - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription[] $userUnsubscription Contact unsubscribe via unsubscription link in a campaign - * - * @return $this - */ - public function setUserUnsubscription($userUnsubscription) - { - $this->container['userUnsubscription'] = $userUnsubscription; - return $this; - } - /** - * Gets adminUnsubscription - * - * @return \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription[] - */ - public function getAdminUnsubscription() - { - return $this->container['adminUnsubscription']; - } - /** - * Sets adminUnsubscription - * - * @param \SendinBlue\Client\Model\GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription[] $adminUnsubscription Contact has been unsubscribed from the administrator - * - * @return $this - */ - public function setAdminUnsubscription($adminUnsubscription) - { - $this->container['adminUnsubscription'] = $adminUnsubscription; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription.php deleted file mode 100644 index 61a1607..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription.php +++ /dev/null @@ -1,282 +0,0 @@ - '\\DateTime', 'ip' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['eventTime' => 'date-time', 'ip' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['eventTime' => 'eventTime', 'ip' => 'ip']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['eventTime' => 'setEventTime', 'ip' => 'setIp']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['eventTime' => 'getEventTime', 'ip' => 'getIp']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['eventTime'] = isset($data['eventTime']) ? $data['eventTime'] : null; - $this->container['ip'] = isset($data['ip']) ? $data['ip'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['eventTime'] === null) { - $invalidProperties[] = "'eventTime' can't be null"; - } - if ($this->container['ip'] === null) { - $invalidProperties[] = "'ip' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets eventTime - * - * @return \DateTime - */ - public function getEventTime() - { - return $this->container['eventTime']; - } - /** - * Sets eventTime - * - * @param \DateTime $eventTime UTC date-time of the event - * - * @return $this - */ - public function setEventTime($eventTime) - { - $this->container['eventTime'] = $eventTime; - return $this; - } - /** - * Gets ip - * - * @return string - */ - public function getIp() - { - return $this->container['ip']; - } - /** - * Sets ip - * - * @param string $ip IP from which the user has been unsubscribed - * - * @return $this - */ - public function setIp($ip) - { - $this->container['ip'] = $ip; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription.php deleted file mode 100644 index b86645b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription.php +++ /dev/null @@ -1,307 +0,0 @@ - 'int', 'eventTime' => '\\DateTime', 'ip' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['campaignId' => 'int64', 'eventTime' => 'date-time', 'ip' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['campaignId' => 'campaignId', 'eventTime' => 'eventTime', 'ip' => 'ip']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['campaignId' => 'setCampaignId', 'eventTime' => 'setEventTime', 'ip' => 'setIp']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['campaignId' => 'getCampaignId', 'eventTime' => 'getEventTime', 'ip' => 'getIp']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['campaignId'] = isset($data['campaignId']) ? $data['campaignId'] : null; - $this->container['eventTime'] = isset($data['eventTime']) ? $data['eventTime'] : null; - $this->container['ip'] = isset($data['ip']) ? $data['ip'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['campaignId'] === null) { - $invalidProperties[] = "'campaignId' can't be null"; - } - if ($this->container['eventTime'] === null) { - $invalidProperties[] = "'eventTime' can't be null"; - } - if ($this->container['ip'] === null) { - $invalidProperties[] = "'ip' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets campaignId - * - * @return int - */ - public function getCampaignId() - { - return $this->container['campaignId']; - } - /** - * Sets campaignId - * - * @param int $campaignId ID of the campaign which generated the event - * - * @return $this - */ - public function setCampaignId($campaignId) - { - $this->container['campaignId'] = $campaignId; - return $this; - } - /** - * Gets eventTime - * - * @return \DateTime - */ - public function getEventTime() - { - return $this->container['eventTime']; - } - /** - * Sets eventTime - * - * @param \DateTime $eventTime UTC date-time of the event - * - * @return $this - */ - public function setEventTime($eventTime) - { - $this->container['eventTime'] = $eventTime; - return $this; - } - /** - * Gets ip - * - * @return string - */ - public function getIp() - { - return $this->container['ip']; - } - /** - * Sets ip - * - * @param string $ip IP from which the user has unsubscribed - * - * @return $this - */ - public function setIp($ip) - { - $this->container['ip'] = $ip; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedList.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedList.php deleted file mode 100644 index 455fe3c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedList.php +++ /dev/null @@ -1,426 +0,0 @@ - 'int', 'name' => 'string', 'totalBlacklisted' => 'int', 'totalSubscribers' => 'int', 'folderId' => 'int', 'createdAt' => '\\DateTime', 'campaignStats' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetExtendedListCampaignStats[]', 'dynamicList' => 'bool']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64', 'name' => null, 'totalBlacklisted' => 'int64', 'totalSubscribers' => 'int64', 'folderId' => 'int64', 'createdAt' => 'date-time', 'campaignStats' => null, 'dynamicList' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id', 'name' => 'name', 'totalBlacklisted' => 'totalBlacklisted', 'totalSubscribers' => 'totalSubscribers', 'folderId' => 'folderId', 'createdAt' => 'createdAt', 'campaignStats' => 'campaignStats', 'dynamicList' => 'dynamicList']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId', 'name' => 'setName', 'totalBlacklisted' => 'setTotalBlacklisted', 'totalSubscribers' => 'setTotalSubscribers', 'folderId' => 'setFolderId', 'createdAt' => 'setCreatedAt', 'campaignStats' => 'setCampaignStats', 'dynamicList' => 'setDynamicList']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId', 'name' => 'getName', 'totalBlacklisted' => 'getTotalBlacklisted', 'totalSubscribers' => 'getTotalSubscribers', 'folderId' => 'getFolderId', 'createdAt' => 'getCreatedAt', 'campaignStats' => 'getCampaignStats', 'dynamicList' => 'getDynamicList']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['totalBlacklisted'] = isset($data['totalBlacklisted']) ? $data['totalBlacklisted'] : null; - $this->container['totalSubscribers'] = isset($data['totalSubscribers']) ? $data['totalSubscribers'] : null; - $this->container['folderId'] = isset($data['folderId']) ? $data['folderId'] : null; - $this->container['createdAt'] = isset($data['createdAt']) ? $data['createdAt'] : null; - $this->container['campaignStats'] = isset($data['campaignStats']) ? $data['campaignStats'] : null; - $this->container['dynamicList'] = isset($data['dynamicList']) ? $data['dynamicList'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['totalBlacklisted'] === null) { - $invalidProperties[] = "'totalBlacklisted' can't be null"; - } - if ($this->container['totalSubscribers'] === null) { - $invalidProperties[] = "'totalSubscribers' can't be null"; - } - if ($this->container['folderId'] === null) { - $invalidProperties[] = "'folderId' can't be null"; - } - if ($this->container['createdAt'] === null) { - $invalidProperties[] = "'createdAt' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the list - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the list - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets totalBlacklisted - * - * @return int - */ - public function getTotalBlacklisted() - { - return $this->container['totalBlacklisted']; - } - /** - * Sets totalBlacklisted - * - * @param int $totalBlacklisted Number of blacklisted contacts in the list - * - * @return $this - */ - public function setTotalBlacklisted($totalBlacklisted) - { - $this->container['totalBlacklisted'] = $totalBlacklisted; - return $this; - } - /** - * Gets totalSubscribers - * - * @return int - */ - public function getTotalSubscribers() - { - return $this->container['totalSubscribers']; - } - /** - * Sets totalSubscribers - * - * @param int $totalSubscribers Number of contacts in the list - * - * @return $this - */ - public function setTotalSubscribers($totalSubscribers) - { - $this->container['totalSubscribers'] = $totalSubscribers; - return $this; - } - /** - * Gets folderId - * - * @return int - */ - public function getFolderId() - { - return $this->container['folderId']; - } - /** - * Sets folderId - * - * @param int $folderId ID of the folder - * - * @return $this - */ - public function setFolderId($folderId) - { - $this->container['folderId'] = $folderId; - return $this; - } - /** - * Gets createdAt - * - * @return \DateTime - */ - public function getCreatedAt() - { - return $this->container['createdAt']; - } - /** - * Sets createdAt - * - * @param \DateTime $createdAt Creation UTC date-time of the list (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setCreatedAt($createdAt) - { - $this->container['createdAt'] = $createdAt; - return $this; - } - /** - * Gets campaignStats - * - * @return \SendinBlue\Client\Model\GetExtendedListCampaignStats[] - */ - public function getCampaignStats() - { - return $this->container['campaignStats']; - } - /** - * Sets campaignStats - * - * @param \SendinBlue\Client\Model\GetExtendedListCampaignStats[] $campaignStats campaignStats - * - * @return $this - */ - public function setCampaignStats($campaignStats) - { - $this->container['campaignStats'] = $campaignStats; - return $this; - } - /** - * Gets dynamicList - * - * @return bool - */ - public function getDynamicList() - { - return $this->container['dynamicList']; - } - /** - * Sets dynamicList - * - * @param bool $dynamicList Status telling if the list is dynamic or not (true=dynamic, false=not dynamic) - * - * @return $this - */ - public function setDynamicList($dynamicList) - { - $this->container['dynamicList'] = $dynamicList; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedListCampaignStats.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedListCampaignStats.php deleted file mode 100644 index 81e8585..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetExtendedListCampaignStats.php +++ /dev/null @@ -1,282 +0,0 @@ - 'int', 'stats' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetCampaignStats']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['campaignId' => 'int64', 'stats' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['campaignId' => 'campaignId', 'stats' => 'stats']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['campaignId' => 'setCampaignId', 'stats' => 'setStats']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['campaignId' => 'getCampaignId', 'stats' => 'getStats']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['campaignId'] = isset($data['campaignId']) ? $data['campaignId'] : null; - $this->container['stats'] = isset($data['stats']) ? $data['stats'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['campaignId'] === null) { - $invalidProperties[] = "'campaignId' can't be null"; - } - if ($this->container['stats'] === null) { - $invalidProperties[] = "'stats' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets campaignId - * - * @return int - */ - public function getCampaignId() - { - return $this->container['campaignId']; - } - /** - * Sets campaignId - * - * @param int $campaignId ID of the campaign - * - * @return $this - */ - public function setCampaignId($campaignId) - { - $this->container['campaignId'] = $campaignId; - return $this; - } - /** - * Gets stats - * - * @return \SendinBlue\Client\Model\GetCampaignStats - */ - public function getStats() - { - return $this->container['stats']; - } - /** - * Sets stats - * - * @param \SendinBlue\Client\Model\GetCampaignStats $stats stats - * - * @return $this - */ - public function setStats($stats) - { - $this->container['stats'] = $stats; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolder.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolder.php deleted file mode 100644 index 4bbf49a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolder.php +++ /dev/null @@ -1,357 +0,0 @@ - 'int', 'name' => 'string', 'totalBlacklisted' => 'int', 'totalSubscribers' => 'int', 'uniqueSubscribers' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64', 'name' => null, 'totalBlacklisted' => 'int64', 'totalSubscribers' => 'int64', 'uniqueSubscribers' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id', 'name' => 'name', 'totalBlacklisted' => 'totalBlacklisted', 'totalSubscribers' => 'totalSubscribers', 'uniqueSubscribers' => 'uniqueSubscribers']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId', 'name' => 'setName', 'totalBlacklisted' => 'setTotalBlacklisted', 'totalSubscribers' => 'setTotalSubscribers', 'uniqueSubscribers' => 'setUniqueSubscribers']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId', 'name' => 'getName', 'totalBlacklisted' => 'getTotalBlacklisted', 'totalSubscribers' => 'getTotalSubscribers', 'uniqueSubscribers' => 'getUniqueSubscribers']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['totalBlacklisted'] = isset($data['totalBlacklisted']) ? $data['totalBlacklisted'] : null; - $this->container['totalSubscribers'] = isset($data['totalSubscribers']) ? $data['totalSubscribers'] : null; - $this->container['uniqueSubscribers'] = isset($data['uniqueSubscribers']) ? $data['uniqueSubscribers'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['totalBlacklisted'] === null) { - $invalidProperties[] = "'totalBlacklisted' can't be null"; - } - if ($this->container['totalSubscribers'] === null) { - $invalidProperties[] = "'totalSubscribers' can't be null"; - } - if ($this->container['uniqueSubscribers'] === null) { - $invalidProperties[] = "'uniqueSubscribers' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the folder - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the folder - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets totalBlacklisted - * - * @return int - */ - public function getTotalBlacklisted() - { - return $this->container['totalBlacklisted']; - } - /** - * Sets totalBlacklisted - * - * @param int $totalBlacklisted Number of blacklisted contacts in the folder - * - * @return $this - */ - public function setTotalBlacklisted($totalBlacklisted) - { - $this->container['totalBlacklisted'] = $totalBlacklisted; - return $this; - } - /** - * Gets totalSubscribers - * - * @return int - */ - public function getTotalSubscribers() - { - return $this->container['totalSubscribers']; - } - /** - * Sets totalSubscribers - * - * @param int $totalSubscribers Number of contacts in the folder - * - * @return $this - */ - public function setTotalSubscribers($totalSubscribers) - { - $this->container['totalSubscribers'] = $totalSubscribers; - return $this; - } - /** - * Gets uniqueSubscribers - * - * @return int - */ - public function getUniqueSubscribers() - { - return $this->container['uniqueSubscribers']; - } - /** - * Sets uniqueSubscribers - * - * @param int $uniqueSubscribers Number of unique contacts in the folder - * - * @return $this - */ - public function setUniqueSubscribers($uniqueSubscribers) - { - $this->container['uniqueSubscribers'] = $uniqueSubscribers; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolderLists.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolderLists.php deleted file mode 100644 index 3da97da..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolderLists.php +++ /dev/null @@ -1,282 +0,0 @@ - 'object[]', 'count' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['lists' => null, 'count' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['lists' => 'lists', 'count' => 'count']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['lists' => 'setLists', 'count' => 'setCount']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['lists' => 'getLists', 'count' => 'getCount']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['lists'] = isset($data['lists']) ? $data['lists'] : null; - $this->container['count'] = isset($data['count']) ? $data['count'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['lists'] === null) { - $invalidProperties[] = "'lists' can't be null"; - } - if ($this->container['count'] === null) { - $invalidProperties[] = "'count' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets lists - * - * @return object[] - */ - public function getLists() - { - return $this->container['lists']; - } - /** - * Sets lists - * - * @param object[] $lists lists - * - * @return $this - */ - public function setLists($lists) - { - $this->container['lists'] = $lists; - return $this; - } - /** - * Gets count - * - * @return int - */ - public function getCount() - { - return $this->container['count']; - } - /** - * Sets count - * - * @param int $count Number of lists in the folder - * - * @return $this - */ - public function setCount($count) - { - $this->container['count'] = $count; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolders.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolders.php deleted file mode 100644 index a8fd461..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetFolders.php +++ /dev/null @@ -1,276 +0,0 @@ - 'object[]', 'count' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['folders' => null, 'count' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['folders' => 'folders', 'count' => 'count']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['folders' => 'setFolders', 'count' => 'setCount']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['folders' => 'getFolders', 'count' => 'getCount']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['folders'] = isset($data['folders']) ? $data['folders'] : null; - $this->container['count'] = isset($data['count']) ? $data['count'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets folders - * - * @return object[] - */ - public function getFolders() - { - return $this->container['folders']; - } - /** - * Sets folders - * - * @param object[] $folders folders - * - * @return $this - */ - public function setFolders($folders) - { - $this->container['folders'] = $folders; - return $this; - } - /** - * Gets count - * - * @return int - */ - public function getCount() - { - return $this->container['count']; - } - /** - * Sets count - * - * @param int $count Number of folders available in your account - * - * @return $this - */ - public function setCount($count) - { - $this->container['count'] = $count; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIp.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIp.php deleted file mode 100644 index b3ca7fb..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIp.php +++ /dev/null @@ -1,332 +0,0 @@ - 'int', 'ip' => 'string', 'active' => 'bool', 'domain' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64', 'ip' => null, 'active' => null, 'domain' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id', 'ip' => 'ip', 'active' => 'active', 'domain' => 'domain']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId', 'ip' => 'setIp', 'active' => 'setActive', 'domain' => 'setDomain']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId', 'ip' => 'getIp', 'active' => 'getActive', 'domain' => 'getDomain']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['ip'] = isset($data['ip']) ? $data['ip'] : null; - $this->container['active'] = isset($data['active']) ? $data['active'] : null; - $this->container['domain'] = isset($data['domain']) ? $data['domain'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['ip'] === null) { - $invalidProperties[] = "'ip' can't be null"; - } - if ($this->container['active'] === null) { - $invalidProperties[] = "'active' can't be null"; - } - if ($this->container['domain'] === null) { - $invalidProperties[] = "'domain' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the dedicated IP - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets ip - * - * @return string - */ - public function getIp() - { - return $this->container['ip']; - } - /** - * Sets ip - * - * @param string $ip Dedicated IP - * - * @return $this - */ - public function setIp($ip) - { - $this->container['ip'] = $ip; - return $this; - } - /** - * Gets active - * - * @return bool - */ - public function getActive() - { - return $this->container['active']; - } - /** - * Sets active - * - * @param bool $active Status of the IP (true=active, false=inactive) - * - * @return $this - */ - public function setActive($active) - { - $this->container['active'] = $active; - return $this; - } - /** - * Gets domain - * - * @return string - */ - public function getDomain() - { - return $this->container['domain']; - } - /** - * Sets domain - * - * @param string $domain Domain associated to the IP - * - * @return $this - */ - public function setDomain($domain) - { - $this->container['domain'] = $domain; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIpFromSender.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIpFromSender.php deleted file mode 100644 index 22dc303..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIpFromSender.php +++ /dev/null @@ -1,332 +0,0 @@ - 'int', 'ip' => 'string', 'domain' => 'string', 'weight' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64', 'ip' => null, 'domain' => null, 'weight' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id', 'ip' => 'ip', 'domain' => 'domain', 'weight' => 'weight']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId', 'ip' => 'setIp', 'domain' => 'setDomain', 'weight' => 'setWeight']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId', 'ip' => 'getIp', 'domain' => 'getDomain', 'weight' => 'getWeight']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['ip'] = isset($data['ip']) ? $data['ip'] : null; - $this->container['domain'] = isset($data['domain']) ? $data['domain'] : null; - $this->container['weight'] = isset($data['weight']) ? $data['weight'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['ip'] === null) { - $invalidProperties[] = "'ip' can't be null"; - } - if ($this->container['domain'] === null) { - $invalidProperties[] = "'domain' can't be null"; - } - if ($this->container['weight'] === null) { - $invalidProperties[] = "'weight' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the dedicated IP - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets ip - * - * @return string - */ - public function getIp() - { - return $this->container['ip']; - } - /** - * Sets ip - * - * @param string $ip Dedicated IP - * - * @return $this - */ - public function setIp($ip) - { - $this->container['ip'] = $ip; - return $this; - } - /** - * Gets domain - * - * @return string - */ - public function getDomain() - { - return $this->container['domain']; - } - /** - * Sets domain - * - * @param string $domain Domain associated to the IP - * - * @return $this - */ - public function setDomain($domain) - { - $this->container['domain'] = $domain; - return $this; - } - /** - * Gets weight - * - * @return int - */ - public function getWeight() - { - return $this->container['weight']; - } - /** - * Sets weight - * - * @param int $weight Weight of the IP - * - * @return $this - */ - public function setWeight($weight) - { - $this->container['weight'] = $weight; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIps.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIps.php deleted file mode 100644 index b56e79a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIps.php +++ /dev/null @@ -1,257 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIp[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['ips' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['ips' => 'ips']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['ips' => 'setIps']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['ips' => 'getIps']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['ips'] = isset($data['ips']) ? $data['ips'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['ips'] === null) { - $invalidProperties[] = "'ips' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets ips - * - * @return \SendinBlue\Client\Model\GetIp[] - */ - public function getIps() - { - return $this->container['ips']; - } - /** - * Sets ips - * - * @param \SendinBlue\Client\Model\GetIp[] $ips Dedicated IP(s) available on your account - * - * @return $this - */ - public function setIps($ips) - { - $this->container['ips'] = $ips; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIpsFromSender.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIpsFromSender.php deleted file mode 100644 index 8677593..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetIpsFromSender.php +++ /dev/null @@ -1,257 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetIpFromSender[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['ips' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['ips' => 'ips']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['ips' => 'setIps']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['ips' => 'getIps']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['ips'] = isset($data['ips']) ? $data['ips'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['ips'] === null) { - $invalidProperties[] = "'ips' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets ips - * - * @return \SendinBlue\Client\Model\GetIpFromSender[] - */ - public function getIps() - { - return $this->container['ips']; - } - /** - * Sets ips - * - * @param \SendinBlue\Client\Model\GetIpFromSender[] $ips Dedicated IP(s) linked to a sender - * - * @return $this - */ - public function setIps($ips) - { - $this->container['ips'] = $ips; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetList.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetList.php deleted file mode 100644 index c0aebcd..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetList.php +++ /dev/null @@ -1,332 +0,0 @@ - 'int', 'name' => 'string', 'totalBlacklisted' => 'int', 'totalSubscribers' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64', 'name' => null, 'totalBlacklisted' => 'int64', 'totalSubscribers' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id', 'name' => 'name', 'totalBlacklisted' => 'totalBlacklisted', 'totalSubscribers' => 'totalSubscribers']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId', 'name' => 'setName', 'totalBlacklisted' => 'setTotalBlacklisted', 'totalSubscribers' => 'setTotalSubscribers']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId', 'name' => 'getName', 'totalBlacklisted' => 'getTotalBlacklisted', 'totalSubscribers' => 'getTotalSubscribers']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['totalBlacklisted'] = isset($data['totalBlacklisted']) ? $data['totalBlacklisted'] : null; - $this->container['totalSubscribers'] = isset($data['totalSubscribers']) ? $data['totalSubscribers'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['totalBlacklisted'] === null) { - $invalidProperties[] = "'totalBlacklisted' can't be null"; - } - if ($this->container['totalSubscribers'] === null) { - $invalidProperties[] = "'totalSubscribers' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the list - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the list - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets totalBlacklisted - * - * @return int - */ - public function getTotalBlacklisted() - { - return $this->container['totalBlacklisted']; - } - /** - * Sets totalBlacklisted - * - * @param int $totalBlacklisted Number of blacklisted contacts in the list - * - * @return $this - */ - public function setTotalBlacklisted($totalBlacklisted) - { - $this->container['totalBlacklisted'] = $totalBlacklisted; - return $this; - } - /** - * Gets totalSubscribers - * - * @return int - */ - public function getTotalSubscribers() - { - return $this->container['totalSubscribers']; - } - /** - * Sets totalSubscribers - * - * @param int $totalSubscribers Number of contacts in the list - * - * @return $this - */ - public function setTotalSubscribers($totalSubscribers) - { - $this->container['totalSubscribers'] = $totalSubscribers; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetLists.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetLists.php deleted file mode 100644 index 2f70402..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetLists.php +++ /dev/null @@ -1,282 +0,0 @@ - 'object[]', 'count' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['lists' => null, 'count' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['lists' => 'lists', 'count' => 'count']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['lists' => 'setLists', 'count' => 'setCount']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['lists' => 'getLists', 'count' => 'getCount']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['lists'] = isset($data['lists']) ? $data['lists'] : null; - $this->container['count'] = isset($data['count']) ? $data['count'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['lists'] === null) { - $invalidProperties[] = "'lists' can't be null"; - } - if ($this->container['count'] === null) { - $invalidProperties[] = "'count' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets lists - * - * @return object[] - */ - public function getLists() - { - return $this->container['lists']; - } - /** - * Sets lists - * - * @param object[] $lists Listing of all the lists available in your account - * - * @return $this - */ - public function setLists($lists) - { - $this->container['lists'] = $lists; - return $this; - } - /** - * Gets count - * - * @return int - */ - public function getCount() - { - return $this->container['count']; - } - /** - * Sets count - * - * @param int $count Number of lists in your account - * - * @return $this - */ - public function setCount($count) - { - $this->container['count'] = $count; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetProcess.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetProcess.php deleted file mode 100644 index 8f76712..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetProcess.php +++ /dev/null @@ -1,349 +0,0 @@ - 'int', 'status' => 'string', 'name' => 'string', 'exportUrl' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64', 'status' => null, 'name' => null, 'exportUrl' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id', 'status' => 'status', 'name' => 'name', 'exportUrl' => 'export_url']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId', 'status' => 'setStatus', 'name' => 'setName', 'exportUrl' => 'setExportUrl']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId', 'status' => 'getStatus', 'name' => 'getName', 'exportUrl' => 'getExportUrl']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const STATUS_QUEUED = 'queued'; - const STATUS_IN_PROCESS = 'in_process'; - const STATUS_COMPLETED = 'completed'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getStatusAllowableValues() - { - return [self::STATUS_QUEUED, self::STATUS_IN_PROCESS, self::STATUS_COMPLETED]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['status'] = isset($data['status']) ? $data['status'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['exportUrl'] = isset($data['exportUrl']) ? $data['exportUrl'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['status'] === null) { - $invalidProperties[] = "'status' can't be null"; - } - $allowedValues = $this->getStatusAllowableValues(); - if (!\is_null($this->container['status']) && !\in_array($this->container['status'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'status', must be one of '%s'", \implode("', '", $allowedValues)); - } - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id Id of the process - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets status - * - * @return string - */ - public function getStatus() - { - return $this->container['status']; - } - /** - * Sets status - * - * @param string $status Status of the process - * - * @return $this - */ - public function setStatus($status) - { - $allowedValues = $this->getStatusAllowableValues(); - if (!\in_array($status, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'status', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['status'] = $status; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Process name - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets exportUrl - * - * @return string - */ - public function getExportUrl() - { - return $this->container['exportUrl']; - } - /** - * Sets exportUrl - * - * @param string $exportUrl URL on which send export the of contacts once the process is completed - * - * @return $this - */ - public function setExportUrl($exportUrl) - { - $this->container['exportUrl'] = $exportUrl; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetProcesses.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetProcesses.php deleted file mode 100644 index d2976c7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetProcesses.php +++ /dev/null @@ -1,279 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetProcess[]', 'count' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['processes' => null, 'count' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['processes' => 'processes', 'count' => 'count']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['processes' => 'setProcesses', 'count' => 'setCount']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['processes' => 'getProcesses', 'count' => 'getCount']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['processes'] = isset($data['processes']) ? $data['processes'] : null; - $this->container['count'] = isset($data['count']) ? $data['count'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['count'] === null) { - $invalidProperties[] = "'count' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets processes - * - * @return \SendinBlue\Client\Model\GetProcess[] - */ - public function getProcesses() - { - return $this->container['processes']; - } - /** - * Sets processes - * - * @param \SendinBlue\Client\Model\GetProcess[] $processes List of processes available on your account - * - * @return $this - */ - public function setProcesses($processes) - { - $this->container['processes'] = $processes; - return $this; - } - /** - * Gets count - * - * @return int - */ - public function getCount() - { - return $this->container['count']; - } - /** - * Sets count - * - * @param int $count Number of processes available on your account - * - * @return $this - */ - public function setCount($count) - { - $this->container['count'] = $count; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetReports.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetReports.php deleted file mode 100644 index ce2c591..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetReports.php +++ /dev/null @@ -1,254 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetReportsReports[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['reports' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['reports' => 'reports']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['reports' => 'setReports']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['reports' => 'getReports']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['reports'] = isset($data['reports']) ? $data['reports'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets reports - * - * @return \SendinBlue\Client\Model\GetReportsReports[] - */ - public function getReports() - { - return $this->container['reports']; - } - /** - * Sets reports - * - * @param \SendinBlue\Client\Model\GetReportsReports[] $reports reports - * - * @return $this - */ - public function setReports($reports) - { - $this->container['reports'] = $reports; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetReportsReports.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetReportsReports.php deleted file mode 100644 index 6bcc338..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetReportsReports.php +++ /dev/null @@ -1,557 +0,0 @@ - '\\DateTime', 'requests' => 'int', 'delivered' => 'int', 'hardBounces' => 'int', 'softBounces' => 'int', 'clicks' => 'int', 'uniqueClicks' => 'int', 'opens' => 'int', 'uniqueOpens' => 'int', 'spamReports' => 'int', 'blocked' => 'int', 'invalid' => 'int', 'unsubscribed' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['date' => 'date', 'requests' => 'int64', 'delivered' => 'int64', 'hardBounces' => 'int64', 'softBounces' => 'int64', 'clicks' => 'int64', 'uniqueClicks' => 'int64', 'opens' => 'int64', 'uniqueOpens' => 'int64', 'spamReports' => 'int64', 'blocked' => 'int64', 'invalid' => 'int64', 'unsubscribed' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['date' => 'date', 'requests' => 'requests', 'delivered' => 'delivered', 'hardBounces' => 'hardBounces', 'softBounces' => 'softBounces', 'clicks' => 'clicks', 'uniqueClicks' => 'uniqueClicks', 'opens' => 'opens', 'uniqueOpens' => 'uniqueOpens', 'spamReports' => 'spamReports', 'blocked' => 'blocked', 'invalid' => 'invalid', 'unsubscribed' => 'unsubscribed']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['date' => 'setDate', 'requests' => 'setRequests', 'delivered' => 'setDelivered', 'hardBounces' => 'setHardBounces', 'softBounces' => 'setSoftBounces', 'clicks' => 'setClicks', 'uniqueClicks' => 'setUniqueClicks', 'opens' => 'setOpens', 'uniqueOpens' => 'setUniqueOpens', 'spamReports' => 'setSpamReports', 'blocked' => 'setBlocked', 'invalid' => 'setInvalid', 'unsubscribed' => 'setUnsubscribed']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['date' => 'getDate', 'requests' => 'getRequests', 'delivered' => 'getDelivered', 'hardBounces' => 'getHardBounces', 'softBounces' => 'getSoftBounces', 'clicks' => 'getClicks', 'uniqueClicks' => 'getUniqueClicks', 'opens' => 'getOpens', 'uniqueOpens' => 'getUniqueOpens', 'spamReports' => 'getSpamReports', 'blocked' => 'getBlocked', 'invalid' => 'getInvalid', 'unsubscribed' => 'getUnsubscribed']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['date'] = isset($data['date']) ? $data['date'] : null; - $this->container['requests'] = isset($data['requests']) ? $data['requests'] : null; - $this->container['delivered'] = isset($data['delivered']) ? $data['delivered'] : null; - $this->container['hardBounces'] = isset($data['hardBounces']) ? $data['hardBounces'] : null; - $this->container['softBounces'] = isset($data['softBounces']) ? $data['softBounces'] : null; - $this->container['clicks'] = isset($data['clicks']) ? $data['clicks'] : null; - $this->container['uniqueClicks'] = isset($data['uniqueClicks']) ? $data['uniqueClicks'] : null; - $this->container['opens'] = isset($data['opens']) ? $data['opens'] : null; - $this->container['uniqueOpens'] = isset($data['uniqueOpens']) ? $data['uniqueOpens'] : null; - $this->container['spamReports'] = isset($data['spamReports']) ? $data['spamReports'] : null; - $this->container['blocked'] = isset($data['blocked']) ? $data['blocked'] : null; - $this->container['invalid'] = isset($data['invalid']) ? $data['invalid'] : null; - $this->container['unsubscribed'] = isset($data['unsubscribed']) ? $data['unsubscribed'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['date'] === null) { - $invalidProperties[] = "'date' can't be null"; - } - if ($this->container['requests'] === null) { - $invalidProperties[] = "'requests' can't be null"; - } - if ($this->container['delivered'] === null) { - $invalidProperties[] = "'delivered' can't be null"; - } - if ($this->container['hardBounces'] === null) { - $invalidProperties[] = "'hardBounces' can't be null"; - } - if ($this->container['softBounces'] === null) { - $invalidProperties[] = "'softBounces' can't be null"; - } - if ($this->container['clicks'] === null) { - $invalidProperties[] = "'clicks' can't be null"; - } - if ($this->container['uniqueClicks'] === null) { - $invalidProperties[] = "'uniqueClicks' can't be null"; - } - if ($this->container['opens'] === null) { - $invalidProperties[] = "'opens' can't be null"; - } - if ($this->container['uniqueOpens'] === null) { - $invalidProperties[] = "'uniqueOpens' can't be null"; - } - if ($this->container['spamReports'] === null) { - $invalidProperties[] = "'spamReports' can't be null"; - } - if ($this->container['blocked'] === null) { - $invalidProperties[] = "'blocked' can't be null"; - } - if ($this->container['invalid'] === null) { - $invalidProperties[] = "'invalid' can't be null"; - } - if ($this->container['unsubscribed'] === null) { - $invalidProperties[] = "'unsubscribed' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets date - * - * @return \DateTime - */ - public function getDate() - { - return $this->container['date']; - } - /** - * Sets date - * - * @param \DateTime $date Date of the statistics - * - * @return $this - */ - public function setDate($date) - { - $this->container['date'] = $date; - return $this; - } - /** - * Gets requests - * - * @return int - */ - public function getRequests() - { - return $this->container['requests']; - } - /** - * Sets requests - * - * @param int $requests Number of requests for the date - * - * @return $this - */ - public function setRequests($requests) - { - $this->container['requests'] = $requests; - return $this; - } - /** - * Gets delivered - * - * @return int - */ - public function getDelivered() - { - return $this->container['delivered']; - } - /** - * Sets delivered - * - * @param int $delivered Number of delivered emails for the date - * - * @return $this - */ - public function setDelivered($delivered) - { - $this->container['delivered'] = $delivered; - return $this; - } - /** - * Gets hardBounces - * - * @return int - */ - public function getHardBounces() - { - return $this->container['hardBounces']; - } - /** - * Sets hardBounces - * - * @param int $hardBounces Number of hardbounces for the date - * - * @return $this - */ - public function setHardBounces($hardBounces) - { - $this->container['hardBounces'] = $hardBounces; - return $this; - } - /** - * Gets softBounces - * - * @return int - */ - public function getSoftBounces() - { - return $this->container['softBounces']; - } - /** - * Sets softBounces - * - * @param int $softBounces Number of softbounces for the date - * - * @return $this - */ - public function setSoftBounces($softBounces) - { - $this->container['softBounces'] = $softBounces; - return $this; - } - /** - * Gets clicks - * - * @return int - */ - public function getClicks() - { - return $this->container['clicks']; - } - /** - * Sets clicks - * - * @param int $clicks Number of clicks for the date - * - * @return $this - */ - public function setClicks($clicks) - { - $this->container['clicks'] = $clicks; - return $this; - } - /** - * Gets uniqueClicks - * - * @return int - */ - public function getUniqueClicks() - { - return $this->container['uniqueClicks']; - } - /** - * Sets uniqueClicks - * - * @param int $uniqueClicks Number of unique clicks for the date - * - * @return $this - */ - public function setUniqueClicks($uniqueClicks) - { - $this->container['uniqueClicks'] = $uniqueClicks; - return $this; - } - /** - * Gets opens - * - * @return int - */ - public function getOpens() - { - return $this->container['opens']; - } - /** - * Sets opens - * - * @param int $opens Number of openings for the date - * - * @return $this - */ - public function setOpens($opens) - { - $this->container['opens'] = $opens; - return $this; - } - /** - * Gets uniqueOpens - * - * @return int - */ - public function getUniqueOpens() - { - return $this->container['uniqueOpens']; - } - /** - * Sets uniqueOpens - * - * @param int $uniqueOpens Number of unique openings for the date - * - * @return $this - */ - public function setUniqueOpens($uniqueOpens) - { - $this->container['uniqueOpens'] = $uniqueOpens; - return $this; - } - /** - * Gets spamReports - * - * @return int - */ - public function getSpamReports() - { - return $this->container['spamReports']; - } - /** - * Sets spamReports - * - * @param int $spamReports Number of complaints (spam reports) for the date - * - * @return $this - */ - public function setSpamReports($spamReports) - { - $this->container['spamReports'] = $spamReports; - return $this; - } - /** - * Gets blocked - * - * @return int - */ - public function getBlocked() - { - return $this->container['blocked']; - } - /** - * Sets blocked - * - * @param int $blocked Number of blocked emails for the date - * - * @return $this - */ - public function setBlocked($blocked) - { - $this->container['blocked'] = $blocked; - return $this; - } - /** - * Gets invalid - * - * @return int - */ - public function getInvalid() - { - return $this->container['invalid']; - } - /** - * Sets invalid - * - * @param int $invalid Number of invalid emails for the date - * - * @return $this - */ - public function setInvalid($invalid) - { - $this->container['invalid'] = $invalid; - return $this; - } - /** - * Gets unsubscribed - * - * @return int - */ - public function getUnsubscribed() - { - return $this->container['unsubscribed']; - } - /** - * Sets unsubscribed - * - * @param int $unsubscribed Number of unsubscribed emails for the date - * - * @return $this - */ - public function setUnsubscribed($unsubscribed) - { - $this->container['unsubscribed'] = $unsubscribed; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersList.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersList.php deleted file mode 100644 index ea33eda..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersList.php +++ /dev/null @@ -1,254 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSendersListSenders[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['senders' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['senders' => 'senders']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['senders' => 'setSenders']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['senders' => 'getSenders']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['senders'] = isset($data['senders']) ? $data['senders'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets senders - * - * @return \SendinBlue\Client\Model\GetSendersListSenders[] - */ - public function getSenders() - { - return $this->container['senders']; - } - /** - * Sets senders - * - * @param \SendinBlue\Client\Model\GetSendersListSenders[] $senders List of the senders available in your account - * - * @return $this - */ - public function setSenders($senders) - { - $this->container['senders'] = $senders; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersListIps.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersListIps.php deleted file mode 100644 index 7316f51..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersListIps.php +++ /dev/null @@ -1,307 +0,0 @@ - 'string', 'domain' => 'string', 'weight' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['ip' => null, 'domain' => null, 'weight' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['ip' => 'ip', 'domain' => 'domain', 'weight' => 'weight']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['ip' => 'setIp', 'domain' => 'setDomain', 'weight' => 'setWeight']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['ip' => 'getIp', 'domain' => 'getDomain', 'weight' => 'getWeight']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['ip'] = isset($data['ip']) ? $data['ip'] : null; - $this->container['domain'] = isset($data['domain']) ? $data['domain'] : null; - $this->container['weight'] = isset($data['weight']) ? $data['weight'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['ip'] === null) { - $invalidProperties[] = "'ip' can't be null"; - } - if ($this->container['domain'] === null) { - $invalidProperties[] = "'domain' can't be null"; - } - if ($this->container['weight'] === null) { - $invalidProperties[] = "'weight' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets ip - * - * @return string - */ - public function getIp() - { - return $this->container['ip']; - } - /** - * Sets ip - * - * @param string $ip Dedicated IP available in your account - * - * @return $this - */ - public function setIp($ip) - { - $this->container['ip'] = $ip; - return $this; - } - /** - * Gets domain - * - * @return string - */ - public function getDomain() - { - return $this->container['domain']; - } - /** - * Sets domain - * - * @param string $domain Domain of the IP - * - * @return $this - */ - public function setDomain($domain) - { - $this->container['domain'] = $domain; - return $this; - } - /** - * Gets weight - * - * @return int - */ - public function getWeight() - { - return $this->container['weight']; - } - /** - * Sets weight - * - * @param int $weight Weight of the IP for this sender - * - * @return $this - */ - public function setWeight($weight) - { - $this->container['weight'] = $weight; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersListSenders.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersListSenders.php deleted file mode 100644 index 5a645fe..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSendersListSenders.php +++ /dev/null @@ -1,354 +0,0 @@ - 'int', 'name' => 'string', 'email' => 'string', 'active' => 'bool', 'ips' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSendersListIps[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64', 'name' => null, 'email' => null, 'active' => null, 'ips' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id', 'name' => 'name', 'email' => 'email', 'active' => 'active', 'ips' => 'ips']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId', 'name' => 'setName', 'email' => 'setEmail', 'active' => 'setActive', 'ips' => 'setIps']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId', 'name' => 'getName', 'email' => 'getEmail', 'active' => 'getActive', 'ips' => 'getIps']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['active'] = isset($data['active']) ? $data['active'] : null; - $this->container['ips'] = isset($data['ips']) ? $data['ips'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - if ($this->container['active'] === null) { - $invalidProperties[] = "'active' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id Id of the sender - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name From Name associated to the sender - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email From Email associated to the sender - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets active - * - * @return bool - */ - public function getActive() - { - return $this->container['active']; - } - /** - * Sets active - * - * @param bool $active Status of sender (true=activated, false=deactivated) - * - * @return $this - */ - public function setActive($active) - { - $this->container['active'] = $active; - return $this; - } - /** - * Gets ips - * - * @return \SendinBlue\Client\Model\GetSendersListIps[] - */ - public function getIps() - { - return $this->container['ips']; - } - /** - * Sets ips - * - * @param \SendinBlue\Client\Model\GetSendersListIps[] $ips List of dedicated IP(s) available in the account. This data is displayed only for dedicated IPs - * - * @return $this - */ - public function setIps($ips) - { - $this->container['ips'] = $ips; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSharedTemplateUrl.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSharedTemplateUrl.php deleted file mode 100644 index 9884b39..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSharedTemplateUrl.php +++ /dev/null @@ -1,257 +0,0 @@ - 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['sharedUrl' => 'url']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['sharedUrl' => 'sharedUrl']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['sharedUrl' => 'setSharedUrl']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['sharedUrl' => 'getSharedUrl']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['sharedUrl'] = isset($data['sharedUrl']) ? $data['sharedUrl'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['sharedUrl'] === null) { - $invalidProperties[] = "'sharedUrl' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets sharedUrl - * - * @return string - */ - public function getSharedUrl() - { - return $this->container['sharedUrl']; - } - /** - * Sets sharedUrl - * - * @param string $sharedUrl A unique URL for the email campaign or transactional template. This URL can be shared with other Sendinblue users. - * - * @return $this - */ - public function setSharedUrl($sharedUrl) - { - $this->container['sharedUrl'] = $sharedUrl; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaign.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaign.php deleted file mode 100644 index f040295..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaign.php +++ /dev/null @@ -1,505 +0,0 @@ - 'int', 'name' => 'string', 'status' => 'string', 'content' => 'string', 'scheduledAt' => '\\DateTime', 'sender' => 'string', 'createdAt' => '\\DateTime', 'modifiedAt' => '\\DateTime', 'recipients' => 'object', 'statistics' => 'object']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64', 'name' => null, 'status' => null, 'content' => null, 'scheduledAt' => 'date-time', 'sender' => null, 'createdAt' => 'date-time', 'modifiedAt' => 'date-time', 'recipients' => null, 'statistics' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id', 'name' => 'name', 'status' => 'status', 'content' => 'content', 'scheduledAt' => 'scheduledAt', 'sender' => 'sender', 'createdAt' => 'createdAt', 'modifiedAt' => 'modifiedAt', 'recipients' => 'recipients', 'statistics' => 'statistics']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId', 'name' => 'setName', 'status' => 'setStatus', 'content' => 'setContent', 'scheduledAt' => 'setScheduledAt', 'sender' => 'setSender', 'createdAt' => 'setCreatedAt', 'modifiedAt' => 'setModifiedAt', 'recipients' => 'setRecipients', 'statistics' => 'setStatistics']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId', 'name' => 'getName', 'status' => 'getStatus', 'content' => 'getContent', 'scheduledAt' => 'getScheduledAt', 'sender' => 'getSender', 'createdAt' => 'getCreatedAt', 'modifiedAt' => 'getModifiedAt', 'recipients' => 'getRecipients', 'statistics' => 'getStatistics']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const STATUS_DRAFT = 'draft'; - const STATUS_SENT = 'sent'; - const STATUS_ARCHIVE = 'archive'; - const STATUS_QUEUED = 'queued'; - const STATUS_SUSPENDED = 'suspended'; - const STATUS_IN_PROCESS = 'inProcess'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getStatusAllowableValues() - { - return [self::STATUS_DRAFT, self::STATUS_SENT, self::STATUS_ARCHIVE, self::STATUS_QUEUED, self::STATUS_SUSPENDED, self::STATUS_IN_PROCESS]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['status'] = isset($data['status']) ? $data['status'] : null; - $this->container['content'] = isset($data['content']) ? $data['content'] : null; - $this->container['scheduledAt'] = isset($data['scheduledAt']) ? $data['scheduledAt'] : null; - $this->container['sender'] = isset($data['sender']) ? $data['sender'] : null; - $this->container['createdAt'] = isset($data['createdAt']) ? $data['createdAt'] : null; - $this->container['modifiedAt'] = isset($data['modifiedAt']) ? $data['modifiedAt'] : null; - $this->container['recipients'] = isset($data['recipients']) ? $data['recipients'] : null; - $this->container['statistics'] = isset($data['statistics']) ? $data['statistics'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['status'] === null) { - $invalidProperties[] = "'status' can't be null"; - } - $allowedValues = $this->getStatusAllowableValues(); - if (!\is_null($this->container['status']) && !\in_array($this->container['status'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'status', must be one of '%s'", \implode("', '", $allowedValues)); - } - if ($this->container['content'] === null) { - $invalidProperties[] = "'content' can't be null"; - } - if ($this->container['scheduledAt'] === null) { - $invalidProperties[] = "'scheduledAt' can't be null"; - } - if ($this->container['sender'] === null) { - $invalidProperties[] = "'sender' can't be null"; - } - if ($this->container['createdAt'] === null) { - $invalidProperties[] = "'createdAt' can't be null"; - } - if ($this->container['modifiedAt'] === null) { - $invalidProperties[] = "'modifiedAt' can't be null"; - } - if ($this->container['recipients'] === null) { - $invalidProperties[] = "'recipients' can't be null"; - } - if ($this->container['statistics'] === null) { - $invalidProperties[] = "'statistics' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the SMS Campaign - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the SMS Campaign - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets status - * - * @return string - */ - public function getStatus() - { - return $this->container['status']; - } - /** - * Sets status - * - * @param string $status Status of the SMS Campaign - * - * @return $this - */ - public function setStatus($status) - { - $allowedValues = $this->getStatusAllowableValues(); - if (!\in_array($status, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'status', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['status'] = $status; - return $this; - } - /** - * Gets content - * - * @return string - */ - public function getContent() - { - return $this->container['content']; - } - /** - * Sets content - * - * @param string $content Content of the SMS Campaign - * - * @return $this - */ - public function setContent($content) - { - $this->container['content'] = $content; - return $this; - } - /** - * Gets scheduledAt - * - * @return \DateTime - */ - public function getScheduledAt() - { - return $this->container['scheduledAt']; - } - /** - * Sets scheduledAt - * - * @param \DateTime $scheduledAt UTC date-time on which SMS campaign is scheduled. Should be in YYYY-MM-DDTHH:mm:ss.SSSZ format - * - * @return $this - */ - public function setScheduledAt($scheduledAt) - { - $this->container['scheduledAt'] = $scheduledAt; - return $this; - } - /** - * Gets sender - * - * @return string - */ - public function getSender() - { - return $this->container['sender']; - } - /** - * Sets sender - * - * @param string $sender Sender of the SMS Campaign - * - * @return $this - */ - public function setSender($sender) - { - $this->container['sender'] = $sender; - return $this; - } - /** - * Gets createdAt - * - * @return \DateTime - */ - public function getCreatedAt() - { - return $this->container['createdAt']; - } - /** - * Sets createdAt - * - * @param \DateTime $createdAt Creation UTC date-time of the SMS campaign (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setCreatedAt($createdAt) - { - $this->container['createdAt'] = $createdAt; - return $this; - } - /** - * Gets modifiedAt - * - * @return \DateTime - */ - public function getModifiedAt() - { - return $this->container['modifiedAt']; - } - /** - * Sets modifiedAt - * - * @param \DateTime $modifiedAt UTC date-time of last modification of the SMS campaign (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setModifiedAt($modifiedAt) - { - $this->container['modifiedAt'] = $modifiedAt; - return $this; - } - /** - * Gets recipients - * - * @return object - */ - public function getRecipients() - { - return $this->container['recipients']; - } - /** - * Sets recipients - * - * @param object $recipients recipients - * - * @return $this - */ - public function setRecipients($recipients) - { - $this->container['recipients'] = $recipients; - return $this; - } - /** - * Gets statistics - * - * @return object - */ - public function getStatistics() - { - return $this->container['statistics']; - } - /** - * Sets statistics - * - * @param object $statistics statistics - * - * @return $this - */ - public function setStatistics($statistics) - { - $this->container['statistics'] = $statistics; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignOverview.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignOverview.php deleted file mode 100644 index 1f4ede0..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignOverview.php +++ /dev/null @@ -1,455 +0,0 @@ - 'int', 'name' => 'string', 'status' => 'string', 'content' => 'string', 'scheduledAt' => '\\DateTime', 'sender' => 'string', 'createdAt' => '\\DateTime', 'modifiedAt' => '\\DateTime']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64', 'name' => null, 'status' => null, 'content' => null, 'scheduledAt' => 'date-time', 'sender' => null, 'createdAt' => 'date-time', 'modifiedAt' => 'date-time']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id', 'name' => 'name', 'status' => 'status', 'content' => 'content', 'scheduledAt' => 'scheduledAt', 'sender' => 'sender', 'createdAt' => 'createdAt', 'modifiedAt' => 'modifiedAt']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId', 'name' => 'setName', 'status' => 'setStatus', 'content' => 'setContent', 'scheduledAt' => 'setScheduledAt', 'sender' => 'setSender', 'createdAt' => 'setCreatedAt', 'modifiedAt' => 'setModifiedAt']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId', 'name' => 'getName', 'status' => 'getStatus', 'content' => 'getContent', 'scheduledAt' => 'getScheduledAt', 'sender' => 'getSender', 'createdAt' => 'getCreatedAt', 'modifiedAt' => 'getModifiedAt']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const STATUS_DRAFT = 'draft'; - const STATUS_SENT = 'sent'; - const STATUS_ARCHIVE = 'archive'; - const STATUS_QUEUED = 'queued'; - const STATUS_SUSPENDED = 'suspended'; - const STATUS_IN_PROCESS = 'inProcess'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getStatusAllowableValues() - { - return [self::STATUS_DRAFT, self::STATUS_SENT, self::STATUS_ARCHIVE, self::STATUS_QUEUED, self::STATUS_SUSPENDED, self::STATUS_IN_PROCESS]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['status'] = isset($data['status']) ? $data['status'] : null; - $this->container['content'] = isset($data['content']) ? $data['content'] : null; - $this->container['scheduledAt'] = isset($data['scheduledAt']) ? $data['scheduledAt'] : null; - $this->container['sender'] = isset($data['sender']) ? $data['sender'] : null; - $this->container['createdAt'] = isset($data['createdAt']) ? $data['createdAt'] : null; - $this->container['modifiedAt'] = isset($data['modifiedAt']) ? $data['modifiedAt'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['status'] === null) { - $invalidProperties[] = "'status' can't be null"; - } - $allowedValues = $this->getStatusAllowableValues(); - if (!\is_null($this->container['status']) && !\in_array($this->container['status'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'status', must be one of '%s'", \implode("', '", $allowedValues)); - } - if ($this->container['content'] === null) { - $invalidProperties[] = "'content' can't be null"; - } - if ($this->container['scheduledAt'] === null) { - $invalidProperties[] = "'scheduledAt' can't be null"; - } - if ($this->container['sender'] === null) { - $invalidProperties[] = "'sender' can't be null"; - } - if ($this->container['createdAt'] === null) { - $invalidProperties[] = "'createdAt' can't be null"; - } - if ($this->container['modifiedAt'] === null) { - $invalidProperties[] = "'modifiedAt' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the SMS Campaign - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the SMS Campaign - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets status - * - * @return string - */ - public function getStatus() - { - return $this->container['status']; - } - /** - * Sets status - * - * @param string $status Status of the SMS Campaign - * - * @return $this - */ - public function setStatus($status) - { - $allowedValues = $this->getStatusAllowableValues(); - if (!\in_array($status, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'status', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['status'] = $status; - return $this; - } - /** - * Gets content - * - * @return string - */ - public function getContent() - { - return $this->container['content']; - } - /** - * Sets content - * - * @param string $content Content of the SMS Campaign - * - * @return $this - */ - public function setContent($content) - { - $this->container['content'] = $content; - return $this; - } - /** - * Gets scheduledAt - * - * @return \DateTime - */ - public function getScheduledAt() - { - return $this->container['scheduledAt']; - } - /** - * Sets scheduledAt - * - * @param \DateTime $scheduledAt UTC date-time on which SMS campaign is scheduled. Should be in YYYY-MM-DDTHH:mm:ss.SSSZ format - * - * @return $this - */ - public function setScheduledAt($scheduledAt) - { - $this->container['scheduledAt'] = $scheduledAt; - return $this; - } - /** - * Gets sender - * - * @return string - */ - public function getSender() - { - return $this->container['sender']; - } - /** - * Sets sender - * - * @param string $sender Sender of the SMS Campaign - * - * @return $this - */ - public function setSender($sender) - { - $this->container['sender'] = $sender; - return $this; - } - /** - * Gets createdAt - * - * @return \DateTime - */ - public function getCreatedAt() - { - return $this->container['createdAt']; - } - /** - * Sets createdAt - * - * @param \DateTime $createdAt Creation UTC date-time of the SMS campaign (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setCreatedAt($createdAt) - { - $this->container['createdAt'] = $createdAt; - return $this; - } - /** - * Gets modifiedAt - * - * @return \DateTime - */ - public function getModifiedAt() - { - return $this->container['modifiedAt']; - } - /** - * Sets modifiedAt - * - * @param \DateTime $modifiedAt UTC date-time of last modification of the SMS campaign (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setModifiedAt($modifiedAt) - { - $this->container['modifiedAt'] = $modifiedAt; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignStats.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignStats.php deleted file mode 100644 index 23585d7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignStats.php +++ /dev/null @@ -1,407 +0,0 @@ - 'int', 'sent' => 'int', 'processing' => 'int', 'softBounces' => 'int', 'hardBounces' => 'int', 'unsubscriptions' => 'int', 'answered' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['delivered' => 'int64', 'sent' => 'int64', 'processing' => 'int64', 'softBounces' => 'int64', 'hardBounces' => 'int64', 'unsubscriptions' => 'int64', 'answered' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['delivered' => 'delivered', 'sent' => 'sent', 'processing' => 'processing', 'softBounces' => 'softBounces', 'hardBounces' => 'hardBounces', 'unsubscriptions' => 'unsubscriptions', 'answered' => 'answered']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['delivered' => 'setDelivered', 'sent' => 'setSent', 'processing' => 'setProcessing', 'softBounces' => 'setSoftBounces', 'hardBounces' => 'setHardBounces', 'unsubscriptions' => 'setUnsubscriptions', 'answered' => 'setAnswered']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['delivered' => 'getDelivered', 'sent' => 'getSent', 'processing' => 'getProcessing', 'softBounces' => 'getSoftBounces', 'hardBounces' => 'getHardBounces', 'unsubscriptions' => 'getUnsubscriptions', 'answered' => 'getAnswered']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['delivered'] = isset($data['delivered']) ? $data['delivered'] : null; - $this->container['sent'] = isset($data['sent']) ? $data['sent'] : null; - $this->container['processing'] = isset($data['processing']) ? $data['processing'] : null; - $this->container['softBounces'] = isset($data['softBounces']) ? $data['softBounces'] : null; - $this->container['hardBounces'] = isset($data['hardBounces']) ? $data['hardBounces'] : null; - $this->container['unsubscriptions'] = isset($data['unsubscriptions']) ? $data['unsubscriptions'] : null; - $this->container['answered'] = isset($data['answered']) ? $data['answered'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['delivered'] === null) { - $invalidProperties[] = "'delivered' can't be null"; - } - if ($this->container['sent'] === null) { - $invalidProperties[] = "'sent' can't be null"; - } - if ($this->container['processing'] === null) { - $invalidProperties[] = "'processing' can't be null"; - } - if ($this->container['softBounces'] === null) { - $invalidProperties[] = "'softBounces' can't be null"; - } - if ($this->container['hardBounces'] === null) { - $invalidProperties[] = "'hardBounces' can't be null"; - } - if ($this->container['unsubscriptions'] === null) { - $invalidProperties[] = "'unsubscriptions' can't be null"; - } - if ($this->container['answered'] === null) { - $invalidProperties[] = "'answered' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets delivered - * - * @return int - */ - public function getDelivered() - { - return $this->container['delivered']; - } - /** - * Sets delivered - * - * @param int $delivered Number of delivered SMS - * - * @return $this - */ - public function setDelivered($delivered) - { - $this->container['delivered'] = $delivered; - return $this; - } - /** - * Gets sent - * - * @return int - */ - public function getSent() - { - return $this->container['sent']; - } - /** - * Sets sent - * - * @param int $sent Number of sent SMS - * - * @return $this - */ - public function setSent($sent) - { - $this->container['sent'] = $sent; - return $this; - } - /** - * Gets processing - * - * @return int - */ - public function getProcessing() - { - return $this->container['processing']; - } - /** - * Sets processing - * - * @param int $processing Number of processing SMS - * - * @return $this - */ - public function setProcessing($processing) - { - $this->container['processing'] = $processing; - return $this; - } - /** - * Gets softBounces - * - * @return int - */ - public function getSoftBounces() - { - return $this->container['softBounces']; - } - /** - * Sets softBounces - * - * @param int $softBounces Number of softbounced SMS - * - * @return $this - */ - public function setSoftBounces($softBounces) - { - $this->container['softBounces'] = $softBounces; - return $this; - } - /** - * Gets hardBounces - * - * @return int - */ - public function getHardBounces() - { - return $this->container['hardBounces']; - } - /** - * Sets hardBounces - * - * @param int $hardBounces Number of hardbounced SMS - * - * @return $this - */ - public function setHardBounces($hardBounces) - { - $this->container['hardBounces'] = $hardBounces; - return $this; - } - /** - * Gets unsubscriptions - * - * @return int - */ - public function getUnsubscriptions() - { - return $this->container['unsubscriptions']; - } - /** - * Sets unsubscriptions - * - * @param int $unsubscriptions Number of unsubscription SMS - * - * @return $this - */ - public function setUnsubscriptions($unsubscriptions) - { - $this->container['unsubscriptions'] = $unsubscriptions; - return $this; - } - /** - * Gets answered - * - * @return int - */ - public function getAnswered() - { - return $this->container['answered']; - } - /** - * Sets answered - * - * @param int $answered Number of replies to the SMS - * - * @return $this - */ - public function setAnswered($answered) - { - $this->container['answered'] = $answered; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaigns.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaigns.php deleted file mode 100644 index 16b1c63..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaigns.php +++ /dev/null @@ -1,279 +0,0 @@ - 'object[]', 'count' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['campaigns' => null, 'count' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['campaigns' => 'campaigns', 'count' => 'count']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['campaigns' => 'setCampaigns', 'count' => 'setCount']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['campaigns' => 'getCampaigns', 'count' => 'getCount']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['campaigns'] = isset($data['campaigns']) ? $data['campaigns'] : null; - $this->container['count'] = isset($data['count']) ? $data['count'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['count'] === null) { - $invalidProperties[] = "'count' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets campaigns - * - * @return object[] - */ - public function getCampaigns() - { - return $this->container['campaigns']; - } - /** - * Sets campaigns - * - * @param object[] $campaigns campaigns - * - * @return $this - */ - public function setCampaigns($campaigns) - { - $this->container['campaigns'] = $campaigns; - return $this; - } - /** - * Gets count - * - * @return int - */ - public function getCount() - { - return $this->container['count']; - } - /** - * Sets count - * - * @param int $count Number of SMS campaigns retrieved - * - * @return $this - */ - public function setCount($count) - { - $this->container['count'] = $count; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReport.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReport.php deleted file mode 100644 index b7d2cdc..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReport.php +++ /dev/null @@ -1,254 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmsEventReportEvents[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['events' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['events' => 'events']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['events' => 'setEvents']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['events' => 'getEvents']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['events'] = isset($data['events']) ? $data['events'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets events - * - * @return \SendinBlue\Client\Model\GetSmsEventReportEvents[] - */ - public function getEvents() - { - return $this->container['events']; - } - /** - * Sets events - * - * @param \SendinBlue\Client\Model\GetSmsEventReportEvents[] $events events - * - * @return $this - */ - public function setEvents($events) - { - $this->container['events'] = $events; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReportEvents.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReportEvents.php deleted file mode 100644 index 2f4df3f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReportEvents.php +++ /dev/null @@ -1,424 +0,0 @@ - 'string', 'date' => '\\DateTime', 'messageId' => 'string', 'event' => 'string', 'reason' => 'string', 'reply' => 'string', 'tag' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['phoneNumber' => null, 'date' => 'date-time', 'messageId' => null, 'event' => null, 'reason' => null, 'reply' => null, 'tag' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['phoneNumber' => 'phoneNumber', 'date' => 'date', 'messageId' => 'messageId', 'event' => 'event', 'reason' => 'reason', 'reply' => 'reply', 'tag' => 'tag']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['phoneNumber' => 'setPhoneNumber', 'date' => 'setDate', 'messageId' => 'setMessageId', 'event' => 'setEvent', 'reason' => 'setReason', 'reply' => 'setReply', 'tag' => 'setTag']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['phoneNumber' => 'getPhoneNumber', 'date' => 'getDate', 'messageId' => 'getMessageId', 'event' => 'getEvent', 'reason' => 'getReason', 'reply' => 'getReply', 'tag' => 'getTag']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const EVENT_BOUNCES = 'bounces'; - const EVENT_HARD_BOUNCES = 'hardBounces'; - const EVENT_SOFT_BOUNCES = 'softBounces'; - const EVENT_DELIVERED = 'delivered'; - const EVENT_SENT = 'sent'; - const EVENT_ACCEPTED = 'accepted'; - const EVENT_UNSUBSCRIPTION = 'unsubscription'; - const EVENT_REPLIES = 'replies'; - const EVENT_BLOCKED = 'blocked'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getEventAllowableValues() - { - return [self::EVENT_BOUNCES, self::EVENT_HARD_BOUNCES, self::EVENT_SOFT_BOUNCES, self::EVENT_DELIVERED, self::EVENT_SENT, self::EVENT_ACCEPTED, self::EVENT_UNSUBSCRIPTION, self::EVENT_REPLIES, self::EVENT_BLOCKED]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['phoneNumber'] = isset($data['phoneNumber']) ? $data['phoneNumber'] : null; - $this->container['date'] = isset($data['date']) ? $data['date'] : null; - $this->container['messageId'] = isset($data['messageId']) ? $data['messageId'] : null; - $this->container['event'] = isset($data['event']) ? $data['event'] : null; - $this->container['reason'] = isset($data['reason']) ? $data['reason'] : null; - $this->container['reply'] = isset($data['reply']) ? $data['reply'] : null; - $this->container['tag'] = isset($data['tag']) ? $data['tag'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['phoneNumber'] === null) { - $invalidProperties[] = "'phoneNumber' can't be null"; - } - if ($this->container['date'] === null) { - $invalidProperties[] = "'date' can't be null"; - } - if ($this->container['messageId'] === null) { - $invalidProperties[] = "'messageId' can't be null"; - } - if ($this->container['event'] === null) { - $invalidProperties[] = "'event' can't be null"; - } - $allowedValues = $this->getEventAllowableValues(); - if (!\is_null($this->container['event']) && !\in_array($this->container['event'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'event', must be one of '%s'", \implode("', '", $allowedValues)); - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets phoneNumber - * - * @return string - */ - public function getPhoneNumber() - { - return $this->container['phoneNumber']; - } - /** - * Sets phoneNumber - * - * @param string $phoneNumber Phone number which has generated the event - * - * @return $this - */ - public function setPhoneNumber($phoneNumber) - { - $this->container['phoneNumber'] = $phoneNumber; - return $this; - } - /** - * Gets date - * - * @return \DateTime - */ - public function getDate() - { - return $this->container['date']; - } - /** - * Sets date - * - * @param \DateTime $date UTC date-time on which the event has been generated - * - * @return $this - */ - public function setDate($date) - { - $this->container['date'] = $date; - return $this; - } - /** - * Gets messageId - * - * @return string - */ - public function getMessageId() - { - return $this->container['messageId']; - } - /** - * Sets messageId - * - * @param string $messageId Message ID which generated the event - * - * @return $this - */ - public function setMessageId($messageId) - { - $this->container['messageId'] = $messageId; - return $this; - } - /** - * Gets event - * - * @return string - */ - public function getEvent() - { - return $this->container['event']; - } - /** - * Sets event - * - * @param string $event Event which occurred - * - * @return $this - */ - public function setEvent($event) - { - $allowedValues = $this->getEventAllowableValues(); - if (!\in_array($event, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'event', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['event'] = $event; - return $this; - } - /** - * Gets reason - * - * @return string - */ - public function getReason() - { - return $this->container['reason']; - } - /** - * Sets reason - * - * @param string $reason Reason of bounce (only available if the event is hardbounce or softbounce) - * - * @return $this - */ - public function setReason($reason) - { - $this->container['reason'] = $reason; - return $this; - } - /** - * Gets reply - * - * @return string - */ - public function getReply() - { - return $this->container['reply']; - } - /** - * Sets reply - * - * @param string $reply reply - * - * @return $this - */ - public function setReply($reply) - { - $this->container['reply'] = $reply; - return $this; - } - /** - * Gets tag - * - * @return string - */ - public function getTag() - { - return $this->container['tag']; - } - /** - * Sets tag - * - * @param string $tag Tag of the SMS which generated the event - * - * @return $this - */ - public function setTag($tag) - { - $this->container['tag'] = $tag; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverview.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverview.php deleted file mode 100644 index 79f8798..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverview.php +++ /dev/null @@ -1,554 +0,0 @@ - 'int', 'name' => 'string', 'subject' => 'string', 'isActive' => 'bool', 'testSent' => 'bool', 'sender' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmtpTemplateOverviewSender', 'replyTo' => 'string', 'toField' => 'string', 'tag' => 'string', 'htmlContent' => 'string', 'createdAt' => '\\DateTime', 'modifiedAt' => '\\DateTime', 'doiTemplate' => 'bool']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['id' => 'int64', 'name' => null, 'subject' => null, 'isActive' => null, 'testSent' => null, 'sender' => null, 'replyTo' => 'email', 'toField' => null, 'tag' => null, 'htmlContent' => null, 'createdAt' => 'date-time', 'modifiedAt' => 'date-time', 'doiTemplate' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['id' => 'id', 'name' => 'name', 'subject' => 'subject', 'isActive' => 'isActive', 'testSent' => 'testSent', 'sender' => 'sender', 'replyTo' => 'replyTo', 'toField' => 'toField', 'tag' => 'tag', 'htmlContent' => 'htmlContent', 'createdAt' => 'createdAt', 'modifiedAt' => 'modifiedAt', 'doiTemplate' => 'doiTemplate']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['id' => 'setId', 'name' => 'setName', 'subject' => 'setSubject', 'isActive' => 'setIsActive', 'testSent' => 'setTestSent', 'sender' => 'setSender', 'replyTo' => 'setReplyTo', 'toField' => 'setToField', 'tag' => 'setTag', 'htmlContent' => 'setHtmlContent', 'createdAt' => 'setCreatedAt', 'modifiedAt' => 'setModifiedAt', 'doiTemplate' => 'setDoiTemplate']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['id' => 'getId', 'name' => 'getName', 'subject' => 'getSubject', 'isActive' => 'getIsActive', 'testSent' => 'getTestSent', 'sender' => 'getSender', 'replyTo' => 'getReplyTo', 'toField' => 'getToField', 'tag' => 'getTag', 'htmlContent' => 'getHtmlContent', 'createdAt' => 'getCreatedAt', 'modifiedAt' => 'getModifiedAt', 'doiTemplate' => 'getDoiTemplate']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['subject'] = isset($data['subject']) ? $data['subject'] : null; - $this->container['isActive'] = isset($data['isActive']) ? $data['isActive'] : null; - $this->container['testSent'] = isset($data['testSent']) ? $data['testSent'] : null; - $this->container['sender'] = isset($data['sender']) ? $data['sender'] : null; - $this->container['replyTo'] = isset($data['replyTo']) ? $data['replyTo'] : null; - $this->container['toField'] = isset($data['toField']) ? $data['toField'] : null; - $this->container['tag'] = isset($data['tag']) ? $data['tag'] : null; - $this->container['htmlContent'] = isset($data['htmlContent']) ? $data['htmlContent'] : null; - $this->container['createdAt'] = isset($data['createdAt']) ? $data['createdAt'] : null; - $this->container['modifiedAt'] = isset($data['modifiedAt']) ? $data['modifiedAt'] : null; - $this->container['doiTemplate'] = isset($data['doiTemplate']) ? $data['doiTemplate'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['subject'] === null) { - $invalidProperties[] = "'subject' can't be null"; - } - if ($this->container['isActive'] === null) { - $invalidProperties[] = "'isActive' can't be null"; - } - if ($this->container['testSent'] === null) { - $invalidProperties[] = "'testSent' can't be null"; - } - if ($this->container['sender'] === null) { - $invalidProperties[] = "'sender' can't be null"; - } - if ($this->container['replyTo'] === null) { - $invalidProperties[] = "'replyTo' can't be null"; - } - if ($this->container['toField'] === null) { - $invalidProperties[] = "'toField' can't be null"; - } - if ($this->container['tag'] === null) { - $invalidProperties[] = "'tag' can't be null"; - } - if ($this->container['htmlContent'] === null) { - $invalidProperties[] = "'htmlContent' can't be null"; - } - if ($this->container['createdAt'] === null) { - $invalidProperties[] = "'createdAt' can't be null"; - } - if ($this->container['modifiedAt'] === null) { - $invalidProperties[] = "'modifiedAt' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the template - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the template - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets subject - * - * @return string - */ - public function getSubject() - { - return $this->container['subject']; - } - /** - * Sets subject - * - * @param string $subject Subject of the template - * - * @return $this - */ - public function setSubject($subject) - { - $this->container['subject'] = $subject; - return $this; - } - /** - * Gets isActive - * - * @return bool - */ - public function getIsActive() - { - return $this->container['isActive']; - } - /** - * Sets isActive - * - * @param bool $isActive Status of template (true=active, false=inactive) - * - * @return $this - */ - public function setIsActive($isActive) - { - $this->container['isActive'] = $isActive; - return $this; - } - /** - * Gets testSent - * - * @return bool - */ - public function getTestSent() - { - return $this->container['testSent']; - } - /** - * Sets testSent - * - * @param bool $testSent Status of test sending for the template (true=test email has been sent, false=test email has not been sent) - * - * @return $this - */ - public function setTestSent($testSent) - { - $this->container['testSent'] = $testSent; - return $this; - } - /** - * Gets sender - * - * @return \SendinBlue\Client\Model\GetSmtpTemplateOverviewSender - */ - public function getSender() - { - return $this->container['sender']; - } - /** - * Sets sender - * - * @param \SendinBlue\Client\Model\GetSmtpTemplateOverviewSender $sender sender - * - * @return $this - */ - public function setSender($sender) - { - $this->container['sender'] = $sender; - return $this; - } - /** - * Gets replyTo - * - * @return string - */ - public function getReplyTo() - { - return $this->container['replyTo']; - } - /** - * Sets replyTo - * - * @param string $replyTo Email defined as the \"Reply to\" for the template - * - * @return $this - */ - public function setReplyTo($replyTo) - { - $this->container['replyTo'] = $replyTo; - return $this; - } - /** - * Gets toField - * - * @return string - */ - public function getToField() - { - return $this->container['toField']; - } - /** - * Sets toField - * - * @param string $toField Customisation of the \"to\" field for the template - * - * @return $this - */ - public function setToField($toField) - { - $this->container['toField'] = $toField; - return $this; - } - /** - * Gets tag - * - * @return string - */ - public function getTag() - { - return $this->container['tag']; - } - /** - * Sets tag - * - * @param string $tag Tag of the template - * - * @return $this - */ - public function setTag($tag) - { - $this->container['tag'] = $tag; - return $this; - } - /** - * Gets htmlContent - * - * @return string - */ - public function getHtmlContent() - { - return $this->container['htmlContent']; - } - /** - * Sets htmlContent - * - * @param string $htmlContent HTML content of the template - * - * @return $this - */ - public function setHtmlContent($htmlContent) - { - $this->container['htmlContent'] = $htmlContent; - return $this; - } - /** - * Gets createdAt - * - * @return \DateTime - */ - public function getCreatedAt() - { - return $this->container['createdAt']; - } - /** - * Sets createdAt - * - * @param \DateTime $createdAt Creation UTC date-time of the template (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setCreatedAt($createdAt) - { - $this->container['createdAt'] = $createdAt; - return $this; - } - /** - * Gets modifiedAt - * - * @return \DateTime - */ - public function getModifiedAt() - { - return $this->container['modifiedAt']; - } - /** - * Sets modifiedAt - * - * @param \DateTime $modifiedAt Last modification UTC date-time of the template (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setModifiedAt($modifiedAt) - { - $this->container['modifiedAt'] = $modifiedAt; - return $this; - } - /** - * Gets doiTemplate - * - * @return bool - */ - public function getDoiTemplate() - { - return $this->container['doiTemplate']; - } - /** - * Sets doiTemplate - * - * @param bool $doiTemplate It is true if template is a valid Double opt-in (DOI) template, otherwise it is false. This field will be available only in case of single template detail call. - * - * @return $this - */ - public function setDoiTemplate($doiTemplate) - { - $this->container['doiTemplate'] = $doiTemplate; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverviewSender.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverviewSender.php deleted file mode 100644 index 9d65dce..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverviewSender.php +++ /dev/null @@ -1,298 +0,0 @@ - 'string', 'email' => 'string', 'id' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'email' => 'email', 'id' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'email' => 'email', 'id' => 'id']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'email' => 'setEmail', 'id' => 'setId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'email' => 'getEmail', 'id' => 'getId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name From email for the template - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email From email for the template - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets id - * - * @return string - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param string $id Sender id of the template - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplates.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplates.php deleted file mode 100644 index b2aa1d6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplates.php +++ /dev/null @@ -1,276 +0,0 @@ - 'int', 'templates' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetSmtpTemplateOverview[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['count' => 'int64', 'templates' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['count' => 'count', 'templates' => 'templates']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['count' => 'setCount', 'templates' => 'setTemplates']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['count' => 'getCount', 'templates' => 'getTemplates']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['count'] = isset($data['count']) ? $data['count'] : null; - $this->container['templates'] = isset($data['templates']) ? $data['templates'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets count - * - * @return int - */ - public function getCount() - { - return $this->container['count']; - } - /** - * Sets count - * - * @param int $count Count of transactional email templates - * - * @return $this - */ - public function setCount($count) - { - $this->container['count'] = $count; - return $this; - } - /** - * Gets templates - * - * @return \SendinBlue\Client\Model\GetSmtpTemplateOverview[] - */ - public function getTemplates() - { - return $this->container['templates']; - } - /** - * Sets templates - * - * @param \SendinBlue\Client\Model\GetSmtpTemplateOverview[] $templates templates - * - * @return $this - */ - public function setTemplates($templates) - { - $this->container['templates'] = $templates; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSsoToken.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSsoToken.php deleted file mode 100644 index 34e743c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetSsoToken.php +++ /dev/null @@ -1,257 +0,0 @@ - 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['token' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['token' => 'token']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['token' => 'setToken']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['token' => 'getToken']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['token'] = isset($data['token']) ? $data['token'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['token'] === null) { - $invalidProperties[] = "'token' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets token - * - * @return string - */ - public function getToken() - { - return $this->container['token']; - } - /** - * Sets token - * - * @param string $token Session token. It will remain valid for a short period of time only. - * - * @return $this - */ - public function setToken($token) - { - $this->container['token'] = $token; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByBrowser.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByBrowser.php deleted file mode 100644 index 90c32d7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByBrowser.php +++ /dev/null @@ -1,232 +0,0 @@ -listInvalidProperties()) === 0; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByDevice.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByDevice.php deleted file mode 100644 index 15755af..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByDevice.php +++ /dev/null @@ -1,320 +0,0 @@ - 'map[string,\\SendinBlue\\Client\\Model\\GetDeviceBrowserStats]', 'mobile' => 'map[string,\\SendinBlue\\Client\\Model\\GetDeviceBrowserStats]', 'tablet' => 'map[string,\\SendinBlue\\Client\\Model\\GetDeviceBrowserStats]', 'unknown' => 'map[string,\\SendinBlue\\Client\\Model\\GetDeviceBrowserStats]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['desktop' => null, 'mobile' => null, 'tablet' => null, 'unknown' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['desktop' => 'desktop', 'mobile' => 'mobile', 'tablet' => 'tablet', 'unknown' => 'unknown']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['desktop' => 'setDesktop', 'mobile' => 'setMobile', 'tablet' => 'setTablet', 'unknown' => 'setUnknown']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['desktop' => 'getDesktop', 'mobile' => 'getMobile', 'tablet' => 'getTablet', 'unknown' => 'getUnknown']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['desktop'] = isset($data['desktop']) ? $data['desktop'] : null; - $this->container['mobile'] = isset($data['mobile']) ? $data['mobile'] : null; - $this->container['tablet'] = isset($data['tablet']) ? $data['tablet'] : null; - $this->container['unknown'] = isset($data['unknown']) ? $data['unknown'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets desktop - * - * @return map[string,\SendinBlue\Client\Model\GetDeviceBrowserStats] - */ - public function getDesktop() - { - return $this->container['desktop']; - } - /** - * Sets desktop - * - * @param map[string,\SendinBlue\Client\Model\GetDeviceBrowserStats] $desktop Statistics of the campaign on the basis of desktop devices - * - * @return $this - */ - public function setDesktop($desktop) - { - $this->container['desktop'] = $desktop; - return $this; - } - /** - * Gets mobile - * - * @return map[string,\SendinBlue\Client\Model\GetDeviceBrowserStats] - */ - public function getMobile() - { - return $this->container['mobile']; - } - /** - * Sets mobile - * - * @param map[string,\SendinBlue\Client\Model\GetDeviceBrowserStats] $mobile Statistics of the campaign on the basis of mobile devices - * - * @return $this - */ - public function setMobile($mobile) - { - $this->container['mobile'] = $mobile; - return $this; - } - /** - * Gets tablet - * - * @return map[string,\SendinBlue\Client\Model\GetDeviceBrowserStats] - */ - public function getTablet() - { - return $this->container['tablet']; - } - /** - * Sets tablet - * - * @param map[string,\SendinBlue\Client\Model\GetDeviceBrowserStats] $tablet Statistics of the campaign on the basis of tablet devices - * - * @return $this - */ - public function setTablet($tablet) - { - $this->container['tablet'] = $tablet; - return $this; - } - /** - * Gets unknown - * - * @return map[string,\SendinBlue\Client\Model\GetDeviceBrowserStats] - */ - public function getUnknown() - { - return $this->container['unknown']; - } - /** - * Sets unknown - * - * @param map[string,\SendinBlue\Client\Model\GetDeviceBrowserStats] $unknown Statistics of the campaign on the basis of unknown devices - * - * @return $this - */ - public function setUnknown($unknown) - { - $this->container['unknown'] = $unknown; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByDomain.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByDomain.php deleted file mode 100644 index e573212..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetStatsByDomain.php +++ /dev/null @@ -1,232 +0,0 @@ -listInvalidProperties()) === 0; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacAggregatedSmsReport.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacAggregatedSmsReport.php deleted file mode 100644 index 8ea8f21..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacAggregatedSmsReport.php +++ /dev/null @@ -1,482 +0,0 @@ - 'string', 'requests' => 'int', 'delivered' => 'int', 'hardBounces' => 'int', 'softBounces' => 'int', 'blocked' => 'int', 'unsubscribed' => 'int', 'replied' => 'int', 'accepted' => 'int', 'rejected' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['range' => null, 'requests' => 'int64', 'delivered' => 'int64', 'hardBounces' => 'int64', 'softBounces' => 'int64', 'blocked' => 'int64', 'unsubscribed' => 'int64', 'replied' => 'int64', 'accepted' => 'int64', 'rejected' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['range' => 'range', 'requests' => 'requests', 'delivered' => 'delivered', 'hardBounces' => 'hardBounces', 'softBounces' => 'softBounces', 'blocked' => 'blocked', 'unsubscribed' => 'unsubscribed', 'replied' => 'replied', 'accepted' => 'accepted', 'rejected' => 'rejected']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['range' => 'setRange', 'requests' => 'setRequests', 'delivered' => 'setDelivered', 'hardBounces' => 'setHardBounces', 'softBounces' => 'setSoftBounces', 'blocked' => 'setBlocked', 'unsubscribed' => 'setUnsubscribed', 'replied' => 'setReplied', 'accepted' => 'setAccepted', 'rejected' => 'setRejected']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['range' => 'getRange', 'requests' => 'getRequests', 'delivered' => 'getDelivered', 'hardBounces' => 'getHardBounces', 'softBounces' => 'getSoftBounces', 'blocked' => 'getBlocked', 'unsubscribed' => 'getUnsubscribed', 'replied' => 'getReplied', 'accepted' => 'getAccepted', 'rejected' => 'getRejected']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['range'] = isset($data['range']) ? $data['range'] : null; - $this->container['requests'] = isset($data['requests']) ? $data['requests'] : null; - $this->container['delivered'] = isset($data['delivered']) ? $data['delivered'] : null; - $this->container['hardBounces'] = isset($data['hardBounces']) ? $data['hardBounces'] : null; - $this->container['softBounces'] = isset($data['softBounces']) ? $data['softBounces'] : null; - $this->container['blocked'] = isset($data['blocked']) ? $data['blocked'] : null; - $this->container['unsubscribed'] = isset($data['unsubscribed']) ? $data['unsubscribed'] : null; - $this->container['replied'] = isset($data['replied']) ? $data['replied'] : null; - $this->container['accepted'] = isset($data['accepted']) ? $data['accepted'] : null; - $this->container['rejected'] = isset($data['rejected']) ? $data['rejected'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['range'] === null) { - $invalidProperties[] = "'range' can't be null"; - } - if ($this->container['requests'] === null) { - $invalidProperties[] = "'requests' can't be null"; - } - if ($this->container['delivered'] === null) { - $invalidProperties[] = "'delivered' can't be null"; - } - if ($this->container['hardBounces'] === null) { - $invalidProperties[] = "'hardBounces' can't be null"; - } - if ($this->container['softBounces'] === null) { - $invalidProperties[] = "'softBounces' can't be null"; - } - if ($this->container['blocked'] === null) { - $invalidProperties[] = "'blocked' can't be null"; - } - if ($this->container['unsubscribed'] === null) { - $invalidProperties[] = "'unsubscribed' can't be null"; - } - if ($this->container['replied'] === null) { - $invalidProperties[] = "'replied' can't be null"; - } - if ($this->container['accepted'] === null) { - $invalidProperties[] = "'accepted' can't be null"; - } - if ($this->container['rejected'] === null) { - $invalidProperties[] = "'rejected' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets range - * - * @return string - */ - public function getRange() - { - return $this->container['range']; - } - /** - * Sets range - * - * @param string $range Time frame of the report - * - * @return $this - */ - public function setRange($range) - { - $this->container['range'] = $range; - return $this; - } - /** - * Gets requests - * - * @return int - */ - public function getRequests() - { - return $this->container['requests']; - } - /** - * Sets requests - * - * @param int $requests Number of requests for the timeframe - * - * @return $this - */ - public function setRequests($requests) - { - $this->container['requests'] = $requests; - return $this; - } - /** - * Gets delivered - * - * @return int - */ - public function getDelivered() - { - return $this->container['delivered']; - } - /** - * Sets delivered - * - * @param int $delivered Number of delivered SMS for the timeframe - * - * @return $this - */ - public function setDelivered($delivered) - { - $this->container['delivered'] = $delivered; - return $this; - } - /** - * Gets hardBounces - * - * @return int - */ - public function getHardBounces() - { - return $this->container['hardBounces']; - } - /** - * Sets hardBounces - * - * @param int $hardBounces Number of hardbounces for the timeframe - * - * @return $this - */ - public function setHardBounces($hardBounces) - { - $this->container['hardBounces'] = $hardBounces; - return $this; - } - /** - * Gets softBounces - * - * @return int - */ - public function getSoftBounces() - { - return $this->container['softBounces']; - } - /** - * Sets softBounces - * - * @param int $softBounces Number of softbounces for the timeframe - * - * @return $this - */ - public function setSoftBounces($softBounces) - { - $this->container['softBounces'] = $softBounces; - return $this; - } - /** - * Gets blocked - * - * @return int - */ - public function getBlocked() - { - return $this->container['blocked']; - } - /** - * Sets blocked - * - * @param int $blocked Number of blocked contact for the timeframe - * - * @return $this - */ - public function setBlocked($blocked) - { - $this->container['blocked'] = $blocked; - return $this; - } - /** - * Gets unsubscribed - * - * @return int - */ - public function getUnsubscribed() - { - return $this->container['unsubscribed']; - } - /** - * Sets unsubscribed - * - * @param int $unsubscribed Number of unsubscription for the timeframe - * - * @return $this - */ - public function setUnsubscribed($unsubscribed) - { - $this->container['unsubscribed'] = $unsubscribed; - return $this; - } - /** - * Gets replied - * - * @return int - */ - public function getReplied() - { - return $this->container['replied']; - } - /** - * Sets replied - * - * @param int $replied Number of answered SMS for the timeframe - * - * @return $this - */ - public function setReplied($replied) - { - $this->container['replied'] = $replied; - return $this; - } - /** - * Gets accepted - * - * @return int - */ - public function getAccepted() - { - return $this->container['accepted']; - } - /** - * Sets accepted - * - * @param int $accepted Number of accepted for the timeframe - * - * @return $this - */ - public function setAccepted($accepted) - { - $this->container['accepted'] = $accepted; - return $this; - } - /** - * Gets rejected - * - * @return int - */ - public function getRejected() - { - return $this->container['rejected']; - } - /** - * Sets rejected - * - * @param int $rejected Number of rejected for the timeframe - * - * @return $this - */ - public function setRejected($rejected) - { - $this->container['rejected'] = $rejected; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContacts.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContacts.php deleted file mode 100644 index 75a3601..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContacts.php +++ /dev/null @@ -1,276 +0,0 @@ - 'int', 'contacts' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacBlockedContactsContacts[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['count' => 'int64', 'contacts' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['count' => 'count', 'contacts' => 'contacts']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['count' => 'setCount', 'contacts' => 'setContacts']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['count' => 'getCount', 'contacts' => 'getContacts']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['count'] = isset($data['count']) ? $data['count'] : null; - $this->container['contacts'] = isset($data['contacts']) ? $data['contacts'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets count - * - * @return int - */ - public function getCount() - { - return $this->container['count']; - } - /** - * Sets count - * - * @param int $count Count of blocked or unsubscribed contact - * - * @return $this - */ - public function setCount($count) - { - $this->container['count'] = $count; - return $this; - } - /** - * Gets contacts - * - * @return \SendinBlue\Client\Model\GetTransacBlockedContactsContacts[] - */ - public function getContacts() - { - return $this->container['contacts']; - } - /** - * Sets contacts - * - * @param \SendinBlue\Client\Model\GetTransacBlockedContactsContacts[] $contacts contacts - * - * @return $this - */ - public function setContacts($contacts) - { - $this->container['contacts'] = $contacts; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsContacts.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsContacts.php deleted file mode 100644 index a73d09a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsContacts.php +++ /dev/null @@ -1,332 +0,0 @@ - 'string', 'senderEmail' => 'string', 'reason' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacBlockedContactsReason', 'blockedAt' => '\\DateTime']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'senderEmail' => 'email', 'reason' => null, 'blockedAt' => 'date-time']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'senderEmail' => 'senderEmail', 'reason' => 'reason', 'blockedAt' => 'blockedAt']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'senderEmail' => 'setSenderEmail', 'reason' => 'setReason', 'blockedAt' => 'setBlockedAt']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'senderEmail' => 'getSenderEmail', 'reason' => 'getReason', 'blockedAt' => 'getBlockedAt']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['senderEmail'] = isset($data['senderEmail']) ? $data['senderEmail'] : null; - $this->container['reason'] = isset($data['reason']) ? $data['reason'] : null; - $this->container['blockedAt'] = isset($data['blockedAt']) ? $data['blockedAt'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - if ($this->container['senderEmail'] === null) { - $invalidProperties[] = "'senderEmail' can't be null"; - } - if ($this->container['reason'] === null) { - $invalidProperties[] = "'reason' can't be null"; - } - if ($this->container['blockedAt'] === null) { - $invalidProperties[] = "'blockedAt' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email address of the blocked or unsubscribed contact - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets senderEmail - * - * @return string - */ - public function getSenderEmail() - { - return $this->container['senderEmail']; - } - /** - * Sets senderEmail - * - * @param string $senderEmail Sender email address of the blocked or unsubscribed contact - * - * @return $this - */ - public function setSenderEmail($senderEmail) - { - $this->container['senderEmail'] = $senderEmail; - return $this; - } - /** - * Gets reason - * - * @return \SendinBlue\Client\Model\GetTransacBlockedContactsReason - */ - public function getReason() - { - return $this->container['reason']; - } - /** - * Sets reason - * - * @param \SendinBlue\Client\Model\GetTransacBlockedContactsReason $reason reason - * - * @return $this - */ - public function setReason($reason) - { - $this->container['reason'] = $reason; - return $this; - } - /** - * Gets blockedAt - * - * @return \DateTime - */ - public function getBlockedAt() - { - return $this->container['blockedAt']; - } - /** - * Sets blockedAt - * - * @param \DateTime $blockedAt Date when the contact was blocked or unsubscribed on - * - * @return $this - */ - public function setBlockedAt($blockedAt) - { - $this->container['blockedAt'] = $blockedAt; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsReason.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsReason.php deleted file mode 100644 index 67a660f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsReason.php +++ /dev/null @@ -1,300 +0,0 @@ - 'string', 'message' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['code' => null, 'message' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['code' => 'code', 'message' => 'message']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['code' => 'setCode', 'message' => 'setMessage']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['code' => 'getCode', 'message' => 'getMessage']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const CODE_UNSUBSCRIBED_VIA_MA = 'unsubscribedViaMA'; - const CODE_UNSUBSCRIBED_VIA_EMAIL = 'unsubscribedViaEmail'; - const CODE_ADMIN_BLOCKED = 'adminBlocked'; - const CODE_UNSUBSCRIBED_VIA_API = 'unsubscribedViaApi'; - const CODE_HARD_BOUNCE = 'hardBounce'; - const CODE_CONTACT_FLAGGED_AS_SPAM = 'contactFlaggedAsSpam'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getCodeAllowableValues() - { - return [self::CODE_UNSUBSCRIBED_VIA_MA, self::CODE_UNSUBSCRIBED_VIA_EMAIL, self::CODE_ADMIN_BLOCKED, self::CODE_UNSUBSCRIBED_VIA_API, self::CODE_HARD_BOUNCE, self::CODE_CONTACT_FLAGGED_AS_SPAM]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['code'] = isset($data['code']) ? $data['code'] : null; - $this->container['message'] = isset($data['message']) ? $data['message'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - $allowedValues = $this->getCodeAllowableValues(); - if (!\is_null($this->container['code']) && !\in_array($this->container['code'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'code', must be one of '%s'", \implode("', '", $allowedValues)); - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets code - * - * @return string - */ - public function getCode() - { - return $this->container['code']; - } - /** - * Sets code - * - * @param string $code Reason code for blocking / unsubscribing (This code is safe for comparison) - * - * @return $this - */ - public function setCode($code) - { - $allowedValues = $this->getCodeAllowableValues(); - if (!\is_null($code) && !\in_array($code, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'code', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['code'] = $code; - return $this; - } - /** - * Gets message - * - * @return string - */ - public function getMessage() - { - return $this->container['message']; - } - /** - * Sets message - * - * @param string $message Reason for blocking / unsubscribing (This string is not safe for comparison) - * - * @return $this - */ - public function setMessage($message) - { - $this->container['message'] = $message; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContent.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContent.php deleted file mode 100644 index 1844dcf..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContent.php +++ /dev/null @@ -1,404 +0,0 @@ - 'string', 'subject' => 'string', 'templateId' => 'int', 'date' => '\\DateTime', 'events' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailContentEvents[]', 'body' => 'string', 'attachmentCount' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'subject' => null, 'templateId' => 'int64', 'date' => 'date-time', 'events' => null, 'body' => null, 'attachmentCount' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'subject' => 'subject', 'templateId' => 'templateId', 'date' => 'date', 'events' => 'events', 'body' => 'body', 'attachmentCount' => 'attachmentCount']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'subject' => 'setSubject', 'templateId' => 'setTemplateId', 'date' => 'setDate', 'events' => 'setEvents', 'body' => 'setBody', 'attachmentCount' => 'setAttachmentCount']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'subject' => 'getSubject', 'templateId' => 'getTemplateId', 'date' => 'getDate', 'events' => 'getEvents', 'body' => 'getBody', 'attachmentCount' => 'getAttachmentCount']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['subject'] = isset($data['subject']) ? $data['subject'] : null; - $this->container['templateId'] = isset($data['templateId']) ? $data['templateId'] : null; - $this->container['date'] = isset($data['date']) ? $data['date'] : null; - $this->container['events'] = isset($data['events']) ? $data['events'] : null; - $this->container['body'] = isset($data['body']) ? $data['body'] : null; - $this->container['attachmentCount'] = isset($data['attachmentCount']) ? $data['attachmentCount'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - if ($this->container['subject'] === null) { - $invalidProperties[] = "'subject' can't be null"; - } - if ($this->container['date'] === null) { - $invalidProperties[] = "'date' can't be null"; - } - if ($this->container['events'] === null) { - $invalidProperties[] = "'events' can't be null"; - } - if ($this->container['body'] === null) { - $invalidProperties[] = "'body' can't be null"; - } - if ($this->container['attachmentCount'] === null) { - $invalidProperties[] = "'attachmentCount' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email address to which transactional email has been sent - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets subject - * - * @return string - */ - public function getSubject() - { - return $this->container['subject']; - } - /** - * Sets subject - * - * @param string $subject Subject of the sent email - * - * @return $this - */ - public function setSubject($subject) - { - $this->container['subject'] = $subject; - return $this; - } - /** - * Gets templateId - * - * @return int - */ - public function getTemplateId() - { - return $this->container['templateId']; - } - /** - * Sets templateId - * - * @param int $templateId Id of the template - * - * @return $this - */ - public function setTemplateId($templateId) - { - $this->container['templateId'] = $templateId; - return $this; - } - /** - * Gets date - * - * @return \DateTime - */ - public function getDate() - { - return $this->container['date']; - } - /** - * Sets date - * - * @param \DateTime $date Date on which transactional email was sent - * - * @return $this - */ - public function setDate($date) - { - $this->container['date'] = $date; - return $this; - } - /** - * Gets events - * - * @return \SendinBlue\Client\Model\GetTransacEmailContentEvents[] - */ - public function getEvents() - { - return $this->container['events']; - } - /** - * Sets events - * - * @param \SendinBlue\Client\Model\GetTransacEmailContentEvents[] $events Series of events which occurred on the transactional email - * - * @return $this - */ - public function setEvents($events) - { - $this->container['events'] = $events; - return $this; - } - /** - * Gets body - * - * @return string - */ - public function getBody() - { - return $this->container['body']; - } - /** - * Sets body - * - * @param string $body Actual content of the transactional email that has been sent - * - * @return $this - */ - public function setBody($body) - { - $this->container['body'] = $body; - return $this; - } - /** - * Gets attachmentCount - * - * @return int - */ - public function getAttachmentCount() - { - return $this->container['attachmentCount']; - } - /** - * Sets attachmentCount - * - * @param int $attachmentCount Count of the attachments that were sent in the email - * - * @return $this - */ - public function setAttachmentCount($attachmentCount) - { - $this->container['attachmentCount'] = $attachmentCount; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContentEvents.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContentEvents.php deleted file mode 100644 index 4de1e61..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContentEvents.php +++ /dev/null @@ -1,282 +0,0 @@ - 'string', 'time' => '\\DateTime']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'time' => 'date-time']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'time' => 'time']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'time' => 'setTime']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'time' => 'getTime']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['time'] = isset($data['time']) ? $data['time'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - if ($this->container['time'] === null) { - $invalidProperties[] = "'time' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the event that occurred on the sent email - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets time - * - * @return \DateTime - */ - public function getTime() - { - return $this->container['time']; - } - /** - * Sets time - * - * @param \DateTime $time Time at which the event occurred - * - * @return $this - */ - public function setTime($time) - { - $this->container['time'] = $time; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsList.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsList.php deleted file mode 100644 index 9b18de4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsList.php +++ /dev/null @@ -1,254 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacEmailsListTransactionalEmails[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['transactionalEmails' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['transactionalEmails' => 'transactionalEmails']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['transactionalEmails' => 'setTransactionalEmails']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['transactionalEmails' => 'getTransactionalEmails']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['transactionalEmails'] = isset($data['transactionalEmails']) ? $data['transactionalEmails'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets transactionalEmails - * - * @return \SendinBlue\Client\Model\GetTransacEmailsListTransactionalEmails[] - */ - public function getTransactionalEmails() - { - return $this->container['transactionalEmails']; - } - /** - * Sets transactionalEmails - * - * @param \SendinBlue\Client\Model\GetTransacEmailsListTransactionalEmails[] $transactionalEmails transactionalEmails - * - * @return $this - */ - public function setTransactionalEmails($transactionalEmails) - { - $this->container['transactionalEmails'] = $transactionalEmails; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsListTransactionalEmails.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsListTransactionalEmails.php deleted file mode 100644 index 258030e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsListTransactionalEmails.php +++ /dev/null @@ -1,423 +0,0 @@ - 'string', 'subject' => 'string', 'templateId' => 'int', 'messageId' => 'string', 'uuid' => 'string', 'date' => '\\DateTime', 'from' => 'string', 'tags' => 'string[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'subject' => null, 'templateId' => 'int64', 'messageId' => null, 'uuid' => null, 'date' => 'date-time', 'from' => 'email', 'tags' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'subject' => 'subject', 'templateId' => 'templateId', 'messageId' => 'messageId', 'uuid' => 'uuid', 'date' => 'date', 'from' => 'from', 'tags' => 'tags']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'subject' => 'setSubject', 'templateId' => 'setTemplateId', 'messageId' => 'setMessageId', 'uuid' => 'setUuid', 'date' => 'setDate', 'from' => 'setFrom', 'tags' => 'setTags']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'subject' => 'getSubject', 'templateId' => 'getTemplateId', 'messageId' => 'getMessageId', 'uuid' => 'getUuid', 'date' => 'getDate', 'from' => 'getFrom', 'tags' => 'getTags']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['subject'] = isset($data['subject']) ? $data['subject'] : null; - $this->container['templateId'] = isset($data['templateId']) ? $data['templateId'] : null; - $this->container['messageId'] = isset($data['messageId']) ? $data['messageId'] : null; - $this->container['uuid'] = isset($data['uuid']) ? $data['uuid'] : null; - $this->container['date'] = isset($data['date']) ? $data['date'] : null; - $this->container['from'] = isset($data['from']) ? $data['from'] : null; - $this->container['tags'] = isset($data['tags']) ? $data['tags'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - if ($this->container['subject'] === null) { - $invalidProperties[] = "'subject' can't be null"; - } - if ($this->container['messageId'] === null) { - $invalidProperties[] = "'messageId' can't be null"; - } - if ($this->container['uuid'] === null) { - $invalidProperties[] = "'uuid' can't be null"; - } - if ($this->container['date'] === null) { - $invalidProperties[] = "'date' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email address to which transactional email has been sent - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets subject - * - * @return string - */ - public function getSubject() - { - return $this->container['subject']; - } - /** - * Sets subject - * - * @param string $subject Subject of the sent email - * - * @return $this - */ - public function setSubject($subject) - { - $this->container['subject'] = $subject; - return $this; - } - /** - * Gets templateId - * - * @return int - */ - public function getTemplateId() - { - return $this->container['templateId']; - } - /** - * Sets templateId - * - * @param int $templateId Id of the template - * - * @return $this - */ - public function setTemplateId($templateId) - { - $this->container['templateId'] = $templateId; - return $this; - } - /** - * Gets messageId - * - * @return string - */ - public function getMessageId() - { - return $this->container['messageId']; - } - /** - * Sets messageId - * - * @param string $messageId Message Id of the sent email - * - * @return $this - */ - public function setMessageId($messageId) - { - $this->container['messageId'] = $messageId; - return $this; - } - /** - * Gets uuid - * - * @return string - */ - public function getUuid() - { - return $this->container['uuid']; - } - /** - * Sets uuid - * - * @param string $uuid Unique id of the email sent to a particular contact - * - * @return $this - */ - public function setUuid($uuid) - { - $this->container['uuid'] = $uuid; - return $this; - } - /** - * Gets date - * - * @return \DateTime - */ - public function getDate() - { - return $this->container['date']; - } - /** - * Sets date - * - * @param \DateTime $date Date on which transactional email was sent - * - * @return $this - */ - public function setDate($date) - { - $this->container['date'] = $date; - return $this; - } - /** - * Gets from - * - * @return string - */ - public function getFrom() - { - return $this->container['from']; - } - /** - * Sets from - * - * @param string $from Email address of the sender from which the email was sent - * - * @return $this - */ - public function setFrom($from) - { - $this->container['from'] = $from; - return $this; - } - /** - * Gets tags - * - * @return string[] - */ - public function getTags() - { - return $this->container['tags']; - } - /** - * Sets tags - * - * @param string[] $tags Tags used for your email - * - * @return $this - */ - public function setTags($tags) - { - $this->container['tags'] = $tags; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReport.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReport.php deleted file mode 100644 index 321506a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReport.php +++ /dev/null @@ -1,254 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\GetTransacSmsReportReports[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['reports' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['reports' => 'reports']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['reports' => 'setReports']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['reports' => 'getReports']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['reports'] = isset($data['reports']) ? $data['reports'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets reports - * - * @return \SendinBlue\Client\Model\GetTransacSmsReportReports[] - */ - public function getReports() - { - return $this->container['reports']; - } - /** - * Sets reports - * - * @param \SendinBlue\Client\Model\GetTransacSmsReportReports[] $reports reports - * - * @return $this - */ - public function setReports($reports) - { - $this->container['reports'] = $reports; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReportReports.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReportReports.php deleted file mode 100644 index 3bd4222..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReportReports.php +++ /dev/null @@ -1,482 +0,0 @@ - '\\DateTime', 'requests' => 'int', 'delivered' => 'int', 'hardBounces' => 'int', 'softBounces' => 'int', 'blocked' => 'int', 'unsubscribed' => 'int', 'replied' => 'int', 'accepted' => 'int', 'rejected' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['date' => 'date', 'requests' => 'int64', 'delivered' => 'int64', 'hardBounces' => 'int64', 'softBounces' => 'int64', 'blocked' => 'int64', 'unsubscribed' => 'int64', 'replied' => 'int64', 'accepted' => 'int64', 'rejected' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['date' => 'date', 'requests' => 'requests', 'delivered' => 'delivered', 'hardBounces' => 'hardBounces', 'softBounces' => 'softBounces', 'blocked' => 'blocked', 'unsubscribed' => 'unsubscribed', 'replied' => 'replied', 'accepted' => 'accepted', 'rejected' => 'rejected']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['date' => 'setDate', 'requests' => 'setRequests', 'delivered' => 'setDelivered', 'hardBounces' => 'setHardBounces', 'softBounces' => 'setSoftBounces', 'blocked' => 'setBlocked', 'unsubscribed' => 'setUnsubscribed', 'replied' => 'setReplied', 'accepted' => 'setAccepted', 'rejected' => 'setRejected']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['date' => 'getDate', 'requests' => 'getRequests', 'delivered' => 'getDelivered', 'hardBounces' => 'getHardBounces', 'softBounces' => 'getSoftBounces', 'blocked' => 'getBlocked', 'unsubscribed' => 'getUnsubscribed', 'replied' => 'getReplied', 'accepted' => 'getAccepted', 'rejected' => 'getRejected']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['date'] = isset($data['date']) ? $data['date'] : null; - $this->container['requests'] = isset($data['requests']) ? $data['requests'] : null; - $this->container['delivered'] = isset($data['delivered']) ? $data['delivered'] : null; - $this->container['hardBounces'] = isset($data['hardBounces']) ? $data['hardBounces'] : null; - $this->container['softBounces'] = isset($data['softBounces']) ? $data['softBounces'] : null; - $this->container['blocked'] = isset($data['blocked']) ? $data['blocked'] : null; - $this->container['unsubscribed'] = isset($data['unsubscribed']) ? $data['unsubscribed'] : null; - $this->container['replied'] = isset($data['replied']) ? $data['replied'] : null; - $this->container['accepted'] = isset($data['accepted']) ? $data['accepted'] : null; - $this->container['rejected'] = isset($data['rejected']) ? $data['rejected'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['date'] === null) { - $invalidProperties[] = "'date' can't be null"; - } - if ($this->container['requests'] === null) { - $invalidProperties[] = "'requests' can't be null"; - } - if ($this->container['delivered'] === null) { - $invalidProperties[] = "'delivered' can't be null"; - } - if ($this->container['hardBounces'] === null) { - $invalidProperties[] = "'hardBounces' can't be null"; - } - if ($this->container['softBounces'] === null) { - $invalidProperties[] = "'softBounces' can't be null"; - } - if ($this->container['blocked'] === null) { - $invalidProperties[] = "'blocked' can't be null"; - } - if ($this->container['unsubscribed'] === null) { - $invalidProperties[] = "'unsubscribed' can't be null"; - } - if ($this->container['replied'] === null) { - $invalidProperties[] = "'replied' can't be null"; - } - if ($this->container['accepted'] === null) { - $invalidProperties[] = "'accepted' can't be null"; - } - if ($this->container['rejected'] === null) { - $invalidProperties[] = "'rejected' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets date - * - * @return \DateTime - */ - public function getDate() - { - return $this->container['date']; - } - /** - * Sets date - * - * @param \DateTime $date Date for which statistics are retrieved - * - * @return $this - */ - public function setDate($date) - { - $this->container['date'] = $date; - return $this; - } - /** - * Gets requests - * - * @return int - */ - public function getRequests() - { - return $this->container['requests']; - } - /** - * Sets requests - * - * @param int $requests Number of requests for the date - * - * @return $this - */ - public function setRequests($requests) - { - $this->container['requests'] = $requests; - return $this; - } - /** - * Gets delivered - * - * @return int - */ - public function getDelivered() - { - return $this->container['delivered']; - } - /** - * Sets delivered - * - * @param int $delivered Number of delivered SMS for the date - * - * @return $this - */ - public function setDelivered($delivered) - { - $this->container['delivered'] = $delivered; - return $this; - } - /** - * Gets hardBounces - * - * @return int - */ - public function getHardBounces() - { - return $this->container['hardBounces']; - } - /** - * Sets hardBounces - * - * @param int $hardBounces Number of hardbounces for the date - * - * @return $this - */ - public function setHardBounces($hardBounces) - { - $this->container['hardBounces'] = $hardBounces; - return $this; - } - /** - * Gets softBounces - * - * @return int - */ - public function getSoftBounces() - { - return $this->container['softBounces']; - } - /** - * Sets softBounces - * - * @param int $softBounces Number of softbounces for the date - * - * @return $this - */ - public function setSoftBounces($softBounces) - { - $this->container['softBounces'] = $softBounces; - return $this; - } - /** - * Gets blocked - * - * @return int - */ - public function getBlocked() - { - return $this->container['blocked']; - } - /** - * Sets blocked - * - * @param int $blocked Number of blocked contact for the date - * - * @return $this - */ - public function setBlocked($blocked) - { - $this->container['blocked'] = $blocked; - return $this; - } - /** - * Gets unsubscribed - * - * @return int - */ - public function getUnsubscribed() - { - return $this->container['unsubscribed']; - } - /** - * Sets unsubscribed - * - * @param int $unsubscribed Number of unsubscription for the date - * - * @return $this - */ - public function setUnsubscribed($unsubscribed) - { - $this->container['unsubscribed'] = $unsubscribed; - return $this; - } - /** - * Gets replied - * - * @return int - */ - public function getReplied() - { - return $this->container['replied']; - } - /** - * Sets replied - * - * @param int $replied Number of answered SMS for the date - * - * @return $this - */ - public function setReplied($replied) - { - $this->container['replied'] = $replied; - return $this; - } - /** - * Gets accepted - * - * @return int - */ - public function getAccepted() - { - return $this->container['accepted']; - } - /** - * Sets accepted - * - * @param int $accepted Number of accepted for the date - * - * @return $this - */ - public function setAccepted($accepted) - { - $this->container['accepted'] = $accepted; - return $this; - } - /** - * Gets rejected - * - * @return int - */ - public function getRejected() - { - return $this->container['rejected']; - } - /** - * Sets rejected - * - * @param int $rejected Number of rejected for the date - * - * @return $this - */ - public function setRejected($rejected) - { - $this->container['rejected'] = $rejected; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetWebhook.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetWebhook.php deleted file mode 100644 index 2fa1a6b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetWebhook.php +++ /dev/null @@ -1,426 +0,0 @@ - 'string', 'id' => 'int', 'description' => 'string', 'events' => 'string[]', 'type' => 'string', 'createdAt' => '\\DateTime', 'modifiedAt' => '\\DateTime']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['url' => 'url', 'id' => 'int64', 'description' => null, 'events' => null, 'type' => null, 'createdAt' => 'date-time', 'modifiedAt' => 'date-time']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['url' => 'url', 'id' => 'id', 'description' => 'description', 'events' => 'events', 'type' => 'type', 'createdAt' => 'createdAt', 'modifiedAt' => 'modifiedAt']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['url' => 'setUrl', 'id' => 'setId', 'description' => 'setDescription', 'events' => 'setEvents', 'type' => 'setType', 'createdAt' => 'setCreatedAt', 'modifiedAt' => 'setModifiedAt']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['url' => 'getUrl', 'id' => 'getId', 'description' => 'getDescription', 'events' => 'getEvents', 'type' => 'getType', 'createdAt' => 'getCreatedAt', 'modifiedAt' => 'getModifiedAt']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const TYPE_MARKETING = 'marketing'; - const TYPE_TRANSAC = 'transac'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getTypeAllowableValues() - { - return [self::TYPE_MARKETING, self::TYPE_TRANSAC]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['url'] = isset($data['url']) ? $data['url'] : null; - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - $this->container['description'] = isset($data['description']) ? $data['description'] : null; - $this->container['events'] = isset($data['events']) ? $data['events'] : null; - $this->container['type'] = isset($data['type']) ? $data['type'] : null; - $this->container['createdAt'] = isset($data['createdAt']) ? $data['createdAt'] : null; - $this->container['modifiedAt'] = isset($data['modifiedAt']) ? $data['modifiedAt'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['url'] === null) { - $invalidProperties[] = "'url' can't be null"; - } - if ($this->container['id'] === null) { - $invalidProperties[] = "'id' can't be null"; - } - if ($this->container['description'] === null) { - $invalidProperties[] = "'description' can't be null"; - } - if ($this->container['events'] === null) { - $invalidProperties[] = "'events' can't be null"; - } - if ($this->container['type'] === null) { - $invalidProperties[] = "'type' can't be null"; - } - $allowedValues = $this->getTypeAllowableValues(); - if (!\is_null($this->container['type']) && !\in_array($this->container['type'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues)); - } - if ($this->container['createdAt'] === null) { - $invalidProperties[] = "'createdAt' can't be null"; - } - if ($this->container['modifiedAt'] === null) { - $invalidProperties[] = "'modifiedAt' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets url - * - * @return string - */ - public function getUrl() - { - return $this->container['url']; - } - /** - * Sets url - * - * @param string $url URL of the webhook - * - * @return $this - */ - public function setUrl($url) - { - $this->container['url'] = $url; - return $this; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id ID of the webhook - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Gets description - * - * @return string - */ - public function getDescription() - { - return $this->container['description']; - } - /** - * Sets description - * - * @param string $description Description of the webhook - * - * @return $this - */ - public function setDescription($description) - { - $this->container['description'] = $description; - return $this; - } - /** - * Gets events - * - * @return string[] - */ - public function getEvents() - { - return $this->container['events']; - } - /** - * Sets events - * - * @param string[] $events events - * - * @return $this - */ - public function setEvents($events) - { - $this->container['events'] = $events; - return $this; - } - /** - * Gets type - * - * @return string - */ - public function getType() - { - return $this->container['type']; - } - /** - * Sets type - * - * @param string $type Type of webhook (marketing or transac) - * - * @return $this - */ - public function setType($type) - { - $allowedValues = $this->getTypeAllowableValues(); - if (!\in_array($type, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['type'] = $type; - return $this; - } - /** - * Gets createdAt - * - * @return \DateTime - */ - public function getCreatedAt() - { - return $this->container['createdAt']; - } - /** - * Sets createdAt - * - * @param \DateTime $createdAt Creation UTC date-time of the webhook (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setCreatedAt($createdAt) - { - $this->container['createdAt'] = $createdAt; - return $this; - } - /** - * Gets modifiedAt - * - * @return \DateTime - */ - public function getModifiedAt() - { - return $this->container['modifiedAt']; - } - /** - * Sets modifiedAt - * - * @param \DateTime $modifiedAt Last modification UTC date-time of the webhook (YYYY-MM-DDTHH:mm:ss.SSSZ) - * - * @return $this - */ - public function setModifiedAt($modifiedAt) - { - $this->container['modifiedAt'] = $modifiedAt; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetWebhooks.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetWebhooks.php deleted file mode 100644 index 1ba43f7..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/GetWebhooks.php +++ /dev/null @@ -1,257 +0,0 @@ - 'object[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['webhooks' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['webhooks' => 'webhooks']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['webhooks' => 'setWebhooks']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['webhooks' => 'getWebhooks']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['webhooks'] = isset($data['webhooks']) ? $data['webhooks'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['webhooks'] === null) { - $invalidProperties[] = "'webhooks' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets webhooks - * - * @return object[] - */ - public function getWebhooks() - { - return $this->container['webhooks']; - } - /** - * Sets webhooks - * - * @param object[] $webhooks webhooks - * - * @return $this - */ - public function setWebhooks($webhooks) - { - $this->container['webhooks'] = $webhooks; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ManageIp.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ManageIp.php deleted file mode 100644 index e7a70ae..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ManageIp.php +++ /dev/null @@ -1,254 +0,0 @@ - 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['ip' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['ip' => 'ip']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['ip' => 'setIp']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['ip' => 'getIp']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['ip'] = isset($data['ip']) ? $data['ip'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets ip - * - * @return string - */ - public function getIp() - { - return $this->container['ip']; - } - /** - * Sets ip - * - * @param string $ip Dedicated ID - * - * @return $this - */ - public function setIp($ip) - { - $this->container['ip'] = $ip; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ModelInterface.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ModelInterface.php deleted file mode 100644 index 785be72..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/ModelInterface.php +++ /dev/null @@ -1,87 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\PostContactInfoContacts']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['contacts' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['contacts' => 'contacts']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['contacts' => 'setContacts']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['contacts' => 'getContacts']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['contacts'] = isset($data['contacts']) ? $data['contacts'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['contacts'] === null) { - $invalidProperties[] = "'contacts' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets contacts - * - * @return \SendinBlue\Client\Model\PostContactInfoContacts - */ - public function getContacts() - { - return $this->container['contacts']; - } - /** - * Sets contacts - * - * @param \SendinBlue\Client\Model\PostContactInfoContacts $contacts contacts - * - * @return $this - */ - public function setContacts($contacts) - { - $this->container['contacts'] = $contacts; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostContactInfoContacts.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostContactInfoContacts.php deleted file mode 100644 index dd22586..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostContactInfoContacts.php +++ /dev/null @@ -1,320 +0,0 @@ - 'string[]', 'failure' => 'string[]', 'total' => 'int', 'processId' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['success' => 'email', 'failure' => 'email', 'total' => 'int64', 'processId' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['success' => 'success', 'failure' => 'failure', 'total' => 'total', 'processId' => 'processId']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['success' => 'setSuccess', 'failure' => 'setFailure', 'total' => 'setTotal', 'processId' => 'setProcessId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['success' => 'getSuccess', 'failure' => 'getFailure', 'total' => 'getTotal', 'processId' => 'getProcessId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['success'] = isset($data['success']) ? $data['success'] : null; - $this->container['failure'] = isset($data['failure']) ? $data['failure'] : null; - $this->container['total'] = isset($data['total']) ? $data['total'] : null; - $this->container['processId'] = isset($data['processId']) ? $data['processId'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets success - * - * @return string[] - */ - public function getSuccess() - { - return $this->container['success']; - } - /** - * Sets success - * - * @param string[] $success success - * - * @return $this - */ - public function setSuccess($success) - { - $this->container['success'] = $success; - return $this; - } - /** - * Gets failure - * - * @return string[] - */ - public function getFailure() - { - return $this->container['failure']; - } - /** - * Sets failure - * - * @param string[] $failure failure - * - * @return $this - */ - public function setFailure($failure) - { - $this->container['failure'] = $failure; - return $this; - } - /** - * Gets total - * - * @return int - */ - public function getTotal() - { - return $this->container['total']; - } - /** - * Sets total - * - * @param int $total Displays the count of total number of contacts removed from list when user opts for \"all\" option. - * - * @return $this - */ - public function setTotal($total) - { - $this->container['total'] = $total; - return $this; - } - /** - * Gets processId - * - * @return int - */ - public function getProcessId() - { - return $this->container['processId']; - } - /** - * Sets processId - * - * @param int $processId Id of the process created to remove contacts from list when user opts for \"all\" option. - * - * @return $this - */ - public function setProcessId($processId) - { - $this->container['processId'] = $processId; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostSendFailed.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostSendFailed.php deleted file mode 100644 index 8428b45..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostSendFailed.php +++ /dev/null @@ -1,348 +0,0 @@ - 'int', 'message' => 'string', 'unexistingEmails' => 'string[]', 'withoutListEmails' => 'string[]', 'blackListedEmails' => 'string[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['code' => 'int64', 'message' => null, 'unexistingEmails' => 'email', 'withoutListEmails' => 'email', 'blackListedEmails' => 'email']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['code' => 'code', 'message' => 'message', 'unexistingEmails' => 'unexistingEmails', 'withoutListEmails' => 'withoutListEmails', 'blackListedEmails' => 'blackListedEmails']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['code' => 'setCode', 'message' => 'setMessage', 'unexistingEmails' => 'setUnexistingEmails', 'withoutListEmails' => 'setWithoutListEmails', 'blackListedEmails' => 'setBlackListedEmails']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['code' => 'getCode', 'message' => 'getMessage', 'unexistingEmails' => 'getUnexistingEmails', 'withoutListEmails' => 'getWithoutListEmails', 'blackListedEmails' => 'getBlackListedEmails']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['code'] = isset($data['code']) ? $data['code'] : null; - $this->container['message'] = isset($data['message']) ? $data['message'] : null; - $this->container['unexistingEmails'] = isset($data['unexistingEmails']) ? $data['unexistingEmails'] : null; - $this->container['withoutListEmails'] = isset($data['withoutListEmails']) ? $data['withoutListEmails'] : null; - $this->container['blackListedEmails'] = isset($data['blackListedEmails']) ? $data['blackListedEmails'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['code'] === null) { - $invalidProperties[] = "'code' can't be null"; - } - if ($this->container['message'] === null) { - $invalidProperties[] = "'message' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets code - * - * @return int - */ - public function getCode() - { - return $this->container['code']; - } - /** - * Sets code - * - * @param int $code Response code - * - * @return $this - */ - public function setCode($code) - { - $this->container['code'] = $code; - return $this; - } - /** - * Gets message - * - * @return string - */ - public function getMessage() - { - return $this->container['message']; - } - /** - * Sets message - * - * @param string $message Response message - * - * @return $this - */ - public function setMessage($message) - { - $this->container['message'] = $message; - return $this; - } - /** - * Gets unexistingEmails - * - * @return string[] - */ - public function getUnexistingEmails() - { - return $this->container['unexistingEmails']; - } - /** - * Sets unexistingEmails - * - * @param string[] $unexistingEmails unexistingEmails - * - * @return $this - */ - public function setUnexistingEmails($unexistingEmails) - { - $this->container['unexistingEmails'] = $unexistingEmails; - return $this; - } - /** - * Gets withoutListEmails - * - * @return string[] - */ - public function getWithoutListEmails() - { - return $this->container['withoutListEmails']; - } - /** - * Sets withoutListEmails - * - * @param string[] $withoutListEmails withoutListEmails - * - * @return $this - */ - public function setWithoutListEmails($withoutListEmails) - { - $this->container['withoutListEmails'] = $withoutListEmails; - return $this; - } - /** - * Gets blackListedEmails - * - * @return string[] - */ - public function getBlackListedEmails() - { - return $this->container['blackListedEmails']; - } - /** - * Sets blackListedEmails - * - * @param string[] $blackListedEmails blackListedEmails - * - * @return $this - */ - public function setBlackListedEmails($blackListedEmails) - { - $this->container['blackListedEmails'] = $blackListedEmails; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostSendSmsTestFailed.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostSendSmsTestFailed.php deleted file mode 100644 index 18706ca..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/PostSendSmsTestFailed.php +++ /dev/null @@ -1,326 +0,0 @@ - 'int', 'message' => 'string', 'unexistingSms' => 'string[]', 'withoutListSms' => 'string[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['code' => 'int64', 'message' => null, 'unexistingSms' => 'email', 'withoutListSms' => 'email']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['code' => 'code', 'message' => 'message', 'unexistingSms' => 'unexistingSms', 'withoutListSms' => 'withoutListSms']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['code' => 'setCode', 'message' => 'setMessage', 'unexistingSms' => 'setUnexistingSms', 'withoutListSms' => 'setWithoutListSms']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['code' => 'getCode', 'message' => 'getMessage', 'unexistingSms' => 'getUnexistingSms', 'withoutListSms' => 'getWithoutListSms']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['code'] = isset($data['code']) ? $data['code'] : null; - $this->container['message'] = isset($data['message']) ? $data['message'] : null; - $this->container['unexistingSms'] = isset($data['unexistingSms']) ? $data['unexistingSms'] : null; - $this->container['withoutListSms'] = isset($data['withoutListSms']) ? $data['withoutListSms'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['code'] === null) { - $invalidProperties[] = "'code' can't be null"; - } - if ($this->container['message'] === null) { - $invalidProperties[] = "'message' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets code - * - * @return int - */ - public function getCode() - { - return $this->container['code']; - } - /** - * Sets code - * - * @param int $code Response code - * - * @return $this - */ - public function setCode($code) - { - $this->container['code'] = $code; - return $this; - } - /** - * Gets message - * - * @return string - */ - public function getMessage() - { - return $this->container['message']; - } - /** - * Sets message - * - * @param string $message Response message - * - * @return $this - */ - public function setMessage($message) - { - $this->container['message'] = $message; - return $this; - } - /** - * Gets unexistingSms - * - * @return string[] - */ - public function getUnexistingSms() - { - return $this->container['unexistingSms']; - } - /** - * Sets unexistingSms - * - * @param string[] $unexistingSms unexistingSms - * - * @return $this - */ - public function setUnexistingSms($unexistingSms) - { - $this->container['unexistingSms'] = $unexistingSms; - return $this; - } - /** - * Gets withoutListSms - * - * @return string[] - */ - public function getWithoutListSms() - { - return $this->container['withoutListSms']; - } - /** - * Sets withoutListSms - * - * @param string[] $withoutListSms withoutListSms - * - * @return $this - */ - public function setWithoutListSms($withoutListSms) - { - $this->container['withoutListSms'] = $withoutListSms; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModel.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModel.php deleted file mode 100644 index 52b2c98..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModel.php +++ /dev/null @@ -1,282 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemainingCreditModelChild', 'reseller' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RemainingCreditModelReseller']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['child' => null, 'reseller' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['child' => 'child', 'reseller' => 'reseller']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['child' => 'setChild', 'reseller' => 'setReseller']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['child' => 'getChild', 'reseller' => 'getReseller']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['child'] = isset($data['child']) ? $data['child'] : null; - $this->container['reseller'] = isset($data['reseller']) ? $data['reseller'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['child'] === null) { - $invalidProperties[] = "'child' can't be null"; - } - if ($this->container['reseller'] === null) { - $invalidProperties[] = "'reseller' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets child - * - * @return \SendinBlue\Client\Model\RemainingCreditModelChild - */ - public function getChild() - { - return $this->container['child']; - } - /** - * Sets child - * - * @param \SendinBlue\Client\Model\RemainingCreditModelChild $child child - * - * @return $this - */ - public function setChild($child) - { - $this->container['child'] = $child; - return $this; - } - /** - * Gets reseller - * - * @return \SendinBlue\Client\Model\RemainingCreditModelReseller - */ - public function getReseller() - { - return $this->container['reseller']; - } - /** - * Sets reseller - * - * @param \SendinBlue\Client\Model\RemainingCreditModelReseller $reseller reseller - * - * @return $this - */ - public function setReseller($reseller) - { - $this->container['reseller'] = $reseller; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelChild.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelChild.php deleted file mode 100644 index 64e2724..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelChild.php +++ /dev/null @@ -1,283 +0,0 @@ - 'double', 'email' => 'double']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['sms' => 'double', 'email' => 'double']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['sms' => 'sms', 'email' => 'email']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['sms' => 'setSms', 'email' => 'setEmail']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['sms' => 'getSms', 'email' => 'getEmail']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['sms'] = isset($data['sms']) ? $data['sms'] : null; - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['sms'] === null) { - $invalidProperties[] = "'sms' can't be null"; - } - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets sms - * - * @return double - */ - public function getSms() - { - return $this->container['sms']; - } - /** - * Sets sms - * - * @param double $sms SMS Credits remaining for child account - * - * @return $this - */ - public function setSms($sms) - { - $this->container['sms'] = $sms; - return $this; - } - /** - * Gets email - * - * @return double - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param double $email Email Credits remaining for child account - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelReseller.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelReseller.php deleted file mode 100644 index 041b4cc..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelReseller.php +++ /dev/null @@ -1,282 +0,0 @@ - 'double', 'email' => 'double']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['sms' => 'double', 'email' => 'double']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['sms' => 'sms', 'email' => 'email']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['sms' => 'setSms', 'email' => 'setEmail']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['sms' => 'getSms', 'email' => 'getEmail']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['sms'] = isset($data['sms']) ? $data['sms'] : null; - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['sms'] === null) { - $invalidProperties[] = "'sms' can't be null"; - } - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets sms - * - * @return double - */ - public function getSms() - { - return $this->container['sms']; - } - /** - * Sets sms - * - * @param double $sms SMS Credits remaining for reseller account - * - * @return $this - */ - public function setSms($sms) - { - $this->container['sms'] = $sms; - return $this; - } - /** - * Gets email - * - * @return double - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param double $email Email Credits remaining for reseller account - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemoveContactFromList.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemoveContactFromList.php deleted file mode 100644 index 8bffc70..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemoveContactFromList.php +++ /dev/null @@ -1,276 +0,0 @@ - 'string[]', 'all' => 'bool']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['emails' => 'email', 'all' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['emails' => 'emails', 'all' => 'all']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['emails' => 'setEmails', 'all' => 'setAll']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['emails' => 'getEmails', 'all' => 'getAll']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['emails'] = isset($data['emails']) ? $data['emails'] : null; - $this->container['all'] = isset($data['all']) ? $data['all'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets emails - * - * @return string[] - */ - public function getEmails() - { - return $this->container['emails']; - } - /** - * Sets emails - * - * @param string[] $emails Required if 'all' is false. Emails to remove from a list. You can pass a maximum of 150 emails for removal in one request. - * - * @return $this - */ - public function setEmails($emails) - { - $this->container['emails'] = $emails; - return $this; - } - /** - * Gets all - * - * @return bool - */ - public function getAll() - { - return $this->container['all']; - } - /** - * Sets all - * - * @param bool $all Required if 'emails' is empty. Remove all existing contacts from a list. A process will be created in this scenario. You can fetch the process details to know about the progress - * - * @return $this - */ - public function setAll($all) - { - $this->container['all'] = $all; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemoveCredits.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemoveCredits.php deleted file mode 100644 index fbe3121..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RemoveCredits.php +++ /dev/null @@ -1,276 +0,0 @@ - 'int', 'email' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['sms' => 'int64', 'email' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['sms' => 'sms', 'email' => 'email']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['sms' => 'setSms', 'email' => 'setEmail']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['sms' => 'getSms', 'email' => 'getEmail']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['sms'] = isset($data['sms']) ? $data['sms'] : null; - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets sms - * - * @return int - */ - public function getSms() - { - return $this->container['sms']; - } - /** - * Sets sms - * - * @param int $sms Required if email credits are empty. SMS credits to be removed from the child account - * - * @return $this - */ - public function setSms($sms) - { - $this->container['sms'] = $sms; - return $this; - } - /** - * Gets email - * - * @return int - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param int $email Required if sms credits are empty. Email credits to be removed from the child account - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactExport.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactExport.php deleted file mode 100644 index 00e0908..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactExport.php +++ /dev/null @@ -1,320 +0,0 @@ - 'string[]', 'contactFilter' => 'object', 'customContactFilter' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RequestContactExportCustomContactFilter', 'notifyUrl' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['exportAttributes' => null, 'contactFilter' => null, 'customContactFilter' => null, 'notifyUrl' => 'url']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['exportAttributes' => 'exportAttributes', 'contactFilter' => 'contactFilter', 'customContactFilter' => 'customContactFilter', 'notifyUrl' => 'notifyUrl']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['exportAttributes' => 'setExportAttributes', 'contactFilter' => 'setContactFilter', 'customContactFilter' => 'setCustomContactFilter', 'notifyUrl' => 'setNotifyUrl']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['exportAttributes' => 'getExportAttributes', 'contactFilter' => 'getContactFilter', 'customContactFilter' => 'getCustomContactFilter', 'notifyUrl' => 'getNotifyUrl']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['exportAttributes'] = isset($data['exportAttributes']) ? $data['exportAttributes'] : null; - $this->container['contactFilter'] = isset($data['contactFilter']) ? $data['contactFilter'] : null; - $this->container['customContactFilter'] = isset($data['customContactFilter']) ? $data['customContactFilter'] : null; - $this->container['notifyUrl'] = isset($data['notifyUrl']) ? $data['notifyUrl'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets exportAttributes - * - * @return string[] - */ - public function getExportAttributes() - { - return $this->container['exportAttributes']; - } - /** - * Sets exportAttributes - * - * @param string[] $exportAttributes List of all the attributes that you want to export. These attributes must be present in your contact database. For example, ['fname', 'lname', 'email']. - * - * @return $this - */ - public function setExportAttributes($exportAttributes) - { - $this->container['exportAttributes'] = $exportAttributes; - return $this; - } - /** - * Gets contactFilter - * - * @return object - */ - public function getContactFilter() - { - return $this->container['contactFilter']; - } - /** - * Sets contactFilter - * - * @param object $contactFilter This attribute has been deprecated and will be removed by January 1st, 2021. Only one of the two filter options (contactFilter or customContactFilter) can be passed in the request. Set the filter for the contacts to be exported. For example, {\"blacklisted\":true} will export all the blacklisted contacts. - * - * @return $this - */ - public function setContactFilter($contactFilter) - { - $this->container['contactFilter'] = $contactFilter; - return $this; - } - /** - * Gets customContactFilter - * - * @return \SendinBlue\Client\Model\RequestContactExportCustomContactFilter - */ - public function getCustomContactFilter() - { - return $this->container['customContactFilter']; - } - /** - * Sets customContactFilter - * - * @param \SendinBlue\Client\Model\RequestContactExportCustomContactFilter $customContactFilter customContactFilter - * - * @return $this - */ - public function setCustomContactFilter($customContactFilter) - { - $this->container['customContactFilter'] = $customContactFilter; - return $this; - } - /** - * Gets notifyUrl - * - * @return string - */ - public function getNotifyUrl() - { - return $this->container['notifyUrl']; - } - /** - * Sets notifyUrl - * - * @param string $notifyUrl Webhook that will be called once the export process is finished. For reference, https://help.sendinblue.com/hc/en-us/articles/360007666479 - * - * @return $this - */ - public function setNotifyUrl($notifyUrl) - { - $this->container['notifyUrl'] = $notifyUrl; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactExportCustomContactFilter.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactExportCustomContactFilter.php deleted file mode 100644 index 5b8e17c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactExportCustomContactFilter.php +++ /dev/null @@ -1,430 +0,0 @@ - 'string', 'actionForEmailCampaigns' => 'string', 'actionForSmsCampaigns' => 'string', 'listId' => 'int', 'emailCampaignId' => 'int', 'smsCampaignId' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['actionForContacts' => null, 'actionForEmailCampaigns' => null, 'actionForSmsCampaigns' => null, 'listId' => 'int64', 'emailCampaignId' => 'int64', 'smsCampaignId' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['actionForContacts' => 'actionForContacts', 'actionForEmailCampaigns' => 'actionForEmailCampaigns', 'actionForSmsCampaigns' => 'actionForSmsCampaigns', 'listId' => 'listId', 'emailCampaignId' => 'emailCampaignId', 'smsCampaignId' => 'smsCampaignId']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['actionForContacts' => 'setActionForContacts', 'actionForEmailCampaigns' => 'setActionForEmailCampaigns', 'actionForSmsCampaigns' => 'setActionForSmsCampaigns', 'listId' => 'setListId', 'emailCampaignId' => 'setEmailCampaignId', 'smsCampaignId' => 'setSmsCampaignId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['actionForContacts' => 'getActionForContacts', 'actionForEmailCampaigns' => 'getActionForEmailCampaigns', 'actionForSmsCampaigns' => 'getActionForSmsCampaigns', 'listId' => 'getListId', 'emailCampaignId' => 'getEmailCampaignId', 'smsCampaignId' => 'getSmsCampaignId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const ACTION_FOR_CONTACTS_ALL_CONTACTS = 'allContacts'; - const ACTION_FOR_CONTACTS_SUBSCRIBED = 'subscribed'; - const ACTION_FOR_CONTACTS_UNSUBSCRIBED = 'unsubscribed'; - const ACTION_FOR_CONTACTS_UNSUBSCRIBED_PER_LIST = 'unsubscribedPerList'; - const ACTION_FOR_EMAIL_CAMPAIGNS_OPENERS = 'openers'; - const ACTION_FOR_EMAIL_CAMPAIGNS_NON_OPENERS = 'nonOpeners'; - const ACTION_FOR_EMAIL_CAMPAIGNS_CLICKERS = 'clickers'; - const ACTION_FOR_EMAIL_CAMPAIGNS_NON_CLICKERS = 'nonClickers'; - const ACTION_FOR_EMAIL_CAMPAIGNS_UNSUBSCRIBED = 'unsubscribed'; - const ACTION_FOR_EMAIL_CAMPAIGNS_HARD_BOUNCES = 'hardBounces'; - const ACTION_FOR_EMAIL_CAMPAIGNS_SOFT_BOUNCES = 'softBounces'; - const ACTION_FOR_SMS_CAMPAIGNS_HARD_BOUNCES = 'hardBounces'; - const ACTION_FOR_SMS_CAMPAIGNS_SOFT_BOUNCES = 'softBounces'; - const ACTION_FOR_SMS_CAMPAIGNS_UNSUBSCRIBED = 'unsubscribed'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getActionForContactsAllowableValues() - { - return [self::ACTION_FOR_CONTACTS_ALL_CONTACTS, self::ACTION_FOR_CONTACTS_SUBSCRIBED, self::ACTION_FOR_CONTACTS_UNSUBSCRIBED, self::ACTION_FOR_CONTACTS_UNSUBSCRIBED_PER_LIST]; - } - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getActionForEmailCampaignsAllowableValues() - { - return [self::ACTION_FOR_EMAIL_CAMPAIGNS_OPENERS, self::ACTION_FOR_EMAIL_CAMPAIGNS_NON_OPENERS, self::ACTION_FOR_EMAIL_CAMPAIGNS_CLICKERS, self::ACTION_FOR_EMAIL_CAMPAIGNS_NON_CLICKERS, self::ACTION_FOR_EMAIL_CAMPAIGNS_UNSUBSCRIBED, self::ACTION_FOR_EMAIL_CAMPAIGNS_HARD_BOUNCES, self::ACTION_FOR_EMAIL_CAMPAIGNS_SOFT_BOUNCES]; - } - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getActionForSmsCampaignsAllowableValues() - { - return [self::ACTION_FOR_SMS_CAMPAIGNS_HARD_BOUNCES, self::ACTION_FOR_SMS_CAMPAIGNS_SOFT_BOUNCES, self::ACTION_FOR_SMS_CAMPAIGNS_UNSUBSCRIBED]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['actionForContacts'] = isset($data['actionForContacts']) ? $data['actionForContacts'] : null; - $this->container['actionForEmailCampaigns'] = isset($data['actionForEmailCampaigns']) ? $data['actionForEmailCampaigns'] : null; - $this->container['actionForSmsCampaigns'] = isset($data['actionForSmsCampaigns']) ? $data['actionForSmsCampaigns'] : null; - $this->container['listId'] = isset($data['listId']) ? $data['listId'] : null; - $this->container['emailCampaignId'] = isset($data['emailCampaignId']) ? $data['emailCampaignId'] : null; - $this->container['smsCampaignId'] = isset($data['smsCampaignId']) ? $data['smsCampaignId'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - $allowedValues = $this->getActionForContactsAllowableValues(); - if (!\is_null($this->container['actionForContacts']) && !\in_array($this->container['actionForContacts'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'actionForContacts', must be one of '%s'", \implode("', '", $allowedValues)); - } - $allowedValues = $this->getActionForEmailCampaignsAllowableValues(); - if (!\is_null($this->container['actionForEmailCampaigns']) && !\in_array($this->container['actionForEmailCampaigns'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'actionForEmailCampaigns', must be one of '%s'", \implode("', '", $allowedValues)); - } - $allowedValues = $this->getActionForSmsCampaignsAllowableValues(); - if (!\is_null($this->container['actionForSmsCampaigns']) && !\in_array($this->container['actionForSmsCampaigns'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'actionForSmsCampaigns', must be one of '%s'", \implode("', '", $allowedValues)); - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets actionForContacts - * - * @return string - */ - public function getActionForContacts() - { - return $this->container['actionForContacts']; - } - /** - * Sets actionForContacts - * - * @param string $actionForContacts Mandatory if neither actionForEmailCampaigns nor actionForSmsCampaigns is passed. This will export the contacts on the basis of provided action applied on contacts as per the list id. * allContacts - Fetch the list of all contacts for a particular list. * subscribed & unsubscribed - Fetch the list of subscribed / unsubscribed (blacklisted via any means) contacts for a particular list. * unsubscribedPerList - Fetch the list of contacts that are unsubscribed from a particular list only. - * - * @return $this - */ - public function setActionForContacts($actionForContacts) - { - $allowedValues = $this->getActionForContactsAllowableValues(); - if (!\is_null($actionForContacts) && !\in_array($actionForContacts, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'actionForContacts', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['actionForContacts'] = $actionForContacts; - return $this; - } - /** - * Gets actionForEmailCampaigns - * - * @return string - */ - public function getActionForEmailCampaigns() - { - return $this->container['actionForEmailCampaigns']; - } - /** - * Sets actionForEmailCampaigns - * - * @param string $actionForEmailCampaigns Mandatory if neither actionForContacts nor actionForSmsCampaigns is passed. This will export the contacts on the basis of provided action applied on email campaigns. * openers & nonOpeners - emailCampaignId is mandatory. Fetch the list of readers / non-readers for a particular email campaign. * clickers & nonClickers - emailCampaignId is mandatory. Fetch the list of clickers / non-clickers for a particular email campaign. * unsubscribed - emailCampaignId is mandatory. Fetch the list of all unsubscribed (blacklisted via any means) contacts for a particular email campaign. * hardBounces & softBounces - emailCampaignId is optional. Fetch the list of hard bounces / soft bounces for a particular / all email campaign(s). - * - * @return $this - */ - public function setActionForEmailCampaigns($actionForEmailCampaigns) - { - $allowedValues = $this->getActionForEmailCampaignsAllowableValues(); - if (!\is_null($actionForEmailCampaigns) && !\in_array($actionForEmailCampaigns, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'actionForEmailCampaigns', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['actionForEmailCampaigns'] = $actionForEmailCampaigns; - return $this; - } - /** - * Gets actionForSmsCampaigns - * - * @return string - */ - public function getActionForSmsCampaigns() - { - return $this->container['actionForSmsCampaigns']; - } - /** - * Sets actionForSmsCampaigns - * - * @param string $actionForSmsCampaigns Mandatory if neither actionForContacts nor actionForEmailCampaigns is passed. This will export the contacts on the basis of provided action applied on sms campaigns. * unsubscribed - Fetch the list of all unsubscribed (blacklisted via any means) contacts for all / particular sms campaigns. * hardBounces & softBounces - Fetch the list of hard bounces / soft bounces for all / particular sms campaigns. - * - * @return $this - */ - public function setActionForSmsCampaigns($actionForSmsCampaigns) - { - $allowedValues = $this->getActionForSmsCampaignsAllowableValues(); - if (!\is_null($actionForSmsCampaigns) && !\in_array($actionForSmsCampaigns, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'actionForSmsCampaigns', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['actionForSmsCampaigns'] = $actionForSmsCampaigns; - return $this; - } - /** - * Gets listId - * - * @return int - */ - public function getListId() - { - return $this->container['listId']; - } - /** - * Sets listId - * - * @param int $listId Mandatory if actionForContacts is passed, ignored otherwise. Id of the list for which the corresponding action shall be applied in the filter. - * - * @return $this - */ - public function setListId($listId) - { - $this->container['listId'] = $listId; - return $this; - } - /** - * Gets emailCampaignId - * - * @return int - */ - public function getEmailCampaignId() - { - return $this->container['emailCampaignId']; - } - /** - * Sets emailCampaignId - * - * @param int $emailCampaignId Considered only if actionForEmailCampaigns is passed, ignored otherwise. Mandatory if action is one of the following - openers, nonOpeners, clickers, nonClickers, unsubscribed. The id of the email campaign for which the corresponding action shall be applied in the filter. - * - * @return $this - */ - public function setEmailCampaignId($emailCampaignId) - { - $this->container['emailCampaignId'] = $emailCampaignId; - return $this; - } - /** - * Gets smsCampaignId - * - * @return int - */ - public function getSmsCampaignId() - { - return $this->container['smsCampaignId']; - } - /** - * Sets smsCampaignId - * - * @param int $smsCampaignId Considered only if actionForSmsCampaigns is passed, ignored otherwise. The id of sms campaign for which the corresponding action shall be applied in the filter. - * - * @return $this - */ - public function setSmsCampaignId($smsCampaignId) - { - $this->container['smsCampaignId'] = $smsCampaignId; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactImport.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactImport.php deleted file mode 100644 index c68391b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactImport.php +++ /dev/null @@ -1,430 +0,0 @@ - 'string', 'fileBody' => 'string', 'listIds' => 'int[]', 'notifyUrl' => 'string', 'newList' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\RequestContactImportNewList', 'emailBlacklist' => 'bool', 'smsBlacklist' => 'bool', 'updateExistingContacts' => 'bool', 'emptyContactsAttributes' => 'bool']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['fileUrl' => 'url', 'fileBody' => null, 'listIds' => 'int64', 'notifyUrl' => 'url', 'newList' => null, 'emailBlacklist' => null, 'smsBlacklist' => null, 'updateExistingContacts' => null, 'emptyContactsAttributes' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['fileUrl' => 'fileUrl', 'fileBody' => 'fileBody', 'listIds' => 'listIds', 'notifyUrl' => 'notifyUrl', 'newList' => 'newList', 'emailBlacklist' => 'emailBlacklist', 'smsBlacklist' => 'smsBlacklist', 'updateExistingContacts' => 'updateExistingContacts', 'emptyContactsAttributes' => 'emptyContactsAttributes']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['fileUrl' => 'setFileUrl', 'fileBody' => 'setFileBody', 'listIds' => 'setListIds', 'notifyUrl' => 'setNotifyUrl', 'newList' => 'setNewList', 'emailBlacklist' => 'setEmailBlacklist', 'smsBlacklist' => 'setSmsBlacklist', 'updateExistingContacts' => 'setUpdateExistingContacts', 'emptyContactsAttributes' => 'setEmptyContactsAttributes']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['fileUrl' => 'getFileUrl', 'fileBody' => 'getFileBody', 'listIds' => 'getListIds', 'notifyUrl' => 'getNotifyUrl', 'newList' => 'getNewList', 'emailBlacklist' => 'getEmailBlacklist', 'smsBlacklist' => 'getSmsBlacklist', 'updateExistingContacts' => 'getUpdateExistingContacts', 'emptyContactsAttributes' => 'getEmptyContactsAttributes']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['fileUrl'] = isset($data['fileUrl']) ? $data['fileUrl'] : null; - $this->container['fileBody'] = isset($data['fileBody']) ? $data['fileBody'] : null; - $this->container['listIds'] = isset($data['listIds']) ? $data['listIds'] : null; - $this->container['notifyUrl'] = isset($data['notifyUrl']) ? $data['notifyUrl'] : null; - $this->container['newList'] = isset($data['newList']) ? $data['newList'] : null; - $this->container['emailBlacklist'] = isset($data['emailBlacklist']) ? $data['emailBlacklist'] : \false; - $this->container['smsBlacklist'] = isset($data['smsBlacklist']) ? $data['smsBlacklist'] : \false; - $this->container['updateExistingContacts'] = isset($data['updateExistingContacts']) ? $data['updateExistingContacts'] : \true; - $this->container['emptyContactsAttributes'] = isset($data['emptyContactsAttributes']) ? $data['emptyContactsAttributes'] : \false; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets fileUrl - * - * @return string - */ - public function getFileUrl() - { - return $this->container['fileUrl']; - } - /** - * Sets fileUrl - * - * @param string $fileUrl Mandatory if fileBody is not defined. URL of the file to be imported (no local file). Possible file formats: .txt, .csv - * - * @return $this - */ - public function setFileUrl($fileUrl) - { - $this->container['fileUrl'] = $fileUrl; - return $this; - } - /** - * Gets fileBody - * - * @return string - */ - public function getFileBody() - { - return $this->container['fileBody']; - } - /** - * Sets fileBody - * - * @param string $fileBody Mandatory if fileUrl is not defined. CSV content to be imported. Use semicolon to separate multiple attributes. Maximum allowed file body size is 10MB . However we recommend a safe limit of around 8 MB to avoid the issues caused due to increase of file body size while parsing. Please use fileUrl instead to import bigger files. - * - * @return $this - */ - public function setFileBody($fileBody) - { - $this->container['fileBody'] = $fileBody; - return $this; - } - /** - * Gets listIds - * - * @return int[] - */ - public function getListIds() - { - return $this->container['listIds']; - } - /** - * Sets listIds - * - * @param int[] $listIds Mandatory if newList is not defined. Ids of the lists in which the contacts shall be imported. For example, [2, 4, 7]. - * - * @return $this - */ - public function setListIds($listIds) - { - $this->container['listIds'] = $listIds; - return $this; - } - /** - * Gets notifyUrl - * - * @return string - */ - public function getNotifyUrl() - { - return $this->container['notifyUrl']; - } - /** - * Sets notifyUrl - * - * @param string $notifyUrl URL that will be called once the import process is finished. For reference, https://help.sendinblue.com/hc/en-us/articles/360007666479 - * - * @return $this - */ - public function setNotifyUrl($notifyUrl) - { - $this->container['notifyUrl'] = $notifyUrl; - return $this; - } - /** - * Gets newList - * - * @return \SendinBlue\Client\Model\RequestContactImportNewList - */ - public function getNewList() - { - return $this->container['newList']; - } - /** - * Sets newList - * - * @param \SendinBlue\Client\Model\RequestContactImportNewList $newList newList - * - * @return $this - */ - public function setNewList($newList) - { - $this->container['newList'] = $newList; - return $this; - } - /** - * Gets emailBlacklist - * - * @return bool - */ - public function getEmailBlacklist() - { - return $this->container['emailBlacklist']; - } - /** - * Sets emailBlacklist - * - * @param bool $emailBlacklist To blacklist all the contacts for email - * - * @return $this - */ - public function setEmailBlacklist($emailBlacklist) - { - $this->container['emailBlacklist'] = $emailBlacklist; - return $this; - } - /** - * Gets smsBlacklist - * - * @return bool - */ - public function getSmsBlacklist() - { - return $this->container['smsBlacklist']; - } - /** - * Sets smsBlacklist - * - * @param bool $smsBlacklist To blacklist all the contacts for sms - * - * @return $this - */ - public function setSmsBlacklist($smsBlacklist) - { - $this->container['smsBlacklist'] = $smsBlacklist; - return $this; - } - /** - * Gets updateExistingContacts - * - * @return bool - */ - public function getUpdateExistingContacts() - { - return $this->container['updateExistingContacts']; - } - /** - * Sets updateExistingContacts - * - * @param bool $updateExistingContacts To facilitate the choice to update the existing contacts - * - * @return $this - */ - public function setUpdateExistingContacts($updateExistingContacts) - { - $this->container['updateExistingContacts'] = $updateExistingContacts; - return $this; - } - /** - * Gets emptyContactsAttributes - * - * @return bool - */ - public function getEmptyContactsAttributes() - { - return $this->container['emptyContactsAttributes']; - } - /** - * Sets emptyContactsAttributes - * - * @param bool $emptyContactsAttributes To facilitate the choice to erase any attribute of the existing contacts with empty value. emptyContactsAttributes = true means the empty fields in your import will erase any attribute that currently contain data in SendinBlue, & emptyContactsAttributes = false means the empty fields will not affect your existing data ( only available if `updateExistingContacts` set to true ) - * - * @return $this - */ - public function setEmptyContactsAttributes($emptyContactsAttributes) - { - $this->container['emptyContactsAttributes'] = $emptyContactsAttributes; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactImportNewList.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactImportNewList.php deleted file mode 100644 index a378968..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestContactImportNewList.php +++ /dev/null @@ -1,277 +0,0 @@ - 'string', 'folderId' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['listName' => null, 'folderId' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['listName' => 'listName', 'folderId' => 'folderId']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['listName' => 'setListName', 'folderId' => 'setFolderId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['listName' => 'getListName', 'folderId' => 'getFolderId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['listName'] = isset($data['listName']) ? $data['listName'] : null; - $this->container['folderId'] = isset($data['folderId']) ? $data['folderId'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets listName - * - * @return string - */ - public function getListName() - { - return $this->container['listName']; - } - /** - * Sets listName - * - * @param string $listName List with listName will be created first and users will be imported in it (Mandatory if listIds is empty). - * - * @return $this - */ - public function setListName($listName) - { - $this->container['listName'] = $listName; - return $this; - } - /** - * Gets folderId - * - * @return int - */ - public function getFolderId() - { - return $this->container['folderId']; - } - /** - * Sets folderId - * - * @param int $folderId Id of the folder where this new list shall be created (Mandatory if listName is not empty). - * - * @return $this - */ - public function setFolderId($folderId) - { - $this->container['folderId'] = $folderId; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestSMSRecipientExport.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestSMSRecipientExport.php deleted file mode 100644 index 85ceaeb..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/RequestSMSRecipientExport.php +++ /dev/null @@ -1,302 +0,0 @@ - 'string', 'recipientsType' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['notifyURL' => 'url', 'recipientsType' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['notifyURL' => 'notifyURL', 'recipientsType' => 'recipientsType']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['notifyURL' => 'setNotifyURL', 'recipientsType' => 'setRecipientsType']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['notifyURL' => 'getNotifyURL', 'recipientsType' => 'getRecipientsType']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const RECIPIENTS_TYPE_ALL = 'all'; - const RECIPIENTS_TYPE_DELIVERED = 'delivered'; - const RECIPIENTS_TYPE_ANSWERED = 'answered'; - const RECIPIENTS_TYPE_SOFT_BOUNCES = 'softBounces'; - const RECIPIENTS_TYPE_HARD_BOUNCES = 'hardBounces'; - const RECIPIENTS_TYPE_UNSUBSCRIBED = 'unsubscribed'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getRecipientsTypeAllowableValues() - { - return [self::RECIPIENTS_TYPE_ALL, self::RECIPIENTS_TYPE_DELIVERED, self::RECIPIENTS_TYPE_ANSWERED, self::RECIPIENTS_TYPE_SOFT_BOUNCES, self::RECIPIENTS_TYPE_HARD_BOUNCES, self::RECIPIENTS_TYPE_UNSUBSCRIBED]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['notifyURL'] = isset($data['notifyURL']) ? $data['notifyURL'] : null; - $this->container['recipientsType'] = isset($data['recipientsType']) ? $data['recipientsType'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['recipientsType'] === null) { - $invalidProperties[] = "'recipientsType' can't be null"; - } - $allowedValues = $this->getRecipientsTypeAllowableValues(); - if (!\is_null($this->container['recipientsType']) && !\in_array($this->container['recipientsType'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'recipientsType', must be one of '%s'", \implode("', '", $allowedValues)); - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets notifyURL - * - * @return string - */ - public function getNotifyURL() - { - return $this->container['notifyURL']; - } - /** - * Sets notifyURL - * - * @param string $notifyURL URL that will be called once the export process is finished. For reference, https://help.sendinblue.com/hc/en-us/articles/360007666479 - * - * @return $this - */ - public function setNotifyURL($notifyURL) - { - $this->container['notifyURL'] = $notifyURL; - return $this; - } - /** - * Gets recipientsType - * - * @return string - */ - public function getRecipientsType() - { - return $this->container['recipientsType']; - } - /** - * Sets recipientsType - * - * @param string $recipientsType Filter the recipients based on how they interacted with the campaign - * - * @return $this - */ - public function setRecipientsType($recipientsType) - { - $allowedValues = $this->getRecipientsTypeAllowableValues(); - if (!\in_array($recipientsType, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'recipientsType', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['recipientsType'] = $recipientsType; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendEmail.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendEmail.php deleted file mode 100644 index ee9aa5f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendEmail.php +++ /dev/null @@ -1,433 +0,0 @@ - 'string[]', 'emailBcc' => 'string[]', 'emailCc' => 'string[]', 'replyTo' => 'string', 'attachmentUrl' => 'string', 'attachment' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendEmailAttachment[]', 'headers' => 'object', 'attributes' => 'object', 'tags' => 'string[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['emailTo' => 'email', 'emailBcc' => 'email', 'emailCc' => 'email', 'replyTo' => 'email', 'attachmentUrl' => 'url', 'attachment' => null, 'headers' => null, 'attributes' => null, 'tags' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['emailTo' => 'emailTo', 'emailBcc' => 'emailBcc', 'emailCc' => 'emailCc', 'replyTo' => 'replyTo', 'attachmentUrl' => 'attachmentUrl', 'attachment' => 'attachment', 'headers' => 'headers', 'attributes' => 'attributes', 'tags' => 'tags']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['emailTo' => 'setEmailTo', 'emailBcc' => 'setEmailBcc', 'emailCc' => 'setEmailCc', 'replyTo' => 'setReplyTo', 'attachmentUrl' => 'setAttachmentUrl', 'attachment' => 'setAttachment', 'headers' => 'setHeaders', 'attributes' => 'setAttributes', 'tags' => 'setTags']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['emailTo' => 'getEmailTo', 'emailBcc' => 'getEmailBcc', 'emailCc' => 'getEmailCc', 'replyTo' => 'getReplyTo', 'attachmentUrl' => 'getAttachmentUrl', 'attachment' => 'getAttachment', 'headers' => 'getHeaders', 'attributes' => 'getAttributes', 'tags' => 'getTags']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['emailTo'] = isset($data['emailTo']) ? $data['emailTo'] : null; - $this->container['emailBcc'] = isset($data['emailBcc']) ? $data['emailBcc'] : null; - $this->container['emailCc'] = isset($data['emailCc']) ? $data['emailCc'] : null; - $this->container['replyTo'] = isset($data['replyTo']) ? $data['replyTo'] : null; - $this->container['attachmentUrl'] = isset($data['attachmentUrl']) ? $data['attachmentUrl'] : null; - $this->container['attachment'] = isset($data['attachment']) ? $data['attachment'] : null; - $this->container['headers'] = isset($data['headers']) ? $data['headers'] : null; - $this->container['attributes'] = isset($data['attributes']) ? $data['attributes'] : null; - $this->container['tags'] = isset($data['tags']) ? $data['tags'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['emailTo'] === null) { - $invalidProperties[] = "'emailTo' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets emailTo - * - * @return string[] - */ - public function getEmailTo() - { - return $this->container['emailTo']; - } - /** - * Sets emailTo - * - * @param string[] $emailTo List of the email addresses of the recipients. For example, ['abc@example.com', 'asd@example.com']. - * - * @return $this - */ - public function setEmailTo($emailTo) - { - $this->container['emailTo'] = $emailTo; - return $this; - } - /** - * Gets emailBcc - * - * @return string[] - */ - public function getEmailBcc() - { - return $this->container['emailBcc']; - } - /** - * Sets emailBcc - * - * @param string[] $emailBcc List of the email addresses of the recipients in bcc - * - * @return $this - */ - public function setEmailBcc($emailBcc) - { - $this->container['emailBcc'] = $emailBcc; - return $this; - } - /** - * Gets emailCc - * - * @return string[] - */ - public function getEmailCc() - { - return $this->container['emailCc']; - } - /** - * Sets emailCc - * - * @param string[] $emailCc List of the email addresses of the recipients in cc - * - * @return $this - */ - public function setEmailCc($emailCc) - { - $this->container['emailCc'] = $emailCc; - return $this; - } - /** - * Gets replyTo - * - * @return string - */ - public function getReplyTo() - { - return $this->container['replyTo']; - } - /** - * Sets replyTo - * - * @param string $replyTo Email address which shall be used by campaign recipients to reply back - * - * @return $this - */ - public function setReplyTo($replyTo) - { - $this->container['replyTo'] = $replyTo; - return $this; - } - /** - * Gets attachmentUrl - * - * @return string - */ - public function getAttachmentUrl() - { - return $this->container['attachmentUrl']; - } - /** - * Sets attachmentUrl - * - * @param string $attachmentUrl Absolute url of the attachment (no local file). Extension allowed: xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps - * - * @return $this - */ - public function setAttachmentUrl($attachmentUrl) - { - $this->container['attachmentUrl'] = $attachmentUrl; - return $this; - } - /** - * Gets attachment - * - * @return \SendinBlue\Client\Model\SendEmailAttachment[] - */ - public function getAttachment() - { - return $this->container['attachment']; - } - /** - * Sets attachment - * - * @param \SendinBlue\Client\Model\SendEmailAttachment[] $attachment Pass the list of content (base64 encoded) and name of the attachment. For example, [{\"content\":\"base64 encoded content 1\", \"name\":\"attcahment1\"}, {\"content\":\"base64 encoded content 2\", \"name\":\"attcahment2\"}]. - * - * @return $this - */ - public function setAttachment($attachment) - { - $this->container['attachment'] = $attachment; - return $this; - } - /** - * Gets headers - * - * @return object - */ - public function getHeaders() - { - return $this->container['headers']; - } - /** - * Sets headers - * - * @param object $headers Pass the set of headers that shall be sent along the mail headers in the original email. 'sender.ip' header can be set (only for dedicated ip users) to mention the IP to be used for sending transactional emails. Headers are allowed in `This-Case-Only` (i.e. words separated by hyphen with first letter of each word in capital letter), they will be converted to such case styling if not in this format in the request payload. For example, {\"Content-Type\":\"text/html\", \"charset\":\"iso-8859-1\", \"sender.ip\":\"1.2.3.4\"} - * - * @return $this - */ - public function setHeaders($headers) - { - $this->container['headers'] = $headers; - return $this; - } - /** - * Gets attributes - * - * @return object - */ - public function getAttributes() - { - return $this->container['attributes']; - } - /** - * Sets attributes - * - * @param object $attributes Pass the set of attributes to customize the template. For example, {\"FNAME\":\"Joe\", \"LNAME\":\"Doe\"} - * - * @return $this - */ - public function setAttributes($attributes) - { - $this->container['attributes'] = $attributes; - return $this; - } - /** - * Gets tags - * - * @return string[] - */ - public function getTags() - { - return $this->container['tags']; - } - /** - * Sets tags - * - * @param string[] $tags Tag your emails to find them more easily - * - * @return $this - */ - public function setTags($tags) - { - $this->container['tags'] = $tags; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendEmailAttachment.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendEmailAttachment.php deleted file mode 100644 index 90fa01f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendEmailAttachment.php +++ /dev/null @@ -1,288 +0,0 @@ - 'string', 'name' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['content' => 'byte', 'name' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['content' => 'content', 'name' => 'name']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['content' => 'setContent', 'name' => 'setName']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['content' => 'getContent', 'name' => 'getName']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['content'] = isset($data['content']) ? $data['content'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['content'] === null) { - $invalidProperties[] = "'content' can't be null"; - } - if (!\preg_match("/^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?\$/", $this->container['content'])) { - $invalidProperties[] = "invalid value for 'content', must be conform to the pattern /^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?\$/."; - } - if ($this->container['name'] === null) { - $invalidProperties[] = "'name' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets content - * - * @return string - */ - public function getContent() - { - return $this->container['content']; - } - /** - * Sets content - * - * @param string $content Base64 encoded chunk data of the attachment generated on the fly - * - * @return $this - */ - public function setContent($content) - { - if (!\preg_match("/^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?\$/", $content)) { - throw new \InvalidArgumentException("invalid value for {$content} when calling SendEmailAttachment., must conform to the pattern /^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?\$/."); - } - $this->container['content'] = $content; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Required for content. Name of the attachment - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendReport.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendReport.php deleted file mode 100644 index 59ed91f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendReport.php +++ /dev/null @@ -1,302 +0,0 @@ - 'string', 'email' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendReportEmail']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['language' => null, 'email' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['language' => 'language', 'email' => 'email']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['language' => 'setLanguage', 'email' => 'setEmail']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['language' => 'getLanguage', 'email' => 'getEmail']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const LANGUAGE_FR = 'fr'; - const LANGUAGE_ES = 'es'; - const LANGUAGE_PT = 'pt'; - const LANGUAGE_IT = 'it'; - const LANGUAGE_DE = 'de'; - const LANGUAGE_EN = 'en'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getLanguageAllowableValues() - { - return [self::LANGUAGE_FR, self::LANGUAGE_ES, self::LANGUAGE_PT, self::LANGUAGE_IT, self::LANGUAGE_DE, self::LANGUAGE_EN]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['language'] = isset($data['language']) ? $data['language'] : 'fr'; - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - $allowedValues = $this->getLanguageAllowableValues(); - if (!\is_null($this->container['language']) && !\in_array($this->container['language'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'language', must be one of '%s'", \implode("', '", $allowedValues)); - } - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets language - * - * @return string - */ - public function getLanguage() - { - return $this->container['language']; - } - /** - * Sets language - * - * @param string $language Language of email content for campaign report sending. - * - * @return $this - */ - public function setLanguage($language) - { - $allowedValues = $this->getLanguageAllowableValues(); - if (!\is_null($language) && !\in_array($language, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'language', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['language'] = $language; - return $this; - } - /** - * Gets email - * - * @return \SendinBlue\Client\Model\SendReportEmail - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param \SendinBlue\Client\Model\SendReportEmail $email email - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendReportEmail.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendReportEmail.php deleted file mode 100644 index 1987606..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendReportEmail.php +++ /dev/null @@ -1,393 +0,0 @@ - 'string', 'to' => 'string[]', 'contentType' => 'string', 'bcc' => 'string[]', 'cc' => 'string[]', 'body' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['subject' => null, 'to' => 'email', 'contentType' => null, 'bcc' => 'email', 'cc' => 'email', 'body' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['subject' => 'subject', 'to' => 'to', 'contentType' => 'contentType', 'bcc' => 'bcc', 'cc' => 'cc', 'body' => 'body']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['subject' => 'setSubject', 'to' => 'setTo', 'contentType' => 'setContentType', 'bcc' => 'setBcc', 'cc' => 'setCc', 'body' => 'setBody']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['subject' => 'getSubject', 'to' => 'getTo', 'contentType' => 'getContentType', 'bcc' => 'getBcc', 'cc' => 'getCc', 'body' => 'getBody']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const CONTENT_TYPE_TEXT = 'text'; - const CONTENT_TYPE_HTML = 'html'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getContentTypeAllowableValues() - { - return [self::CONTENT_TYPE_TEXT, self::CONTENT_TYPE_HTML]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['subject'] = isset($data['subject']) ? $data['subject'] : null; - $this->container['to'] = isset($data['to']) ? $data['to'] : null; - $this->container['contentType'] = isset($data['contentType']) ? $data['contentType'] : 'html'; - $this->container['bcc'] = isset($data['bcc']) ? $data['bcc'] : null; - $this->container['cc'] = isset($data['cc']) ? $data['cc'] : null; - $this->container['body'] = isset($data['body']) ? $data['body'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['subject'] === null) { - $invalidProperties[] = "'subject' can't be null"; - } - if ($this->container['to'] === null) { - $invalidProperties[] = "'to' can't be null"; - } - $allowedValues = $this->getContentTypeAllowableValues(); - if (!\is_null($this->container['contentType']) && !\in_array($this->container['contentType'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'contentType', must be one of '%s'", \implode("', '", $allowedValues)); - } - if ($this->container['body'] === null) { - $invalidProperties[] = "'body' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets subject - * - * @return string - */ - public function getSubject() - { - return $this->container['subject']; - } - /** - * Sets subject - * - * @param string $subject Subject of the email message - * - * @return $this - */ - public function setSubject($subject) - { - $this->container['subject'] = $subject; - return $this; - } - /** - * Gets to - * - * @return string[] - */ - public function getTo() - { - return $this->container['to']; - } - /** - * Sets to - * - * @param string[] $to Email addresses of the recipients - * - * @return $this - */ - public function setTo($to) - { - $this->container['to'] = $to; - return $this; - } - /** - * Gets contentType - * - * @return string - */ - public function getContentType() - { - return $this->container['contentType']; - } - /** - * Sets contentType - * - * @param string $contentType Type of the message body - * - * @return $this - */ - public function setContentType($contentType) - { - $allowedValues = $this->getContentTypeAllowableValues(); - if (!\is_null($contentType) && !\in_array($contentType, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'contentType', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['contentType'] = $contentType; - return $this; - } - /** - * Gets bcc - * - * @return string[] - */ - public function getBcc() - { - return $this->container['bcc']; - } - /** - * Sets bcc - * - * @param string[] $bcc Email addresses of the recipients in bcc - * - * @return $this - */ - public function setBcc($bcc) - { - $this->container['bcc'] = $bcc; - return $this; - } - /** - * Gets cc - * - * @return string[] - */ - public function getCc() - { - return $this->container['cc']; - } - /** - * Sets cc - * - * @param string[] $cc Email addresses of the recipients in cc - * - * @return $this - */ - public function setCc($cc) - { - $this->container['cc'] = $cc; - return $this; - } - /** - * Gets body - * - * @return string - */ - public function getBody() - { - return $this->container['body']; - } - /** - * Sets body - * - * @param string $body Body of the email message - * - * @return $this - */ - public function setBody($body) - { - $this->container['body'] = $body; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSms.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSms.php deleted file mode 100644 index 1c46398..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSms.php +++ /dev/null @@ -1,348 +0,0 @@ - 'string', 'messageId' => 'int', 'smsCount' => 'int', 'usedCredits' => 'float', 'remainingCredits' => 'float']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['reference' => null, 'messageId' => 'int64', 'smsCount' => 'int64', 'usedCredits' => 'float', 'remainingCredits' => 'float']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['reference' => 'reference', 'messageId' => 'messageId', 'smsCount' => 'smsCount', 'usedCredits' => 'usedCredits', 'remainingCredits' => 'remainingCredits']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['reference' => 'setReference', 'messageId' => 'setMessageId', 'smsCount' => 'setSmsCount', 'usedCredits' => 'setUsedCredits', 'remainingCredits' => 'setRemainingCredits']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['reference' => 'getReference', 'messageId' => 'getMessageId', 'smsCount' => 'getSmsCount', 'usedCredits' => 'getUsedCredits', 'remainingCredits' => 'getRemainingCredits']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['reference'] = isset($data['reference']) ? $data['reference'] : null; - $this->container['messageId'] = isset($data['messageId']) ? $data['messageId'] : null; - $this->container['smsCount'] = isset($data['smsCount']) ? $data['smsCount'] : null; - $this->container['usedCredits'] = isset($data['usedCredits']) ? $data['usedCredits'] : null; - $this->container['remainingCredits'] = isset($data['remainingCredits']) ? $data['remainingCredits'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['reference'] === null) { - $invalidProperties[] = "'reference' can't be null"; - } - if ($this->container['messageId'] === null) { - $invalidProperties[] = "'messageId' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets reference - * - * @return string - */ - public function getReference() - { - return $this->container['reference']; - } - /** - * Sets reference - * - * @param string $reference reference - * - * @return $this - */ - public function setReference($reference) - { - $this->container['reference'] = $reference; - return $this; - } - /** - * Gets messageId - * - * @return int - */ - public function getMessageId() - { - return $this->container['messageId']; - } - /** - * Sets messageId - * - * @param int $messageId messageId - * - * @return $this - */ - public function setMessageId($messageId) - { - $this->container['messageId'] = $messageId; - return $this; - } - /** - * Gets smsCount - * - * @return int - */ - public function getSmsCount() - { - return $this->container['smsCount']; - } - /** - * Sets smsCount - * - * @param int $smsCount Count of SMS's to send multiple text messages - * - * @return $this - */ - public function setSmsCount($smsCount) - { - $this->container['smsCount'] = $smsCount; - return $this; - } - /** - * Gets usedCredits - * - * @return float - */ - public function getUsedCredits() - { - return $this->container['usedCredits']; - } - /** - * Sets usedCredits - * - * @param float $usedCredits SMS credits used per text message - * - * @return $this - */ - public function setUsedCredits($usedCredits) - { - $this->container['usedCredits'] = $usedCredits; - return $this; - } - /** - * Gets remainingCredits - * - * @return float - */ - public function getRemainingCredits() - { - return $this->container['remainingCredits']; - } - /** - * Sets remainingCredits - * - * @param float $remainingCredits Remaining SMS credits of the user - * - * @return $this - */ - public function setRemainingCredits($remainingCredits) - { - $this->container['remainingCredits'] = $remainingCredits; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmail.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmail.php deleted file mode 100644 index 356a01f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmail.php +++ /dev/null @@ -1,521 +0,0 @@ - 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailSender', 'to' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailTo[]', 'bcc' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailBcc[]', 'cc' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailCc[]', 'htmlContent' => 'string', 'textContent' => 'string', 'subject' => 'string', 'replyTo' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailReplyTo', 'attachment' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\SendSmtpEmailAttachment[]', 'headers' => 'object', 'templateId' => 'int', 'params' => 'object', 'tags' => 'string[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['sender' => null, 'to' => null, 'bcc' => null, 'cc' => null, 'htmlContent' => null, 'textContent' => null, 'subject' => null, 'replyTo' => null, 'attachment' => null, 'headers' => null, 'templateId' => 'int64', 'params' => null, 'tags' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['sender' => 'sender', 'to' => 'to', 'bcc' => 'bcc', 'cc' => 'cc', 'htmlContent' => 'htmlContent', 'textContent' => 'textContent', 'subject' => 'subject', 'replyTo' => 'replyTo', 'attachment' => 'attachment', 'headers' => 'headers', 'templateId' => 'templateId', 'params' => 'params', 'tags' => 'tags']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['sender' => 'setSender', 'to' => 'setTo', 'bcc' => 'setBcc', 'cc' => 'setCc', 'htmlContent' => 'setHtmlContent', 'textContent' => 'setTextContent', 'subject' => 'setSubject', 'replyTo' => 'setReplyTo', 'attachment' => 'setAttachment', 'headers' => 'setHeaders', 'templateId' => 'setTemplateId', 'params' => 'setParams', 'tags' => 'setTags']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['sender' => 'getSender', 'to' => 'getTo', 'bcc' => 'getBcc', 'cc' => 'getCc', 'htmlContent' => 'getHtmlContent', 'textContent' => 'getTextContent', 'subject' => 'getSubject', 'replyTo' => 'getReplyTo', 'attachment' => 'getAttachment', 'headers' => 'getHeaders', 'templateId' => 'getTemplateId', 'params' => 'getParams', 'tags' => 'getTags']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['sender'] = isset($data['sender']) ? $data['sender'] : null; - $this->container['to'] = isset($data['to']) ? $data['to'] : null; - $this->container['bcc'] = isset($data['bcc']) ? $data['bcc'] : null; - $this->container['cc'] = isset($data['cc']) ? $data['cc'] : null; - $this->container['htmlContent'] = isset($data['htmlContent']) ? $data['htmlContent'] : null; - $this->container['textContent'] = isset($data['textContent']) ? $data['textContent'] : null; - $this->container['subject'] = isset($data['subject']) ? $data['subject'] : null; - $this->container['replyTo'] = isset($data['replyTo']) ? $data['replyTo'] : null; - $this->container['attachment'] = isset($data['attachment']) ? $data['attachment'] : null; - $this->container['headers'] = isset($data['headers']) ? $data['headers'] : null; - $this->container['templateId'] = isset($data['templateId']) ? $data['templateId'] : null; - $this->container['params'] = isset($data['params']) ? $data['params'] : null; - $this->container['tags'] = isset($data['tags']) ? $data['tags'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['to'] === null) { - $invalidProperties[] = "'to' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets sender - * - * @return \SendinBlue\Client\Model\SendSmtpEmailSender - */ - public function getSender() - { - return $this->container['sender']; - } - /** - * Sets sender - * - * @param \SendinBlue\Client\Model\SendSmtpEmailSender $sender sender - * - * @return $this - */ - public function setSender($sender) - { - $this->container['sender'] = $sender; - return $this; - } - /** - * Gets to - * - * @return \SendinBlue\Client\Model\SendSmtpEmailTo[] - */ - public function getTo() - { - return $this->container['to']; - } - /** - * Sets to - * - * @param \SendinBlue\Client\Model\SendSmtpEmailTo[] $to List of email addresses and names (optional) of the recipients. For example, [{\"name\":\"Jimmy\", \"email\":\"jimmy98@example.com\"}, {\"name\":\"Joe\", \"email\":\"joe@example.com\"}] - * - * @return $this - */ - public function setTo($to) - { - $this->container['to'] = $to; - return $this; - } - /** - * Gets bcc - * - * @return \SendinBlue\Client\Model\SendSmtpEmailBcc[] - */ - public function getBcc() - { - return $this->container['bcc']; - } - /** - * Sets bcc - * - * @param \SendinBlue\Client\Model\SendSmtpEmailBcc[] $bcc List of email addresses and names (optional) of the recipients in bcc - * - * @return $this - */ - public function setBcc($bcc) - { - $this->container['bcc'] = $bcc; - return $this; - } - /** - * Gets cc - * - * @return \SendinBlue\Client\Model\SendSmtpEmailCc[] - */ - public function getCc() - { - return $this->container['cc']; - } - /** - * Sets cc - * - * @param \SendinBlue\Client\Model\SendSmtpEmailCc[] $cc List of email addresses and names (optional) of the recipients in cc - * - * @return $this - */ - public function setCc($cc) - { - $this->container['cc'] = $cc; - return $this; - } - /** - * Gets htmlContent - * - * @return string - */ - public function getHtmlContent() - { - return $this->container['htmlContent']; - } - /** - * Sets htmlContent - * - * @param string $htmlContent HTML body of the message ( Mandatory if 'templateId' is not passed, ignored if 'templateId' is passed ) - * - * @return $this - */ - public function setHtmlContent($htmlContent) - { - $this->container['htmlContent'] = $htmlContent; - return $this; - } - /** - * Gets textContent - * - * @return string - */ - public function getTextContent() - { - return $this->container['textContent']; - } - /** - * Sets textContent - * - * @param string $textContent Plain Text body of the message ( Ignored if 'templateId' is passed ) - * - * @return $this - */ - public function setTextContent($textContent) - { - $this->container['textContent'] = $textContent; - return $this; - } - /** - * Gets subject - * - * @return string - */ - public function getSubject() - { - return $this->container['subject']; - } - /** - * Sets subject - * - * @param string $subject Subject of the message. Mandatory if 'templateId' is not passed - * - * @return $this - */ - public function setSubject($subject) - { - $this->container['subject'] = $subject; - return $this; - } - /** - * Gets replyTo - * - * @return \SendinBlue\Client\Model\SendSmtpEmailReplyTo - */ - public function getReplyTo() - { - return $this->container['replyTo']; - } - /** - * Sets replyTo - * - * @param \SendinBlue\Client\Model\SendSmtpEmailReplyTo $replyTo replyTo - * - * @return $this - */ - public function setReplyTo($replyTo) - { - $this->container['replyTo'] = $replyTo; - return $this; - } - /** - * Gets attachment - * - * @return \SendinBlue\Client\Model\SendSmtpEmailAttachment[] - */ - public function getAttachment() - { - return $this->container['attachment']; - } - /** - * Sets attachment - * - * @param \SendinBlue\Client\Model\SendSmtpEmailAttachment[] $attachment Pass the absolute URL (no local file) or the base64 content of the attachment along with the attachment name (Mandatory if attachment content is passed). For example, `[{\"url\":\"https://attachment.domain.com/myAttachmentFromUrl.jpg\", \"name\":\"myAttachmentFromUrl.jpg\"}, {\"content\":\"base64 example content\", \"name\":\"myAttachmentFromBase64.jpg\"}]`. Allowed extensions for attachment file: xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub, eps, odt, mp3, m4a, m4v, wma, ogg, flac, wav, aif, aifc, aiff, mp4, mov, avi, mkv, mpeg, mpg and wmv ( If 'templateId' is passed and is in New Template Language format then both attachment url and content are accepted. If template is in Old template Language format, then 'attachment' is ignored ) - * - * @return $this - */ - public function setAttachment($attachment) - { - $this->container['attachment'] = $attachment; - return $this; - } - /** - * Gets headers - * - * @return object - */ - public function getHeaders() - { - return $this->container['headers']; - } - /** - * Sets headers - * - * @param object $headers Pass the set of custom headers (not the standard headers) that shall be sent along the mail headers in the original email. 'sender.ip' header can be set (only for dedicated ip users) to mention the IP to be used for sending transactional emails. Headers are allowed in `This-Case-Only` (i.e. words separated by hyphen with first letter of each word in capital letter), they will be converted to such case styling if not in this format in the request payload. For example, `{\"sender.ip\":\"1.2.3.4\", \"X-Mailin-custom\":\"some_custom_header\"}`. - * - * @return $this - */ - public function setHeaders($headers) - { - $this->container['headers'] = $headers; - return $this; - } - /** - * Gets templateId - * - * @return int - */ - public function getTemplateId() - { - return $this->container['templateId']; - } - /** - * Sets templateId - * - * @param int $templateId Id of the template - * - * @return $this - */ - public function setTemplateId($templateId) - { - $this->container['templateId'] = $templateId; - return $this; - } - /** - * Gets params - * - * @return object - */ - public function getParams() - { - return $this->container['params']; - } - /** - * Sets params - * - * @param object $params Pass the set of attributes to customize the template. For example, {\"FNAME\":\"Joe\", \"LNAME\":\"Doe\"}. It's considered only if template is in New Template Language format. - * - * @return $this - */ - public function setParams($params) - { - $this->container['params'] = $params; - return $this; - } - /** - * Gets tags - * - * @return string[] - */ - public function getTags() - { - return $this->container['tags']; - } - /** - * Sets tags - * - * @param string[] $tags Tag your emails to find them more easily - * - * @return $this - */ - public function setTags($tags) - { - $this->container['tags'] = $tags; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailAttachment.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailAttachment.php deleted file mode 100644 index ed5766e..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailAttachment.php +++ /dev/null @@ -1,304 +0,0 @@ - 'string', 'content' => 'string', 'name' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['url' => 'url', 'content' => 'byte', 'name' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['url' => 'url', 'content' => 'content', 'name' => 'name']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['url' => 'setUrl', 'content' => 'setContent', 'name' => 'setName']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['url' => 'getUrl', 'content' => 'getContent', 'name' => 'getName']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['url'] = isset($data['url']) ? $data['url'] : null; - $this->container['content'] = isset($data['content']) ? $data['content'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if (!\is_null($this->container['content']) && !\preg_match("/^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?\$/", $this->container['content'])) { - $invalidProperties[] = "invalid value for 'content', must be conform to the pattern /^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?\$/."; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets url - * - * @return string - */ - public function getUrl() - { - return $this->container['url']; - } - /** - * Sets url - * - * @param string $url Absolute url of the attachment (no local file). - * - * @return $this - */ - public function setUrl($url) - { - $this->container['url'] = $url; - return $this; - } - /** - * Gets content - * - * @return string - */ - public function getContent() - { - return $this->container['content']; - } - /** - * Sets content - * - * @param string $content Base64 encoded chunk data of the attachment generated on the fly - * - * @return $this - */ - public function setContent($content) - { - if (!\is_null($content) && !\preg_match("/^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?\$/", $content)) { - throw new \InvalidArgumentException("invalid value for {$content} when calling SendSmtpEmailAttachment., must conform to the pattern /^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?\$/."); - } - $this->container['content'] = $content; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Required if content is passed. Name of the attachment - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailBcc.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailBcc.php deleted file mode 100644 index d7f56be..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailBcc.php +++ /dev/null @@ -1,279 +0,0 @@ - 'string', 'name' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'name' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'name' => 'name']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'name' => 'setName']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'name' => 'getName']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email address of the recipient in bcc - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the recipient in bcc. Maximum allowed characters are 70. - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailCc.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailCc.php deleted file mode 100644 index a142481..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailCc.php +++ /dev/null @@ -1,279 +0,0 @@ - 'string', 'name' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'name' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'name' => 'name']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'name' => 'setName']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'name' => 'getName']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email address of the recipient in cc - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the recipient in cc. Maximum allowed characters are 70. - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailReplyTo.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailReplyTo.php deleted file mode 100644 index c8a4623..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailReplyTo.php +++ /dev/null @@ -1,280 +0,0 @@ - 'string', 'name' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'name' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'name' => 'name']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'name' => 'setName']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'name' => 'getName']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email address in reply to - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name in reply to. Maximum allowed characters are 70. - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailSender.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailSender.php deleted file mode 100644 index cee6381..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailSender.php +++ /dev/null @@ -1,280 +0,0 @@ - 'string', 'email' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'email' => 'email']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'email' => 'email']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'email' => 'setEmail']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'email' => 'getEmail']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the sender from which the emails will be sent. Maximum allowed characters are 70. - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email of the sender from which the emails will be sent - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailTo.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailTo.php deleted file mode 100644 index 5191942..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailTo.php +++ /dev/null @@ -1,279 +0,0 @@ - 'string', 'name' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'name' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'name' => 'name']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'name' => 'setName']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'name' => 'getName']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['email'] === null) { - $invalidProperties[] = "'email' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email address of the recipient - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the recipient. Maximum allowed characters are 70. - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTemplateEmail.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTemplateEmail.php deleted file mode 100644 index 8ea106d..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTemplateEmail.php +++ /dev/null @@ -1,257 +0,0 @@ - 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['messageId' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['messageId' => 'messageId']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['messageId' => 'setMessageId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['messageId' => 'getMessageId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['messageId'] = isset($data['messageId']) ? $data['messageId'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['messageId'] === null) { - $invalidProperties[] = "'messageId' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets messageId - * - * @return string - */ - public function getMessageId() - { - return $this->container['messageId']; - } - /** - * Sets messageId - * - * @param string $messageId Message ID of the template Email sent - * - * @return $this - */ - public function setMessageId($messageId) - { - $this->container['messageId'] = $messageId; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTestEmail.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTestEmail.php deleted file mode 100644 index c67691f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTestEmail.php +++ /dev/null @@ -1,254 +0,0 @@ - 'string[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['emailTo' => 'email']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['emailTo' => 'emailTo']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['emailTo' => 'setEmailTo']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['emailTo' => 'getEmailTo']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['emailTo'] = isset($data['emailTo']) ? $data['emailTo'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets emailTo - * - * @return string[] - */ - public function getEmailTo() - { - return $this->container['emailTo']; - } - /** - * Sets emailTo - * - * @param string[] $emailTo List of the email addresses of the recipients whom you wish to send the test mail. If left empty, the test mail will be sent to your entire test list. - * - * @return $this - */ - public function setEmailTo($emailTo) - { - $this->container['emailTo'] = $emailTo; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTestSms.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTestSms.php deleted file mode 100644 index ffd2aa6..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTestSms.php +++ /dev/null @@ -1,254 +0,0 @@ - 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['phoneNumber' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['phoneNumber' => 'phoneNumber']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['phoneNumber' => 'setPhoneNumber']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['phoneNumber' => 'getPhoneNumber']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['phoneNumber'] = isset($data['phoneNumber']) ? $data['phoneNumber'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets phoneNumber - * - * @return string - */ - public function getPhoneNumber() - { - return $this->container['phoneNumber']; - } - /** - * Sets phoneNumber - * - * @param string $phoneNumber Mobile number of the recipient with the country code. This number must belong to one of your contacts in SendinBlue account and must not be blacklisted - * - * @return $this - */ - public function setPhoneNumber($phoneNumber) - { - $this->container['phoneNumber'] = $phoneNumber; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTransacSms.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTransacSms.php deleted file mode 100644 index c1a4b8a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/SendTransacSms.php +++ /dev/null @@ -1,398 +0,0 @@ - 'string', 'recipient' => 'string', 'content' => 'string', 'type' => 'string', 'tag' => 'string', 'webUrl' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['sender' => null, 'recipient' => null, 'content' => null, 'type' => null, 'tag' => null, 'webUrl' => 'url']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['sender' => 'sender', 'recipient' => 'recipient', 'content' => 'content', 'type' => 'type', 'tag' => 'tag', 'webUrl' => 'webUrl']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['sender' => 'setSender', 'recipient' => 'setRecipient', 'content' => 'setContent', 'type' => 'setType', 'tag' => 'setTag', 'webUrl' => 'setWebUrl']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['sender' => 'getSender', 'recipient' => 'getRecipient', 'content' => 'getContent', 'type' => 'getType', 'tag' => 'getTag', 'webUrl' => 'getWebUrl']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const TYPE_TRANSACTIONAL = 'transactional'; - const TYPE_MARKETING = 'marketing'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getTypeAllowableValues() - { - return [self::TYPE_TRANSACTIONAL, self::TYPE_MARKETING]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['sender'] = isset($data['sender']) ? $data['sender'] : null; - $this->container['recipient'] = isset($data['recipient']) ? $data['recipient'] : null; - $this->container['content'] = isset($data['content']) ? $data['content'] : null; - $this->container['type'] = isset($data['type']) ? $data['type'] : 'transactional'; - $this->container['tag'] = isset($data['tag']) ? $data['tag'] : null; - $this->container['webUrl'] = isset($data['webUrl']) ? $data['webUrl'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['sender'] === null) { - $invalidProperties[] = "'sender' can't be null"; - } - if (\mb_strlen($this->container['sender']) > 11) { - $invalidProperties[] = "invalid value for 'sender', the character length must be smaller than or equal to 11."; - } - if ($this->container['recipient'] === null) { - $invalidProperties[] = "'recipient' can't be null"; - } - if ($this->container['content'] === null) { - $invalidProperties[] = "'content' can't be null"; - } - $allowedValues = $this->getTypeAllowableValues(); - if (!\is_null($this->container['type']) && !\in_array($this->container['type'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues)); - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets sender - * - * @return string - */ - public function getSender() - { - return $this->container['sender']; - } - /** - * Sets sender - * - * @param string $sender Name of the sender. Only alphanumeric characters. No more than 11 characters - * - * @return $this - */ - public function setSender($sender) - { - if (\mb_strlen($sender) > 11) { - throw new \InvalidArgumentException('invalid length for $sender when calling SendTransacSms., must be smaller than or equal to 11.'); - } - $this->container['sender'] = $sender; - return $this; - } - /** - * Gets recipient - * - * @return string - */ - public function getRecipient() - { - return $this->container['recipient']; - } - /** - * Sets recipient - * - * @param string $recipient Mobile number to send SMS with the country code - * - * @return $this - */ - public function setRecipient($recipient) - { - $this->container['recipient'] = $recipient; - return $this; - } - /** - * Gets content - * - * @return string - */ - public function getContent() - { - return $this->container['content']; - } - /** - * Sets content - * - * @param string $content Content of the message. If more than 160 characters long, will be sent as multiple text messages - * - * @return $this - */ - public function setContent($content) - { - $this->container['content'] = $content; - return $this; - } - /** - * Gets type - * - * @return string - */ - public function getType() - { - return $this->container['type']; - } - /** - * Sets type - * - * @param string $type Type of the SMS. Marketing SMS messages are those sent typically with marketing content. Transactional SMS messages are sent to individuals and are triggered in response to some action, such as a sign-up, purchase, etc. - * - * @return $this - */ - public function setType($type) - { - $allowedValues = $this->getTypeAllowableValues(); - if (!\is_null($type) && !\in_array($type, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'type', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['type'] = $type; - return $this; - } - /** - * Gets tag - * - * @return string - */ - public function getTag() - { - return $this->container['tag']; - } - /** - * Sets tag - * - * @param string $tag Tag of the message - * - * @return $this - */ - public function setTag($tag) - { - $this->container['tag'] = $tag; - return $this; - } - /** - * Gets webUrl - * - * @return string - */ - public function getWebUrl() - { - return $this->container['webUrl']; - } - /** - * Sets webUrl - * - * @param string $webUrl Webhook to call for each event triggered by the message (delivered etc.) - * - * @return $this - */ - public function setWebUrl($webUrl) - { - $this->container['webUrl'] = $webUrl; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateAttribute.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateAttribute.php deleted file mode 100644 index 20f6ccf..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateAttribute.php +++ /dev/null @@ -1,276 +0,0 @@ - 'string', 'enumeration' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateAttributeEnumeration[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['value' => null, 'enumeration' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['value' => 'value', 'enumeration' => 'enumeration']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['value' => 'setValue', 'enumeration' => 'setEnumeration']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['value' => 'getValue', 'enumeration' => 'getEnumeration']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['value'] = isset($data['value']) ? $data['value'] : null; - $this->container['enumeration'] = isset($data['enumeration']) ? $data['enumeration'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets value - * - * @return string - */ - public function getValue() - { - return $this->container['value']; - } - /** - * Sets value - * - * @param string $value Value of the attribute to update. Use only if the attribute's category is 'calculated' or 'global' - * - * @return $this - */ - public function setValue($value) - { - $this->container['value'] = $value; - return $this; - } - /** - * Gets enumeration - * - * @return \SendinBlue\Client\Model\UpdateAttributeEnumeration[] - */ - public function getEnumeration() - { - return $this->container['enumeration']; - } - /** - * Sets enumeration - * - * @param \SendinBlue\Client\Model\UpdateAttributeEnumeration[] $enumeration List of the values and labels that the attribute can take. Use only if the attribute's category is \"category\". For example, [{\"value\":1, \"label\":\"male\"}, {\"value\":2, \"label\":\"female\"}] - * - * @return $this - */ - public function setEnumeration($enumeration) - { - $this->container['enumeration'] = $enumeration; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateAttributeEnumeration.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateAttributeEnumeration.php deleted file mode 100644 index ec2d00f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateAttributeEnumeration.php +++ /dev/null @@ -1,282 +0,0 @@ - 'int', 'label' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['value' => null, 'label' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['value' => 'value', 'label' => 'label']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['value' => 'setValue', 'label' => 'setLabel']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['value' => 'getValue', 'label' => 'getLabel']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['value'] = isset($data['value']) ? $data['value'] : null; - $this->container['label'] = isset($data['label']) ? $data['label'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['value'] === null) { - $invalidProperties[] = "'value' can't be null"; - } - if ($this->container['label'] === null) { - $invalidProperties[] = "'label' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets value - * - * @return int - */ - public function getValue() - { - return $this->container['value']; - } - /** - * Sets value - * - * @param int $value Id of the value - * - * @return $this - */ - public function setValue($value) - { - $this->container['value'] = $value; - return $this; - } - /** - * Gets label - * - * @return string - */ - public function getLabel() - { - return $this->container['label']; - } - /** - * Sets label - * - * @param string $label Label of the value - * - * @return $this - */ - public function setLabel($label) - { - $this->container['label'] = $label; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateCampaignStatus.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateCampaignStatus.php deleted file mode 100644 index c747850..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateCampaignStatus.php +++ /dev/null @@ -1,280 +0,0 @@ - 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['status' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['status' => 'status']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['status' => 'setStatus']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['status' => 'getStatus']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const STATUS_SUSPENDED = 'suspended'; - const STATUS_ARCHIVE = 'archive'; - const STATUS_DARCHIVE = 'darchive'; - const STATUS_SENT = 'sent'; - const STATUS_QUEUED = 'queued'; - const STATUS_REPLICATE = 'replicate'; - const STATUS_REPLICATE_TEMPLATE = 'replicateTemplate'; - const STATUS_DRAFT = 'draft'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getStatusAllowableValues() - { - return [self::STATUS_SUSPENDED, self::STATUS_ARCHIVE, self::STATUS_DARCHIVE, self::STATUS_SENT, self::STATUS_QUEUED, self::STATUS_REPLICATE, self::STATUS_REPLICATE_TEMPLATE, self::STATUS_DRAFT]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['status'] = isset($data['status']) ? $data['status'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - $allowedValues = $this->getStatusAllowableValues(); - if (!\is_null($this->container['status']) && !\in_array($this->container['status'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'status', must be one of '%s'", \implode("', '", $allowedValues)); - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets status - * - * @return string - */ - public function getStatus() - { - return $this->container['status']; - } - /** - * Sets status - * - * @param string $status Note:- replicateTemplate status will be available only for template type campaigns. - * - * @return $this - */ - public function setStatus($status) - { - $allowedValues = $this->getStatusAllowableValues(); - if (!\is_null($status) && !\in_array($status, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'status', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['status'] = $status; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChild.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChild.php deleted file mode 100644 index 1af6bee..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChild.php +++ /dev/null @@ -1,342 +0,0 @@ - 'string', 'firstName' => 'string', 'lastName' => 'string', 'companyName' => 'string', 'password' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['email' => 'email', 'firstName' => null, 'lastName' => null, 'companyName' => null, 'password' => 'password']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['email' => 'email', 'firstName' => 'firstName', 'lastName' => 'lastName', 'companyName' => 'companyName', 'password' => 'password']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['email' => 'setEmail', 'firstName' => 'setFirstName', 'lastName' => 'setLastName', 'companyName' => 'setCompanyName', 'password' => 'setPassword']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['email' => 'getEmail', 'firstName' => 'getFirstName', 'lastName' => 'getLastName', 'companyName' => 'getCompanyName', 'password' => 'getPassword']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['firstName'] = isset($data['firstName']) ? $data['firstName'] : null; - $this->container['lastName'] = isset($data['lastName']) ? $data['lastName'] : null; - $this->container['companyName'] = isset($data['companyName']) ? $data['companyName'] : null; - $this->container['password'] = isset($data['password']) ? $data['password'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email New Email address to update the child account - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets firstName - * - * @return string - */ - public function getFirstName() - { - return $this->container['firstName']; - } - /** - * Sets firstName - * - * @param string $firstName New First name to use to update the child account - * - * @return $this - */ - public function setFirstName($firstName) - { - $this->container['firstName'] = $firstName; - return $this; - } - /** - * Gets lastName - * - * @return string - */ - public function getLastName() - { - return $this->container['lastName']; - } - /** - * Sets lastName - * - * @param string $lastName New Last name to use to update the child account - * - * @return $this - */ - public function setLastName($lastName) - { - $this->container['lastName'] = $lastName; - return $this; - } - /** - * Gets companyName - * - * @return string - */ - public function getCompanyName() - { - return $this->container['companyName']; - } - /** - * Sets companyName - * - * @param string $companyName New Company name to use to update the child account - * - * @return $this - */ - public function setCompanyName($companyName) - { - $this->container['companyName'] = $companyName; - return $this; - } - /** - * Gets password - * - * @return string - */ - public function getPassword() - { - return $this->container['password']; - } - /** - * Sets password - * - * @param string $password New password for the child account to login - * - * @return $this - */ - public function setPassword($password) - { - $this->container['password'] = $password; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChildAccountStatus.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChildAccountStatus.php deleted file mode 100644 index da1db2f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChildAccountStatus.php +++ /dev/null @@ -1,320 +0,0 @@ - 'bool', 'transactionalSms' => 'bool', 'marketingAutomation' => 'bool', 'smsCampaign' => 'bool']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['transactionalEmail' => null, 'transactionalSms' => null, 'marketingAutomation' => null, 'smsCampaign' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['transactionalEmail' => 'transactionalEmail', 'transactionalSms' => 'transactionalSms', 'marketingAutomation' => 'marketingAutomation', 'smsCampaign' => 'smsCampaign']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['transactionalEmail' => 'setTransactionalEmail', 'transactionalSms' => 'setTransactionalSms', 'marketingAutomation' => 'setMarketingAutomation', 'smsCampaign' => 'setSmsCampaign']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['transactionalEmail' => 'getTransactionalEmail', 'transactionalSms' => 'getTransactionalSms', 'marketingAutomation' => 'getMarketingAutomation', 'smsCampaign' => 'getSmsCampaign']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['transactionalEmail'] = isset($data['transactionalEmail']) ? $data['transactionalEmail'] : null; - $this->container['transactionalSms'] = isset($data['transactionalSms']) ? $data['transactionalSms'] : null; - $this->container['marketingAutomation'] = isset($data['marketingAutomation']) ? $data['marketingAutomation'] : null; - $this->container['smsCampaign'] = isset($data['smsCampaign']) ? $data['smsCampaign'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets transactionalEmail - * - * @return bool - */ - public function getTransactionalEmail() - { - return $this->container['transactionalEmail']; - } - /** - * Sets transactionalEmail - * - * @param bool $transactionalEmail Status of Transactional Email Platform activation for your account (true=enabled, false=disabled) - * - * @return $this - */ - public function setTransactionalEmail($transactionalEmail) - { - $this->container['transactionalEmail'] = $transactionalEmail; - return $this; - } - /** - * Gets transactionalSms - * - * @return bool - */ - public function getTransactionalSms() - { - return $this->container['transactionalSms']; - } - /** - * Sets transactionalSms - * - * @param bool $transactionalSms Status of Transactional SMS Platform activation for your account (true=enabled, false=disabled) - * - * @return $this - */ - public function setTransactionalSms($transactionalSms) - { - $this->container['transactionalSms'] = $transactionalSms; - return $this; - } - /** - * Gets marketingAutomation - * - * @return bool - */ - public function getMarketingAutomation() - { - return $this->container['marketingAutomation']; - } - /** - * Sets marketingAutomation - * - * @param bool $marketingAutomation Status of Marketing Automation Platform activation for your account (true=enabled, false=disabled) - * - * @return $this - */ - public function setMarketingAutomation($marketingAutomation) - { - $this->container['marketingAutomation'] = $marketingAutomation; - return $this; - } - /** - * Gets smsCampaign - * - * @return bool - */ - public function getSmsCampaign() - { - return $this->container['smsCampaign']; - } - /** - * Sets smsCampaign - * - * @param bool $smsCampaign Status of SMS Campaign Platform activation for your account (true=enabled, false=disabled) - * - * @return $this - */ - public function setSmsCampaign($smsCampaign) - { - $this->container['smsCampaign'] = $smsCampaign; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChildDomain.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChildDomain.php deleted file mode 100644 index 6c4d785..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateChildDomain.php +++ /dev/null @@ -1,254 +0,0 @@ - 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['domain' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['domain' => 'domain']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['domain' => 'setDomain']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['domain' => 'getDomain']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['domain'] = isset($data['domain']) ? $data['domain'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets domain - * - * @return string - */ - public function getDomain() - { - return $this->container['domain']; - } - /** - * Sets domain - * - * @param string $domain Value for the sender domain that will replace the existing domain - * - * @return $this - */ - public function setDomain($domain) - { - $this->container['domain'] = $domain; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateContact.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateContact.php deleted file mode 100644 index 250c93f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateContact.php +++ /dev/null @@ -1,364 +0,0 @@ - 'object', 'emailBlacklisted' => 'bool', 'smsBlacklisted' => 'bool', 'listIds' => 'int[]', 'unlinkListIds' => 'int[]', 'smtpBlacklistSender' => 'string[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['attributes' => null, 'emailBlacklisted' => null, 'smsBlacklisted' => null, 'listIds' => 'int64', 'unlinkListIds' => 'int64', 'smtpBlacklistSender' => 'email']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['attributes' => 'attributes', 'emailBlacklisted' => 'emailBlacklisted', 'smsBlacklisted' => 'smsBlacklisted', 'listIds' => 'listIds', 'unlinkListIds' => 'unlinkListIds', 'smtpBlacklistSender' => 'smtpBlacklistSender']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['attributes' => 'setAttributes', 'emailBlacklisted' => 'setEmailBlacklisted', 'smsBlacklisted' => 'setSmsBlacklisted', 'listIds' => 'setListIds', 'unlinkListIds' => 'setUnlinkListIds', 'smtpBlacklistSender' => 'setSmtpBlacklistSender']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['attributes' => 'getAttributes', 'emailBlacklisted' => 'getEmailBlacklisted', 'smsBlacklisted' => 'getSmsBlacklisted', 'listIds' => 'getListIds', 'unlinkListIds' => 'getUnlinkListIds', 'smtpBlacklistSender' => 'getSmtpBlacklistSender']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['attributes'] = isset($data['attributes']) ? $data['attributes'] : null; - $this->container['emailBlacklisted'] = isset($data['emailBlacklisted']) ? $data['emailBlacklisted'] : null; - $this->container['smsBlacklisted'] = isset($data['smsBlacklisted']) ? $data['smsBlacklisted'] : null; - $this->container['listIds'] = isset($data['listIds']) ? $data['listIds'] : null; - $this->container['unlinkListIds'] = isset($data['unlinkListIds']) ? $data['unlinkListIds'] : null; - $this->container['smtpBlacklistSender'] = isset($data['smtpBlacklistSender']) ? $data['smtpBlacklistSender'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets attributes - * - * @return object - */ - public function getAttributes() - { - return $this->container['attributes']; - } - /** - * Sets attributes - * - * @param object $attributes Pass the set of attributes to be updated. These attributes must be present in your account. To update existing email address of a contact with the new one please pass EMAIL in attribtes. For example, `{ \"EMAIL\":\"newemail@domain.com\", \"FNAME\":\"Ellie\", \"LNAME\":\"Roger\"}`. Keep in mind transactional attributes can be updated the same way as normal attributes. Mobile Number in \"SMS\" field should be passed with proper country code. For example {\"SMS\":\"+91xxxxxxxxxx\"} or {\"SMS\":\"0091xxxxxxxxxx\"} - * - * @return $this - */ - public function setAttributes($attributes) - { - $this->container['attributes'] = $attributes; - return $this; - } - /** - * Gets emailBlacklisted - * - * @return bool - */ - public function getEmailBlacklisted() - { - return $this->container['emailBlacklisted']; - } - /** - * Sets emailBlacklisted - * - * @param bool $emailBlacklisted Set/unset this field to blacklist/allow the contact for emails (emailBlacklisted = true) - * - * @return $this - */ - public function setEmailBlacklisted($emailBlacklisted) - { - $this->container['emailBlacklisted'] = $emailBlacklisted; - return $this; - } - /** - * Gets smsBlacklisted - * - * @return bool - */ - public function getSmsBlacklisted() - { - return $this->container['smsBlacklisted']; - } - /** - * Sets smsBlacklisted - * - * @param bool $smsBlacklisted Set/unset this field to blacklist/allow the contact for SMS (smsBlacklisted = true) - * - * @return $this - */ - public function setSmsBlacklisted($smsBlacklisted) - { - $this->container['smsBlacklisted'] = $smsBlacklisted; - return $this; - } - /** - * Gets listIds - * - * @return int[] - */ - public function getListIds() - { - return $this->container['listIds']; - } - /** - * Sets listIds - * - * @param int[] $listIds Ids of the lists to add the contact to - * - * @return $this - */ - public function setListIds($listIds) - { - $this->container['listIds'] = $listIds; - return $this; - } - /** - * Gets unlinkListIds - * - * @return int[] - */ - public function getUnlinkListIds() - { - return $this->container['unlinkListIds']; - } - /** - * Sets unlinkListIds - * - * @param int[] $unlinkListIds Ids of the lists to remove the contact from - * - * @return $this - */ - public function setUnlinkListIds($unlinkListIds) - { - $this->container['unlinkListIds'] = $unlinkListIds; - return $this; - } - /** - * Gets smtpBlacklistSender - * - * @return string[] - */ - public function getSmtpBlacklistSender() - { - return $this->container['smtpBlacklistSender']; - } - /** - * Sets smtpBlacklistSender - * - * @param string[] $smtpBlacklistSender transactional email forbidden sender for contact. Use only for email Contact - * - * @return $this - */ - public function setSmtpBlacklistSender($smtpBlacklistSender) - { - $this->container['smtpBlacklistSender'] = $smtpBlacklistSender; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaign.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaign.php deleted file mode 100644 index c3f339a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaign.php +++ /dev/null @@ -1,903 +0,0 @@ - 'string', 'sender' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateEmailCampaignSender', 'name' => 'string', 'htmlContent' => 'string', 'htmlUrl' => 'string', 'scheduledAt' => '\\DateTime', 'subject' => 'string', 'replyTo' => 'string', 'toField' => 'string', 'recipients' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateEmailCampaignRecipients', 'attachmentUrl' => 'string', 'inlineImageActivation' => 'bool', 'mirrorActive' => 'bool', 'recurring' => 'bool', 'footer' => 'string', 'header' => 'string', 'utmCampaign' => 'string', 'params' => 'object', 'sendAtBestTime' => 'bool', 'abTesting' => 'bool', 'subjectA' => 'string', 'subjectB' => 'string', 'splitRule' => 'int', 'winnerCriteria' => 'string', 'winnerDelay' => 'int', 'ipWarmupEnable' => 'bool', 'initialQuota' => 'int', 'increaseRate' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['tag' => null, 'sender' => null, 'name' => null, 'htmlContent' => null, 'htmlUrl' => 'url', 'scheduledAt' => 'date-time', 'subject' => null, 'replyTo' => 'email', 'toField' => null, 'recipients' => null, 'attachmentUrl' => 'url', 'inlineImageActivation' => null, 'mirrorActive' => null, 'recurring' => null, 'footer' => null, 'header' => null, 'utmCampaign' => null, 'params' => null, 'sendAtBestTime' => null, 'abTesting' => null, 'subjectA' => null, 'subjectB' => null, 'splitRule' => 'int64', 'winnerCriteria' => null, 'winnerDelay' => 'int64', 'ipWarmupEnable' => null, 'initialQuota' => 'int64', 'increaseRate' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['tag' => 'tag', 'sender' => 'sender', 'name' => 'name', 'htmlContent' => 'htmlContent', 'htmlUrl' => 'htmlUrl', 'scheduledAt' => 'scheduledAt', 'subject' => 'subject', 'replyTo' => 'replyTo', 'toField' => 'toField', 'recipients' => 'recipients', 'attachmentUrl' => 'attachmentUrl', 'inlineImageActivation' => 'inlineImageActivation', 'mirrorActive' => 'mirrorActive', 'recurring' => 'recurring', 'footer' => 'footer', 'header' => 'header', 'utmCampaign' => 'utmCampaign', 'params' => 'params', 'sendAtBestTime' => 'sendAtBestTime', 'abTesting' => 'abTesting', 'subjectA' => 'subjectA', 'subjectB' => 'subjectB', 'splitRule' => 'splitRule', 'winnerCriteria' => 'winnerCriteria', 'winnerDelay' => 'winnerDelay', 'ipWarmupEnable' => 'ipWarmupEnable', 'initialQuota' => 'initialQuota', 'increaseRate' => 'increaseRate']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['tag' => 'setTag', 'sender' => 'setSender', 'name' => 'setName', 'htmlContent' => 'setHtmlContent', 'htmlUrl' => 'setHtmlUrl', 'scheduledAt' => 'setScheduledAt', 'subject' => 'setSubject', 'replyTo' => 'setReplyTo', 'toField' => 'setToField', 'recipients' => 'setRecipients', 'attachmentUrl' => 'setAttachmentUrl', 'inlineImageActivation' => 'setInlineImageActivation', 'mirrorActive' => 'setMirrorActive', 'recurring' => 'setRecurring', 'footer' => 'setFooter', 'header' => 'setHeader', 'utmCampaign' => 'setUtmCampaign', 'params' => 'setParams', 'sendAtBestTime' => 'setSendAtBestTime', 'abTesting' => 'setAbTesting', 'subjectA' => 'setSubjectA', 'subjectB' => 'setSubjectB', 'splitRule' => 'setSplitRule', 'winnerCriteria' => 'setWinnerCriteria', 'winnerDelay' => 'setWinnerDelay', 'ipWarmupEnable' => 'setIpWarmupEnable', 'initialQuota' => 'setInitialQuota', 'increaseRate' => 'setIncreaseRate']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['tag' => 'getTag', 'sender' => 'getSender', 'name' => 'getName', 'htmlContent' => 'getHtmlContent', 'htmlUrl' => 'getHtmlUrl', 'scheduledAt' => 'getScheduledAt', 'subject' => 'getSubject', 'replyTo' => 'getReplyTo', 'toField' => 'getToField', 'recipients' => 'getRecipients', 'attachmentUrl' => 'getAttachmentUrl', 'inlineImageActivation' => 'getInlineImageActivation', 'mirrorActive' => 'getMirrorActive', 'recurring' => 'getRecurring', 'footer' => 'getFooter', 'header' => 'getHeader', 'utmCampaign' => 'getUtmCampaign', 'params' => 'getParams', 'sendAtBestTime' => 'getSendAtBestTime', 'abTesting' => 'getAbTesting', 'subjectA' => 'getSubjectA', 'subjectB' => 'getSubjectB', 'splitRule' => 'getSplitRule', 'winnerCriteria' => 'getWinnerCriteria', 'winnerDelay' => 'getWinnerDelay', 'ipWarmupEnable' => 'getIpWarmupEnable', 'initialQuota' => 'getInitialQuota', 'increaseRate' => 'getIncreaseRate']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const WINNER_CRITERIA_OPEN = 'open'; - const WINNER_CRITERIA_CLICK = 'click'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getWinnerCriteriaAllowableValues() - { - return [self::WINNER_CRITERIA_OPEN, self::WINNER_CRITERIA_CLICK]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['tag'] = isset($data['tag']) ? $data['tag'] : null; - $this->container['sender'] = isset($data['sender']) ? $data['sender'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['htmlContent'] = isset($data['htmlContent']) ? $data['htmlContent'] : null; - $this->container['htmlUrl'] = isset($data['htmlUrl']) ? $data['htmlUrl'] : null; - $this->container['scheduledAt'] = isset($data['scheduledAt']) ? $data['scheduledAt'] : null; - $this->container['subject'] = isset($data['subject']) ? $data['subject'] : null; - $this->container['replyTo'] = isset($data['replyTo']) ? $data['replyTo'] : null; - $this->container['toField'] = isset($data['toField']) ? $data['toField'] : null; - $this->container['recipients'] = isset($data['recipients']) ? $data['recipients'] : null; - $this->container['attachmentUrl'] = isset($data['attachmentUrl']) ? $data['attachmentUrl'] : null; - $this->container['inlineImageActivation'] = isset($data['inlineImageActivation']) ? $data['inlineImageActivation'] : \false; - $this->container['mirrorActive'] = isset($data['mirrorActive']) ? $data['mirrorActive'] : null; - $this->container['recurring'] = isset($data['recurring']) ? $data['recurring'] : \false; - $this->container['footer'] = isset($data['footer']) ? $data['footer'] : null; - $this->container['header'] = isset($data['header']) ? $data['header'] : null; - $this->container['utmCampaign'] = isset($data['utmCampaign']) ? $data['utmCampaign'] : null; - $this->container['params'] = isset($data['params']) ? $data['params'] : null; - $this->container['sendAtBestTime'] = isset($data['sendAtBestTime']) ? $data['sendAtBestTime'] : null; - $this->container['abTesting'] = isset($data['abTesting']) ? $data['abTesting'] : \false; - $this->container['subjectA'] = isset($data['subjectA']) ? $data['subjectA'] : null; - $this->container['subjectB'] = isset($data['subjectB']) ? $data['subjectB'] : null; - $this->container['splitRule'] = isset($data['splitRule']) ? $data['splitRule'] : null; - $this->container['winnerCriteria'] = isset($data['winnerCriteria']) ? $data['winnerCriteria'] : null; - $this->container['winnerDelay'] = isset($data['winnerDelay']) ? $data['winnerDelay'] : null; - $this->container['ipWarmupEnable'] = isset($data['ipWarmupEnable']) ? $data['ipWarmupEnable'] : \false; - $this->container['initialQuota'] = isset($data['initialQuota']) ? $data['initialQuota'] : null; - $this->container['increaseRate'] = isset($data['increaseRate']) ? $data['increaseRate'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if (!\is_null($this->container['splitRule']) && $this->container['splitRule'] > 50) { - $invalidProperties[] = "invalid value for 'splitRule', must be smaller than or equal to 50."; - } - if (!\is_null($this->container['splitRule']) && $this->container['splitRule'] < 1) { - $invalidProperties[] = "invalid value for 'splitRule', must be bigger than or equal to 1."; - } - $allowedValues = $this->getWinnerCriteriaAllowableValues(); - if (!\is_null($this->container['winnerCriteria']) && !\in_array($this->container['winnerCriteria'], $allowedValues, \true)) { - $invalidProperties[] = \sprintf("invalid value for 'winnerCriteria', must be one of '%s'", \implode("', '", $allowedValues)); - } - if (!\is_null($this->container['winnerDelay']) && $this->container['winnerDelay'] > 168) { - $invalidProperties[] = "invalid value for 'winnerDelay', must be smaller than or equal to 168."; - } - if (!\is_null($this->container['winnerDelay']) && $this->container['winnerDelay'] < 1) { - $invalidProperties[] = "invalid value for 'winnerDelay', must be bigger than or equal to 1."; - } - if (!\is_null($this->container['increaseRate']) && $this->container['increaseRate'] > 100) { - $invalidProperties[] = "invalid value for 'increaseRate', must be smaller than or equal to 100."; - } - if (!\is_null($this->container['increaseRate']) && $this->container['increaseRate'] < 0) { - $invalidProperties[] = "invalid value for 'increaseRate', must be bigger than or equal to 0."; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets tag - * - * @return string - */ - public function getTag() - { - return $this->container['tag']; - } - /** - * Sets tag - * - * @param string $tag Tag of the campaign - * - * @return $this - */ - public function setTag($tag) - { - $this->container['tag'] = $tag; - return $this; - } - /** - * Gets sender - * - * @return \SendinBlue\Client\Model\UpdateEmailCampaignSender - */ - public function getSender() - { - return $this->container['sender']; - } - /** - * Sets sender - * - * @param \SendinBlue\Client\Model\UpdateEmailCampaignSender $sender sender - * - * @return $this - */ - public function setSender($sender) - { - $this->container['sender'] = $sender; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the campaign - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets htmlContent - * - * @return string - */ - public function getHtmlContent() - { - return $this->container['htmlContent']; - } - /** - * Sets htmlContent - * - * @param string $htmlContent Body of the message (HTML version). REQUIRED if htmlUrl is empty - * - * @return $this - */ - public function setHtmlContent($htmlContent) - { - $this->container['htmlContent'] = $htmlContent; - return $this; - } - /** - * Gets htmlUrl - * - * @return string - */ - public function getHtmlUrl() - { - return $this->container['htmlUrl']; - } - /** - * Sets htmlUrl - * - * @param string $htmlUrl Url which contents the body of the email message. REQUIRED if htmlContent is empty - * - * @return $this - */ - public function setHtmlUrl($htmlUrl) - { - $this->container['htmlUrl'] = $htmlUrl; - return $this; - } - /** - * Gets scheduledAt - * - * @return \DateTime - */ - public function getScheduledAt() - { - return $this->container['scheduledAt']; - } - /** - * Sets scheduledAt - * - * @param \DateTime $scheduledAt UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. If sendAtBestTime is set to true, your campaign will be sent according to the date passed (ignoring the time part). - * - * @return $this - */ - public function setScheduledAt($scheduledAt) - { - $this->container['scheduledAt'] = $scheduledAt; - return $this; - } - /** - * Gets subject - * - * @return string - */ - public function getSubject() - { - return $this->container['subject']; - } - /** - * Sets subject - * - * @param string $subject Subject of the campaign - * - * @return $this - */ - public function setSubject($subject) - { - $this->container['subject'] = $subject; - return $this; - } - /** - * Gets replyTo - * - * @return string - */ - public function getReplyTo() - { - return $this->container['replyTo']; - } - /** - * Sets replyTo - * - * @param string $replyTo Email on which campaign recipients will be able to reply to - * - * @return $this - */ - public function setReplyTo($replyTo) - { - $this->container['replyTo'] = $replyTo; - return $this; - } - /** - * Gets toField - * - * @return string - */ - public function getToField() - { - return $this->container['toField']; - } - /** - * Sets toField - * - * @param string $toField To personalize the «To» Field. If you want to include the first name and last name of your recipient, add {FNAME} {LNAME}. These contact attributes must already exist in your SendinBlue account. If input parameter 'params' used please use {{contact.FNAME}} {{contact.LNAME}} for personalization - * - * @return $this - */ - public function setToField($toField) - { - $this->container['toField'] = $toField; - return $this; - } - /** - * Gets recipients - * - * @return \SendinBlue\Client\Model\UpdateEmailCampaignRecipients - */ - public function getRecipients() - { - return $this->container['recipients']; - } - /** - * Sets recipients - * - * @param \SendinBlue\Client\Model\UpdateEmailCampaignRecipients $recipients recipients - * - * @return $this - */ - public function setRecipients($recipients) - { - $this->container['recipients'] = $recipients; - return $this; - } - /** - * Gets attachmentUrl - * - * @return string - */ - public function getAttachmentUrl() - { - return $this->container['attachmentUrl']; - } - /** - * Sets attachmentUrl - * - * @param string $attachmentUrl Absolute url of the attachment (no local file). Extension allowed: xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps - * - * @return $this - */ - public function setAttachmentUrl($attachmentUrl) - { - $this->container['attachmentUrl'] = $attachmentUrl; - return $this; - } - /** - * Gets inlineImageActivation - * - * @return bool - */ - public function getInlineImageActivation() - { - return $this->container['inlineImageActivation']; - } - /** - * Sets inlineImageActivation - * - * @param bool $inlineImageActivation Status of inline image. inlineImageActivation = false means image can’t be embedded, & inlineImageActivation = true means image can be embedded, in the email. You cannot send a campaign of more than 4MB with images embedded in the email. Campaigns with the images embedded in the email must be sent to less than 5000 contacts. - * - * @return $this - */ - public function setInlineImageActivation($inlineImageActivation) - { - $this->container['inlineImageActivation'] = $inlineImageActivation; - return $this; - } - /** - * Gets mirrorActive - * - * @return bool - */ - public function getMirrorActive() - { - return $this->container['mirrorActive']; - } - /** - * Sets mirrorActive - * - * @param bool $mirrorActive Status of mirror links in campaign. mirrorActive = false means mirror links are deactivated, & mirrorActive = true means mirror links are activated, in the campaign - * - * @return $this - */ - public function setMirrorActive($mirrorActive) - { - $this->container['mirrorActive'] = $mirrorActive; - return $this; - } - /** - * Gets recurring - * - * @return bool - */ - public function getRecurring() - { - return $this->container['recurring']; - } - /** - * Sets recurring - * - * @param bool $recurring FOR TRIGGER ONLY ! Type of trigger campaign.recurring = false means contact can receive the same Trigger campaign only once, & recurring = true means contact can receive the same Trigger campaign several times - * - * @return $this - */ - public function setRecurring($recurring) - { - $this->container['recurring'] = $recurring; - return $this; - } - /** - * Gets footer - * - * @return string - */ - public function getFooter() - { - return $this->container['footer']; - } - /** - * Sets footer - * - * @param string $footer Footer of the email campaign - * - * @return $this - */ - public function setFooter($footer) - { - $this->container['footer'] = $footer; - return $this; - } - /** - * Gets header - * - * @return string - */ - public function getHeader() - { - return $this->container['header']; - } - /** - * Sets header - * - * @param string $header Header of the email campaign - * - * @return $this - */ - public function setHeader($header) - { - $this->container['header'] = $header; - return $this; - } - /** - * Gets utmCampaign - * - * @return string - */ - public function getUtmCampaign() - { - return $this->container['utmCampaign']; - } - /** - * Sets utmCampaign - * - * @param string $utmCampaign Customize the utm_campaign value. If this field is empty, the campaign name will be used. Only alphanumeric characters and spaces are allowed - * - * @return $this - */ - public function setUtmCampaign($utmCampaign) - { - $this->container['utmCampaign'] = $utmCampaign; - return $this; - } - /** - * Gets params - * - * @return object - */ - public function getParams() - { - return $this->container['params']; - } - /** - * Sets params - * - * @param object $params Pass the set of attributes to customize the type 'classic' campaign. For example, {\"FNAME\":\"Joe\", \"LNAME\":\"Doe\"}. The 'params' field will get updated, only if the campaign is in New Template Language, else ignored. The New Template Language is dependent on the values of 'subject', 'htmlContent/htmlUrl', 'sender.name' & 'toField' - * - * @return $this - */ - public function setParams($params) - { - $this->container['params'] = $params; - return $this; - } - /** - * Gets sendAtBestTime - * - * @return bool - */ - public function getSendAtBestTime() - { - return $this->container['sendAtBestTime']; - } - /** - * Sets sendAtBestTime - * - * @param bool $sendAtBestTime Set this to true if you want to send your campaign at best time. Note:- if true, warmup ip will be disabled. - * - * @return $this - */ - public function setSendAtBestTime($sendAtBestTime) - { - $this->container['sendAtBestTime'] = $sendAtBestTime; - return $this; - } - /** - * Gets abTesting - * - * @return bool - */ - public function getAbTesting() - { - return $this->container['abTesting']; - } - /** - * Sets abTesting - * - * @param bool $abTesting Status of A/B Test. abTesting = false means it is disabled, & abTesting = true means it is enabled. 'subjectA', 'subjectB', 'splitRule', 'winnerCriteria' & 'winnerDelay' will be considered if abTesting is set to true. 'subject' if passed is ignored. Can be set to true only if 'sendAtBestTime' is 'false'. You will be able to set up two subject lines for your campaign and send them to a random sample of your total recipients. Half of the test group will receive version A, and the other half will receive version B - * - * @return $this - */ - public function setAbTesting($abTesting) - { - $this->container['abTesting'] = $abTesting; - return $this; - } - /** - * Gets subjectA - * - * @return string - */ - public function getSubjectA() - { - return $this->container['subjectA']; - } - /** - * Sets subjectA - * - * @param string $subjectA Subject A of the campaign. Considered if abTesting = true. subjectA & subjectB should have unique value - * - * @return $this - */ - public function setSubjectA($subjectA) - { - $this->container['subjectA'] = $subjectA; - return $this; - } - /** - * Gets subjectB - * - * @return string - */ - public function getSubjectB() - { - return $this->container['subjectB']; - } - /** - * Sets subjectB - * - * @param string $subjectB Subject B of the campaign. Considered if abTesting = true. subjectA & subjectB should have unique value - * - * @return $this - */ - public function setSubjectB($subjectB) - { - $this->container['subjectB'] = $subjectB; - return $this; - } - /** - * Gets splitRule - * - * @return int - */ - public function getSplitRule() - { - return $this->container['splitRule']; - } - /** - * Sets splitRule - * - * @param int $splitRule Add the size of your test groups. Considered if abTesting = true. We'll send version A and B to a random sample of recipients, and then the winning version to everyone else - * - * @return $this - */ - public function setSplitRule($splitRule) - { - if (!\is_null($splitRule) && $splitRule > 50) { - throw new \InvalidArgumentException('invalid value for $splitRule when calling UpdateEmailCampaign., must be smaller than or equal to 50.'); - } - if (!\is_null($splitRule) && $splitRule < 1) { - throw new \InvalidArgumentException('invalid value for $splitRule when calling UpdateEmailCampaign., must be bigger than or equal to 1.'); - } - $this->container['splitRule'] = $splitRule; - return $this; - } - /** - * Gets winnerCriteria - * - * @return string - */ - public function getWinnerCriteria() - { - return $this->container['winnerCriteria']; - } - /** - * Sets winnerCriteria - * - * @param string $winnerCriteria Choose the metrics that will determinate the winning version. Considered if 'splitRule' >= 1 and < 50. If splitRule = 50, 'winnerCriteria' is ignored if passed or alreday exist in record - * - * @return $this - */ - public function setWinnerCriteria($winnerCriteria) - { - $allowedValues = $this->getWinnerCriteriaAllowableValues(); - if (!\is_null($winnerCriteria) && !\in_array($winnerCriteria, $allowedValues, \true)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'winnerCriteria', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['winnerCriteria'] = $winnerCriteria; - return $this; - } - /** - * Gets winnerDelay - * - * @return int - */ - public function getWinnerDelay() - { - return $this->container['winnerDelay']; - } - /** - * Sets winnerDelay - * - * @param int $winnerDelay Choose the duration of the test in hours. Maximum is 7 days, pass 24*7 = 168 hours. The winning version will be sent at the end of the test. Considered if 'splitRule' >= 1 and < 50. If splitRule = 50, 'winnerDelay' is ignored if passed or alreday exist in record - * - * @return $this - */ - public function setWinnerDelay($winnerDelay) - { - if (!\is_null($winnerDelay) && $winnerDelay > 168) { - throw new \InvalidArgumentException('invalid value for $winnerDelay when calling UpdateEmailCampaign., must be smaller than or equal to 168.'); - } - if (!\is_null($winnerDelay) && $winnerDelay < 1) { - throw new \InvalidArgumentException('invalid value for $winnerDelay when calling UpdateEmailCampaign., must be bigger than or equal to 1.'); - } - $this->container['winnerDelay'] = $winnerDelay; - return $this; - } - /** - * Gets ipWarmupEnable - * - * @return bool - */ - public function getIpWarmupEnable() - { - return $this->container['ipWarmupEnable']; - } - /** - * Sets ipWarmupEnable - * - * @param bool $ipWarmupEnable Available for dedicated ip clients. Set this to true if you wish to warm up your ip. - * - * @return $this - */ - public function setIpWarmupEnable($ipWarmupEnable) - { - $this->container['ipWarmupEnable'] = $ipWarmupEnable; - return $this; - } - /** - * Gets initialQuota - * - * @return int - */ - public function getInitialQuota() - { - return $this->container['initialQuota']; - } - /** - * Sets initialQuota - * - * @param int $initialQuota Set an initial quota greater than 1 for warming up your ip. We recommend you set a value of 3000. - * - * @return $this - */ - public function setInitialQuota($initialQuota) - { - $this->container['initialQuota'] = $initialQuota; - return $this; - } - /** - * Gets increaseRate - * - * @return int - */ - public function getIncreaseRate() - { - return $this->container['increaseRate']; - } - /** - * Sets increaseRate - * - * @param int $increaseRate Set a percentage increase rate for warming up your ip. We recommend you set the increase rate to 30% per day. If you want to send the same number of emails every day, set the daily increase value to 0%. - * - * @return $this - */ - public function setIncreaseRate($increaseRate) - { - if (!\is_null($increaseRate) && $increaseRate > 100) { - throw new \InvalidArgumentException('invalid value for $increaseRate when calling UpdateEmailCampaign., must be smaller than or equal to 100.'); - } - if (!\is_null($increaseRate) && $increaseRate < 0) { - throw new \InvalidArgumentException('invalid value for $increaseRate when calling UpdateEmailCampaign., must be bigger than or equal to 0.'); - } - $this->container['increaseRate'] = $increaseRate; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignRecipients.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignRecipients.php deleted file mode 100644 index 1fbdcd4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignRecipients.php +++ /dev/null @@ -1,277 +0,0 @@ - 'int[]', 'listIds' => 'int[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['exclusionListIds' => 'int64', 'listIds' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['exclusionListIds' => 'exclusionListIds', 'listIds' => 'listIds']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['exclusionListIds' => 'setExclusionListIds', 'listIds' => 'setListIds']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['exclusionListIds' => 'getExclusionListIds', 'listIds' => 'getListIds']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['exclusionListIds'] = isset($data['exclusionListIds']) ? $data['exclusionListIds'] : null; - $this->container['listIds'] = isset($data['listIds']) ? $data['listIds'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets exclusionListIds - * - * @return int[] - */ - public function getExclusionListIds() - { - return $this->container['exclusionListIds']; - } - /** - * Sets exclusionListIds - * - * @param int[] $exclusionListIds List ids which have to be excluded from a campaign - * - * @return $this - */ - public function setExclusionListIds($exclusionListIds) - { - $this->container['exclusionListIds'] = $exclusionListIds; - return $this; - } - /** - * Gets listIds - * - * @return int[] - */ - public function getListIds() - { - return $this->container['listIds']; - } - /** - * Sets listIds - * - * @param int[] $listIds Lists Ids to send the campaign to. REQUIRED if already not present in campaign and scheduledAt is not empty - * - * @return $this - */ - public function setListIds($listIds) - { - $this->container['listIds'] = $listIds; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignSender.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignSender.php deleted file mode 100644 index b7d38d4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignSender.php +++ /dev/null @@ -1,299 +0,0 @@ - 'string', 'email' => 'string', 'id' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'email' => 'email', 'id' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'email' => 'email', 'id' => 'id']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'email' => 'setEmail', 'id' => 'setId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'email' => 'getEmail', 'id' => 'getId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Sender Name from which the campaign emails are sent - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Sender email from which the campaign emails are sent - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id Select the sender for the campaign on the basis of sender id. In order to select a sender with specific pool of IP’s, dedicated ip users shall pass id (instead of email). - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateList.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateList.php deleted file mode 100644 index 92ab5cc..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateList.php +++ /dev/null @@ -1,276 +0,0 @@ - 'string', 'folderId' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'folderId' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'folderId' => 'folderId']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'folderId' => 'setFolderId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'folderId' => 'getFolderId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['folderId'] = isset($data['folderId']) ? $data['folderId'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the list. Either of the two parameters (name, folderId) can be updated at a time. - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets folderId - * - * @return int - */ - public function getFolderId() - { - return $this->container['folderId']; - } - /** - * Sets folderId - * - * @param int $folderId Id of the folder in which the list is to be moved. Either of the two parameters (name, folderId) can be updated at a time. - * - * @return $this - */ - public function setFolderId($folderId) - { - $this->container['folderId'] = $folderId; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSender.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSender.php deleted file mode 100644 index 0577302..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSender.php +++ /dev/null @@ -1,298 +0,0 @@ - 'string', 'email' => 'string', 'ips' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSenderIps[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'email' => 'email', 'ips' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'email' => 'email', 'ips' => 'ips']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'email' => 'setEmail', 'ips' => 'setIps']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'email' => 'getEmail', 'ips' => 'getIps']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['ips'] = isset($data['ips']) ? $data['ips'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name From Name to update the sender - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email From Email to update the sender - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets ips - * - * @return \SendinBlue\Client\Model\CreateSenderIps[] - */ - public function getIps() - { - return $this->container['ips']; - } - /** - * Sets ips - * - * @param \SendinBlue\Client\Model\CreateSenderIps[] $ips Only in case of dedicated IP, IPs to associate to the sender. If passed, will replace all the existing IPs. - * - * @return $this - */ - public function setIps($ips) - { - $this->container['ips'] = $ips; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmsCampaign.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmsCampaign.php deleted file mode 100644 index 7ede7d4..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmsCampaign.php +++ /dev/null @@ -1,348 +0,0 @@ - 'string', 'sender' => 'string', 'content' => 'string', 'recipients' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\CreateSmsCampaignRecipients', 'scheduledAt' => '\\DateTime']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'sender' => null, 'content' => null, 'recipients' => null, 'scheduledAt' => 'date-time']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'sender' => 'sender', 'content' => 'content', 'recipients' => 'recipients', 'scheduledAt' => 'scheduledAt']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'sender' => 'setSender', 'content' => 'setContent', 'recipients' => 'setRecipients', 'scheduledAt' => 'setScheduledAt']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'sender' => 'getSender', 'content' => 'getContent', 'recipients' => 'getRecipients', 'scheduledAt' => 'getScheduledAt']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['sender'] = isset($data['sender']) ? $data['sender'] : null; - $this->container['content'] = isset($data['content']) ? $data['content'] : null; - $this->container['recipients'] = isset($data['recipients']) ? $data['recipients'] : null; - $this->container['scheduledAt'] = isset($data['scheduledAt']) ? $data['scheduledAt'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if (!\is_null($this->container['sender']) && \mb_strlen($this->container['sender']) > 11) { - $invalidProperties[] = "invalid value for 'sender', the character length must be smaller than or equal to 11."; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the campaign - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets sender - * - * @return string - */ - public function getSender() - { - return $this->container['sender']; - } - /** - * Sets sender - * - * @param string $sender Name of the sender. The number of characters is limited to 11 - * - * @return $this - */ - public function setSender($sender) - { - if (!\is_null($sender) && \mb_strlen($sender) > 11) { - throw new \InvalidArgumentException('invalid length for $sender when calling UpdateSmsCampaign., must be smaller than or equal to 11.'); - } - $this->container['sender'] = $sender; - return $this; - } - /** - * Gets content - * - * @return string - */ - public function getContent() - { - return $this->container['content']; - } - /** - * Sets content - * - * @param string $content Content of the message. The maximum characters used per SMS is 160, if used more than that, it will be counted as more than one SMS - * - * @return $this - */ - public function setContent($content) - { - $this->container['content'] = $content; - return $this; - } - /** - * Gets recipients - * - * @return \SendinBlue\Client\Model\CreateSmsCampaignRecipients - */ - public function getRecipients() - { - return $this->container['recipients']; - } - /** - * Sets recipients - * - * @param \SendinBlue\Client\Model\CreateSmsCampaignRecipients $recipients recipients - * - * @return $this - */ - public function setRecipients($recipients) - { - $this->container['recipients'] = $recipients; - return $this; - } - /** - * Gets scheduledAt - * - * @return \DateTime - */ - public function getScheduledAt() - { - return $this->container['scheduledAt']; - } - /** - * Sets scheduledAt - * - * @param \DateTime $scheduledAt UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. - * - * @return $this - */ - public function setScheduledAt($scheduledAt) - { - $this->container['scheduledAt'] = $scheduledAt; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplate.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplate.php deleted file mode 100644 index ce4b38f..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplate.php +++ /dev/null @@ -1,452 +0,0 @@ - 'string', 'sender' => 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\UpdateSmtpTemplateSender', 'templateName' => 'string', 'htmlContent' => 'string', 'htmlUrl' => 'string', 'subject' => 'string', 'replyTo' => 'string', 'toField' => 'string', 'attachmentUrl' => 'string', 'isActive' => 'bool']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['tag' => null, 'sender' => null, 'templateName' => null, 'htmlContent' => null, 'htmlUrl' => 'url', 'subject' => null, 'replyTo' => 'email', 'toField' => null, 'attachmentUrl' => 'url', 'isActive' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['tag' => 'tag', 'sender' => 'sender', 'templateName' => 'templateName', 'htmlContent' => 'htmlContent', 'htmlUrl' => 'htmlUrl', 'subject' => 'subject', 'replyTo' => 'replyTo', 'toField' => 'toField', 'attachmentUrl' => 'attachmentUrl', 'isActive' => 'isActive']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['tag' => 'setTag', 'sender' => 'setSender', 'templateName' => 'setTemplateName', 'htmlContent' => 'setHtmlContent', 'htmlUrl' => 'setHtmlUrl', 'subject' => 'setSubject', 'replyTo' => 'setReplyTo', 'toField' => 'setToField', 'attachmentUrl' => 'setAttachmentUrl', 'isActive' => 'setIsActive']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['tag' => 'getTag', 'sender' => 'getSender', 'templateName' => 'getTemplateName', 'htmlContent' => 'getHtmlContent', 'htmlUrl' => 'getHtmlUrl', 'subject' => 'getSubject', 'replyTo' => 'getReplyTo', 'toField' => 'getToField', 'attachmentUrl' => 'getAttachmentUrl', 'isActive' => 'getIsActive']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['tag'] = isset($data['tag']) ? $data['tag'] : null; - $this->container['sender'] = isset($data['sender']) ? $data['sender'] : null; - $this->container['templateName'] = isset($data['templateName']) ? $data['templateName'] : null; - $this->container['htmlContent'] = isset($data['htmlContent']) ? $data['htmlContent'] : null; - $this->container['htmlUrl'] = isset($data['htmlUrl']) ? $data['htmlUrl'] : null; - $this->container['subject'] = isset($data['subject']) ? $data['subject'] : null; - $this->container['replyTo'] = isset($data['replyTo']) ? $data['replyTo'] : null; - $this->container['toField'] = isset($data['toField']) ? $data['toField'] : null; - $this->container['attachmentUrl'] = isset($data['attachmentUrl']) ? $data['attachmentUrl'] : null; - $this->container['isActive'] = isset($data['isActive']) ? $data['isActive'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets tag - * - * @return string - */ - public function getTag() - { - return $this->container['tag']; - } - /** - * Sets tag - * - * @param string $tag Tag of the template - * - * @return $this - */ - public function setTag($tag) - { - $this->container['tag'] = $tag; - return $this; - } - /** - * Gets sender - * - * @return \SendinBlue\Client\Model\UpdateSmtpTemplateSender - */ - public function getSender() - { - return $this->container['sender']; - } - /** - * Sets sender - * - * @param \SendinBlue\Client\Model\UpdateSmtpTemplateSender $sender sender - * - * @return $this - */ - public function setSender($sender) - { - $this->container['sender'] = $sender; - return $this; - } - /** - * Gets templateName - * - * @return string - */ - public function getTemplateName() - { - return $this->container['templateName']; - } - /** - * Sets templateName - * - * @param string $templateName Name of the template - * - * @return $this - */ - public function setTemplateName($templateName) - { - $this->container['templateName'] = $templateName; - return $this; - } - /** - * Gets htmlContent - * - * @return string - */ - public function getHtmlContent() - { - return $this->container['htmlContent']; - } - /** - * Sets htmlContent - * - * @param string $htmlContent Required if htmlUrl is empty. Body of the message (HTML must have more than 10 characters) - * - * @return $this - */ - public function setHtmlContent($htmlContent) - { - $this->container['htmlContent'] = $htmlContent; - return $this; - } - /** - * Gets htmlUrl - * - * @return string - */ - public function getHtmlUrl() - { - return $this->container['htmlUrl']; - } - /** - * Sets htmlUrl - * - * @param string $htmlUrl Required if htmlContent is empty. URL to the body of the email (HTML) - * - * @return $this - */ - public function setHtmlUrl($htmlUrl) - { - $this->container['htmlUrl'] = $htmlUrl; - return $this; - } - /** - * Gets subject - * - * @return string - */ - public function getSubject() - { - return $this->container['subject']; - } - /** - * Sets subject - * - * @param string $subject Subject of the email - * - * @return $this - */ - public function setSubject($subject) - { - $this->container['subject'] = $subject; - return $this; - } - /** - * Gets replyTo - * - * @return string - */ - public function getReplyTo() - { - return $this->container['replyTo']; - } - /** - * Sets replyTo - * - * @param string $replyTo Email on which campaign recipients will be able to reply to - * - * @return $this - */ - public function setReplyTo($replyTo) - { - $this->container['replyTo'] = $replyTo; - return $this; - } - /** - * Gets toField - * - * @return string - */ - public function getToField() - { - return $this->container['toField']; - } - /** - * Sets toField - * - * @param string $toField To personalize the «To» Field. If you want to include the first name and last name of your recipient, add {FNAME} {LNAME}. These contact attributes must already exist in your SendinBlue account. If input parameter 'params' used please use {{contact.FNAME}} {{contact.LNAME}} for personalization - * - * @return $this - */ - public function setToField($toField) - { - $this->container['toField'] = $toField; - return $this; - } - /** - * Gets attachmentUrl - * - * @return string - */ - public function getAttachmentUrl() - { - return $this->container['attachmentUrl']; - } - /** - * Sets attachmentUrl - * - * @param string $attachmentUrl Absolute url of the attachment (no local file). Extension allowed: xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps - * - * @return $this - */ - public function setAttachmentUrl($attachmentUrl) - { - $this->container['attachmentUrl'] = $attachmentUrl; - return $this; - } - /** - * Gets isActive - * - * @return bool - */ - public function getIsActive() - { - return $this->container['isActive']; - } - /** - * Sets isActive - * - * @param bool $isActive Status of the template. isActive = false means template is inactive, isActive = true means template is active - * - * @return $this - */ - public function setIsActive($isActive) - { - $this->container['isActive'] = $isActive; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplateSender.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplateSender.php deleted file mode 100644 index 95fa814..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplateSender.php +++ /dev/null @@ -1,299 +0,0 @@ - 'string', 'email' => 'string', 'id' => 'int']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['name' => null, 'email' => 'email', 'id' => 'int64']; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['name' => 'name', 'email' => 'email', 'id' => 'id']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['name' => 'setName', 'email' => 'setEmail', 'id' => 'setId']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['name' => 'getName', 'email' => 'getEmail', 'id' => 'getId']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - $this->container['email'] = isset($data['email']) ? $data['email'] : null; - $this->container['id'] = isset($data['id']) ? $data['id'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the sender - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Gets email - * - * @return string - */ - public function getEmail() - { - return $this->container['email']; - } - /** - * Sets email - * - * @param string $email Email of the sender - * - * @return $this - */ - public function setEmail($email) - { - $this->container['email'] = $email; - return $this; - } - /** - * Gets id - * - * @return int - */ - public function getId() - { - return $this->container['id']; - } - /** - * Sets id - * - * @param int $id Select the sender for the template on the basis of sender id. In order to select a sender with specific pool of IP’s, dedicated ip users shall pass id (instead of email). - * - * @return $this - */ - public function setId($id) - { - $this->container['id'] = $id; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateWebhook.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateWebhook.php deleted file mode 100644 index 88c5107..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UpdateWebhook.php +++ /dev/null @@ -1,326 +0,0 @@ - 'string', 'description' => 'string', 'events' => 'string[]']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['url' => 'url', 'description' => null, 'events' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['url' => 'url', 'description' => 'description', 'events' => 'events']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['url' => 'setUrl', 'description' => 'setDescription', 'events' => 'setEvents']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['url' => 'getUrl', 'description' => 'getDescription', 'events' => 'getEvents']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - const EVENTS_HARD_BOUNCE = 'hardBounce'; - const EVENTS_SOFT_BOUNCE = 'softBounce'; - const EVENTS_BLOCKED = 'blocked'; - const EVENTS_SPAM = 'spam'; - const EVENTS_DELIVERED = 'delivered'; - const EVENTS_REQUEST = 'request'; - const EVENTS_CLICK = 'click'; - const EVENTS_INVALID = 'invalid'; - const EVENTS_DEFERRED = 'deferred'; - const EVENTS_OPENED = 'opened'; - const EVENTS_UNIQUE_OPENED = 'uniqueOpened'; - const EVENTS_UNSUBSCRIBED = 'unsubscribed'; - const EVENTS_LIST_ADDITION = 'listAddition'; - const EVENTS_CONTACT_UPDATED = 'contactUpdated'; - const EVENTS_CONTACT_DELETED = 'contactDeleted'; - /** - * Gets allowable values of the enum - * - * @return string[] - */ - public function getEventsAllowableValues() - { - return [self::EVENTS_HARD_BOUNCE, self::EVENTS_SOFT_BOUNCE, self::EVENTS_BLOCKED, self::EVENTS_SPAM, self::EVENTS_DELIVERED, self::EVENTS_REQUEST, self::EVENTS_CLICK, self::EVENTS_INVALID, self::EVENTS_DEFERRED, self::EVENTS_OPENED, self::EVENTS_UNIQUE_OPENED, self::EVENTS_UNSUBSCRIBED, self::EVENTS_LIST_ADDITION, self::EVENTS_CONTACT_UPDATED, self::EVENTS_CONTACT_DELETED]; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['url'] = isset($data['url']) ? $data['url'] : null; - $this->container['description'] = isset($data['description']) ? $data['description'] : null; - $this->container['events'] = isset($data['events']) ? $data['events'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets url - * - * @return string - */ - public function getUrl() - { - return $this->container['url']; - } - /** - * Sets url - * - * @param string $url URL of the webhook - * - * @return $this - */ - public function setUrl($url) - { - $this->container['url'] = $url; - return $this; - } - /** - * Gets description - * - * @return string - */ - public function getDescription() - { - return $this->container['description']; - } - /** - * Sets description - * - * @param string $description Description of the webhook - * - * @return $this - */ - public function setDescription($description) - { - $this->container['description'] = $description; - return $this; - } - /** - * Gets events - * - * @return string[] - */ - public function getEvents() - { - return $this->container['events']; - } - /** - * Sets events - * - * @param string[] $events Events triggering the webhook. Possible values for Transactional type webhook – request, delivered, hardBounce, softBounce, blocked, spam, invalid, deferred, click, opened, uniqueOpened and unsubscribed and possible values for Marketing type webhook – spam, opened, click, hardBounce, softBounce, unsubscribed, listAddition and delivered - * - * @return $this - */ - public function setEvents($events) - { - $allowedValues = $this->getEventsAllowableValues(); - if (!\is_null($events) && \array_diff($events, $allowedValues)) { - throw new \InvalidArgumentException(\sprintf("Invalid value for 'events', must be one of '%s'", \implode("', '", $allowedValues))); - } - $this->container['events'] = $events; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UploadImageToGallery.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UploadImageToGallery.php deleted file mode 100644 index adaa692..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/Model/UploadImageToGallery.php +++ /dev/null @@ -1,279 +0,0 @@ - 'string', 'name' => 'string']; - /** - * Array of property to format mappings. Used for (de)serialization - * - * @var string[] - */ - protected static $swaggerFormats = ['imageUrl' => null, 'name' => null]; - /** - * Array of property to type mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerTypes() - { - return self::$swaggerTypes; - } - /** - * Array of property to format mappings. Used for (de)serialization - * - * @return array - */ - public static function swaggerFormats() - { - return self::$swaggerFormats; - } - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @var string[] - */ - protected static $attributeMap = ['imageUrl' => 'imageUrl', 'name' => 'name']; - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @var string[] - */ - protected static $setters = ['imageUrl' => 'setImageUrl', 'name' => 'setName']; - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @var string[] - */ - protected static $getters = ['imageUrl' => 'getImageUrl', 'name' => 'getName']; - /** - * Array of attributes where the key is the local name, - * and the value is the original name - * - * @return array - */ - public static function attributeMap() - { - return self::$attributeMap; - } - /** - * Array of attributes to setter functions (for deserialization of responses) - * - * @return array - */ - public static function setters() - { - return self::$setters; - } - /** - * Array of attributes to getter functions (for serialization of requests) - * - * @return array - */ - public static function getters() - { - return self::$getters; - } - /** - * The original name of the model. - * - * @return string - */ - public function getModelName() - { - return self::$swaggerModelName; - } - /** - * Associative array for storing property values - * - * @var mixed[] - */ - protected $container = []; - /** - * Constructor - * - * @param mixed[] $data Associated array of property values - * initializing the model - */ - public function __construct(array $data = null) - { - $this->container['imageUrl'] = isset($data['imageUrl']) ? $data['imageUrl'] : null; - $this->container['name'] = isset($data['name']) ? $data['name'] : null; - } - /** - * Show all the invalid properties with reasons. - * - * @return array invalid properties with reasons - */ - public function listInvalidProperties() - { - $invalidProperties = []; - if ($this->container['imageUrl'] === null) { - $invalidProperties[] = "'imageUrl' can't be null"; - } - return $invalidProperties; - } - /** - * Validate all the properties in the model - * return true if all passed - * - * @return bool True if all properties are valid - */ - public function valid() - { - return \count($this->listInvalidProperties()) === 0; - } - /** - * Gets imageUrl - * - * @return string - */ - public function getImageUrl() - { - return $this->container['imageUrl']; - } - /** - * Sets imageUrl - * - * @param string $imageUrl The absolute url of the image (no local file). Maximum allowed size for image is 2MB. Allowed extensions for images are - jpeg, jpg, png, bmp, gif. - * - * @return $this - */ - public function setImageUrl($imageUrl) - { - $this->container['imageUrl'] = $imageUrl; - return $this; - } - /** - * Gets name - * - * @return string - */ - public function getName() - { - return $this->container['name']; - } - /** - * Sets name - * - * @param string $name Name of the image. - * - * @return $this - */ - public function setName($name) - { - $this->container['name'] = $name; - return $this; - } - /** - * Returns true if offset exists. False otherwise. - * - * @param integer $offset Offset - * - * @return boolean - */ - public function offsetExists($offset) - { - return isset($this->container[$offset]); - } - /** - * Gets offset. - * - * @param integer $offset Offset - * - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->container[$offset]) ? $this->container[$offset] : null; - } - /** - * Sets value based on offset. - * - * @param integer $offset Offset - * @param mixed $value Value to be set - * - * @return void - */ - public function offsetSet($offset, $value) - { - if (\is_null($offset)) { - $this->container[] = $value; - } else { - $this->container[$offset] = $value; - } - } - /** - * Unsets offset. - * - * @param integer $offset Offset - * - * @return void - */ - public function offsetUnset($offset) - { - unset($this->container[$offset]); - } - /** - * Gets the string presentation of the object - * - * @return string - */ - public function __toString() - { - if (\defined('JSON_PRETTY_PRINT')) { - // use JSON pretty print - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this), \JSON_PRETTY_PRINT); - } - return \json_encode(\WPMailSMTP\Vendor\SendinBlue\Client\ObjectSerializer::sanitizeForSerialization($this)); - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/ObjectSerializer.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/ObjectSerializer.php deleted file mode 100644 index c94ec23..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/sendinblue/api-v3-sdk/lib/ObjectSerializer.php +++ /dev/null @@ -1,302 +0,0 @@ -format('Y-m-d') : $data->format(\DateTime::ATOM); - } elseif (\is_array($data)) { - foreach ($data as $property => $value) { - $data[$property] = self::sanitizeForSerialization($value); - } - return $data; - } elseif ($data instanceof \stdClass) { - foreach ($data as $property => $value) { - $data->{$property} = self::sanitizeForSerialization($value); - } - return $data; - } elseif (\is_object($data)) { - $values = []; - $formats = $data::swaggerFormats(); - foreach ($data::swaggerTypes() as $property => $swaggerType) { - $getter = $data::getters()[$property]; - $value = $data->{$getter}(); - if ($value !== null && !\in_array($swaggerType, ['DateTime', 'bool', 'boolean', 'byte', 'double', 'float', 'int', 'integer', 'mixed', 'number', 'object', 'string', 'void'], \true) && \method_exists($swaggerType, 'getAllowableEnumValues') && !\in_array($value, $swaggerType::getAllowableEnumValues(), \true)) { - $imploded = \implode("', '", $swaggerType::getAllowableEnumValues()); - throw new \InvalidArgumentException("Invalid value for enum '{$swaggerType}', must be one of: '{$imploded}'"); - } - if ($value !== null) { - $values[$data::attributeMap()[$property]] = self::sanitizeForSerialization($value, $swaggerType, $formats[$property]); - } - } - return (object) $values; - } else { - return (string) $data; - } - } - /** - * Sanitize filename by removing path. - * e.g. ../../sun.gif becomes sun.gif - * - * @param string $filename filename to be sanitized - * - * @return string the sanitized filename - */ - public static function sanitizeFilename($filename) - { - if (\preg_match("/.*[\\/\\\\](.*)\$/", $filename, $match)) { - return $match[1]; - } else { - return $filename; - } - } - /** - * Take value and turn it into a string suitable for inclusion in - * the path, by url-encoding. - * - * @param string $value a string which will be part of the path - * - * @return string the serialized object - */ - public static function toPathValue($value) - { - return \rawurlencode(self::toString($value)); - } - /** - * Take value and turn it into a string suitable for inclusion in - * the query, by imploding comma-separated if it's an object. - * If it's a string, pass through unchanged. It will be url-encoded - * later. - * - * @param string[]|string|\DateTime $object an object to be serialized to a string - * - * @return string the serialized object - */ - public static function toQueryValue($object) - { - if (\is_array($object)) { - return \implode(',', $object); - } else { - return self::toString($object); - } - } - /** - * Take value and turn it into a string suitable for inclusion in - * the header. If it's a string, pass through unchanged - * If it's a datetime object, format it in ISO8601 - * - * @param string $value a string which will be part of the header - * - * @return string the header string - */ - public static function toHeaderValue($value) - { - return self::toString($value); - } - /** - * Take value and turn it into a string suitable for inclusion in - * the http body (form parameter). If it's a string, pass through unchanged - * If it's a datetime object, format it in ISO8601 - * - * @param string|\SplFileObject $value the value of the form parameter - * - * @return string the form string - */ - public static function toFormValue($value) - { - if ($value instanceof \SplFileObject) { - return $value->getRealPath(); - } else { - return self::toString($value); - } - } - /** - * Take value and turn it into a string suitable for inclusion in - * the parameter. If it's a string, pass through unchanged - * If it's a datetime object, format it in ISO8601 - * - * @param string|\DateTime $value the value of the parameter - * - * @return string the header string - */ - public static function toString($value) - { - if ($value instanceof \DateTime) { - // datetime in ISO8601 format - return $value->format(\DateTime::ATOM); - } else { - return $value; - } - } - /** - * Serialize an array to a string. - * - * @param array $collection collection to serialize to a string - * @param string $collectionFormat the format use for serialization (csv, - * ssv, tsv, pipes, multi) - * @param bool $allowCollectionFormatMulti allow collection format to be a multidimensional array - * - * @return string - */ - public static function serializeCollection(array $collection, $collectionFormat, $allowCollectionFormatMulti = \false) - { - if ($allowCollectionFormatMulti && 'multi' === $collectionFormat) { - // http_build_query() almost does the job for us. We just - // need to fix the result of multidimensional arrays. - return \preg_replace('/%5B[0-9]+%5D=/', '=', \http_build_query($collection, '', '&')); - } - switch ($collectionFormat) { - case 'pipes': - return \implode('|', $collection); - case 'tsv': - return \implode("\t", $collection); - case 'ssv': - return \implode(' ', $collection); - case 'csv': - // Deliberate fall through. CSV is default format. - default: - return \implode(',', $collection); - } - } - /** - * Deserialize a JSON string into an object - * - * @param mixed $data object or primitive to be deserialized - * @param string $class class name is passed as a string - * @param string[] $httpHeaders HTTP headers - * @param string $discriminator discriminator if polymorphism is used - * - * @return object|array|null an single or an array of $class instances - */ - public static function deserialize($data, $class, $httpHeaders = null) - { - if (null === $data) { - return null; - } elseif (\substr($class, 0, 4) === 'map[') { - // for associative array e.g. map[string,int] - $inner = \substr($class, 4, -1); - $deserialized = []; - if (\strrpos($inner, ",") !== \false) { - $subClass_array = \explode(',', $inner, 2); - $subClass = $subClass_array[1]; - foreach ($data as $key => $value) { - $deserialized[$key] = self::deserialize($value, $subClass, null); - } - } - return $deserialized; - } elseif (\strcasecmp(\substr($class, -2), '[]') === 0) { - $subClass = \substr($class, 0, -2); - $values = []; - foreach ($data as $key => $value) { - $values[] = self::deserialize($value, $subClass, null); - } - return $values; - } elseif ($class === 'object') { - \settype($data, 'array'); - return $data; - } elseif ($class === '\\DateTime') { - // Some API's return an invalid, empty string as a - // date-time property. DateTime::__construct() will return - // the current time for empty input which is probably not - // what is meant. The invalid empty string is probably to - // be interpreted as a missing field/value. Let's handle - // this graceful. - if (!empty($data)) { - return new \DateTime($data); - } else { - return null; - } - } elseif (\in_array($class, ['DateTime', 'bool', 'boolean', 'byte', 'double', 'float', 'int', 'integer', 'mixed', 'number', 'object', 'string', 'void'], \true)) { - \settype($data, $class); - return $data; - } elseif ($class === '\\SplFileObject') { - /** @var \Psr\Http\Message\StreamInterface $data */ - // determine file name - if (\array_key_exists('Content-Disposition', $httpHeaders) && \preg_match('/inline; filename=[\'"]?([^\'"\\s]+)[\'"]?$/i', $httpHeaders['Content-Disposition'], $match)) { - $filename = \WPMailSMTP\Vendor\SendinBlue\Client\Configuration::getDefaultConfiguration()->getTempFolderPath() . \DIRECTORY_SEPARATOR . self::sanitizeFilename($match[1]); - } else { - $filename = \tempnam(\WPMailSMTP\Vendor\SendinBlue\Client\Configuration::getDefaultConfiguration()->getTempFolderPath(), ''); - } - $file = \fopen($filename, 'w'); - while ($chunk = $data->read(200)) { - \fwrite($file, $chunk); - } - \fclose($file); - return new \SplFileObject($filename, 'r'); - } elseif (\method_exists($class, 'getAllowableEnumValues')) { - if (!\in_array($data, $class::getAllowableEnumValues(), \true)) { - $imploded = \implode("', '", $class::getAllowableEnumValues()); - throw new \InvalidArgumentException("Invalid value for enum '{$class}', must be one of: '{$imploded}'"); - } - return $data; - } else { - // If a discriminator is defined and points to a valid subclass, use it. - $discriminator = $class::DISCRIMINATOR; - if (!empty($discriminator) && isset($data->{$discriminator}) && \is_string($data->{$discriminator})) { - $subclass = 'WPMailSMTP\\Vendor\\SendinBlue\\Client\\Model\\' . $data->{$discriminator}; - if (\is_subclass_of($subclass, $class)) { - $class = $subclass; - } - } - $instance = new $class(); - foreach ($instance::swaggerTypes() as $property => $type) { - $propertySetter = $instance::setters()[$property]; - if (!isset($propertySetter) || !isset($data->{$instance::attributeMap()[$property]})) { - continue; - } - $propertyValue = $data->{$instance::attributeMap()[$property]}; - if (isset($propertyValue)) { - $instance->{$propertySetter}(self::deserialize($propertyValue, $type, null)); - } - } - return $instance; - } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-intl-idn/Idn.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-intl-idn/Idn.php deleted file mode 100644 index de9155b..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-intl-idn/Idn.php +++ /dev/null @@ -1,216 +0,0 @@ - - * @author Sebastian Kroczek - * @author Dmitry Lukashin - * @author Laurent Bassin - * - * @internal - */ -final class Idn -{ - const INTL_IDNA_VARIANT_2003 = 0; - const INTL_IDNA_VARIANT_UTS46 = 1; - private static $encodeTable = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); - private static $decodeTable = array('a' => 0, 'b' => 1, 'c' => 2, 'd' => 3, 'e' => 4, 'f' => 5, 'g' => 6, 'h' => 7, 'i' => 8, 'j' => 9, 'k' => 10, 'l' => 11, 'm' => 12, 'n' => 13, 'o' => 14, 'p' => 15, 'q' => 16, 'r' => 17, 's' => 18, 't' => 19, 'u' => 20, 'v' => 21, 'w' => 22, 'x' => 23, 'y' => 24, 'z' => 25, '0' => 26, '1' => 27, '2' => 28, '3' => 29, '4' => 30, '5' => 31, '6' => 32, '7' => 33, '8' => 34, '9' => 35); - public static function idn_to_ascii($domain, $options, $variant, &$idna_info = array()) - { - if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) { - @\trigger_error('idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED); - } - if (self::INTL_IDNA_VARIANT_UTS46 === $variant) { - $domain = \mb_strtolower($domain, 'utf-8'); - } - $parts = \explode('.', $domain); - foreach ($parts as $i => &$part) { - if ('' === $part && \count($parts) > 1 + $i) { - return \false; - } - if (\false === ($part = self::encodePart($part))) { - return \false; - } - } - $output = \implode('.', $parts); - $idna_info = array('result' => \strlen($output) > 255 ? \false : $output, 'isTransitionalDifferent' => \false, 'errors' => 0); - return $idna_info['result']; - } - public static function idn_to_utf8($domain, $options, $variant, &$idna_info = array()) - { - if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) { - @\trigger_error('idn_to_utf8(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED); - } - $parts = \explode('.', $domain); - foreach ($parts as &$part) { - $length = \strlen($part); - if ($length < 1 || 63 < $length) { - continue; - } - if (0 !== \strpos($part, 'xn--')) { - continue; - } - $part = \substr($part, 4); - $part = self::decodePart($part); - } - $output = \implode('.', $parts); - $idna_info = array('result' => \strlen($output) > 255 ? \false : $output, 'isTransitionalDifferent' => \false, 'errors' => 0); - return $idna_info['result']; - } - private static function encodePart($input) - { - if (\substr($input, 0, 1) === '-' || \substr($input, -1) === '-') { - return \false; - } - $codePoints = self::listCodePoints($input); - $n = 128; - $bias = 72; - $delta = 0; - $h = $b = \count($codePoints['basic']); - $output = ''; - foreach ($codePoints['basic'] as $code) { - $output .= \mb_chr($code, 'utf-8'); - } - if ($input === $output) { - return $output; - } - if ($b > 0) { - $output .= '-'; - } - $codePoints['nonBasic'] = \array_unique($codePoints['nonBasic']); - \sort($codePoints['nonBasic']); - $i = 0; - $length = \mb_strlen($input, 'utf-8'); - while ($h < $length) { - $m = $codePoints['nonBasic'][$i++]; - $delta += ($m - $n) * ($h + 1); - $n = $m; - foreach ($codePoints['all'] as $c) { - if ($c < $n || $c < 128) { - ++$delta; - } - if ($c === $n) { - $q = $delta; - for ($k = 36;; $k += 36) { - $t = self::calculateThreshold($k, $bias); - if ($q < $t) { - break; - } - $code = $t + ($q - $t) % (36 - $t); - $output .= self::$encodeTable[$code]; - $q = ($q - $t) / (36 - $t); - } - $output .= self::$encodeTable[$q]; - $bias = self::adapt($delta, $h + 1, $h === $b); - $delta = 0; - ++$h; - } - } - ++$delta; - ++$n; - } - $output = 'xn--' . $output; - return \strlen($output) < 1 || 63 < \strlen($output) ? \false : \strtolower($output); - } - private static function listCodePoints($input) - { - $codePoints = array('all' => array(), 'basic' => array(), 'nonBasic' => array()); - $length = \mb_strlen($input, 'utf-8'); - for ($i = 0; $i < $length; ++$i) { - $char = \mb_substr($input, $i, 1, 'utf-8'); - $code = \mb_ord($char, 'utf-8'); - if ($code < 128) { - $codePoints['all'][] = $codePoints['basic'][] = $code; - } else { - $codePoints['all'][] = $codePoints['nonBasic'][] = $code; - } - } - return $codePoints; - } - private static function calculateThreshold($k, $bias) - { - if ($k <= $bias + 1) { - return 1; - } - if ($k >= $bias + 26) { - return 26; - } - return $k - $bias; - } - private static function adapt($delta, $numPoints, $firstTime) - { - $delta = (int) ($firstTime ? $delta / 700 : $delta / 2); - $delta += (int) ($delta / $numPoints); - $k = 0; - while ($delta > 35 * 13) { - $delta = (int) ($delta / 35); - $k = $k + 36; - } - return $k + (int) (36 * $delta / ($delta + 38)); - } - private static function decodePart($input) - { - $n = 128; - $i = 0; - $bias = 72; - $output = ''; - $pos = \strrpos($input, '-'); - if (\false !== $pos) { - $output = \substr($input, 0, $pos++); - } else { - $pos = 0; - } - $outputLength = \strlen($output); - $inputLength = \strlen($input); - while ($pos < $inputLength) { - $oldi = $i; - $w = 1; - for ($k = 36;; $k += 36) { - $digit = self::$decodeTable[$input[$pos++]]; - $i += $digit * $w; - $t = self::calculateThreshold($k, $bias); - if ($digit < $t) { - break; - } - $w *= 36 - $t; - } - $bias = self::adapt($i - $oldi, ++$outputLength, 0 === $oldi); - $n = $n + (int) ($i / $outputLength); - $i = $i % $outputLength; - $output = \mb_substr($output, 0, $i, 'utf-8') . \mb_chr($n, 'utf-8') . \mb_substr($output, $i, $outputLength - 1, 'utf-8'); - ++$i; - } - return $output; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-intl-idn/LICENSE b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-intl-idn/LICENSE deleted file mode 100644 index 3f853aa..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-intl-idn/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2018-2019 Fabien Potencier - -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. diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-intl-idn/bootstrap.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-intl-idn/bootstrap.php deleted file mode 100644 index 90a59ab..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-intl-idn/bootstrap.php +++ /dev/null @@ -1,141 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use WPMailSMTP\Vendor\Symfony\Polyfill\Intl\Idn as p; - -if (extension_loaded('intl')) { - return; -} - -if (!defined('U_IDNA_PROHIBITED_ERROR')) { - define('U_IDNA_PROHIBITED_ERROR', 66560); -} -if (!defined('U_IDNA_ERROR_START')) { - define('U_IDNA_ERROR_START', 66560); -} -if (!defined('U_IDNA_UNASSIGNED_ERROR')) { - define('U_IDNA_UNASSIGNED_ERROR', 66561); -} -if (!defined('U_IDNA_CHECK_BIDI_ERROR')) { - define('U_IDNA_CHECK_BIDI_ERROR', 66562); -} -if (!defined('U_IDNA_STD3_ASCII_RULES_ERROR')) { - define('U_IDNA_STD3_ASCII_RULES_ERROR', 66563); -} -if (!defined('U_IDNA_ACE_PREFIX_ERROR')) { - define('U_IDNA_ACE_PREFIX_ERROR', 66564); -} -if (!defined('U_IDNA_VERIFICATION_ERROR')) { - define('U_IDNA_VERIFICATION_ERROR', 66565); -} -if (!defined('U_IDNA_LABEL_TOO_LONG_ERROR')) { - define('U_IDNA_LABEL_TOO_LONG_ERROR', 66566); -} -if (!defined('U_IDNA_ZERO_LENGTH_LABEL_ERROR')) { - define('U_IDNA_ZERO_LENGTH_LABEL_ERROR', 66567); -} -if (!defined('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR')) { - define('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR', 66568); -} -if (!defined('U_IDNA_ERROR_LIMIT')) { - define('U_IDNA_ERROR_LIMIT', 66569); -} -if (!defined('U_STRINGPREP_PROHIBITED_ERROR')) { - define('U_STRINGPREP_PROHIBITED_ERROR', 66560); -} -if (!defined('U_STRINGPREP_UNASSIGNED_ERROR')) { - define('U_STRINGPREP_UNASSIGNED_ERROR', 66561); -} -if (!defined('U_STRINGPREP_CHECK_BIDI_ERROR')) { - define('U_STRINGPREP_CHECK_BIDI_ERROR', 66562); -} -if (!defined('IDNA_DEFAULT')) { - define('IDNA_DEFAULT', 0); -} -if (!defined('IDNA_ALLOW_UNASSIGNED')) { - define('IDNA_ALLOW_UNASSIGNED', 1); -} -if (!defined('IDNA_USE_STD3_RULES')) { - define('IDNA_USE_STD3_RULES', 2); -} -if (!defined('IDNA_CHECK_BIDI')) { - define('IDNA_CHECK_BIDI', 4); -} -if (!defined('IDNA_CHECK_CONTEXTJ')) { - define('IDNA_CHECK_CONTEXTJ', 8); -} -if (!defined('IDNA_NONTRANSITIONAL_TO_ASCII')) { - define('IDNA_NONTRANSITIONAL_TO_ASCII', 16); -} -if (!defined('IDNA_NONTRANSITIONAL_TO_UNICODE')) { - define('IDNA_NONTRANSITIONAL_TO_UNICODE', 32); -} -if (!defined('INTL_IDNA_VARIANT_2003')) { - define('INTL_IDNA_VARIANT_2003', 0); -} -if (!defined('INTL_IDNA_VARIANT_UTS46')) { - define('INTL_IDNA_VARIANT_UTS46', 1); -} -if (!defined('IDNA_ERROR_EMPTY_LABEL')) { - define('IDNA_ERROR_EMPTY_LABEL', 1); -} -if (!defined('IDNA_ERROR_LABEL_TOO_LONG')) { - define('IDNA_ERROR_LABEL_TOO_LONG', 2); -} -if (!defined('IDNA_ERROR_DOMAIN_NAME_TOO_LONG')) { - define('IDNA_ERROR_DOMAIN_NAME_TOO_LONG', 4); -} -if (!defined('IDNA_ERROR_LEADING_HYPHEN')) { - define('IDNA_ERROR_LEADING_HYPHEN', 8); -} -if (!defined('IDNA_ERROR_TRAILING_HYPHEN')) { - define('IDNA_ERROR_TRAILING_HYPHEN', 16); -} -if (!defined('IDNA_ERROR_HYPHEN_3_4')) { - define('IDNA_ERROR_HYPHEN_3_4', 32); -} -if (!defined('IDNA_ERROR_LEADING_COMBINING_MARK')) { - define('IDNA_ERROR_LEADING_COMBINING_MARK', 64); -} -if (!defined('IDNA_ERROR_DISALLOWED')) { - define('IDNA_ERROR_DISALLOWED', 128); -} -if (!defined('IDNA_ERROR_PUNYCODE')) { - define('IDNA_ERROR_PUNYCODE', 256); -} -if (!defined('IDNA_ERROR_LABEL_HAS_DOT')) { - define('IDNA_ERROR_LABEL_HAS_DOT', 512); -} -if (!defined('IDNA_ERROR_INVALID_ACE_LABEL')) { - define('IDNA_ERROR_INVALID_ACE_LABEL', 1024); -} -if (!defined('IDNA_ERROR_BIDI')) { - define('IDNA_ERROR_BIDI', 2048); -} -if (!defined('IDNA_ERROR_CONTEXTJ')) { - define('IDNA_ERROR_CONTEXTJ', 4096); -} - -if (PHP_VERSION_ID < 70400) { - if (!function_exists('idn_to_ascii')) { - function idn_to_ascii($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_2003, &$idna_info = array()) { return p\Idn::idn_to_ascii($domain, $options, $variant, $idna_info); } - } - if (!function_exists('idn_to_utf8')) { - function idn_to_utf8($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_2003, &$idna_info = array()) { return p\Idn::idn_to_utf8($domain, $options, $variant, $idna_info); } - } -} else { - if (!function_exists('idn_to_ascii')) { - function idn_to_ascii($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = array()) { return p\Idn::idn_to_ascii($domain, $options, $variant, $idna_info); } - } - if (!function_exists('idn_to_utf8')) { - function idn_to_utf8($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = array()) { return p\Idn::idn_to_utf8($domain, $options, $variant, $idna_info); } - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/LICENSE b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/LICENSE deleted file mode 100644 index 4cd8bdd..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2015-2019 Fabien Potencier - -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. diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/Mbstring.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/Mbstring.php deleted file mode 100644 index be567ba..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/Mbstring.php +++ /dev/null @@ -1,678 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Symfony\Polyfill\Mbstring; - -/** - * Partial mbstring implementation in PHP, iconv based, UTF-8 centric. - * - * Implemented: - * - mb_chr - Returns a specific character from its Unicode code point - * - mb_convert_encoding - Convert character encoding - * - mb_convert_variables - Convert character code in variable(s) - * - mb_decode_mimeheader - Decode string in MIME header field - * - mb_encode_mimeheader - Encode string for MIME header XXX NATIVE IMPLEMENTATION IS REALLY BUGGED - * - mb_decode_numericentity - Decode HTML numeric string reference to character - * - mb_encode_numericentity - Encode character to HTML numeric string reference - * - mb_convert_case - Perform case folding on a string - * - mb_detect_encoding - Detect character encoding - * - mb_get_info - Get internal settings of mbstring - * - mb_http_input - Detect HTTP input character encoding - * - mb_http_output - Set/Get HTTP output character encoding - * - mb_internal_encoding - Set/Get internal character encoding - * - mb_list_encodings - Returns an array of all supported encodings - * - mb_ord - Returns the Unicode code point of a character - * - mb_output_handler - Callback function converts character encoding in output buffer - * - mb_scrub - Replaces ill-formed byte sequences with substitute characters - * - mb_strlen - Get string length - * - mb_strpos - Find position of first occurrence of string in a string - * - mb_strrpos - Find position of last occurrence of a string in a string - * - mb_str_split - Convert a string to an array - * - mb_strtolower - Make a string lowercase - * - mb_strtoupper - Make a string uppercase - * - mb_substitute_character - Set/Get substitution character - * - mb_substr - Get part of string - * - mb_stripos - Finds position of first occurrence of a string within another, case insensitive - * - mb_stristr - Finds first occurrence of a string within another, case insensitive - * - mb_strrchr - Finds the last occurrence of a character in a string within another - * - mb_strrichr - Finds the last occurrence of a character in a string within another, case insensitive - * - mb_strripos - Finds position of last occurrence of a string within another, case insensitive - * - mb_strstr - Finds first occurrence of a string within another - * - mb_strwidth - Return width of string - * - mb_substr_count - Count the number of substring occurrences - * - * Not implemented: - * - mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more) - * - mb_ereg_* - Regular expression with multibyte support - * - mb_parse_str - Parse GET/POST/COOKIE data and set global variable - * - mb_preferred_mime_name - Get MIME charset string - * - mb_regex_encoding - Returns current encoding for multibyte regex as string - * - mb_regex_set_options - Set/Get the default options for mbregex functions - * - mb_send_mail - Send encoded mail - * - mb_split - Split multibyte string using regular expression - * - mb_strcut - Get part of string - * - mb_strimwidth - Get truncated string with specified width - * - * @author Nicolas Grekas - * - * @internal - */ -final class Mbstring -{ - const MB_CASE_FOLD = \PHP_INT_MAX; - private static $encodingList = array('ASCII', 'UTF-8'); - private static $language = 'neutral'; - private static $internalEncoding = 'UTF-8'; - private static $caseFold = array(array('µ', 'ſ', "ͅ", 'ς', "ϐ", "ϑ", "ϕ", "ϖ", "ϰ", "ϱ", "ϵ", "ẛ", "ι"), array('μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "ṡ", 'ι')); - public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null) - { - if (\is_array($fromEncoding) || \false !== \strpos($fromEncoding, ',')) { - $fromEncoding = self::mb_detect_encoding($s, $fromEncoding); - } else { - $fromEncoding = self::getEncoding($fromEncoding); - } - $toEncoding = self::getEncoding($toEncoding); - if ('BASE64' === $fromEncoding) { - $s = \base64_decode($s); - $fromEncoding = $toEncoding; - } - if ('BASE64' === $toEncoding) { - return \base64_encode($s); - } - if ('HTML-ENTITIES' === $toEncoding || 'HTML' === $toEncoding) { - if ('HTML-ENTITIES' === $fromEncoding || 'HTML' === $fromEncoding) { - $fromEncoding = 'Windows-1252'; - } - if ('UTF-8' !== $fromEncoding) { - $s = \iconv($fromEncoding, 'UTF-8//IGNORE', $s); - } - return \preg_replace_callback('/[\\x80-\\xFF]+/', array(__CLASS__, 'html_encoding_callback'), $s); - } - if ('HTML-ENTITIES' === $fromEncoding) { - $s = \html_entity_decode($s, \ENT_COMPAT, 'UTF-8'); - $fromEncoding = 'UTF-8'; - } - return \iconv($fromEncoding, $toEncoding . '//IGNORE', $s); - } - public static function mb_convert_variables($toEncoding, $fromEncoding, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null, &$f = null) - { - $vars = array(&$a, &$b, &$c, &$d, &$e, &$f); - $ok = \true; - \array_walk_recursive($vars, function (&$v) use(&$ok, $toEncoding, $fromEncoding) { - if (\false === ($v = \WPMailSMTP\Vendor\Symfony\Polyfill\Mbstring\Mbstring::mb_convert_encoding($v, $toEncoding, $fromEncoding))) { - $ok = \false; - } - }); - return $ok ? $fromEncoding : \false; - } - public static function mb_decode_mimeheader($s) - { - return \iconv_mime_decode($s, 2, self::$internalEncoding); - } - public static function mb_encode_mimeheader($s, $charset = null, $transferEncoding = null, $linefeed = null, $indent = null) - { - \trigger_error('mb_encode_mimeheader() is bugged. Please use iconv_mime_encode() instead', \E_USER_WARNING); - } - public static function mb_decode_numericentity($s, $convmap, $encoding = null) - { - if (null !== $s && !\is_scalar($s) && !(\is_object($s) && \method_exists($s, '__toString'))) { - \trigger_error('mb_decode_numericentity() expects parameter 1 to be string, ' . \gettype($s) . ' given', \E_USER_WARNING); - return null; - } - if (!\is_array($convmap) || !$convmap) { - return \false; - } - if (null !== $encoding && !\is_scalar($encoding)) { - \trigger_error('mb_decode_numericentity() expects parameter 3 to be string, ' . \gettype($s) . ' given', \E_USER_WARNING); - return ''; - // Instead of null (cf. mb_encode_numericentity). - } - $s = (string) $s; - if ('' === $s) { - return ''; - } - $encoding = self::getEncoding($encoding); - if ('UTF-8' === $encoding) { - $encoding = null; - if (!\preg_match('//u', $s)) { - $s = @\iconv('UTF-8', 'UTF-8//IGNORE', $s); - } - } else { - $s = \iconv($encoding, 'UTF-8//IGNORE', $s); - } - $cnt = \floor(\count($convmap) / 4) * 4; - for ($i = 0; $i < $cnt; $i += 4) { - // collector_decode_htmlnumericentity ignores $convmap[$i + 3] - $convmap[$i] += $convmap[$i + 2]; - $convmap[$i + 1] += $convmap[$i + 2]; - } - $s = \preg_replace_callback('/&#(?:0*([0-9]+)|x0*([0-9a-fA-F]+))(?!&);?/', function (array $m) use($cnt, $convmap) { - $c = isset($m[2]) ? (int) \hexdec($m[2]) : $m[1]; - for ($i = 0; $i < $cnt; $i += 4) { - if ($c >= $convmap[$i] && $c <= $convmap[$i + 1]) { - return \WPMailSMTP\Vendor\Symfony\Polyfill\Mbstring\Mbstring::mb_chr($c - $convmap[$i + 2]); - } - } - return $m[0]; - }, $s); - if (null === $encoding) { - return $s; - } - return \iconv('UTF-8', $encoding . '//IGNORE', $s); - } - public static function mb_encode_numericentity($s, $convmap, $encoding = null, $is_hex = \false) - { - if (null !== $s && !\is_scalar($s) && !(\is_object($s) && \method_exists($s, '__toString'))) { - \trigger_error('mb_encode_numericentity() expects parameter 1 to be string, ' . \gettype($s) . ' given', \E_USER_WARNING); - return null; - } - if (!\is_array($convmap) || !$convmap) { - return \false; - } - if (null !== $encoding && !\is_scalar($encoding)) { - \trigger_error('mb_encode_numericentity() expects parameter 3 to be string, ' . \gettype($s) . ' given', \E_USER_WARNING); - return null; - // Instead of '' (cf. mb_decode_numericentity). - } - if (null !== $is_hex && !\is_scalar($is_hex)) { - \trigger_error('mb_encode_numericentity() expects parameter 4 to be boolean, ' . \gettype($s) . ' given', \E_USER_WARNING); - return null; - } - $s = (string) $s; - if ('' === $s) { - return ''; - } - $encoding = self::getEncoding($encoding); - if ('UTF-8' === $encoding) { - $encoding = null; - if (!\preg_match('//u', $s)) { - $s = @\iconv('UTF-8', 'UTF-8//IGNORE', $s); - } - } else { - $s = \iconv($encoding, 'UTF-8//IGNORE', $s); - } - static $ulenMask = array("" => 2, "" => 2, "" => 3, "" => 4); - $cnt = \floor(\count($convmap) / 4) * 4; - $i = 0; - $len = \strlen($s); - $result = ''; - while ($i < $len) { - $ulen = $s[$i] < "" ? 1 : $ulenMask[$s[$i] & ""]; - $uchr = \substr($s, $i, $ulen); - $i += $ulen; - $c = self::mb_ord($uchr); - for ($j = 0; $j < $cnt; $j += 4) { - if ($c >= $convmap[$j] && $c <= $convmap[$j + 1]) { - $cOffset = $c + $convmap[$j + 2] & $convmap[$j + 3]; - $result .= $is_hex ? \sprintf('&#x%X;', $cOffset) : '&#' . $cOffset . ';'; - continue 2; - } - } - $result .= $uchr; - } - if (null === $encoding) { - return $result; - } - return \iconv('UTF-8', $encoding . '//IGNORE', $result); - } - public static function mb_convert_case($s, $mode, $encoding = null) - { - $s = (string) $s; - if ('' === $s) { - return ''; - } - $encoding = self::getEncoding($encoding); - if ('UTF-8' === $encoding) { - $encoding = null; - if (!\preg_match('//u', $s)) { - $s = @\iconv('UTF-8', 'UTF-8//IGNORE', $s); - } - } else { - $s = \iconv($encoding, 'UTF-8//IGNORE', $s); - } - if (\MB_CASE_TITLE == $mode) { - static $titleRegexp = null; - if (null === $titleRegexp) { - $titleRegexp = self::getData('titleCaseRegexp'); - } - $s = \preg_replace_callback($titleRegexp, array(__CLASS__, 'title_case'), $s); - } else { - if (\MB_CASE_UPPER == $mode) { - static $upper = null; - if (null === $upper) { - $upper = self::getData('upperCase'); - } - $map = $upper; - } else { - if (self::MB_CASE_FOLD === $mode) { - $s = \str_replace(self::$caseFold[0], self::$caseFold[1], $s); - } - static $lower = null; - if (null === $lower) { - $lower = self::getData('lowerCase'); - } - $map = $lower; - } - static $ulenMask = array("" => 2, "" => 2, "" => 3, "" => 4); - $i = 0; - $len = \strlen($s); - while ($i < $len) { - $ulen = $s[$i] < "" ? 1 : $ulenMask[$s[$i] & ""]; - $uchr = \substr($s, $i, $ulen); - $i += $ulen; - if (isset($map[$uchr])) { - $uchr = $map[$uchr]; - $nlen = \strlen($uchr); - if ($nlen == $ulen) { - $nlen = $i; - do { - $s[--$nlen] = $uchr[--$ulen]; - } while ($ulen); - } else { - $s = \substr_replace($s, $uchr, $i - $ulen, $ulen); - $len += $nlen - $ulen; - $i += $nlen - $ulen; - } - } - } - } - if (null === $encoding) { - return $s; - } - return \iconv('UTF-8', $encoding . '//IGNORE', $s); - } - public static function mb_internal_encoding($encoding = null) - { - if (null === $encoding) { - return self::$internalEncoding; - } - $encoding = self::getEncoding($encoding); - if ('UTF-8' === $encoding || \false !== @\iconv($encoding, $encoding, ' ')) { - self::$internalEncoding = $encoding; - return \true; - } - return \false; - } - public static function mb_language($lang = null) - { - if (null === $lang) { - return self::$language; - } - switch ($lang = \strtolower($lang)) { - case 'uni': - case 'neutral': - self::$language = $lang; - return \true; - } - return \false; - } - public static function mb_list_encodings() - { - return array('UTF-8'); - } - public static function mb_encoding_aliases($encoding) - { - switch (\strtoupper($encoding)) { - case 'UTF8': - case 'UTF-8': - return array('utf8'); - } - return \false; - } - public static function mb_check_encoding($var = null, $encoding = null) - { - if (null === $encoding) { - if (null === $var) { - return \false; - } - $encoding = self::$internalEncoding; - } - return self::mb_detect_encoding($var, array($encoding)) || \false !== @\iconv($encoding, $encoding, $var); - } - public static function mb_detect_encoding($str, $encodingList = null, $strict = \false) - { - if (null === $encodingList) { - $encodingList = self::$encodingList; - } else { - if (!\is_array($encodingList)) { - $encodingList = \array_map('trim', \explode(',', $encodingList)); - } - $encodingList = \array_map('strtoupper', $encodingList); - } - foreach ($encodingList as $enc) { - switch ($enc) { - case 'ASCII': - if (!\preg_match('/[\\x80-\\xFF]/', $str)) { - return $enc; - } - break; - case 'UTF8': - case 'UTF-8': - if (\preg_match('//u', $str)) { - return 'UTF-8'; - } - break; - default: - if (0 === \strncmp($enc, 'ISO-8859-', 9)) { - return $enc; - } - } - } - return \false; - } - public static function mb_detect_order($encodingList = null) - { - if (null === $encodingList) { - return self::$encodingList; - } - if (!\is_array($encodingList)) { - $encodingList = \array_map('trim', \explode(',', $encodingList)); - } - $encodingList = \array_map('strtoupper', $encodingList); - foreach ($encodingList as $enc) { - switch ($enc) { - default: - if (\strncmp($enc, 'ISO-8859-', 9)) { - return \false; - } - // no break - case 'ASCII': - case 'UTF8': - case 'UTF-8': - } - } - self::$encodingList = $encodingList; - return \true; - } - public static function mb_strlen($s, $encoding = null) - { - $encoding = self::getEncoding($encoding); - if ('CP850' === $encoding || 'ASCII' === $encoding) { - return \strlen($s); - } - return @\iconv_strlen($s, $encoding); - } - public static function mb_strpos($haystack, $needle, $offset = 0, $encoding = null) - { - $encoding = self::getEncoding($encoding); - if ('CP850' === $encoding || 'ASCII' === $encoding) { - return \strpos($haystack, $needle, $offset); - } - $needle = (string) $needle; - if ('' === $needle) { - \trigger_error(__METHOD__ . ': Empty delimiter', \E_USER_WARNING); - return \false; - } - return \iconv_strpos($haystack, $needle, $offset, $encoding); - } - public static function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null) - { - $encoding = self::getEncoding($encoding); - if ('CP850' === $encoding || 'ASCII' === $encoding) { - return \strrpos($haystack, $needle, $offset); - } - if ($offset != (int) $offset) { - $offset = 0; - } elseif ($offset = (int) $offset) { - if ($offset < 0) { - if (0 > ($offset += self::mb_strlen($needle))) { - $haystack = self::mb_substr($haystack, 0, $offset, $encoding); - } - $offset = 0; - } else { - $haystack = self::mb_substr($haystack, $offset, 2147483647, $encoding); - } - } - $pos = \iconv_strrpos($haystack, $needle, $encoding); - return \false !== $pos ? $offset + $pos : \false; - } - public static function mb_str_split($string, $split_length = 1, $encoding = null) - { - if (null !== $string && !\is_scalar($string) && !(\is_object($string) && \method_exists($string, '__toString'))) { - \trigger_error('mb_str_split() expects parameter 1 to be string, ' . \gettype($string) . ' given', \E_USER_WARNING); - return null; - } - if (1 > ($split_length = (int) $split_length)) { - \trigger_error('The length of each segment must be greater than zero', \E_USER_WARNING); - return \false; - } - if (null === $encoding) { - $encoding = \mb_internal_encoding(); - } - if ('UTF-8' === ($encoding = self::getEncoding($encoding))) { - $rx = '/('; - while (65535 < $split_length) { - $rx .= '.{65535}'; - $split_length -= 65535; - } - $rx .= '.{' . $split_length . '})/us'; - return \preg_split($rx, $string, null, \PREG_SPLIT_DELIM_CAPTURE | \PREG_SPLIT_NO_EMPTY); - } - $result = array(); - $length = \mb_strlen($string, $encoding); - for ($i = 0; $i < $length; $i += $split_length) { - $result[] = \mb_substr($string, $i, $split_length, $encoding); - } - return $result; - } - public static function mb_strtolower($s, $encoding = null) - { - return self::mb_convert_case($s, \MB_CASE_LOWER, $encoding); - } - public static function mb_strtoupper($s, $encoding = null) - { - return self::mb_convert_case($s, \MB_CASE_UPPER, $encoding); - } - public static function mb_substitute_character($c = null) - { - if (0 === \strcasecmp($c, 'none')) { - return \true; - } - return null !== $c ? \false : 'none'; - } - public static function mb_substr($s, $start, $length = null, $encoding = null) - { - $encoding = self::getEncoding($encoding); - if ('CP850' === $encoding || 'ASCII' === $encoding) { - return (string) \substr($s, $start, null === $length ? 2147483647 : $length); - } - if ($start < 0) { - $start = \iconv_strlen($s, $encoding) + $start; - if ($start < 0) { - $start = 0; - } - } - if (null === $length) { - $length = 2147483647; - } elseif ($length < 0) { - $length = \iconv_strlen($s, $encoding) + $length - $start; - if ($length < 0) { - return ''; - } - } - return (string) \iconv_substr($s, $start, $length, $encoding); - } - public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null) - { - $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding); - $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding); - return self::mb_strpos($haystack, $needle, $offset, $encoding); - } - public static function mb_stristr($haystack, $needle, $part = \false, $encoding = null) - { - $pos = self::mb_stripos($haystack, $needle, 0, $encoding); - return self::getSubpart($pos, $part, $haystack, $encoding); - } - public static function mb_strrchr($haystack, $needle, $part = \false, $encoding = null) - { - $encoding = self::getEncoding($encoding); - if ('CP850' === $encoding || 'ASCII' === $encoding) { - $pos = \strrpos($haystack, $needle); - } else { - $needle = self::mb_substr($needle, 0, 1, $encoding); - $pos = \iconv_strrpos($haystack, $needle, $encoding); - } - return self::getSubpart($pos, $part, $haystack, $encoding); - } - public static function mb_strrichr($haystack, $needle, $part = \false, $encoding = null) - { - $needle = self::mb_substr($needle, 0, 1, $encoding); - $pos = self::mb_strripos($haystack, $needle, $encoding); - return self::getSubpart($pos, $part, $haystack, $encoding); - } - public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null) - { - $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding); - $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding); - return self::mb_strrpos($haystack, $needle, $offset, $encoding); - } - public static function mb_strstr($haystack, $needle, $part = \false, $encoding = null) - { - $pos = \strpos($haystack, $needle); - if (\false === $pos) { - return \false; - } - if ($part) { - return \substr($haystack, 0, $pos); - } - return \substr($haystack, $pos); - } - public static function mb_get_info($type = 'all') - { - $info = array('internal_encoding' => self::$internalEncoding, 'http_output' => 'pass', 'http_output_conv_mimetypes' => '^(text/|application/xhtml\\+xml)', 'func_overload' => 0, 'func_overload_list' => 'no overload', 'mail_charset' => 'UTF-8', 'mail_header_encoding' => 'BASE64', 'mail_body_encoding' => 'BASE64', 'illegal_chars' => 0, 'encoding_translation' => 'Off', 'language' => self::$language, 'detect_order' => self::$encodingList, 'substitute_character' => 'none', 'strict_detection' => 'Off'); - if ('all' === $type) { - return $info; - } - if (isset($info[$type])) { - return $info[$type]; - } - return \false; - } - public static function mb_http_input($type = '') - { - return \false; - } - public static function mb_http_output($encoding = null) - { - return null !== $encoding ? 'pass' === $encoding : 'pass'; - } - public static function mb_strwidth($s, $encoding = null) - { - $encoding = self::getEncoding($encoding); - if ('UTF-8' !== $encoding) { - $s = \iconv($encoding, 'UTF-8//IGNORE', $s); - } - $s = \preg_replace('/[\\x{1100}-\\x{115F}\\x{2329}\\x{232A}\\x{2E80}-\\x{303E}\\x{3040}-\\x{A4CF}\\x{AC00}-\\x{D7A3}\\x{F900}-\\x{FAFF}\\x{FE10}-\\x{FE19}\\x{FE30}-\\x{FE6F}\\x{FF00}-\\x{FF60}\\x{FFE0}-\\x{FFE6}\\x{20000}-\\x{2FFFD}\\x{30000}-\\x{3FFFD}]/u', '', $s, -1, $wide); - return ($wide << 1) + \iconv_strlen($s, 'UTF-8'); - } - public static function mb_substr_count($haystack, $needle, $encoding = null) - { - return \substr_count($haystack, $needle); - } - public static function mb_output_handler($contents, $status) - { - return $contents; - } - public static function mb_chr($code, $encoding = null) - { - if (0x80 > ($code %= 0x200000)) { - $s = \chr($code); - } elseif (0x800 > $code) { - $s = \chr(0xc0 | $code >> 6) . \chr(0x80 | $code & 0x3f); - } elseif (0x10000 > $code) { - $s = \chr(0xe0 | $code >> 12) . \chr(0x80 | $code >> 6 & 0x3f) . \chr(0x80 | $code & 0x3f); - } else { - $s = \chr(0xf0 | $code >> 18) . \chr(0x80 | $code >> 12 & 0x3f) . \chr(0x80 | $code >> 6 & 0x3f) . \chr(0x80 | $code & 0x3f); - } - if ('UTF-8' !== ($encoding = self::getEncoding($encoding))) { - $s = \mb_convert_encoding($s, $encoding, 'UTF-8'); - } - return $s; - } - public static function mb_ord($s, $encoding = null) - { - if ('UTF-8' !== ($encoding = self::getEncoding($encoding))) { - $s = \mb_convert_encoding($s, 'UTF-8', $encoding); - } - if (1 === \strlen($s)) { - return \ord($s); - } - $code = ($s = \unpack('C*', \substr($s, 0, 4))) ? $s[1] : 0; - if (0xf0 <= $code) { - return ($code - 0xf0 << 18) + ($s[2] - 0x80 << 12) + ($s[3] - 0x80 << 6) + $s[4] - 0x80; - } - if (0xe0 <= $code) { - return ($code - 0xe0 << 12) + ($s[2] - 0x80 << 6) + $s[3] - 0x80; - } - if (0xc0 <= $code) { - return ($code - 0xc0 << 6) + $s[2] - 0x80; - } - return $code; - } - private static function getSubpart($pos, $part, $haystack, $encoding) - { - if (\false === $pos) { - return \false; - } - if ($part) { - return self::mb_substr($haystack, 0, $pos, $encoding); - } - return self::mb_substr($haystack, $pos, null, $encoding); - } - private static function html_encoding_callback(array $m) - { - $i = 1; - $entities = ''; - $m = \unpack('C*', \htmlentities($m[0], \ENT_COMPAT, 'UTF-8')); - while (isset($m[$i])) { - if (0x80 > $m[$i]) { - $entities .= \chr($m[$i++]); - continue; - } - if (0xf0 <= $m[$i]) { - $c = ($m[$i++] - 0xf0 << 18) + ($m[$i++] - 0x80 << 12) + ($m[$i++] - 0x80 << 6) + $m[$i++] - 0x80; - } elseif (0xe0 <= $m[$i]) { - $c = ($m[$i++] - 0xe0 << 12) + ($m[$i++] - 0x80 << 6) + $m[$i++] - 0x80; - } else { - $c = ($m[$i++] - 0xc0 << 6) + $m[$i++] - 0x80; - } - $entities .= '&#' . $c . ';'; - } - return $entities; - } - private static function title_case(array $s) - { - return self::mb_convert_case($s[1], \MB_CASE_UPPER, 'UTF-8') . self::mb_convert_case($s[2], \MB_CASE_LOWER, 'UTF-8'); - } - private static function getData($file) - { - if (\file_exists($file = __DIR__ . '/Resources/unidata/' . $file . '.php')) { - return require $file; - } - return \false; - } - private static function getEncoding($encoding) - { - if (null === $encoding) { - return self::$internalEncoding; - } - if ('UTF-8' === $encoding) { - return 'UTF-8'; - } - $encoding = \strtoupper($encoding); - if ('8BIT' === $encoding || 'BINARY' === $encoding) { - return 'CP850'; - } - if ('UTF8' === $encoding) { - return 'UTF-8'; - } - return $encoding; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php deleted file mode 100644 index 5b9b2ba..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +++ /dev/null @@ -1,5 +0,0 @@ - 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z', 'À' => 'à', 'Á' => 'á', 'Â' => 'â', 'Ã' => 'ã', 'Ä' => 'ä', 'Å' => 'å', 'Æ' => 'æ', 'Ç' => 'ç', 'È' => 'è', 'É' => 'é', 'Ê' => 'ê', 'Ë' => 'ë', 'Ì' => 'ì', 'Í' => 'í', 'Î' => 'î', 'Ï' => 'ï', 'Ð' => 'ð', 'Ñ' => 'ñ', 'Ò' => 'ò', 'Ó' => 'ó', 'Ô' => 'ô', 'Õ' => 'õ', 'Ö' => 'ö', 'Ø' => 'ø', 'Ù' => 'ù', 'Ú' => 'ú', 'Û' => 'û', 'Ü' => 'ü', 'Ý' => 'ý', 'Þ' => 'þ', 'Ā' => 'ā', 'Ă' => 'ă', 'Ą' => 'ą', 'Ć' => 'ć', 'Ĉ' => 'ĉ', 'Ċ' => 'ċ', 'Č' => 'č', 'Ď' => 'ď', 'Đ' => 'đ', 'Ē' => 'ē', 'Ĕ' => 'ĕ', 'Ė' => 'ė', 'Ę' => 'ę', 'Ě' => 'ě', 'Ĝ' => 'ĝ', 'Ğ' => 'ğ', 'Ġ' => 'ġ', 'Ģ' => 'ģ', 'Ĥ' => 'ĥ', 'Ħ' => 'ħ', 'Ĩ' => 'ĩ', 'Ī' => 'ī', 'Ĭ' => 'ĭ', 'Į' => 'į', 'İ' => 'i', 'IJ' => 'ij', 'Ĵ' => 'ĵ', 'Ķ' => 'ķ', 'Ĺ' => 'ĺ', 'Ļ' => 'ļ', 'Ľ' => 'ľ', 'Ŀ' => 'ŀ', 'Ł' => 'ł', 'Ń' => 'ń', 'Ņ' => 'ņ', 'Ň' => 'ň', 'Ŋ' => 'ŋ', 'Ō' => 'ō', 'Ŏ' => 'ŏ', 'Ő' => 'ő', 'Œ' => 'œ', 'Ŕ' => 'ŕ', 'Ŗ' => 'ŗ', 'Ř' => 'ř', 'Ś' => 'ś', 'Ŝ' => 'ŝ', 'Ş' => 'ş', 'Š' => 'š', 'Ţ' => 'ţ', 'Ť' => 'ť', 'Ŧ' => 'ŧ', 'Ũ' => 'ũ', 'Ū' => 'ū', 'Ŭ' => 'ŭ', 'Ů' => 'ů', 'Ű' => 'ű', 'Ų' => 'ų', 'Ŵ' => 'ŵ', 'Ŷ' => 'ŷ', 'Ÿ' => 'ÿ', 'Ź' => 'ź', 'Ż' => 'ż', 'Ž' => 'ž', 'Ɓ' => 'ɓ', 'Ƃ' => 'ƃ', 'Ƅ' => 'ƅ', 'Ɔ' => 'ɔ', 'Ƈ' => 'ƈ', 'Ɖ' => 'ɖ', 'Ɗ' => 'ɗ', 'Ƌ' => 'ƌ', 'Ǝ' => 'ǝ', 'Ə' => 'ə', 'Ɛ' => 'ɛ', 'Ƒ' => 'ƒ', 'Ɠ' => 'ɠ', 'Ɣ' => 'ɣ', 'Ɩ' => 'ɩ', 'Ɨ' => 'ɨ', 'Ƙ' => 'ƙ', 'Ɯ' => 'ɯ', 'Ɲ' => 'ɲ', 'Ɵ' => 'ɵ', 'Ơ' => 'ơ', 'Ƣ' => 'ƣ', 'Ƥ' => 'ƥ', 'Ʀ' => 'ʀ', 'Ƨ' => 'ƨ', 'Ʃ' => 'ʃ', 'Ƭ' => 'ƭ', 'Ʈ' => 'ʈ', 'Ư' => 'ư', 'Ʊ' => 'ʊ', 'Ʋ' => 'ʋ', 'Ƴ' => 'ƴ', 'Ƶ' => 'ƶ', 'Ʒ' => 'ʒ', 'Ƹ' => 'ƹ', 'Ƽ' => 'ƽ', 'DŽ' => 'dž', 'Dž' => 'dž', 'LJ' => 'lj', 'Lj' => 'lj', 'NJ' => 'nj', 'Nj' => 'nj', 'Ǎ' => 'ǎ', 'Ǐ' => 'ǐ', 'Ǒ' => 'ǒ', 'Ǔ' => 'ǔ', 'Ǖ' => 'ǖ', 'Ǘ' => 'ǘ', 'Ǚ' => 'ǚ', 'Ǜ' => 'ǜ', 'Ǟ' => 'ǟ', 'Ǡ' => 'ǡ', 'Ǣ' => 'ǣ', 'Ǥ' => 'ǥ', 'Ǧ' => 'ǧ', 'Ǩ' => 'ǩ', 'Ǫ' => 'ǫ', 'Ǭ' => 'ǭ', 'Ǯ' => 'ǯ', 'DZ' => 'dz', 'Dz' => 'dz', 'Ǵ' => 'ǵ', 'Ƕ' => 'ƕ', 'Ƿ' => 'ƿ', 'Ǹ' => 'ǹ', 'Ǻ' => 'ǻ', 'Ǽ' => 'ǽ', 'Ǿ' => 'ǿ', 'Ȁ' => 'ȁ', 'Ȃ' => 'ȃ', 'Ȅ' => 'ȅ', 'Ȇ' => 'ȇ', 'Ȉ' => 'ȉ', 'Ȋ' => 'ȋ', 'Ȍ' => 'ȍ', 'Ȏ' => 'ȏ', 'Ȑ' => 'ȑ', 'Ȓ' => 'ȓ', 'Ȕ' => 'ȕ', 'Ȗ' => 'ȗ', 'Ș' => 'ș', 'Ț' => 'ț', 'Ȝ' => 'ȝ', 'Ȟ' => 'ȟ', 'Ƞ' => 'ƞ', 'Ȣ' => 'ȣ', 'Ȥ' => 'ȥ', 'Ȧ' => 'ȧ', 'Ȩ' => 'ȩ', 'Ȫ' => 'ȫ', 'Ȭ' => 'ȭ', 'Ȯ' => 'ȯ', 'Ȱ' => 'ȱ', 'Ȳ' => 'ȳ', 'Ⱥ' => 'ⱥ', 'Ȼ' => 'ȼ', 'Ƚ' => 'ƚ', 'Ⱦ' => 'ⱦ', 'Ɂ' => 'ɂ', 'Ƀ' => 'ƀ', 'Ʉ' => 'ʉ', 'Ʌ' => 'ʌ', 'Ɇ' => 'ɇ', 'Ɉ' => 'ɉ', 'Ɋ' => 'ɋ', 'Ɍ' => 'ɍ', 'Ɏ' => 'ɏ', 'Ͱ' => 'ͱ', 'Ͳ' => 'ͳ', 'Ͷ' => 'ͷ', 'Ϳ' => 'ϳ', 'Ά' => 'ά', 'Έ' => 'έ', 'Ή' => 'ή', 'Ί' => 'ί', 'Ό' => 'ό', 'Ύ' => 'ύ', 'Ώ' => 'ώ', 'Α' => 'α', 'Β' => 'β', 'Γ' => 'γ', 'Δ' => 'δ', 'Ε' => 'ε', 'Ζ' => 'ζ', 'Η' => 'η', 'Θ' => 'θ', 'Ι' => 'ι', 'Κ' => 'κ', 'Λ' => 'λ', 'Μ' => 'μ', 'Ν' => 'ν', 'Ξ' => 'ξ', 'Ο' => 'ο', 'Π' => 'π', 'Ρ' => 'ρ', 'Σ' => 'σ', 'Τ' => 'τ', 'Υ' => 'υ', 'Φ' => 'φ', 'Χ' => 'χ', 'Ψ' => 'ψ', 'Ω' => 'ω', 'Ϊ' => 'ϊ', 'Ϋ' => 'ϋ', 'Ϗ' => 'ϗ', 'Ϙ' => 'ϙ', 'Ϛ' => 'ϛ', 'Ϝ' => 'ϝ', 'Ϟ' => 'ϟ', 'Ϡ' => 'ϡ', 'Ϣ' => 'ϣ', 'Ϥ' => 'ϥ', 'Ϧ' => 'ϧ', 'Ϩ' => 'ϩ', 'Ϫ' => 'ϫ', 'Ϭ' => 'ϭ', 'Ϯ' => 'ϯ', 'ϴ' => 'θ', 'Ϸ' => 'ϸ', 'Ϲ' => 'ϲ', 'Ϻ' => 'ϻ', 'Ͻ' => 'ͻ', 'Ͼ' => 'ͼ', 'Ͽ' => 'ͽ', 'Ѐ' => 'ѐ', 'Ё' => 'ё', 'Ђ' => 'ђ', 'Ѓ' => 'ѓ', 'Є' => 'є', 'Ѕ' => 'ѕ', 'І' => 'і', 'Ї' => 'ї', 'Ј' => 'ј', 'Љ' => 'љ', 'Њ' => 'њ', 'Ћ' => 'ћ', 'Ќ' => 'ќ', 'Ѝ' => 'ѝ', 'Ў' => 'ў', 'Џ' => 'џ', 'А' => 'а', 'Б' => 'б', 'В' => 'в', 'Г' => 'г', 'Д' => 'д', 'Е' => 'е', 'Ж' => 'ж', 'З' => 'з', 'И' => 'и', 'Й' => 'й', 'К' => 'к', 'Л' => 'л', 'М' => 'м', 'Н' => 'н', 'О' => 'о', 'П' => 'п', 'Р' => 'р', 'С' => 'с', 'Т' => 'т', 'У' => 'у', 'Ф' => 'ф', 'Х' => 'х', 'Ц' => 'ц', 'Ч' => 'ч', 'Ш' => 'ш', 'Щ' => 'щ', 'Ъ' => 'ъ', 'Ы' => 'ы', 'Ь' => 'ь', 'Э' => 'э', 'Ю' => 'ю', 'Я' => 'я', 'Ѡ' => 'ѡ', 'Ѣ' => 'ѣ', 'Ѥ' => 'ѥ', 'Ѧ' => 'ѧ', 'Ѩ' => 'ѩ', 'Ѫ' => 'ѫ', 'Ѭ' => 'ѭ', 'Ѯ' => 'ѯ', 'Ѱ' => 'ѱ', 'Ѳ' => 'ѳ', 'Ѵ' => 'ѵ', 'Ѷ' => 'ѷ', 'Ѹ' => 'ѹ', 'Ѻ' => 'ѻ', 'Ѽ' => 'ѽ', 'Ѿ' => 'ѿ', 'Ҁ' => 'ҁ', 'Ҋ' => 'ҋ', 'Ҍ' => 'ҍ', 'Ҏ' => 'ҏ', 'Ґ' => 'ґ', 'Ғ' => 'ғ', 'Ҕ' => 'ҕ', 'Җ' => 'җ', 'Ҙ' => 'ҙ', 'Қ' => 'қ', 'Ҝ' => 'ҝ', 'Ҟ' => 'ҟ', 'Ҡ' => 'ҡ', 'Ң' => 'ң', 'Ҥ' => 'ҥ', 'Ҧ' => 'ҧ', 'Ҩ' => 'ҩ', 'Ҫ' => 'ҫ', 'Ҭ' => 'ҭ', 'Ү' => 'ү', 'Ұ' => 'ұ', 'Ҳ' => 'ҳ', 'Ҵ' => 'ҵ', 'Ҷ' => 'ҷ', 'Ҹ' => 'ҹ', 'Һ' => 'һ', 'Ҽ' => 'ҽ', 'Ҿ' => 'ҿ', 'Ӏ' => 'ӏ', 'Ӂ' => 'ӂ', 'Ӄ' => 'ӄ', 'Ӆ' => 'ӆ', 'Ӈ' => 'ӈ', 'Ӊ' => 'ӊ', 'Ӌ' => 'ӌ', 'Ӎ' => 'ӎ', 'Ӑ' => 'ӑ', 'Ӓ' => 'ӓ', 'Ӕ' => 'ӕ', 'Ӗ' => 'ӗ', 'Ә' => 'ә', 'Ӛ' => 'ӛ', 'Ӝ' => 'ӝ', 'Ӟ' => 'ӟ', 'Ӡ' => 'ӡ', 'Ӣ' => 'ӣ', 'Ӥ' => 'ӥ', 'Ӧ' => 'ӧ', 'Ө' => 'ө', 'Ӫ' => 'ӫ', 'Ӭ' => 'ӭ', 'Ӯ' => 'ӯ', 'Ӱ' => 'ӱ', 'Ӳ' => 'ӳ', 'Ӵ' => 'ӵ', 'Ӷ' => 'ӷ', 'Ӹ' => 'ӹ', 'Ӻ' => 'ӻ', 'Ӽ' => 'ӽ', 'Ӿ' => 'ӿ', 'Ԁ' => 'ԁ', 'Ԃ' => 'ԃ', 'Ԅ' => 'ԅ', 'Ԇ' => 'ԇ', 'Ԉ' => 'ԉ', 'Ԋ' => 'ԋ', 'Ԍ' => 'ԍ', 'Ԏ' => 'ԏ', 'Ԑ' => 'ԑ', 'Ԓ' => 'ԓ', 'Ԕ' => 'ԕ', 'Ԗ' => 'ԗ', 'Ԙ' => 'ԙ', 'Ԛ' => 'ԛ', 'Ԝ' => 'ԝ', 'Ԟ' => 'ԟ', 'Ԡ' => 'ԡ', 'Ԣ' => 'ԣ', 'Ԥ' => 'ԥ', 'Ԧ' => 'ԧ', 'Ԩ' => 'ԩ', 'Ԫ' => 'ԫ', 'Ԭ' => 'ԭ', 'Ԯ' => 'ԯ', 'Ա' => 'ա', 'Բ' => 'բ', 'Գ' => 'գ', 'Դ' => 'դ', 'Ե' => 'ե', 'Զ' => 'զ', 'Է' => 'է', 'Ը' => 'ը', 'Թ' => 'թ', 'Ժ' => 'ժ', 'Ի' => 'ի', 'Լ' => 'լ', 'Խ' => 'խ', 'Ծ' => 'ծ', 'Կ' => 'կ', 'Հ' => 'հ', 'Ձ' => 'ձ', 'Ղ' => 'ղ', 'Ճ' => 'ճ', 'Մ' => 'մ', 'Յ' => 'յ', 'Ն' => 'ն', 'Շ' => 'շ', 'Ո' => 'ո', 'Չ' => 'չ', 'Պ' => 'պ', 'Ջ' => 'ջ', 'Ռ' => 'ռ', 'Ս' => 'ս', 'Վ' => 'վ', 'Տ' => 'տ', 'Ր' => 'ր', 'Ց' => 'ց', 'Ւ' => 'ւ', 'Փ' => 'փ', 'Ք' => 'ք', 'Օ' => 'օ', 'Ֆ' => 'ֆ', 'Ⴀ' => 'ⴀ', 'Ⴁ' => 'ⴁ', 'Ⴂ' => 'ⴂ', 'Ⴃ' => 'ⴃ', 'Ⴄ' => 'ⴄ', 'Ⴅ' => 'ⴅ', 'Ⴆ' => 'ⴆ', 'Ⴇ' => 'ⴇ', 'Ⴈ' => 'ⴈ', 'Ⴉ' => 'ⴉ', 'Ⴊ' => 'ⴊ', 'Ⴋ' => 'ⴋ', 'Ⴌ' => 'ⴌ', 'Ⴍ' => 'ⴍ', 'Ⴎ' => 'ⴎ', 'Ⴏ' => 'ⴏ', 'Ⴐ' => 'ⴐ', 'Ⴑ' => 'ⴑ', 'Ⴒ' => 'ⴒ', 'Ⴓ' => 'ⴓ', 'Ⴔ' => 'ⴔ', 'Ⴕ' => 'ⴕ', 'Ⴖ' => 'ⴖ', 'Ⴗ' => 'ⴗ', 'Ⴘ' => 'ⴘ', 'Ⴙ' => 'ⴙ', 'Ⴚ' => 'ⴚ', 'Ⴛ' => 'ⴛ', 'Ⴜ' => 'ⴜ', 'Ⴝ' => 'ⴝ', 'Ⴞ' => 'ⴞ', 'Ⴟ' => 'ⴟ', 'Ⴠ' => 'ⴠ', 'Ⴡ' => 'ⴡ', 'Ⴢ' => 'ⴢ', 'Ⴣ' => 'ⴣ', 'Ⴤ' => 'ⴤ', 'Ⴥ' => 'ⴥ', 'Ⴧ' => 'ⴧ', 'Ⴭ' => 'ⴭ', 'Ꭰ' => 'ꭰ', 'Ꭱ' => 'ꭱ', 'Ꭲ' => 'ꭲ', 'Ꭳ' => 'ꭳ', 'Ꭴ' => 'ꭴ', 'Ꭵ' => 'ꭵ', 'Ꭶ' => 'ꭶ', 'Ꭷ' => 'ꭷ', 'Ꭸ' => 'ꭸ', 'Ꭹ' => 'ꭹ', 'Ꭺ' => 'ꭺ', 'Ꭻ' => 'ꭻ', 'Ꭼ' => 'ꭼ', 'Ꭽ' => 'ꭽ', 'Ꭾ' => 'ꭾ', 'Ꭿ' => 'ꭿ', 'Ꮀ' => 'ꮀ', 'Ꮁ' => 'ꮁ', 'Ꮂ' => 'ꮂ', 'Ꮃ' => 'ꮃ', 'Ꮄ' => 'ꮄ', 'Ꮅ' => 'ꮅ', 'Ꮆ' => 'ꮆ', 'Ꮇ' => 'ꮇ', 'Ꮈ' => 'ꮈ', 'Ꮉ' => 'ꮉ', 'Ꮊ' => 'ꮊ', 'Ꮋ' => 'ꮋ', 'Ꮌ' => 'ꮌ', 'Ꮍ' => 'ꮍ', 'Ꮎ' => 'ꮎ', 'Ꮏ' => 'ꮏ', 'Ꮐ' => 'ꮐ', 'Ꮑ' => 'ꮑ', 'Ꮒ' => 'ꮒ', 'Ꮓ' => 'ꮓ', 'Ꮔ' => 'ꮔ', 'Ꮕ' => 'ꮕ', 'Ꮖ' => 'ꮖ', 'Ꮗ' => 'ꮗ', 'Ꮘ' => 'ꮘ', 'Ꮙ' => 'ꮙ', 'Ꮚ' => 'ꮚ', 'Ꮛ' => 'ꮛ', 'Ꮜ' => 'ꮜ', 'Ꮝ' => 'ꮝ', 'Ꮞ' => 'ꮞ', 'Ꮟ' => 'ꮟ', 'Ꮠ' => 'ꮠ', 'Ꮡ' => 'ꮡ', 'Ꮢ' => 'ꮢ', 'Ꮣ' => 'ꮣ', 'Ꮤ' => 'ꮤ', 'Ꮥ' => 'ꮥ', 'Ꮦ' => 'ꮦ', 'Ꮧ' => 'ꮧ', 'Ꮨ' => 'ꮨ', 'Ꮩ' => 'ꮩ', 'Ꮪ' => 'ꮪ', 'Ꮫ' => 'ꮫ', 'Ꮬ' => 'ꮬ', 'Ꮭ' => 'ꮭ', 'Ꮮ' => 'ꮮ', 'Ꮯ' => 'ꮯ', 'Ꮰ' => 'ꮰ', 'Ꮱ' => 'ꮱ', 'Ꮲ' => 'ꮲ', 'Ꮳ' => 'ꮳ', 'Ꮴ' => 'ꮴ', 'Ꮵ' => 'ꮵ', 'Ꮶ' => 'ꮶ', 'Ꮷ' => 'ꮷ', 'Ꮸ' => 'ꮸ', 'Ꮹ' => 'ꮹ', 'Ꮺ' => 'ꮺ', 'Ꮻ' => 'ꮻ', 'Ꮼ' => 'ꮼ', 'Ꮽ' => 'ꮽ', 'Ꮾ' => 'ꮾ', 'Ꮿ' => 'ꮿ', 'Ᏸ' => 'ᏸ', 'Ᏹ' => 'ᏹ', 'Ᏺ' => 'ᏺ', 'Ᏻ' => 'ᏻ', 'Ᏼ' => 'ᏼ', 'Ᏽ' => 'ᏽ', 'Ა' => 'ა', 'Ბ' => 'ბ', 'Გ' => 'გ', 'Დ' => 'დ', 'Ე' => 'ე', 'Ვ' => 'ვ', 'Ზ' => 'ზ', 'Თ' => 'თ', 'Ი' => 'ი', 'Კ' => 'კ', 'Ლ' => 'ლ', 'Მ' => 'მ', 'Ნ' => 'ნ', 'Ო' => 'ო', 'Პ' => 'პ', 'Ჟ' => 'ჟ', 'Რ' => 'რ', 'Ს' => 'ს', 'Ტ' => 'ტ', 'Უ' => 'უ', 'Ფ' => 'ფ', 'Ქ' => 'ქ', 'Ღ' => 'ღ', 'Ყ' => 'ყ', 'Შ' => 'შ', 'Ჩ' => 'ჩ', 'Ც' => 'ც', 'Ძ' => 'ძ', 'Წ' => 'წ', 'Ჭ' => 'ჭ', 'Ხ' => 'ხ', 'Ჯ' => 'ჯ', 'Ჰ' => 'ჰ', 'Ჱ' => 'ჱ', 'Ჲ' => 'ჲ', 'Ჳ' => 'ჳ', 'Ჴ' => 'ჴ', 'Ჵ' => 'ჵ', 'Ჶ' => 'ჶ', 'Ჷ' => 'ჷ', 'Ჸ' => 'ჸ', 'Ჹ' => 'ჹ', 'Ჺ' => 'ჺ', 'Ჽ' => 'ჽ', 'Ჾ' => 'ჾ', 'Ჿ' => 'ჿ', 'Ḁ' => 'ḁ', 'Ḃ' => 'ḃ', 'Ḅ' => 'ḅ', 'Ḇ' => 'ḇ', 'Ḉ' => 'ḉ', 'Ḋ' => 'ḋ', 'Ḍ' => 'ḍ', 'Ḏ' => 'ḏ', 'Ḑ' => 'ḑ', 'Ḓ' => 'ḓ', 'Ḕ' => 'ḕ', 'Ḗ' => 'ḗ', 'Ḙ' => 'ḙ', 'Ḛ' => 'ḛ', 'Ḝ' => 'ḝ', 'Ḟ' => 'ḟ', 'Ḡ' => 'ḡ', 'Ḣ' => 'ḣ', 'Ḥ' => 'ḥ', 'Ḧ' => 'ḧ', 'Ḩ' => 'ḩ', 'Ḫ' => 'ḫ', 'Ḭ' => 'ḭ', 'Ḯ' => 'ḯ', 'Ḱ' => 'ḱ', 'Ḳ' => 'ḳ', 'Ḵ' => 'ḵ', 'Ḷ' => 'ḷ', 'Ḹ' => 'ḹ', 'Ḻ' => 'ḻ', 'Ḽ' => 'ḽ', 'Ḿ' => 'ḿ', 'Ṁ' => 'ṁ', 'Ṃ' => 'ṃ', 'Ṅ' => 'ṅ', 'Ṇ' => 'ṇ', 'Ṉ' => 'ṉ', 'Ṋ' => 'ṋ', 'Ṍ' => 'ṍ', 'Ṏ' => 'ṏ', 'Ṑ' => 'ṑ', 'Ṓ' => 'ṓ', 'Ṕ' => 'ṕ', 'Ṗ' => 'ṗ', 'Ṙ' => 'ṙ', 'Ṛ' => 'ṛ', 'Ṝ' => 'ṝ', 'Ṟ' => 'ṟ', 'Ṡ' => 'ṡ', 'Ṣ' => 'ṣ', 'Ṥ' => 'ṥ', 'Ṧ' => 'ṧ', 'Ṩ' => 'ṩ', 'Ṫ' => 'ṫ', 'Ṭ' => 'ṭ', 'Ṯ' => 'ṯ', 'Ṱ' => 'ṱ', 'Ṳ' => 'ṳ', 'Ṵ' => 'ṵ', 'Ṷ' => 'ṷ', 'Ṹ' => 'ṹ', 'Ṻ' => 'ṻ', 'Ṽ' => 'ṽ', 'Ṿ' => 'ṿ', 'Ẁ' => 'ẁ', 'Ẃ' => 'ẃ', 'Ẅ' => 'ẅ', 'Ẇ' => 'ẇ', 'Ẉ' => 'ẉ', 'Ẋ' => 'ẋ', 'Ẍ' => 'ẍ', 'Ẏ' => 'ẏ', 'Ẑ' => 'ẑ', 'Ẓ' => 'ẓ', 'Ẕ' => 'ẕ', 'ẞ' => 'ß', 'Ạ' => 'ạ', 'Ả' => 'ả', 'Ấ' => 'ấ', 'Ầ' => 'ầ', 'Ẩ' => 'ẩ', 'Ẫ' => 'ẫ', 'Ậ' => 'ậ', 'Ắ' => 'ắ', 'Ằ' => 'ằ', 'Ẳ' => 'ẳ', 'Ẵ' => 'ẵ', 'Ặ' => 'ặ', 'Ẹ' => 'ẹ', 'Ẻ' => 'ẻ', 'Ẽ' => 'ẽ', 'Ế' => 'ế', 'Ề' => 'ề', 'Ể' => 'ể', 'Ễ' => 'ễ', 'Ệ' => 'ệ', 'Ỉ' => 'ỉ', 'Ị' => 'ị', 'Ọ' => 'ọ', 'Ỏ' => 'ỏ', 'Ố' => 'ố', 'Ồ' => 'ồ', 'Ổ' => 'ổ', 'Ỗ' => 'ỗ', 'Ộ' => 'ộ', 'Ớ' => 'ớ', 'Ờ' => 'ờ', 'Ở' => 'ở', 'Ỡ' => 'ỡ', 'Ợ' => 'ợ', 'Ụ' => 'ụ', 'Ủ' => 'ủ', 'Ứ' => 'ứ', 'Ừ' => 'ừ', 'Ử' => 'ử', 'Ữ' => 'ữ', 'Ự' => 'ự', 'Ỳ' => 'ỳ', 'Ỵ' => 'ỵ', 'Ỷ' => 'ỷ', 'Ỹ' => 'ỹ', 'Ỻ' => 'ỻ', 'Ỽ' => 'ỽ', 'Ỿ' => 'ỿ', 'Ἀ' => 'ἀ', 'Ἁ' => 'ἁ', 'Ἂ' => 'ἂ', 'Ἃ' => 'ἃ', 'Ἄ' => 'ἄ', 'Ἅ' => 'ἅ', 'Ἆ' => 'ἆ', 'Ἇ' => 'ἇ', 'Ἐ' => 'ἐ', 'Ἑ' => 'ἑ', 'Ἒ' => 'ἒ', 'Ἓ' => 'ἓ', 'Ἔ' => 'ἔ', 'Ἕ' => 'ἕ', 'Ἠ' => 'ἠ', 'Ἡ' => 'ἡ', 'Ἢ' => 'ἢ', 'Ἣ' => 'ἣ', 'Ἤ' => 'ἤ', 'Ἥ' => 'ἥ', 'Ἦ' => 'ἦ', 'Ἧ' => 'ἧ', 'Ἰ' => 'ἰ', 'Ἱ' => 'ἱ', 'Ἲ' => 'ἲ', 'Ἳ' => 'ἳ', 'Ἴ' => 'ἴ', 'Ἵ' => 'ἵ', 'Ἶ' => 'ἶ', 'Ἷ' => 'ἷ', 'Ὀ' => 'ὀ', 'Ὁ' => 'ὁ', 'Ὂ' => 'ὂ', 'Ὃ' => 'ὃ', 'Ὄ' => 'ὄ', 'Ὅ' => 'ὅ', 'Ὑ' => 'ὑ', 'Ὓ' => 'ὓ', 'Ὕ' => 'ὕ', 'Ὗ' => 'ὗ', 'Ὠ' => 'ὠ', 'Ὡ' => 'ὡ', 'Ὢ' => 'ὢ', 'Ὣ' => 'ὣ', 'Ὤ' => 'ὤ', 'Ὥ' => 'ὥ', 'Ὦ' => 'ὦ', 'Ὧ' => 'ὧ', 'ᾈ' => 'ᾀ', 'ᾉ' => 'ᾁ', 'ᾊ' => 'ᾂ', 'ᾋ' => 'ᾃ', 'ᾌ' => 'ᾄ', 'ᾍ' => 'ᾅ', 'ᾎ' => 'ᾆ', 'ᾏ' => 'ᾇ', 'ᾘ' => 'ᾐ', 'ᾙ' => 'ᾑ', 'ᾚ' => 'ᾒ', 'ᾛ' => 'ᾓ', 'ᾜ' => 'ᾔ', 'ᾝ' => 'ᾕ', 'ᾞ' => 'ᾖ', 'ᾟ' => 'ᾗ', 'ᾨ' => 'ᾠ', 'ᾩ' => 'ᾡ', 'ᾪ' => 'ᾢ', 'ᾫ' => 'ᾣ', 'ᾬ' => 'ᾤ', 'ᾭ' => 'ᾥ', 'ᾮ' => 'ᾦ', 'ᾯ' => 'ᾧ', 'Ᾰ' => 'ᾰ', 'Ᾱ' => 'ᾱ', 'Ὰ' => 'ὰ', 'Ά' => 'ά', 'ᾼ' => 'ᾳ', 'Ὲ' => 'ὲ', 'Έ' => 'έ', 'Ὴ' => 'ὴ', 'Ή' => 'ή', 'ῌ' => 'ῃ', 'Ῐ' => 'ῐ', 'Ῑ' => 'ῑ', 'Ὶ' => 'ὶ', 'Ί' => 'ί', 'Ῠ' => 'ῠ', 'Ῡ' => 'ῡ', 'Ὺ' => 'ὺ', 'Ύ' => 'ύ', 'Ῥ' => 'ῥ', 'Ὸ' => 'ὸ', 'Ό' => 'ό', 'Ὼ' => 'ὼ', 'Ώ' => 'ώ', 'ῼ' => 'ῳ', 'Ω' => 'ω', 'K' => 'k', 'Å' => 'å', 'Ⅎ' => 'ⅎ', 'Ⅰ' => 'ⅰ', 'Ⅱ' => 'ⅱ', 'Ⅲ' => 'ⅲ', 'Ⅳ' => 'ⅳ', 'Ⅴ' => 'ⅴ', 'Ⅵ' => 'ⅵ', 'Ⅶ' => 'ⅶ', 'Ⅷ' => 'ⅷ', 'Ⅸ' => 'ⅸ', 'Ⅹ' => 'ⅹ', 'Ⅺ' => 'ⅺ', 'Ⅻ' => 'ⅻ', 'Ⅼ' => 'ⅼ', 'Ⅽ' => 'ⅽ', 'Ⅾ' => 'ⅾ', 'Ⅿ' => 'ⅿ', 'Ↄ' => 'ↄ', 'Ⓐ' => 'ⓐ', 'Ⓑ' => 'ⓑ', 'Ⓒ' => 'ⓒ', 'Ⓓ' => 'ⓓ', 'Ⓔ' => 'ⓔ', 'Ⓕ' => 'ⓕ', 'Ⓖ' => 'ⓖ', 'Ⓗ' => 'ⓗ', 'Ⓘ' => 'ⓘ', 'Ⓙ' => 'ⓙ', 'Ⓚ' => 'ⓚ', 'Ⓛ' => 'ⓛ', 'Ⓜ' => 'ⓜ', 'Ⓝ' => 'ⓝ', 'Ⓞ' => 'ⓞ', 'Ⓟ' => 'ⓟ', 'Ⓠ' => 'ⓠ', 'Ⓡ' => 'ⓡ', 'Ⓢ' => 'ⓢ', 'Ⓣ' => 'ⓣ', 'Ⓤ' => 'ⓤ', 'Ⓥ' => 'ⓥ', 'Ⓦ' => 'ⓦ', 'Ⓧ' => 'ⓧ', 'Ⓨ' => 'ⓨ', 'Ⓩ' => 'ⓩ', 'Ⰰ' => 'ⰰ', 'Ⰱ' => 'ⰱ', 'Ⰲ' => 'ⰲ', 'Ⰳ' => 'ⰳ', 'Ⰴ' => 'ⰴ', 'Ⰵ' => 'ⰵ', 'Ⰶ' => 'ⰶ', 'Ⰷ' => 'ⰷ', 'Ⰸ' => 'ⰸ', 'Ⰹ' => 'ⰹ', 'Ⰺ' => 'ⰺ', 'Ⰻ' => 'ⰻ', 'Ⰼ' => 'ⰼ', 'Ⰽ' => 'ⰽ', 'Ⰾ' => 'ⰾ', 'Ⰿ' => 'ⰿ', 'Ⱀ' => 'ⱀ', 'Ⱁ' => 'ⱁ', 'Ⱂ' => 'ⱂ', 'Ⱃ' => 'ⱃ', 'Ⱄ' => 'ⱄ', 'Ⱅ' => 'ⱅ', 'Ⱆ' => 'ⱆ', 'Ⱇ' => 'ⱇ', 'Ⱈ' => 'ⱈ', 'Ⱉ' => 'ⱉ', 'Ⱊ' => 'ⱊ', 'Ⱋ' => 'ⱋ', 'Ⱌ' => 'ⱌ', 'Ⱍ' => 'ⱍ', 'Ⱎ' => 'ⱎ', 'Ⱏ' => 'ⱏ', 'Ⱐ' => 'ⱐ', 'Ⱑ' => 'ⱑ', 'Ⱒ' => 'ⱒ', 'Ⱓ' => 'ⱓ', 'Ⱔ' => 'ⱔ', 'Ⱕ' => 'ⱕ', 'Ⱖ' => 'ⱖ', 'Ⱗ' => 'ⱗ', 'Ⱘ' => 'ⱘ', 'Ⱙ' => 'ⱙ', 'Ⱚ' => 'ⱚ', 'Ⱛ' => 'ⱛ', 'Ⱜ' => 'ⱜ', 'Ⱝ' => 'ⱝ', 'Ⱞ' => 'ⱞ', 'Ⱡ' => 'ⱡ', 'Ɫ' => 'ɫ', 'Ᵽ' => 'ᵽ', 'Ɽ' => 'ɽ', 'Ⱨ' => 'ⱨ', 'Ⱪ' => 'ⱪ', 'Ⱬ' => 'ⱬ', 'Ɑ' => 'ɑ', 'Ɱ' => 'ɱ', 'Ɐ' => 'ɐ', 'Ɒ' => 'ɒ', 'Ⱳ' => 'ⱳ', 'Ⱶ' => 'ⱶ', 'Ȿ' => 'ȿ', 'Ɀ' => 'ɀ', 'Ⲁ' => 'ⲁ', 'Ⲃ' => 'ⲃ', 'Ⲅ' => 'ⲅ', 'Ⲇ' => 'ⲇ', 'Ⲉ' => 'ⲉ', 'Ⲋ' => 'ⲋ', 'Ⲍ' => 'ⲍ', 'Ⲏ' => 'ⲏ', 'Ⲑ' => 'ⲑ', 'Ⲓ' => 'ⲓ', 'Ⲕ' => 'ⲕ', 'Ⲗ' => 'ⲗ', 'Ⲙ' => 'ⲙ', 'Ⲛ' => 'ⲛ', 'Ⲝ' => 'ⲝ', 'Ⲟ' => 'ⲟ', 'Ⲡ' => 'ⲡ', 'Ⲣ' => 'ⲣ', 'Ⲥ' => 'ⲥ', 'Ⲧ' => 'ⲧ', 'Ⲩ' => 'ⲩ', 'Ⲫ' => 'ⲫ', 'Ⲭ' => 'ⲭ', 'Ⲯ' => 'ⲯ', 'Ⲱ' => 'ⲱ', 'Ⲳ' => 'ⲳ', 'Ⲵ' => 'ⲵ', 'Ⲷ' => 'ⲷ', 'Ⲹ' => 'ⲹ', 'Ⲻ' => 'ⲻ', 'Ⲽ' => 'ⲽ', 'Ⲿ' => 'ⲿ', 'Ⳁ' => 'ⳁ', 'Ⳃ' => 'ⳃ', 'Ⳅ' => 'ⳅ', 'Ⳇ' => 'ⳇ', 'Ⳉ' => 'ⳉ', 'Ⳋ' => 'ⳋ', 'Ⳍ' => 'ⳍ', 'Ⳏ' => 'ⳏ', 'Ⳑ' => 'ⳑ', 'Ⳓ' => 'ⳓ', 'Ⳕ' => 'ⳕ', 'Ⳗ' => 'ⳗ', 'Ⳙ' => 'ⳙ', 'Ⳛ' => 'ⳛ', 'Ⳝ' => 'ⳝ', 'Ⳟ' => 'ⳟ', 'Ⳡ' => 'ⳡ', 'Ⳣ' => 'ⳣ', 'Ⳬ' => 'ⳬ', 'Ⳮ' => 'ⳮ', 'Ⳳ' => 'ⳳ', 'Ꙁ' => 'ꙁ', 'Ꙃ' => 'ꙃ', 'Ꙅ' => 'ꙅ', 'Ꙇ' => 'ꙇ', 'Ꙉ' => 'ꙉ', 'Ꙋ' => 'ꙋ', 'Ꙍ' => 'ꙍ', 'Ꙏ' => 'ꙏ', 'Ꙑ' => 'ꙑ', 'Ꙓ' => 'ꙓ', 'Ꙕ' => 'ꙕ', 'Ꙗ' => 'ꙗ', 'Ꙙ' => 'ꙙ', 'Ꙛ' => 'ꙛ', 'Ꙝ' => 'ꙝ', 'Ꙟ' => 'ꙟ', 'Ꙡ' => 'ꙡ', 'Ꙣ' => 'ꙣ', 'Ꙥ' => 'ꙥ', 'Ꙧ' => 'ꙧ', 'Ꙩ' => 'ꙩ', 'Ꙫ' => 'ꙫ', 'Ꙭ' => 'ꙭ', 'Ꚁ' => 'ꚁ', 'Ꚃ' => 'ꚃ', 'Ꚅ' => 'ꚅ', 'Ꚇ' => 'ꚇ', 'Ꚉ' => 'ꚉ', 'Ꚋ' => 'ꚋ', 'Ꚍ' => 'ꚍ', 'Ꚏ' => 'ꚏ', 'Ꚑ' => 'ꚑ', 'Ꚓ' => 'ꚓ', 'Ꚕ' => 'ꚕ', 'Ꚗ' => 'ꚗ', 'Ꚙ' => 'ꚙ', 'Ꚛ' => 'ꚛ', 'Ꜣ' => 'ꜣ', 'Ꜥ' => 'ꜥ', 'Ꜧ' => 'ꜧ', 'Ꜩ' => 'ꜩ', 'Ꜫ' => 'ꜫ', 'Ꜭ' => 'ꜭ', 'Ꜯ' => 'ꜯ', 'Ꜳ' => 'ꜳ', 'Ꜵ' => 'ꜵ', 'Ꜷ' => 'ꜷ', 'Ꜹ' => 'ꜹ', 'Ꜻ' => 'ꜻ', 'Ꜽ' => 'ꜽ', 'Ꜿ' => 'ꜿ', 'Ꝁ' => 'ꝁ', 'Ꝃ' => 'ꝃ', 'Ꝅ' => 'ꝅ', 'Ꝇ' => 'ꝇ', 'Ꝉ' => 'ꝉ', 'Ꝋ' => 'ꝋ', 'Ꝍ' => 'ꝍ', 'Ꝏ' => 'ꝏ', 'Ꝑ' => 'ꝑ', 'Ꝓ' => 'ꝓ', 'Ꝕ' => 'ꝕ', 'Ꝗ' => 'ꝗ', 'Ꝙ' => 'ꝙ', 'Ꝛ' => 'ꝛ', 'Ꝝ' => 'ꝝ', 'Ꝟ' => 'ꝟ', 'Ꝡ' => 'ꝡ', 'Ꝣ' => 'ꝣ', 'Ꝥ' => 'ꝥ', 'Ꝧ' => 'ꝧ', 'Ꝩ' => 'ꝩ', 'Ꝫ' => 'ꝫ', 'Ꝭ' => 'ꝭ', 'Ꝯ' => 'ꝯ', 'Ꝺ' => 'ꝺ', 'Ꝼ' => 'ꝼ', 'Ᵹ' => 'ᵹ', 'Ꝿ' => 'ꝿ', 'Ꞁ' => 'ꞁ', 'Ꞃ' => 'ꞃ', 'Ꞅ' => 'ꞅ', 'Ꞇ' => 'ꞇ', 'Ꞌ' => 'ꞌ', 'Ɥ' => 'ɥ', 'Ꞑ' => 'ꞑ', 'Ꞓ' => 'ꞓ', 'Ꞗ' => 'ꞗ', 'Ꞙ' => 'ꞙ', 'Ꞛ' => 'ꞛ', 'Ꞝ' => 'ꞝ', 'Ꞟ' => 'ꞟ', 'Ꞡ' => 'ꞡ', 'Ꞣ' => 'ꞣ', 'Ꞥ' => 'ꞥ', 'Ꞧ' => 'ꞧ', 'Ꞩ' => 'ꞩ', 'Ɦ' => 'ɦ', 'Ɜ' => 'ɜ', 'Ɡ' => 'ɡ', 'Ɬ' => 'ɬ', 'Ɪ' => 'ɪ', 'Ʞ' => 'ʞ', 'Ʇ' => 'ʇ', 'Ʝ' => 'ʝ', 'Ꭓ' => 'ꭓ', 'Ꞵ' => 'ꞵ', 'Ꞷ' => 'ꞷ', 'Ꞹ' => 'ꞹ', 'Ꞻ' => 'ꞻ', 'Ꞽ' => 'ꞽ', 'Ꞿ' => 'ꞿ', 'Ꟃ' => 'ꟃ', 'Ꞔ' => 'ꞔ', 'Ʂ' => 'ʂ', 'Ᶎ' => 'ᶎ', 'Ꟈ' => 'ꟈ', 'Ꟊ' => 'ꟊ', 'Ꟶ' => 'ꟶ', 'A' => 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z', '𐐀' => '𐐨', '𐐁' => '𐐩', '𐐂' => '𐐪', '𐐃' => '𐐫', '𐐄' => '𐐬', '𐐅' => '𐐭', '𐐆' => '𐐮', '𐐇' => '𐐯', '𐐈' => '𐐰', '𐐉' => '𐐱', '𐐊' => '𐐲', '𐐋' => '𐐳', '𐐌' => '𐐴', '𐐍' => '𐐵', '𐐎' => '𐐶', '𐐏' => '𐐷', '𐐐' => '𐐸', '𐐑' => '𐐹', '𐐒' => '𐐺', '𐐓' => '𐐻', '𐐔' => '𐐼', '𐐕' => '𐐽', '𐐖' => '𐐾', '𐐗' => '𐐿', '𐐘' => '𐑀', '𐐙' => '𐑁', '𐐚' => '𐑂', '𐐛' => '𐑃', '𐐜' => '𐑄', '𐐝' => '𐑅', '𐐞' => '𐑆', '𐐟' => '𐑇', '𐐠' => '𐑈', '𐐡' => '𐑉', '𐐢' => '𐑊', '𐐣' => '𐑋', '𐐤' => '𐑌', '𐐥' => '𐑍', '𐐦' => '𐑎', '𐐧' => '𐑏', '𐒰' => '𐓘', '𐒱' => '𐓙', '𐒲' => '𐓚', '𐒳' => '𐓛', '𐒴' => '𐓜', '𐒵' => '𐓝', '𐒶' => '𐓞', '𐒷' => '𐓟', '𐒸' => '𐓠', '𐒹' => '𐓡', '𐒺' => '𐓢', '𐒻' => '𐓣', '𐒼' => '𐓤', '𐒽' => '𐓥', '𐒾' => '𐓦', '𐒿' => '𐓧', '𐓀' => '𐓨', '𐓁' => '𐓩', '𐓂' => '𐓪', '𐓃' => '𐓫', '𐓄' => '𐓬', '𐓅' => '𐓭', '𐓆' => '𐓮', '𐓇' => '𐓯', '𐓈' => '𐓰', '𐓉' => '𐓱', '𐓊' => '𐓲', '𐓋' => '𐓳', '𐓌' => '𐓴', '𐓍' => '𐓵', '𐓎' => '𐓶', '𐓏' => '𐓷', '𐓐' => '𐓸', '𐓑' => '𐓹', '𐓒' => '𐓺', '𐓓' => '𐓻', '𐲀' => '𐳀', '𐲁' => '𐳁', '𐲂' => '𐳂', '𐲃' => '𐳃', '𐲄' => '𐳄', '𐲅' => '𐳅', '𐲆' => '𐳆', '𐲇' => '𐳇', '𐲈' => '𐳈', '𐲉' => '𐳉', '𐲊' => '𐳊', '𐲋' => '𐳋', '𐲌' => '𐳌', '𐲍' => '𐳍', '𐲎' => '𐳎', '𐲏' => '𐳏', '𐲐' => '𐳐', '𐲑' => '𐳑', '𐲒' => '𐳒', '𐲓' => '𐳓', '𐲔' => '𐳔', '𐲕' => '𐳕', '𐲖' => '𐳖', '𐲗' => '𐳗', '𐲘' => '𐳘', '𐲙' => '𐳙', '𐲚' => '𐳚', '𐲛' => '𐳛', '𐲜' => '𐳜', '𐲝' => '𐳝', '𐲞' => '𐳞', '𐲟' => '𐳟', '𐲠' => '𐳠', '𐲡' => '𐳡', '𐲢' => '𐳢', '𐲣' => '𐳣', '𐲤' => '𐳤', '𐲥' => '𐳥', '𐲦' => '𐳦', '𐲧' => '𐳧', '𐲨' => '𐳨', '𐲩' => '𐳩', '𐲪' => '𐳪', '𐲫' => '𐳫', '𐲬' => '𐳬', '𐲭' => '𐳭', '𐲮' => '𐳮', '𐲯' => '𐳯', '𐲰' => '𐳰', '𐲱' => '𐳱', '𐲲' => '𐳲', '𑢠' => '𑣀', '𑢡' => '𑣁', '𑢢' => '𑣂', '𑢣' => '𑣃', '𑢤' => '𑣄', '𑢥' => '𑣅', '𑢦' => '𑣆', '𑢧' => '𑣇', '𑢨' => '𑣈', '𑢩' => '𑣉', '𑢪' => '𑣊', '𑢫' => '𑣋', '𑢬' => '𑣌', '𑢭' => '𑣍', '𑢮' => '𑣎', '𑢯' => '𑣏', '𑢰' => '𑣐', '𑢱' => '𑣑', '𑢲' => '𑣒', '𑢳' => '𑣓', '𑢴' => '𑣔', '𑢵' => '𑣕', '𑢶' => '𑣖', '𑢷' => '𑣗', '𑢸' => '𑣘', '𑢹' => '𑣙', '𑢺' => '𑣚', '𑢻' => '𑣛', '𑢼' => '𑣜', '𑢽' => '𑣝', '𑢾' => '𑣞', '𑢿' => '𑣟', '𖹀' => '𖹠', '𖹁' => '𖹡', '𖹂' => '𖹢', '𖹃' => '𖹣', '𖹄' => '𖹤', '𖹅' => '𖹥', '𖹆' => '𖹦', '𖹇' => '𖹧', '𖹈' => '𖹨', '𖹉' => '𖹩', '𖹊' => '𖹪', '𖹋' => '𖹫', '𖹌' => '𖹬', '𖹍' => '𖹭', '𖹎' => '𖹮', '𖹏' => '𖹯', '𖹐' => '𖹰', '𖹑' => '𖹱', '𖹒' => '𖹲', '𖹓' => '𖹳', '𖹔' => '𖹴', '𖹕' => '𖹵', '𖹖' => '𖹶', '𖹗' => '𖹷', '𖹘' => '𖹸', '𖹙' => '𖹹', '𖹚' => '𖹺', '𖹛' => '𖹻', '𖹜' => '𖹼', '𖹝' => '𖹽', '𖹞' => '𖹾', '𖹟' => '𖹿', '𞤀' => '𞤢', '𞤁' => '𞤣', '𞤂' => '𞤤', '𞤃' => '𞤥', '𞤄' => '𞤦', '𞤅' => '𞤧', '𞤆' => '𞤨', '𞤇' => '𞤩', '𞤈' => '𞤪', '𞤉' => '𞤫', '𞤊' => '𞤬', '𞤋' => '𞤭', '𞤌' => '𞤮', '𞤍' => '𞤯', '𞤎' => '𞤰', '𞤏' => '𞤱', '𞤐' => '𞤲', '𞤑' => '𞤳', '𞤒' => '𞤴', '𞤓' => '𞤵', '𞤔' => '𞤶', '𞤕' => '𞤷', '𞤖' => '𞤸', '𞤗' => '𞤹', '𞤘' => '𞤺', '𞤙' => '𞤻', '𞤚' => '𞤼', '𞤛' => '𞤽', '𞤜' => '𞤾', '𞤝' => '𞤿', '𞤞' => '𞥀', '𞤟' => '𞥁', '𞤠' => '𞥂', '𞤡' => '𞥃'); diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php deleted file mode 100644 index 92d2cda..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +++ /dev/null @@ -1,6 +0,0 @@ - 'A', 'b' => 'B', 'c' => 'C', 'd' => 'D', 'e' => 'E', 'f' => 'F', 'g' => 'G', 'h' => 'H', 'i' => 'I', 'j' => 'J', 'k' => 'K', 'l' => 'L', 'm' => 'M', 'n' => 'N', 'o' => 'O', 'p' => 'P', 'q' => 'Q', 'r' => 'R', 's' => 'S', 't' => 'T', 'u' => 'U', 'v' => 'V', 'w' => 'W', 'x' => 'X', 'y' => 'Y', 'z' => 'Z', 'µ' => 'Μ', 'à' => 'À', 'á' => 'Á', 'â' => 'Â', 'ã' => 'Ã', 'ä' => 'Ä', 'å' => 'Å', 'æ' => 'Æ', 'ç' => 'Ç', 'è' => 'È', 'é' => 'É', 'ê' => 'Ê', 'ë' => 'Ë', 'ì' => 'Ì', 'í' => 'Í', 'î' => 'Î', 'ï' => 'Ï', 'ð' => 'Ð', 'ñ' => 'Ñ', 'ò' => 'Ò', 'ó' => 'Ó', 'ô' => 'Ô', 'õ' => 'Õ', 'ö' => 'Ö', 'ø' => 'Ø', 'ù' => 'Ù', 'ú' => 'Ú', 'û' => 'Û', 'ü' => 'Ü', 'ý' => 'Ý', 'þ' => 'Þ', 'ÿ' => 'Ÿ', 'ā' => 'Ā', 'ă' => 'Ă', 'ą' => 'Ą', 'ć' => 'Ć', 'ĉ' => 'Ĉ', 'ċ' => 'Ċ', 'č' => 'Č', 'ď' => 'Ď', 'đ' => 'Đ', 'ē' => 'Ē', 'ĕ' => 'Ĕ', 'ė' => 'Ė', 'ę' => 'Ę', 'ě' => 'Ě', 'ĝ' => 'Ĝ', 'ğ' => 'Ğ', 'ġ' => 'Ġ', 'ģ' => 'Ģ', 'ĥ' => 'Ĥ', 'ħ' => 'Ħ', 'ĩ' => 'Ĩ', 'ī' => 'Ī', 'ĭ' => 'Ĭ', 'į' => 'Į', 'ı' => 'I', 'ij' => 'IJ', 'ĵ' => 'Ĵ', 'ķ' => 'Ķ', 'ĺ' => 'Ĺ', 'ļ' => 'Ļ', 'ľ' => 'Ľ', 'ŀ' => 'Ŀ', 'ł' => 'Ł', 'ń' => 'Ń', 'ņ' => 'Ņ', 'ň' => 'Ň', 'ŋ' => 'Ŋ', 'ō' => 'Ō', 'ŏ' => 'Ŏ', 'ő' => 'Ő', 'œ' => 'Œ', 'ŕ' => 'Ŕ', 'ŗ' => 'Ŗ', 'ř' => 'Ř', 'ś' => 'Ś', 'ŝ' => 'Ŝ', 'ş' => 'Ş', 'š' => 'Š', 'ţ' => 'Ţ', 'ť' => 'Ť', 'ŧ' => 'Ŧ', 'ũ' => 'Ũ', 'ū' => 'Ū', 'ŭ' => 'Ŭ', 'ů' => 'Ů', 'ű' => 'Ű', 'ų' => 'Ų', 'ŵ' => 'Ŵ', 'ŷ' => 'Ŷ', 'ź' => 'Ź', 'ż' => 'Ż', 'ž' => 'Ž', 'ſ' => 'S', 'ƀ' => 'Ƀ', 'ƃ' => 'Ƃ', 'ƅ' => 'Ƅ', 'ƈ' => 'Ƈ', 'ƌ' => 'Ƌ', 'ƒ' => 'Ƒ', 'ƕ' => 'Ƕ', 'ƙ' => 'Ƙ', 'ƚ' => 'Ƚ', 'ƞ' => 'Ƞ', 'ơ' => 'Ơ', 'ƣ' => 'Ƣ', 'ƥ' => 'Ƥ', 'ƨ' => 'Ƨ', 'ƭ' => 'Ƭ', 'ư' => 'Ư', 'ƴ' => 'Ƴ', 'ƶ' => 'Ƶ', 'ƹ' => 'Ƹ', 'ƽ' => 'Ƽ', 'ƿ' => 'Ƿ', 'Dž' => 'DŽ', 'dž' => 'DŽ', 'Lj' => 'LJ', 'lj' => 'LJ', 'Nj' => 'NJ', 'nj' => 'NJ', 'ǎ' => 'Ǎ', 'ǐ' => 'Ǐ', 'ǒ' => 'Ǒ', 'ǔ' => 'Ǔ', 'ǖ' => 'Ǖ', 'ǘ' => 'Ǘ', 'ǚ' => 'Ǚ', 'ǜ' => 'Ǜ', 'ǝ' => 'Ǝ', 'ǟ' => 'Ǟ', 'ǡ' => 'Ǡ', 'ǣ' => 'Ǣ', 'ǥ' => 'Ǥ', 'ǧ' => 'Ǧ', 'ǩ' => 'Ǩ', 'ǫ' => 'Ǫ', 'ǭ' => 'Ǭ', 'ǯ' => 'Ǯ', 'Dz' => 'DZ', 'dz' => 'DZ', 'ǵ' => 'Ǵ', 'ǹ' => 'Ǹ', 'ǻ' => 'Ǻ', 'ǽ' => 'Ǽ', 'ǿ' => 'Ǿ', 'ȁ' => 'Ȁ', 'ȃ' => 'Ȃ', 'ȅ' => 'Ȅ', 'ȇ' => 'Ȇ', 'ȉ' => 'Ȉ', 'ȋ' => 'Ȋ', 'ȍ' => 'Ȍ', 'ȏ' => 'Ȏ', 'ȑ' => 'Ȑ', 'ȓ' => 'Ȓ', 'ȕ' => 'Ȕ', 'ȗ' => 'Ȗ', 'ș' => 'Ș', 'ț' => 'Ț', 'ȝ' => 'Ȝ', 'ȟ' => 'Ȟ', 'ȣ' => 'Ȣ', 'ȥ' => 'Ȥ', 'ȧ' => 'Ȧ', 'ȩ' => 'Ȩ', 'ȫ' => 'Ȫ', 'ȭ' => 'Ȭ', 'ȯ' => 'Ȯ', 'ȱ' => 'Ȱ', 'ȳ' => 'Ȳ', 'ȼ' => 'Ȼ', 'ȿ' => 'Ȿ', 'ɀ' => 'Ɀ', 'ɂ' => 'Ɂ', 'ɇ' => 'Ɇ', 'ɉ' => 'Ɉ', 'ɋ' => 'Ɋ', 'ɍ' => 'Ɍ', 'ɏ' => 'Ɏ', 'ɐ' => 'Ɐ', 'ɑ' => 'Ɑ', 'ɒ' => 'Ɒ', 'ɓ' => 'Ɓ', 'ɔ' => 'Ɔ', 'ɖ' => 'Ɖ', 'ɗ' => 'Ɗ', 'ə' => 'Ə', 'ɛ' => 'Ɛ', 'ɜ' => 'Ɜ', 'ɠ' => 'Ɠ', 'ɡ' => 'Ɡ', 'ɣ' => 'Ɣ', 'ɥ' => 'Ɥ', 'ɦ' => 'Ɦ', 'ɨ' => 'Ɨ', 'ɩ' => 'Ɩ', 'ɪ' => 'Ɪ', 'ɫ' => 'Ɫ', 'ɬ' => 'Ɬ', 'ɯ' => 'Ɯ', 'ɱ' => 'Ɱ', 'ɲ' => 'Ɲ', 'ɵ' => 'Ɵ', 'ɽ' => 'Ɽ', 'ʀ' => 'Ʀ', 'ʂ' => 'Ʂ', 'ʃ' => 'Ʃ', 'ʇ' => 'Ʇ', 'ʈ' => 'Ʈ', 'ʉ' => 'Ʉ', 'ʊ' => 'Ʊ', 'ʋ' => 'Ʋ', 'ʌ' => 'Ʌ', 'ʒ' => 'Ʒ', 'ʝ' => 'Ʝ', 'ʞ' => 'Ʞ', 'ͅ' => 'Ι', 'ͱ' => 'Ͱ', 'ͳ' => 'Ͳ', 'ͷ' => 'Ͷ', 'ͻ' => 'Ͻ', 'ͼ' => 'Ͼ', 'ͽ' => 'Ͽ', 'ά' => 'Ά', 'έ' => 'Έ', 'ή' => 'Ή', 'ί' => 'Ί', 'α' => 'Α', 'β' => 'Β', 'γ' => 'Γ', 'δ' => 'Δ', 'ε' => 'Ε', 'ζ' => 'Ζ', 'η' => 'Η', 'θ' => 'Θ', 'ι' => 'Ι', 'κ' => 'Κ', 'λ' => 'Λ', 'μ' => 'Μ', 'ν' => 'Ν', 'ξ' => 'Ξ', 'ο' => 'Ο', 'π' => 'Π', 'ρ' => 'Ρ', 'ς' => 'Σ', 'σ' => 'Σ', 'τ' => 'Τ', 'υ' => 'Υ', 'φ' => 'Φ', 'χ' => 'Χ', 'ψ' => 'Ψ', 'ω' => 'Ω', 'ϊ' => 'Ϊ', 'ϋ' => 'Ϋ', 'ό' => 'Ό', 'ύ' => 'Ύ', 'ώ' => 'Ώ', 'ϐ' => 'Β', 'ϑ' => 'Θ', 'ϕ' => 'Φ', 'ϖ' => 'Π', 'ϗ' => 'Ϗ', 'ϙ' => 'Ϙ', 'ϛ' => 'Ϛ', 'ϝ' => 'Ϝ', 'ϟ' => 'Ϟ', 'ϡ' => 'Ϡ', 'ϣ' => 'Ϣ', 'ϥ' => 'Ϥ', 'ϧ' => 'Ϧ', 'ϩ' => 'Ϩ', 'ϫ' => 'Ϫ', 'ϭ' => 'Ϭ', 'ϯ' => 'Ϯ', 'ϰ' => 'Κ', 'ϱ' => 'Ρ', 'ϲ' => 'Ϲ', 'ϳ' => 'Ϳ', 'ϵ' => 'Ε', 'ϸ' => 'Ϸ', 'ϻ' => 'Ϻ', 'а' => 'А', 'б' => 'Б', 'в' => 'В', 'г' => 'Г', 'д' => 'Д', 'е' => 'Е', 'ж' => 'Ж', 'з' => 'З', 'и' => 'И', 'й' => 'Й', 'к' => 'К', 'л' => 'Л', 'м' => 'М', 'н' => 'Н', 'о' => 'О', 'п' => 'П', 'р' => 'Р', 'с' => 'С', 'т' => 'Т', 'у' => 'У', 'ф' => 'Ф', 'х' => 'Х', 'ц' => 'Ц', 'ч' => 'Ч', 'ш' => 'Ш', 'щ' => 'Щ', 'ъ' => 'Ъ', 'ы' => 'Ы', 'ь' => 'Ь', 'э' => 'Э', 'ю' => 'Ю', 'я' => 'Я', 'ѐ' => 'Ѐ', 'ё' => 'Ё', 'ђ' => 'Ђ', 'ѓ' => 'Ѓ', 'є' => 'Є', 'ѕ' => 'Ѕ', 'і' => 'І', 'ї' => 'Ї', 'ј' => 'Ј', 'љ' => 'Љ', 'њ' => 'Њ', 'ћ' => 'Ћ', 'ќ' => 'Ќ', 'ѝ' => 'Ѝ', 'ў' => 'Ў', 'џ' => 'Џ', 'ѡ' => 'Ѡ', 'ѣ' => 'Ѣ', 'ѥ' => 'Ѥ', 'ѧ' => 'Ѧ', 'ѩ' => 'Ѩ', 'ѫ' => 'Ѫ', 'ѭ' => 'Ѭ', 'ѯ' => 'Ѯ', 'ѱ' => 'Ѱ', 'ѳ' => 'Ѳ', 'ѵ' => 'Ѵ', 'ѷ' => 'Ѷ', 'ѹ' => 'Ѹ', 'ѻ' => 'Ѻ', 'ѽ' => 'Ѽ', 'ѿ' => 'Ѿ', 'ҁ' => 'Ҁ', 'ҋ' => 'Ҋ', 'ҍ' => 'Ҍ', 'ҏ' => 'Ҏ', 'ґ' => 'Ґ', 'ғ' => 'Ғ', 'ҕ' => 'Ҕ', 'җ' => 'Җ', 'ҙ' => 'Ҙ', 'қ' => 'Қ', 'ҝ' => 'Ҝ', 'ҟ' => 'Ҟ', 'ҡ' => 'Ҡ', 'ң' => 'Ң', 'ҥ' => 'Ҥ', 'ҧ' => 'Ҧ', 'ҩ' => 'Ҩ', 'ҫ' => 'Ҫ', 'ҭ' => 'Ҭ', 'ү' => 'Ү', 'ұ' => 'Ұ', 'ҳ' => 'Ҳ', 'ҵ' => 'Ҵ', 'ҷ' => 'Ҷ', 'ҹ' => 'Ҹ', 'һ' => 'Һ', 'ҽ' => 'Ҽ', 'ҿ' => 'Ҿ', 'ӂ' => 'Ӂ', 'ӄ' => 'Ӄ', 'ӆ' => 'Ӆ', 'ӈ' => 'Ӈ', 'ӊ' => 'Ӊ', 'ӌ' => 'Ӌ', 'ӎ' => 'Ӎ', 'ӏ' => 'Ӏ', 'ӑ' => 'Ӑ', 'ӓ' => 'Ӓ', 'ӕ' => 'Ӕ', 'ӗ' => 'Ӗ', 'ә' => 'Ә', 'ӛ' => 'Ӛ', 'ӝ' => 'Ӝ', 'ӟ' => 'Ӟ', 'ӡ' => 'Ӡ', 'ӣ' => 'Ӣ', 'ӥ' => 'Ӥ', 'ӧ' => 'Ӧ', 'ө' => 'Ө', 'ӫ' => 'Ӫ', 'ӭ' => 'Ӭ', 'ӯ' => 'Ӯ', 'ӱ' => 'Ӱ', 'ӳ' => 'Ӳ', 'ӵ' => 'Ӵ', 'ӷ' => 'Ӷ', 'ӹ' => 'Ӹ', 'ӻ' => 'Ӻ', 'ӽ' => 'Ӽ', 'ӿ' => 'Ӿ', 'ԁ' => 'Ԁ', 'ԃ' => 'Ԃ', 'ԅ' => 'Ԅ', 'ԇ' => 'Ԇ', 'ԉ' => 'Ԉ', 'ԋ' => 'Ԋ', 'ԍ' => 'Ԍ', 'ԏ' => 'Ԏ', 'ԑ' => 'Ԑ', 'ԓ' => 'Ԓ', 'ԕ' => 'Ԕ', 'ԗ' => 'Ԗ', 'ԙ' => 'Ԙ', 'ԛ' => 'Ԛ', 'ԝ' => 'Ԝ', 'ԟ' => 'Ԟ', 'ԡ' => 'Ԡ', 'ԣ' => 'Ԣ', 'ԥ' => 'Ԥ', 'ԧ' => 'Ԧ', 'ԩ' => 'Ԩ', 'ԫ' => 'Ԫ', 'ԭ' => 'Ԭ', 'ԯ' => 'Ԯ', 'ա' => 'Ա', 'բ' => 'Բ', 'գ' => 'Գ', 'դ' => 'Դ', 'ե' => 'Ե', 'զ' => 'Զ', 'է' => 'Է', 'ը' => 'Ը', 'թ' => 'Թ', 'ժ' => 'Ժ', 'ի' => 'Ի', 'լ' => 'Լ', 'խ' => 'Խ', 'ծ' => 'Ծ', 'կ' => 'Կ', 'հ' => 'Հ', 'ձ' => 'Ձ', 'ղ' => 'Ղ', 'ճ' => 'Ճ', 'մ' => 'Մ', 'յ' => 'Յ', 'ն' => 'Ն', 'շ' => 'Շ', 'ո' => 'Ո', 'չ' => 'Չ', 'պ' => 'Պ', 'ջ' => 'Ջ', 'ռ' => 'Ռ', 'ս' => 'Ս', 'վ' => 'Վ', 'տ' => 'Տ', 'ր' => 'Ր', 'ց' => 'Ց', 'ւ' => 'Ւ', 'փ' => 'Փ', 'ք' => 'Ք', 'օ' => 'Օ', 'ֆ' => 'Ֆ', 'ა' => 'Ა', 'ბ' => 'Ბ', 'გ' => 'Გ', 'დ' => 'Დ', 'ე' => 'Ე', 'ვ' => 'Ვ', 'ზ' => 'Ზ', 'თ' => 'Თ', 'ი' => 'Ი', 'კ' => 'Კ', 'ლ' => 'Ლ', 'მ' => 'Მ', 'ნ' => 'Ნ', 'ო' => 'Ო', 'პ' => 'Პ', 'ჟ' => 'Ჟ', 'რ' => 'Რ', 'ს' => 'Ს', 'ტ' => 'Ტ', 'უ' => 'Უ', 'ფ' => 'Ფ', 'ქ' => 'Ქ', 'ღ' => 'Ღ', 'ყ' => 'Ყ', 'შ' => 'Შ', 'ჩ' => 'Ჩ', 'ც' => 'Ც', 'ძ' => 'Ძ', 'წ' => 'Წ', 'ჭ' => 'Ჭ', 'ხ' => 'Ხ', 'ჯ' => 'Ჯ', 'ჰ' => 'Ჰ', 'ჱ' => 'Ჱ', 'ჲ' => 'Ჲ', 'ჳ' => 'Ჳ', 'ჴ' => 'Ჴ', 'ჵ' => 'Ჵ', 'ჶ' => 'Ჶ', 'ჷ' => 'Ჷ', 'ჸ' => 'Ჸ', 'ჹ' => 'Ჹ', 'ჺ' => 'Ჺ', 'ჽ' => 'Ჽ', 'ჾ' => 'Ჾ', 'ჿ' => 'Ჿ', 'ᏸ' => 'Ᏸ', 'ᏹ' => 'Ᏹ', 'ᏺ' => 'Ᏺ', 'ᏻ' => 'Ᏻ', 'ᏼ' => 'Ᏼ', 'ᏽ' => 'Ᏽ', 'ᲀ' => 'В', 'ᲁ' => 'Д', 'ᲂ' => 'О', 'ᲃ' => 'С', 'ᲄ' => 'Т', 'ᲅ' => 'Т', 'ᲆ' => 'Ъ', 'ᲇ' => 'Ѣ', 'ᲈ' => 'Ꙋ', 'ᵹ' => 'Ᵹ', 'ᵽ' => 'Ᵽ', 'ᶎ' => 'Ᶎ', 'ḁ' => 'Ḁ', 'ḃ' => 'Ḃ', 'ḅ' => 'Ḅ', 'ḇ' => 'Ḇ', 'ḉ' => 'Ḉ', 'ḋ' => 'Ḋ', 'ḍ' => 'Ḍ', 'ḏ' => 'Ḏ', 'ḑ' => 'Ḑ', 'ḓ' => 'Ḓ', 'ḕ' => 'Ḕ', 'ḗ' => 'Ḗ', 'ḙ' => 'Ḙ', 'ḛ' => 'Ḛ', 'ḝ' => 'Ḝ', 'ḟ' => 'Ḟ', 'ḡ' => 'Ḡ', 'ḣ' => 'Ḣ', 'ḥ' => 'Ḥ', 'ḧ' => 'Ḧ', 'ḩ' => 'Ḩ', 'ḫ' => 'Ḫ', 'ḭ' => 'Ḭ', 'ḯ' => 'Ḯ', 'ḱ' => 'Ḱ', 'ḳ' => 'Ḳ', 'ḵ' => 'Ḵ', 'ḷ' => 'Ḷ', 'ḹ' => 'Ḹ', 'ḻ' => 'Ḻ', 'ḽ' => 'Ḽ', 'ḿ' => 'Ḿ', 'ṁ' => 'Ṁ', 'ṃ' => 'Ṃ', 'ṅ' => 'Ṅ', 'ṇ' => 'Ṇ', 'ṉ' => 'Ṉ', 'ṋ' => 'Ṋ', 'ṍ' => 'Ṍ', 'ṏ' => 'Ṏ', 'ṑ' => 'Ṑ', 'ṓ' => 'Ṓ', 'ṕ' => 'Ṕ', 'ṗ' => 'Ṗ', 'ṙ' => 'Ṙ', 'ṛ' => 'Ṛ', 'ṝ' => 'Ṝ', 'ṟ' => 'Ṟ', 'ṡ' => 'Ṡ', 'ṣ' => 'Ṣ', 'ṥ' => 'Ṥ', 'ṧ' => 'Ṧ', 'ṩ' => 'Ṩ', 'ṫ' => 'Ṫ', 'ṭ' => 'Ṭ', 'ṯ' => 'Ṯ', 'ṱ' => 'Ṱ', 'ṳ' => 'Ṳ', 'ṵ' => 'Ṵ', 'ṷ' => 'Ṷ', 'ṹ' => 'Ṹ', 'ṻ' => 'Ṻ', 'ṽ' => 'Ṽ', 'ṿ' => 'Ṿ', 'ẁ' => 'Ẁ', 'ẃ' => 'Ẃ', 'ẅ' => 'Ẅ', 'ẇ' => 'Ẇ', 'ẉ' => 'Ẉ', 'ẋ' => 'Ẋ', 'ẍ' => 'Ẍ', 'ẏ' => 'Ẏ', 'ẑ' => 'Ẑ', 'ẓ' => 'Ẓ', 'ẕ' => 'Ẕ', 'ẛ' => 'Ṡ', 'ạ' => 'Ạ', 'ả' => 'Ả', 'ấ' => 'Ấ', 'ầ' => 'Ầ', 'ẩ' => 'Ẩ', 'ẫ' => 'Ẫ', 'ậ' => 'Ậ', 'ắ' => 'Ắ', 'ằ' => 'Ằ', 'ẳ' => 'Ẳ', 'ẵ' => 'Ẵ', 'ặ' => 'Ặ', 'ẹ' => 'Ẹ', 'ẻ' => 'Ẻ', 'ẽ' => 'Ẽ', 'ế' => 'Ế', 'ề' => 'Ề', 'ể' => 'Ể', 'ễ' => 'Ễ', 'ệ' => 'Ệ', 'ỉ' => 'Ỉ', 'ị' => 'Ị', 'ọ' => 'Ọ', 'ỏ' => 'Ỏ', 'ố' => 'Ố', 'ồ' => 'Ồ', 'ổ' => 'Ổ', 'ỗ' => 'Ỗ', 'ộ' => 'Ộ', 'ớ' => 'Ớ', 'ờ' => 'Ờ', 'ở' => 'Ở', 'ỡ' => 'Ỡ', 'ợ' => 'Ợ', 'ụ' => 'Ụ', 'ủ' => 'Ủ', 'ứ' => 'Ứ', 'ừ' => 'Ừ', 'ử' => 'Ử', 'ữ' => 'Ữ', 'ự' => 'Ự', 'ỳ' => 'Ỳ', 'ỵ' => 'Ỵ', 'ỷ' => 'Ỷ', 'ỹ' => 'Ỹ', 'ỻ' => 'Ỻ', 'ỽ' => 'Ỽ', 'ỿ' => 'Ỿ', 'ἀ' => 'Ἀ', 'ἁ' => 'Ἁ', 'ἂ' => 'Ἂ', 'ἃ' => 'Ἃ', 'ἄ' => 'Ἄ', 'ἅ' => 'Ἅ', 'ἆ' => 'Ἆ', 'ἇ' => 'Ἇ', 'ἐ' => 'Ἐ', 'ἑ' => 'Ἑ', 'ἒ' => 'Ἒ', 'ἓ' => 'Ἓ', 'ἔ' => 'Ἔ', 'ἕ' => 'Ἕ', 'ἠ' => 'Ἠ', 'ἡ' => 'Ἡ', 'ἢ' => 'Ἢ', 'ἣ' => 'Ἣ', 'ἤ' => 'Ἤ', 'ἥ' => 'Ἥ', 'ἦ' => 'Ἦ', 'ἧ' => 'Ἧ', 'ἰ' => 'Ἰ', 'ἱ' => 'Ἱ', 'ἲ' => 'Ἲ', 'ἳ' => 'Ἳ', 'ἴ' => 'Ἴ', 'ἵ' => 'Ἵ', 'ἶ' => 'Ἶ', 'ἷ' => 'Ἷ', 'ὀ' => 'Ὀ', 'ὁ' => 'Ὁ', 'ὂ' => 'Ὂ', 'ὃ' => 'Ὃ', 'ὄ' => 'Ὄ', 'ὅ' => 'Ὅ', 'ὑ' => 'Ὑ', 'ὓ' => 'Ὓ', 'ὕ' => 'Ὕ', 'ὗ' => 'Ὗ', 'ὠ' => 'Ὠ', 'ὡ' => 'Ὡ', 'ὢ' => 'Ὢ', 'ὣ' => 'Ὣ', 'ὤ' => 'Ὤ', 'ὥ' => 'Ὥ', 'ὦ' => 'Ὦ', 'ὧ' => 'Ὧ', 'ὰ' => 'Ὰ', 'ά' => 'Ά', 'ὲ' => 'Ὲ', 'έ' => 'Έ', 'ὴ' => 'Ὴ', 'ή' => 'Ή', 'ὶ' => 'Ὶ', 'ί' => 'Ί', 'ὸ' => 'Ὸ', 'ό' => 'Ό', 'ὺ' => 'Ὺ', 'ύ' => 'Ύ', 'ὼ' => 'Ὼ', 'ώ' => 'Ώ', 'ᾀ' => 'ᾈ', 'ᾁ' => 'ᾉ', 'ᾂ' => 'ᾊ', 'ᾃ' => 'ᾋ', 'ᾄ' => 'ᾌ', 'ᾅ' => 'ᾍ', 'ᾆ' => 'ᾎ', 'ᾇ' => 'ᾏ', 'ᾐ' => 'ᾘ', 'ᾑ' => 'ᾙ', 'ᾒ' => 'ᾚ', 'ᾓ' => 'ᾛ', 'ᾔ' => 'ᾜ', 'ᾕ' => 'ᾝ', 'ᾖ' => 'ᾞ', 'ᾗ' => 'ᾟ', 'ᾠ' => 'ᾨ', 'ᾡ' => 'ᾩ', 'ᾢ' => 'ᾪ', 'ᾣ' => 'ᾫ', 'ᾤ' => 'ᾬ', 'ᾥ' => 'ᾭ', 'ᾦ' => 'ᾮ', 'ᾧ' => 'ᾯ', 'ᾰ' => 'Ᾰ', 'ᾱ' => 'Ᾱ', 'ᾳ' => 'ᾼ', 'ι' => 'Ι', 'ῃ' => 'ῌ', 'ῐ' => 'Ῐ', 'ῑ' => 'Ῑ', 'ῠ' => 'Ῠ', 'ῡ' => 'Ῡ', 'ῥ' => 'Ῥ', 'ῳ' => 'ῼ', 'ⅎ' => 'Ⅎ', 'ⅰ' => 'Ⅰ', 'ⅱ' => 'Ⅱ', 'ⅲ' => 'Ⅲ', 'ⅳ' => 'Ⅳ', 'ⅴ' => 'Ⅴ', 'ⅵ' => 'Ⅵ', 'ⅶ' => 'Ⅶ', 'ⅷ' => 'Ⅷ', 'ⅸ' => 'Ⅸ', 'ⅹ' => 'Ⅹ', 'ⅺ' => 'Ⅺ', 'ⅻ' => 'Ⅻ', 'ⅼ' => 'Ⅼ', 'ⅽ' => 'Ⅽ', 'ⅾ' => 'Ⅾ', 'ⅿ' => 'Ⅿ', 'ↄ' => 'Ↄ', 'ⓐ' => 'Ⓐ', 'ⓑ' => 'Ⓑ', 'ⓒ' => 'Ⓒ', 'ⓓ' => 'Ⓓ', 'ⓔ' => 'Ⓔ', 'ⓕ' => 'Ⓕ', 'ⓖ' => 'Ⓖ', 'ⓗ' => 'Ⓗ', 'ⓘ' => 'Ⓘ', 'ⓙ' => 'Ⓙ', 'ⓚ' => 'Ⓚ', 'ⓛ' => 'Ⓛ', 'ⓜ' => 'Ⓜ', 'ⓝ' => 'Ⓝ', 'ⓞ' => 'Ⓞ', 'ⓟ' => 'Ⓟ', 'ⓠ' => 'Ⓠ', 'ⓡ' => 'Ⓡ', 'ⓢ' => 'Ⓢ', 'ⓣ' => 'Ⓣ', 'ⓤ' => 'Ⓤ', 'ⓥ' => 'Ⓥ', 'ⓦ' => 'Ⓦ', 'ⓧ' => 'Ⓧ', 'ⓨ' => 'Ⓨ', 'ⓩ' => 'Ⓩ', 'ⰰ' => 'Ⰰ', 'ⰱ' => 'Ⰱ', 'ⰲ' => 'Ⰲ', 'ⰳ' => 'Ⰳ', 'ⰴ' => 'Ⰴ', 'ⰵ' => 'Ⰵ', 'ⰶ' => 'Ⰶ', 'ⰷ' => 'Ⰷ', 'ⰸ' => 'Ⰸ', 'ⰹ' => 'Ⰹ', 'ⰺ' => 'Ⰺ', 'ⰻ' => 'Ⰻ', 'ⰼ' => 'Ⰼ', 'ⰽ' => 'Ⰽ', 'ⰾ' => 'Ⰾ', 'ⰿ' => 'Ⰿ', 'ⱀ' => 'Ⱀ', 'ⱁ' => 'Ⱁ', 'ⱂ' => 'Ⱂ', 'ⱃ' => 'Ⱃ', 'ⱄ' => 'Ⱄ', 'ⱅ' => 'Ⱅ', 'ⱆ' => 'Ⱆ', 'ⱇ' => 'Ⱇ', 'ⱈ' => 'Ⱈ', 'ⱉ' => 'Ⱉ', 'ⱊ' => 'Ⱊ', 'ⱋ' => 'Ⱋ', 'ⱌ' => 'Ⱌ', 'ⱍ' => 'Ⱍ', 'ⱎ' => 'Ⱎ', 'ⱏ' => 'Ⱏ', 'ⱐ' => 'Ⱐ', 'ⱑ' => 'Ⱑ', 'ⱒ' => 'Ⱒ', 'ⱓ' => 'Ⱓ', 'ⱔ' => 'Ⱔ', 'ⱕ' => 'Ⱕ', 'ⱖ' => 'Ⱖ', 'ⱗ' => 'Ⱗ', 'ⱘ' => 'Ⱘ', 'ⱙ' => 'Ⱙ', 'ⱚ' => 'Ⱚ', 'ⱛ' => 'Ⱛ', 'ⱜ' => 'Ⱜ', 'ⱝ' => 'Ⱝ', 'ⱞ' => 'Ⱞ', 'ⱡ' => 'Ⱡ', 'ⱥ' => 'Ⱥ', 'ⱦ' => 'Ⱦ', 'ⱨ' => 'Ⱨ', 'ⱪ' => 'Ⱪ', 'ⱬ' => 'Ⱬ', 'ⱳ' => 'Ⱳ', 'ⱶ' => 'Ⱶ', 'ⲁ' => 'Ⲁ', 'ⲃ' => 'Ⲃ', 'ⲅ' => 'Ⲅ', 'ⲇ' => 'Ⲇ', 'ⲉ' => 'Ⲉ', 'ⲋ' => 'Ⲋ', 'ⲍ' => 'Ⲍ', 'ⲏ' => 'Ⲏ', 'ⲑ' => 'Ⲑ', 'ⲓ' => 'Ⲓ', 'ⲕ' => 'Ⲕ', 'ⲗ' => 'Ⲗ', 'ⲙ' => 'Ⲙ', 'ⲛ' => 'Ⲛ', 'ⲝ' => 'Ⲝ', 'ⲟ' => 'Ⲟ', 'ⲡ' => 'Ⲡ', 'ⲣ' => 'Ⲣ', 'ⲥ' => 'Ⲥ', 'ⲧ' => 'Ⲧ', 'ⲩ' => 'Ⲩ', 'ⲫ' => 'Ⲫ', 'ⲭ' => 'Ⲭ', 'ⲯ' => 'Ⲯ', 'ⲱ' => 'Ⲱ', 'ⲳ' => 'Ⲳ', 'ⲵ' => 'Ⲵ', 'ⲷ' => 'Ⲷ', 'ⲹ' => 'Ⲹ', 'ⲻ' => 'Ⲻ', 'ⲽ' => 'Ⲽ', 'ⲿ' => 'Ⲿ', 'ⳁ' => 'Ⳁ', 'ⳃ' => 'Ⳃ', 'ⳅ' => 'Ⳅ', 'ⳇ' => 'Ⳇ', 'ⳉ' => 'Ⳉ', 'ⳋ' => 'Ⳋ', 'ⳍ' => 'Ⳍ', 'ⳏ' => 'Ⳏ', 'ⳑ' => 'Ⳑ', 'ⳓ' => 'Ⳓ', 'ⳕ' => 'Ⳕ', 'ⳗ' => 'Ⳗ', 'ⳙ' => 'Ⳙ', 'ⳛ' => 'Ⳛ', 'ⳝ' => 'Ⳝ', 'ⳟ' => 'Ⳟ', 'ⳡ' => 'Ⳡ', 'ⳣ' => 'Ⳣ', 'ⳬ' => 'Ⳬ', 'ⳮ' => 'Ⳮ', 'ⳳ' => 'Ⳳ', 'ⴀ' => 'Ⴀ', 'ⴁ' => 'Ⴁ', 'ⴂ' => 'Ⴂ', 'ⴃ' => 'Ⴃ', 'ⴄ' => 'Ⴄ', 'ⴅ' => 'Ⴅ', 'ⴆ' => 'Ⴆ', 'ⴇ' => 'Ⴇ', 'ⴈ' => 'Ⴈ', 'ⴉ' => 'Ⴉ', 'ⴊ' => 'Ⴊ', 'ⴋ' => 'Ⴋ', 'ⴌ' => 'Ⴌ', 'ⴍ' => 'Ⴍ', 'ⴎ' => 'Ⴎ', 'ⴏ' => 'Ⴏ', 'ⴐ' => 'Ⴐ', 'ⴑ' => 'Ⴑ', 'ⴒ' => 'Ⴒ', 'ⴓ' => 'Ⴓ', 'ⴔ' => 'Ⴔ', 'ⴕ' => 'Ⴕ', 'ⴖ' => 'Ⴖ', 'ⴗ' => 'Ⴗ', 'ⴘ' => 'Ⴘ', 'ⴙ' => 'Ⴙ', 'ⴚ' => 'Ⴚ', 'ⴛ' => 'Ⴛ', 'ⴜ' => 'Ⴜ', 'ⴝ' => 'Ⴝ', 'ⴞ' => 'Ⴞ', 'ⴟ' => 'Ⴟ', 'ⴠ' => 'Ⴠ', 'ⴡ' => 'Ⴡ', 'ⴢ' => 'Ⴢ', 'ⴣ' => 'Ⴣ', 'ⴤ' => 'Ⴤ', 'ⴥ' => 'Ⴥ', 'ⴧ' => 'Ⴧ', 'ⴭ' => 'Ⴭ', 'ꙁ' => 'Ꙁ', 'ꙃ' => 'Ꙃ', 'ꙅ' => 'Ꙅ', 'ꙇ' => 'Ꙇ', 'ꙉ' => 'Ꙉ', 'ꙋ' => 'Ꙋ', 'ꙍ' => 'Ꙍ', 'ꙏ' => 'Ꙏ', 'ꙑ' => 'Ꙑ', 'ꙓ' => 'Ꙓ', 'ꙕ' => 'Ꙕ', 'ꙗ' => 'Ꙗ', 'ꙙ' => 'Ꙙ', 'ꙛ' => 'Ꙛ', 'ꙝ' => 'Ꙝ', 'ꙟ' => 'Ꙟ', 'ꙡ' => 'Ꙡ', 'ꙣ' => 'Ꙣ', 'ꙥ' => 'Ꙥ', 'ꙧ' => 'Ꙧ', 'ꙩ' => 'Ꙩ', 'ꙫ' => 'Ꙫ', 'ꙭ' => 'Ꙭ', 'ꚁ' => 'Ꚁ', 'ꚃ' => 'Ꚃ', 'ꚅ' => 'Ꚅ', 'ꚇ' => 'Ꚇ', 'ꚉ' => 'Ꚉ', 'ꚋ' => 'Ꚋ', 'ꚍ' => 'Ꚍ', 'ꚏ' => 'Ꚏ', 'ꚑ' => 'Ꚑ', 'ꚓ' => 'Ꚓ', 'ꚕ' => 'Ꚕ', 'ꚗ' => 'Ꚗ', 'ꚙ' => 'Ꚙ', 'ꚛ' => 'Ꚛ', 'ꜣ' => 'Ꜣ', 'ꜥ' => 'Ꜥ', 'ꜧ' => 'Ꜧ', 'ꜩ' => 'Ꜩ', 'ꜫ' => 'Ꜫ', 'ꜭ' => 'Ꜭ', 'ꜯ' => 'Ꜯ', 'ꜳ' => 'Ꜳ', 'ꜵ' => 'Ꜵ', 'ꜷ' => 'Ꜷ', 'ꜹ' => 'Ꜹ', 'ꜻ' => 'Ꜻ', 'ꜽ' => 'Ꜽ', 'ꜿ' => 'Ꜿ', 'ꝁ' => 'Ꝁ', 'ꝃ' => 'Ꝃ', 'ꝅ' => 'Ꝅ', 'ꝇ' => 'Ꝇ', 'ꝉ' => 'Ꝉ', 'ꝋ' => 'Ꝋ', 'ꝍ' => 'Ꝍ', 'ꝏ' => 'Ꝏ', 'ꝑ' => 'Ꝑ', 'ꝓ' => 'Ꝓ', 'ꝕ' => 'Ꝕ', 'ꝗ' => 'Ꝗ', 'ꝙ' => 'Ꝙ', 'ꝛ' => 'Ꝛ', 'ꝝ' => 'Ꝝ', 'ꝟ' => 'Ꝟ', 'ꝡ' => 'Ꝡ', 'ꝣ' => 'Ꝣ', 'ꝥ' => 'Ꝥ', 'ꝧ' => 'Ꝧ', 'ꝩ' => 'Ꝩ', 'ꝫ' => 'Ꝫ', 'ꝭ' => 'Ꝭ', 'ꝯ' => 'Ꝯ', 'ꝺ' => 'Ꝺ', 'ꝼ' => 'Ꝼ', 'ꝿ' => 'Ꝿ', 'ꞁ' => 'Ꞁ', 'ꞃ' => 'Ꞃ', 'ꞅ' => 'Ꞅ', 'ꞇ' => 'Ꞇ', 'ꞌ' => 'Ꞌ', 'ꞑ' => 'Ꞑ', 'ꞓ' => 'Ꞓ', 'ꞔ' => 'Ꞔ', 'ꞗ' => 'Ꞗ', 'ꞙ' => 'Ꞙ', 'ꞛ' => 'Ꞛ', 'ꞝ' => 'Ꞝ', 'ꞟ' => 'Ꞟ', 'ꞡ' => 'Ꞡ', 'ꞣ' => 'Ꞣ', 'ꞥ' => 'Ꞥ', 'ꞧ' => 'Ꞧ', 'ꞩ' => 'Ꞩ', 'ꞵ' => 'Ꞵ', 'ꞷ' => 'Ꞷ', 'ꞹ' => 'Ꞹ', 'ꞻ' => 'Ꞻ', 'ꞽ' => 'Ꞽ', 'ꞿ' => 'Ꞿ', 'ꟃ' => 'Ꟃ', 'ꟈ' => 'Ꟈ', 'ꟊ' => 'Ꟊ', 'ꟶ' => 'Ꟶ', 'ꭓ' => 'Ꭓ', 'ꭰ' => 'Ꭰ', 'ꭱ' => 'Ꭱ', 'ꭲ' => 'Ꭲ', 'ꭳ' => 'Ꭳ', 'ꭴ' => 'Ꭴ', 'ꭵ' => 'Ꭵ', 'ꭶ' => 'Ꭶ', 'ꭷ' => 'Ꭷ', 'ꭸ' => 'Ꭸ', 'ꭹ' => 'Ꭹ', 'ꭺ' => 'Ꭺ', 'ꭻ' => 'Ꭻ', 'ꭼ' => 'Ꭼ', 'ꭽ' => 'Ꭽ', 'ꭾ' => 'Ꭾ', 'ꭿ' => 'Ꭿ', 'ꮀ' => 'Ꮀ', 'ꮁ' => 'Ꮁ', 'ꮂ' => 'Ꮂ', 'ꮃ' => 'Ꮃ', 'ꮄ' => 'Ꮄ', 'ꮅ' => 'Ꮅ', 'ꮆ' => 'Ꮆ', 'ꮇ' => 'Ꮇ', 'ꮈ' => 'Ꮈ', 'ꮉ' => 'Ꮉ', 'ꮊ' => 'Ꮊ', 'ꮋ' => 'Ꮋ', 'ꮌ' => 'Ꮌ', 'ꮍ' => 'Ꮍ', 'ꮎ' => 'Ꮎ', 'ꮏ' => 'Ꮏ', 'ꮐ' => 'Ꮐ', 'ꮑ' => 'Ꮑ', 'ꮒ' => 'Ꮒ', 'ꮓ' => 'Ꮓ', 'ꮔ' => 'Ꮔ', 'ꮕ' => 'Ꮕ', 'ꮖ' => 'Ꮖ', 'ꮗ' => 'Ꮗ', 'ꮘ' => 'Ꮘ', 'ꮙ' => 'Ꮙ', 'ꮚ' => 'Ꮚ', 'ꮛ' => 'Ꮛ', 'ꮜ' => 'Ꮜ', 'ꮝ' => 'Ꮝ', 'ꮞ' => 'Ꮞ', 'ꮟ' => 'Ꮟ', 'ꮠ' => 'Ꮠ', 'ꮡ' => 'Ꮡ', 'ꮢ' => 'Ꮢ', 'ꮣ' => 'Ꮣ', 'ꮤ' => 'Ꮤ', 'ꮥ' => 'Ꮥ', 'ꮦ' => 'Ꮦ', 'ꮧ' => 'Ꮧ', 'ꮨ' => 'Ꮨ', 'ꮩ' => 'Ꮩ', 'ꮪ' => 'Ꮪ', 'ꮫ' => 'Ꮫ', 'ꮬ' => 'Ꮬ', 'ꮭ' => 'Ꮭ', 'ꮮ' => 'Ꮮ', 'ꮯ' => 'Ꮯ', 'ꮰ' => 'Ꮰ', 'ꮱ' => 'Ꮱ', 'ꮲ' => 'Ꮲ', 'ꮳ' => 'Ꮳ', 'ꮴ' => 'Ꮴ', 'ꮵ' => 'Ꮵ', 'ꮶ' => 'Ꮶ', 'ꮷ' => 'Ꮷ', 'ꮸ' => 'Ꮸ', 'ꮹ' => 'Ꮹ', 'ꮺ' => 'Ꮺ', 'ꮻ' => 'Ꮻ', 'ꮼ' => 'Ꮼ', 'ꮽ' => 'Ꮽ', 'ꮾ' => 'Ꮾ', 'ꮿ' => 'Ꮿ', 'a' => 'A', 'b' => 'B', 'c' => 'C', 'd' => 'D', 'e' => 'E', 'f' => 'F', 'g' => 'G', 'h' => 'H', 'i' => 'I', 'j' => 'J', 'k' => 'K', 'l' => 'L', 'm' => 'M', 'n' => 'N', 'o' => 'O', 'p' => 'P', 'q' => 'Q', 'r' => 'R', 's' => 'S', 't' => 'T', 'u' => 'U', 'v' => 'V', 'w' => 'W', 'x' => 'X', 'y' => 'Y', 'z' => 'Z', '𐐨' => '𐐀', '𐐩' => '𐐁', '𐐪' => '𐐂', '𐐫' => '𐐃', '𐐬' => '𐐄', '𐐭' => '𐐅', '𐐮' => '𐐆', '𐐯' => '𐐇', '𐐰' => '𐐈', '𐐱' => '𐐉', '𐐲' => '𐐊', '𐐳' => '𐐋', '𐐴' => '𐐌', '𐐵' => '𐐍', '𐐶' => '𐐎', '𐐷' => '𐐏', '𐐸' => '𐐐', '𐐹' => '𐐑', '𐐺' => '𐐒', '𐐻' => '𐐓', '𐐼' => '𐐔', '𐐽' => '𐐕', '𐐾' => '𐐖', '𐐿' => '𐐗', '𐑀' => '𐐘', '𐑁' => '𐐙', '𐑂' => '𐐚', '𐑃' => '𐐛', '𐑄' => '𐐜', '𐑅' => '𐐝', '𐑆' => '𐐞', '𐑇' => '𐐟', '𐑈' => '𐐠', '𐑉' => '𐐡', '𐑊' => '𐐢', '𐑋' => '𐐣', '𐑌' => '𐐤', '𐑍' => '𐐥', '𐑎' => '𐐦', '𐑏' => '𐐧', '𐓘' => '𐒰', '𐓙' => '𐒱', '𐓚' => '𐒲', '𐓛' => '𐒳', '𐓜' => '𐒴', '𐓝' => '𐒵', '𐓞' => '𐒶', '𐓟' => '𐒷', '𐓠' => '𐒸', '𐓡' => '𐒹', '𐓢' => '𐒺', '𐓣' => '𐒻', '𐓤' => '𐒼', '𐓥' => '𐒽', '𐓦' => '𐒾', '𐓧' => '𐒿', '𐓨' => '𐓀', '𐓩' => '𐓁', '𐓪' => '𐓂', '𐓫' => '𐓃', '𐓬' => '𐓄', '𐓭' => '𐓅', '𐓮' => '𐓆', '𐓯' => '𐓇', '𐓰' => '𐓈', '𐓱' => '𐓉', '𐓲' => '𐓊', '𐓳' => '𐓋', '𐓴' => '𐓌', '𐓵' => '𐓍', '𐓶' => '𐓎', '𐓷' => '𐓏', '𐓸' => '𐓐', '𐓹' => '𐓑', '𐓺' => '𐓒', '𐓻' => '𐓓', '𐳀' => '𐲀', '𐳁' => '𐲁', '𐳂' => '𐲂', '𐳃' => '𐲃', '𐳄' => '𐲄', '𐳅' => '𐲅', '𐳆' => '𐲆', '𐳇' => '𐲇', '𐳈' => '𐲈', '𐳉' => '𐲉', '𐳊' => '𐲊', '𐳋' => '𐲋', '𐳌' => '𐲌', '𐳍' => '𐲍', '𐳎' => '𐲎', '𐳏' => '𐲏', '𐳐' => '𐲐', '𐳑' => '𐲑', '𐳒' => '𐲒', '𐳓' => '𐲓', '𐳔' => '𐲔', '𐳕' => '𐲕', '𐳖' => '𐲖', '𐳗' => '𐲗', '𐳘' => '𐲘', '𐳙' => '𐲙', '𐳚' => '𐲚', '𐳛' => '𐲛', '𐳜' => '𐲜', '𐳝' => '𐲝', '𐳞' => '𐲞', '𐳟' => '𐲟', '𐳠' => '𐲠', '𐳡' => '𐲡', '𐳢' => '𐲢', '𐳣' => '𐲣', '𐳤' => '𐲤', '𐳥' => '𐲥', '𐳦' => '𐲦', '𐳧' => '𐲧', '𐳨' => '𐲨', '𐳩' => '𐲩', '𐳪' => '𐲪', '𐳫' => '𐲫', '𐳬' => '𐲬', '𐳭' => '𐲭', '𐳮' => '𐲮', '𐳯' => '𐲯', '𐳰' => '𐲰', '𐳱' => '𐲱', '𐳲' => '𐲲', '𑣀' => '𑢠', '𑣁' => '𑢡', '𑣂' => '𑢢', '𑣃' => '𑢣', '𑣄' => '𑢤', '𑣅' => '𑢥', '𑣆' => '𑢦', '𑣇' => '𑢧', '𑣈' => '𑢨', '𑣉' => '𑢩', '𑣊' => '𑢪', '𑣋' => '𑢫', '𑣌' => '𑢬', '𑣍' => '𑢭', '𑣎' => '𑢮', '𑣏' => '𑢯', '𑣐' => '𑢰', '𑣑' => '𑢱', '𑣒' => '𑢲', '𑣓' => '𑢳', '𑣔' => '𑢴', '𑣕' => '𑢵', '𑣖' => '𑢶', '𑣗' => '𑢷', '𑣘' => '𑢸', '𑣙' => '𑢹', '𑣚' => '𑢺', '𑣛' => '𑢻', '𑣜' => '𑢼', '𑣝' => '𑢽', '𑣞' => '𑢾', '𑣟' => '𑢿', '𖹠' => '𖹀', '𖹡' => '𖹁', '𖹢' => '𖹂', '𖹣' => '𖹃', '𖹤' => '𖹄', '𖹥' => '𖹅', '𖹦' => '𖹆', '𖹧' => '𖹇', '𖹨' => '𖹈', '𖹩' => '𖹉', '𖹪' => '𖹊', '𖹫' => '𖹋', '𖹬' => '𖹌', '𖹭' => '𖹍', '𖹮' => '𖹎', '𖹯' => '𖹏', '𖹰' => '𖹐', '𖹱' => '𖹑', '𖹲' => '𖹒', '𖹳' => '𖹓', '𖹴' => '𖹔', '𖹵' => '𖹕', '𖹶' => '𖹖', '𖹷' => '𖹗', '𖹸' => '𖹘', '𖹹' => '𖹙', '𖹺' => '𖹚', '𖹻' => '𖹛', '𖹼' => '𖹜', '𖹽' => '𖹝', '𖹾' => '𖹞', '𖹿' => '𖹟', '𞤢' => '𞤀', '𞤣' => '𞤁', '𞤤' => '𞤂', '𞤥' => '𞤃', '𞤦' => '𞤄', '𞤧' => '𞤅', '𞤨' => '𞤆', '𞤩' => '𞤇', '𞤪' => '𞤈', '𞤫' => '𞤉', '𞤬' => '𞤊', '𞤭' => '𞤋', '𞤮' => '𞤌', '𞤯' => '𞤍', '𞤰' => '𞤎', '𞤱' => '𞤏', '𞤲' => '𞤐', '𞤳' => '𞤑', '𞤴' => '𞤒', '𞤵' => '𞤓', '𞤶' => '𞤔', '𞤷' => '𞤕', '𞤸' => '𞤖', '𞤹' => '𞤗', '𞤺' => '𞤘', '𞤻' => '𞤙', '𞤼' => '𞤚', '𞤽' => '𞤛', '𞤾' => '𞤜', '𞤿' => '𞤝', '𞥀' => '𞤞', '𞥁' => '𞤟', '𞥂' => '𞤠', '𞥃' => '𞤡'); diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/bootstrap.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/bootstrap.php deleted file mode 100644 index 6dceb7a..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-mbstring/bootstrap.php +++ /dev/null @@ -1,145 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use WPMailSMTP\Vendor\Symfony\Polyfill\Mbstring as p; - -if (!function_exists('mb_convert_encoding')) { - function mb_convert_encoding($string, $to_encoding, $from_encoding = null) { return p\Mbstring::mb_convert_encoding($string, $to_encoding, $from_encoding); } -} -if (!function_exists('mb_decode_mimeheader')) { - function mb_decode_mimeheader($string) { return p\Mbstring::mb_decode_mimeheader($string); } -} -if (!function_exists('mb_encode_mimeheader')) { - function mb_encode_mimeheader($string, $charset = null, $transfer_encoding = null, $newline = null, $indent = null) { return p\Mbstring::mb_encode_mimeheader($string, $charset, $transfer_encoding, $newline, $indent); } -} -if (!function_exists('mb_decode_numericentity')) { - function mb_decode_numericentity($string, $map, $encoding = null) { return p\Mbstring::mb_decode_numericentity($string, $map, $encoding); } -} -if (!function_exists('mb_encode_numericentity')) { - function mb_encode_numericentity($string, $map, $encoding = null, $hex = false) { return p\Mbstring::mb_encode_numericentity($string, $map, $encoding, $hex); } -} -if (!function_exists('mb_convert_case')) { - function mb_convert_case($string, $mode, $encoding = null) { return p\Mbstring::mb_convert_case($string, $mode, $encoding); } -} -if (!function_exists('mb_internal_encoding')) { - function mb_internal_encoding($encoding = null) { return p\Mbstring::mb_internal_encoding($encoding); } -} -if (!function_exists('mb_language')) { - function mb_language($language = null) { return p\Mbstring::mb_language($language); } -} -if (!function_exists('mb_list_encodings')) { - function mb_list_encodings() { return p\Mbstring::mb_list_encodings(); } -} -if (!function_exists('mb_encoding_aliases')) { - function mb_encoding_aliases($encoding) { return p\Mbstring::mb_encoding_aliases($encoding); } -} -if (!function_exists('mb_check_encoding')) { - function mb_check_encoding($value = null, $encoding = null) { return p\Mbstring::mb_check_encoding($value, $encoding); } -} -if (!function_exists('mb_detect_encoding')) { - function mb_detect_encoding($string, $encodings = null, $strict = false) { return p\Mbstring::mb_detect_encoding($string, $encodings, $strict); } -} -if (!function_exists('mb_detect_order')) { - function mb_detect_order($encoding = null) { return p\Mbstring::mb_detect_order($encoding); } -} -if (!function_exists('mb_parse_str')) { - function mb_parse_str($string, &$result = array()) { parse_str($string, $result); } -} -if (!function_exists('mb_strlen')) { - function mb_strlen($string, $encoding = null) { return p\Mbstring::mb_strlen($string, $encoding); } -} -if (!function_exists('mb_strpos')) { - function mb_strpos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_strpos($haystack, $needle, $offset, $encoding); } -} -if (!function_exists('mb_strtolower')) { - function mb_strtolower($string, $encoding = null) { return p\Mbstring::mb_strtolower($string, $encoding); } -} -if (!function_exists('mb_strtoupper')) { - function mb_strtoupper($string, $encoding = null) { return p\Mbstring::mb_strtoupper($string, $encoding); } -} -if (!function_exists('mb_substitute_character')) { - function mb_substitute_character($substitute_character = null) { return p\Mbstring::mb_substitute_character($substitute_character); } -} -if (!function_exists('mb_substr')) { - function mb_substr($string, $start, $length = 2147483647, $encoding = null) { return p\Mbstring::mb_substr($string, $start, $length, $encoding); } -} -if (!function_exists('mb_stripos')) { - function mb_stripos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_stripos($haystack, $needle, $offset, $encoding); } -} -if (!function_exists('mb_stristr')) { - function mb_stristr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_stristr($haystack, $needle, $before_needle, $encoding); } -} -if (!function_exists('mb_strrchr')) { - function mb_strrchr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_strrchr($haystack, $needle, $before_needle, $encoding); } -} -if (!function_exists('mb_strrichr')) { - function mb_strrichr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_strrichr($haystack, $needle, $before_needle, $encoding); } -} -if (!function_exists('mb_strripos')) { - function mb_strripos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_strripos($haystack, $needle, $offset, $encoding); } -} -if (!function_exists('mb_strrpos')) { - function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_strrpos($haystack, $needle, $offset, $encoding); } -} -if (!function_exists('mb_strstr')) { - function mb_strstr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_strstr($haystack, $needle, $before_needle, $encoding); } -} -if (!function_exists('mb_get_info')) { - function mb_get_info($type = 'all') { return p\Mbstring::mb_get_info($type); } -} -if (!function_exists('mb_http_output')) { - function mb_http_output($encoding = null) { return p\Mbstring::mb_http_output($encoding); } -} -if (!function_exists('mb_strwidth')) { - function mb_strwidth($string, $encoding = null) { return p\Mbstring::mb_strwidth($string, $encoding); } -} -if (!function_exists('mb_substr_count')) { - function mb_substr_count($haystack, $needle, $encoding = null) { return p\Mbstring::mb_substr_count($haystack, $needle, $encoding); } -} -if (!function_exists('mb_output_handler')) { - function mb_output_handler($string, $status) { return p\Mbstring::mb_output_handler($string, $status); } -} -if (!function_exists('mb_http_input')) { - function mb_http_input($type = '') { return p\Mbstring::mb_http_input($type); } -} - -if (PHP_VERSION_ID >= 80000) { - require_once __DIR__.'/Resources/mb_convert_variables.php8'; -} elseif (!function_exists('mb_convert_variables')) { - function mb_convert_variables($toEncoding, $fromEncoding, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null, &$f = null) { return p\Mbstring::mb_convert_variables($toEncoding, $fromEncoding, $a, $b, $c, $d, $e, $f); } -} - -if (!function_exists('mb_ord')) { - function mb_ord($string, $encoding = null) { return p\Mbstring::mb_ord($string, $encoding); } -} -if (!function_exists('mb_chr')) { - function mb_chr($codepoint, $encoding = null) { return p\Mbstring::mb_chr($codepoint, $encoding); } -} -if (!function_exists('mb_scrub')) { - function mb_scrub($string, $encoding = null) { $encoding = null === $encoding ? mb_internal_encoding() : $encoding; return mb_convert_encoding($string, $encoding, $encoding); } -} -if (!function_exists('mb_str_split')) { - function mb_str_split($string, $length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $length, $encoding); } -} - -if (extension_loaded('mbstring')) { - return; -} - -if (!defined('MB_CASE_UPPER')) { - define('MB_CASE_UPPER', 0); -} -if (!defined('MB_CASE_LOWER')) { - define('MB_CASE_LOWER', 1); -} -if (!defined('MB_CASE_TITLE')) { - define('MB_CASE_TITLE', 2); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-php72/LICENSE b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-php72/LICENSE deleted file mode 100644 index 4cd8bdd..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-php72/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2015-2019 Fabien Potencier - -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. diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-php72/Php72.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-php72/Php72.php deleted file mode 100644 index 52a985c..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-php72/Php72.php +++ /dev/null @@ -1,176 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace WPMailSMTP\Vendor\Symfony\Polyfill\Php72; - -/** - * @author Nicolas Grekas - * @author Dariusz Rumiński - * - * @internal - */ -final class Php72 -{ - private static $hashMask; - public static function utf8_encode($s) - { - $s .= $s; - $len = \strlen($s); - for ($i = $len >> 1, $j = 0; $i < $len; ++$i, ++$j) { - switch (\true) { - case $s[$i] < "": - $s[$j] = $s[$i]; - break; - case $s[$i] < "": - $s[$j] = ""; - $s[++$j] = $s[$i]; - break; - default: - $s[$j] = ""; - $s[++$j] = \chr(\ord($s[$i]) - 64); - break; - } - } - return \substr($s, 0, $j); - } - public static function utf8_decode($s) - { - $s = (string) $s; - $len = \strlen($s); - for ($i = 0, $j = 0; $i < $len; ++$i, ++$j) { - switch ($s[$i] & "") { - case "": - case "": - $c = \ord($s[$i] & "\37") << 6 | \ord($s[++$i] & "?"); - $s[$j] = $c < 256 ? \chr($c) : '?'; - break; - case "": - ++$i; - // no break - case "": - $s[$j] = '?'; - $i += 2; - break; - default: - $s[$j] = $s[$i]; - } - } - return \substr($s, 0, $j); - } - public static function php_os_family() - { - if ('\\' === \DIRECTORY_SEPARATOR) { - return 'Windows'; - } - $map = array('Darwin' => 'Darwin', 'DragonFly' => 'BSD', 'FreeBSD' => 'BSD', 'NetBSD' => 'BSD', 'OpenBSD' => 'BSD', 'Linux' => 'Linux', 'SunOS' => 'Solaris'); - return isset($map[\PHP_OS]) ? $map[\PHP_OS] : 'Unknown'; - } - public static function spl_object_id($object) - { - if (null === self::$hashMask) { - self::initHashMask(); - } - if (null === ($hash = \spl_object_hash($object))) { - return; - } - // On 32-bit systems, PHP_INT_SIZE is 4, - return self::$hashMask ^ \hexdec(\substr($hash, 16 - (\PHP_INT_SIZE * 2 - 1), \PHP_INT_SIZE * 2 - 1)); - } - public static function sapi_windows_vt100_support($stream, $enable = null) - { - if (!\is_resource($stream)) { - \trigger_error('sapi_windows_vt100_support() expects parameter 1 to be resource, ' . \gettype($stream) . ' given', \E_USER_WARNING); - return \false; - } - $meta = \stream_get_meta_data($stream); - if ('STDIO' !== $meta['stream_type']) { - \trigger_error('sapi_windows_vt100_support() was not able to analyze the specified stream', \E_USER_WARNING); - return \false; - } - // We cannot actually disable vt100 support if it is set - if (\false === $enable || !self::stream_isatty($stream)) { - return \false; - } - // The native function does not apply to stdin - $meta = \array_map('strtolower', $meta); - $stdin = 'php://stdin' === $meta['uri'] || 'php://fd/0' === $meta['uri']; - return !$stdin && (\false !== \getenv('ANSICON') || 'ON' === \getenv('ConEmuANSI') || 'xterm' === \getenv('TERM') || 'Hyper' === \getenv('TERM_PROGRAM')); - } - public static function stream_isatty($stream) - { - if (!\is_resource($stream)) { - \trigger_error('stream_isatty() expects parameter 1 to be resource, ' . \gettype($stream) . ' given', \E_USER_WARNING); - return \false; - } - if ('\\' === \DIRECTORY_SEPARATOR) { - $stat = @\fstat($stream); - // Check if formatted mode is S_IFCHR - return $stat ? 020000 === ($stat['mode'] & 0170000) : \false; - } - return \function_exists('posix_isatty') && @\posix_isatty($stream); - } - private static function initHashMask() - { - $obj = (object) array(); - self::$hashMask = -1; - // check if we are nested in an output buffering handler to prevent a fatal error with ob_start() below - $obFuncs = array('ob_clean', 'ob_end_clean', 'ob_flush', 'ob_end_flush', 'ob_get_contents', 'ob_get_flush'); - foreach (\debug_backtrace(\PHP_VERSION_ID >= 50400 ? \DEBUG_BACKTRACE_IGNORE_ARGS : \false) as $frame) { - if (isset($frame['function'][0]) && !isset($frame['class']) && 'o' === $frame['function'][0] && \in_array($frame['function'], $obFuncs)) { - $frame['line'] = 0; - break; - } - } - if (!empty($frame['line'])) { - \ob_start(); - \debug_zval_dump($obj); - self::$hashMask = (int) \substr(\ob_get_clean(), 17); - } - self::$hashMask ^= \hexdec(\substr(\spl_object_hash($obj), 16 - (\PHP_INT_SIZE * 2 - 1), \PHP_INT_SIZE * 2 - 1)); - } - public static function mb_chr($code, $encoding = null) - { - if (0x80 > ($code %= 0x200000)) { - $s = \chr($code); - } elseif (0x800 > $code) { - $s = \chr(0xc0 | $code >> 6) . \chr(0x80 | $code & 0x3f); - } elseif (0x10000 > $code) { - $s = \chr(0xe0 | $code >> 12) . \chr(0x80 | $code >> 6 & 0x3f) . \chr(0x80 | $code & 0x3f); - } else { - $s = \chr(0xf0 | $code >> 18) . \chr(0x80 | $code >> 12 & 0x3f) . \chr(0x80 | $code >> 6 & 0x3f) . \chr(0x80 | $code & 0x3f); - } - if ('UTF-8' !== $encoding) { - $s = \mb_convert_encoding($s, $encoding, 'UTF-8'); - } - return $s; - } - public static function mb_ord($s, $encoding = null) - { - if (null === $encoding) { - $s = \mb_convert_encoding($s, 'UTF-8'); - } elseif ('UTF-8' !== $encoding) { - $s = \mb_convert_encoding($s, 'UTF-8', $encoding); - } - if (1 === \strlen($s)) { - return \ord($s); - } - $code = ($s = \unpack('C*', \substr($s, 0, 4))) ? $s[1] : 0; - if (0xf0 <= $code) { - return ($code - 0xf0 << 18) + ($s[2] - 0x80 << 12) + ($s[3] - 0x80 << 6) + $s[4] - 0x80; - } - if (0xe0 <= $code) { - return ($code - 0xe0 << 12) + ($s[2] - 0x80 << 6) + $s[3] - 0x80; - } - if (0xc0 <= $code) { - return ($code - 0xc0 << 6) + $s[2] - 0x80; - } - return $code; - } -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-php72/bootstrap.php b/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-php72/bootstrap.php deleted file mode 100644 index 8ace9df..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor_prefixed/symfony/polyfill-php72/bootstrap.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use WPMailSMTP\Vendor\Symfony\Polyfill\Php72 as p; - -if (PHP_VERSION_ID >= 70200) { - return; -} - -if (!defined('PHP_FLOAT_DIG')) { - define('PHP_FLOAT_DIG', 15); -} -if (!defined('PHP_FLOAT_EPSILON')) { - define('PHP_FLOAT_EPSILON', 2.2204460492503E-16); -} -if (!defined('PHP_FLOAT_MIN')) { - define('PHP_FLOAT_MIN', 2.2250738585072E-308); -} -if (!defined('PHP_FLOAT_MAX')) { - define('PHP_FLOAT_MAX', 1.7976931348623157E+308); -} -if (!defined('PHP_OS_FAMILY')) { - define('PHP_OS_FAMILY', p\Php72::php_os_family()); -} - -if ('\\' === DIRECTORY_SEPARATOR && !function_exists('sapi_windows_vt100_support')) { - function sapi_windows_vt100_support($stream, $enable = null) { return p\Php72::sapi_windows_vt100_support($stream, $enable); } -} -if (!function_exists('stream_isatty')) { - function stream_isatty($stream) { return p\Php72::stream_isatty($stream); } -} -if (!function_exists('utf8_encode')) { - function utf8_encode($string) { return p\Php72::utf8_encode($string); } -} -if (!function_exists('utf8_decode')) { - function utf8_decode($string) { return p\Php72::utf8_decode($string); } -} -if (!function_exists('spl_object_id')) { - function spl_object_id($object) { return p\Php72::spl_object_id($object); } -} -if (!function_exists('mb_ord')) { - function mb_ord($string, $encoding = null) { return p\Php72::mb_ord($string, $encoding); } -} -if (!function_exists('mb_chr')) { - function mb_chr($codepoint, $encoding = null) { return p\Php72::mb_chr($codepoint, $encoding); } -} -if (!function_exists('mb_scrub')) { - function mb_scrub($string, $encoding = null) { $encoding = null === $encoding ? mb_internal_encoding() : $encoding; return mb_convert_encoding($string, $encoding, $encoding); } -} diff --git a/wp-content/plugins/wp-mail-smtp/wp-mail-smtp.php b/wp-content/plugins/wp-mail-smtp/wp-mail-smtp.php deleted file mode 100644 index 6a1ddb5..0000000 --- a/wp-content/plugins/wp-mail-smtp/wp-mail-smtp.php +++ /dev/null @@ -1,83 +0,0 @@ -wp_mail() function to use Gmail/Mailgun/SendGrid/SMTP instead of the default mail() and creates an options page to manage the settings. - * Author: WPForms - * Author URI: https://wpforms.com/ - * Network: false - * Text Domain: wp-mail-smtp - * Domain Path: /assets/languages - */ - -/** - * @author WPForms - * @copyright WPForms, 2007-20, All Rights Reserved - * This code is released under the GPL licence version 3 or later, available here - * https://www.gnu.org/licenses/gpl.txt - */ - -/** - * Setting options in wp-config.php - * - * Specifically aimed at WP Multisite users, you can set the options for this plugin as - * constants in wp-config.php. Copy the code below into wp-config.php and tweak settings. - * Values from constants are NOT stripslash()'ed. - * - * When enabled, make sure to comment out (at the beginning of the line using //) those constants that you do not need, - * or remove them completely, so they won't interfere with plugin settings. - */ - -/* -define( 'WPMS_ON', true ); // True turns on the whole constants support and usage, false turns it off. - -define( 'WPMS_DO_NOT_SEND', true ); // Or false, in that case constant is ignored. - -define( 'WPMS_MAIL_FROM', 'mail@example.com' ); -define( 'WPMS_MAIL_FROM_FORCE', true ); // True turns it on, false turns it off. -define( 'WPMS_MAIL_FROM_NAME', 'From Name' ); -define( 'WPMS_MAIL_FROM_NAME_FORCE', true ); // True turns it on, false turns it off. -define( 'WPMS_MAILER', 'sendinblue' ); // Possible values: 'mail', 'smtpcom', 'sendinblue', 'mailgun', 'sendgrid', 'gmail', 'smtp'. -define( 'WPMS_SET_RETURN_PATH', true ); // Sets $phpmailer->Sender if true, relevant only for Other SMTP mailer. - -// Recommended mailers. -define( 'WPMS_SMTPCOM_API_KEY', '' ); -define( 'WPMS_SMTPCOM_CHANNEL', '' ); - -define( 'WPMS_PEPIPOST_API_KEY', '' ); - -define( 'WPMS_SENDINBLUE_API_KEY', '' ); - -define( 'WPMS_MAILGUN_API_KEY', '' ); -define( 'WPMS_MAILGUN_DOMAIN', '' ); -define( 'WPMS_MAILGUN_REGION', 'US' ); // or 'EU' for Europe. - -define( 'WPMS_SENDGRID_API_KEY', '' ); - -define( 'WPMS_GMAIL_CLIENT_ID', '' ); -define( 'WPMS_GMAIL_CLIENT_SECRET', '' ); - -define( 'WPMS_SMTP_HOST', 'localhost' ); // The SMTP mail host. -define( 'WPMS_SMTP_PORT', 25 ); // The SMTP server port number. -define( 'WPMS_SSL', '' ); // Possible values '', 'ssl', 'tls' - note TLS is not STARTTLS. -define( 'WPMS_SMTP_AUTH', true ); // True turns it on, false turns it off. -define( 'WPMS_SMTP_USER', 'username' ); // SMTP authentication username, only used if WPMS_SMTP_AUTH is true. -define( 'WPMS_SMTP_PASS', 'password' ); // SMTP authentication password, only used if WPMS_SMTP_AUTH is true. -define( 'WPMS_SMTP_AUTOTLS', true ); // True turns it on, false turns it off. -*/ - -/** - * Don't allow multiple versions of 1.5.x (Lite and Pro) and above to be active. - * - * @since 1.5.0 - */ -if ( function_exists( 'wp_mail_smtp' ) ) { - - if ( ! function_exists( 'wp_mail_smtp_deactivate' ) ) { - /** - * Deactivate if plugin already activated. - * Needed when transitioning from 1.5+ Lite to Pro. - * - * @since 1.5.0 - */ - function wp_mail_smtp_deactivate() { - - deactivate_plugins( plugin_basename( __FILE__ ) ); - } - } - add_action( 'admin_init', 'wp_mail_smtp_deactivate' ); - - // Do not process the plugin code further. - return; -} - -if ( ! function_exists( 'wp_mail_smtp_check_pro_loading_allowed' ) ) { - /** - * Don't allow 1.4.x and below to break when 1.5+ Pro is activated. - * This will stop the current plugin from loading and display a message in admin area. - * - * @since 1.5.0 - */ - function wp_mail_smtp_check_pro_loading_allowed() { - - // Check for pro without using wp_mail_smtp()->is_pro(), because at this point it's too early. - if ( ! is_readable( rtrim( plugin_dir_path( __FILE__ ), '/\\' ) . '/src/Pro/Pro.php' ) ) { - // Currently, not a pro version of the plugin is loaded. - return false; - } - - if ( ! function_exists( 'is_plugin_active' ) ) { - require_once ABSPATH . '/wp-admin/includes/plugin.php'; - } - - // Search for old plugin name. - if ( is_plugin_active( 'wp-mail-smtp/wp_mail_smtp.php' ) ) { - // As Pro is loaded and Lite too - deactivate *silently* itself not to break older SMTP plugin. - deactivate_plugins( plugin_basename( __FILE__ ) ); - - add_action( 'admin_notices', 'wp_mail_smtp_lite_deactivation_notice' ); - - return true; - } - - return false; - } - - if ( ! function_exists( 'wp_mail_smtp_lite_deactivation_notice' ) ) { - /** - * Display the notice after deactivation. - * - * @since 1.5.0 - */ - function wp_mail_smtp_lite_deactivation_notice() { - - echo '

    ' . esc_html__( 'Please deactivate the free version of the WP Mail SMTP plugin before activating WP Mail SMTP Pro.', 'wp-mail-smtp' ) . '

    '; - - if ( isset( $_GET['activate'] ) ) { // phpcs:ignore - unset( $_GET['activate'] ); // phpcs:ignore - } - } - } - - // Stop the plugin loading. - if ( wp_mail_smtp_check_pro_loading_allowed() === true ) { - return; - } -} - -if ( ! function_exists( 'wp_mail_smtp_insecure_php_version_notice' ) ) { - /** - * Display admin notice, if the server is using old/insecure PHP version. - * - * @since 2.0.0 - */ - function wp_mail_smtp_insecure_php_version_notice() { - - ?> -
    -

    - insecure version of PHP that is no longer supported. Please contact your web hosting provider to update your PHP version or switch to a recommended WordPress hosting company.', 'wp-mail-smtp' ), - array( - 'a' => array( - 'href' => array(), - 'target' => array(), - 'rel' => array(), - ), - 'strong' => array(), - ) - ), - 'https://www.wpbeginner.com/wordpress-hosting/' - ); - ?> -

    - WP Mail SMTP plugin is disabled on your site until you fix the issue. Read more for additional information.', 'wp-mail-smtp' ), - array( - 'a' => array( - 'href' => array(), - 'target' => array(), - 'rel' => array(), - ), - 'strong' => array(), - ) - ), - 'https://wpmailsmtp.com/docs/supported-php-versions-for-wp-mail-smtp/' - ); - ?> -

    -
    - -