From 57b2d39b8ff8f32fbc3c47fffc007eca5c63fcc0 Mon Sep 17 00:00:00 2001 From: Lai Power Date: Mon, 4 May 2020 15:57:12 +0000 Subject: [PATCH] updated plugin `WP Mail SMTP` version 2.0.0 --- .../assets/css/smtp-admin.min.css | 2 +- .../assets/images/about/icon-full.svg | 2 +- .../assets/images/about/icon-none.svg | 2 +- .../assets/images/about/icon-partial.svg | 2 +- .../images/email/wp-mail-smtp-whitelabel.png | Bin 0 -> 14735 bytes .../assets/images/email/wpforms-pro.png | Bin 5598 -> 0 bytes .../assets/images/logo-whitelabel.svg | 1 + .../wp-mail-smtp/assets/images/logo.svg | 2 +- .../assets/images/logs/archive.png | Bin 69843 -> 28288 bytes .../assets/images/logs/single.png | Bin 90210 -> 56323 bytes .../wp-mail-smtp/assets/images/menu-icon.svg | 2 +- .../assets/images/providers/mailgun.svg | 2 +- .../assets/images/providers/php.svg | 2 +- .../assets/images/providers/smtp-com.svg | 1 + .../assets/images/providers/smtp.svg | 2 +- .../assets/images/recommended.svg | 2 +- .../assets/js/jquery.matchHeight.min.js | 1 - .../wp-mail-smtp/assets/js/smtp-about.js | 65 +- .../wp-mail-smtp/assets/js/smtp-about.min.js | 2 +- .../wp-mail-smtp/assets/js/smtp-admin.js | 134 +- .../wp-mail-smtp/assets/js/smtp-admin.min.js | 2 +- .../js/{ => vendor}/jquery.matchHeight.js | 776 ++++---- .../js/vendor/jquery.matchHeight.min.js | 1 + .../assets/languages/wp-mail-smtp.pot | 422 ++-- wp-content/plugins/wp-mail-smtp/loco.xml | 29 - wp-content/plugins/wp-mail-smtp/readme.txt | 46 +- .../plugins/wp-mail-smtp/src/Admin/Area.php | 58 +- .../wp-mail-smtp/src/Admin/Pages/About.php | 2 +- .../src/Admin/Pages/SettingsTab.php | 20 +- .../wp-mail-smtp/src/Admin/Pages/TestTab.php | 14 +- wp-content/plugins/wp-mail-smtp/src/Core.php | 90 +- wp-content/plugins/wp-mail-smtp/src/Geo.php | 327 ++-- .../plugins/wp-mail-smtp/src/Options.php | 43 +- .../plugins/wp-mail-smtp/src/Processor.php | 7 +- .../wp-mail-smtp/src/Providers/Loader.php | 1 + .../src/Providers/OptionsAbstract.php | 954 ++++----- .../src/Providers/PepipostAPI/Options.php | 4 +- .../src/Providers/SMTP/Options.php | 88 +- .../src/Providers/SMTPcom/Mailer.php | 460 +++++ .../src/Providers/SMTPcom/Options.php | 142 ++ .../src/Providers/Sendinblue/Options.php | 50 +- .../plugins/wp-mail-smtp/src/SiteHealth.php | 16 +- wp-content/plugins/wp-mail-smtp/src/WP.php | 468 ++--- .../plugins/wp-mail-smtp/vendor/autoload.php | 2 +- .../vendor/composer/autoload_files.php | 3 + .../vendor/composer/autoload_psr4.php | 3 + .../vendor/composer/autoload_real.php | 17 +- .../vendor/composer/autoload_static.php | 28 +- .../src/Google/Service/Gmail.php | 233 +-- .../Service/Gmail/Resource/UsersDrafts.php | 2 +- .../Service/Gmail/Resource/UsersHistory.php | 8 +- .../Service/Gmail/Resource/UsersLabels.php | 3 +- .../Service/Gmail/Resource/UsersMessages.php | 31 +- .../Service/Gmail/Resource/UsersSettings.php | 22 +- .../Gmail/Resource/UsersSettingsDelegates.php | 14 +- .../UsersSettingsForwardingAddresses.php | 10 +- .../Gmail/Resource/UsersSettingsSendAs.php | 37 +- .../Service/Gmail/Resource/UsersThreads.php | 12 +- .../google/apiclient/src/Google/Client.php | 60 +- .../src/Google/Http/MediaFileUpload.php | 8 +- .../apiclient/src/Google/Service/Resource.php | 2 +- .../vendor/google/auth/src/AccessToken.php | 334 +++- .../src/ApplicationDefaultCredentials.php | 99 +- .../auth/src/Cache/SysVCacheItemPool.php | 2 +- .../Credentials/AppIdentityCredentials.php | 62 +- .../auth/src/Credentials/GCECredentials.php | 104 +- .../Credentials/ServiceAccountCredentials.php | 63 +- .../ServiceAccountJwtAccessCredentials.php | 42 +- .../Credentials/UserRefreshCredentials.php | 22 +- .../google/auth/src/FetchAuthTokenCache.php | 39 +- .../auth/src/GetQuotaProjectInterface.php | 33 + .../src/Middleware/AuthTokenMiddleware.php | 19 + .../auth/src/ProjectIdProviderInterface.php | 32 + .../src/Subscriber/AuthTokenSubscriber.php | 15 + .../vendor/guzzlehttp/guzzle/Dockerfile | 18 - .../vendor/guzzlehttp/guzzle/src/Client.php | 92 +- .../guzzlehttp/guzzle/src/ClientInterface.php | 7 +- .../guzzle/src/Cookie/CookieJar.php | 6 +- .../guzzle/src/Cookie/CookieJarInterface.php | 6 +- .../guzzle/src/Exception/RequestException.php | 35 +- .../guzzle/src/Handler/CurlFactory.php | 15 +- .../guzzle/src/Handler/CurlMultiHandler.php | 25 +- .../guzzle/src/Handler/MockHandler.php | 7 +- .../guzzle/src/Handler/StreamHandler.php | 7 +- .../guzzlehttp/guzzle/src/HandlerStack.php | 6 +- .../guzzle/src/MessageFormatter.php | 5 + .../vendor/guzzlehttp/guzzle/src/Pool.php | 13 +- .../guzzle/src/PrepareBodyMiddleware.php | 5 + .../guzzle/src/RedirectMiddleware.php | 26 +- .../guzzlehttp/guzzle/src/RequestOptions.php | 8 + .../guzzlehttp/guzzle/src/RetryMiddleware.php | 17 +- .../guzzlehttp/guzzle/src/TransferStats.php | 12 +- .../vendor/guzzlehttp/guzzle/src/Utils.php | 67 + .../guzzlehttp/guzzle/src/functions.php | 16 +- .../Monolog/Formatter/FluentdFormatter.php | 4 +- .../src/Monolog/Formatter/HtmlFormatter.php | 5 +- .../src/Monolog/Formatter/JsonFormatter.php | 8 +- .../src/Monolog/Formatter/LineFormatter.php | 2 +- .../Monolog/Formatter/MongoDBFormatter.php | 2 +- .../Monolog/Formatter/NormalizerFormatter.php | 129 +- .../Monolog/Handler/BrowserConsoleHandler.php | 9 +- .../src/Monolog/Handler/BufferHandler.php | 19 + .../src/Monolog/Handler/ChromePHPHandler.php | 5 +- .../src/Monolog/Handler/CubeHandler.php | 5 +- .../src/Monolog/Handler/FilterHandler.php | 54 +- .../Monolog/Handler/FingersCrossedHandler.php | 58 +- .../src/Monolog/Handler/FlowdockHandler.php | 3 +- .../src/Monolog/Handler/IFTTTHandler.php | 3 +- .../src/Monolog/Handler/NewRelicHandler.php | 3 +- .../src/Monolog/Handler/PHPConsoleHandler.php | 3 +- .../src/Monolog/Handler/RedisHandler.php | 3 +- .../src/Monolog/Handler/SamplingHandler.php | 53 +- .../src/Monolog/Handler/Slack/SlackRecord.php | 9 +- .../src/Monolog/Handler/SlackHandler.php | 3 +- .../Monolog/Handler/SlackWebhookHandler.php | 3 +- .../monolog/monolog/src/Monolog/Logger.php | 9 +- .../monolog/monolog/src/Monolog/Utils.php | 134 ++ .../phpseclib/phpseclib/Crypt/RSA.php | 6 +- .../phpseclib/phpseclib/Crypt/Random.php | 5 +- .../psr/log/Psr/Log/LoggerInterface.php | 38 +- .../api-v3-sdk/lib/Api/AccountApi.php | 22 +- .../api-v3-sdk/lib/Api/AttributesApi.php | 72 +- .../api-v3-sdk/lib/Api/ContactsApi.php | 415 ++-- .../api-v3-sdk/lib/Api/EmailCampaignsApi.php | 771 +++++++- .../api-v3-sdk/lib/Api/FoldersApi.php | 103 +- .../api-v3-sdk/lib/Api/ListsApi.php | 148 +- .../api-v3-sdk/lib/Api/ProcessApi.php | 37 +- .../api-v3-sdk/lib/Api/ResellerApi.php | 603 +++++- .../api-v3-sdk/lib/Api/SMSCampaignsApi.php | 165 +- .../sendinblue/api-v3-sdk/lib/Api/SMTPApi.php | 1713 ++++++++++++++++- .../api-v3-sdk/lib/Api/SendersApi.php | 93 +- .../lib/Api/TransactionalSMSApi.php | 63 +- .../api-v3-sdk/lib/Api/WebhooksApi.php | 84 +- .../api-v3-sdk/lib/ApiException.php | 4 +- .../api-v3-sdk/lib/Configuration.php | 4 +- .../api-v3-sdk/lib/HeaderSelector.php | 4 +- .../lib/Model/AbTestCampaignResult.php | 515 +++++ .../api-v3-sdk/lib/Model/AddChildDomain.php | 7 +- .../api-v3-sdk/lib/Model/AddContactToList.php | 7 +- .../api-v3-sdk/lib/Model/AddCredits.php | 7 +- .../api-v3-sdk/lib/Model/CreateAttribute.php | 15 +- .../lib/Model/CreateAttributeEnumeration.php | 13 +- .../api-v3-sdk/lib/Model/CreateChild.php | 22 +- .../api-v3-sdk/lib/Model/CreateContact.php | 13 +- .../lib/Model/CreateEmailCampaign.php | 153 +- .../Model/CreateEmailCampaignRecipients.php | 7 +- .../lib/Model/CreateEmailCampaignSender.php | 52 +- .../api-v3-sdk/lib/Model/CreateList.php | 13 +- .../api-v3-sdk/lib/Model/CreateModel.php | 10 +- .../api-v3-sdk/lib/Model/CreateReseller.php | 10 +- .../api-v3-sdk/lib/Model/CreateSender.php | 13 +- .../api-v3-sdk/lib/Model/CreateSenderIps.php | 19 +- .../lib/Model/CreateSenderModel.php | 10 +- .../lib/Model/CreateSmsCampaign.php | 23 +- .../lib/Model/CreateSmsCampaignRecipients.php | 10 +- .../api-v3-sdk/lib/Model/CreateSmtpEmail.php | 12 +- .../lib/Model/CreateSmtpTemplate.php | 18 +- .../lib/Model/CreateSmtpTemplateSender.php | 52 +- .../lib/Model/CreateUpdateContactModel.php | 7 +- .../lib/Model/CreateUpdateFolder.php | 7 +- .../api-v3-sdk/lib/Model/CreateWebhook.php | 25 +- .../api-v3-sdk/lib/Model/CreatedProcessId.php | 10 +- .../lib/Model/DeleteHardbounces.php | 7 +- .../lib/Model/EmailExportRecipients.php | 18 +- .../api-v3-sdk/lib/Model/ErrorModel.php | 21 +- .../api-v3-sdk/lib/Model/GetAccount.php | 28 +- .../Model/GetAccountMarketingAutomation.php | 10 +- .../api-v3-sdk/lib/Model/GetAccountPlan.php | 32 +- .../api-v3-sdk/lib/Model/GetAccountRelay.php | 17 +- .../lib/Model/GetAccountRelayData.php | 20 +- .../lib/Model/GetAggregatedReport.php | 46 +- .../api-v3-sdk/lib/Model/GetAttributes.php | 10 +- .../lib/Model/GetAttributesAttributes.php | 29 +- .../lib/Model/GetAttributesEnumeration.php | 13 +- .../lib/Model/GetCampaignOverview.php | 35 +- .../lib/Model/GetCampaignRecipients.php | 13 +- .../api-v3-sdk/lib/Model/GetCampaignStats.php | 37 +- .../Model/GetChildAccountCreationStatus.php | 304 +++ .../api-v3-sdk/lib/Model/GetChildDomain.php | 13 +- .../api-v3-sdk/lib/Model/GetChildDomains.php | 10 +- .../api-v3-sdk/lib/Model/GetChildInfo.php | 22 +- .../lib/Model/GetChildInfoApiKeys.php | 10 +- .../lib/Model/GetChildInfoApiKeysV2.php | 13 +- .../lib/Model/GetChildInfoApiKeysV3.php | 13 +- .../lib/Model/GetChildInfoCredits.php | 7 +- .../lib/Model/GetChildInfoStatistics.php | 7 +- .../api-v3-sdk/lib/Model/GetChildrenList.php | 50 +- .../api-v3-sdk/lib/Model/GetClient.php | 19 +- .../lib/Model/GetContactCampaignStats.php | 7 +- .../Model/GetContactCampaignStatsClicked.php | 13 +- .../Model/GetContactCampaignStatsOpened.php | 19 +- ...tContactCampaignStatsTransacAttributes.php | 16 +- ...GetContactCampaignStatsUnsubscriptions.php | 13 +- .../lib/Model/GetContactDetails.php | 31 +- .../api-v3-sdk/lib/Model/GetContacts.php | 13 +- .../lib/Model/GetDeviceBrowserStats.php | 403 ++++ .../api-v3-sdk/lib/Model/GetEmailCampaign.php | 71 +- .../lib/Model/GetEmailCampaigns.php | 10 +- .../lib/Model/GetEmailEventReport.php | 7 +- .../lib/Model/GetEmailEventReportEvents.php | 27 +- .../lib/Model/GetExtendedCampaignOverview.php | 65 +- .../GetExtendedCampaignOverviewSender.php | 47 +- .../lib/Model/GetExtendedCampaignStats.php | 101 +- .../lib/Model/GetExtendedClient.php | 22 +- .../lib/Model/GetExtendedClientAddress.php | 19 +- .../lib/Model/GetExtendedContactDetails.php | 34 +- .../GetExtendedContactDetailsStatistics.php | 7 +- ...xtendedContactDetailsStatisticsClicked.php | 13 +- ...tExtendedContactDetailsStatisticsLinks.php | 19 +- ...edContactDetailsStatisticsMessagesSent.php | 13 +- ...ExtendedContactDetailsStatisticsOpened.php | 19 +- ...ontactDetailsStatisticsUnsubscriptions.php | 13 +- ...ticsUnsubscriptionsAdminUnsubscription.php | 13 +- ...sticsUnsubscriptionsUserUnsubscription.php | 16 +- .../api-v3-sdk/lib/Model/GetExtendedList.php | 25 +- .../Model/GetExtendedListCampaignStats.php | 13 +- .../api-v3-sdk/lib/Model/GetFolder.php | 22 +- .../api-v3-sdk/lib/Model/GetFolderLists.php | 13 +- .../api-v3-sdk/lib/Model/GetFolders.php | 7 +- .../sendinblue/api-v3-sdk/lib/Model/GetIp.php | 19 +- .../api-v3-sdk/lib/Model/GetIpFromSender.php | 19 +- .../api-v3-sdk/lib/Model/GetIps.php | 10 +- .../api-v3-sdk/lib/Model/GetIpsFromSender.php | 10 +- .../api-v3-sdk/lib/Model/GetList.php | 19 +- .../api-v3-sdk/lib/Model/GetLists.php | 13 +- .../api-v3-sdk/lib/Model/GetProcess.php | 24 +- .../api-v3-sdk/lib/Model/GetProcesses.php | 10 +- .../api-v3-sdk/lib/Model/GetReports.php | 7 +- .../lib/Model/GetReportsReports.php | 46 +- .../api-v3-sdk/lib/Model/GetSendersList.php | 7 +- .../lib/Model/GetSendersListIps.php | 16 +- .../lib/Model/GetSendersListSenders.php | 19 +- .../lib/Model/GetSharedTemplateUrl.php | 304 +++ .../api-v3-sdk/lib/Model/GetSmsCampaign.php | 45 +- .../lib/Model/GetSmsCampaignOverview.php | 39 +- .../lib/Model/GetSmsCampaignStats.php | 28 +- .../api-v3-sdk/lib/Model/GetSmsCampaigns.php | 10 +- .../lib/Model/GetSmsEventReport.php | 7 +- .../lib/Model/GetSmsEventReportEvents.php | 27 +- .../lib/Model/GetSmtpTemplateOverview.php | 43 +- .../Model/GetSmtpTemplateOverviewSender.php | 47 +- .../api-v3-sdk/lib/Model/GetSmtpTemplates.php | 9 +- .../api-v3-sdk/lib/Model/GetSsoToken.php | 10 +- .../lib/Model/GetStatsByBrowser.php | 276 +++ .../api-v3-sdk/lib/Model/GetStatsByDevice.php | 391 ++++ .../api-v3-sdk/lib/Model/GetStatsByDomain.php | 10 +- .../Model/GetTransacAggregatedSmsReport.php | 37 +- .../lib/Model/GetTransacBlockedContacts.php | 331 ++++ .../GetTransacBlockedContactsContacts.php | 403 ++++ .../Model/GetTransacBlockedContactsReason.php | 372 ++++ .../lib/Model/GetTransacEmailContent.php | 499 +++++ .../Model/GetTransacEmailContentEvents.php | 337 ++++ .../lib/Model/GetTransacEmailsList.php | 301 +++ ...etTransacEmailsListTransactionalEmails.php | 466 +++++ .../lib/Model/GetTransacSmsReport.php | 7 +- .../lib/Model/GetTransacSmsReportReports.php | 37 +- .../api-v3-sdk/lib/Model/GetWebhook.php | 36 +- .../api-v3-sdk/lib/Model/GetWebhooks.php | 10 +- .../api-v3-sdk/lib/Model/ManageIp.php | 7 +- .../api-v3-sdk/lib/Model/ModelInterface.php | 4 +- .../api-v3-sdk/lib/Model/PostContactInfo.php | 10 +- .../lib/Model/PostContactInfoContacts.php | 7 +- .../api-v3-sdk/lib/Model/PostSendFailed.php | 13 +- .../lib/Model/PostSendSmsTestFailed.php | 13 +- .../lib/Model/RemainingCreditModel.php | 13 +- .../lib/Model/RemainingCreditModelChild.php | 13 +- .../Model/RemainingCreditModelReseller.php | 13 +- .../lib/Model/RemoveContactFromList.php | 7 +- .../api-v3-sdk/lib/Model/RemoveCredits.php | 7 +- .../lib/Model/RequestContactExport.php | 45 +- ...equestContactExportCustomContactFilter.php | 564 ++++++ .../lib/Model/RequestContactImport.php | 7 +- .../lib/Model/RequestContactImportNewList.php | 7 +- .../lib/Model/RequestSMSRecipientExport.php | 18 +- .../api-v3-sdk/lib/Model/SendEmail.php | 16 +- .../lib/Model/SendEmailAttachment.php | 16 +- .../api-v3-sdk/lib/Model/SendReport.php | 18 +- .../api-v3-sdk/lib/Model/SendReportEmail.php | 24 +- .../api-v3-sdk/lib/Model/SendSms.php | 13 +- .../api-v3-sdk/lib/Model/SendSmtpEmail.php | 18 +- .../lib/Model/SendSmtpEmailAttachment.php | 10 +- .../api-v3-sdk/lib/Model/SendSmtpEmailBcc.php | 12 +- .../api-v3-sdk/lib/Model/SendSmtpEmailCc.php | 12 +- .../lib/Model/SendSmtpEmailReplyTo.php | 14 +- .../lib/Model/SendSmtpEmailSender.php | 14 +- .../api-v3-sdk/lib/Model/SendSmtpEmailTo.php | 12 +- .../lib/Model/SendTemplateEmail.php | 10 +- .../api-v3-sdk/lib/Model/SendTestEmail.php | 7 +- .../api-v3-sdk/lib/Model/SendTestSms.php | 7 +- .../api-v3-sdk/lib/Model/SendTransacSms.php | 31 +- .../api-v3-sdk/lib/Model/UpdateAttribute.php | 9 +- .../lib/Model/UpdateAttributeEnumeration.php | 13 +- .../lib/Model/UpdateCampaignStatus.php | 15 +- .../api-v3-sdk/lib/Model/UpdateChild.php | 7 +- .../lib/Model/UpdateChildAccountStatus.php | 9 +- .../lib/Model/UpdateChildDomain.php | 7 +- .../api-v3-sdk/lib/Model/UpdateContact.php | 11 +- .../lib/Model/UpdateEmailCampaign.php | 147 +- .../Model/UpdateEmailCampaignRecipients.php | 7 +- .../lib/Model/UpdateEmailCampaignSender.php | 49 +- .../api-v3-sdk/lib/Model/UpdateList.php | 7 +- .../api-v3-sdk/lib/Model/UpdateSender.php | 7 +- .../lib/Model/UpdateSmsCampaign.php | 14 +- .../lib/Model/UpdateSmtpTemplate.php | 9 +- .../lib/Model/UpdateSmtpTemplateSender.php | 49 +- .../api-v3-sdk/lib/Model/UpdateWebhook.php | 11 +- .../api-v3-sdk/lib/ObjectSerializer.php | 15 +- .../vendor/symfony/polyfill-intl-idn/Idn.php | 283 +++ .../vendor/symfony/polyfill-intl-idn/LICENSE | 19 + .../symfony/polyfill-intl-idn/bootstrap.php | 61 + .../vendor/symfony/polyfill-mbstring/LICENSE | 19 + .../symfony/polyfill-mbstring/Mbstring.php | 847 ++++++++ .../Resources/unidata/lowerCase.php | 1096 +++++++++++ .../Resources/unidata/titleCaseRegexp.php | 5 + .../Resources/unidata/upperCase.php | 1104 +++++++++++ .../symfony/polyfill-mbstring/bootstrap.php | 64 + .../vendor/symfony/polyfill-php72/LICENSE | 19 + .../vendor/symfony/polyfill-php72/Php72.php | 216 +++ .../symfony/polyfill-php72/bootstrap.php | 36 + .../wp-mail-smtp/wp-mail-smtp-0.11.2.php | 759 -------- .../plugins/wp-mail-smtp/wp_mail_smtp.php | 86 +- 321 files changed, 18242 insertions(+), 5880 deletions(-) create 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/wpforms-pro.png create mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/logo-whitelabel.svg create mode 100644 wp-content/plugins/wp-mail-smtp/assets/images/providers/smtp-com.svg delete mode 100644 wp-content/plugins/wp-mail-smtp/assets/js/jquery.matchHeight.min.js rename wp-content/plugins/wp-mail-smtp/assets/js/{ => vendor}/jquery.matchHeight.js (96%) create mode 100644 wp-content/plugins/wp-mail-smtp/assets/js/vendor/jquery.matchHeight.min.js delete mode 100644 wp-content/plugins/wp-mail-smtp/loco.xml create mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/SMTPcom/Mailer.php create mode 100644 wp-content/plugins/wp-mail-smtp/src/Providers/SMTPcom/Options.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/GetQuotaProjectInterface.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/ProjectIdProviderInterface.php delete mode 100644 wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/Dockerfile create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Utils.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AbTestCampaignResult.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildAccountCreationStatus.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetDeviceBrowserStats.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSharedTemplateUrl.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetStatsByBrowser.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetStatsByDevice.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContacts.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsContacts.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsReason.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContent.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContentEvents.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsList.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsListTransactionalEmails.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactExportCustomContactFilter.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-intl-idn/Idn.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-intl-idn/LICENSE create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-intl-idn/bootstrap.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/LICENSE create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/Mbstring.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/bootstrap.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-php72/LICENSE create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-php72/Php72.php create mode 100644 wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-php72/bootstrap.php delete mode 100644 wp-content/plugins/wp-mail-smtp/wp-mail-smtp-0.11.2.php 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 index 9b905a4..4d1ce1f 100644 --- 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 @@ -1,3 +1,3 @@ -#wpcontent{padding-left:0 !important;position:relative}@media (max-width: 600px){#wpcontent{padding-top:46px}}@media (max-width: 600px){#wpbody{padding-top:0}}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:#333}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:#555;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 16px;font-size:18px;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-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 .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:'\f058';display:inline-block;font:normal normal normal 14px/1 FontAwesome;background-color:#fff;font-size:26px;border-radius:50%;padding:5px 6px;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:-20px;right:50%;margin-right:-18px;color:#3abc01}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.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}#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{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:15px 20px 15px 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}#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 label:hover .wp-mail-smtp-setting-toggle-switch{background-color:#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 input[type=checkbox]{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]: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(19px);-ms-transform:translateX(19px);transform:translateX(19px)}#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:#69c471;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:#aaa}#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;position:relative;display:inline-block;margin:0 5px 0 0;width:40px;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:14px;width:14px;left:3px;top:3px;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.suggest-new a.wp-mail-smtp-mailer-image{min-width:140px;display:table-cell;color:#777777;text-decoration:underline;vertical-align:middle;bottom:10px}#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.suggest-new .wp-mail-smtp-mailer-text{visibility:hidden}#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]{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{color:#400}#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]{background-color:#fff;border:1px solid #ddd;border-radius:3px;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]{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]{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{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{border-color:#bbb}#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{opacity:0.6}#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;font-size:1.1em}#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:25px;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{width:65px;text-align: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 img{display:block;margin:5px auto 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-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-bottom:20px;text-align:center}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-images img{width:380px;height:auto;margin-right:20px;border:5px solid #fff;border-radius:5px;box-shadow:0 0 10px 5px rgba(0,0,0,0.15)}#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-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-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-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} +#wpcontent{padding-left:0 !important;position:relative}@media (max-width: 600px){#wpcontent{padding-top:46px}}@media (max-width: 600px){#wpbody{padding-top:0}}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:#333}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:#555;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 16px;font-size:18px;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-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 .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:'\f058';display:inline-block;font:normal normal normal 14px/1 FontAwesome;background-color:#fff;font-size:26px;border-radius:50%;padding:5px 6px;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:-20px;right:50%;margin-right:-18px;color:#3abc01}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.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}#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{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:15px 20px 15px 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 label:hover .wp-mail-smtp-setting-toggle-switch{background-color:#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 input[type=checkbox]{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]: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(19px);-ms-transform:translateX(19px);transform:translateX(19px)}#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:#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:#aaa}#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;position:relative;display:inline-block;margin:0 5px 0 0;width:40px;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:14px;width:14px;left:3px;top:3px;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]{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{color:#400}#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]{background-color:#fff;border:1px solid #ddd;border-radius:3px;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]{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]{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{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{border-color:#bbb}#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{opacity:0.6}#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:25px;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{width:65px;text-align: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 img{display:block;margin:5px auto 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-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-bottom:20px;text-align:center}#wp-mail-smtp .wp-mail-smtp-page-upsell .wp-mail-smtp-page-upsell-images img{width:380px;height:auto;margin-right:20px;border:5px solid #fff;border-radius:5px;box-shadow:0 0 10px 5px rgba(0,0,0,0.15)}#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-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-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-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} /*# sourceMappingURL=smtp-admin.min.css.map */ 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 index db99774..0865544 100644 --- 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 @@ -1 +1 @@ - \ No newline at end of file + \ 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 index 4f874e4..9617560 100644 --- 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 @@ -1 +1 @@ - \ No newline at end of file + \ 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 index 8901e8f..3888163 100644 --- 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 @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/images/email/wp-mail-smtp-whitelabel.png b/wp-content/plugins/wp-mail-smtp/assets/images/email/wp-mail-smtp-whitelabel.png new file mode 100644 index 0000000000000000000000000000000000000000..88f48b0fd673c83beb9649d8b0a919c443772fef GIT binary patch literal 14735 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
j9h{xCqkUm^xItfi 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 ZA8AXWGA}*-|GTOHT52y \ 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 index b5a376c..8ac5386 100644 --- a/wp-content/plugins/wp-mail-smtp/assets/images/logo.svg +++ b/wp-content/plugins/wp-mail-smtp/assets/images/logo.svg @@ -1 +1 @@ - \ No newline at end of file + \ 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 index 0ee32541fc28535611e3ad3ec589b9b038d8a6ad..97a9772f052ba44c3e2f7ee9b5d464f8869eef84 100644 GIT binary patch literal 28288 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 literal 69843 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

X_y!bHu(OHjCVhDpg)X6 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 g_ZMXib*hq1x~n>!uRCFK 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 SFCQ;tC|OCRFV*74f&T?a$N&`p literal 90210 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

*eHX(Ei?vpE8-@84D4arlM>T43-ep*$9 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 a+xjNQMbWyn_$I(kI`=j7OtVYacmD#BEs2%@ 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 index a646b1a..b0ddb05 100644 --- a/wp-content/plugins/wp-mail-smtp/assets/images/menu-icon.svg +++ b/wp-content/plugins/wp-mail-smtp/assets/images/menu-icon.svg @@ -1 +1 @@ - \ No newline at end of file + \ 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 index 566c4da..57007f9 100644 --- a/wp-content/plugins/wp-mail-smtp/assets/images/providers/mailgun.svg +++ b/wp-content/plugins/wp-mail-smtp/assets/images/providers/mailgun.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file 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 index 415c3b4..12e9b3f 100644 --- a/wp-content/plugins/wp-mail-smtp/assets/images/providers/php.svg +++ b/wp-content/plugins/wp-mail-smtp/assets/images/providers/php.svg @@ -1 +1 @@ - \ No newline at end of file + \ 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 new file mode 100644 index 0000000..1034261 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/assets/images/providers/smtp-com.svg @@ -0,0 +1 @@ + \ 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 index acde0ef..86cb544 100644 --- a/wp-content/plugins/wp-mail-smtp/assets/images/providers/smtp.svg +++ b/wp-content/plugins/wp-mail-smtp/assets/images/providers/smtp.svg @@ -1 +1 @@ - \ No newline at end of file + \ 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 index de58b1f..427c842 100644 --- a/wp-content/plugins/wp-mail-smtp/assets/images/recommended.svg +++ b/wp-content/plugins/wp-mail-smtp/assets/images/recommended.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/js/jquery.matchHeight.min.js b/wp-content/plugins/wp-mail-smtp/assets/js/jquery.matchHeight.min.js deleted file mode 100644 index ed8b0a6..0000000 --- a/wp-content/plugins/wp-mail-smtp/assets/js/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 h(t){return parseFloat(t)||0}function c(t){var e=l(t),n=null,a=[];return e.each(function(){var t=l(this),e=t.offset().top-h(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+=h(t.css("border-top-width"))+h(t.css("border-bottom-width")),e+=h(t.css("padding-top"))+h(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)}),u._maintainScroll&&l(window).scrollTop(a/r*l("html").outerHeight(!0)),this},u._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){u._beforeUpdate&&u._beforeUpdate(t,u._groups),l.each(u._groups,function(){u._apply(this.elements,this.options)}),u._afterUpdate&&u._afterUpdate(t,u._groups)}u._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},u._throttle)):i(e)},l(u._applyDataApi);var t=l.fn.on?"on":"bind";l(window)[t]("load",function(t){u._update(!1,t)}),l(window)[t]("resize orientationchange",function(t){u._update(!0,t)})}); \ 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 index f1e12d4..a57c4af 100644 --- a/wp-content/plugins/wp-mail-smtp/assets/js/smtp-about.js +++ b/wp-content/plugins/wp-mail-smtp/assets/js/smtp-about.js @@ -1,4 +1,6 @@ -/* global WPMailSMTP, jQuery, wp_mail_smtp_about */ +/* eslint-disable no-prototype-builtins */ +/* global wp_mail_smtp_about */ +'use strict'; var WPMailSMTP = window.WPMailSMTP || {}; WPMailSMTP.Admin = WPMailSMTP.Admin || {}; @@ -8,25 +10,14 @@ WPMailSMTP.Admin = WPMailSMTP.Admin || {}; * * @since 1.5.0 */ -WPMailSMTP.Admin.About = WPMailSMTP.Admin.About || (function ( document, window, $ ) { - - 'use strict'; - - /** - * Private functions and properties. - * - * @since 1.5.0 - * - * @type {Object} - */ - var __private = {}; +WPMailSMTP.Admin.About = WPMailSMTP.Admin.About || ( function( document, window, $ ) { /** * Public functions and properties. * * @since 1.5.0 * - * @type {Object} + * @type {object} */ var app = { @@ -35,7 +26,7 @@ WPMailSMTP.Admin.About = WPMailSMTP.Admin.About || (function ( document, window, * * @since 1.5.0 */ - init: function () { + init: function() { // Do that when DOM is ready. $( document ).ready( app.ready ); @@ -46,7 +37,7 @@ WPMailSMTP.Admin.About = WPMailSMTP.Admin.About || (function ( document, window, * * @since 1.5.0 */ - ready: function () { + ready: function() { app.pageHolder = $( '.wp-mail-smtp-page-about' ); @@ -60,12 +51,12 @@ WPMailSMTP.Admin.About = WPMailSMTP.Admin.About || (function ( document, window, * * @since 1.5.0 */ - bindActions: function () { + bindActions: function() { /* * Make plugins description the same height. */ - jQuery('.wp-mail-smtp-admin-about-plugins .plugin-item .details').matchHeight(); + jQuery( '.wp-mail-smtp-admin-about-plugins .plugin-item .details' ).matchHeight(); /* * Install/Active the plugins. @@ -85,27 +76,26 @@ WPMailSMTP.Admin.About = WPMailSMTP.Admin.About || (function ( document, window, cssClass, statusText, buttonText, - errorText, 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; - errorText = wp_mail_smtp_about.plugin_activate; } 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; - errorText = wp_mail_smtp_about.plugin_activate; } else { return; @@ -120,10 +110,10 @@ WPMailSMTP.Admin.About = WPMailSMTP.Admin.About || (function ( document, window, }; $.post( wp_mail_smtp_about.ajax_url, data, function( res ) { - var is_install_successful; + var isInstallSuccessful; if ( res.success ) { - is_install_successful = true; + isInstallSuccessful = true; if ( 'about_plugin_install' === task ) { $btn.attr( 'data-plugin', res.data.basename ); successText = res.data.msg; @@ -135,18 +125,18 @@ WPMailSMTP.Admin.About = WPMailSMTP.Admin.About || (function ( document, window, } else { successText = res.data; } - $plugin.find( '.actions' ).append( '

' ); + $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 ); + .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 { - is_install_successful = false; + isInstallSuccessful = false; if ( res.hasOwnProperty( 'data' ) && @@ -154,10 +144,11 @@ WPMailSMTP.Admin.About = WPMailSMTP.Admin.About || (function ( document, window, 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 { + } else { + // Generic error. $plugin.find( '.actions' ).append( '
' + res.data + '
' ); } @@ -165,26 +156,26 @@ WPMailSMTP.Admin.About = WPMailSMTP.Admin.About || (function ( document, window, $btn.html( wp_mail_smtp_about.plugin_download_btn ); } - if ( ! is_install_successful ) { + if ( ! isInstallSuccessful ) { $btn.removeClass( 'disabled' ); } $btn.removeClass( 'loading' ); // Automatically clear plugin messages after 3 seconds. - setTimeout( function () { + setTimeout( function() { $( '.plugin-item .msg' ).remove(); }, 3000 ); - }).fail( function( xhr ) { + } ).fail( function( xhr ) { console.log( xhr.responseText ); - }); - }); + } ); + } ); } }; // Provide access to public functions/properties. return app; -})( document, window, jQuery ); +}( 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 index 611e373..797a3a5 100644 --- 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 @@ -1 +1 @@ -var WPMailSMTP=window.WPMailSMTP||{};WPMailSMTP.Admin=WPMailSMTP.Admin||{},WPMailSMTP.Admin.About=WPMailSMTP.Admin.About||function(a,t,p){"use strict";var i={init:function(){p(a).ready(i.ready)},ready:function(){i.pageHolder=p(".wp-mail-smtp-page-about"),i.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,u=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,wp_mail_smtp_about.plugin_activate;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,wp_mail_smtp_about.plugin_activate}var d={action:"wp_mail_smtp_ajax",task:s,nonce:wp_mail_smtp_about.nonce,plugin:t};p.post(wp_mail_smtp_about.ajax_url,d,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,u.find(".actions").append('
'+o+"
"),u.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?u.find(".actions").append('
'+wp_mail_smtp_about.plugin_install_error+"
"):u.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 i}(document,window,jQuery),WPMailSMTP.Admin.About.init(); \ No newline at end of file +"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 index b9ecb0a..71d2abd 100644 --- a/wp-content/plugins/wp-mail-smtp/assets/js/smtp-admin.js +++ b/wp-content/plugins/wp-mail-smtp/assets/js/smtp-admin.js @@ -1,4 +1,6 @@ -/* globals jQuery, wp_mail_smtp */ +/* globals wp_mail_smtp, ajaxurl */ +'use strict'; + var WPMailSMTP = window.WPMailSMTP || {}; WPMailSMTP.Admin = WPMailSMTP.Admin || {}; @@ -7,32 +9,22 @@ WPMailSMTP.Admin = WPMailSMTP.Admin || {}; * * @since 1.6.0 */ -WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || (function ( document, window, $ ) { - - 'use strict'; - - /** - * Private functions and properties. - * - * @since 1.6.0 - * - * @type {Object} - */ - var __private = {}; +WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || ( function( document, window, $ ) { /** * Public functions and properties. * * @since 1.6.0 * - * @type {Object} + * @type {object} */ var app = { + /** * State attribute showing if one of the plugin settings * changed and was not yet saved. * - * @since {VERSION} + * @since 1.9.0 * * @type {boolean} */ @@ -43,7 +35,7 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || (function ( document, w * * @since 1.6.0 */ - init: function () { + init: function() { // Do that when DOM is ready. $( document ).ready( app.ready ); @@ -54,7 +46,7 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || (function ( document, w * * @since 1.6.0 */ - ready: function () { + ready: function() { app.pageHolder = $( '.wp-mail-smtp-tab-settings' ); @@ -69,17 +61,18 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || (function ( document, w * * @since 1.6.0 */ - bindActions: function () { + bindActions: function() { // Mailer selection. - $( '.wp-mail-smtp-mailer-image', app.pageHolder ).click( function () { + $( '.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 () { + $( '.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 ); @@ -90,6 +83,7 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || (function ( document, w // Deselect the current mailer. $( '.wp-mail-smtp-mailer', app.pageHolder ).removeClass( 'active' ); + // Select the correct one. $( this ).parents( '.wp-mail-smtp-mailer' ).addClass( 'active' ); @@ -101,23 +95,23 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || (function ( document, w app.mailers.smtp.bindActions(); // Dismiss Pro banner at the bottom of the page. - $( '#wp-mail-smtp-pro-banner-dismiss', app.pageHolder ).on( 'click', function () { + $( '#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' ); - } ); + 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' ); + } ); } ); - // Dismis educational notices for certain mailers. - $( '.js-wp-mail-smtp-mailer-notice-dismiss', app.pageHolder ).on( 'click', function ( e ) { + // Dissmis educational notices for certain mailers. + $( '.js-wp-mail-smtp-mailer-notice-dismiss', app.pageHolder ).on( 'click', function( e ) { e.preventDefault(); var $btn = $( this ), @@ -128,28 +122,28 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || (function ( document, w } $.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' ); - } ); - } ); + 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 ) { + $( '#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' ); @@ -158,12 +152,12 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || (function ( document, w } ); // Remove mailer connection. - $( '.js-wp-mail-smtp-provider-remove', app.pageHolder ).on( 'click', function () { + $( '.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 ) { + $( '.wp-mail-smtp-setting-copy', app.pageHolder ).click( function( e ) { e.preventDefault(); var target = $( '#' + $( this ).data( 'source_id' ) ).get( 0 ); @@ -177,7 +171,7 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || (function ( document, w }, education: { - upgradeMailer: function ( $input ) { + upgradeMailer: function( $input ) { $.alert( { backgroundDismiss: true, @@ -192,7 +186,7 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || (function ( document, w icon: '">
' + wp_mail_smtp.education.upgrade_icon_lock + '' + wp_mail_smtp.education.upgrade_bonus + wp_mail_smtp.education.upgrade_doc + '' ); }, buttons: { @@ -200,7 +194,7 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || (function ( document, w text: wp_mail_smtp.education.upgrade_button, btnClass: 'btn-confirm', keys: [ 'enter' ], - action: function () { + action: function() { window.open( wp_mail_smtp.education.upgrade_url + '&utm_content=' + encodeURI( $input.val() ), '_blank' ); } } @@ -216,15 +210,15 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || (function ( document, w */ mailers: { smtp: { - bindActions: function () { + bindActions: function() { // Hide SMTP-specific user/pass when Auth disabled. - $( '#wp-mail-smtp-setting-smtp-auth' ).change( function () { + $( '#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 () { + $( '#wp-mail-smtp-setting-row-smtp-encryption input' ).change( function() { var $input = $( this ), $smtpPort = $( '#wp-mail-smtp-setting-smtp-port', app.pageHolder ); @@ -232,12 +226,10 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || (function ( document, w if ( 'tls' === $input.val() ) { $smtpPort.val( '587' ); $( '#wp-mail-smtp-setting-row-smtp-autotls' ).addClass( 'inactive' ); - } - else if ( 'ssl' === $input.val() ) { + } else if ( 'ssl' === $input.val() ) { $smtpPort.val( '465' ); $( '#wp-mail-smtp-setting-row-smtp-autotls' ).removeClass( 'inactive' ); - } - else { + } else { $smtpPort.val( '25' ); $( '#wp-mail-smtp-setting-row-smtp-autotls' ).removeClass( 'inactive' ); } @@ -249,26 +241,26 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || (function ( document, w /** * Exit notice JS code when plugin settings are not saved. * - * @since {VERSION} + * @since 1.9.0 */ - triggerExitNotice: function () { + 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 () { + $( 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 )', $settingPages ).on( 'change', function () { + $( ':input:not( #wp-mail-smtp-setting-license-key )', $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 () { + $( 'form', $settingPages ).on( 'submit', function() { app.pluginSettingsChanged = false; } ); } @@ -276,7 +268,7 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || (function ( document, w // Provide access to public functions/properties. return app; -})( document, window, jQuery ); +}( document, window, jQuery ) ); // Initialize. WPMailSMTP.Admin.Settings.init(); diff --git a/wp-content/plugins/wp-mail-smtp/assets/js/smtp-admin.min.js b/wp-content/plugins/wp-mail-smtp/assets/js/smtp-admin.min.js index 83979f4..747f550 100644 --- a/wp-content/plugins/wp-mail-smtp/assets/js/smtp-admin.min.js +++ b/wp-content/plugins/wp-mail-smtp/assets/js/smtp-admin.min.js @@ -1 +1 @@ -var WPMailSMTP=window.WPMailSMTP||{};WPMailSMTP.Admin=WPMailSMTP.Admin||{},WPMailSMTP.Admin.Settings=WPMailSMTP.Admin.Settings||function(i,e,a){"use strict";var n={pluginSettingsChanged:!1,init:function(){a(i).ready(n.ready)},ready:function(){n.pageHolder=a(".wp-mail-smtp-tab-settings"),a("#screen-meta-links, #screen-meta").prependTo("#wp-mail-smtp-header-temp").show(),n.bindActions()},bindActions:function(){a(".wp-mail-smtp-mailer-image",n.pageHolder).click(function(){a(this).parents(".wp-mail-smtp-mailer").find("input").trigger("click")}),a(".wp-mail-smtp-mailer input",n.pageHolder).click(function(){var t=a(this);if(t.prop("disabled"))return t.hasClass("educate")&&n.education.upgradeMailer(t),!1;a(".wp-mail-smtp-mailer",n.pageHolder).removeClass("active"),a(this).parents(".wp-mail-smtp-mailer").addClass("active"),a(".wp-mail-smtp-mailer-option",n.pageHolder).addClass("hidden").removeClass("active"),a(".wp-mail-smtp-mailer-option-"+a(this).val(),n.pageHolder).addClass("active").removeClass("hidden")}),n.mailers.smtp.bindActions(),a("#wp-mail-smtp-pro-banner-dismiss",n.pageHolder).on("click",function(){a.ajax({url:ajaxurl,dataType:"json",type:"POST",data:{action:"wp_mail_smtp_ajax",task:"pro_banner_dismiss"}}).always(function(){a("#wp-mail-smtp-pro-banner",n.pageHolder).fadeOut("fast")})}),a(".js-wp-mail-smtp-mailer-notice-dismiss",n.pageHolder).on("click",function(t){t.preventDefault();var i=a(this),e=i.parents(".inline-notice");if(i.hasClass("disabled"))return!1;a.ajax({url:ajaxurl,dataType:"json",type:"POST",data:{action:"wp_mail_smtp_ajax",task:"notice_dismiss",notice:e.data("notice"),mailer:e.data("mailer")},beforeSend:function(){i.addClass("disabled")}}).always(function(){e.fadeOut("fast",function(){i.removeClass("disabled")})})}),a("#wp-mail-smtp-debug .error-log-toggle").on("click",function(t){t.preventDefault(),a("#wp-mail-smtp-debug .error-log-toggle").find(".dashicons").toggleClass("dashicons-arrow-right-alt2 dashicons-arrow-down-alt2"),a("#wp-mail-smtp-debug .error-log").slideToggle(),a("#wp-mail-smtp-debug .error-log-note").toggle()}),a(".js-wp-mail-smtp-provider-remove",n.pageHolder).on("click",function(){return confirm(wp_mail_smtp.text_provider_remove)}),a(".wp-mail-smtp-setting-copy",n.pageHolder).click(function(t){t.preventDefault(),a("#"+a(this).data("source_id")).get(0).select(),i.execCommand("Copy")}),n.triggerExitNotice()},education:{upgradeMailer:function(t){a.alert({backgroundDismiss:!0,escapeKey:!0,animationBounce:1,theme:"modern",animateFromElement:!1,draggable:!1,closeIcon:!0,useBootstrap:!1,title:wp_mail_smtp.education.upgrade_title.replace(/%name%/g,t.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(){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),i=a("#wp-mail-smtp-setting-smtp-port",n.pageHolder);"tls"===t.val()?(i.val("587"),a("#wp-mail-smtp-setting-row-smtp-autotls").addClass("inactive")):("ssl"===t.val()?i.val("465"):i.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(n.pluginSettingsChanged)return wp_mail_smtp.text_settings_not_saved}),a(":input:not( #wp-mail-smtp-setting-license-key )",t).on("change",function(){n.pluginSettingsChanged=!0}),a("form",t).on("submit",function(){n.pluginSettingsChanged=!1})}};return n}(document,window,jQuery),WPMailSMTP.Admin.Settings.init(); \ No newline at end of file +"use strict";var WPMailSMTP=window.WPMailSMTP||{};WPMailSMTP.Admin=WPMailSMTP.Admin||{},WPMailSMTP.Admin.Settings=WPMailSMTP.Admin.Settings||function(i,e,a){var n={pluginSettingsChanged:!1,init:function(){a(i).ready(n.ready)},ready:function(){n.pageHolder=a(".wp-mail-smtp-tab-settings"),a("#screen-meta-links, #screen-meta").prependTo("#wp-mail-smtp-header-temp").show(),n.bindActions()},bindActions:function(){a(".wp-mail-smtp-mailer-image",n.pageHolder).click(function(){a(this).parents(".wp-mail-smtp-mailer").find("input").trigger("click")}),a(".wp-mail-smtp-mailer input",n.pageHolder).click(function(){var t=a(this);if(t.prop("disabled"))return t.hasClass("educate")&&n.education.upgradeMailer(t),!1;a(".wp-mail-smtp-mailer",n.pageHolder).removeClass("active"),a(this).parents(".wp-mail-smtp-mailer").addClass("active"),a(".wp-mail-smtp-mailer-option",n.pageHolder).addClass("hidden").removeClass("active"),a(".wp-mail-smtp-mailer-option-"+a(this).val(),n.pageHolder).addClass("active").removeClass("hidden")}),n.mailers.smtp.bindActions(),a("#wp-mail-smtp-pro-banner-dismiss",n.pageHolder).on("click",function(){a.ajax({url:ajaxurl,dataType:"json",type:"POST",data:{action:"wp_mail_smtp_ajax",task:"pro_banner_dismiss"}}).always(function(){a("#wp-mail-smtp-pro-banner",n.pageHolder).fadeOut("fast")})}),a(".js-wp-mail-smtp-mailer-notice-dismiss",n.pageHolder).on("click",function(t){t.preventDefault();var i=a(this),e=i.parents(".inline-notice");if(i.hasClass("disabled"))return!1;a.ajax({url:ajaxurl,dataType:"json",type:"POST",data:{action:"wp_mail_smtp_ajax",task:"notice_dismiss",notice:e.data("notice"),mailer:e.data("mailer")},beforeSend:function(){i.addClass("disabled")}}).always(function(){e.fadeOut("fast",function(){i.removeClass("disabled")})})}),a("#wp-mail-smtp-debug .error-log-toggle").on("click",function(t){t.preventDefault(),a("#wp-mail-smtp-debug .error-log-toggle").find(".dashicons").toggleClass("dashicons-arrow-right-alt2 dashicons-arrow-down-alt2"),a("#wp-mail-smtp-debug .error-log").slideToggle(),a("#wp-mail-smtp-debug .error-log-note").toggle()}),a(".js-wp-mail-smtp-provider-remove",n.pageHolder).on("click",function(){return confirm(wp_mail_smtp.text_provider_remove)}),a(".wp-mail-smtp-setting-copy",n.pageHolder).click(function(t){t.preventDefault(),a("#"+a(this).data("source_id")).get(0).select(),i.execCommand("Copy")}),n.triggerExitNotice()},education:{upgradeMailer:function(t){a.alert({backgroundDismiss:!0,escapeKey:!0,animationBounce:1,theme:"modern",animateFromElement:!1,draggable:!1,closeIcon:!0,useBootstrap:!1,title:wp_mail_smtp.education.upgrade_title.replace(/%name%/g,t.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(){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),i=a("#wp-mail-smtp-setting-smtp-port",n.pageHolder);"tls"===t.val()?(i.val("587"),a("#wp-mail-smtp-setting-row-smtp-autotls").addClass("inactive")):("ssl"===t.val()?i.val("465"):i.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(n.pluginSettingsChanged)return wp_mail_smtp.text_settings_not_saved}),a(":input:not( #wp-mail-smtp-setting-license-key )",t).on("change",function(){n.pluginSettingsChanged=!0}),a("form",t).on("submit",function(){n.pluginSettingsChanged=!1})}};return n}(document,window,jQuery),WPMailSMTP.Admin.Settings.init(); \ No newline at end of file diff --git a/wp-content/plugins/wp-mail-smtp/assets/js/jquery.matchHeight.js b/wp-content/plugins/wp-mail-smtp/assets/js/vendor/jquery.matchHeight.js similarity index 96% rename from wp-content/plugins/wp-mail-smtp/assets/js/jquery.matchHeight.js rename to wp-content/plugins/wp-mail-smtp/assets/js/vendor/jquery.matchHeight.js index 993aa94..48925b5 100644 --- a/wp-content/plugins/wp-mail-smtp/assets/js/jquery.matchHeight.js +++ b/wp-content/plugins/wp-mail-smtp/assets/js/vendor/jquery.matchHeight.js @@ -1,388 +1,388 @@ -/** -* 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); - }); - -}); +/** +* 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 new file mode 100644 index 0000000..fc942dd --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/assets/js/vendor/jquery.matchHeight.min.js @@ -0,0 +1 @@ +!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 index 4fb462c..e1c8675 100644 --- 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 @@ -1,13 +1,13 @@ msgid "" msgstr "" -"Project-Id-Version: WP Mail SMTP 1.9.0\n" +"Project-Id-Version: WP Mail SMTP 2.0.0\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-03-23T16:26:08+02:00\n" +"POT-Creation-Date: 2020-04-27T12:51:41+03: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" @@ -61,106 +61,115 @@ msgstr "" #: src/Admin/Area.php:197 #: src/Admin/Area.php:198 #: src/SiteHealth.php:40 -#: wp-mail-smtp-0.11.2.php:582 msgid "WP Mail SMTP" msgstr "" #: src/Admin/Area.php:208 #: src/Admin/Area.php:209 -#: src/Admin/Area.php:795 -#: wp-mail-smtp-0.11.2.php:688 +#: src/Admin/Area.php:802 msgid "Settings" msgstr "" #: src/Admin/Area.php:216 #: src/Admin/Area.php:217 -#: src/Admin/Area.php:796 #: src/Admin/Pages/About.php:627 #: src/Admin/Pages/Logs.php:40 #: src/Admin/Pages/LogsTab.php:31 msgid "Email Log" msgstr "" -#: src/Admin/Area.php:224 -#: src/Admin/Area.php:225 +#: src/Admin/Area.php:226 +#: src/Admin/Area.php:227 #: src/Admin/Pages/About.php:105 msgid "About Us" msgstr "" -#: src/Admin/Area.php:267 +#: src/Admin/Area.php:270 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:268 +#: src/Admin/Area.php:271 msgid "Changes that you made to the settings are not saved!" msgstr "" -#: src/Admin/Area.php:271 +#: src/Admin/Area.php:274 msgid "%name% is a PRO Feature" msgstr "" -#: src/Admin/Area.php:272 +#: src/Admin/Area.php:275 msgid "Upgrade to Pro" msgstr "" -#: src/Admin/Area.php:276 -msgid "Bonus: WP Mail SMTP users get 20% off regular price,
applied at checkout." +#: src/Admin/Area.php:279 +msgid "Bonus: WP Mail SMTP users get $50 off regular price,
applied at checkout." msgstr "" -#: src/Admin/Area.php:285 +#: src/Admin/Area.php:288 msgid "Already purchased?" msgstr "" -#: src/Admin/Area.php:352 -#: src/Admin/Area.php:359 +#: src/Admin/Area.php:355 +#: src/Admin/Area.php:362 #: src/Admin/Pages/About.php:308 msgid "Activate" msgstr "" -#: src/Admin/Area.php:353 +#: src/Admin/Area.php:356 #: src/Admin/Pages/About.php:300 msgid "Activated" msgstr "" -#: src/Admin/Area.php:354 +#: src/Admin/Area.php:357 #: src/Admin/Pages/About.php:297 msgid "Active" msgstr "" -#: src/Admin/Area.php:355 +#: src/Admin/Area.php:358 #: src/Admin/Pages/About.php:305 msgid "Inactive" msgstr "" -#: src/Admin/Area.php:356 +#: src/Admin/Area.php:359 msgid "Processing..." msgstr "" -#: src/Admin/Area.php:357 +#: src/Admin/Area.php:360 msgid "Could not install a plugin. Please download from WordPress.org and install manually." msgstr "" -#: src/Admin/Area.php:358 +#: src/Admin/Area.php:361 msgid "Install and Activate" msgstr "" -#: src/Admin/Area.php:360 +#: src/Admin/Area.php:363 msgid "Download" msgstr "" #. translators: %1$s - WP.org link; %2$s - same WP.org link. -#: src/Admin/Area.php:420 +#: src/Admin/Area.php:423 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:740 +#: src/Admin/Area.php:743 msgid "WP Mail SMTP Pro related message was successfully dismissed." msgstr "" -#: src/Admin/Area.php:759 +#: src/Admin/Area.php:762 msgid "Educational notice for this mailer was successfully dismissed." msgstr "" +#: src/Admin/Area.php:801 +msgid "Go to WP Mail SMTP Settings page" +msgstr "" + +#: src/Admin/Area.php:808 +msgid "Go to WP Mail SMTP Lite vs Pro comparison page" +msgstr "" + +#: src/Admin/Area.php:809 +msgid "Premium Support" +msgstr "" + #: src/Admin/PageAbstract.php:81 msgid "Save Settings" msgstr "" @@ -297,7 +306,7 @@ msgid "Get WP Mail SMTP Pro Today and Unlock all of these Powerful Features" msgstr "" #: src/Admin/Pages/About.php:601 -msgid "Bonus: WP Mail SMTP Lite users get 20% off regular price, automatically applied at checkout." +msgid "Bonus: WP Mail SMTP Lite users get $50 off regular price, automatically applied at checkout." msgstr "" #: src/Admin/Pages/About.php:628 @@ -451,7 +460,6 @@ 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. -#. translators: %1$s - constant name, %2$s - file name. #: src/Admin/Pages/MiscTab.php:86 #: src/Providers/OptionsAbstract.php:468 msgid "The value of this field was set using a constant %1$s most likely inside %2$s of your WordPress installation." @@ -496,7 +504,7 @@ msgid "Check this if you would like to remove ALL WP Mail SMTP data upon plugin msgstr "" #: src/Admin/Pages/MiscTab.php:215 -#: src/Admin/Pages/SettingsTab.php:542 +#: src/Admin/Pages/SettingsTab.php:540 msgid "Settings were successfully saved." msgstr "" @@ -521,7 +529,6 @@ msgid "Mail" msgstr "" #: src/Admin/Pages/SettingsTab.php:92 -#: wp-mail-smtp-0.11.2.php:246 msgid "From Email" msgstr "" @@ -550,7 +557,6 @@ msgid "If checked, the From Email setting above will be used for all emails, ign msgstr "" #: src/Admin/Pages/SettingsTab.php:138 -#: wp-mail-smtp-0.11.2.php:265 msgid "From Name" msgstr "" @@ -571,18 +577,14 @@ msgid "If checked, the From Name setting above will be used for all emails, igno msgstr "" #: src/Admin/Pages/SettingsTab.php:179 -#: wp-mail-smtp-0.11.2.php:321 -#: wp-mail-smtp-0.11.2.php:326 msgid "Return Path" msgstr "" #: src/Admin/Pages/SettingsTab.php:188 -#: wp-mail-smtp-0.11.2.php:331 msgid "Set the return-path to match the From Email" msgstr "" #: src/Admin/Pages/SettingsTab.php:192 -#: wp-mail-smtp-0.11.2.php:335 msgid "Return Path indicates where non-delivery receipts - or bounce messages - are to be sent." msgstr "" @@ -591,104 +593,105 @@ msgid "If unchecked, bounce messages may be lost. Some providers may ignore this msgstr "" #: src/Admin/Pages/SettingsTab.php:201 -#: wp-mail-smtp-0.11.2.php:280 -#: wp-mail-smtp-0.11.2.php:285 msgid "Mailer" msgstr "" -#: src/Admin/Pages/SettingsTab.php:241 -#: src/Admin/Pages/SettingsTab.php:245 +#: src/Admin/Pages/SettingsTab.php:242 +msgid "Don't see what you're looking for?" +msgstr "" + +#: src/Admin/Pages/SettingsTab.php:244 msgid "Suggest a Mailer" msgstr "" -#: src/Admin/Pages/SettingsTab.php:274 +#: src/Admin/Pages/SettingsTab.php:272 msgid "Dismiss this notice" msgstr "" -#: src/Admin/Pages/SettingsTab.php:316 +#: src/Admin/Pages/SettingsTab.php:314 msgid "You're using WP Mail SMTP Lite - no license needed. Enjoy!" msgstr "" #. translators: %s - WPMailSMTP.com upgrade URL. -#: src/Admin/Pages/SettingsTab.php:322 +#: src/Admin/Pages/SettingsTab.php:320 msgid "To unlock more features consider upgrading to PRO." msgstr "" -#: src/Admin/Pages/SettingsTab.php:341 -msgid "As a valued WP Mail SMTP Lite user you receive 20% off, automatically applied at checkout!" +#: src/Admin/Pages/SettingsTab.php:339 +msgid "As a valued WP Mail SMTP Lite user you receive $50 off, automatically applied at checkout!" msgstr "" -#: src/Admin/Pages/SettingsTab.php:402 +#: src/Admin/Pages/SettingsTab.php:400 msgid "Get WP Mail SMTP Pro and Unlock all the Powerful Features" msgstr "" -#: src/Admin/Pages/SettingsTab.php:406 +#: src/Admin/Pages/SettingsTab.php:404 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:410 +#: src/Admin/Pages/SettingsTab.php:408 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:413 +#: src/Admin/Pages/SettingsTab.php:411 msgid "Pro Features:" msgstr "" -#: src/Admin/Pages/SettingsTab.php:417 +#: src/Admin/Pages/SettingsTab.php:415 msgid "Manage Notifications - control which emails your site sends" msgstr "" -#: src/Admin/Pages/SettingsTab.php:418 +#: src/Admin/Pages/SettingsTab.php:416 msgid "Email Logging - keep track of every email sent from your site" msgstr "" -#: src/Admin/Pages/SettingsTab.php:419 +#: src/Admin/Pages/SettingsTab.php:417 msgid "Office 365 - send emails using your Office 365 account" msgstr "" -#: src/Admin/Pages/SettingsTab.php:420 +#: src/Admin/Pages/SettingsTab.php:418 msgid "Amazon SES - harness the power of AWS" msgstr "" -#: src/Admin/Pages/SettingsTab.php:421 +#: src/Admin/Pages/SettingsTab.php:419 msgid "Outlook.com - send emails using your Outlook.com account" msgstr "" -#: src/Admin/Pages/SettingsTab.php:422 +#: src/Admin/Pages/SettingsTab.php:420 msgid "Access to our world class support team" msgstr "" -#: src/Admin/Pages/SettingsTab.php:425 +#: src/Admin/Pages/SettingsTab.php:423 msgid "White Glove Setup - sit back and relax while we handle everything for you" msgstr "" -#: src/Admin/Pages/SettingsTab.php:426 +#: src/Admin/Pages/SettingsTab.php:424 msgid "Install WP Mail SMTP Pro plugin" msgstr "" -#: src/Admin/Pages/SettingsTab.php:427 +#: src/Admin/Pages/SettingsTab.php:425 msgid "Set up domain name verification (DNS)" msgstr "" -#: src/Admin/Pages/SettingsTab.php:428 +#: src/Admin/Pages/SettingsTab.php:426 msgid "Configure Mailgun service" msgstr "" -#: src/Admin/Pages/SettingsTab.php:429 +#: src/Admin/Pages/SettingsTab.php:427 msgid "Set up WP Mail SMTP Pro plugin" msgstr "" -#: src/Admin/Pages/SettingsTab.php:430 +#: src/Admin/Pages/SettingsTab.php:428 msgid "Test and verify email delivery" msgstr "" #. translators: %s - WPMailSMTP.com URL. -#: src/Admin/Pages/SettingsTab.php:438 +#: src/Admin/Pages/SettingsTab.php:436 msgid "Get WP Mail SMTP Pro Today and Unlock all the Powerful Features »" msgstr "" -#: src/Admin/Pages/SettingsTab.php:456 -msgid "Bonus: WP Mail SMTP users get 20% off regular price, automatically applied at checkout." +#: src/Admin/Pages/SettingsTab.php:454 +msgid "Bonus: WP Mail SMTP users get $50 off regular price, automatically applied at checkout." msgstr "" #: src/Admin/Pages/TestTab.php:37 @@ -696,7 +699,6 @@ msgid "Email Test" msgstr "" #: src/Admin/Pages/TestTab.php:59 -#: wp-mail-smtp-0.11.2.php:528 msgid "Send a Test Email" msgstr "" @@ -1086,7 +1088,7 @@ msgstr "" msgid "Make sure that the used Client ID/Secret correspond to a proper project that has Gmail API enabled." msgstr "" -#. translators: %s - WPForms.com tutorial URL. +#. translators: %s - Gmail documentation URL. #: src/Admin/Pages/TestTab.php:897 msgid "Please follow our Gmail tutorial to be sure that all the correct project and data is applied." msgstr "" @@ -1158,7 +1160,7 @@ msgid "Additionally, you can take advantage of our White Glove Setup. Sit back a msgstr "" #: src/Admin/Pages/TestTab.php:1066 -msgid "As a valued WP Mail SMTP user, you will get 20% off regular pricing, automatically applied at checkout!" +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. @@ -1179,46 +1181,36 @@ msgstr "" msgid "Heads up! WP Mail SMTP has detected %1$s is activated. Please deactivate %2$s to prevent conflicts." msgstr "" -#. translators: %1$s - WPBeginner URL for recommended WordPress hosting. -#: src/Core.php:106 -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 - WPForms.com docs URL with more details. -#: src/Core.php:123 -msgid "Note: WP Mail SMTP plugin is disabled on your site until you fix the issue. Read more for additional information." -msgstr "" - -#. translators: %1$s - WP Mail SMTP plugin name; %2$s - WPForms.com URL to a related doc. -#: src/Core.php:399 +#. translators: %1$s - WP Mail SMTP plugin name; %2$s - WPMailSMTP.com URL to a related doc. +#: src/Core.php:342 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:413 -msgid "Please Note: Support for PHP 5.3-5.5 will be discontinued in 2020. After this, if no further action is taken, WP Mail SMTP functionality will be disabled." +#: src/Core.php:356 +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:447 +#: src/Core.php:390 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:458 +#: src/Core.php:401 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:469 +#: src/Core.php:412 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:501 +#: src/Core.php:444 msgid "EMAIL DELIVERY ERROR: the plugin %s logged this error during the last time it tried to send an email:" msgstr "" -#: src/Core.php:531 +#: src/Core.php:474 msgid "Consider running an email test after fixing it." msgstr "" @@ -1314,7 +1306,7 @@ 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, then $0.80 per 1000 emails.

Read our %3$sMailgun documentation%4$s to learn how to configure Mailgun and improve your email deliverability." +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 @@ -1369,15 +1361,10 @@ msgid "More information on Mailgun msgstr "" #: src/Providers/OptionsAbstract.php:186 -#: wp-mail-smtp-0.11.2.php:355 msgid "SMTP Host" msgstr "" #: src/Providers/OptionsAbstract.php:200 -#: wp-mail-smtp-0.11.2.php:370 -#: wp-mail-smtp-0.11.2.php:374 -#: wp-mail-smtp-0.11.2.php:489 -#: wp-mail-smtp-0.11.2.php:495 msgid "Encryption" msgstr "" @@ -1398,8 +1385,6 @@ msgid "For most servers TLS is the recommended option. If your SMTP provider off msgstr "" #: src/Providers/OptionsAbstract.php:240 -#: wp-mail-smtp-0.11.2.php:363 -#: wp-mail-smtp-0.11.2.php:481 msgid "SMTP Port" msgstr "" @@ -1412,8 +1397,6 @@ msgid "By default TLS encryption is automatically used if the server supports it msgstr "" #: src/Providers/OptionsAbstract.php:276 -#: wp-mail-smtp-0.11.2.php:397 -#: wp-mail-smtp-0.11.2.php:401 msgid "Authentication" msgstr "" @@ -1477,7 +1460,7 @@ msgstr "" #. translators: %1$s - URL to pepipost.com site. #: src/Providers/PepipostAPI/Options.php:31 -msgid "Pepipost is a recommended 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, then 100 emails per day." +msgid "Pepipost is a recommended 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. @@ -1486,7 +1469,7 @@ msgid "Read our P msgstr "" #: src/Providers/PepipostAPI/Options.php:53 -msgid "Get Pepipost Now (Free)" +msgid "Get Started with Pepipost" msgstr "" #: src/Providers/PepipostAPI/Options.php:61 @@ -1495,14 +1478,14 @@ msgstr "" #: src/Providers/PepipostAPI/Options.php:88 #: src/Providers/Sendgrid/Options.php:57 -#: src/Providers/Sendinblue/Options.php:88 +#: src/Providers/Sendinblue/Options.php:76 +#: src/Providers/SMTPcom/Options.php:83 msgid "API Key" msgstr "" -#. translators: %s - pepipost.com link to get an API Key. -#. translators: %s - sendinblue.com link to get an API Key. +#. translators: %s - link to get an API Key. #: src/Providers/PepipostAPI/Options.php:107 -#: src/Providers/Sendinblue/Options.php:107 +#: src/Providers/Sendinblue/Options.php:95 msgid "Follow this link to get an API Key: %s." msgstr "" @@ -1533,25 +1516,21 @@ msgstr "" 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:31 -msgid "Sendinblue is a 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:34 -msgid "Read our Sendinblue documentation to learn how to configure Sendinblue and improve your email deliverability." -msgstr "" - -#: src/Providers/Sendinblue/Options.php:53 -msgid "Get Sendinblue Now (Free)" -msgstr "" - -#: src/Providers/Sendinblue/Options.php:61 +#: src/Providers/Sendinblue/Options.php:33 msgid "Sendinblue" msgstr "" -#: src/Providers/Sendinblue/Options.php:109 +#. translators: %1$s - URL to sendinblue.com site. +#: src/Providers/Sendinblue/Options.php:37 +msgid "Sendinblue serves 80,000+ growing companies around the world and sends over 30 million emails each day. They provide users 300 free emails per day." +msgstr "" + +#. translators: %2$s - URL to wpmailsmtp.com doc. +#: src/Providers/Sendinblue/Options.php:40 +msgid "Read our Sendinblue documentation to learn how to configure Sendinblue and improve your email deliverability." +msgstr "" + +#: src/Providers/Sendinblue/Options.php:97 msgid "Get v3 API Key" msgstr "" @@ -1559,11 +1538,59 @@ msgstr "" msgid "Other SMTP" msgstr "" -#. translators: %s - URL to a related article on WPForms.com. +#. 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:433 +msgid "Api Key:" +msgstr "" + +#: src/Providers/SMTPcom/Mailer.php:435 +msgid "Channel:" +msgstr "" + +#. translators: %s - URL to smtp.com site. +#: src/Providers/SMTPcom/Options.php:41 +msgid "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 10,000 free emails the first 30 days." +msgstr "" + +#. translators: %s - URL to wpmailsmtp.com doc page for stmp.com. +#: src/Providers/SMTPcom/Options.php:49 +msgid "Read our SMTP.com documentation to learn how to configure SMTP.com and improve your email deliverability." +msgstr "" + +#: src/Providers/SMTPcom/Options.php:59 +msgid "Get Started with SMTP.com" +msgstr "" + +#: src/Providers/SMTPcom/Options.php:67 +msgid "SMTP.com" +msgstr "" + +#. translators: %s - API key link. +#: src/Providers/SMTPcom/Options.php:101 +msgid "Follow this link to get an API Key from SMTP.com: %s." +msgstr "" + +#: src/Providers/SMTPcom/Options.php:103 +msgid "Get API Key" +msgstr "" + +#: src/Providers/SMTPcom/Options.php:114 +msgid "Sender Name" +msgstr "" + +#. translators: %s - Channel/Sender Name link for smtp.com documentation. +#: src/Providers/SMTPcom/Options.php:130 +msgid "Follow this link to get a Sender Name from SMTP.com: %s." +msgstr "" + +#: src/Providers/SMTPcom/Options.php:132 +msgid "Get Sender Name" +msgstr "" + #: src/SiteHealth.php:67 msgid "Is WP Mail SMTP mailer setup complete?" msgstr "" @@ -1621,151 +1648,16 @@ msgstr "" msgid "%1$s \\a\\t %2$s" msgstr "" -#: wp-mail-smtp-0.11.2.php:192 -#: wp-mail-smtp-0.11.2.php:546 -msgid "Send Test" -msgstr "" - -#. translators: %s - email address where test mail will be sent to. -#: wp-mail-smtp-0.11.2.php:201 -msgid "Test mail to %s" -msgstr "" - -#: wp-mail-smtp-0.11.2.php:202 -msgid "This is a test email generated by the WP Mail SMTP WordPress plugin." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:218 -msgid "Test Message Sent" -msgstr "" - -#: wp-mail-smtp-0.11.2.php:219 -msgid "The result was:" -msgstr "" - -#: wp-mail-smtp-0.11.2.php:222 -msgid "The full debugging output is shown below:" -msgstr "" - -#: wp-mail-smtp-0.11.2.php:225 -msgid "The SMTP debugging output is shown below:" -msgstr "" - -#: wp-mail-smtp-0.11.2.php:237 -#: wp-mail-smtp-0.11.2.php:582 -msgid "WP Mail SMTP Settings" -msgstr "" - -#: wp-mail-smtp-0.11.2.php:253 -msgid "You can specify the email address that emails should be sent from. If you leave this blank, the default email will be used." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:256 -msgid "Please Note: You appear to be using a version of WordPress prior to 2.3. Please ignore the From Name field and instead enter Name<email@domain.com> in this field." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:271 -msgid "You can specify the name that emails should be sent from. If you leave this blank, the emails will be sent from WordPress." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:290 -msgid "Send all WordPress emails via SMTP." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:294 -msgid "Use the PHP mail() function to send emails." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:300 -msgid "Use Pepipost SMTP to send emails." -msgstr "" - -#. translators: %1$s - link start; %2$s - link end. -#: wp-mail-smtp-0.11.2.php:306 -msgid "Looking for high inbox delivery? Try Pepipost with easy setup and free emails. Learn more %1$shere%2$s." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:343 -#: wp-mail-smtp-0.11.2.php:443 -#: wp-mail-smtp-0.11.2.php:519 -msgid "Save Changes" -msgstr "" - -#: wp-mail-smtp-0.11.2.php:348 -msgid "SMTP Options" -msgstr "" - -#: wp-mail-smtp-0.11.2.php:350 -msgid "These options only apply if you have chosen to send mail by SMTP above." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:379 -#: wp-mail-smtp-0.11.2.php:501 -msgid "No encryption." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:384 -#: wp-mail-smtp-0.11.2.php:506 -msgid "Use SSL encryption." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:389 -#: wp-mail-smtp-0.11.2.php:511 -msgid "Use TLS encryption." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:392 -msgid "TLS is not the same as STARTTLS. For most servers SSL is the recommended option." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:406 -msgid "No: Do not use SMTP authentication." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:411 -msgid "Yes: Use SMTP authentication." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:415 -msgid "If this is set to no, the values below are ignored." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:422 -#: wp-mail-smtp-0.11.2.php:465 -msgid "Username" -msgstr "" - -#: wp-mail-smtp-0.11.2.php:430 -#: wp-mail-smtp-0.11.2.php:473 -msgid "Password" -msgstr "" - -#: wp-mail-smtp-0.11.2.php:436 -msgid "This is in plain text because it must not be stored encrypted." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:450 -msgid "Pepipost SMTP Options" -msgstr "" - -#. translators: %s - Pepipost registration URL. -#: wp-mail-smtp-0.11.2.php:456 -msgid "You need to signup on %s to get the SMTP username/password." -msgstr "" - -#: wp-mail-smtp-0.11.2.php:536 -msgid "To" -msgstr "" - -#: wp-mail-smtp-0.11.2.php:540 -msgid "Type an email address here and then click Send Test to generate a test email." -msgstr "" - -#. translators: %1$s - WP Mail SMTP plugin name; %2$s - opening a link tag; %3$s - closing a link tag. -#: wp-mail-smtp-0.11.2.php:727 -msgid "Your site is running an outdated version of PHP that is no longer supported and may cause issues with %1$s. %2$sRead more%3$s for additional information." -msgstr "" - -#: wp_mail_smtp.php:131 +#: wp_mail_smtp.php:135 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:163 +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:180 +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/loco.xml b/wp-content/plugins/wp-mail-smtp/loco.xml deleted file mode 100644 index 9d9ec0c..0000000 --- a/wp-content/plugins/wp-mail-smtp/loco.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - . - - - assets/languages - - - - - - - - . - - - assets/pro/languages - - - - - diff --git a/wp-content/plugins/wp-mail-smtp/readme.txt b/wp-content/plugins/wp-mail-smtp/readme.txt index f28b711..f2ebe00 100644 --- a/wp-content/plugins/wp-mail-smtp/readme.txt +++ b/wp-content/plugins/wp-mail-smtp/readme.txt @@ -2,9 +2,9 @@ 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, pepipost, sendinblue, wp smtp Requires at least: 4.9 -Tested up to: 5.3 -Stable tag: 1.9.0 -Requires PHP: 5.3 +Tested up to: 5.4 +Stable tag: 2.0.0 +Requires PHP: 5.5.0 The most popular WordPress SMTP and PHP Mailer plugin. Trusted by over 1 million sites. @@ -42,19 +42,30 @@ This helps you fix all WordPress not sending email issues. WP Mail SMTP plugin includes many different SMTP setup options: -1. Pepipost SMTP (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. All Other SMTP +1. SMTP.com (Recommended) +2. Pepipost SMTP (Recommended) +3. Sendinblue SMTP +4. Mailgun SMTP +5. SendGrid SMTP +6. Gmail SMTP +7. Microsoft SMTP (Outlook.com and Office 365) [Pro] +8. Amazon SES SMTP [Pro] +9. All Other SMTP For all 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 10,000 free emails the first 30 days. + +Read our SMTP.com documentation for more details. + = Pepipost SMTP = Pepipost is a recommended transactional email service. @@ -68,8 +79,6 @@ Read our WPBeg 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. +Read our docs to see the correct SMTP settings for each service. = Help! I need support or have an issue. = @@ -220,6 +229,13 @@ By all means please contact us to discuss features or options you'd like to see == Changelog == += 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. diff --git a/wp-content/plugins/wp-mail-smtp/src/Admin/Area.php b/wp-content/plugins/wp-mail-smtp/src/Admin/Area.php index 0eac582..d863acd 100644 --- a/wp-content/plugins/wp-mail-smtp/src/Admin/Area.php +++ b/wp-content/plugins/wp-mail-smtp/src/Admin/Area.php @@ -57,7 +57,7 @@ class Area { protected function hooks() { // Add the Settings link to a plugin on Plugins page. - add_filter( 'plugin_action_links', array( $this, 'add_plugin_action_link' ), 10, 2 ); + add_filter( 'plugin_action_links_' . plugin_basename( WPMS_PLUGIN_FILE ), array( $this, 'add_plugin_action_link' ), 10, 1 ); // Add the options page. add_action( 'admin_menu', array( $this, 'add_admin_options_page' ) ); @@ -219,14 +219,17 @@ class Area { self::SLUG . '-logs', array( $this, 'display' ) ); - \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' ) - ); + + 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' ) + ); + } } /** @@ -273,7 +276,7 @@ class Area { 'upgrade_url' => 'https://wpmailsmtp.com/lite-upgrade/?discount=SMTPLITEUPGRADE&utm_source=WordPress&utm_medium=plugin-settings&utm_campaign=liteplugin', 'upgrade_bonus' => '

' . wp_kses( - __( 'Bonus: WP Mail SMTP users get 20% off regular price,
applied at checkout.', 'wp-mail-smtp' ), + __( 'Bonus: WP Mail SMTP users get $50 off regular price,
applied at checkout.', 'wp-mail-smtp' ), array( 'strong' => true, 'span' => true, @@ -368,7 +371,7 @@ class Area { \wp_enqueue_script( 'wp-mail-smtp-admin-about-matchheight', - \wp_mail_smtp()->assets_url . '/js/jquery.matchHeight.min.js', + \wp_mail_smtp()->assets_url . '/js/vendor/jquery.matchHeight.min.js', array( 'wp-mail-smtp-admin' ), '0.7.2', false @@ -394,7 +397,7 @@ class Area {

- +
is_pro() ) { return $links; } - $settings_link = '' . esc_html__( 'Settings', 'wp-mail-smtp' ) . ''; - $logs_link = '' . esc_html__( 'Email Log', 'wp-mail-smtp' ) . ''; + $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' ) + ); - array_unshift( $links, $settings_link, $logs_link ); + $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 $links; + return array_merge( $custom, (array) $links ); } /** diff --git a/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/About.php b/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/About.php index afae958..d078692 100644 --- a/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/About.php +++ b/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/About.php @@ -598,7 +598,7 @@ class About extends PageAbstract {

20% off regular price, automatically applied at checkout.', 'wp-mail-smtp' ), + \__( 'Bonus: WP Mail SMTP Lite users get $50 off regular price, automatically applied at checkout.', 'wp-mail-smtp' ), array( 'span' => array( 'class' => array(), 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 index 276ae21..0308160 100644 --- a/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/SettingsTab.php +++ b/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/SettingsTab.php @@ -234,18 +234,16 @@ class SettingsTab extends PageAbstract { + - -

- + +
+

+ + - -

- -
-
- +

@@ -338,7 +336,7 @@ class SettingsTab extends PageAbstract {

20% off, automatically applied at checkout!', 'wp-mail-smtp' ), + __( 'As a valued WP Mail SMTP Lite user you receive $50 off, automatically applied at checkout!', 'wp-mail-smtp' ), array( 'strong' => array(), 'br' => array(), @@ -453,7 +451,7 @@ class SettingsTab extends PageAbstract {

Bonus: WP Mail SMTP users get 20% off regular price, automatically applied at checkout.', 'wp-mail-smtp' ), + __( 'Bonus: WP Mail SMTP users get $50 off regular price, automatically applied at checkout.', 'wp-mail-smtp' ), array( 'strong' => array(), 'span' => array( 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 index a9a96f3..1d3b177 100644 --- a/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/TestTab.php +++ b/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/TestTab.php @@ -253,7 +253,7 @@ class TestTab extends PageAbstract { - WP Mail SMTP Logo + WP Mail SMTP Logo @@ -296,7 +296,7 @@ class TestTab extends PageAbstract { Access to our world class support team

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

@@ -343,7 +343,7 @@ class TestTab extends PageAbstract { // phpcs:disable if ( wp_mail_smtp()->is_pro() ) { - // WP Mail SMTP Pro & WPForms paid installed. + // WP Mail SMTP Pro paid installed. $message = 'Congrats, test email was sent successfully! @@ -705,7 +705,7 @@ Lead Developer, WP Mail SMTP'; ), ) ), - 'https://wpforms.com/how-to-send-wordpress-emails-with-mailgun/' + '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' ), ), @@ -893,7 +893,7 @@ Lead Developer, WP Mail SMTP'; 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 - WPForms.com tutorial URL. */ + /* 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' ), array( 'a' => array( @@ -903,7 +903,7 @@ Lead Developer, WP Mail SMTP'; ), ) ), - 'https://wpforms.com/how-to-securely-send-wordpress-emails-using-gmail-smtp/' + 'https://wpmailsmtp.com/docs/how-to-set-up-the-gmail-mailer-in-wp-mail-smtp/' ), ), ), @@ -1063,7 +1063,7 @@ Lead Developer, WP Mail SMTP';

20% off regular pricing, automatically applied at checkout!', 'wp-mail-smtp' ), + __( 'As a valued WP Mail SMTP user, you will get $50 off regular pricing, automatically applied at checkout!', 'wp-mail-smtp' ), array( 'span' => array( 'class' => array(), diff --git a/wp-content/plugins/wp-mail-smtp/src/Core.php b/wp-content/plugins/wp-mail-smtp/src/Core.php index f903893..4ce9a3e 100644 --- a/wp-content/plugins/wp-mail-smtp/src/Core.php +++ b/wp-content/plugins/wp-mail-smtp/src/Core.php @@ -57,7 +57,7 @@ class Core { $this->plugin_path = rtrim( plugin_dir_path( __DIR__ ), '/\\' ); if ( $this->is_not_loadable() ) { - $this->do_not_load(); + add_action( 'admin_notices', 'wp_mail_smtp_insecure_php_version_notice' ); return; } @@ -88,63 +88,6 @@ class Core { return false; } - /** - * What to do if plugin is not loaded. - * - * @since 1.5.0 - */ - protected function do_not_load() { - - add_action( 'admin_notices', function () { - - ?> -

-

- 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/' - ); - ?> -

- Note: 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://wpforms.com/docs/supported-php-version/' - ); - ?> -

-
- - Read more for additional information.', 'wp-mail-smtp' ), array( 'a' => array( @@ -406,11 +349,11 @@ class Core { ) ), 'WP Mail SMTP', - 'https://wpforms.com/docs/supported-php-version/' + 'https://wpmailsmtp.com/docs/supported-php-versions-for-wp-mail-smtp/' ) . '

' . wp_kses( - __( 'Please Note: Support for PHP 5.3-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' ), + __( '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(), @@ -618,12 +561,9 @@ class Core { * What to do on plugin activation. * * @since 1.0.0 - * - * @param string $plugin Path to the plugin file relative to the plugins directory. - * @param bool $network_wide Whether to enable the plugin for all sites in the network - * or just the current site. Multisite only. Default is false. + * @since 2.0.0 Changed from general `plugin_activate` hook to this plugin specific activation hook. */ - public function activate( $plugin, $network_wide ) { + public function activate() { // Store the plugin version when initial install occurred. add_option( 'wp_mail_smtp_initial_version', WPMS_PLUGIN_VER, '', false ); @@ -735,4 +675,18 @@ class Core { 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 ); + } } diff --git a/wp-content/plugins/wp-mail-smtp/src/Geo.php b/wp-content/plugins/wp-mail-smtp/src/Geo.php index e2cb71f..ed80c90 100644 --- a/wp-content/plugins/wp-mail-smtp/src/Geo.php +++ b/wp-content/plugins/wp-mail-smtp/src/Geo.php @@ -1,163 +1,164 @@ - sanitize_text_field( $request['latitude'] ), - 'longitude' => sanitize_text_field( $request['longitude'] ), - 'city' => sanitize_text_field( $request['city'] ), - 'region' => sanitize_text_field( $request['region_name'] ), - 'country' => sanitize_text_field( $request['country_code'] ), - 'postal' => 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 = array( - 'latitude' => sanitize_text_field( $request['latitude'] ), - 'longitude' => sanitize_text_field( $request['longitude'] ), - 'city' => sanitize_text_field( $request['city'] ), - 'region' => sanitize_text_field( $request['region'] ), - 'country' => sanitize_text_field( $request['country'] ), - '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 = array( - 'latitude' => sanitize_text_field( $request['data']['geo']['latitude'] ), - 'longitude' => sanitize_text_field( $request['data']['geo']['longitude'] ), - 'city' => sanitize_text_field( $request['data']['geo']['city'] ), - 'region' => sanitize_text_field( $request['data']['geo']['region_name'] ), - 'country' => sanitize_text_field( $request['data']['geo']['country_code'] ), - 'postal' => sanitize_text_field( $request['data']['geo']['postal_code'] ), - ); - - return $data; - } - } - - return array(); - } - - /** - * 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; - } -} + sanitize_text_field( $request['latitude'] ), + 'longitude' => sanitize_text_field( $request['longitude'] ), + 'city' => sanitize_text_field( $request['city'] ), + 'region' => sanitize_text_field( $request['region_name'] ), + 'country' => sanitize_text_field( $request['country_iso'] ), + 'postal' => 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 = array( + 'latitude' => sanitize_text_field( $request['latitude'] ), + 'longitude' => sanitize_text_field( $request['longitude'] ), + 'city' => sanitize_text_field( $request['city'] ), + 'region' => sanitize_text_field( $request['region'] ), + 'country' => sanitize_text_field( $request['country'] ), + '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 = array( + 'latitude' => sanitize_text_field( $request['data']['geo']['latitude'] ), + 'longitude' => sanitize_text_field( $request['data']['geo']['longitude'] ), + 'city' => sanitize_text_field( $request['data']['geo']['city'] ), + 'region' => sanitize_text_field( $request['data']['geo']['region_name'] ), + 'country' => sanitize_text_field( $request['data']['geo']['country_code'] ), + 'postal' => sanitize_text_field( $request['data']['geo']['postal_code'] ), + ); + + return $data; + } + } + + return array(); + } + + /** + * 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/Options.php b/wp-content/plugins/wp-mail-smtp/src/Options.php index 81800d1..de907a0 100644 --- a/wp-content/plugins/wp-mail-smtp/src/Options.php +++ b/wp-content/plugins/wp-mail-smtp/src/Options.php @@ -64,6 +64,10 @@ class Options { 'sendgrid' => array( 'api_key', ), + 'smtpcom' => array( + 'api_key', + 'channel', + ), 'sendinblue' => array( 'api_key', ), @@ -407,11 +411,11 @@ class Options { break; case 'auth': /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_SMTP_AUTH : $value; + $return = $this->is_const_defined( $group, $key ) ? (bool) WPMS_SMTP_AUTH : $value; break; case 'autotls': /** @noinspection PhpUndefinedConstantInspection */ - $return = $this->is_const_defined( $group, $key ) ? WPMS_SMTP_AUTOTLS : $value; + $return = $this->is_const_defined( $group, $key ) ? (bool) WPMS_SMTP_AUTOTLS : $value; break; case 'user': /** @noinspection PhpUndefinedConstantInspection */ @@ -499,6 +503,20 @@ class Options { 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': @@ -626,10 +644,10 @@ class Options { $return = defined( 'WPMS_SSL' ); break; case 'auth': - $return = defined( 'WPMS_SMTP_AUTH' ) && WPMS_SMTP_AUTH; + $return = defined( 'WPMS_SMTP_AUTH' ); break; case 'autotls': - $return = defined( 'WPMS_SMTP_AUTOTLS' ) && ( WPMS_SMTP_AUTOTLS === 'true' || WPMS_SMTP_AUTOTLS === true ); + $return = defined( 'WPMS_SMTP_AUTOTLS' ); break; case 'user': $return = defined( 'WPMS_SMTP_USER' ) && WPMS_SMTP_USER; @@ -704,6 +722,18 @@ class Options { 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': @@ -805,7 +835,7 @@ class Options { if ( ! empty( $options['mail']['mailer'] ) && isset( $options[ $options['mail']['mailer'] ] ) && - in_array( $options['mail']['mailer'], array( 'pepipost', 'pepipostapi', 'smtp', 'sendgrid', 'sendinblue', 'mailgun', 'gmail', 'outlook' ), true ) + in_array( $options['mail']['mailer'], array( 'pepipost', 'pepipostapi', 'smtp', 'sendgrid', 'smtpcom', 'sendinblue', 'mailgun', 'gmail', 'outlook' ), true ) ) { $mailer = $options['mail']['mailer']; @@ -833,11 +863,12 @@ class Options { $options[ $mailer ][ $option_name ] = $this->is_const_defined( $mailer, $option_name ) ? '' : trim( (string) $option_value ); break; - case 'api_key': // mailgun/sendgrid/sendinblue/pepipostapi. + case 'api_key': // mailgun/sendgrid/sendinblue/pepipostapi/smtpcom. case 'domain': // mailgun. case 'client_id': // gmail/outlook/amazonses. case 'client_secret': // gmail/outlook/amazonses. 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; diff --git a/wp-content/plugins/wp-mail-smtp/src/Processor.php b/wp-content/plugins/wp-mail-smtp/src/Processor.php index 96b15d4..3661785 100644 --- a/wp-content/plugins/wp-mail-smtp/src/Processor.php +++ b/wp-content/plugins/wp-mail-smtp/src/Processor.php @@ -27,8 +27,9 @@ class Processor { add_action( 'phpmailer_init', array( $this, 'phpmailer_init' ) ); - add_filter( 'wp_mail_from', array( $this, 'filter_mail_from_email' ), 1000 ); - add_filter( 'wp_mail_from_name', array( $this, 'filter_mail_from_name' ), 1000 ); + // High priority number tries to ensure our plugin code executes last and respects previous hooks, if not forced. + add_filter( 'wp_mail_from', array( $this, 'filter_mail_from_email' ), PHP_INT_MAX ); + add_filter( 'wp_mail_from_name', array( $this, 'filter_mail_from_name' ), PHP_INT_MAX ); } /** @@ -233,7 +234,7 @@ class Processor { /** * Get or create the phpmailer. * - * @since {VERSION} + * @since 1.9.0 * * @return \WPMailSMTP\MailCatcher */ diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/Loader.php b/wp-content/plugins/wp-mail-smtp/src/Providers/Loader.php index 7a4983c..e90253b 100644 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/Loader.php +++ b/wp-content/plugins/wp-mail-smtp/src/Providers/Loader.php @@ -24,6 +24,7 @@ class Loader { */ protected $providers = array( 'mail' => 'WPMailSMTP\Providers\Mail\\', + 'smtpcom' => 'WPMailSMTP\Providers\SMTPcom\\', 'pepipostapi' => 'WPMailSMTP\Providers\PepipostAPI\\', 'sendinblue' => 'WPMailSMTP\Providers\Sendinblue\\', 'mailgun' => 'WPMailSMTP\Providers\Mailgun\\', diff --git a/wp-content/plugins/wp-mail-smtp/src/Providers/OptionsAbstract.php b/wp-content/plugins/wp-mail-smtp/src/Providers/OptionsAbstract.php index e565f14..dd60e04 100644 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/OptionsAbstract.php +++ b/wp-content/plugins/wp-mail-smtp/src/Providers/OptionsAbstract.php @@ -1,477 +1,477 @@ -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->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 );
-					
-

- -

- - -

- -
- wp-config.php' - ); - ?> -

-
-						define( 'WPMS_ON', true );
-						define( 'WPMS_SMTP_PASS', 'your_password' );
-					
- -
-
- - 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() ) - ); - ?> -
- -
- - - -
- get_title() ) - ); - ?> -
- -
- - - -

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

- - 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->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 );
+					
+

+ +

+ + +

+ +
+ wp-config.php' + ); + ?> +

+
+						define( 'WPMS_ON', true );
+						define( 'WPMS_SMTP_PASS', 'your_password' );
+					
+ +
+
+ + 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() ) + ); + ?> +
+ +
+ + + +
+ get_title() ) + ); + ?> +
+ +
+ + + +

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

+ +

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

'; } @@ -103,7 +103,7 @@ class Options extends OptionsAbstract {

' . esc_html__( 'Get the API Key', 'wp-mail-smtp' ) . 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 index 5553e35..d74a204 100644 --- a/wp-content/plugins/wp-mail-smtp/src/Providers/SMTP/Options.php +++ b/wp-content/plugins/wp-mail-smtp/src/Providers/SMTP/Options.php @@ -1,44 +1,44 @@ - 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 a related article on WPForms.com. */ - __( '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/' - ), - ) - ); - } -} + 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 new file mode 100644 index 0000000..29f81e3 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/src/Providers/SMTPcom/Mailer.php @@ -0,0 +1,460 @@ +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' => base64_encode( $file ), + '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 ) {} + + /** + * 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 + */ + protected 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; + } + } + + 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 new file mode 100644 index 0000000..33bdda7 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/src/Providers/SMTPcom/Options.php @@ -0,0 +1,142 @@ + 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 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 10,000 free emails the first 30 days.', '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( + array( + '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, + ) + ); + } + + /** + * @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' ) . + '' + ); + ?> +

+
+
+ + Sendinblue is a 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' ), - array( - 'br' => true, - 'strong' => true, - 'a' => array( - '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( array( 'logo_url' => wp_mail_smtp()->assets_url . '/images/providers/sendinblue.svg', 'slug' => self::SLUG, 'title' => esc_html__( 'Sendinblue', 'wp-mail-smtp' ), - 'description' => $description, - 'recommended' => true, 'php' => '5.6', + 'description' => sprintf( + wp_kses( /* translators: %1$s - URL to sendinblue.com site. */ + __( 'Sendinblue serves 80,000+ growing companies around the world and sends over 30 million emails each day. They provide 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' ), + array( + 'br' => true, + 'a' => array( + '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' + ), ) ); } @@ -103,7 +91,7 @@ class Options extends OptionsAbstract {

' . esc_html__( 'Get v3 API Key', 'wp-mail-smtp' ) . diff --git a/wp-content/plugins/wp-mail-smtp/src/SiteHealth.php b/wp-content/plugins/wp-mail-smtp/src/SiteHealth.php index 121222a..0cf5ab0 100644 --- a/wp-content/plugins/wp-mail-smtp/src/SiteHealth.php +++ b/wp-content/plugins/wp-mail-smtp/src/SiteHealth.php @@ -5,7 +5,7 @@ namespace WPMailSMTP; /** * Class SiteHealth adds the plugin status and information to the WP Site Health admin page. * - * @since {VERSION} + * @since 1.9.0 */ class SiteHealth { @@ -15,7 +15,7 @@ class SiteHealth { * * @see https://make.wordpress.org/core/2019/04/25/site-health-check-in-5-2/ * - * @since {VERSION} + * @since 1.9.0 */ const BADGE_COLOR = 'blue'; @@ -24,14 +24,14 @@ class SiteHealth { * This should be a plugin unique string, which will be used in the WP Site Health page, * for the "info" tab and will present the plugin info section. * - * @since {VERSION} + * @since 1.9.0 */ const DEBUG_INFO_SLUG = 'wp_mail_smtp'; /** * Translatable string for the plugin label. * - * @since {VERSION} + * @since 1.9.0 * * @return string */ @@ -43,7 +43,7 @@ class SiteHealth { /** * Initialize the site heath functionality. * - * @since {VERSION} + * @since 1.9.0 */ public function init() { @@ -55,7 +55,7 @@ class SiteHealth { * Register plugin WP site health tests. * This will be displayed in the "Status" tab of the WP Site Health page. * - * @since {VERSION} + * @since 1.9.0 * * @param array $tests The array with all WP site health tests. * @@ -75,7 +75,7 @@ class SiteHealth { * Register plugin WP Site Health debug information. * This will be displayed in the "Info" tab of the WP Site Health page. * - * @since {VERSION} + * @since 1.9.0 * * @param array $debug_info Array of existing debug information. * @@ -109,7 +109,7 @@ class SiteHealth { /** * Perform the WP site health test for checking, if the mailer setup is complete. * - * @since {VERSION} + * @since 1.9.0 */ public function mailer_setup_complete_test() { diff --git a/wp-content/plugins/wp-mail-smtp/src/WP.php b/wp-content/plugins/wp-mail-smtp/src/WP.php index 58960fc..ed7edbe 100644 --- a/wp-content/plugins/wp-mail-smtp/src/WP.php +++ b/wp-content/plugins/wp-mail-smtp/src/WP.php @@ -1,234 +1,234 @@ - $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 - * - * @return mixed|string|string[]|null - */ - 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; - } -} + $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 + * + * @return mixed|string|string[]|null + */ + 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; + } +} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/autoload.php b/wp-content/plugins/wp-mail-smtp/vendor/autoload.php index 3db465d..60ac894 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/autoload.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit4589a9f05a03f0a29add21e0e493a064::getLoader(); +return ComposerAutoloaderInit72f613a3d0c2cc77892490951b6e5352::getLoader(); 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 index 020463c..4cbdc4c 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_files.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_files.php @@ -9,6 +9,9 @@ return array( '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', 'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php', 'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php', + '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', + '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php', + 'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php', '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php', 'decc78cc4436b1292c6c0d151b19445c' => $vendorDir . '/phpseclib/phpseclib/phpseclib/bootstrap.php', ); diff --git a/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_psr4.php b/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_psr4.php index a361555..f6115f0 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_psr4.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_psr4.php @@ -8,6 +8,9 @@ $baseDir = dirname($vendorDir); return array( 'phpseclib\\' => array($vendorDir . '/phpseclib/phpseclib/phpseclib'), 'WPMailSMTP\\' => array($baseDir . '/src'), + 'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'), + 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), + 'Symfony\\Polyfill\\Intl\\Idn\\' => array($vendorDir . '/symfony/polyfill-intl-idn'), 'SendinBlue\\Client\\' => array($vendorDir . '/sendinblue/api-v3-sdk/lib'), 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'), 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'), 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 index 60e0b6e..3fa1c07 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_real.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit4589a9f05a03f0a29add21e0e493a064 +class ComposerAutoloaderInit72f613a3d0c2cc77892490951b6e5352 { private static $loader; @@ -13,21 +13,24 @@ class ComposerAutoloaderInit4589a9f05a03f0a29add21e0e493a064 } } + /** + * @return \Composer\Autoload\ClassLoader + */ public static function getLoader() { if (null !== self::$loader) { return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit4589a9f05a03f0a29add21e0e493a064', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit72f613a3d0c2cc77892490951b6e5352', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInit4589a9f05a03f0a29add21e0e493a064', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit72f613a3d0c2cc77892490951b6e5352', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 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\ComposerStaticInit4589a9f05a03f0a29add21e0e493a064::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit72f613a3d0c2cc77892490951b6e5352::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +51,19 @@ class ComposerAutoloaderInit4589a9f05a03f0a29add21e0e493a064 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit4589a9f05a03f0a29add21e0e493a064::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit72f613a3d0c2cc77892490951b6e5352::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire4589a9f05a03f0a29add21e0e493a064($fileIdentifier, $file); + composerRequire72f613a3d0c2cc77892490951b6e5352($fileIdentifier, $file); } return $loader; } } -function composerRequire4589a9f05a03f0a29add21e0e493a064($fileIdentifier, $file) +function composerRequire72f613a3d0c2cc77892490951b6e5352($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; 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 index 05d9ad3..0618347 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_static.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/composer/autoload_static.php @@ -4,12 +4,15 @@ namespace Composer\Autoload; -class ComposerStaticInit4589a9f05a03f0a29add21e0e493a064 +class ComposerStaticInit72f613a3d0c2cc77892490951b6e5352 { public static $files = array ( '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', 'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php', 'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php', + '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', + '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php', + 'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php', '37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php', 'decc78cc4436b1292c6c0d151b19445c' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/bootstrap.php', ); @@ -25,6 +28,9 @@ class ComposerStaticInit4589a9f05a03f0a29add21e0e493a064 ), 'S' => array ( + 'Symfony\\Polyfill\\Php72\\' => 23, + 'Symfony\\Polyfill\\Mbstring\\' => 26, + 'Symfony\\Polyfill\\Intl\\Idn\\' => 26, 'SendinBlue\\Client\\' => 18, ), 'P' => @@ -63,6 +69,18 @@ class ComposerStaticInit4589a9f05a03f0a29add21e0e493a064 array ( 0 => __DIR__ . '/../..' . '/src', ), + 'Symfony\\Polyfill\\Php72\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-php72', + ), + 'Symfony\\Polyfill\\Mbstring\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring', + ), + 'Symfony\\Polyfill\\Intl\\Idn\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-idn', + ), 'SendinBlue\\Client\\' => array ( 0 => __DIR__ . '/..' . '/sendinblue/api-v3-sdk/lib', @@ -131,10 +149,10 @@ class ComposerStaticInit4589a9f05a03f0a29add21e0e493a064 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit4589a9f05a03f0a29add21e0e493a064::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit4589a9f05a03f0a29add21e0e493a064::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInit4589a9f05a03f0a29add21e0e493a064::$prefixesPsr0; - $loader->classMap = ComposerStaticInit4589a9f05a03f0a29add21e0e493a064::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit72f613a3d0c2cc77892490951b6e5352::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit72f613a3d0c2cc77892490951b6e5352::$prefixDirsPsr4; + $loader->prefixesPsr0 = ComposerStaticInit72f613a3d0c2cc77892490951b6e5352::$prefixesPsr0; + $loader->classMap = ComposerStaticInit72f613a3d0c2cc77892490951b6e5352::$classMap; }, null, ClassLoader::class); } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail.php b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail.php index d63d83d..9b63e2b 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail.php @@ -19,7 +19,8 @@ * Service definition for Gmail (v1). * *

- * Access Gmail mailboxes including sending user email.

+ * 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 @@ -33,6 +34,18 @@ class Google_Service_Gmail extends 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"; @@ -85,8 +98,8 @@ class Google_Service_Gmail extends Google_Service { parent::__construct($client); $this->rootUrl = $rootUrl ?: 'https://www.googleapis.com/'; - $this->servicePath = 'gmail/v1/users/'; - $this->batchPath = 'batch/gmail/v1'; + $this->servicePath = ''; + $this->batchPath = 'batch'; $this->version = 'v1'; $this->serviceName = 'gmail'; @@ -97,7 +110,7 @@ class Google_Service_Gmail extends Google_Service array( 'methods' => array( 'getProfile' => array( - 'path' => '{userId}/profile', + 'path' => 'gmail/v1/users/{userId}/profile', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -107,7 +120,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'stop' => array( - 'path' => '{userId}/stop', + 'path' => 'gmail/v1/users/{userId}/stop', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -117,7 +130,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'watch' => array( - 'path' => '{userId}/watch', + 'path' => 'gmail/v1/users/{userId}/watch', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -137,7 +150,7 @@ class Google_Service_Gmail extends Google_Service array( 'methods' => array( 'create' => array( - 'path' => '{userId}/drafts', + 'path' => 'gmail/v1/users/{userId}/drafts', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -147,7 +160,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'delete' => array( - 'path' => '{userId}/drafts/{id}', + 'path' => 'gmail/v1/users/{userId}/drafts/{id}', 'httpMethod' => 'DELETE', 'parameters' => array( 'userId' => array( @@ -162,7 +175,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'get' => array( - 'path' => '{userId}/drafts/{id}', + 'path' => 'gmail/v1/users/{userId}/drafts/{id}', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -181,7 +194,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'list' => array( - 'path' => '{userId}/drafts', + 'path' => 'gmail/v1/users/{userId}/drafts', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -193,10 +206,6 @@ class Google_Service_Gmail extends Google_Service 'location' => 'query', 'type' => 'boolean', ), - 'maxResults' => array( - 'location' => 'query', - 'type' => 'integer', - ), 'pageToken' => array( 'location' => 'query', 'type' => 'string', @@ -205,9 +214,13 @@ class Google_Service_Gmail extends Google_Service 'location' => 'query', 'type' => 'string', ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), ), ),'send' => array( - 'path' => '{userId}/drafts/send', + 'path' => 'gmail/v1/users/{userId}/drafts/send', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -217,7 +230,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'update' => array( - 'path' => '{userId}/drafts/{id}', + 'path' => 'gmail/v1/users/{userId}/drafts/{id}', 'httpMethod' => 'PUT', 'parameters' => array( 'userId' => array( @@ -242,7 +255,7 @@ class Google_Service_Gmail extends Google_Service array( 'methods' => array( 'list' => array( - 'path' => '{userId}/history', + 'path' => 'gmail/v1/users/{userId}/history', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -250,10 +263,9 @@ class Google_Service_Gmail extends Google_Service 'type' => 'string', 'required' => true, ), - 'historyTypes' => array( + 'pageToken' => array( 'location' => 'query', 'type' => 'string', - 'repeated' => true, ), 'labelId' => array( 'location' => 'query', @@ -263,9 +275,10 @@ class Google_Service_Gmail extends Google_Service 'location' => 'query', 'type' => 'integer', ), - 'pageToken' => array( + 'historyTypes' => array( 'location' => 'query', 'type' => 'string', + 'repeated' => true, ), 'startHistoryId' => array( 'location' => 'query', @@ -283,7 +296,7 @@ class Google_Service_Gmail extends Google_Service array( 'methods' => array( 'create' => array( - 'path' => '{userId}/labels', + 'path' => 'gmail/v1/users/{userId}/labels', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -293,7 +306,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'delete' => array( - 'path' => '{userId}/labels/{id}', + 'path' => 'gmail/v1/users/{userId}/labels/{id}', 'httpMethod' => 'DELETE', 'parameters' => array( 'userId' => array( @@ -308,7 +321,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'get' => array( - 'path' => '{userId}/labels/{id}', + 'path' => 'gmail/v1/users/{userId}/labels/{id}', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -323,7 +336,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'list' => array( - 'path' => '{userId}/labels', + 'path' => 'gmail/v1/users/{userId}/labels', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -333,7 +346,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'patch' => array( - 'path' => '{userId}/labels/{id}', + 'path' => 'gmail/v1/users/{userId}/labels/{id}', 'httpMethod' => 'PATCH', 'parameters' => array( 'userId' => array( @@ -348,7 +361,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'update' => array( - 'path' => '{userId}/labels/{id}', + 'path' => 'gmail/v1/users/{userId}/labels/{id}', 'httpMethod' => 'PUT', 'parameters' => array( 'userId' => array( @@ -373,7 +386,7 @@ class Google_Service_Gmail extends Google_Service array( 'methods' => array( 'batchDelete' => array( - 'path' => '{userId}/messages/batchDelete', + 'path' => 'gmail/v1/users/{userId}/messages/batchDelete', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -383,7 +396,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'batchModify' => array( - 'path' => '{userId}/messages/batchModify', + 'path' => 'gmail/v1/users/{userId}/messages/batchModify', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -393,7 +406,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'delete' => array( - 'path' => '{userId}/messages/{id}', + 'path' => 'gmail/v1/users/{userId}/messages/{id}', 'httpMethod' => 'DELETE', 'parameters' => array( 'userId' => array( @@ -408,7 +421,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'get' => array( - 'path' => '{userId}/messages/{id}', + 'path' => 'gmail/v1/users/{userId}/messages/{id}', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -421,18 +434,18 @@ class Google_Service_Gmail extends Google_Service 'type' => 'string', 'required' => true, ), - 'format' => array( - 'location' => 'query', - 'type' => 'string', - ), 'metadataHeaders' => array( 'location' => 'query', 'type' => 'string', 'repeated' => true, ), + 'format' => array( + 'location' => 'query', + 'type' => 'string', + ), ), ),'import' => array( - 'path' => '{userId}/messages/import', + 'path' => 'gmail/v1/users/{userId}/messages/import', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -440,7 +453,7 @@ class Google_Service_Gmail extends Google_Service 'type' => 'string', 'required' => true, ), - 'deleted' => array( + 'processForCalendar' => array( 'location' => 'query', 'type' => 'boolean', ), @@ -452,13 +465,13 @@ class Google_Service_Gmail extends Google_Service 'location' => 'query', 'type' => 'boolean', ), - 'processForCalendar' => array( + 'deleted' => array( 'location' => 'query', 'type' => 'boolean', ), ), ),'insert' => array( - 'path' => '{userId}/messages', + 'path' => 'gmail/v1/users/{userId}/messages', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -466,17 +479,17 @@ class Google_Service_Gmail extends Google_Service 'type' => 'string', 'required' => true, ), - 'deleted' => array( - 'location' => 'query', - 'type' => 'boolean', - ), 'internalDateSource' => array( 'location' => 'query', 'type' => 'string', ), + 'deleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), ), ),'list' => array( - 'path' => '{userId}/messages', + 'path' => 'gmail/v1/users/{userId}/messages', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -488,26 +501,26 @@ class Google_Service_Gmail extends Google_Service 'location' => 'query', 'type' => 'boolean', ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), 'labelIds' => array( 'location' => 'query', 'type' => 'string', 'repeated' => true, ), - 'maxResults' => array( - 'location' => 'query', - 'type' => 'integer', - ), - 'pageToken' => array( - 'location' => 'query', - 'type' => 'string', - ), 'q' => array( 'location' => 'query', 'type' => 'string', ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), ), ),'modify' => array( - 'path' => '{userId}/messages/{id}/modify', + 'path' => 'gmail/v1/users/{userId}/messages/{id}/modify', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -522,7 +535,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'send' => array( - 'path' => '{userId}/messages/send', + 'path' => 'gmail/v1/users/{userId}/messages/send', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -532,7 +545,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'trash' => array( - 'path' => '{userId}/messages/{id}/trash', + 'path' => 'gmail/v1/users/{userId}/messages/{id}/trash', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -547,7 +560,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'untrash' => array( - 'path' => '{userId}/messages/{id}/untrash', + 'path' => 'gmail/v1/users/{userId}/messages/{id}/untrash', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -572,7 +585,7 @@ class Google_Service_Gmail extends Google_Service array( 'methods' => array( 'get' => array( - 'path' => '{userId}/messages/{messageId}/attachments/{id}', + 'path' => 'gmail/v1/users/{userId}/messages/{messageId}/attachments/{id}', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -602,7 +615,7 @@ class Google_Service_Gmail extends Google_Service array( 'methods' => array( 'getAutoForwarding' => array( - 'path' => '{userId}/settings/autoForwarding', + 'path' => 'gmail/v1/users/{userId}/settings/autoForwarding', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -612,7 +625,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'getImap' => array( - 'path' => '{userId}/settings/imap', + 'path' => 'gmail/v1/users/{userId}/settings/imap', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -622,7 +635,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'getLanguage' => array( - 'path' => '{userId}/settings/language', + 'path' => 'gmail/v1/users/{userId}/settings/language', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -632,7 +645,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'getPop' => array( - 'path' => '{userId}/settings/pop', + 'path' => 'gmail/v1/users/{userId}/settings/pop', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -642,7 +655,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'getVacation' => array( - 'path' => '{userId}/settings/vacation', + 'path' => 'gmail/v1/users/{userId}/settings/vacation', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -652,7 +665,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'updateAutoForwarding' => array( - 'path' => '{userId}/settings/autoForwarding', + 'path' => 'gmail/v1/users/{userId}/settings/autoForwarding', 'httpMethod' => 'PUT', 'parameters' => array( 'userId' => array( @@ -662,7 +675,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'updateImap' => array( - 'path' => '{userId}/settings/imap', + 'path' => 'gmail/v1/users/{userId}/settings/imap', 'httpMethod' => 'PUT', 'parameters' => array( 'userId' => array( @@ -672,7 +685,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'updateLanguage' => array( - 'path' => '{userId}/settings/language', + 'path' => 'gmail/v1/users/{userId}/settings/language', 'httpMethod' => 'PUT', 'parameters' => array( 'userId' => array( @@ -682,7 +695,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'updatePop' => array( - 'path' => '{userId}/settings/pop', + 'path' => 'gmail/v1/users/{userId}/settings/pop', 'httpMethod' => 'PUT', 'parameters' => array( 'userId' => array( @@ -692,7 +705,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'updateVacation' => array( - 'path' => '{userId}/settings/vacation', + 'path' => 'gmail/v1/users/{userId}/settings/vacation', 'httpMethod' => 'PUT', 'parameters' => array( 'userId' => array( @@ -712,7 +725,7 @@ class Google_Service_Gmail extends Google_Service array( 'methods' => array( 'create' => array( - 'path' => '{userId}/settings/delegates', + 'path' => 'gmail/v1/users/{userId}/settings/delegates', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -722,7 +735,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'delete' => array( - 'path' => '{userId}/settings/delegates/{delegateEmail}', + 'path' => 'gmail/v1/users/{userId}/settings/delegates/{delegateEmail}', 'httpMethod' => 'DELETE', 'parameters' => array( 'userId' => array( @@ -737,7 +750,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'get' => array( - 'path' => '{userId}/settings/delegates/{delegateEmail}', + 'path' => 'gmail/v1/users/{userId}/settings/delegates/{delegateEmail}', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -752,7 +765,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'list' => array( - 'path' => '{userId}/settings/delegates', + 'path' => 'gmail/v1/users/{userId}/settings/delegates', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -772,7 +785,7 @@ class Google_Service_Gmail extends Google_Service array( 'methods' => array( 'create' => array( - 'path' => '{userId}/settings/filters', + 'path' => 'gmail/v1/users/{userId}/settings/filters', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -782,7 +795,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'delete' => array( - 'path' => '{userId}/settings/filters/{id}', + 'path' => 'gmail/v1/users/{userId}/settings/filters/{id}', 'httpMethod' => 'DELETE', 'parameters' => array( 'userId' => array( @@ -797,7 +810,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'get' => array( - 'path' => '{userId}/settings/filters/{id}', + 'path' => 'gmail/v1/users/{userId}/settings/filters/{id}', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -812,7 +825,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'list' => array( - 'path' => '{userId}/settings/filters', + 'path' => 'gmail/v1/users/{userId}/settings/filters', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -832,7 +845,7 @@ class Google_Service_Gmail extends Google_Service array( 'methods' => array( 'create' => array( - 'path' => '{userId}/settings/forwardingAddresses', + 'path' => 'gmail/v1/users/{userId}/settings/forwardingAddresses', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -842,7 +855,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'delete' => array( - 'path' => '{userId}/settings/forwardingAddresses/{forwardingEmail}', + 'path' => 'gmail/v1/users/{userId}/settings/forwardingAddresses/{forwardingEmail}', 'httpMethod' => 'DELETE', 'parameters' => array( 'userId' => array( @@ -857,7 +870,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'get' => array( - 'path' => '{userId}/settings/forwardingAddresses/{forwardingEmail}', + 'path' => 'gmail/v1/users/{userId}/settings/forwardingAddresses/{forwardingEmail}', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -872,7 +885,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'list' => array( - 'path' => '{userId}/settings/forwardingAddresses', + 'path' => 'gmail/v1/users/{userId}/settings/forwardingAddresses', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -892,7 +905,7 @@ class Google_Service_Gmail extends Google_Service array( 'methods' => array( 'create' => array( - 'path' => '{userId}/settings/sendAs', + 'path' => 'gmail/v1/users/{userId}/settings/sendAs', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -902,7 +915,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'delete' => array( - 'path' => '{userId}/settings/sendAs/{sendAsEmail}', + 'path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}', 'httpMethod' => 'DELETE', 'parameters' => array( 'userId' => array( @@ -917,7 +930,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'get' => array( - 'path' => '{userId}/settings/sendAs/{sendAsEmail}', + 'path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -932,7 +945,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'list' => array( - 'path' => '{userId}/settings/sendAs', + 'path' => 'gmail/v1/users/{userId}/settings/sendAs', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -942,7 +955,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'patch' => array( - 'path' => '{userId}/settings/sendAs/{sendAsEmail}', + 'path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}', 'httpMethod' => 'PATCH', 'parameters' => array( 'userId' => array( @@ -957,7 +970,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'update' => array( - 'path' => '{userId}/settings/sendAs/{sendAsEmail}', + 'path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}', 'httpMethod' => 'PUT', 'parameters' => array( 'userId' => array( @@ -972,7 +985,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'verify' => array( - 'path' => '{userId}/settings/sendAs/{sendAsEmail}/verify', + 'path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/verify', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -997,7 +1010,7 @@ class Google_Service_Gmail extends Google_Service array( 'methods' => array( 'delete' => array( - 'path' => '{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}', + 'path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}', 'httpMethod' => 'DELETE', 'parameters' => array( 'userId' => array( @@ -1017,7 +1030,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'get' => array( - 'path' => '{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}', + 'path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -1037,7 +1050,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'insert' => array( - 'path' => '{userId}/settings/sendAs/{sendAsEmail}/smimeInfo', + 'path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -1052,7 +1065,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'list' => array( - 'path' => '{userId}/settings/sendAs/{sendAsEmail}/smimeInfo', + 'path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -1067,7 +1080,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'setDefault' => array( - 'path' => '{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}/setDefault', + 'path' => 'gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}/setDefault', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -1097,7 +1110,7 @@ class Google_Service_Gmail extends Google_Service array( 'methods' => array( 'delete' => array( - 'path' => '{userId}/threads/{id}', + 'path' => 'gmail/v1/users/{userId}/threads/{id}', 'httpMethod' => 'DELETE', 'parameters' => array( 'userId' => array( @@ -1112,7 +1125,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'get' => array( - 'path' => '{userId}/threads/{id}', + 'path' => 'gmail/v1/users/{userId}/threads/{id}', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -1125,18 +1138,18 @@ class Google_Service_Gmail extends Google_Service 'type' => 'string', 'required' => true, ), - 'format' => array( - 'location' => 'query', - 'type' => 'string', - ), 'metadataHeaders' => array( 'location' => 'query', 'type' => 'string', 'repeated' => true, ), + 'format' => array( + 'location' => 'query', + 'type' => 'string', + ), ), ),'list' => array( - 'path' => '{userId}/threads', + 'path' => 'gmail/v1/users/{userId}/threads', 'httpMethod' => 'GET', 'parameters' => array( 'userId' => array( @@ -1144,30 +1157,30 @@ class Google_Service_Gmail extends Google_Service 'type' => 'string', 'required' => true, ), - 'includeSpamTrash' => array( + 'pageToken' => array( 'location' => 'query', - 'type' => 'boolean', + 'type' => 'string', ), 'labelIds' => array( 'location' => 'query', 'type' => 'string', 'repeated' => true, ), - 'maxResults' => array( - 'location' => 'query', - 'type' => 'integer', - ), - 'pageToken' => array( - 'location' => 'query', - 'type' => 'string', - ), 'q' => array( 'location' => 'query', 'type' => 'string', ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'includeSpamTrash' => array( + 'location' => 'query', + 'type' => 'boolean', + ), ), ),'modify' => array( - 'path' => '{userId}/threads/{id}/modify', + 'path' => 'gmail/v1/users/{userId}/threads/{id}/modify', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -1182,7 +1195,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'trash' => array( - 'path' => '{userId}/threads/{id}/trash', + 'path' => 'gmail/v1/users/{userId}/threads/{id}/trash', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( @@ -1197,7 +1210,7 @@ class Google_Service_Gmail extends Google_Service ), ), ),'untrash' => array( - 'path' => '{userId}/threads/{id}/untrash', + 'path' => 'gmail/v1/users/{userId}/threads/{id}/untrash', 'httpMethod' => 'POST', 'parameters' => array( 'userId' => array( diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersDrafts.php b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersDrafts.php index d0ec543..fb8c652 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersDrafts.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersDrafts.php @@ -81,12 +81,12 @@ class Google_Service_Gmail_Resource_UsersDrafts extends Google_Service_Resource * * @opt_param bool includeSpamTrash Include drafts from SPAM and TRASH in the * results. - * @opt_param string maxResults Maximum number of drafts to return. * @opt_param string pageToken Page token to retrieve a specific page of results * in the list. * @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 maxResults Maximum number of drafts to return. * @return Google_Service_Gmail_ListDraftsResponse */ public function listUsersDrafts($userId, $optParams = array()) diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersHistory.php b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersHistory.php index 128bd17..6356da7 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersHistory.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersHistory.php @@ -34,11 +34,11 @@ class Google_Service_Gmail_Resource_UsersHistory extends Google_Service_Resource * used to indicate the authenticated user. * @param array $optParams Optional parameters. * - * @opt_param string historyTypes History types to be returned by the function - * @opt_param string labelId Only return messages with a label matching the ID. - * @opt_param string maxResults The maximum number of history records to return. * @opt_param string pageToken Page token to retrieve a specific page of results * in the list. + * @opt_param string labelId Only return messages with a label matching the ID. + * @opt_param string maxResults The maximum number of history records to return. + * @opt_param string historyTypes History types to be returned by the function * @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 @@ -46,7 +46,7 @@ class Google_Service_Gmail_Resource_UsersHistory extends Google_Service_Resource * 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 + * 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. diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersLabels.php b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersLabels.php index 88b33ce..8cf8158 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersLabels.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersLabels.php @@ -85,8 +85,7 @@ class Google_Service_Gmail_Resource_UsersLabels extends Google_Service_Resource return $this->call('list', array($params), "Google_Service_Gmail_ListLabelsResponse"); } /** - * Updates the specified label. This method supports patch semantics. - * (labels.patch) + * 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. diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessages.php b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessages.php index 67c737b..fa51249 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessages.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersMessages.php @@ -26,7 +26,7 @@ class Google_Service_Gmail_Resource_UsersMessages extends Google_Service_Resource { /** - * Deletes many messages by message ID. Provides no guarantees that messages + * 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 @@ -56,7 +56,7 @@ class Google_Service_Gmail_Resource_UsersMessages extends Google_Service_Resourc } /** * Immediately and permanently deletes the specified message. This operation - * cannot be undone. Prefer messages.trash instead. (messages.delete) + * 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. @@ -77,9 +77,9 @@ class Google_Service_Gmail_Resource_UsersMessages extends Google_Service_Resourc * @param string $id The ID of the message to retrieve. * @param array $optParams Optional parameters. * - * @opt_param string format The format to return the message in. * @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()) @@ -98,15 +98,15 @@ class Google_Service_Gmail_Resource_UsersMessages extends Google_Service_Resourc * @param Google_Service_Gmail_Message $postBody * @param array $optParams Optional parameters. * - * @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 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 neverMarkSpam Ignore the Gmail spam classifier decision and * never mark this email as SPAM in the mailbox. - * @opt_param bool processForCalendar Process calendar invites in the email and - * add any extracted meetings to the Google Calendar for this user. + * @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 import($userId, Google_Service_Gmail_Message $postBody, $optParams = array()) @@ -125,11 +125,11 @@ class Google_Service_Gmail_Resource_UsersMessages extends Google_Service_Resourc * @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. - * @opt_param string internalDateSource Source for Gmail's internal date of the - * message. * @return Google_Service_Gmail_Message */ public function insert($userId, Google_Service_Gmail_Message $postBody, $optParams = array()) @@ -147,15 +147,16 @@ class Google_Service_Gmail_Resource_UsersMessages extends Google_Service_Resourc * * @opt_param bool includeSpamTrash Include messages from SPAM and TRASH in the * results. - * @opt_param string labelIds Only return messages with labels that match all of - * the specified label IDs. - * @opt_param string maxResults Maximum number of messages to return. * @opt_param string pageToken Page token to retrieve a specific page of results * in the list. + * @opt_param string labelIds Only return messages with labels that match all of + * the specified label IDs. * @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. + * "from:someuser@example.com rfc822msgid:somemsgid@example.com is:unread". + * Parameter cannot be used when accessing the api using the gmail.metadata + * scope. + * @opt_param string maxResults Maximum number of messages to return. * @return Google_Service_Gmail_ListMessagesResponse */ public function listUsersMessages($userId, $optParams = array()) diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettings.php b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettings.php index ccf5d9b..6b5aac3 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettings.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettings.php @@ -29,7 +29,7 @@ class Google_Service_Gmail_Resource_UsersSettings extends Google_Service_Resourc * Gets the auto-forwarding setting for the specified account. * (settings.getAutoForwarding) * - * @param string $userId User's email address. The special value "me" can be + * @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 @@ -43,7 +43,7 @@ class Google_Service_Gmail_Resource_UsersSettings extends Google_Service_Resourc /** * Gets IMAP settings. (settings.getImap) * - * @param string $userId User's email address. The special value "me" can be + * @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 @@ -57,7 +57,7 @@ class Google_Service_Gmail_Resource_UsersSettings extends Google_Service_Resourc /** * Gets language settings. (settings.getLanguage) * - * @param string $userId User's email address. The special value "me" can be + * @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 @@ -71,7 +71,7 @@ class Google_Service_Gmail_Resource_UsersSettings extends Google_Service_Resourc /** * Gets POP settings. (settings.getPop) * - * @param string $userId User's email address. The special value "me" can be + * @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 @@ -85,7 +85,7 @@ class Google_Service_Gmail_Resource_UsersSettings extends Google_Service_Resourc /** * Gets vacation responder settings. (settings.getVacation) * - * @param string $userId User's email address. The special value "me" can be + * @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 @@ -97,13 +97,13 @@ class Google_Service_Gmail_Resource_UsersSettings extends Google_Service_Resourc return $this->call('getVacation', array($params), "Google_Service_Gmail_VacationSettings"); } /** - * Updates the auto-forwarding setting for the specified account. A verified + * 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 + * @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. @@ -118,7 +118,7 @@ class Google_Service_Gmail_Resource_UsersSettings extends Google_Service_Resourc /** * Updates IMAP settings. (settings.updateImap) * - * @param string $userId User's email address. The special value "me" can be + * @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. @@ -139,7 +139,7 @@ class Google_Service_Gmail_Resource_UsersSettings extends Google_Service_Resourc * 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 + * @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. @@ -154,7 +154,7 @@ class Google_Service_Gmail_Resource_UsersSettings extends Google_Service_Resourc /** * Updates POP settings. (settings.updatePop) * - * @param string $userId User's email address. The special value "me" can be + * @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. @@ -169,7 +169,7 @@ class Google_Service_Gmail_Resource_UsersSettings extends Google_Service_Resourc /** * Updates vacation responder settings. (settings.updateVacation) * - * @param string $userId User's email address. The special value "me" can be + * @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. diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsDelegates.php b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsDelegates.php index 1b363b5..450a2b9 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsDelegates.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsDelegates.php @@ -27,10 +27,10 @@ class Google_Service_Gmail_Resource_UsersSettingsDelegates extends Google_Servic { /** * 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. + * without sending any verification email. The delegate user must be a member + * of the same G Suite organization as the delegator user. * - * Gmail imposes limtations on the number of delegates and delegators each 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. * @@ -43,7 +43,7 @@ class Google_Service_Gmail_Resource_UsersSettingsDelegates extends Google_Servic * 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 + * @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. @@ -65,7 +65,7 @@ class Google_Service_Gmail_Resource_UsersSettingsDelegates extends Google_Servic * 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 + * @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. @@ -86,7 +86,7 @@ class Google_Service_Gmail_Resource_UsersSettingsDelegates extends Google_Servic * 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 + * @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. @@ -105,7 +105,7 @@ class Google_Service_Gmail_Resource_UsersSettingsDelegates extends Google_Servic * 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 + * @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 diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsForwardingAddresses.php b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsForwardingAddresses.php index b0e2508..5c39771 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsForwardingAddresses.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsForwardingAddresses.php @@ -26,7 +26,7 @@ class Google_Service_Gmail_Resource_UsersSettingsForwardingAddresses extends Google_Service_Resource { /** - * Creates a forwarding address. If ownership verification is required, a + * 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. @@ -34,7 +34,7 @@ class Google_Service_Gmail_Resource_UsersSettingsForwardingAddresses extends Goo * 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 + * @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. @@ -53,7 +53,7 @@ class Google_Service_Gmail_Resource_UsersSettingsForwardingAddresses extends Goo * 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 + * @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. @@ -67,7 +67,7 @@ class Google_Service_Gmail_Resource_UsersSettingsForwardingAddresses extends Goo /** * Gets the specified forwarding address. (forwardingAddresses.get) * - * @param string $userId User's email address. The special value "me" can be + * @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. @@ -83,7 +83,7 @@ class Google_Service_Gmail_Resource_UsersSettingsForwardingAddresses extends Goo * Lists the forwarding addresses for the specified account. * (forwardingAddresses.listUsersSettingsForwardingAddresses) * - * @param string $userId User's email address. The special value "me" can be + * @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 diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAs.php b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAs.php index f3c45cf..76ecb2f 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAs.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAs.php @@ -26,18 +26,18 @@ class Google_Service_Gmail_Resource_UsersSettingsSendAs extends Google_Service_Resource { /** - * Creates a custom "from" send-as alias. If an SMTP MSA is specified, Gmail + * 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 + * 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. + * 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 + * @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. @@ -50,13 +50,13 @@ class Google_Service_Gmail_Resource_UsersSettingsSendAs extends Google_Service_R return $this->call('create', array($params), "Google_Service_Gmail_SendAs"); } /** - * Deletes the specified send-as alias. Revokes any verification that may have + * 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 + * @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. @@ -68,10 +68,10 @@ class Google_Service_Gmail_Resource_UsersSettingsSendAs extends Google_Service_R return $this->call('delete', array($params)); } /** - * Gets the specified send-as alias. Fails with an HTTP 404 error if the + * 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 + * @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. @@ -84,11 +84,11 @@ class Google_Service_Gmail_Resource_UsersSettingsSendAs extends Google_Service_R return $this->call('get', array($params), "Google_Service_Gmail_SendAs"); } /** - * Lists the send-as aliases for the specified account. The result includes the + * 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 + * @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 @@ -100,14 +100,9 @@ class Google_Service_Gmail_Resource_UsersSettingsSendAs extends Google_Service_R return $this->call('list', array($params), "Google_Service_Gmail_ListSendAsResponse"); } /** - * Updates a send-as alias. If a signature is provided, Gmail will sanitize the - * HTML before saving it with the alias. + * Patch the specified send-as alias. (sendAs.patch) * - * Addresses other than the primary address for the account can only be updated - * by service account clients that have been delegated domain-wide authority. - * This method supports patch semantics. (sendAs.patch) - * - * @param string $userId User's email address. The special value "me" can be + * @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 @@ -121,14 +116,14 @@ class Google_Service_Gmail_Resource_UsersSettingsSendAs extends Google_Service_R return $this->call('patch', array($params), "Google_Service_Gmail_SendAs"); } /** - * Updates a send-as alias. If a signature is provided, Gmail will sanitize the + * 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 + * @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 @@ -148,7 +143,7 @@ class Google_Service_Gmail_Resource_UsersSettingsSendAs extends Google_Service_R * 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 + * @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. diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersThreads.php b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersThreads.php index b8909c4..341a7db 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersThreads.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersThreads.php @@ -48,9 +48,9 @@ class Google_Service_Gmail_Resource_UsersThreads extends Google_Service_Resource * @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. + * @opt_param string format The format to return the messages in. * @return Google_Service_Gmail_Thread */ public function get($userId, $id, $optParams = array()) @@ -66,17 +66,17 @@ class Google_Service_Gmail_Resource_UsersThreads extends Google_Service_Resource * used to indicate the authenticated user. * @param array $optParams Optional parameters. * - * @opt_param bool includeSpamTrash Include threads from SPAM and TRASH in the - * results. - * @opt_param string labelIds Only return threads with labels that match all of - * the specified label IDs. - * @opt_param string maxResults Maximum number of threads to return. * @opt_param string pageToken Page token to retrieve a specific page of results * in the list. + * @opt_param string labelIds Only return threads with labels that match all of + * the specified label IDs. * @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 maxResults Maximum number of threads to return. + * @opt_param bool includeSpamTrash Include threads from SPAM and TRASH in the + * results. * @return Google_Service_Gmail_ListThreadsResponse */ public function listUsersThreads($userId, $optParams = array()) diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient/src/Google/Client.php b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient/src/Google/Client.php index e1acef1..6f1fcfd 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient/src/Google/Client.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient/src/Google/Client.php @@ -38,7 +38,7 @@ use Monolog\Handler\SyslogHandler as MonologSyslogHandler; */ class Google_Client { - const LIBVER = "2.2.3"; + const LIBVER = "2.4.1"; const USER_AGENT_SUFFIX = "google-api-php-client/"; const OAUTH2_REVOKE_URI = 'https://oauth2.googleapis.com/revoke'; const OAUTH2_TOKEN_URI = 'https://oauth2.googleapis.com/token'; @@ -142,6 +142,10 @@ class Google_Client // 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 ); @@ -412,6 +416,17 @@ class Google_Client } /** + * 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 */ @@ -789,12 +804,31 @@ class Google_Client */ public function execute(RequestInterface $request, $expectedClass = null) { - $request = $request->withHeader( - 'User-Agent', - $this->config['application_name'] - . " " . self::USER_AGENT_SUFFIX - . $this->getLibraryVersion() - ); + $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 @@ -1056,6 +1090,18 @@ class Google_Client 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() { $options = ['exceptions' => false]; diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient/src/Google/Http/MediaFileUpload.php b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient/src/Google/Http/MediaFileUpload.php index 600e678..f4ee976 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient/src/Google/Http/MediaFileUpload.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient/src/Google/Http/MediaFileUpload.php @@ -67,9 +67,11 @@ class Google_Http_MediaFileUpload private $httpResultCode; /** - * @param $mimeType string - * @param $data string The bytes you want to upload. - * @param $resumable bool + * @param Google_Client $client + * @param RequestInterface $request + * @param string $mimeType + * @param string $data The bytes you want to upload. + * @param bool $resumable * @param bool $chunkSize File will be uploaded in chunks of this many bytes. * only used if resumable=True */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient/src/Google/Service/Resource.php b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient/src/Google/Service/Resource.php index 1f3d371..77070fc 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient/src/Google/Service/Resource.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/apiclient/src/Google/Service/Resource.php @@ -294,7 +294,7 @@ class Google_Service_Resource } if (count($queryVars)) { - $requestUrl .= '?' . implode($queryVars, '&'); + $requestUrl .= '?' . implode('&', $queryVars); } return $requestUrl; diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/AccessToken.php b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/AccessToken.php index a60494c..87344fa 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/AccessToken.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/AccessToken.php @@ -17,6 +17,8 @@ namespace Google\Auth; +use DateTime; +use Exception; use Firebase\JWT\ExpiredException; use Firebase\JWT\JWT; use Firebase\JWT\SignatureInvalidException; @@ -25,9 +27,16 @@ use Google\Auth\HttpHandler\HttpClientCache; use Google\Auth\HttpHandler\HttpHandlerFactory; use GuzzleHttp\Psr7; use GuzzleHttp\Psr7\Request; +use InvalidArgumentException; use phpseclib\Crypt\RSA; use phpseclib\Math\BigInteger; use Psr\Cache\CacheItemPoolInterface; +use RuntimeException; +use SimpleJWT\InvalidTokenException; +use SimpleJWT\JWT as SimpleJWT; +use SimpleJWT\Keys\KeyFactory; +use SimpleJWT\Keys\KeySet; +use UnexpectedValueException; /** * Wrapper around Google Access Tokens which provides convenience functions. @@ -37,6 +46,8 @@ use Psr\Cache\CacheItemPoolInterface; class AccessToken { const FEDERATED_SIGNON_CERT_URL = 'https://www.googleapis.com/oauth2/v3/certs'; + const IAP_CERT_URL = 'https://www.gstatic.com/iap/verify/public_key-jwk'; + const IAP_ISSUER = 'https://cloud.google.com/iap'; const OAUTH2_ISSUER = 'accounts.google.com'; const OAUTH2_ISSUER_HTTPS = 'https://accounts.google.com'; const OAUTH2_REVOKE_URI = 'https://oauth2.googleapis.com/revoke'; @@ -59,19 +70,9 @@ class AccessToken callable $httpHandler = null, CacheItemPoolInterface $cache = null ) { - // @codeCoverageIgnoreStart - if (!class_exists('phpseclib\Crypt\RSA')) { - throw new \RuntimeException('Please require phpseclib/phpseclib v2 to use this utility.'); - } - // @codeCoverageIgnoreEnd - $this->httpHandler = $httpHandler ?: HttpHandlerFactory::build(HttpClientCache::getHttpClient()); $this->cache = $cache ?: new MemoryCacheItemPool(); - $this->configureJwtService(); - - // set phpseclib constants if applicable - $this->setPhpsecConstants(); } /** @@ -85,87 +86,215 @@ class AccessToken * Configuration options. * * @type string $audience The indended recipient of the token. + * @type string $issuer The intended issuer of the token. * @type string $certsLocation The location (remote or local) from which * to retrieve certificates, if not cached. This value should only be * provided in limited circumstances in which you are sure of the * behavior. + * @type string $cacheKey The cache key of the cached certs. Defaults to + * the sha1 of $certsLocation if provided, otherwise is set to + * "federated_signon_certs_v3". + * @type bool $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 \RuntimeException If certs could not be retrieved from a remote location. + * @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; - - unset($options['audience'], $options['certsLocation']); + $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. - // allow the loop to complete unless a known bad result is encountered. - $certs = $this->getFederatedSignOnCerts($certsLocation, $options); - foreach ($certs as $cert) { - $rsa = new RSA(); - $rsa->loadKey([ - 'n' => new BigInteger($this->callJwtStatic('urlsafeB64Decode', [ - $cert['n'] - ]), 256), - 'e' => new BigInteger($this->callJwtStatic('urlsafeB64Decode', [ - $cert['e'] - ]), 256) - ]); - - try { - $pubkey = $rsa->getPublicKey(); - $payload = $this->callJwtStatic('decode', [ - $token, - $pubkey, - ['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 = [self::OAUTH2_ISSUER, self::OAUTH2_ISSUER_HTTPS]; - if (!isset($payload->iss) || !in_array($payload->iss, $issuers)) { - return false; - } - - return (array) $payload; - } catch (ExpiredException $e) { - return false; - } catch (\ExpiredException $e) { - // (firebase/php-jwt 2) - return false; - } catch (SignatureInvalidException $e) { - // continue - } catch (\SignatureInvalidException $e) { - // continue (firebase/php-jwt 2) - } catch (\DomainException $e) { - // continue + $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 (ExpiredException $e) { // firebase/php-jwt 3+ + } catch (\ExpiredException $e) { // firebase/php-jwt 2 + } catch (SignatureInvalidException $e) { // firebase/php-jwt 3+ + } catch (\SignatureInvalidException $e) { // firebase/php-jwt 2 + } catch (InvalidTokenException $e) { // simplejwt + } catch (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 KeySet(); + foreach ($certs as $cert) { + $jwkset->add(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 RSA(); + $rsa->loadKey([ + 'n' => new BigInteger($this->callJwtStatic('urlsafeB64Decode', [ + $cert['n'], + ]), 256), + 'e' => new 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 boolean Returns True if the revocation was successful, otherwise False. + * @return bool Returns True if the revocation was successful, otherwise False. */ public function revoke($token, array $options = []) { @@ -198,11 +327,11 @@ class AccessToken * @param string $location The location from which to retrieve certs. * @param array $options [optional] Configuration options. * @return array - * @throws \InvalidArgumentException If received certs are in an invalid format. + * @throws InvalidArgumentException If received certs are in an invalid format. */ - private function getFederatedSignOnCerts($location, array $options = []) + private function getCerts($location, $cacheKey, array $options = []) { - $cacheItem = $this->cache->getItem('federated_signon_certs_v3'); + $cacheItem = $this->cache->getItem($cacheKey); $certs = $cacheItem ? $cacheItem->get() : null; $gotNewCerts = false; @@ -213,15 +342,20 @@ class AccessToken } if (!isset($certs['keys'])) { - throw new \InvalidArgumentException( - 'federated sign-on certs expects "keys" to be set' + 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->expiresAt(new DateTime('+1 hour')); $cacheItem->set($certs); $this->cache->save($cacheItem); } @@ -234,17 +368,16 @@ class AccessToken * * @param $url string location * @param array $options [optional] Configuration options. - * @throws \RuntimeException * @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. + * @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( + throw new InvalidArgumentException(sprintf( 'Failed to retrieve verification certificates from path: %s.', $url )); @@ -260,26 +393,30 @@ class AccessToken return json_decode((string) $response->getBody(), true); } - throw new \RuntimeException(sprintf( + throw new RuntimeException(sprintf( 'Failed to retrieve verification certificates: "%s".', $response->getBody()->getContents() ), $response->getStatusCode()); } - /** - * Set required defaults for JWT. - */ - private function configureJwtService() + private function checkAndInitializePhpsec() { - $class = class_exists('Firebase\JWT\JWT') - ? 'Firebase\JWT\JWT' - : '\JWT'; - - if (property_exists($class, 'leeway') && $class::$leeway < 1) { - // Ensures JWT leeway is at least 1 - // @see https://github.com/google/google-api-php-client/issues/827 - $class::$leeway = 1; + // @codeCoverageIgnoreStart + if (!class_exists('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('SimpleJWT\JWT')) { + throw new RuntimeException('Please require kelvinmo/simplejwt ^0.2 to use this utility.'); + } + // @codeCoverageIgnoreEnd } /** @@ -317,4 +454,31 @@ class AccessToken : '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/google/auth/src/ApplicationDefaultCredentials.php b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/ApplicationDefaultCredentials.php index 1cfca8e..c99beb1 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/ApplicationDefaultCredentials.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/ApplicationDefaultCredentials.php @@ -20,11 +20,13 @@ namespace Google\Auth; use DomainException; use Google\Auth\Credentials\AppIdentityCredentials; use Google\Auth\Credentials\GCECredentials; +use Google\Auth\Credentials\ServiceAccountCredentials; use Google\Auth\HttpHandler\HttpClientCache; use Google\Auth\HttpHandler\HttpHandlerFactory; use Google\Auth\Middleware\AuthTokenMiddleware; use Google\Auth\Subscriber\AuthTokenSubscriber; use GuzzleHttp\Client; +use InvalidArgumentException; use Psr\Cache\CacheItemPoolInterface; /** @@ -121,8 +123,9 @@ class ApplicationDefaultCredentials } /** - * Obtains the default FetchAuthTokenInterface implementation to use - * in this environment. + * 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. @@ -165,7 +168,97 @@ class ApplicationDefaultCredentials } if (is_null($creds)) { - throw new \DomainException(self::notFound()); + throw new DomainException(self::notFound()); + } + if (!is_null($cache)) { + $creds = new 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 + * + * @return AuthTokenMiddleware + * + * @throws DomainException if no implementation can be obtained. + */ + public static function getIdTokenMiddleware( + $targetAudience, + callable $httpHandler = null, + array $cacheConfig = null, + CacheItemPoolInterface $cache = null + + ) { + $creds = self::getIdTokenCredentials($targetAudience, $httpHandler, $cacheConfig, $cache); + + return new 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 + * + * @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, + CacheItemPoolInterface $cache = null + ) { + $creds = null; + $jsonKey = CredentialsLoader::fromEnv() + ?: CredentialsLoader::fromWellKnownFile(); + + if (!$httpHandler) { + if (!($client = HttpClientCache::getHttpClient())) { + $client = new Client(); + HttpClientCache::setHttpClient($client); + } + + $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 ServiceAccountCredentials(null, $jsonKey, null, $targetAudience); + } elseif (GCECredentials::onGce($httpHandler)) { + $creds = new GCECredentials(null, null, $targetAudience); + } + + if (is_null($creds)) { + throw new DomainException(self::notFound()); } if (!is_null($cache)) { $creds = new FetchAuthTokenCache($creds, $cacheConfig, $cache); diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Cache/SysVCacheItemPool.php b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Cache/SysVCacheItemPool.php index 361dcfb..5280eee 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Cache/SysVCacheItemPool.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Cache/SysVCacheItemPool.php @@ -76,7 +76,7 @@ class SysVCacheItemPool implements CacheItemPoolInterface public function __construct($options = []) { if (! extension_loaded('sysvshm')) { - throw \RuntimeException( + throw new \RuntimeException( 'sysvshm extension is required to use this ItemPool'); } $this->options = $options + [ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/AppIdentityCredentials.php b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/AppIdentityCredentials.php index 31342e6..5244b70 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/AppIdentityCredentials.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/AppIdentityCredentials.php @@ -24,6 +24,7 @@ namespace Google\Auth\Credentials; */ use google\appengine\api\app_identity\AppIdentityService; use Google\Auth\CredentialsLoader; +use Google\Auth\ProjectIdProviderInterface; use Google\Auth\SignBlobInterface; /** @@ -32,35 +33,42 @@ use Google\Auth\SignBlobInterface; * It can be used to authorize requests using the AuthTokenMiddleware or * AuthTokenSubscriber, but will only succeed if being run on App Engine: * - * use Google\Auth\Credentials\AppIdentityCredentials; - * use Google\Auth\Middleware\AuthTokenMiddleware; - * use GuzzleHttp\Client; - * use GuzzleHttp\HandlerStack; + * Example: + * ``` + * use Google\Auth\Credentials\AppIdentityCredentials; + * use Google\Auth\Middleware\AuthTokenMiddleware; + * use GuzzleHttp\Client; + * use GuzzleHttp\HandlerStack; * - * $gae = new AppIdentityCredentials('https://www.googleapis.com/auth/books'); - * $middleware = new AuthTokenMiddleware($gae); - * $stack = HandlerStack::create(); - * $stack->push($middleware); + * $gae = new AppIdentityCredentials('https://www.googleapis.com/auth/books'); + * $middleware = new AuthTokenMiddleware($gae); + * $stack = HandlerStack::create(); + * $stack->push($middleware); * - * $client = new Client([ - * 'handler' => $stack, - * 'base_uri' => 'https://www.googleapis.com/books/v1', - * 'auth' => 'google_auth' - * ]); + * $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'); + * $res = $client->get('volumes?q=Henry+David+Thoreau&country=US'); + * ``` */ -class AppIdentityCredentials extends CredentialsLoader implements SignBlobInterface +class AppIdentityCredentials extends CredentialsLoader implements + SignBlobInterface, + ProjectIdProviderInterface { /** * Result of fetchAuthToken. * - * @array + * @var array */ protected $lastReceivedToken; /** * Array of OAuth2 scopes to be requested. + * + * @var array */ private $scope; @@ -69,6 +77,9 @@ class AppIdentityCredentials extends CredentialsLoader implements SignBlobInterf */ private $clientName; + /** + * @param array $scope One or more scopes. + */ public function __construct($scope = array()) { $this->scope = $scope; @@ -143,6 +154,25 @@ class AppIdentityCredentials extends CredentialsLoader implements SignBlobInterf return base64_encode(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 AppIdentityService::getApplicationId(); + } + /** * Get the client name from AppIdentityService. * diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/GCECredentials.php b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/GCECredentials.php index 24cdd4a..461e36f 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/GCECredentials.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/GCECredentials.php @@ -21,11 +21,13 @@ use Google\Auth\CredentialsLoader; use Google\Auth\HttpHandler\HttpClientCache; use Google\Auth\HttpHandler\HttpHandlerFactory; use Google\Auth\Iam; +use Google\Auth\ProjectIdProviderInterface; use Google\Auth\SignBlobInterface; use GuzzleHttp\Exception\ClientException; use GuzzleHttp\Exception\RequestException; use GuzzleHttp\Exception\ServerException; use GuzzleHttp\Psr7\Request; +use InvalidArgumentException; /** * GCECredentials supports authorization on Google Compute Engine. @@ -51,7 +53,9 @@ use GuzzleHttp\Psr7\Request; * * $res = $client->get('myproject/taskqueues/myqueue'); */ -class GCECredentials extends CredentialsLoader implements SignBlobInterface +class GCECredentials extends CredentialsLoader implements + SignBlobInterface, + ProjectIdProviderInterface { const cacheKey = 'GOOGLE_AUTH_PHP_GCE'; @@ -68,11 +72,21 @@ class GCECredentials extends CredentialsLoader implements SignBlobInterface */ 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. */ @@ -111,10 +125,15 @@ class GCECredentials extends CredentialsLoader implements SignBlobInterface protected $lastReceivedToken; /** - * @var string + * @var string|null */ private $clientName; + /** + * @var string|null + */ + private $projectId; + /** * @var Iam|null */ @@ -125,15 +144,26 @@ class GCECredentials extends CredentialsLoader implements SignBlobInterface */ private $tokenUri; + /** + * @var string + */ + private $targetAudience; + /** * @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. */ - public function __construct(Iam $iam = null, $scope = null) + public function __construct(Iam $iam = null, $scope = null, $targetAudience = null) { $this->iam = $iam; + if ($scope && $targetAudience) { + throw new InvalidArgumentException( + 'Scope and targetAudience cannot both be supplied'); + } + $tokenUri = self::getTokenUri(); if ($scope) { if (is_string($scope)) { @@ -143,6 +173,13 @@ class GCECredentials extends CredentialsLoader implements SignBlobInterface $scope = implode(',', $scope); $tokenUri = $tokenUri . '?scopes='. $scope; + } elseif ($targetAudience) { + $tokenUri = sprintf('http://%s/computeMetadata/%s?audience=%s', + self::METADATA_IP, + self::ID_TOKEN_URI_PATH, + $targetAudience + ); + $this->targetAudience = $targetAudience; } $this->tokenUri = $tokenUri; @@ -172,6 +209,18 @@ class GCECredentials extends CredentialsLoader implements SignBlobInterface return $base . self::CLIENT_ID_URI_PATH; } + /** + * 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. @@ -189,8 +238,7 @@ class GCECredentials extends CredentialsLoader implements SignBlobInterface * If $httpHandler is not specified a the default HttpHandler is used. * * @param callable $httpHandler callback which delivers psr7 request - * - * @return true if this a GCEInstance false otherwise + * @return bool True if this a GCEInstance, false otherwise */ public static function onGce(callable $httpHandler = null) { @@ -234,11 +282,14 @@ class GCECredentials extends CredentialsLoader implements SignBlobInterface * * @param callable $httpHandler callback which delivers psr7 request * - * @return array A set of auth related metadata, containing the following - * keys: + * @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 */ @@ -255,8 +306,13 @@ class GCECredentials extends CredentialsLoader implements SignBlobInterface return array(); // return an empty array with no access token } - $json = $this->getFromMetadata($httpHandler, $this->tokenUri); - if (null === $json = json_decode($json, true)) { + $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'); } @@ -351,6 +407,36 @@ class GCECredentials extends CredentialsLoader implements SignBlobInterface 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 + ?: HttpHandlerFactory::build(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. * diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/ServiceAccountCredentials.php b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/ServiceAccountCredentials.php index 7e801b7..1bab948 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/ServiceAccountCredentials.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/ServiceAccountCredentials.php @@ -18,9 +18,12 @@ namespace Google\Auth\Credentials; use Google\Auth\CredentialsLoader; +use Google\Auth\GetQuotaProjectInterface; use Google\Auth\OAuth2; +use Google\Auth\ProjectIdProviderInterface; use Google\Auth\ServiceAccountSignerTrait; use Google\Auth\SignBlobInterface; +use InvalidArgumentException; /** * ServiceAccountCredentials supports authorization using a Google service @@ -55,7 +58,10 @@ use Google\Auth\SignBlobInterface; * * $res = $client->get('myproject/taskqueues/myqueue'); */ -class ServiceAccountCredentials extends CredentialsLoader implements SignBlobInterface +class ServiceAccountCredentials extends CredentialsLoader implements + GetQuotaProjectInterface, + SignBlobInterface, + ProjectIdProviderInterface { use ServiceAccountSignerTrait; @@ -66,6 +72,18 @@ class ServiceAccountCredentials extends CredentialsLoader implements SignBlobInt */ protected $auth; + /** + * The quota project associated with the JSON credentials + * + * @var string + */ + protected $quotaProject; + + /* + * @var string|null + */ + protected $projectId; + /** * Create a new ServiceAccountCredentials. * @@ -75,11 +93,13 @@ class ServiceAccountCredentials extends CredentialsLoader implements SignBlobInt * 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 + $sub = null, + $targetAudience = null ) { if (is_string($jsonKey)) { if (!file_exists($jsonKey)) { @@ -98,6 +118,17 @@ class ServiceAccountCredentials extends CredentialsLoader implements SignBlobInt throw new \InvalidArgumentException( 'json key is missing the private_key field'); } + if (array_key_exists('quota_project', $jsonKey)) { + $this->quotaProject = (string) $jsonKey['quota_project']; + } + if ($scope && $targetAudience) { + throw new InvalidArgumentException( + 'Scope and targetAudience cannot both be supplied'); + } + $additionalClaims = []; + if ($targetAudience) { + $additionalClaims = ['target_audience' => $targetAudience]; + } $this->auth = new OAuth2([ 'audience' => self::TOKEN_CREDENTIAL_URI, 'issuer' => $jsonKey['client_email'], @@ -106,7 +137,12 @@ class ServiceAccountCredentials extends CredentialsLoader implements SignBlobInt 'signingKey' => $jsonKey['private_key'], 'sub' => $sub, 'tokenCredentialUri' => self::TOKEN_CREDENTIAL_URI, + 'additionalClaims' => $additionalClaims, ]); + + $this->projectId = isset($jsonKey['project_id']) + ? $jsonKey['project_id'] + : null; } /** @@ -144,6 +180,19 @@ class ServiceAccountCredentials extends CredentialsLoader implements SignBlobInt 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; + } + /** * Updates metadata with the authorization token. * @@ -195,4 +244,14 @@ class ServiceAccountCredentials extends CredentialsLoader implements SignBlobInt { 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/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php index cf9e06a..b3a2517 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php @@ -18,7 +18,9 @@ namespace Google\Auth\Credentials; use Google\Auth\CredentialsLoader; +use Google\Auth\GetQuotaProjectInterface; use Google\Auth\OAuth2; +use Google\Auth\ProjectIdProviderInterface; use Google\Auth\ServiceAccountSignerTrait; use Google\Auth\SignBlobInterface; @@ -31,7 +33,10 @@ use Google\Auth\SignBlobInterface; * console (via 'Generate new Json Key'). It is not part of any OAuth2 * flow, rather it creates a JWT and sends that as a credential. */ -class ServiceAccountJwtAccessCredentials extends CredentialsLoader implements SignBlobInterface +class ServiceAccountJwtAccessCredentials extends CredentialsLoader implements + GetQuotaProjectInterface, + SignBlobInterface, + ProjectIdProviderInterface { use ServiceAccountSignerTrait; @@ -42,6 +47,11 @@ class ServiceAccountJwtAccessCredentials extends CredentialsLoader implements Si */ protected $auth; + /** + * The quota project associated with the JSON credentials + */ + protected $quotaProject; + /** * Create a new ServiceAccountJwtAccessCredentials. * @@ -67,12 +77,19 @@ class ServiceAccountJwtAccessCredentials extends CredentialsLoader implements Si throw new \InvalidArgumentException( 'json key is missing the private_key field'); } + if (array_key_exists('quota_project', $jsonKey)) { + $this->quotaProject = (string) $jsonKey['quota_project']; + } $this->auth = new 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; } /** @@ -135,6 +152,19 @@ class ServiceAccountJwtAccessCredentials extends CredentialsLoader implements Si 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. * @@ -147,4 +177,14 @@ class ServiceAccountJwtAccessCredentials extends CredentialsLoader implements Si { 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/google/auth/src/Credentials/UserRefreshCredentials.php b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/UserRefreshCredentials.php index 74dcad8..a42665d 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/UserRefreshCredentials.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/Credentials/UserRefreshCredentials.php @@ -18,6 +18,7 @@ namespace Google\Auth\Credentials; use Google\Auth\CredentialsLoader; +use Google\Auth\GetQuotaProjectInterface; use Google\Auth\OAuth2; /** @@ -31,7 +32,7 @@ use Google\Auth\OAuth2; * * @see [Application Default Credentials](http://goo.gl/mkAHpZ) */ -class UserRefreshCredentials extends CredentialsLoader +class UserRefreshCredentials extends CredentialsLoader implements GetQuotaProjectInterface { const CLOUD_SDK_CLIENT_ID = '764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.com'; @@ -45,6 +46,11 @@ class UserRefreshCredentials extends CredentialsLoader */ protected $auth; + /** + * The quota project associated with the JSON credentials + */ + protected $quotaProject; + /** * Create a new UserRefreshCredentials. * @@ -85,7 +91,11 @@ class UserRefreshCredentials extends CredentialsLoader 'scope' => $scope, 'tokenCredentialUri' => self::TOKEN_CREDENTIAL_URI, ]); + if (array_key_exists('quota_project', $jsonKey)) { + $this->quotaProject = (string) $jsonKey['quota_project']; + } if ($jsonKey['client_id'] === self::CLOUD_SDK_CLIENT_ID + && is_null($this->quotaProject) && getenv(self::SUPPRESS_CLOUD_SDK_CREDS_WARNING_ENV) !== 'true') { trigger_error( 'Your application has authenticated using end user credentials ' @@ -134,4 +144,14 @@ class UserRefreshCredentials extends CredentialsLoader { 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/google/auth/src/FetchAuthTokenCache.php b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/FetchAuthTokenCache.php index 7824d15..205ef66 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/FetchAuthTokenCache.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/FetchAuthTokenCache.php @@ -23,7 +23,11 @@ use Psr\Cache\CacheItemPoolInterface; * A class to implement caching for any object implementing * FetchAuthTokenInterface */ -class FetchAuthTokenCache implements FetchAuthTokenInterface, SignBlobInterface +class FetchAuthTokenCache implements + FetchAuthTokenInterface, + GetQuotaProjectInterface, + SignBlobInterface, + ProjectIdProviderInterface { use CacheTrait; @@ -139,4 +143,37 @@ class FetchAuthTokenCache implements FetchAuthTokenInterface, 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 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 ProjectIdProviderInterface) { + throw new \RuntimeException( + 'Credentials fetcher does not implement ' . + 'Google\Auth\ProvidesProjectIdInterface' + ); + } + + return $this->fetcher->getProjectId($httpHandler); + } } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/GetQuotaProjectInterface.php b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/GetQuotaProjectInterface.php new file mode 100644 index 0000000..517f062 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/GetQuotaProjectInterface.php @@ -0,0 +1,33 @@ +withHeader('authorization', 'Bearer ' . $this->fetchToken()); + if ($quotaProject = $this->getQuotaProject()) { + $request = $request->withHeader( + GetQuotaProjectInterface::X_GOOG_USER_PROJECT_HEADER, + $quotaProject + ); + } + return $handler($request, $options); }; } @@ -122,5 +130,16 @@ class AuthTokenMiddleware 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 GetQuotaProjectInterface) { + return $this->fetcher->getQuotaProject(); + } } } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/ProjectIdProviderInterface.php b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/ProjectIdProviderInterface.php new file mode 100644 index 0000000..0a41f78 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/google/auth/src/ProjectIdProviderInterface.php @@ -0,0 +1,32 @@ +tokenCallback, $this->fetcher->getCacheKey(), $auth_tokens['access_token']); } } + + if ($quotaProject = $this->getQuotaProject()) { + $request->setHeader( + GetQuotaProjectInterface::X_GOOG_USER_PROJECT_HEADER, + $quotaProject + ); + } + } + + private function getQuotaProject() + { + if ($this->fetcher instanceof GetQuotaProjectInterface) { + return $this->fetcher->getQuotaProject(); + } } } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/Dockerfile b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/Dockerfile deleted file mode 100644 index f6a0952..0000000 --- a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM composer:latest as setup - -RUN mkdir /guzzle - -WORKDIR /guzzle - -RUN set -xe \ - && composer init --name=guzzlehttp/test --description="Simple project for testing Guzzle scripts" --author="Márk Sági-Kazár " --no-interaction \ - && composer require guzzlehttp/guzzle - - -FROM php:7.3 - -RUN mkdir /guzzle - -WORKDIR /guzzle - -COPY --from=setup /guzzle /guzzle diff --git a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Client.php b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Client.php index 0f43c71..cd9a635 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Client.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Client.php @@ -2,11 +2,12 @@ namespace GuzzleHttp; use GuzzleHttp\Cookie\CookieJar; +use GuzzleHttp\Exception\InvalidArgumentException; use GuzzleHttp\Promise; use GuzzleHttp\Psr7; -use Psr\Http\Message\UriInterface; use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\UriInterface; /** * @method ResponseInterface get(string|UriInterface $uri, array $options = []) @@ -75,6 +76,12 @@ class Client implements ClientInterface $this->configureDefaults($config); } + /** + * @param string $method + * @param array $args + * + * @return Promise\PromiseInterface + */ public function __call($method, $args) { if (count($args) < 1) { @@ -89,6 +96,14 @@ class Client implements ClientInterface : $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(RequestInterface $request, array $options = []) { // Merge the base URI into the request URI if needed. @@ -100,12 +115,35 @@ class Client implements ClientInterface ); } + /** + * 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(RequestInterface $request, array $options = []) { $options[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); @@ -125,12 +163,37 @@ class Client implements ClientInterface 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[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 @@ -138,6 +201,11 @@ class Client implements ClientInterface : (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 @@ -147,6 +215,11 @@ class Client implements ClientInterface $uri = Psr7\UriResolver::resolve(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 = Utils::idnUriConvert($uri, $idnOptions); + } + return $uri->getScheme() === '' && $uri->getHost() !== '' ? $uri->withScheme('http') : $uri; } @@ -154,6 +227,7 @@ class Client implements ClientInterface * Configures the default options for a client. * * @param array $config + * @return void */ private function configureDefaults(array $config) { @@ -162,7 +236,8 @@ class Client implements ClientInterface 'http_errors' => true, 'decode_content' => true, 'verify' => true, - 'cookies' => false + 'cookies' => false, + 'idn_conversion' => true, ]; // Use the standard Linux HTTP_PROXY and HTTPS_PROXY if set. @@ -170,7 +245,7 @@ class Client implements ClientInterface // 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')) { + if (php_sapi_name() === 'cli' && getenv('HTTP_PROXY')) { $defaults['proxy']['http'] = getenv('HTTP_PROXY'); } @@ -225,7 +300,7 @@ class Client implements ClientInterface if (array_key_exists('headers', $options)) { // Allows default headers to be unset. if ($options['headers'] === null) { - $defaults['_conditional'] = null; + $defaults['_conditional'] = []; unset($options['headers']); } elseif (!is_array($options['headers'])) { throw new \InvalidArgumentException('headers must be an array'); @@ -251,8 +326,7 @@ class Client implements ClientInterface * The URI of the request is not modified and the request options are used * as-is without merging in default options. * - * @param RequestInterface $request - * @param array $options + * @param array $options See \GuzzleHttp\RequestOptions. * * @return Promise\PromiseInterface */ @@ -271,6 +345,7 @@ class Client implements ClientInterface } $request = $this->applyOptions($request, $options); + /** @var HandlerStack $handler */ $handler = $options['handler']; try { @@ -411,6 +486,11 @@ class Client implements ClientInterface 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 ' diff --git a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/ClientInterface.php b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/ClientInterface.php index 5b37085..76872dd 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/ClientInterface.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/ClientInterface.php @@ -1,8 +1,8 @@ cookies as $cookie) { @@ -103,6 +103,8 @@ class CookieJar implements CookieJarInterface return $cookie; } } + + return null; } public function toArray() diff --git a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php index 2cf298a..6ee1188 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php @@ -58,9 +58,9 @@ interface CookieJarInterface extends \Countable, \IteratorAggregate * arguments, then the cookie with the specified name, path and domain is * removed. * - * @param string $domain Clears cookies matching a domain - * @param string $path Clears cookies matching a domain and path - * @param string $name Clears cookies matching a domain, path, and name + * @param string|null $domain Clears cookies matching a domain + * @param string|null $path Clears cookies matching a domain and path + * @param string|null $name Clears cookies matching a domain, path, and name * * @return CookieJarInterface */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php index f38ca86..12dd081 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php @@ -1,9 +1,9 @@ getBody(); - - if (!$body->isSeekable() || !$body->isReadable()) { - return null; - } - - $size = $body->getSize(); - - if ($size === 0) { - return null; - } - - $summary = $body->read(120); - $body->rewind(); - - if ($size > 120) { - $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]/', $summary)) { - return null; - } - - return $summary; + return \GuzzleHttp\Psr7\get_message_body_summary($response); } /** - * Obfuscates URI if there is an username and a password present + * Obfuscates URI if there is a username and a password present * * @param UriInterface $uri * * @return UriInterface */ - private static function obfuscateUri($uri) + private static function obfuscateUri(UriInterface $uri) { $userInfo = $uri->getUserInfo(); diff --git a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php index e349bb4..4a28a96 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php @@ -1,8 +1,8 @@ selectTimeout = 1; } + + $this->options = isset($options['options']) ? $options['options'] : []; } public function __get($name) { if ($name === '_mh') { - return $this->_mh = curl_multi_init(); + $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(); @@ -88,7 +103,7 @@ class CurlMultiHandler { // Add any delayed handles if needed. if ($this->delays) { - $currentTime = \GuzzleHttp\_current_time(); + $currentTime = Utils::currentTime(); foreach ($this->delays as $id => $delay) { if ($currentTime >= $delay) { unset($this->delays[$id]); @@ -140,7 +155,7 @@ class CurlMultiHandler if (empty($easy->options['delay'])) { curl_multi_add_handle($this->_mh, $easy->handle); } else { - $this->delays[$id] = \GuzzleHttp\_current_time() + ($easy->options['delay'] / 1000); + $this->delays[$id] = Utils::currentTime() + ($easy->options['delay'] / 1000); } } @@ -192,7 +207,7 @@ class CurlMultiHandler private function timeToNext() { - $currentTime = \GuzzleHttp\_current_time(); + $currentTime = Utils::currentTime(); $nextTime = PHP_INT_MAX; foreach ($this->delays as $time) { if ($time < $nextTime) { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php index d5c449c..5b312bc 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php @@ -66,7 +66,7 @@ class MockHandler implements \Countable throw new \OutOfBoundsException('Mock queue is empty'); } - if (isset($options['delay'])) { + if (isset($options['delay']) && is_numeric($options['delay'])) { usleep($options['delay'] * 1000); } @@ -175,6 +175,11 @@ class MockHandler implements \Countable return count($this->queue); } + public function reset() + { + $this->queue = []; + } + private function invokeStats( RequestInterface $request, array $options, diff --git a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php index 0dedd7d..a15734a 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php @@ -1,12 +1,13 @@ each = new EachPromise($requests(), $config); } + /** + * Get promise + * + * @return PromiseInterface + */ public function promise() { return $this->each->promise(); @@ -106,6 +112,11 @@ class Pool implements PromisorInterface return $res; } + /** + * Execute callback(s) + * + * @return void + */ private static function cmpCallback(array &$options, $name, array &$results) { if (!isset($options[$name])) { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php index 2eb95f9..568a1e9 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php @@ -66,6 +66,11 @@ class PrepareBodyMiddleware return $fn(Psr7\modify_request($request, $modify), $options); } + /** + * Add expect header + * + * @return void + */ private function addExpectHeader( RequestInterface $request, array $options, diff --git a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php index bff4e4e..e4644b7 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php @@ -13,7 +13,7 @@ use Psr\Http\Message\UriInterface; * Request redirect middleware. * * Apply this middleware like other middleware using - * {@see GuzzleHttp\Middleware::redirect()}. + * {@see \GuzzleHttp\Middleware::redirect()}. */ class RedirectMiddleware { @@ -76,7 +76,7 @@ class RedirectMiddleware /** * @param RequestInterface $request * @param array $options - * @param ResponseInterface|PromiseInterface $response + * @param ResponseInterface $response * * @return ResponseInterface|PromiseInterface */ @@ -118,6 +118,11 @@ class RedirectMiddleware return $promise; } + /** + * Enable tracking on promise. + * + * @return PromiseInterface + */ private function withTracking(PromiseInterface $promise, $uri, $statusCode) { return $promise->then( @@ -135,6 +140,13 @@ class RedirectMiddleware ); } + /** + * Check for too many redirects + * + * @return void + * + * @throws TooManyRedirectsException Too many redirects. + */ private function guardMax(RequestInterface $request, array &$options) { $current = isset($options['__redirect_count']) @@ -172,13 +184,19 @@ class RedirectMiddleware // would do. $statusCode = $response->getStatusCode(); if ($statusCode == 303 || - ($statusCode <= 302 && $request->getBody() && !$options['allow_redirects']['strict']) + ($statusCode <= 302 && !$options['allow_redirects']['strict']) ) { $modify['method'] = 'GET'; $modify['body'] = ''; } - $modify['uri'] = $this->redirectUri($request, $response, $protocols); + $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 = Utils::idnUriConvert($uri, $idnOptions); + } + + $modify['uri'] = $uri; Psr7\rewind_body($request); // Add the Referer header if it is told to do so and only diff --git a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/RequestOptions.php b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/RequestOptions.php index 5c0fd19..355f658 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/RequestOptions.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/RequestOptions.php @@ -132,6 +132,14 @@ final class RequestOptions */ const HTTP_ERRORS = 'http_errors'; + /** + * idn: (bool|int, default=true) A combination of IDNA_* constants for + * idn_to_ascii() PHP's function (see "options" parameter). Set to false to + * disable IDN support completely, or to true to use the default + * configuration (IDNA_DEFAULT constant). + */ + const IDN_CONVERSION = 'idn_conversion'; + /** * json: (mixed) Adds JSON data to a request. The provided value is JSON * encoded and a Content-Type header of application/json will be added to diff --git a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/RetryMiddleware.php b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/RetryMiddleware.php index 7d40eca..5acc8c5 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/RetryMiddleware.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/RetryMiddleware.php @@ -47,11 +47,11 @@ class RetryMiddleware * * @param int $retries * - * @return int + * @return int milliseconds. */ public static function exponentialDelay($retries) { - return (int) pow(2, $retries - 1); + return (int) pow(2, $retries - 1) * 1000; } /** @@ -74,6 +74,11 @@ class RetryMiddleware ); } + /** + * Execute fulfilled closure + * + * @return mixed + */ private function onFulfilled(RequestInterface $req, array $options) { return function ($value) use ($req, $options) { @@ -90,6 +95,11 @@ class RetryMiddleware }; } + /** + * Execute rejected closure + * + * @return callable + */ private function onRejected(RequestInterface $req, array $options) { return function ($reason) use ($req, $options) { @@ -106,6 +116,9 @@ class RetryMiddleware }; } + /** + * @return self + */ private function doRetry(RequestInterface $request, array $options, ResponseInterface $response = null) { $options['delay'] = call_user_func($this->delay, ++$options['retries'], $response); diff --git a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/TransferStats.php b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/TransferStats.php index 23a22a3..87fb3c0 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/TransferStats.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/TransferStats.php @@ -18,11 +18,11 @@ final class TransferStats private $handlerErrorData; /** - * @param RequestInterface $request Request that was sent. - * @param ResponseInterface $response Response received (if any) - * @param float|null $transferTime Total handler transfer time. - * @param mixed $handlerErrorData Handler error data. - * @param array $handlerStats Handler specific stats. + * @param RequestInterface $request Request that was sent. + * @param ResponseInterface|null $response Response received (if any) + * @param float|null $transferTime Total handler transfer time. + * @param mixed $handlerErrorData Handler error data. + * @param array $handlerStats Handler specific stats. */ public function __construct( RequestInterface $request, @@ -93,7 +93,7 @@ final class TransferStats /** * Get the estimated time the request was being transferred by the handler. * - * @return float Time in seconds. + * @return float|null Time in seconds. */ public function getTransferTime() { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Utils.php b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Utils.php new file mode 100644 index 0000000..c8fc1ae --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/Utils.php @@ -0,0 +1,67 @@ +getHost()) { + $idnaVariant = defined('INTL_IDNA_VARIANT_UTS46') ? INTL_IDNA_VARIANT_UTS46 : 0; + $asciiHost = $idnaVariant === 0 + ? idn_to_ascii($uri->getHost(), $options) + : idn_to_ascii($uri->getHost(), $options, $idnaVariant, $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 InvalidArgumentException($errorMessage); + } else { + if ($uri->getHost() !== $asciiHost) { + // Replace URI only if the ASCII version is different + $uri = $uri->withHost($asciiHost); + } + } + } + + return $uri; + } +} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/functions.php b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/functions.php index 51d736d..c2afd8c 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/functions.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/guzzlehttp/guzzle/src/functions.php @@ -56,7 +56,7 @@ function describe_type($input) /** * Parses an array of header lines into an associative array of headers. * - * @param array $lines Header lines array of strings in the following + * @param iterable $lines Header lines array of strings in the following * format: "Name: Value" * @return array */ @@ -97,8 +97,8 @@ function debug_resource($value = null) * * The returned handler is not wrapped by any default middlewares. * - * @throws \RuntimeException if no viable Handler is available. * @return callable Returns the best handler for the given system. + * @throws \RuntimeException if no viable Handler is available. */ function choose_handler() { @@ -332,15 +332,3 @@ function json_encode($value, $options = 0, $depth = 512) return $json; } - -/** - * Wrapper for the hrtime() or microtime() functions - * (depending on the PHP version, one of the two is used) - * - * @return float|mixed UNIX timestamp - * @internal - */ -function _current_time() -{ - return function_exists('hrtime') ? hrtime(true) / 1e9 : microtime(true); -} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php index 46a91ff..f8ead47 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php @@ -11,6 +11,8 @@ namespace Monolog\Formatter; +use Monolog\Utils; + /** * Class FluentdFormatter * @@ -71,7 +73,7 @@ class FluentdFormatter implements FormatterInterface $message['level_name'] = $record['level_name']; } - return json_encode(array($tag, $record['datetime']->getTimestamp(), $message)); + return Utils::jsonEncode(array($tag, $record['datetime']->getTimestamp(), $message)); } public function formatBatch(array $records) diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php index dfc0b4a..9e8d2d0 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php @@ -11,6 +11,7 @@ namespace Monolog\Formatter; use Monolog\Logger; +use Monolog\Utils; /** * Formats incoming records into an HTML table @@ -133,9 +134,9 @@ class HtmlFormatter extends NormalizerFormatter $data = $this->normalize($data); if (version_compare(PHP_VERSION, '5.4.0', '>=')) { - return json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); + return Utils::jsonEncode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE, true); } - return str_replace('\\/', '/', json_encode($data)); + return str_replace('\\/', '/', Utils::jsonEncode($data, null, true)); } } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php index 2ff119e..86966b0 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php @@ -145,7 +145,7 @@ class JsonFormatter extends NormalizerFormatter return 'Over 9 levels deep, aborting normalization'; } - if (is_array($data) || $data instanceof \Traversable) { + if (is_array($data)) { $normalized = array(); $count = 1; @@ -165,6 +165,10 @@ class JsonFormatter extends NormalizerFormatter return $this->normalizeException($data); } + if (is_resource($data)) { + return parent::normalize($data); + } + return $data; } @@ -186,7 +190,7 @@ class JsonFormatter extends NormalizerFormatter $data = array( 'class' => Utils::getClass($e), 'message' => $e->getMessage(), - 'code' => $e->getCode(), + 'code' => (int) $e->getCode(), 'file' => $e->getFile().':'.$e->getLine(), ); diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php index f98e1a6..acc1fd3 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php @@ -163,7 +163,7 @@ class LineFormatter extends NormalizerFormatter return $this->toJson($data, true); } - return str_replace('\\/', '/', @json_encode($data)); + return str_replace('\\/', '/', $this->toJson($data, true)); } protected function replaceNewlines($str) diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php index eb7be84..bd9e4c0 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php @@ -87,7 +87,7 @@ class MongoDBFormatter implements FormatterInterface $formattedException = array( 'class' => Utils::getClass($exception), 'message' => $exception->getMessage(), - 'code' => $exception->getCode(), + 'code' => (int) $exception->getCode(), 'file' => $exception->getFile() . ':' . $exception->getLine(), ); diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php index 9865394..61861c8 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php @@ -129,7 +129,7 @@ class NormalizerFormatter implements FormatterInterface $data = array( 'class' => Utils::getClass($e), 'message' => $e->getMessage(), - 'code' => $e->getCode(), + 'code' => (int) $e->getCode(), 'file' => $e->getFile().':'.$e->getLine(), ); @@ -142,8 +142,8 @@ class NormalizerFormatter implements FormatterInterface $data['faultactor'] = $e->faultactor; } - if (isset($e->detail)) { - $data['detail'] = $e->detail; + if (isset($e->detail) && (is_string($e->detail) || is_object($e->detail) || is_array($e->detail))) { + $data['detail'] = is_string($e->detail) ? $e->detail : reset($e->detail); } } @@ -171,127 +171,6 @@ class NormalizerFormatter implements FormatterInterface */ protected function toJson($data, $ignoreErrors = false) { - // suppress json_encode errors since it's twitchy with some inputs - if ($ignoreErrors) { - return @$this->jsonEncode($data); - } - - $json = $this->jsonEncode($data); - - if ($json === false) { - $json = $this->handleJsonError(json_last_error(), $data); - } - - return $json; - } - - /** - * @param mixed $data - * @return string JSON encoded data or null on failure - */ - private function jsonEncode($data) - { - if (version_compare(PHP_VERSION, '5.4.0', '>=')) { - return json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); - } - - return json_encode($data); - } - - /** - * 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 - * @throws \RuntimeException if failure can't be corrected - * @return string JSON encoded data after error correction - */ - private function handleJsonError($code, $data) - { - if ($code !== JSON_ERROR_UTF8) { - $this->throwEncodeError($code, $data); - } - - if (is_string($data)) { - $this->detectAndCleanUtf8($data); - } elseif (is_array($data)) { - array_walk_recursive($data, array($this, 'detectAndCleanUtf8')); - } else { - $this->throwEncodeError($code, $data); - } - - $json = $this->jsonEncode($data); - - if ($json === false) { - $this->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 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 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 - ); - } + return Utils::jsonEncode($data, null, $ignoreErrors); } } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php index 23cf23b..68feb48 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php @@ -164,21 +164,22 @@ class BrowserConsoleHandler extends AbstractProcessingHandler private static function handleStyles($formatted) { - $args = array(static::quote('font-weight: normal')); + $args = array(); $format = '%c' . $formatted; preg_match_all('/\[\[(.*?)\]\]\{([^}]*)\}/s', $format, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); foreach (array_reverse($matches) as $match) { - $args[] = static::quote(static::handleCustomStyles($match[2][0], $match[1][0])); $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])); } - array_unshift($args, static::quote($format)); + $args[] = static::quote('font-weight: normal'); + $args[] = static::quote($format); - return $args; + return array_reverse($args); } private static function handleCustomStyles($style, $string) diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php index 61d1b50..0957e55 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php @@ -13,6 +13,7 @@ namespace Monolog\Handler; use Monolog\Logger; use Monolog\ResettableInterface; +use Monolog\Formatter\FormatterInterface; /** * Buffers all records until closing the handler and then pass them as batch. @@ -126,4 +127,22 @@ class BufferHandler extends AbstractHandler $this->handler->reset(); } } + + /** + * {@inheritdoc} + */ + public function setFormatter(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/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php index ac98d5d..47120e5 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php @@ -13,6 +13,7 @@ namespace Monolog\Handler; use Monolog\Formatter\ChromePHPFormatter; use Monolog\Logger; +use Monolog\Utils; /** * Handler sending logs to the ChromePHP extension (http://www.chromephp.com/) @@ -134,7 +135,7 @@ class ChromePHPHandler extends AbstractProcessingHandler self::$json['request_uri'] = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; } - $json = @json_encode(self::$json); + $json = Utils::jsonEncode(self::$json, null, true); $data = base64_encode(utf8_encode($json)); if (strlen($data) > 3 * 1024) { self::$overflowed = true; @@ -149,7 +150,7 @@ class ChromePHPHandler extends AbstractProcessingHandler 'extra' => array(), ); self::$json['rows'][count(self::$json['rows']) - 1] = $this->getFormatter()->format($record); - $json = @json_encode(self::$json); + $json = Utils::jsonEncode(self::$json, null, true); $data = base64_encode(utf8_encode($json)); } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php index 96b3ca0..44928ef 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php @@ -12,6 +12,7 @@ namespace Monolog\Handler; use Monolog\Logger; +use Monolog\Utils; /** * Logs to Cube. @@ -119,9 +120,9 @@ class CubeHandler extends AbstractProcessingHandler $data['data']['level'] = $record['level']; if ($this->scheme === 'http') { - $this->writeHttp(json_encode($data)); + $this->writeHttp(Utils::jsonEncode($data)); } else { - $this->writeUdp(json_encode($data)); + $this->writeUdp(Utils::jsonEncode($data)); } } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php index 938c1a7..949f227 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php @@ -12,6 +12,7 @@ namespace Monolog\Handler; use Monolog\Logger; +use Monolog\Formatter\FormatterInterface; /** * Simple handler wrapper that filters records based on a list of levels @@ -45,7 +46,7 @@ class FilterHandler extends AbstractHandler protected $bubble; /** - * @param callable|HandlerInterface $handler Handler or factory callable($record, $this). + * @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 @@ -104,21 +105,13 @@ class FilterHandler extends AbstractHandler return false; } - // The same logic as in FingersCrossedHandler - if (!$this->handler instanceof HandlerInterface) { - $this->handler = call_user_func($this->handler, $record, $this); - if (!$this->handler instanceof HandlerInterface) { - throw new \RuntimeException("The factory callable should return a HandlerInterface"); - } - } - if ($this->processors) { foreach ($this->processors as $processor) { $record = call_user_func($processor, $record); } } - $this->handler->handle($record); + $this->getHandler($record)->handle($record); return false === $this->bubble; } @@ -135,6 +128,45 @@ class FilterHandler extends AbstractHandler } } - $this->handler->handleBatch($filtered); + 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 HandlerInterface) { + $this->handler = call_user_func($this->handler, $record, $this); + if (!$this->handler instanceof HandlerInterface) { + throw new \RuntimeException("The factory callable should return a HandlerInterface"); + } + } + + return $this->handler; + } + + /** + * {@inheritdoc} + */ + public function setFormatter(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/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php index 275fd51..cdabc44 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php @@ -15,6 +15,7 @@ use Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy; use Monolog\Handler\FingersCrossed\ActivationStrategyInterface; use Monolog\Logger; use Monolog\ResettableInterface; +use Monolog\Formatter\FormatterInterface; /** * Buffers all records until a certain level is reached @@ -39,7 +40,7 @@ class FingersCrossedHandler extends AbstractHandler protected $passthruLevel; /** - * @param callable|HandlerInterface $handler Handler or factory callable($record, $fingersCrossedHandler). + * @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 @@ -88,15 +89,7 @@ class FingersCrossedHandler extends AbstractHandler if ($this->stopBuffering) { $this->buffering = false; } - if (!$this->handler instanceof HandlerInterface) { - $record = end($this->buffer) ?: null; - - $this->handler = call_user_func($this->handler, $record, $this); - if (!$this->handler instanceof HandlerInterface) { - throw new \RuntimeException("The factory callable should return a HandlerInterface"); - } - } - $this->handler->handleBatch($this->buffer); + $this->getHandler(end($this->buffer) ?: null)->handleBatch($this->buffer); $this->buffer = array(); } @@ -120,7 +113,7 @@ class FingersCrossedHandler extends AbstractHandler $this->activate(); } } else { - $this->handler->handle($record); + $this->getHandler($record)->handle($record); } return false === $this->bubble; @@ -140,8 +133,8 @@ class FingersCrossedHandler extends AbstractHandler parent::reset(); - if ($this->handler instanceof ResettableInterface) { - $this->handler->reset(); + if ($this->getHandler() instanceof ResettableInterface) { + $this->getHandler()->reset(); } } @@ -167,11 +160,48 @@ class FingersCrossedHandler extends AbstractHandler return $record['level'] >= $level; }); if (count($this->buffer) > 0) { - $this->handler->handleBatch($this->buffer); + $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 HandlerInterface) { + $this->handler = call_user_func($this->handler, $record, $this); + if (!$this->handler instanceof HandlerInterface) { + throw new \RuntimeException("The factory callable should return a HandlerInterface"); + } + } + + return $this->handler; + } + + /** + * {@inheritdoc} + */ + public function setFormatter(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/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php index dd9a361..f0f010c 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php @@ -12,6 +12,7 @@ namespace Monolog\Handler; use Monolog\Logger; +use Monolog\Utils; use Monolog\Formatter\FlowdockFormatter; use Monolog\Formatter\FormatterInterface; @@ -105,7 +106,7 @@ class FlowdockHandler extends SocketHandler */ private function buildContent($record) { - return json_encode($record['formatted']['flowdock']); + return Utils::jsonEncode($record['formatted']['flowdock']); } /** diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php index 7f22622..f4d3b97 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php @@ -12,6 +12,7 @@ namespace Monolog\Handler; use Monolog\Logger; +use Monolog\Utils; /** * IFTTTHandler uses cURL to trigger IFTTT Maker actions @@ -53,7 +54,7 @@ class IFTTTHandler extends AbstractProcessingHandler "value2" => $record["level_name"], "value3" => $record["message"], ); - $postString = json_encode($postData); + $postString = Utils::jsonEncode($postData); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://maker.ifttt.com/trigger/" . $this->eventName . "/with/key/" . $this->secretKey); diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php index f911997..64dc138 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php @@ -12,6 +12,7 @@ namespace Monolog\Handler; use Monolog\Logger; +use Monolog\Utils; use Monolog\Formatter\NormalizerFormatter; /** @@ -190,7 +191,7 @@ class NewRelicHandler extends AbstractProcessingHandler if (null === $value || is_scalar($value)) { newrelic_add_custom_parameter($key, $value); } else { - newrelic_add_custom_parameter($key, @json_encode($value)); + newrelic_add_custom_parameter($key, Utils::jsonEncode($value, null, true)); } } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php index 1f2076a..d0a8b43 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php @@ -14,6 +14,7 @@ namespace Monolog\Handler; use Exception; use Monolog\Formatter\LineFormatter; use Monolog\Logger; +use Monolog\Utils; use PhpConsole\Connector; use PhpConsole\Handler; use PhpConsole\Helper; @@ -188,7 +189,7 @@ class PHPConsoleHandler extends AbstractProcessingHandler $tags = $this->getRecordTags($record); $message = $record['message']; if ($record['context']) { - $message .= ' ' . json_encode($this->connector->getDumper()->dump(array_filter($record['context']))); + $message .= ' ' . Utils::jsonEncode($this->connector->getDumper()->dump(array_filter($record['context'])), null, true); } $this->connector->getDebugDispatcher()->dispatchDebug($message, $tags, $this->options['classesPartialsTraceIgnore']); } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php index 590f996..bb00db5 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php @@ -73,7 +73,8 @@ class RedisHandler extends AbstractProcessingHandler protected function writeCapped(array $record) { if ($this->redisClient instanceof \Redis) { - $this->redisClient->multi() + $mode = defined('\Redis::MULTI') ? \Redis::MULTI : 1; + $this->redisClient->multi($mode) ->rpush($this->redisKey, $record["formatted"]) ->ltrim($this->redisKey, -$this->capSize, -1) ->exec(); diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php index 9509ae3..b547ed7 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php @@ -11,6 +11,8 @@ namespace Monolog\Handler; +use Monolog\Formatter\FormatterInterface; + /** * Sampling handler * @@ -38,7 +40,7 @@ class SamplingHandler extends AbstractHandler protected $factor; /** - * @param callable|HandlerInterface $handler Handler or factory callable($record, $fingersCrossedHandler). + * @param callable|HandlerInterface $handler Handler or factory callable($record|null, $samplingHandler). * @param int $factor Sample factor */ public function __construct($handler, $factor) @@ -54,29 +56,58 @@ class SamplingHandler extends AbstractHandler public function isHandling(array $record) { - return $this->handler->isHandling($record); + return $this->getHandler($record)->isHandling($record); } public function handle(array $record) { if ($this->isHandling($record) && mt_rand(1, $this->factor) === 1) { - // The same logic as in FingersCrossedHandler - if (!$this->handler instanceof HandlerInterface) { - $this->handler = call_user_func($this->handler, $record, $this); - if (!$this->handler instanceof HandlerInterface) { - throw new \RuntimeException("The factory callable should return a HandlerInterface"); - } - } - if ($this->processors) { foreach ($this->processors as $processor) { $record = call_user_func($processor, $record); } } - $this->handler->handle($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 HandlerInterface) { + $this->handler = call_user_func($this->handler, $record, $this); + if (!$this->handler instanceof HandlerInterface) { + throw new \RuntimeException("The factory callable should return a HandlerInterface"); + } + } + + return $this->handler; + } + + /** + * {@inheritdoc} + */ + public function setFormatter(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/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php index e55e0e2..3945550 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php @@ -12,6 +12,7 @@ namespace Monolog\Handler\Slack; use Monolog\Logger; +use Monolog\Utils; use Monolog\Formatter\NormalizerFormatter; use Monolog\Formatter\FormatterInterface; @@ -207,13 +208,17 @@ class SlackRecord { $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 - ? json_encode($normalized, $prettyPrintFlag) - : json_encode($normalized); + ? Utils::jsonEncode($normalized, $prettyPrintFlag | $flags) + : Utils::jsonEncode($normalized, $flags); } /** diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php index 45d634f..88c4c4d 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php @@ -13,6 +13,7 @@ namespace Monolog\Handler; use Monolog\Formatter\FormatterInterface; use Monolog\Logger; +use Monolog\Utils; use Monolog\Handler\Slack\SlackRecord; /** @@ -118,7 +119,7 @@ class SlackHandler extends SocketHandler $dataArray['token'] = $this->token; if (!empty($dataArray['attachments'])) { - $dataArray['attachments'] = json_encode($dataArray['attachments']); + $dataArray['attachments'] = Utils::jsonEncode($dataArray['attachments']); } return $dataArray; diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php index 1ef85fa..b87be99 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php @@ -13,6 +13,7 @@ namespace Monolog\Handler; use Monolog\Formatter\FormatterInterface; use Monolog\Logger; +use Monolog\Utils; use Monolog\Handler\Slack\SlackRecord; /** @@ -83,7 +84,7 @@ class SlackWebhookHandler extends AbstractProcessingHandler protected function write(array $record) { $postData = $this->slackRecord->getSlackData($record); - $postString = json_encode($postData); + $postString = Utils::jsonEncode($postData); $ch = curl_init(); $options = array( diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Logger.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Logger.php index 05dfc81..e649af5 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Logger.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Logger.php @@ -527,8 +527,13 @@ class Logger implements LoggerInterface, ResettableInterface */ public static function toMonologLevel($level) { - if (is_string($level) && defined(__CLASS__.'::'.strtoupper($level))) { - return constant(__CLASS__.'::'.strtoupper($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; diff --git a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Utils.php b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Utils.php index eb9be86..180a159 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Utils.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/monolog/monolog/src/Monolog/Utils.php @@ -22,4 +22,138 @@ class Utils return 'c' === $class[0] && 0 === strpos($class, "class@anonymous\0") ? get_parent_class($class).'@anonymous' : $class; } + + /** + * 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('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/phpseclib/phpseclib/phpseclib/Crypt/RSA.php b/wp-content/plugins/wp-mail-smtp/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php index d2c6c7c..72be6ee 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php @@ -2762,7 +2762,7 @@ class RSA // 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); + $emLen = ($emBits + 7) >> 3; // ie. ceil($emBits / 8); $sLen = $this->sLen !== null ? $this->sLen : $this->hLen; $mHash = $this->hash->hash($m); @@ -2840,7 +2840,7 @@ class RSA // RSA verification - $modBits = 8 * $this->k; + $modBits = strlen($this->modulus->toBits()); $s2 = $this->_os2ip($s); $m2 = $this->_rsavp1($s2); @@ -2848,7 +2848,7 @@ class RSA user_error('Invalid signature'); return false; } - $em = $this->_i2osp($m2, $modBits >> 3); + $em = $this->_i2osp($m2, $this->k); if ($em === false) { user_error('Invalid signature'); return false; diff --git a/wp-content/plugins/wp-mail-smtp/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php b/wp-content/plugins/wp-mail-smtp/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php index 01e34cc..8f53eb3 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php @@ -97,7 +97,10 @@ class Random $fp = @fopen('/dev/urandom', 'rb'); } if ($fp !== true && $fp !== false) { // surprisingly faster than !is_bool() or is_resource() - return fread($fp, $length); + $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 diff --git a/wp-content/plugins/wp-mail-smtp/vendor/psr/log/Psr/Log/LoggerInterface.php b/wp-content/plugins/wp-mail-smtp/vendor/psr/log/Psr/Log/LoggerInterface.php index e695046..2206cfd 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/psr/log/Psr/Log/LoggerInterface.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/psr/log/Psr/Log/LoggerInterface.php @@ -22,8 +22,8 @@ interface LoggerInterface /** * System is unusable. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -35,8 +35,8 @@ interface LoggerInterface * Example: Entire website down, database unavailable, etc. This should * trigger the SMS alerts and wake you up. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -47,8 +47,8 @@ interface LoggerInterface * * Example: Application component unavailable, unexpected exception. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -58,8 +58,8 @@ interface LoggerInterface * Runtime errors that do not require immediate action but should typically * be logged and monitored. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -71,8 +71,8 @@ interface LoggerInterface * Example: Use of deprecated APIs, poor use of an API, undesirable things * that are not necessarily wrong. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -81,8 +81,8 @@ interface LoggerInterface /** * Normal but significant events. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -93,8 +93,8 @@ interface LoggerInterface * * Example: User logs in, SQL logs. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -103,8 +103,8 @@ interface LoggerInterface /** * Detailed debug information. * - * @param string $message - * @param array $context + * @param string $message + * @param mixed[] $context * * @return void */ @@ -113,9 +113,9 @@ interface LoggerInterface /** * Logs with an arbitrary level. * - * @param mixed $level - * @param string $message - * @param array $context + * @param mixed $level + * @param string $message + * @param mixed[] $context * * @return void * diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/AccountApi.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/AccountApi.php index 18cc8ed..cce0002 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/AccountApi.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/AccountApi.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -59,6 +59,11 @@ class AccountApi */ protected $config; + /** + * @var HeaderSelector + */ + protected $headerSelector; + /** * @param ClientInterface $client * @param Configuration $config @@ -279,9 +284,16 @@ class AccountApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/AttributesApi.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/AttributesApi.php index a0b5df3..fc332c6 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/AttributesApi.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/AttributesApi.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -238,19 +238,19 @@ class AttributesApi protected function createAttributeRequest($attributeCategory, $attributeName, $createAttribute) { // verify the required parameter 'attributeCategory' is set - if ($attributeCategory === null) { + 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) { + 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) { + if ($createAttribute === null || (is_array($createAttribute) && count($createAttribute) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $createAttribute when calling createAttribute' ); @@ -302,9 +302,16 @@ class AttributesApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -517,13 +524,13 @@ class AttributesApi protected function deleteAttributeRequest($attributeCategory, $attributeName) { // verify the required parameter 'attributeCategory' is set - if ($attributeCategory === null) { + 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) { + if ($attributeName === null || (is_array($attributeName) && count($attributeName) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $attributeName when calling deleteAttribute' ); @@ -572,9 +579,16 @@ class AttributesApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -825,9 +839,16 @@ class AttributesApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1045,19 +1066,19 @@ class AttributesApi protected function updateAttributeRequest($attributeCategory, $attributeName, $updateAttribute) { // verify the required parameter 'attributeCategory' is set - if ($attributeCategory === null) { + 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) { + 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) { + if ($updateAttribute === null || (is_array($updateAttribute) && count($updateAttribute) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $updateAttribute when calling updateAttribute' ); @@ -1109,9 +1130,16 @@ class AttributesApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ContactsApi.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ContactsApi.php index f8cadee..37d589c 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ContactsApi.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ContactsApi.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -59,6 +59,11 @@ class ContactsApi */ protected $config; + /** + * @var HeaderSelector + */ + protected $headerSelector; + /** * @param ClientInterface $client * @param Configuration $config @@ -278,13 +283,13 @@ class ContactsApi protected function addContactToListRequest($listId, $contactEmails) { // verify the required parameter 'listId' is set - if ($listId === null) { + 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) { + if ($contactEmails === null || (is_array($contactEmails) && count($contactEmails) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $contactEmails when calling addContactToList' ); @@ -328,9 +333,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -540,19 +552,19 @@ class ContactsApi protected function createAttributeRequest($attributeCategory, $attributeName, $createAttribute) { // verify the required parameter 'attributeCategory' is set - if ($attributeCategory === null) { + 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) { + 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) { + if ($createAttribute === null || (is_array($createAttribute) && count($createAttribute) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $createAttribute when calling createAttribute' ); @@ -604,9 +616,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -851,7 +870,7 @@ class ContactsApi protected function createContactRequest($createContact) { // verify the required parameter 'createContact' is set - if ($createContact === null) { + if ($createContact === null || (is_array($createContact) && count($createContact) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $createContact when calling createContact' ); @@ -887,9 +906,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1126,7 +1152,7 @@ class ContactsApi protected function createFolderRequest($createFolder) { // verify the required parameter 'createFolder' is set - if ($createFolder === null) { + if ($createFolder === null || (is_array($createFolder) && count($createFolder) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $createFolder when calling createFolder' ); @@ -1162,9 +1188,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1401,7 +1434,7 @@ class ContactsApi protected function createListRequest($createList) { // verify the required parameter 'createList' is set - if ($createList === null) { + if ($createList === null || (is_array($createList) && count($createList) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $createList when calling createList' ); @@ -1437,9 +1470,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1652,13 +1692,13 @@ class ContactsApi protected function deleteAttributeRequest($attributeCategory, $attributeName) { // verify the required parameter 'attributeCategory' is set - if ($attributeCategory === null) { + 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) { + if ($attributeName === null || (is_array($attributeName) && count($attributeName) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $attributeName when calling deleteAttribute' ); @@ -1707,9 +1747,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1925,7 +1972,7 @@ class ContactsApi protected function deleteContactRequest($email) { // verify the required parameter 'email' is set - if ($email === null) { + if ($email === null || (is_array($email) && count($email) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $email when calling deleteContact' ); @@ -1966,9 +2013,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2176,7 +2230,7 @@ class ContactsApi protected function deleteFolderRequest($folderId) { // verify the required parameter 'folderId' is set - if ($folderId === null) { + if ($folderId === null || (is_array($folderId) && count($folderId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $folderId when calling deleteFolder' ); @@ -2217,9 +2271,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2427,7 +2488,7 @@ class ContactsApi protected function deleteListRequest($listId) { // verify the required parameter 'listId' is set - if ($listId === null) { + if ($listId === null || (is_array($listId) && count($listId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $listId when calling deleteList' ); @@ -2468,9 +2529,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2721,9 +2789,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2968,7 +3043,7 @@ class ContactsApi protected function getContactInfoRequest($email) { // verify the required parameter 'email' is set - if ($email === null) { + if ($email === null || (is_array($email) && count($email) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $email when calling getContactInfo' ); @@ -3009,9 +3084,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -3256,7 +3338,7 @@ class ContactsApi protected function getContactStatsRequest($email) { // verify the required parameter 'email' is set - if ($email === null) { + if ($email === null || (is_array($email) && count($email) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $email when calling getContactStats' ); @@ -3297,9 +3379,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -3589,9 +3678,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -3851,7 +3947,7 @@ class ContactsApi protected function getContactsFromListRequest($listId, $modifiedSince = null, $limit = '50', $offset = '0') { // verify the required parameter 'listId' is set - if ($listId === null) { + if ($listId === null || (is_array($listId) && count($listId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $listId when calling getContactsFromList' ); @@ -3908,9 +4004,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -4155,7 +4258,7 @@ class ContactsApi protected function getFolderRequest($folderId) { // verify the required parameter 'folderId' is set - if ($folderId === null) { + if ($folderId === null || (is_array($folderId) && count($folderId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $folderId when calling getFolder' ); @@ -4196,9 +4299,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -4453,7 +4563,7 @@ class ContactsApi protected function getFolderListsRequest($folderId, $limit = '10', $offset = '0') { // verify the required parameter 'folderId' is set - if ($folderId === null) { + if ($folderId === null || (is_array($folderId) && count($folderId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $folderId when calling getFolderLists' ); @@ -4506,9 +4616,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -4750,7 +4867,7 @@ class ContactsApi protected function getFoldersRequest($limit, $offset) { // verify the required parameter 'limit' is set - if ($limit === null) { + if ($limit === null || (is_array($limit) && count($limit) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $limit when calling getFolders' ); @@ -4760,7 +4877,7 @@ class ContactsApi } // verify the required parameter 'offset' is set - if ($offset === null) { + if ($offset === null || (is_array($offset) && count($offset) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $offset when calling getFolders' ); @@ -4801,9 +4918,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -5048,7 +5172,7 @@ class ContactsApi protected function getListRequest($listId) { // verify the required parameter 'listId' is set - if ($listId === null) { + if ($listId === null || (is_array($listId) && count($listId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $listId when calling getList' ); @@ -5089,9 +5213,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -5372,9 +5503,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -5611,7 +5749,7 @@ class ContactsApi protected function importContactsRequest($requestContactImport) { // verify the required parameter 'requestContactImport' is set - if ($requestContactImport === null) { + if ($requestContactImport === null || (is_array($requestContactImport) && count($requestContactImport) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $requestContactImport when calling importContacts' ); @@ -5647,9 +5785,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -5899,13 +6044,13 @@ class ContactsApi protected function removeContactFromListRequest($listId, $contactEmails) { // verify the required parameter 'listId' is set - if ($listId === null) { + 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) { + if ($contactEmails === null || (is_array($contactEmails) && count($contactEmails) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $contactEmails when calling removeContactFromList' ); @@ -5949,9 +6094,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -6188,7 +6340,7 @@ class ContactsApi protected function requestContactExportRequest($requestContactExport) { // verify the required parameter 'requestContactExport' is set - if ($requestContactExport === null) { + if ($requestContactExport === null || (is_array($requestContactExport) && count($requestContactExport) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $requestContactExport when calling requestContactExport' ); @@ -6224,9 +6376,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -6444,19 +6603,19 @@ class ContactsApi protected function updateAttributeRequest($attributeCategory, $attributeName, $updateAttribute) { // verify the required parameter 'attributeCategory' is set - if ($attributeCategory === null) { + 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) { + 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) { + if ($updateAttribute === null || (is_array($updateAttribute) && count($updateAttribute) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $updateAttribute when calling updateAttribute' ); @@ -6508,9 +6667,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -6723,13 +6889,13 @@ class ContactsApi protected function updateContactRequest($email, $updateContact) { // verify the required parameter 'email' is set - if ($email === null) { + 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) { + if ($updateContact === null || (is_array($updateContact) && count($updateContact) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $updateContact when calling updateContact' ); @@ -6773,9 +6939,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -6988,13 +7161,13 @@ class ContactsApi protected function updateFolderRequest($folderId, $updateFolder) { // verify the required parameter 'folderId' is set - if ($folderId === null) { + 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) { + if ($updateFolder === null || (is_array($updateFolder) && count($updateFolder) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $updateFolder when calling updateFolder' ); @@ -7038,9 +7211,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -7253,13 +7433,13 @@ class ContactsApi protected function updateListRequest($listId, $updateList) { // verify the required parameter 'listId' is set - if ($listId === null) { + 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) { + if ($updateList === null || (is_array($updateList) && count($updateList) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $updateList when calling updateList' ); @@ -7303,9 +7483,16 @@ class ContactsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/EmailCampaignsApi.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/EmailCampaignsApi.php index 049f9df..932876d 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/EmailCampaignsApi.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/EmailCampaignsApi.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -59,6 +59,11 @@ class EmailCampaignsApi */ protected $config; + /** + * @var HeaderSelector + */ + protected $headerSelector; + /** * @param ClientInterface $client * @param Configuration $config @@ -265,7 +270,7 @@ class EmailCampaignsApi protected function createEmailCampaignRequest($emailCampaigns) { // verify the required parameter 'emailCampaigns' is set - if ($emailCampaigns === null) { + if ($emailCampaigns === null || (is_array($emailCampaigns) && count($emailCampaigns) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $emailCampaigns when calling createEmailCampaign' ); @@ -301,9 +306,16 @@ class EmailCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -511,7 +523,7 @@ class EmailCampaignsApi protected function deleteEmailCampaignRequest($campaignId) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + if ($campaignId === null || (is_array($campaignId) && count($campaignId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $campaignId when calling deleteEmailCampaign' ); @@ -552,9 +564,16 @@ class EmailCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -804,7 +823,7 @@ class EmailCampaignsApi protected function emailExportRecipientsRequest($campaignId, $recipientExport = null) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + if ($campaignId === null || (is_array($campaignId) && count($campaignId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $campaignId when calling emailExportRecipients' ); @@ -848,9 +867,16 @@ class EmailCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -904,6 +930,309 @@ class EmailCampaignsApi ); } + /** + * Operation getAbTestCampaignResult + * + * Get A/B test email campaign result + * + * @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 A/B test email campaign result + * + * @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 = '\SendinBlue\Client\Model\AbTestCampaignResult'; + $request = $this->getAbTestCampaignResultRequest($campaignId); + + try { + $options = $this->createHttpClientOption(); + try { + $response = $this->client->send($request, $options); + } catch (RequestException $e) { + throw new 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 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 [ + ObjectSerializer::deserialize($content, $returnType, []), + $response->getStatusCode(), + $response->getHeaders() + ]; + + } catch (ApiException $e) { + switch ($e->getCode()) { + case 200: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\SendinBlue\Client\Model\AbTestCampaignResult', + $e->getResponseHeaders() + ); + $e->setResponseObject($data); + break; + case 400: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\SendinBlue\Client\Model\ErrorModel', + $e->getResponseHeaders() + ); + $e->setResponseObject($data); + break; + case 404: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\SendinBlue\Client\Model\ErrorModel', + $e->getResponseHeaders() + ); + $e->setResponseObject($data); + break; + case 405: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\SendinBlue\Client\Model\ErrorModel', + $e->getResponseHeaders() + ); + $e->setResponseObject($data); + break; + } + throw $e; + } + } + + /** + * Operation getAbTestCampaignResultAsync + * + * Get A/B test email campaign result + * + * @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 A/B test email campaign result + * + * @param int $campaignId Id of the A/B test campaign (required) + * + * @throws \InvalidArgumentException + * @return \GuzzleHttp\Promise\PromiseInterface + */ + public function getAbTestCampaignResultAsyncWithHttpInfo($campaignId) + { + $returnType = '\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 [ + ObjectSerializer::deserialize($content, $returnType, []), + $response->getStatusCode(), + $response->getHeaders() + ]; + }, + function ($exception) { + $response = $exception->getResponse(); + $statusCode = $response->getStatusCode(); + throw new 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' . '}', + 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 = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(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 MultipartStream($multipartContents); + + } elseif ($headers['Content-Type'] === 'application/json') { + $httpBody = \GuzzleHttp\json_encode($formParams); + + } else { + // for HTTP post (form) + $httpBody = \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 = \GuzzleHttp\Psr7\build_query($queryParams); + return new Request( + 'GET', + $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), + $headers, + $httpBody + ); + } + /** * Operation getEmailCampaign * @@ -1095,7 +1424,7 @@ class EmailCampaignsApi protected function getEmailCampaignRequest($campaignId) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + if ($campaignId === null || (is_array($campaignId) && count($campaignId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $campaignId when calling getEmailCampaign' ); @@ -1136,9 +1465,16 @@ class EmailCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1455,9 +1791,311 @@ class EmailCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(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 MultipartStream($multipartContents); + + } elseif ($headers['Content-Type'] === 'application/json') { + $httpBody = \GuzzleHttp\json_encode($formParams); + + } else { + // for HTTP post (form) + $httpBody = \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 = \GuzzleHttp\Psr7\build_query($queryParams); + return new 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 = '\SendinBlue\Client\Model\GetSharedTemplateUrl'; + $request = $this->getSharedTemplateUrlRequest($campaignId); + + try { + $options = $this->createHttpClientOption(); + try { + $response = $this->client->send($request, $options); + } catch (RequestException $e) { + throw new 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 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 [ + ObjectSerializer::deserialize($content, $returnType, []), + $response->getStatusCode(), + $response->getHeaders() + ]; + + } catch (ApiException $e) { + switch ($e->getCode()) { + case 200: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\SendinBlue\Client\Model\GetSharedTemplateUrl', + $e->getResponseHeaders() + ); + $e->setResponseObject($data); + break; + case 400: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\SendinBlue\Client\Model\ErrorModel', + $e->getResponseHeaders() + ); + $e->setResponseObject($data); + break; + case 404: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\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 = '\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 [ + ObjectSerializer::deserialize($content, $returnType, []), + $response->getStatusCode(), + $response->getHeaders() + ]; + }, + function ($exception) { + $response = $exception->getResponse(); + $statusCode = $response->getStatusCode(); + throw new 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' . '}', + 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 = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1514,7 +2152,7 @@ class EmailCampaignsApi /** * Operation sendEmailCampaignNow * - * Send an email campaign id of the campaign immediately + * Send an email campaign immediately, based on campaignId * * @param int $campaignId Id of the campaign (required) * @@ -1530,7 +2168,7 @@ class EmailCampaignsApi /** * Operation sendEmailCampaignNowWithHttpInfo * - * Send an email campaign id of the campaign immediately + * Send an email campaign immediately, based on campaignId * * @param int $campaignId Id of the campaign (required) * @@ -1607,7 +2245,7 @@ class EmailCampaignsApi /** * Operation sendEmailCampaignNowAsync * - * Send an email campaign id of the campaign immediately + * Send an email campaign immediately, based on campaignId * * @param int $campaignId Id of the campaign (required) * @@ -1627,7 +2265,7 @@ class EmailCampaignsApi /** * Operation sendEmailCampaignNowAsyncWithHttpInfo * - * Send an email campaign id of the campaign immediately + * Send an email campaign immediately, based on campaignId * * @param int $campaignId Id of the campaign (required) * @@ -1673,7 +2311,7 @@ class EmailCampaignsApi protected function sendEmailCampaignNowRequest($campaignId) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + if ($campaignId === null || (is_array($campaignId) && count($campaignId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $campaignId when calling sendEmailCampaignNow' ); @@ -1714,9 +2352,16 @@ class EmailCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1929,13 +2574,13 @@ class EmailCampaignsApi protected function sendReportRequest($campaignId, $sendReport) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + 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) { + if ($sendReport === null || (is_array($sendReport) && count($sendReport) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $sendReport when calling sendReport' ); @@ -1979,9 +2624,16 @@ class EmailCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2194,13 +2846,13 @@ class EmailCampaignsApi protected function sendTestEmailRequest($campaignId, $emailTo) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + 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) { + if ($emailTo === null || (is_array($emailTo) && count($emailTo) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $emailTo when calling sendTestEmail' ); @@ -2244,9 +2896,16 @@ class EmailCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2459,13 +3118,13 @@ class EmailCampaignsApi protected function updateCampaignStatusRequest($campaignId, $status) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + 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) { + if ($status === null || (is_array($status) && count($status) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $status when calling updateCampaignStatus' ); @@ -2509,9 +3168,16 @@ class EmailCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2724,13 +3390,13 @@ class EmailCampaignsApi protected function updateEmailCampaignRequest($campaignId, $emailCampaign) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + 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) { + if ($emailCampaign === null || (is_array($emailCampaign) && count($emailCampaign) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $emailCampaign when calling updateEmailCampaign' ); @@ -2774,9 +3440,16 @@ class EmailCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/FoldersApi.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/FoldersApi.php index df78954..09ab731 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/FoldersApi.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/FoldersApi.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -59,6 +59,11 @@ class FoldersApi */ protected $config; + /** + * @var HeaderSelector + */ + protected $headerSelector; + /** * @param ClientInterface $client * @param Configuration $config @@ -265,7 +270,7 @@ class FoldersApi protected function createFolderRequest($createFolder) { // verify the required parameter 'createFolder' is set - if ($createFolder === null) { + if ($createFolder === null || (is_array($createFolder) && count($createFolder) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $createFolder when calling createFolder' ); @@ -301,9 +306,16 @@ class FoldersApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -511,7 +523,7 @@ class FoldersApi protected function deleteFolderRequest($folderId) { // verify the required parameter 'folderId' is set - if ($folderId === null) { + if ($folderId === null || (is_array($folderId) && count($folderId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $folderId when calling deleteFolder' ); @@ -552,9 +564,16 @@ class FoldersApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -799,7 +818,7 @@ class FoldersApi protected function getFolderRequest($folderId) { // verify the required parameter 'folderId' is set - if ($folderId === null) { + if ($folderId === null || (is_array($folderId) && count($folderId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $folderId when calling getFolder' ); @@ -840,9 +859,16 @@ class FoldersApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1097,7 +1123,7 @@ class FoldersApi protected function getFolderListsRequest($folderId, $limit = '10', $offset = '0') { // verify the required parameter 'folderId' is set - if ($folderId === null) { + if ($folderId === null || (is_array($folderId) && count($folderId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $folderId when calling getFolderLists' ); @@ -1150,9 +1176,16 @@ class FoldersApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1394,7 +1427,7 @@ class FoldersApi protected function getFoldersRequest($limit, $offset) { // verify the required parameter 'limit' is set - if ($limit === null) { + if ($limit === null || (is_array($limit) && count($limit) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $limit when calling getFolders' ); @@ -1404,7 +1437,7 @@ class FoldersApi } // verify the required parameter 'offset' is set - if ($offset === null) { + if ($offset === null || (is_array($offset) && count($offset) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $offset when calling getFolders' ); @@ -1445,9 +1478,16 @@ class FoldersApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1660,13 +1700,13 @@ class FoldersApi protected function updateFolderRequest($folderId, $updateFolder) { // verify the required parameter 'folderId' is set - if ($folderId === null) { + 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) { + if ($updateFolder === null || (is_array($updateFolder) && count($updateFolder) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $updateFolder when calling updateFolder' ); @@ -1710,9 +1750,16 @@ class FoldersApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ListsApi.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ListsApi.php index 206c481..6e27807 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ListsApi.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ListsApi.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -59,6 +59,11 @@ class ListsApi */ protected $config; + /** + * @var HeaderSelector + */ + protected $headerSelector; + /** * @param ClientInterface $client * @param Configuration $config @@ -278,13 +283,13 @@ class ListsApi protected function addContactToListRequest($listId, $contactEmails) { // verify the required parameter 'listId' is set - if ($listId === null) { + 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) { + if ($contactEmails === null || (is_array($contactEmails) && count($contactEmails) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $contactEmails when calling addContactToList' ); @@ -328,9 +333,16 @@ class ListsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -567,7 +579,7 @@ class ListsApi protected function createListRequest($createList) { // verify the required parameter 'createList' is set - if ($createList === null) { + if ($createList === null || (is_array($createList) && count($createList) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $createList when calling createList' ); @@ -603,9 +615,16 @@ class ListsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -813,7 +832,7 @@ class ListsApi protected function deleteListRequest($listId) { // verify the required parameter 'listId' is set - if ($listId === null) { + if ($listId === null || (is_array($listId) && count($listId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $listId when calling deleteList' ); @@ -854,9 +873,16 @@ class ListsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1116,7 +1142,7 @@ class ListsApi protected function getContactsFromListRequest($listId, $modifiedSince = null, $limit = '50', $offset = '0') { // verify the required parameter 'listId' is set - if ($listId === null) { + if ($listId === null || (is_array($listId) && count($listId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $listId when calling getContactsFromList' ); @@ -1173,9 +1199,16 @@ class ListsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1430,7 +1463,7 @@ class ListsApi protected function getFolderListsRequest($folderId, $limit = '10', $offset = '0') { // verify the required parameter 'folderId' is set - if ($folderId === null) { + if ($folderId === null || (is_array($folderId) && count($folderId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $folderId when calling getFolderLists' ); @@ -1483,9 +1516,16 @@ class ListsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1730,7 +1770,7 @@ class ListsApi protected function getListRequest($listId) { // verify the required parameter 'listId' is set - if ($listId === null) { + if ($listId === null || (is_array($listId) && count($listId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $listId when calling getList' ); @@ -1771,9 +1811,16 @@ class ListsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2054,9 +2101,16 @@ class ListsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2306,13 +2360,13 @@ class ListsApi protected function removeContactFromListRequest($listId, $contactEmails) { // verify the required parameter 'listId' is set - if ($listId === null) { + 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) { + if ($contactEmails === null || (is_array($contactEmails) && count($contactEmails) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $contactEmails when calling removeContactFromList' ); @@ -2356,9 +2410,16 @@ class ListsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2571,13 +2632,13 @@ class ListsApi protected function updateListRequest($listId, $updateList) { // verify the required parameter 'listId' is set - if ($listId === null) { + 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) { + if ($updateList === null || (is_array($updateList) && count($updateList) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $updateList when calling updateList' ); @@ -2621,9 +2682,16 @@ class ListsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ProcessApi.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ProcessApi.php index a8f1cd8..b734edd 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ProcessApi.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ProcessApi.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -59,6 +59,11 @@ class ProcessApi */ protected $config; + /** + * @var HeaderSelector + */ + protected $headerSelector; + /** * @param ClientInterface $client * @param Configuration $config @@ -273,7 +278,7 @@ class ProcessApi protected function getProcessRequest($processId) { // verify the required parameter 'processId' is set - if ($processId === null) { + if ($processId === null || (is_array($processId) && count($processId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $processId when calling getProcess' ); @@ -314,9 +319,16 @@ class ProcessApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -597,9 +609,16 @@ class ProcessApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ResellerApi.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ResellerApi.php index cf7cf83..721ac39 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ResellerApi.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/ResellerApi.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -59,6 +59,11 @@ class ResellerApi */ protected $config; + /** + * @var HeaderSelector + */ + protected $headerSelector; + /** * @param ClientInterface $client * @param Configuration $config @@ -286,13 +291,13 @@ class ResellerApi protected function addCreditsRequest($childAuthKey, $addCredits) { // verify the required parameter 'childAuthKey' is set - if ($childAuthKey === null) { + if ($childAuthKey === null || (is_array($childAuthKey) && count($childAuthKey) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $childAuthKey when calling addCredits' ); } // verify the required parameter 'addCredits' is set - if ($addCredits === null) { + if ($addCredits === null || (is_array($addCredits) && count($addCredits) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $addCredits when calling addCredits' ); @@ -336,9 +341,16 @@ class ResellerApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -551,13 +563,13 @@ class ResellerApi protected function associateIpToChildRequest($childAuthKey, $ip) { // verify the required parameter 'childAuthKey' is set - if ($childAuthKey === null) { + if ($childAuthKey === null || (is_array($childAuthKey) && count($childAuthKey) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $childAuthKey when calling associateIpToChild' ); } // verify the required parameter 'ip' is set - if ($ip === null) { + if ($ip === null || (is_array($ip) && count($ip) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $ip when calling associateIpToChild' ); @@ -601,9 +613,16 @@ class ResellerApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -663,7 +682,7 @@ class ResellerApi * Creates a domain for a child account * * @param string $childAuthKey auth key of reseller's child (required) - * @param \SendinBlue\Client\Model\AddChildDomain $addChildDomain Sender domain to add for a specific child account (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 @@ -680,7 +699,7 @@ class ResellerApi * Creates a domain for a child account * * @param string $childAuthKey auth key of reseller's child (required) - * @param \SendinBlue\Client\Model\AddChildDomain $addChildDomain Sender domain to add for a specific child account (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 @@ -758,7 +777,7 @@ class ResellerApi * Creates a domain for a child account * * @param string $childAuthKey auth key of reseller's child (required) - * @param \SendinBlue\Client\Model\AddChildDomain $addChildDomain Sender domain to add for a specific child account (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 @@ -779,7 +798,7 @@ class ResellerApi * Creates a domain for a child account * * @param string $childAuthKey auth key of reseller's child (required) - * @param \SendinBlue\Client\Model\AddChildDomain $addChildDomain Sender domain to add for a specific child account (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 @@ -816,7 +835,7 @@ class ResellerApi * Create request for operation 'createChildDomain' * * @param string $childAuthKey auth key of reseller's child (required) - * @param \SendinBlue\Client\Model\AddChildDomain $addChildDomain Sender domain to add for a specific child account (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 @@ -824,13 +843,13 @@ class ResellerApi protected function createChildDomainRequest($childAuthKey, $addChildDomain) { // verify the required parameter 'childAuthKey' is set - if ($childAuthKey === null) { + if ($childAuthKey === null || (is_array($childAuthKey) && count($childAuthKey) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $childAuthKey when calling createChildDomain' ); } // verify the required parameter 'addChildDomain' is set - if ($addChildDomain === null) { + if ($addChildDomain === null || (is_array($addChildDomain) && count($addChildDomain) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $addChildDomain when calling createChildDomain' ); @@ -874,9 +893,16 @@ class ResellerApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1151,9 +1177,16 @@ class ResellerApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1374,13 +1407,13 @@ class ResellerApi protected function deleteChildDomainRequest($childAuthKey, $domainName) { // verify the required parameter 'childAuthKey' is set - if ($childAuthKey === null) { + if ($childAuthKey === null || (is_array($childAuthKey) && count($childAuthKey) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $childAuthKey when calling deleteChildDomain' ); } // verify the required parameter 'domainName' is set - if ($domainName === null) { + if ($domainName === null || (is_array($domainName) && count($domainName) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $domainName when calling deleteChildDomain' ); @@ -1429,9 +1462,16 @@ class ResellerApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1647,7 +1687,7 @@ class ResellerApi protected function deleteResellerChildRequest($childAuthKey) { // verify the required parameter 'childAuthKey' is set - if ($childAuthKey === null) { + if ($childAuthKey === null || (is_array($childAuthKey) && count($childAuthKey) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $childAuthKey when calling deleteResellerChild' ); @@ -1688,9 +1728,16 @@ class ResellerApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1903,13 +1950,13 @@ class ResellerApi protected function dissociateIpFromChildRequest($childAuthKey, $ip) { // verify the required parameter 'childAuthKey' is set - if ($childAuthKey === null) { + if ($childAuthKey === null || (is_array($childAuthKey) && count($childAuthKey) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $childAuthKey when calling dissociateIpFromChild' ); } // verify the required parameter 'ip' is set - if ($ip === null) { + if ($ip === null || (is_array($ip) && count($ip) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $ip when calling dissociateIpFromChild' ); @@ -1953,9 +2000,16 @@ class ResellerApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2009,6 +2063,309 @@ class ResellerApi ); } + /** + * Operation getChildAccountCreationStatus + * + * Returns the status of reseller's child account creation, whether it is successfully created (exists) or not based on the childAuthKey supplied + * + * @param string $childAuthKey auth key of reseller's child (required) + * + * @throws \SendinBlue\Client\ApiException on non-2xx response + * @throws \InvalidArgumentException + * @return \SendinBlue\Client\Model\GetChildAccountCreationStatus + */ + public function getChildAccountCreationStatus($childAuthKey) + { + list($response) = $this->getChildAccountCreationStatusWithHttpInfo($childAuthKey); + return $response; + } + + /** + * Operation getChildAccountCreationStatusWithHttpInfo + * + * Returns the status of reseller's child account creation, whether it is successfully created (exists) or not based on the childAuthKey supplied + * + * @param string $childAuthKey auth key 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($childAuthKey) + { + $returnType = '\SendinBlue\Client\Model\GetChildAccountCreationStatus'; + $request = $this->getChildAccountCreationStatusRequest($childAuthKey); + + try { + $options = $this->createHttpClientOption(); + try { + $response = $this->client->send($request, $options); + } catch (RequestException $e) { + throw new 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 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 [ + ObjectSerializer::deserialize($content, $returnType, []), + $response->getStatusCode(), + $response->getHeaders() + ]; + + } catch (ApiException $e) { + switch ($e->getCode()) { + case 200: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\SendinBlue\Client\Model\GetChildAccountCreationStatus', + $e->getResponseHeaders() + ); + $e->setResponseObject($data); + break; + case 400: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\SendinBlue\Client\Model\ErrorModel', + $e->getResponseHeaders() + ); + $e->setResponseObject($data); + break; + case 403: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\SendinBlue\Client\Model\ErrorModel', + $e->getResponseHeaders() + ); + $e->setResponseObject($data); + break; + case 404: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\SendinBlue\Client\Model\ErrorModel', + $e->getResponseHeaders() + ); + $e->setResponseObject($data); + break; + } + throw $e; + } + } + + /** + * Operation getChildAccountCreationStatusAsync + * + * Returns the status of reseller's child account creation, whether it is successfully created (exists) or not based on the childAuthKey supplied + * + * @param string $childAuthKey auth key of reseller's child (required) + * + * @throws \InvalidArgumentException + * @return \GuzzleHttp\Promise\PromiseInterface + */ + public function getChildAccountCreationStatusAsync($childAuthKey) + { + return $this->getChildAccountCreationStatusAsyncWithHttpInfo($childAuthKey) + ->then( + function ($response) { + return $response[0]; + } + ); + } + + /** + * Operation getChildAccountCreationStatusAsyncWithHttpInfo + * + * Returns the status of reseller's child account creation, whether it is successfully created (exists) or not based on the childAuthKey supplied + * + * @param string $childAuthKey auth key of reseller's child (required) + * + * @throws \InvalidArgumentException + * @return \GuzzleHttp\Promise\PromiseInterface + */ + public function getChildAccountCreationStatusAsyncWithHttpInfo($childAuthKey) + { + $returnType = '\SendinBlue\Client\Model\GetChildAccountCreationStatus'; + $request = $this->getChildAccountCreationStatusRequest($childAuthKey); + + 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 [ + ObjectSerializer::deserialize($content, $returnType, []), + $response->getStatusCode(), + $response->getHeaders() + ]; + }, + function ($exception) { + $response = $exception->getResponse(); + $statusCode = $response->getStatusCode(); + throw new 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 $childAuthKey auth key of reseller's child (required) + * + * @throws \InvalidArgumentException + * @return \GuzzleHttp\Psr7\Request + */ + protected function getChildAccountCreationStatusRequest($childAuthKey) + { + // verify the required parameter 'childAuthKey' is set + if ($childAuthKey === null || (is_array($childAuthKey) && count($childAuthKey) === 0)) { + throw new \InvalidArgumentException( + 'Missing the required parameter $childAuthKey when calling getChildAccountCreationStatus' + ); + } + + $resourcePath = '/reseller/children/{childAuthKey}/accountCreationStatus'; + $formParams = []; + $queryParams = []; + $headerParams = []; + $httpBody = ''; + $multipart = false; + + + // path params + if ($childAuthKey !== null) { + $resourcePath = str_replace( + '{' . 'childAuthKey' . '}', + ObjectSerializer::toPathValue($childAuthKey), + $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 = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(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 MultipartStream($multipartContents); + + } elseif ($headers['Content-Type'] === 'application/json') { + $httpBody = \GuzzleHttp\json_encode($formParams); + + } else { + // for HTTP post (form) + $httpBody = \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 = \GuzzleHttp\Psr7\build_query($queryParams); + return new Request( + 'GET', + $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), + $headers, + $httpBody + ); + } + /** * Operation getChildDomains * @@ -2208,7 +2565,7 @@ class ResellerApi protected function getChildDomainsRequest($childAuthKey) { // verify the required parameter 'childAuthKey' is set - if ($childAuthKey === null) { + if ($childAuthKey === null || (is_array($childAuthKey) && count($childAuthKey) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $childAuthKey when calling getChildDomains' ); @@ -2249,9 +2606,16 @@ class ResellerApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2504,7 +2868,7 @@ class ResellerApi protected function getChildInfoRequest($childAuthKey) { // verify the required parameter 'childAuthKey' is set - if ($childAuthKey === null) { + if ($childAuthKey === null || (is_array($childAuthKey) && count($childAuthKey) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $childAuthKey when calling getChildInfo' ); @@ -2545,9 +2909,16 @@ class ResellerApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2606,14 +2977,16 @@ class ResellerApi * * Gets the list of all reseller's 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() + public function getResellerChilds($limit = '10', $offset = '0') { - list($response) = $this->getResellerChildsWithHttpInfo(); + list($response) = $this->getResellerChildsWithHttpInfo($limit, $offset); return $response; } @@ -2622,15 +2995,17 @@ class ResellerApi * * Gets the list of all reseller's 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() + public function getResellerChildsWithHttpInfo($limit = '10', $offset = '0') { $returnType = '\SendinBlue\Client\Model\GetChildrenList'; - $request = $this->getResellerChildsRequest(); + $request = $this->getResellerChildsRequest($limit, $offset); try { $options = $this->createHttpClientOption(); @@ -2704,13 +3079,15 @@ class ResellerApi * * Gets the list of all reseller's 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() + public function getResellerChildsAsync($limit = '10', $offset = '0') { - return $this->getResellerChildsAsyncWithHttpInfo() + return $this->getResellerChildsAsyncWithHttpInfo($limit, $offset) ->then( function ($response) { return $response[0]; @@ -2723,14 +3100,16 @@ class ResellerApi * * Gets the list of all reseller's 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() + public function getResellerChildsAsyncWithHttpInfo($limit = '10', $offset = '0') { $returnType = '\SendinBlue\Client\Model\GetChildrenList'; - $request = $this->getResellerChildsRequest(); + $request = $this->getResellerChildsRequest($limit, $offset); return $this->client ->sendAsync($request, $this->createHttpClientOption()) @@ -2772,12 +3151,18 @@ class ResellerApi /** * 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() + 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 = []; @@ -2786,6 +3171,14 @@ class ResellerApi $httpBody = ''; $multipart = false; + // query params + if ($limit !== null) { + $queryParams['limit'] = ObjectSerializer::toQueryValue($limit); + } + // query params + if ($offset !== null) { + $queryParams['offset'] = ObjectSerializer::toQueryValue($offset); + } // body params @@ -2806,9 +3199,16 @@ class ResellerApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -3061,7 +3461,7 @@ class ResellerApi protected function getSsoTokenRequest($childAuthKey) { // verify the required parameter 'childAuthKey' is set - if ($childAuthKey === null) { + if ($childAuthKey === null || (is_array($childAuthKey) && count($childAuthKey) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $childAuthKey when calling getSsoToken' ); @@ -3102,9 +3502,16 @@ class ResellerApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -3362,13 +3769,13 @@ class ResellerApi protected function removeCreditsRequest($childAuthKey, $removeCredits) { // verify the required parameter 'childAuthKey' is set - if ($childAuthKey === null) { + if ($childAuthKey === null || (is_array($childAuthKey) && count($childAuthKey) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $childAuthKey when calling removeCredits' ); } // verify the required parameter 'removeCredits' is set - if ($removeCredits === null) { + if ($removeCredits === null || (is_array($removeCredits) && count($removeCredits) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $removeCredits when calling removeCredits' ); @@ -3412,9 +3819,16 @@ class ResellerApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -3635,13 +4049,13 @@ class ResellerApi protected function updateChildAccountStatusRequest($childAuthKey, $updateChildAccountStatus) { // verify the required parameter 'childAuthKey' is set - if ($childAuthKey === null) { + if ($childAuthKey === null || (is_array($childAuthKey) && count($childAuthKey) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $childAuthKey when calling updateChildAccountStatus' ); } // verify the required parameter 'updateChildAccountStatus' is set - if ($updateChildAccountStatus === null) { + if ($updateChildAccountStatus === null || (is_array($updateChildAccountStatus) && count($updateChildAccountStatus) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $updateChildAccountStatus when calling updateChildAccountStatus' ); @@ -3685,9 +4099,16 @@ class ResellerApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -3913,19 +4334,19 @@ class ResellerApi protected function updateChildDomainRequest($childAuthKey, $domainName, $updateChildDomain) { // verify the required parameter 'childAuthKey' is set - if ($childAuthKey === null) { + if ($childAuthKey === null || (is_array($childAuthKey) && count($childAuthKey) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $childAuthKey when calling updateChildDomain' ); } // verify the required parameter 'domainName' is set - if ($domainName === null) { + 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) { + if ($updateChildDomain === null || (is_array($updateChildDomain) && count($updateChildDomain) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $updateChildDomain when calling updateChildDomain' ); @@ -3977,9 +4398,16 @@ class ResellerApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -4200,13 +4628,13 @@ class ResellerApi protected function updateResellerChildRequest($childAuthKey, $resellerChild) { // verify the required parameter 'childAuthKey' is set - if ($childAuthKey === null) { + if ($childAuthKey === null || (is_array($childAuthKey) && count($childAuthKey) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $childAuthKey when calling updateResellerChild' ); } // verify the required parameter 'resellerChild' is set - if ($resellerChild === null) { + if ($resellerChild === null || (is_array($resellerChild) && count($resellerChild) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $resellerChild when calling updateResellerChild' ); @@ -4250,9 +4678,16 @@ class ResellerApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/SMSCampaignsApi.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/SMSCampaignsApi.php index 31345a8..16833fd 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/SMSCampaignsApi.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/SMSCampaignsApi.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -59,6 +59,11 @@ class SMSCampaignsApi */ protected $config; + /** + * @var HeaderSelector + */ + protected $headerSelector; + /** * @param ClientInterface $client * @param Configuration $config @@ -265,7 +270,7 @@ class SMSCampaignsApi protected function createSmsCampaignRequest($createSmsCampaign) { // verify the required parameter 'createSmsCampaign' is set - if ($createSmsCampaign === null) { + if ($createSmsCampaign === null || (is_array($createSmsCampaign) && count($createSmsCampaign) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $createSmsCampaign when calling createSmsCampaign' ); @@ -301,9 +306,16 @@ class SMSCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -511,7 +523,7 @@ class SMSCampaignsApi protected function deleteSmsCampaignRequest($campaignId) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + if ($campaignId === null || (is_array($campaignId) && count($campaignId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $campaignId when calling deleteSmsCampaign' ); @@ -552,9 +564,16 @@ class SMSCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -799,7 +818,7 @@ class SMSCampaignsApi protected function getSmsCampaignRequest($campaignId) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + if ($campaignId === null || (is_array($campaignId) && count($campaignId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $campaignId when calling getSmsCampaign' ); @@ -840,9 +859,16 @@ class SMSCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1150,9 +1176,16 @@ class SMSCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1402,7 +1435,7 @@ class SMSCampaignsApi protected function requestSmsRecipientExportRequest($campaignId, $recipientExport = null) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + if ($campaignId === null || (is_array($campaignId) && count($campaignId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $campaignId when calling requestSmsRecipientExport' ); @@ -1446,9 +1479,16 @@ class SMSCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1664,7 +1704,7 @@ class SMSCampaignsApi protected function sendSmsCampaignNowRequest($campaignId) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + if ($campaignId === null || (is_array($campaignId) && count($campaignId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $campaignId when calling sendSmsCampaignNow' ); @@ -1705,9 +1745,16 @@ class SMSCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1920,13 +1967,13 @@ class SMSCampaignsApi protected function sendSmsReportRequest($campaignId, $sendReport) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + 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) { + if ($sendReport === null || (is_array($sendReport) && count($sendReport) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $sendReport when calling sendSmsReport' ); @@ -1970,9 +2017,16 @@ class SMSCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2185,13 +2239,13 @@ class SMSCampaignsApi protected function sendTestSmsRequest($campaignId, $phoneNumber) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + 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) { + if ($phoneNumber === null || (is_array($phoneNumber) && count($phoneNumber) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $phoneNumber when calling sendTestSms' ); @@ -2235,9 +2289,16 @@ class SMSCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2450,13 +2511,13 @@ class SMSCampaignsApi protected function updateSmsCampaignRequest($campaignId, $updateSmsCampaign) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + 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) { + if ($updateSmsCampaign === null || (is_array($updateSmsCampaign) && count($updateSmsCampaign) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $updateSmsCampaign when calling updateSmsCampaign' ); @@ -2500,9 +2561,16 @@ class SMSCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2715,13 +2783,13 @@ class SMSCampaignsApi protected function updateSmsCampaignStatusRequest($campaignId, $status) { // verify the required parameter 'campaignId' is set - if ($campaignId === null) { + 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) { + if ($status === null || (is_array($status) && count($status) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $status when calling updateSmsCampaignStatus' ); @@ -2765,9 +2833,16 @@ class SMSCampaignsApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/SMTPApi.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/SMTPApi.php index 6789ffb..62cc00a 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/SMTPApi.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/SMTPApi.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -59,6 +59,11 @@ class SMTPApi */ protected $config; + /** + * @var HeaderSelector + */ + protected $headerSelector; + /** * @param ClientInterface $client * @param Configuration $config @@ -85,9 +90,9 @@ class SMTPApi /** * Operation createSmtpTemplate * - * Create an smtp template + * Create a transactional email template * - * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in smtp template (required) + * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException @@ -102,9 +107,9 @@ class SMTPApi /** * Operation createSmtpTemplateWithHttpInfo * - * Create an smtp template + * Create a transactional email template * - * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in smtp template (required) + * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException @@ -185,9 +190,9 @@ class SMTPApi /** * Operation createSmtpTemplateAsync * - * Create an smtp template + * Create a transactional email template * - * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in smtp template (required) + * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface @@ -205,9 +210,9 @@ class SMTPApi /** * Operation createSmtpTemplateAsyncWithHttpInfo * - * Create an smtp template + * Create a transactional email template * - * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in smtp template (required) + * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface @@ -257,7 +262,7 @@ class SMTPApi /** * Create request for operation 'createSmtpTemplate' * - * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in smtp template (required) + * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request @@ -265,7 +270,7 @@ class SMTPApi protected function createSmtpTemplateRequest($smtpTemplate) { // verify the required parameter 'smtpTemplate' is set - if ($smtpTemplate === null) { + if ($smtpTemplate === null || (is_array($smtpTemplate) && count($smtpTemplate) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $smtpTemplate when calling createSmtpTemplate' ); @@ -301,9 +306,16 @@ class SMTPApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -533,9 +545,16 @@ class SMTPApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -592,7 +611,7 @@ class SMTPApi /** * Operation deleteSmtpTemplate * - * Delete an inactive smtp template + * Delete an inactive transactional email template * * @param int $templateId id of the template (required) * @@ -608,7 +627,7 @@ class SMTPApi /** * Operation deleteSmtpTemplateWithHttpInfo * - * Delete an inactive smtp template + * Delete an inactive transactional email template * * @param int $templateId id of the template (required) * @@ -677,7 +696,7 @@ class SMTPApi /** * Operation deleteSmtpTemplateAsync * - * Delete an inactive smtp template + * Delete an inactive transactional email template * * @param int $templateId id of the template (required) * @@ -697,7 +716,7 @@ class SMTPApi /** * Operation deleteSmtpTemplateAsyncWithHttpInfo * - * Delete an inactive smtp template + * Delete an inactive transactional email template * * @param int $templateId id of the template (required) * @@ -743,7 +762,7 @@ class SMTPApi protected function deleteSmtpTemplateRequest($templateId) { // verify the required parameter 'templateId' is set - if ($templateId === null) { + if ($templateId === null || (is_array($templateId) && count($templateId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $templateId when calling deleteSmtpTemplate' ); @@ -784,9 +803,16 @@ class SMTPApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -843,7 +869,7 @@ class SMTPApi /** * Operation getAggregatedSmtpReport * - * Get your SMTP activity aggregated over a period of time + * 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) @@ -863,7 +889,7 @@ class SMTPApi /** * Operation getAggregatedSmtpReportWithHttpInfo * - * Get your SMTP activity aggregated over a period of time + * 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) @@ -949,7 +975,7 @@ class SMTPApi /** * Operation getAggregatedSmtpReportAsync * - * Get your SMTP activity aggregated over a period of time + * 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) @@ -972,7 +998,7 @@ class SMTPApi /** * Operation getAggregatedSmtpReportAsyncWithHttpInfo * - * Get your SMTP activity aggregated over a period of time + * 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) @@ -1081,9 +1107,16 @@ class SMTPApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1140,7 +1173,7 @@ class SMTPApi /** * Operation getEmailEventReport * - * Get all your SMTP activity (unaggregated events) + * 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) @@ -1166,7 +1199,7 @@ class SMTPApi /** * Operation getEmailEventReportWithHttpInfo * - * Get all your SMTP activity (unaggregated events) + * 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) @@ -1258,7 +1291,7 @@ class SMTPApi /** * Operation getEmailEventReportAsync * - * Get all your SMTP activity (unaggregated events) + * 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) @@ -1287,7 +1320,7 @@ class SMTPApi /** * Operation getEmailEventReportAsyncWithHttpInfo * - * Get all your SMTP activity (unaggregated events) + * 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) @@ -1436,9 +1469,16 @@ class SMTPApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1495,9 +1535,9 @@ class SMTPApi /** * Operation getSmtpReport * - * Get your SMTP activity aggregated per day + * Get your transactional email activity aggregated per day * - * @param int $limit Number of documents returned per page (optional, default to 50) + * @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) @@ -1508,7 +1548,7 @@ class SMTPApi * @throws \InvalidArgumentException * @return \SendinBlue\Client\Model\GetReports */ - public function getSmtpReport($limit = '50', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null) + 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; @@ -1517,9 +1557,9 @@ class SMTPApi /** * Operation getSmtpReportWithHttpInfo * - * Get your SMTP activity aggregated per day + * Get your transactional email activity aggregated per day * - * @param int $limit Number of documents returned per page (optional, default to 50) + * @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) @@ -1530,7 +1570,7 @@ class SMTPApi * @throws \InvalidArgumentException * @return array of \SendinBlue\Client\Model\GetReports, HTTP status code, HTTP response headers (array of strings) */ - public function getSmtpReportWithHttpInfo($limit = '50', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null) + public function getSmtpReportWithHttpInfo($limit = '10', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null) { $returnType = '\SendinBlue\Client\Model\GetReports'; $request = $this->getSmtpReportRequest($limit, $offset, $startDate, $endDate, $days, $tag); @@ -1605,9 +1645,9 @@ class SMTPApi /** * Operation getSmtpReportAsync * - * Get your SMTP activity aggregated per day + * Get your transactional email activity aggregated per day * - * @param int $limit Number of documents returned per page (optional, default to 50) + * @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) @@ -1617,7 +1657,7 @@ class SMTPApi * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ - public function getSmtpReportAsync($limit = '50', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null) + 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( @@ -1630,9 +1670,9 @@ class SMTPApi /** * Operation getSmtpReportAsyncWithHttpInfo * - * Get your SMTP activity aggregated per day + * Get your transactional email activity aggregated per day * - * @param int $limit Number of documents returned per page (optional, default to 50) + * @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) @@ -1642,7 +1682,7 @@ class SMTPApi * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ - public function getSmtpReportAsyncWithHttpInfo($limit = '50', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null) + public function getSmtpReportAsyncWithHttpInfo($limit = '10', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null) { $returnType = '\SendinBlue\Client\Model\GetReports'; $request = $this->getSmtpReportRequest($limit, $offset, $startDate, $endDate, $days, $tag); @@ -1687,7 +1727,7 @@ class SMTPApi /** * Create request for operation 'getSmtpReport' * - * @param int $limit Number of documents returned per page (optional, default to 50) + * @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) @@ -1697,10 +1737,10 @@ class SMTPApi * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ - protected function getSmtpReportRequest($limit = '50', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null) + protected function getSmtpReportRequest($limit = '10', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null) { - if ($limit !== null && $limit > 100) { - throw new \InvalidArgumentException('invalid value for "$limit" when calling SMTPApi.getSmtpReport, must be smaller than or equal to 100.'); + if ($limit !== null && $limit > 30) { + throw new \InvalidArgumentException('invalid value for "$limit" when calling SMTPApi.getSmtpReport, must be smaller than or equal to 30.'); } @@ -1755,9 +1795,16 @@ class SMTPApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2002,7 +2049,7 @@ class SMTPApi protected function getSmtpTemplateRequest($templateId) { // verify the required parameter 'templateId' is set - if ($templateId === null) { + if ($templateId === null || (is_array($templateId) && count($templateId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $templateId when calling getSmtpTemplate' ); @@ -2043,9 +2090,16 @@ class SMTPApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2102,7 +2156,7 @@ class SMTPApi /** * Operation getSmtpTemplates * - * Get the list of SMTP templates + * Get the list of transactional 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) @@ -2121,7 +2175,7 @@ class SMTPApi /** * Operation getSmtpTemplatesWithHttpInfo * - * Get the list of SMTP templates + * Get the list of transactional 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) @@ -2206,7 +2260,7 @@ class SMTPApi /** * Operation getSmtpTemplatesAsync * - * Get the list of SMTP templates + * Get the list of transactional 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) @@ -2228,7 +2282,7 @@ class SMTPApi /** * Operation getSmtpTemplatesAsyncWithHttpInfo * - * Get the list of SMTP templates + * Get the list of transactional 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) @@ -2335,9 +2389,928 @@ class SMTPApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(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 MultipartStream($multipartContents); + + } elseif ($headers['Content-Type'] === 'application/json') { + $httpBody = \GuzzleHttp\json_encode($formParams); + + } else { + // for HTTP post (form) + $httpBody = \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 = \GuzzleHttp\Psr7\build_query($queryParams); + return new 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 = '\SendinBlue\Client\Model\GetTransacBlockedContacts'; + $request = $this->getTransacBlockedContactsRequest($startDate, $endDate, $limit, $offset, $senders); + + try { + $options = $this->createHttpClientOption(); + try { + $response = $this->client->send($request, $options); + } catch (RequestException $e) { + throw new 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 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 [ + ObjectSerializer::deserialize($content, $returnType, []), + $response->getStatusCode(), + $response->getHeaders() + ]; + + } catch (ApiException $e) { + switch ($e->getCode()) { + case 200: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\SendinBlue\Client\Model\GetTransacBlockedContacts', + $e->getResponseHeaders() + ); + $e->setResponseObject($data); + break; + case 400: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\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 = '\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 [ + ObjectSerializer::deserialize($content, $returnType, []), + $response->getStatusCode(), + $response->getHeaders() + ]; + }, + function ($exception) { + $response = $exception->getResponse(); + $statusCode = $response->getStatusCode(); + throw new 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'] = ObjectSerializer::toQueryValue($startDate); + } + // query params + if ($endDate !== null) { + $queryParams['endDate'] = ObjectSerializer::toQueryValue($endDate); + } + // query params + if ($limit !== null) { + $queryParams['limit'] = ObjectSerializer::toQueryValue($limit); + } + // query params + if ($offset !== null) { + $queryParams['offset'] = ObjectSerializer::toQueryValue($offset); + } + // query params + if (is_array($senders)) { + $queryParams['senders'] = $senders; + } else + if ($senders !== null) { + $queryParams['senders'] = 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 = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(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 MultipartStream($multipartContents); + + } elseif ($headers['Content-Type'] === 'application/json') { + $httpBody = \GuzzleHttp\json_encode($formParams); + + } else { + // for HTTP post (form) + $httpBody = \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 = \GuzzleHttp\Psr7\build_query($queryParams); + return new 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 = '\SendinBlue\Client\Model\GetTransacEmailContent'; + $request = $this->getTransacEmailContentRequest($uuid); + + try { + $options = $this->createHttpClientOption(); + try { + $response = $this->client->send($request, $options); + } catch (RequestException $e) { + throw new 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 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 [ + ObjectSerializer::deserialize($content, $returnType, []), + $response->getStatusCode(), + $response->getHeaders() + ]; + + } catch (ApiException $e) { + switch ($e->getCode()) { + case 200: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\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 = '\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 [ + ObjectSerializer::deserialize($content, $returnType, []), + $response->getStatusCode(), + $response->getHeaders() + ]; + }, + function ($exception) { + $response = $exception->getResponse(); + $statusCode = $response->getStatusCode(); + throw new 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' . '}', + 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 = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(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 MultipartStream($multipartContents); + + } elseif ($headers['Content-Type'] === 'application/json') { + $httpBody = \GuzzleHttp\json_encode($formParams); + + } else { + // for HTTP post (form) + $httpBody = \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 = \GuzzleHttp\Psr7\build_query($queryParams); + return new 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 string $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 string $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 = '\SendinBlue\Client\Model\GetTransacEmailsList'; + $request = $this->getTransacEmailsListRequest($email, $templateId, $messageId, $startDate, $endDate); + + try { + $options = $this->createHttpClientOption(); + try { + $response = $this->client->send($request, $options); + } catch (RequestException $e) { + throw new 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 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 [ + ObjectSerializer::deserialize($content, $returnType, []), + $response->getStatusCode(), + $response->getHeaders() + ]; + + } catch (ApiException $e) { + switch ($e->getCode()) { + case 200: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\SendinBlue\Client\Model\GetTransacEmailsList', + $e->getResponseHeaders() + ); + $e->setResponseObject($data); + break; + case 400: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\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 string $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 string $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 = '\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 [ + ObjectSerializer::deserialize($content, $returnType, []), + $response->getStatusCode(), + $response->getHeaders() + ]; + }, + function ($exception) { + $response = $exception->getResponse(); + $statusCode = $response->getStatusCode(); + throw new 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 string $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'] = ObjectSerializer::toQueryValue($email); + } + // query params + if ($templateId !== null) { + $queryParams['templateId'] = ObjectSerializer::toQueryValue($templateId); + } + // query params + if ($messageId !== null) { + $queryParams['messageId'] = ObjectSerializer::toQueryValue($messageId); + } + // query params + if ($startDate !== null) { + $queryParams['startDate'] = ObjectSerializer::toQueryValue($startDate); + } + // query params + if ($endDate !== null) { + $queryParams['endDate'] = 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 = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2587,13 +3560,13 @@ class SMTPApi protected function sendTemplateRequest($templateId, $sendEmail) { // verify the required parameter 'templateId' is set - if ($templateId === null) { + 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) { + if ($sendEmail === null || (is_array($sendEmail) && count($sendEmail) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $sendEmail when calling sendTemplate' ); @@ -2637,9 +3610,16 @@ class SMTPApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -2852,13 +3832,13 @@ class SMTPApi protected function sendTestTemplateRequest($templateId, $sendTestEmail) { // verify the required parameter 'templateId' is set - if ($templateId === null) { + 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) { + if ($sendTestEmail === null || (is_array($sendTestEmail) && count($sendTestEmail) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $sendTestEmail when calling sendTestTemplate' ); @@ -2902,9 +3882,16 @@ class SMTPApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -3141,7 +4128,7 @@ class SMTPApi protected function sendTransacEmailRequest($sendSmtpEmail) { // verify the required parameter 'sendSmtpEmail' is set - if ($sendSmtpEmail === null) { + if ($sendSmtpEmail === null || (is_array($sendSmtpEmail) && count($sendSmtpEmail) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $sendSmtpEmail when calling sendTransacEmail' ); @@ -3177,9 +4164,16 @@ class SMTPApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -3233,13 +4227,529 @@ class SMTPApi ); } + /** + * 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 (RequestException $e) { + throw new 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 ApiException( + sprintf( + '[%d] Error connecting to the API (%s)', + $statusCode, + $request->getUri() + ), + $statusCode, + $response->getHeaders(), + $response->getBody() + ); + } + + return [null, $statusCode, $response->getHeaders()]; + + } catch (ApiException $e) { + switch ($e->getCode()) { + case 400: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\SendinBlue\Client\Model\ErrorModel', + $e->getResponseHeaders() + ); + $e->setResponseObject($data); + break; + case 404: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\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 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' . '}', + 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 = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(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 MultipartStream($multipartContents); + + } elseif ($headers['Content-Type'] === 'application/json') { + $httpBody = \GuzzleHttp\json_encode($formParams); + + } else { + // for HTTP post (form) + $httpBody = \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 = \GuzzleHttp\Psr7\build_query($queryParams); + return new 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 (RequestException $e) { + throw new 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 ApiException( + sprintf( + '[%d] Error connecting to the API (%s)', + $statusCode, + $request->getUri() + ), + $statusCode, + $response->getHeaders(), + $response->getBody() + ); + } + + return [null, $statusCode, $response->getHeaders()]; + + } catch (ApiException $e) { + switch ($e->getCode()) { + case 400: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\SendinBlue\Client\Model\ErrorModel', + $e->getResponseHeaders() + ); + $e->setResponseObject($data); + break; + case 404: + $data = ObjectSerializer::deserialize( + $e->getResponseBody(), + '\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 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' . '}', + 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 = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(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 MultipartStream($multipartContents); + + } elseif ($headers['Content-Type'] === 'application/json') { + $httpBody = \GuzzleHttp\json_encode($formParams); + + } else { + // for HTTP post (form) + $httpBody = \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 = \GuzzleHttp\Psr7\build_query($queryParams); + return new Request( + 'DELETE', + $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), + $headers, + $httpBody + ); + } + /** * Operation updateSmtpTemplate * - * Updates an smtp templates + * Updates a transactional email templates * * @param int $templateId id of the template (required) - * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in smtp 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 @@ -3253,10 +4763,10 @@ class SMTPApi /** * Operation updateSmtpTemplateWithHttpInfo * - * Updates an smtp templates + * Updates a transactional email templates * * @param int $templateId id of the template (required) - * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in smtp 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 @@ -3323,10 +4833,10 @@ class SMTPApi /** * Operation updateSmtpTemplateAsync * - * Updates an smtp templates + * Updates a transactional email templates * * @param int $templateId id of the template (required) - * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in smtp template (required) + * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface @@ -3344,10 +4854,10 @@ class SMTPApi /** * Operation updateSmtpTemplateAsyncWithHttpInfo * - * Updates an smtp templates + * Updates a transactional email templates * * @param int $templateId id of the template (required) - * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in smtp template (required) + * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface @@ -3384,7 +4894,7 @@ class SMTPApi * Create request for operation 'updateSmtpTemplate' * * @param int $templateId id of the template (required) - * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in smtp template (required) + * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request @@ -3392,13 +4902,13 @@ class SMTPApi protected function updateSmtpTemplateRequest($templateId, $smtpTemplate) { // verify the required parameter 'templateId' is set - if ($templateId === null) { + 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) { + if ($smtpTemplate === null || (is_array($smtpTemplate) && count($smtpTemplate) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $smtpTemplate when calling updateSmtpTemplate' ); @@ -3442,9 +4952,16 @@ class SMTPApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/SendersApi.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/SendersApi.php index fade455..4a2cde4 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/SendersApi.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/SendersApi.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -59,6 +59,11 @@ class SendersApi */ protected $config; + /** + * @var HeaderSelector + */ + protected $headerSelector; + /** * @param ClientInterface $client * @param Configuration $config @@ -295,9 +300,16 @@ class SendersApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -505,7 +517,7 @@ class SendersApi protected function deleteSenderRequest($senderId) { // verify the required parameter 'senderId' is set - if ($senderId === null) { + if ($senderId === null || (is_array($senderId) && count($senderId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $senderId when calling deleteSender' ); @@ -546,9 +558,16 @@ class SendersApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -799,9 +818,16 @@ class SendersApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1046,7 +1072,7 @@ class SendersApi protected function getIpsFromSenderRequest($senderId) { // verify the required parameter 'senderId' is set - if ($senderId === null) { + if ($senderId === null || (is_array($senderId) && count($senderId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $senderId when calling getIpsFromSender' ); @@ -1087,9 +1113,16 @@ class SendersApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1366,9 +1399,16 @@ class SendersApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1581,7 +1621,7 @@ class SendersApi protected function updateSenderRequest($senderId, $sender = null) { // verify the required parameter 'senderId' is set - if ($senderId === null) { + if ($senderId === null || (is_array($senderId) && count($senderId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $senderId when calling updateSender' ); @@ -1625,9 +1665,16 @@ class SendersApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/TransactionalSMSApi.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/TransactionalSMSApi.php index 3391fdf..b316d6d 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/TransactionalSMSApi.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/TransactionalSMSApi.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -59,6 +59,11 @@ class TransactionalSMSApi */ protected $config; + /** + * @var HeaderSelector + */ + protected $headerSelector; + /** * @param ClientInterface $client * @param Configuration $config @@ -363,9 +368,16 @@ class TransactionalSMSApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -660,9 +672,16 @@ class TransactionalSMSApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -957,9 +976,16 @@ class TransactionalSMSApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1204,7 +1230,7 @@ class TransactionalSMSApi protected function sendTransacSmsRequest($sendTransacSms) { // verify the required parameter 'sendTransacSms' is set - if ($sendTransacSms === null) { + if ($sendTransacSms === null || (is_array($sendTransacSms) && count($sendTransacSms) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $sendTransacSms when calling sendTransacSms' ); @@ -1240,9 +1266,16 @@ class TransactionalSMSApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/WebhooksApi.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/WebhooksApi.php index 38c7116..b345370 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/WebhooksApi.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Api/WebhooksApi.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -59,6 +59,11 @@ class WebhooksApi */ protected $config; + /** + * @var HeaderSelector + */ + protected $headerSelector; + /** * @param ClientInterface $client * @param Configuration $config @@ -265,7 +270,7 @@ class WebhooksApi protected function createWebhookRequest($createWebhook) { // verify the required parameter 'createWebhook' is set - if ($createWebhook === null) { + if ($createWebhook === null || (is_array($createWebhook) && count($createWebhook) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $createWebhook when calling createWebhook' ); @@ -301,9 +306,16 @@ class WebhooksApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -511,7 +523,7 @@ class WebhooksApi protected function deleteWebhookRequest($webhookId) { // verify the required parameter 'webhookId' is set - if ($webhookId === null) { + if ($webhookId === null || (is_array($webhookId) && count($webhookId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $webhookId when calling deleteWebhook' ); @@ -552,9 +564,16 @@ class WebhooksApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -799,7 +818,7 @@ class WebhooksApi protected function getWebhookRequest($webhookId) { // verify the required parameter 'webhookId' is set - if ($webhookId === null) { + if ($webhookId === null || (is_array($webhookId) && count($webhookId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $webhookId when calling getWebhook' ); @@ -840,9 +859,16 @@ class WebhooksApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1110,9 +1136,16 @@ class WebhooksApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { @@ -1325,13 +1358,13 @@ class WebhooksApi protected function updateWebhookRequest($webhookId, $updateWebhook) { // verify the required parameter 'webhookId' is set - if ($webhookId === null) { + 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) { + if ($updateWebhook === null || (is_array($updateWebhook) && count($updateWebhook) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $updateWebhook when calling updateWebhook' ); @@ -1375,9 +1408,16 @@ class WebhooksApi if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; - // \stdClass has no __toString(), so we should encode it manually - if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { - $httpBody = \GuzzleHttp\json_encode($httpBody); + + if($headers['Content-Type'] === 'application/json') { + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass) { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + // array has no __toString(), so we should encode it manually + if(is_array($httpBody)) { + $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); + } } } elseif (count($formParams) > 0) { if ($multipart) { diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/ApiException.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/ApiException.php index ff45e00..f9783cc 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/ApiException.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/ApiException.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Configuration.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Configuration.php index 06d6bb5..f99275f 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Configuration.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Configuration.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/HeaderSelector.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/HeaderSelector.php index 214dff6..56b557d 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/HeaderSelector.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/HeaderSelector.php @@ -12,12 +12,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AbTestCampaignResult.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AbTestCampaignResult.php new file mode 100644 index 0000000..1b81c77 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AbTestCampaignResult.php @@ -0,0 +1,515 @@ + '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( + ObjectSerializer::sanitizeForSerialization($this), + JSON_PRETTY_PRINT + ); + } + + return json_encode(ObjectSerializer::sanitizeForSerialization($this)); + } +} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AddChildDomain.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AddChildDomain.php index 3c24c86..b139251 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AddChildDomain.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AddChildDomain.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -200,8 +200,7 @@ class AddChildDomain implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AddContactToList.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AddContactToList.php index 673e1ed..fb83296 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AddContactToList.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AddContactToList.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -200,8 +200,7 @@ class AddContactToList implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AddCredits.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AddCredits.php index 1714ad1..cbf0dde 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AddCredits.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/AddCredits.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -206,8 +206,7 @@ class AddCredits implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateAttribute.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateAttribute.php index 86a338a..da409c8 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateAttribute.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateAttribute.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -225,7 +225,7 @@ class CreateAttribute implements ModelInterface, ArrayAccess $invalidProperties = []; $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { + 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) @@ -243,12 +243,7 @@ class CreateAttribute implements ModelInterface, ArrayAccess */ public function valid() { - - $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -320,7 +315,7 @@ class CreateAttribute implements ModelInterface, ArrayAccess public function setType($type) { $allowedValues = $this->getTypeAllowableValues(); - if (!is_null($type) && !in_array($type, $allowedValues)) { + if (!is_null($type) && !in_array($type, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'type', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateAttributeEnumeration.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateAttributeEnumeration.php index fad0af8..61e60d6 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateAttributeEnumeration.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateAttributeEnumeration.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class CreateAttributeEnumeration implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['value'] === null) { - return false; - } - if ($this->container['label'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateChild.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateChild.php index 5e5c980..6fb54a3 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateChild.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateChild.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -239,23 +239,7 @@ class CreateChild implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['email'] === null) { - return false; - } - if ($this->container['firstName'] === null) { - return false; - } - if ($this->container['lastName'] === null) { - return false; - } - if ($this->container['companyName'] === null) { - return false; - } - if ($this->container['password'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateContact.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateContact.php index c362203..fcf0bd7 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateContact.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateContact.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -236,8 +236,7 @@ class CreateContact implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } @@ -254,7 +253,7 @@ class CreateContact implements ModelInterface, ArrayAccess /** * Sets email * - * @param string $email Email address of the user. Mandatory if \"sms\" field is not passed in \"attributes\" parameter' + * @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 */ @@ -278,7 +277,7 @@ class CreateContact implements ModelInterface, ArrayAccess /** * Sets attributes * - * @param object $attributes Pass the set of attributes and their values. These attributes must be present in your SendinBlue account. For example, `{\"FNAME\":\"Elly\", \"LNAME\":\"Roger\"}` + * @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 */ @@ -398,7 +397,7 @@ class CreateContact implements ModelInterface, ArrayAccess /** * Sets smtpBlacklistSender * - * @param string[] $smtpBlacklistSender SMTP forbidden sender for contact. Use only for email Contact ( only available if updateEnabled = true ) + * @param string[] $smtpBlacklistSender transactional email forbidden sender for contact. Use only for email Contact ( only available if updateEnabled = true ) * * @return $this */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaign.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaign.php index 572ab1b..db00ac9 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaign.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaign.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -81,7 +81,10 @@ class CreateEmailCampaign implements ModelInterface, ArrayAccess 'subjectB' => 'string', 'splitRule' => 'int', 'winnerCriteria' => 'string', - 'winnerDelay' => 'int' + 'winnerDelay' => 'int', + 'ipWarmupEnable' => 'bool', + 'initialQuota' => 'int', + 'increaseRate' => 'int' ]; /** @@ -114,7 +117,10 @@ class CreateEmailCampaign implements ModelInterface, ArrayAccess 'subjectB' => null, 'splitRule' => 'int64', 'winnerCriteria' => null, - 'winnerDelay' => 'int64' + 'winnerDelay' => 'int64', + 'ipWarmupEnable' => null, + 'initialQuota' => 'int64', + 'increaseRate' => 'int64' ]; /** @@ -168,7 +174,10 @@ class CreateEmailCampaign implements ModelInterface, ArrayAccess 'subjectB' => 'subjectB', 'splitRule' => 'splitRule', 'winnerCriteria' => 'winnerCriteria', - 'winnerDelay' => 'winnerDelay' + 'winnerDelay' => 'winnerDelay', + 'ipWarmupEnable' => 'ipWarmupEnable', + 'initialQuota' => 'initialQuota', + 'increaseRate' => 'increaseRate' ]; /** @@ -201,7 +210,10 @@ class CreateEmailCampaign implements ModelInterface, ArrayAccess 'subjectB' => 'setSubjectB', 'splitRule' => 'setSplitRule', 'winnerCriteria' => 'setWinnerCriteria', - 'winnerDelay' => 'setWinnerDelay' + 'winnerDelay' => 'setWinnerDelay', + 'ipWarmupEnable' => 'setIpWarmupEnable', + 'initialQuota' => 'setInitialQuota', + 'increaseRate' => 'setIncreaseRate' ]; /** @@ -234,7 +246,10 @@ class CreateEmailCampaign implements ModelInterface, ArrayAccess 'subjectB' => 'getSubjectB', 'splitRule' => 'getSplitRule', 'winnerCriteria' => 'getWinnerCriteria', - 'winnerDelay' => 'getWinnerDelay' + 'winnerDelay' => 'getWinnerDelay', + 'ipWarmupEnable' => 'getIpWarmupEnable', + 'initialQuota' => 'getInitialQuota', + 'increaseRate' => 'getIncreaseRate' ]; /** @@ -337,6 +352,9 @@ class CreateEmailCampaign implements ModelInterface, ArrayAccess $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; } /** @@ -363,7 +381,7 @@ class CreateEmailCampaign implements ModelInterface, ArrayAccess } $allowedValues = $this->getWinnerCriteriaAllowableValues(); - if (!in_array($this->container['winnerCriteria'], $allowedValues)) { + 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) @@ -378,6 +396,14 @@ class CreateEmailCampaign implements ModelInterface, ArrayAccess $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; } @@ -389,30 +415,7 @@ class CreateEmailCampaign implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['sender'] === null) { - return false; - } - if ($this->container['name'] === null) { - return false; - } - if ($this->container['splitRule'] > 50) { - return false; - } - if ($this->container['splitRule'] < 1) { - return false; - } - $allowedValues = $this->getWinnerCriteriaAllowableValues(); - if (!in_array($this->container['winnerCriteria'], $allowedValues)) { - return false; - } - if ($this->container['winnerDelay'] > 168) { - return false; - } - if ($this->container['winnerDelay'] < 1) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -549,7 +552,7 @@ class CreateEmailCampaign implements ModelInterface, ArrayAccess /** * Sets templateId * - * @param int $templateId Mandatory if htmlContent and htmlUrl are empty. Id of the SMTP template with status 'active'. Used to copy only its content fetched from htmlContent/htmlUrl to an email campaign for RSS feature. + * @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 */ @@ -645,7 +648,7 @@ class CreateEmailCampaign implements ModelInterface, ArrayAccess /** * 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 + * @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 */ @@ -996,7 +999,7 @@ class CreateEmailCampaign implements ModelInterface, ArrayAccess public function setWinnerCriteria($winnerCriteria) { $allowedValues = $this->getWinnerCriteriaAllowableValues(); - if (!is_null($winnerCriteria) && !in_array($winnerCriteria, $allowedValues)) { + if (!is_null($winnerCriteria) && !in_array($winnerCriteria, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'winnerCriteria', must be one of '%s'", @@ -1040,6 +1043,86 @@ class CreateEmailCampaign implements ModelInterface, ArrayAccess 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. * diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignRecipients.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignRecipients.php index eb83145..719be7a 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignRecipients.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignRecipients.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -207,8 +207,7 @@ class CreateEmailCampaignRecipients implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignSender.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignSender.php index 71fe1a3..6bb3c64 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignSender.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateEmailCampaignSender.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -36,7 +36,7 @@ use \SendinBlue\Client\ObjectSerializer; * CreateEmailCampaignSender Class Doc Comment * * @category Class - * @description Sender details including email and name (optional). For example `{\"name\":\"xyz\", \"email\":\"example@abc.com\"}` + * @description Sender details including id or email and name (optional). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example `{\"name\":\"xyz\", \"email\":\"example@abc.com\"}` , `{\"name\":\"xyz\", \"id\":123}` * @package SendinBlue\Client * @author Swagger Codegen team * @link https://github.com/swagger-api/swagger-codegen @@ -59,7 +59,8 @@ class CreateEmailCampaignSender implements ModelInterface, ArrayAccess */ protected static $swaggerTypes = [ 'name' => 'string', - 'email' => 'string' + 'email' => 'string', + 'id' => 'int' ]; /** @@ -69,7 +70,8 @@ class CreateEmailCampaignSender implements ModelInterface, ArrayAccess */ protected static $swaggerFormats = [ 'name' => null, - 'email' => 'email' + 'email' => 'email', + 'id' => 'int64' ]; /** @@ -100,7 +102,8 @@ class CreateEmailCampaignSender implements ModelInterface, ArrayAccess */ protected static $attributeMap = [ 'name' => 'name', - 'email' => 'email' + 'email' => 'email', + 'id' => 'id' ]; /** @@ -110,7 +113,8 @@ class CreateEmailCampaignSender implements ModelInterface, ArrayAccess */ protected static $setters = [ 'name' => 'setName', - 'email' => 'setEmail' + 'email' => 'setEmail', + 'id' => 'setId' ]; /** @@ -120,7 +124,8 @@ class CreateEmailCampaignSender implements ModelInterface, ArrayAccess */ protected static $getters = [ 'name' => 'getName', - 'email' => 'getEmail' + 'email' => 'getEmail', + 'id' => 'getId' ]; /** @@ -185,6 +190,7 @@ class CreateEmailCampaignSender implements ModelInterface, ArrayAccess { $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; } /** @@ -210,11 +216,7 @@ class CreateEmailCampaignSender implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['email'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -265,6 +267,30 @@ class CreateEmailCampaignSender implements ModelInterface, ArrayAccess 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. * diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateList.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateList.php index f3698d9..d6a812d 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateList.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateList.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class CreateList implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['name'] === null) { - return false; - } - if ($this->container['folderId'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateModel.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateModel.php index 15a1cf4..fe5ab29 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateModel.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateModel.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -203,11 +203,7 @@ class CreateModel implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['id'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateReseller.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateReseller.php index b384daa..1dff8d0 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateReseller.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateReseller.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -203,11 +203,7 @@ class CreateReseller implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['authKey'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSender.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSender.php index 87cb01e..7eb24ee 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSender.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSender.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -218,14 +218,7 @@ class CreateSender implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['name'] === null) { - return false; - } - if ($this->container['email'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSenderIps.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSenderIps.php index 82b885b..9df80df 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSenderIps.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSenderIps.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -226,20 +226,7 @@ class CreateSenderIps implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['ip'] === null) { - return false; - } - if ($this->container['domain'] === null) { - return false; - } - if ($this->container['weight'] > 100) { - return false; - } - if ($this->container['weight'] < 1) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSenderModel.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSenderModel.php index 597078b..0f6be5f 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSenderModel.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSenderModel.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -215,11 +215,7 @@ class CreateSenderModel implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['id'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaign.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaign.php index 09502e6..a02aeb7 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaign.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaign.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -219,7 +219,7 @@ class CreateSmsCampaign implements ModelInterface, ArrayAccess if ($this->container['sender'] === null) { $invalidProperties[] = "'sender' can't be null"; } - if ((strlen($this->container['sender']) > 11)) { + if ((mb_strlen($this->container['sender']) > 11)) { $invalidProperties[] = "invalid value for 'sender', the character length must be smaller than or equal to 11."; } @@ -237,20 +237,7 @@ class CreateSmsCampaign implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['name'] === null) { - return false; - } - if ($this->container['sender'] === null) { - return false; - } - if (strlen($this->container['sender']) > 11) { - return false; - } - if ($this->container['content'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -297,7 +284,7 @@ class CreateSmsCampaign implements ModelInterface, ArrayAccess */ public function setSender($sender) { - if ((strlen($sender) > 11)) { + if ((mb_strlen($sender) > 11)) { throw new \InvalidArgumentException('invalid length for $sender when calling CreateSmsCampaign., must be smaller than or equal to 11.'); } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaignRecipients.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaignRecipients.php index 90b817d..c34dc29 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaignRecipients.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmsCampaignRecipients.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -209,11 +209,7 @@ class CreateSmsCampaignRecipients implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['listIds'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmtpEmail.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmtpEmail.php index 63a4d01..8ac8729 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmtpEmail.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmtpEmail.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -203,11 +203,7 @@ class CreateSmtpEmail implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['messageId'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -224,7 +220,7 @@ class CreateSmtpEmail implements ModelInterface, ArrayAccess /** * Sets messageId * - * @param string $messageId Message ID of the SMTP Email sent + * @param string $messageId Message ID of the transactional email sent * * @return $this */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplate.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplate.php index bea4d64..26b8bbd 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplate.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplate.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -263,17 +263,7 @@ class CreateSmtpTemplate implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['sender'] === null) { - return false; - } - if ($this->container['templateName'] === null) { - return false; - } - if ($this->container['subject'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -458,7 +448,7 @@ class CreateSmtpTemplate implements ModelInterface, ArrayAccess /** * 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 + * @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 */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplateSender.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplateSender.php index f4f048f..e0bbe0e 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplateSender.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateSmtpTemplateSender.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -36,7 +36,7 @@ use \SendinBlue\Client\ObjectSerializer; * CreateSmtpTemplateSender Class Doc Comment * * @category Class - * @description Sender details including email and name (optional). For example `{\"name\":\"xyz\", \"email\":\"example@abc.com\"}` + * @description Sender details including id or email and name (optional). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example `{\"name\":\"xyz\", \"email\":\"example@abc.com\"}` , `{\"name\":\"xyz\", \"id\":123}` * @package SendinBlue\Client * @author Swagger Codegen team * @link https://github.com/swagger-api/swagger-codegen @@ -59,7 +59,8 @@ class CreateSmtpTemplateSender implements ModelInterface, ArrayAccess */ protected static $swaggerTypes = [ 'name' => 'string', - 'email' => 'string' + 'email' => 'string', + 'id' => 'int' ]; /** @@ -69,7 +70,8 @@ class CreateSmtpTemplateSender implements ModelInterface, ArrayAccess */ protected static $swaggerFormats = [ 'name' => null, - 'email' => 'email' + 'email' => 'email', + 'id' => 'int64' ]; /** @@ -100,7 +102,8 @@ class CreateSmtpTemplateSender implements ModelInterface, ArrayAccess */ protected static $attributeMap = [ 'name' => 'name', - 'email' => 'email' + 'email' => 'email', + 'id' => 'id' ]; /** @@ -110,7 +113,8 @@ class CreateSmtpTemplateSender implements ModelInterface, ArrayAccess */ protected static $setters = [ 'name' => 'setName', - 'email' => 'setEmail' + 'email' => 'setEmail', + 'id' => 'setId' ]; /** @@ -120,7 +124,8 @@ class CreateSmtpTemplateSender implements ModelInterface, ArrayAccess */ protected static $getters = [ 'name' => 'getName', - 'email' => 'getEmail' + 'email' => 'getEmail', + 'id' => 'getId' ]; /** @@ -185,6 +190,7 @@ class CreateSmtpTemplateSender implements ModelInterface, ArrayAccess { $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; } /** @@ -210,11 +216,7 @@ class CreateSmtpTemplateSender implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['email'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -265,6 +267,30 @@ class CreateSmtpTemplateSender implements ModelInterface, ArrayAccess 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. * diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateUpdateContactModel.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateUpdateContactModel.php index 9198065..fced0de 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateUpdateContactModel.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateUpdateContactModel.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -200,8 +200,7 @@ class CreateUpdateContactModel implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateUpdateFolder.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateUpdateFolder.php index e51e62a..b1312a7 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateUpdateFolder.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateUpdateFolder.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -200,8 +200,7 @@ class CreateUpdateFolder implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateWebhook.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateWebhook.php index 21524b0..d76a8aa 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateWebhook.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreateWebhook.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -186,6 +186,8 @@ class CreateWebhook implements ModelInterface, ArrayAccess 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'; @@ -212,6 +214,8 @@ class CreateWebhook implements ModelInterface, ArrayAccess self::EVENTS_UNIQUE_OPENED, self::EVENTS_UNSUBSCRIBED, self::EVENTS_LIST_ADDITION, + self::EVENTS_CONTACT_UPDATED, + self::EVENTS_CONTACT_DELETED, ]; } @@ -266,7 +270,7 @@ class CreateWebhook implements ModelInterface, ArrayAccess $invalidProperties[] = "'events' can't be null"; } $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { + 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) @@ -284,18 +288,7 @@ class CreateWebhook implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['url'] === null) { - return false; - } - if ($this->container['events'] === null) { - return false; - } - $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -400,7 +393,7 @@ class CreateWebhook implements ModelInterface, ArrayAccess public function setType($type) { $allowedValues = $this->getTypeAllowableValues(); - if (!is_null($type) && !in_array($type, $allowedValues)) { + if (!is_null($type) && !in_array($type, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'type', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreatedProcessId.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreatedProcessId.php index dcf6ecf..d1ed5a4 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreatedProcessId.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/CreatedProcessId.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -203,11 +203,7 @@ class CreatedProcessId implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['processId'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/DeleteHardbounces.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/DeleteHardbounces.php index 5b87d5e..335e0da 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/DeleteHardbounces.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/DeleteHardbounces.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,8 +212,7 @@ class DeleteHardbounces implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/EmailExportRecipients.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/EmailExportRecipients.php index f092a17..a410b91 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/EmailExportRecipients.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/EmailExportRecipients.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -226,7 +226,7 @@ class EmailExportRecipients implements ModelInterface, ArrayAccess $invalidProperties[] = "'recipientsType' can't be null"; } $allowedValues = $this->getRecipientsTypeAllowableValues(); - if (!in_array($this->container['recipientsType'], $allowedValues)) { + 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) @@ -244,15 +244,7 @@ class EmailExportRecipients implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['recipientsType'] === null) { - return false; - } - $allowedValues = $this->getRecipientsTypeAllowableValues(); - if (!in_array($this->container['recipientsType'], $allowedValues)) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -300,7 +292,7 @@ class EmailExportRecipients implements ModelInterface, ArrayAccess public function setRecipientsType($recipientsType) { $allowedValues = $this->getRecipientsTypeAllowableValues(); - if (!in_array($recipientsType, $allowedValues)) { + if (!in_array($recipientsType, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'recipientsType', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/ErrorModel.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/ErrorModel.php index 4c98fb5..d63e6f9 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/ErrorModel.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/ErrorModel.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -240,7 +240,7 @@ class ErrorModel implements ModelInterface, ArrayAccess $invalidProperties[] = "'code' can't be null"; } $allowedValues = $this->getCodeAllowableValues(); - if (!in_array($this->container['code'], $allowedValues)) { + 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) @@ -261,18 +261,7 @@ class ErrorModel implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['code'] === null) { - return false; - } - $allowedValues = $this->getCodeAllowableValues(); - if (!in_array($this->container['code'], $allowedValues)) { - return false; - } - if ($this->container['message'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -296,7 +285,7 @@ class ErrorModel implements ModelInterface, ArrayAccess public function setCode($code) { $allowedValues = $this->getCodeAllowableValues(); - if (!in_array($code, $allowedValues)) { + if (!in_array($code, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'code', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccount.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccount.php index cb9dd7a..3e0fea9 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccount.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccount.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -263,29 +263,7 @@ class GetAccount implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['email'] === null) { - return false; - } - if ($this->container['firstName'] === null) { - return false; - } - if ($this->container['lastName'] === null) { - return false; - } - if ($this->container['companyName'] === null) { - return false; - } - if ($this->container['address'] === null) { - return false; - } - if ($this->container['plan'] === null) { - return false; - } - if ($this->container['relay'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountMarketingAutomation.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountMarketingAutomation.php index a5721b2..b59305d 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountMarketingAutomation.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountMarketingAutomation.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -209,11 +209,7 @@ class GetAccountMarketingAutomation implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['enabled'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountPlan.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountPlan.php index df25b78..dd3b616 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountPlan.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountPlan.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -257,7 +257,7 @@ class GetAccountPlan implements ModelInterface, ArrayAccess $invalidProperties[] = "'type' can't be null"; } $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { + 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) @@ -268,7 +268,7 @@ class GetAccountPlan implements ModelInterface, ArrayAccess $invalidProperties[] = "'creditsType' can't be null"; } $allowedValues = $this->getCreditsTypeAllowableValues(); - if (!in_array($this->container['creditsType'], $allowedValues)) { + 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) @@ -289,25 +289,7 @@ class GetAccountPlan implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['type'] === null) { - return false; - } - $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { - return false; - } - if ($this->container['creditsType'] === null) { - return false; - } - $allowedValues = $this->getCreditsTypeAllowableValues(); - if (!in_array($this->container['creditsType'], $allowedValues)) { - return false; - } - if ($this->container['credits'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -331,7 +313,7 @@ class GetAccountPlan implements ModelInterface, ArrayAccess public function setType($type) { $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($type, $allowedValues)) { + if (!in_array($type, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'type', must be one of '%s'", @@ -364,7 +346,7 @@ class GetAccountPlan implements ModelInterface, ArrayAccess public function setCreditsType($creditsType) { $allowedValues = $this->getCreditsTypeAllowableValues(); - if (!in_array($creditsType, $allowedValues)) { + if (!in_array($creditsType, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'creditsType', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountRelay.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountRelay.php index 61ae084..a49a56c 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountRelay.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountRelay.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -36,7 +36,7 @@ use \SendinBlue\Client\ObjectSerializer; * GetAccountRelay Class Doc Comment * * @category Class - * @description Information about your SMTP account + * @description Information about your transactional email account * @package SendinBlue\Client * @author Swagger Codegen team * @link https://github.com/swagger-api/swagger-codegen @@ -213,14 +213,7 @@ class GetAccountRelay implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['enabled'] === null) { - return false; - } - if ($this->container['data'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -237,7 +230,7 @@ class GetAccountRelay implements ModelInterface, ArrayAccess /** * Sets enabled * - * @param bool $enabled Status of your SMTP Account (true=Enabled, false=Disabled) + * @param bool $enabled Status of your transactional email Account (true=Enabled, false=Disabled) * * @return $this */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountRelayData.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountRelayData.php index 07beaf0..41cc0be 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountRelayData.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAccountRelayData.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -36,7 +36,7 @@ use \SendinBlue\Client\ObjectSerializer; * GetAccountRelayData Class Doc Comment * * @category Class - * @description Data regarding the SMTP account + * @description Data regarding the transactional email account * @package SendinBlue\Client * @author Swagger Codegen team * @link https://github.com/swagger-api/swagger-codegen @@ -222,17 +222,7 @@ class GetAccountRelayData implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['userName'] === null) { - return false; - } - if ($this->container['relay'] === null) { - return false; - } - if ($this->container['port'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -249,7 +239,7 @@ class GetAccountRelayData implements ModelInterface, ArrayAccess /** * Sets userName * - * @param string $userName Email to use as login on SMTP + * @param string $userName Email to use as login on transactional platform * * @return $this */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAggregatedReport.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAggregatedReport.php index 7bae834..11c8cc0 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAggregatedReport.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAggregatedReport.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -311,47 +311,7 @@ class GetAggregatedReport implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['range'] === null) { - return false; - } - if ($this->container['requests'] === null) { - return false; - } - if ($this->container['delivered'] === null) { - return false; - } - if ($this->container['hardBounces'] === null) { - return false; - } - if ($this->container['softBounces'] === null) { - return false; - } - if ($this->container['clicks'] === null) { - return false; - } - if ($this->container['uniqueClicks'] === null) { - return false; - } - if ($this->container['opens'] === null) { - return false; - } - if ($this->container['uniqueOpens'] === null) { - return false; - } - if ($this->container['spamReports'] === null) { - return false; - } - if ($this->container['blocked'] === null) { - return false; - } - if ($this->container['invalid'] === null) { - return false; - } - if ($this->container['unsubscribed'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAttributes.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAttributes.php index 1cfc845..ecb17e6 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAttributes.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAttributes.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -203,11 +203,7 @@ class GetAttributes implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['attributes'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAttributesAttributes.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAttributesAttributes.php index 7cdea1c..a87e68c 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAttributesAttributes.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAttributesAttributes.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -262,7 +262,7 @@ class GetAttributesAttributes implements ModelInterface, ArrayAccess $invalidProperties[] = "'category' can't be null"; } $allowedValues = $this->getCategoryAllowableValues(); - if (!in_array($this->container['category'], $allowedValues)) { + 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) @@ -270,7 +270,7 @@ class GetAttributesAttributes implements ModelInterface, ArrayAccess } $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { + 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) @@ -288,22 +288,7 @@ class GetAttributesAttributes implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['name'] === null) { - return false; - } - if ($this->container['category'] === null) { - return false; - } - $allowedValues = $this->getCategoryAllowableValues(); - if (!in_array($this->container['category'], $allowedValues)) { - return false; - } - $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -351,7 +336,7 @@ class GetAttributesAttributes implements ModelInterface, ArrayAccess public function setCategory($category) { $allowedValues = $this->getCategoryAllowableValues(); - if (!in_array($category, $allowedValues)) { + if (!in_array($category, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'category', must be one of '%s'", @@ -384,7 +369,7 @@ class GetAttributesAttributes implements ModelInterface, ArrayAccess public function setType($type) { $allowedValues = $this->getTypeAllowableValues(); - if (!is_null($type) && !in_array($type, $allowedValues)) { + if (!is_null($type) && !in_array($type, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'type', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAttributesEnumeration.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAttributesEnumeration.php index d6bcb40..eb54e45 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAttributesEnumeration.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetAttributesEnumeration.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class GetAttributesEnumeration implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['value'] === null) { - return false; - } - if ($this->container['label'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetCampaignOverview.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetCampaignOverview.php index 4fb098c..32c551c 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetCampaignOverview.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetCampaignOverview.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -309,7 +309,7 @@ class GetCampaignOverview implements ModelInterface, ArrayAccess $invalidProperties[] = "'type' can't be null"; } $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { + 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) @@ -320,7 +320,7 @@ class GetCampaignOverview implements ModelInterface, ArrayAccess $invalidProperties[] = "'status' can't be null"; } $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($this->container['status'], $allowedValues)) { + 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) @@ -338,28 +338,7 @@ class GetCampaignOverview implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['id'] === null) { - return false; - } - if ($this->container['name'] === null) { - return false; - } - if ($this->container['type'] === null) { - return false; - } - $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { - return false; - } - if ($this->container['status'] === null) { - return false; - } - $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($this->container['status'], $allowedValues)) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -455,7 +434,7 @@ class GetCampaignOverview implements ModelInterface, ArrayAccess public function setType($type) { $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($type, $allowedValues)) { + if (!in_array($type, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'type', must be one of '%s'", @@ -488,7 +467,7 @@ class GetCampaignOverview implements ModelInterface, ArrayAccess public function setStatus($status) { $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($status, $allowedValues)) { + if (!in_array($status, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'status', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetCampaignRecipients.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetCampaignRecipients.php index 7197818..1149ddf 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetCampaignRecipients.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetCampaignRecipients.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class GetCampaignRecipients implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['lists'] === null) { - return false; - } - if ($this->container['exclusionLists'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetCampaignStats.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetCampaignStats.php index 91b23dc..e9cf5e0 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetCampaignStats.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetCampaignStats.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -296,38 +296,7 @@ class GetCampaignStats implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['uniqueClicks'] === null) { - return false; - } - if ($this->container['clickers'] === null) { - return false; - } - if ($this->container['complaints'] === null) { - return false; - } - if ($this->container['delivered'] === null) { - return false; - } - if ($this->container['sent'] === null) { - return false; - } - if ($this->container['softBounces'] === null) { - return false; - } - if ($this->container['hardBounces'] === null) { - return false; - } - if ($this->container['uniqueViews'] === null) { - return false; - } - if ($this->container['unsubscriptions'] === null) { - return false; - } - if ($this->container['viewed'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildAccountCreationStatus.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildAccountCreationStatus.php new file mode 100644 index 0000000..ae2f356 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildAccountCreationStatus.php @@ -0,0 +1,304 @@ + '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( + ObjectSerializer::sanitizeForSerialization($this), + JSON_PRETTY_PRINT + ); + } + + return json_encode(ObjectSerializer::sanitizeForSerialization($this)); + } +} + + diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildDomain.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildDomain.php index 5b7db91..76dfb88 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildDomain.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildDomain.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class GetChildDomain implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['domain'] === null) { - return false; - } - if ($this->container['active'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildDomains.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildDomains.php index dc0a126..df8c544 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildDomains.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildDomains.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -199,11 +199,7 @@ class GetChildDomains implements ModelInterface, ArrayAccess */ public function valid() { - if (!parent::valid()) { - return false; - } - - return true; + return count($this->listInvalidProperties()) === 0; } /** diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfo.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfo.php index 6991820..97296b0 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfo.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfo.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -263,23 +263,7 @@ class GetChildInfo implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['email'] === null) { - return false; - } - if ($this->container['firstName'] === null) { - return false; - } - if ($this->container['lastName'] === null) { - return false; - } - if ($this->container['companyName'] === null) { - return false; - } - if ($this->container['password'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeys.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeys.php index cf42dde..12a4d99 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeys.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeys.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -210,11 +210,7 @@ class GetChildInfoApiKeys implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['v2'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV2.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV2.php index f4d2369..d9ae913 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV2.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV2.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class GetChildInfoApiKeysV2 implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['name'] === null) { - return false; - } - if ($this->container['key'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV3.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV3.php index b9d7c9d..5ddf6a2 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV3.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoApiKeysV3.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class GetChildInfoApiKeysV3 implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['name'] === null) { - return false; - } - if ($this->container['key'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoCredits.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoCredits.php index 3c043c0..1af7cbf 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoCredits.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoCredits.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -207,8 +207,7 @@ class GetChildInfoCredits implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoStatistics.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoStatistics.php index 0b5dafe..c5e8037 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoStatistics.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildInfoStatistics.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -213,8 +213,7 @@ class GetChildInfoStatistics implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildrenList.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildrenList.php index 7a2fed2..95e5f0a 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildrenList.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetChildrenList.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -57,7 +57,8 @@ class GetChildrenList implements ModelInterface, ArrayAccess * @var string[] */ protected static $swaggerTypes = [ - 'children' => 'object[]' + 'children' => 'object[]', + 'count' => 'int' ]; /** @@ -66,7 +67,8 @@ class GetChildrenList implements ModelInterface, ArrayAccess * @var string[] */ protected static $swaggerFormats = [ - 'children' => null + 'children' => null, + 'count' => 'int64' ]; /** @@ -96,7 +98,8 @@ class GetChildrenList implements ModelInterface, ArrayAccess * @var string[] */ protected static $attributeMap = [ - 'children' => 'children' + 'children' => 'children', + 'count' => 'count' ]; /** @@ -105,7 +108,8 @@ class GetChildrenList implements ModelInterface, ArrayAccess * @var string[] */ protected static $setters = [ - 'children' => 'setChildren' + 'children' => 'setChildren', + 'count' => 'setCount' ]; /** @@ -114,7 +118,8 @@ class GetChildrenList implements ModelInterface, ArrayAccess * @var string[] */ protected static $getters = [ - 'children' => 'getChildren' + 'children' => 'getChildren', + 'count' => 'getCount' ]; /** @@ -178,6 +183,7 @@ class GetChildrenList implements ModelInterface, ArrayAccess public function __construct(array $data = null) { $this->container['children'] = isset($data['children']) ? $data['children'] : null; + $this->container['count'] = isset($data['count']) ? $data['count'] : null; } /** @@ -189,6 +195,9 @@ class GetChildrenList implements ModelInterface, ArrayAccess { $invalidProperties = []; + if ($this->container['count'] === null) { + $invalidProperties[] = "'count' can't be null"; + } return $invalidProperties; } @@ -200,8 +209,7 @@ class GetChildrenList implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } @@ -228,6 +236,30 @@ class GetChildrenList implements ModelInterface, ArrayAccess 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. * diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetClient.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetClient.php index a908c1a..e615307 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetClient.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetClient.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -230,20 +230,7 @@ class GetClient implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['email'] === null) { - return false; - } - if ($this->container['firstName'] === null) { - return false; - } - if ($this->container['lastName'] === null) { - return false; - } - if ($this->container['companyName'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStats.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStats.php index e917e7e..df418c4 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStats.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStats.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -243,8 +243,7 @@ class GetContactCampaignStats implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsClicked.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsClicked.php index 296e2a9..81fed70 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsClicked.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsClicked.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class GetContactCampaignStatsClicked implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['campaignId'] === null) { - return false; - } - if ($this->container['links'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsOpened.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsOpened.php index 53cd654..e6ad277 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsOpened.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsOpened.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -230,20 +230,7 @@ class GetContactCampaignStatsOpened implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['campaignId'] === null) { - return false; - } - if ($this->container['count'] === null) { - return false; - } - if ($this->container['eventTime'] === null) { - return false; - } - if ($this->container['ip'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsTransacAttributes.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsTransacAttributes.php index 9d8d736..3bdf637 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsTransacAttributes.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsTransacAttributes.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -221,17 +221,7 @@ class GetContactCampaignStatsTransacAttributes implements ModelInterface, ArrayA */ public function valid() { - - if ($this->container['orderDate'] === null) { - return false; - } - if ($this->container['orderPrice'] === null) { - return false; - } - if ($this->container['orderId'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsUnsubscriptions.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsUnsubscriptions.php index 87aef87..d4750b0 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsUnsubscriptions.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactCampaignStatsUnsubscriptions.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class GetContactCampaignStatsUnsubscriptions implements ModelInterface, ArrayAcc */ public function valid() { - - if ($this->container['userUnsubscription'] === null) { - return false; - } - if ($this->container['adminUnsubscription'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactDetails.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactDetails.php index 318fe79..3831b79 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactDetails.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContactDetails.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -272,32 +272,7 @@ class GetContactDetails implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['email'] === null) { - return false; - } - if ($this->container['id'] === null) { - return false; - } - if ($this->container['emailBlacklisted'] === null) { - return false; - } - if ($this->container['smsBlacklisted'] === null) { - return false; - } - if ($this->container['createdAt'] === null) { - return false; - } - if ($this->container['modifiedAt'] === null) { - return false; - } - if ($this->container['listIds'] === null) { - return false; - } - if ($this->container['attributes'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContacts.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContacts.php index 3c6c4e9..7e83dca 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContacts.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetContacts.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class GetContacts implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['contacts'] === null) { - return false; - } - if ($this->container['count'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetDeviceBrowserStats.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetDeviceBrowserStats.php new file mode 100644 index 0000000..f81e45c --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetDeviceBrowserStats.php @@ -0,0 +1,403 @@ + '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( + ObjectSerializer::sanitizeForSerialization($this), + JSON_PRETTY_PRINT + ); + } + + return json_encode(ObjectSerializer::sanitizeForSerialization($this)); + } +} + + diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaign.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaign.php index 8d2434f..60a09e1 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaign.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaign.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -411,7 +411,7 @@ class GetEmailCampaign implements ModelInterface, ArrayAccess $invalidProperties[] = "'type' can't be null"; } $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { + 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) @@ -422,7 +422,7 @@ class GetEmailCampaign implements ModelInterface, ArrayAccess $invalidProperties[] = "'status' can't be null"; } $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($this->container['status'], $allowedValues)) { + 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) @@ -476,64 +476,7 @@ class GetEmailCampaign implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['id'] === null) { - return false; - } - if ($this->container['name'] === null) { - return false; - } - if ($this->container['type'] === null) { - return false; - } - $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { - return false; - } - if ($this->container['status'] === null) { - return false; - } - $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($this->container['status'], $allowedValues)) { - return false; - } - if ($this->container['testSent'] === null) { - return false; - } - if ($this->container['header'] === null) { - return false; - } - if ($this->container['footer'] === null) { - return false; - } - if ($this->container['sender'] === null) { - return false; - } - if ($this->container['replyTo'] === null) { - return false; - } - if ($this->container['toField'] === null) { - return false; - } - if ($this->container['htmlContent'] === null) { - return false; - } - if ($this->container['tag'] === null) { - return false; - } - if ($this->container['createdAt'] === null) { - return false; - } - if ($this->container['modifiedAt'] === null) { - return false; - } - if ($this->container['recipients'] === null) { - return false; - } - if ($this->container['statistics'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -629,7 +572,7 @@ class GetEmailCampaign implements ModelInterface, ArrayAccess public function setType($type) { $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($type, $allowedValues)) { + if (!in_array($type, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'type', must be one of '%s'", @@ -662,7 +605,7 @@ class GetEmailCampaign implements ModelInterface, ArrayAccess public function setStatus($status) { $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($status, $allowedValues)) { + if (!in_array($status, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'status', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaigns.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaigns.php index ba26222..794b5da 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaigns.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailCampaigns.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -209,11 +209,7 @@ class GetEmailCampaigns implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['count'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReport.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReport.php index 4c2c169..bd1789a 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReport.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReport.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -200,8 +200,7 @@ class GetEmailEventReport implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReportEvents.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReportEvents.php index bebc48a..940e375 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReportEvents.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetEmailEventReportEvents.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -291,7 +291,7 @@ class GetEmailEventReportEvents implements ModelInterface, ArrayAccess $invalidProperties[] = "'event' can't be null"; } $allowedValues = $this->getEventAllowableValues(); - if (!in_array($this->container['event'], $allowedValues)) { + 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) @@ -309,24 +309,7 @@ class GetEmailEventReportEvents implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['email'] === null) { - return false; - } - if ($this->container['date'] === null) { - return false; - } - if ($this->container['messageId'] === null) { - return false; - } - if ($this->container['event'] === null) { - return false; - } - $allowedValues = $this->getEventAllowableValues(); - if (!in_array($this->container['event'], $allowedValues)) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -446,7 +429,7 @@ class GetEmailEventReportEvents implements ModelInterface, ArrayAccess public function setEvent($event) { $allowedValues = $this->getEventAllowableValues(); - if (!in_array($event, $allowedValues)) { + if (!in_array($event, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'event', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverview.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverview.php index 54ccb0c..f414577 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverview.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverview.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -399,7 +399,7 @@ class GetExtendedCampaignOverview implements ModelInterface, ArrayAccess $invalidProperties[] = "'type' can't be null"; } $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { + 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) @@ -410,7 +410,7 @@ class GetExtendedCampaignOverview implements ModelInterface, ArrayAccess $invalidProperties[] = "'status' can't be null"; } $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($this->container['status'], $allowedValues)) { + 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) @@ -458,58 +458,7 @@ class GetExtendedCampaignOverview implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['id'] === null) { - return false; - } - if ($this->container['name'] === null) { - return false; - } - if ($this->container['type'] === null) { - return false; - } - $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { - return false; - } - if ($this->container['status'] === null) { - return false; - } - $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($this->container['status'], $allowedValues)) { - return false; - } - if ($this->container['testSent'] === null) { - return false; - } - if ($this->container['header'] === null) { - return false; - } - if ($this->container['footer'] === null) { - return false; - } - if ($this->container['sender'] === null) { - return false; - } - if ($this->container['replyTo'] === null) { - return false; - } - if ($this->container['toField'] === null) { - return false; - } - if ($this->container['htmlContent'] === null) { - return false; - } - if ($this->container['tag'] === null) { - return false; - } - if ($this->container['createdAt'] === null) { - return false; - } - if ($this->container['modifiedAt'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -605,7 +554,7 @@ class GetExtendedCampaignOverview implements ModelInterface, ArrayAccess public function setType($type) { $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($type, $allowedValues)) { + if (!in_array($type, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'type', must be one of '%s'", @@ -638,7 +587,7 @@ class GetExtendedCampaignOverview implements ModelInterface, ArrayAccess public function setStatus($status) { $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($status, $allowedValues)) { + if (!in_array($status, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'status', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverviewSender.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverviewSender.php index e74743c..0bf6346 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverviewSender.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignOverviewSender.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -58,7 +58,8 @@ class GetExtendedCampaignOverviewSender implements ModelInterface, ArrayAccess */ protected static $swaggerTypes = [ 'name' => 'string', - 'email' => 'string' + 'email' => 'string', + 'id' => 'string' ]; /** @@ -68,7 +69,8 @@ class GetExtendedCampaignOverviewSender implements ModelInterface, ArrayAccess */ protected static $swaggerFormats = [ 'name' => null, - 'email' => 'email' + 'email' => 'email', + 'id' => null ]; /** @@ -99,7 +101,8 @@ class GetExtendedCampaignOverviewSender implements ModelInterface, ArrayAccess */ protected static $attributeMap = [ 'name' => 'name', - 'email' => 'email' + 'email' => 'email', + 'id' => 'id' ]; /** @@ -109,7 +112,8 @@ class GetExtendedCampaignOverviewSender implements ModelInterface, ArrayAccess */ protected static $setters = [ 'name' => 'setName', - 'email' => 'setEmail' + 'email' => 'setEmail', + 'id' => 'setId' ]; /** @@ -119,7 +123,8 @@ class GetExtendedCampaignOverviewSender implements ModelInterface, ArrayAccess */ protected static $getters = [ 'name' => 'getName', - 'email' => 'getEmail' + 'email' => 'getEmail', + 'id' => 'getId' ]; /** @@ -184,6 +189,7 @@ class GetExtendedCampaignOverviewSender implements ModelInterface, ArrayAccess { $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; } /** @@ -206,8 +212,7 @@ class GetExtendedCampaignOverviewSender implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } @@ -258,6 +263,30 @@ class GetExtendedCampaignOverviewSender implements ModelInterface, ArrayAccess 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. * diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignStats.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignStats.php index 8d1d649..2b39e2a 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignStats.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedCampaignStats.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -62,7 +62,9 @@ class GetExtendedCampaignStats implements ModelInterface, ArrayAccess 'mirrorClick' => 'int', 'remaining' => 'int', 'linksStats' => 'object', - 'statsByDomain' => '\SendinBlue\Client\Model\GetStatsByDomain' + 'statsByDomain' => '\SendinBlue\Client\Model\GetStatsByDomain', + 'statsByDevice' => '\SendinBlue\Client\Model\GetStatsByDevice', + 'statsByBrowser' => '\SendinBlue\Client\Model\GetStatsByBrowser' ]; /** @@ -76,7 +78,9 @@ class GetExtendedCampaignStats implements ModelInterface, ArrayAccess 'mirrorClick' => 'int64', 'remaining' => 'int64', 'linksStats' => null, - 'statsByDomain' => null + 'statsByDomain' => null, + 'statsByDevice' => null, + 'statsByBrowser' => null ]; /** @@ -111,7 +115,9 @@ class GetExtendedCampaignStats implements ModelInterface, ArrayAccess 'mirrorClick' => 'mirrorClick', 'remaining' => 'remaining', 'linksStats' => 'linksStats', - 'statsByDomain' => 'statsByDomain' + 'statsByDomain' => 'statsByDomain', + 'statsByDevice' => 'statsByDevice', + 'statsByBrowser' => 'statsByBrowser' ]; /** @@ -125,7 +131,9 @@ class GetExtendedCampaignStats implements ModelInterface, ArrayAccess 'mirrorClick' => 'setMirrorClick', 'remaining' => 'setRemaining', 'linksStats' => 'setLinksStats', - 'statsByDomain' => 'setStatsByDomain' + 'statsByDomain' => 'setStatsByDomain', + 'statsByDevice' => 'setStatsByDevice', + 'statsByBrowser' => 'setStatsByBrowser' ]; /** @@ -139,7 +147,9 @@ class GetExtendedCampaignStats implements ModelInterface, ArrayAccess 'mirrorClick' => 'getMirrorClick', 'remaining' => 'getRemaining', 'linksStats' => 'getLinksStats', - 'statsByDomain' => 'getStatsByDomain' + 'statsByDomain' => 'getStatsByDomain', + 'statsByDevice' => 'getStatsByDevice', + 'statsByBrowser' => 'getStatsByBrowser' ]; /** @@ -208,6 +218,8 @@ class GetExtendedCampaignStats implements ModelInterface, ArrayAccess $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; } /** @@ -237,6 +249,12 @@ class GetExtendedCampaignStats implements ModelInterface, ArrayAccess 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; } @@ -248,26 +266,7 @@ class GetExtendedCampaignStats implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['globalStats'] === null) { - return false; - } - if ($this->container['campaignStats'] === null) { - return false; - } - if ($this->container['mirrorClick'] === null) { - return false; - } - if ($this->container['remaining'] === null) { - return false; - } - if ($this->container['linksStats'] === null) { - return false; - } - if ($this->container['statsByDomain'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -414,6 +413,54 @@ class GetExtendedCampaignStats implements ModelInterface, ArrayAccess 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. * diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedClient.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedClient.php index bb41125..13da49f 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedClient.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedClient.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -239,23 +239,7 @@ class GetExtendedClient implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['email'] === null) { - return false; - } - if ($this->container['firstName'] === null) { - return false; - } - if ($this->container['lastName'] === null) { - return false; - } - if ($this->container['companyName'] === null) { - return false; - } - if ($this->container['address'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedClientAddress.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedClientAddress.php index be07159..a122e05 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedClientAddress.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedClientAddress.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -231,20 +231,7 @@ class GetExtendedClientAddress implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['street'] === null) { - return false; - } - if ($this->container['city'] === null) { - return false; - } - if ($this->container['zipCode'] === null) { - return false; - } - if ($this->container['country'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetails.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetails.php index 797e2e6..3bd46da 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetails.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetails.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -281,35 +281,7 @@ class GetExtendedContactDetails implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['email'] === null) { - return false; - } - if ($this->container['id'] === null) { - return false; - } - if ($this->container['emailBlacklisted'] === null) { - return false; - } - if ($this->container['smsBlacklisted'] === null) { - return false; - } - if ($this->container['createdAt'] === null) { - return false; - } - if ($this->container['modifiedAt'] === null) { - return false; - } - if ($this->container['listIds'] === null) { - return false; - } - if ($this->container['attributes'] === null) { - return false; - } - if ($this->container['statistics'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatistics.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatistics.php index 19abe2c..a009465 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatistics.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatistics.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -243,8 +243,7 @@ class GetExtendedContactDetailsStatistics implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsClicked.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsClicked.php index e328d3f..1dcea6a 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsClicked.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsClicked.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class GetExtendedContactDetailsStatisticsClicked implements ModelInterface, Arra */ public function valid() { - - if ($this->container['campaignId'] === null) { - return false; - } - if ($this->container['links'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsLinks.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsLinks.php index 32fc9e2..6d72201 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsLinks.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsLinks.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -230,20 +230,7 @@ class GetExtendedContactDetailsStatisticsLinks implements ModelInterface, ArrayA */ public function valid() { - - if ($this->container['count'] === null) { - return false; - } - if ($this->container['eventTime'] === null) { - return false; - } - if ($this->container['ip'] === null) { - return false; - } - if ($this->container['url'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsMessagesSent.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsMessagesSent.php index 608fd98..f52cc77 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsMessagesSent.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsMessagesSent.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class GetExtendedContactDetailsStatisticsMessagesSent implements ModelInterface, */ public function valid() { - - if ($this->container['campaignId'] === null) { - return false; - } - if ($this->container['eventTime'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsOpened.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsOpened.php index eedb44d..564e448 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsOpened.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsOpened.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -230,20 +230,7 @@ class GetExtendedContactDetailsStatisticsOpened implements ModelInterface, Array */ public function valid() { - - if ($this->container['campaignId'] === null) { - return false; - } - if ($this->container['count'] === null) { - return false; - } - if ($this->container['eventTime'] === null) { - return false; - } - if ($this->container['ip'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptions.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptions.php index 7b4d171..9d5ca26 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptions.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptions.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -213,14 +213,7 @@ class GetExtendedContactDetailsStatisticsUnsubscriptions implements ModelInterfa */ public function valid() { - - if ($this->container['userUnsubscription'] === null) { - return false; - } - if ($this->container['adminUnsubscription'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription.php index 604fdff..a797433 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class GetExtendedContactDetailsStatisticsUnsubscriptionsAdminUnsubscription impl */ public function valid() { - - if ($this->container['eventTime'] === null) { - return false; - } - if ($this->container['ip'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription.php index 5bb6af1..0b55554 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -221,17 +221,7 @@ class GetExtendedContactDetailsStatisticsUnsubscriptionsUserUnsubscription imple */ public function valid() { - - if ($this->container['campaignId'] === null) { - return false; - } - if ($this->container['eventTime'] === null) { - return false; - } - if ($this->container['ip'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedList.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedList.php index 75861cb..8f712bb 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedList.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedList.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -260,26 +260,7 @@ class GetExtendedList implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['id'] === null) { - return false; - } - if ($this->container['name'] === null) { - return false; - } - if ($this->container['totalBlacklisted'] === null) { - return false; - } - if ($this->container['totalSubscribers'] === null) { - return false; - } - if ($this->container['folderId'] === null) { - return false; - } - if ($this->container['createdAt'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedListCampaignStats.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedListCampaignStats.php index 90143a2..1087460 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedListCampaignStats.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetExtendedListCampaignStats.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class GetExtendedListCampaignStats implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['campaignId'] === null) { - return false; - } - if ($this->container['stats'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetFolder.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetFolder.php index bf3d2a8..b568300 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetFolder.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetFolder.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -239,23 +239,7 @@ class GetFolder implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['id'] === null) { - return false; - } - if ($this->container['name'] === null) { - return false; - } - if ($this->container['totalBlacklisted'] === null) { - return false; - } - if ($this->container['totalSubscribers'] === null) { - return false; - } - if ($this->container['uniqueSubscribers'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetFolderLists.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetFolderLists.php index b8b6da2..084549a 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetFolderLists.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetFolderLists.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class GetFolderLists implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['lists'] === null) { - return false; - } - if ($this->container['count'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetFolders.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetFolders.php index 095d19a..47300d6 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetFolders.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetFolders.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -206,8 +206,7 @@ class GetFolders implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIp.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIp.php index 027a39e..78dd084 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIp.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIp.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -230,20 +230,7 @@ class GetIp implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['id'] === null) { - return false; - } - if ($this->container['ip'] === null) { - return false; - } - if ($this->container['active'] === null) { - return false; - } - if ($this->container['domain'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIpFromSender.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIpFromSender.php index 3c8e73c..24be22f 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIpFromSender.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIpFromSender.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -230,20 +230,7 @@ class GetIpFromSender implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['id'] === null) { - return false; - } - if ($this->container['ip'] === null) { - return false; - } - if ($this->container['domain'] === null) { - return false; - } - if ($this->container['weight'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIps.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIps.php index eb660d2..7cd281b 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIps.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIps.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -203,11 +203,7 @@ class GetIps implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['ips'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIpsFromSender.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIpsFromSender.php index c3026ec..e3f052a 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIpsFromSender.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetIpsFromSender.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -203,11 +203,7 @@ class GetIpsFromSender implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['ips'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetList.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetList.php index 74c5183..e4983a2 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetList.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetList.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -230,20 +230,7 @@ class GetList implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['id'] === null) { - return false; - } - if ($this->container['name'] === null) { - return false; - } - if ($this->container['totalBlacklisted'] === null) { - return false; - } - if ($this->container['totalSubscribers'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetLists.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetLists.php index b004193..f83b2bf 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetLists.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetLists.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class GetLists implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['lists'] === null) { - return false; - } - if ($this->container['count'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetProcess.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetProcess.php index 4e90a36..765ff37 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetProcess.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetProcess.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -231,7 +231,7 @@ class GetProcess implements ModelInterface, ArrayAccess $invalidProperties[] = "'status' can't be null"; } $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($this->container['status'], $allowedValues)) { + 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) @@ -252,21 +252,7 @@ class GetProcess implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['id'] === null) { - return false; - } - if ($this->container['status'] === null) { - return false; - } - $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($this->container['status'], $allowedValues)) { - return false; - } - if ($this->container['name'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -314,7 +300,7 @@ class GetProcess implements ModelInterface, ArrayAccess public function setStatus($status) { $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($status, $allowedValues)) { + if (!in_array($status, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'status', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetProcesses.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetProcesses.php index 7f53639..e19cce9 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetProcesses.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetProcesses.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -209,11 +209,7 @@ class GetProcesses implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['count'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetReports.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetReports.php index 05a6eba..5b8daa5 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetReports.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetReports.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -200,8 +200,7 @@ class GetReports implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetReportsReports.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetReportsReports.php index 4663499..a7a2f94 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetReportsReports.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetReportsReports.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -311,47 +311,7 @@ class GetReportsReports implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['date'] === null) { - return false; - } - if ($this->container['requests'] === null) { - return false; - } - if ($this->container['delivered'] === null) { - return false; - } - if ($this->container['hardBounces'] === null) { - return false; - } - if ($this->container['softBounces'] === null) { - return false; - } - if ($this->container['clicks'] === null) { - return false; - } - if ($this->container['uniqueClicks'] === null) { - return false; - } - if ($this->container['opens'] === null) { - return false; - } - if ($this->container['uniqueOpens'] === null) { - return false; - } - if ($this->container['spamReports'] === null) { - return false; - } - if ($this->container['blocked'] === null) { - return false; - } - if ($this->container['invalid'] === null) { - return false; - } - if ($this->container['unsubscribed'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSendersList.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSendersList.php index 7efcf13..f5fb8e3 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSendersList.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSendersList.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -200,8 +200,7 @@ class GetSendersList implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSendersListIps.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSendersListIps.php index 89bdbd6..60a9031 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSendersListIps.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSendersListIps.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -221,17 +221,7 @@ class GetSendersListIps implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['ip'] === null) { - return false; - } - if ($this->container['domain'] === null) { - return false; - } - if ($this->container['weight'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSendersListSenders.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSendersListSenders.php index 8fcd3a1..b6d8b86 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSendersListSenders.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSendersListSenders.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -236,20 +236,7 @@ class GetSendersListSenders implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['id'] === null) { - return false; - } - if ($this->container['name'] === null) { - return false; - } - if ($this->container['email'] === null) { - return false; - } - if ($this->container['active'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSharedTemplateUrl.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSharedTemplateUrl.php new file mode 100644 index 0000000..5ac586e --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSharedTemplateUrl.php @@ -0,0 +1,304 @@ + '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( + ObjectSerializer::sanitizeForSerialization($this), + JSON_PRETTY_PRINT + ); + } + + return json_encode(ObjectSerializer::sanitizeForSerialization($this)); + } +} + + diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaign.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaign.php index 95c4001..3f19d1a 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaign.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaign.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -276,7 +276,7 @@ class GetSmsCampaign implements ModelInterface, ArrayAccess $invalidProperties[] = "'status' can't be null"; } $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($this->container['status'], $allowedValues)) { + 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) @@ -315,42 +315,7 @@ class GetSmsCampaign implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['id'] === null) { - return false; - } - if ($this->container['name'] === null) { - return false; - } - if ($this->container['status'] === null) { - return false; - } - $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($this->container['status'], $allowedValues)) { - return false; - } - if ($this->container['content'] === null) { - return false; - } - if ($this->container['scheduledAt'] === null) { - return false; - } - if ($this->container['sender'] === null) { - return false; - } - if ($this->container['createdAt'] === null) { - return false; - } - if ($this->container['modifiedAt'] === null) { - return false; - } - if ($this->container['recipients'] === null) { - return false; - } - if ($this->container['statistics'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -422,7 +387,7 @@ class GetSmsCampaign implements ModelInterface, ArrayAccess public function setStatus($status) { $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($status, $allowedValues)) { + if (!in_array($status, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'status', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignOverview.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignOverview.php index 308bd53..6976663 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignOverview.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignOverview.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -264,7 +264,7 @@ class GetSmsCampaignOverview implements ModelInterface, ArrayAccess $invalidProperties[] = "'status' can't be null"; } $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($this->container['status'], $allowedValues)) { + 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) @@ -297,36 +297,7 @@ class GetSmsCampaignOverview implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['id'] === null) { - return false; - } - if ($this->container['name'] === null) { - return false; - } - if ($this->container['status'] === null) { - return false; - } - $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($this->container['status'], $allowedValues)) { - return false; - } - if ($this->container['content'] === null) { - return false; - } - if ($this->container['scheduledAt'] === null) { - return false; - } - if ($this->container['sender'] === null) { - return false; - } - if ($this->container['createdAt'] === null) { - return false; - } - if ($this->container['modifiedAt'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -398,7 +369,7 @@ class GetSmsCampaignOverview implements ModelInterface, ArrayAccess public function setStatus($status) { $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($status, $allowedValues)) { + if (!in_array($status, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'status', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignStats.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignStats.php index 3b8f81e..c9688f1 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignStats.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaignStats.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -257,29 +257,7 @@ class GetSmsCampaignStats implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['delivered'] === null) { - return false; - } - if ($this->container['sent'] === null) { - return false; - } - if ($this->container['processing'] === null) { - return false; - } - if ($this->container['softBounces'] === null) { - return false; - } - if ($this->container['hardBounces'] === null) { - return false; - } - if ($this->container['unsubscriptions'] === null) { - return false; - } - if ($this->container['answered'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaigns.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaigns.php index 8e1fb95..b2c4ec1 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaigns.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsCampaigns.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -209,11 +209,7 @@ class GetSmsCampaigns implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['count'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReport.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReport.php index 4fc3fe4..cd0d115 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReport.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReport.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -200,8 +200,7 @@ class GetSmsEventReport implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReportEvents.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReportEvents.php index d939e56..35627f1 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReportEvents.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmsEventReportEvents.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -267,7 +267,7 @@ class GetSmsEventReportEvents implements ModelInterface, ArrayAccess $invalidProperties[] = "'event' can't be null"; } $allowedValues = $this->getEventAllowableValues(); - if (!in_array($this->container['event'], $allowedValues)) { + 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) @@ -285,24 +285,7 @@ class GetSmsEventReportEvents implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['phoneNumber'] === null) { - return false; - } - if ($this->container['date'] === null) { - return false; - } - if ($this->container['messageId'] === null) { - return false; - } - if ($this->container['event'] === null) { - return false; - } - $allowedValues = $this->getEventAllowableValues(); - if (!in_array($this->container['event'], $allowedValues)) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -398,7 +381,7 @@ class GetSmsEventReportEvents implements ModelInterface, ArrayAccess public function setEvent($event) { $allowedValues = $this->getEventAllowableValues(); - if (!in_array($event, $allowedValues)) { + if (!in_array($event, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'event', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverview.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverview.php index fc119b0..a38f11c 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverview.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverview.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -302,44 +302,7 @@ class GetSmtpTemplateOverview implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['id'] === null) { - return false; - } - if ($this->container['name'] === null) { - return false; - } - if ($this->container['subject'] === null) { - return false; - } - if ($this->container['isActive'] === null) { - return false; - } - if ($this->container['testSent'] === null) { - return false; - } - if ($this->container['sender'] === null) { - return false; - } - if ($this->container['replyTo'] === null) { - return false; - } - if ($this->container['toField'] === null) { - return false; - } - if ($this->container['tag'] === null) { - return false; - } - if ($this->container['htmlContent'] === null) { - return false; - } - if ($this->container['createdAt'] === null) { - return false; - } - if ($this->container['modifiedAt'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverviewSender.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverviewSender.php index 7ae6e3f..ca75fcf 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverviewSender.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplateOverviewSender.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -58,7 +58,8 @@ class GetSmtpTemplateOverviewSender implements ModelInterface, ArrayAccess */ protected static $swaggerTypes = [ 'name' => 'string', - 'email' => 'string' + 'email' => 'string', + 'id' => 'string' ]; /** @@ -68,7 +69,8 @@ class GetSmtpTemplateOverviewSender implements ModelInterface, ArrayAccess */ protected static $swaggerFormats = [ 'name' => null, - 'email' => 'email' + 'email' => 'email', + 'id' => null ]; /** @@ -99,7 +101,8 @@ class GetSmtpTemplateOverviewSender implements ModelInterface, ArrayAccess */ protected static $attributeMap = [ 'name' => 'name', - 'email' => 'email' + 'email' => 'email', + 'id' => 'id' ]; /** @@ -109,7 +112,8 @@ class GetSmtpTemplateOverviewSender implements ModelInterface, ArrayAccess */ protected static $setters = [ 'name' => 'setName', - 'email' => 'setEmail' + 'email' => 'setEmail', + 'id' => 'setId' ]; /** @@ -119,7 +123,8 @@ class GetSmtpTemplateOverviewSender implements ModelInterface, ArrayAccess */ protected static $getters = [ 'name' => 'getName', - 'email' => 'getEmail' + 'email' => 'getEmail', + 'id' => 'getId' ]; /** @@ -184,6 +189,7 @@ class GetSmtpTemplateOverviewSender implements ModelInterface, ArrayAccess { $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; } /** @@ -206,8 +212,7 @@ class GetSmtpTemplateOverviewSender implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } @@ -258,6 +263,30 @@ class GetSmtpTemplateOverviewSender implements ModelInterface, ArrayAccess 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. * diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplates.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplates.php index 98d2324..76805c8 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplates.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSmtpTemplates.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -206,8 +206,7 @@ class GetSmtpTemplates implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } @@ -224,7 +223,7 @@ class GetSmtpTemplates implements ModelInterface, ArrayAccess /** * Sets count * - * @param int $count Count of smtp templates + * @param int $count Count of transactional email templates * * @return $this */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSsoToken.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSsoToken.php index fccdb85..cd15948 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSsoToken.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetSsoToken.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -203,11 +203,7 @@ class GetSsoToken implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['token'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetStatsByBrowser.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetStatsByBrowser.php new file mode 100644 index 0000000..1fb4d1c --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetStatsByBrowser.php @@ -0,0 +1,276 @@ +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( + ObjectSerializer::sanitizeForSerialization($this), + JSON_PRETTY_PRINT + ); + } + + return json_encode(ObjectSerializer::sanitizeForSerialization($this)); + } +} + + diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetStatsByDevice.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetStatsByDevice.php new file mode 100644 index 0000000..da291a5 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetStatsByDevice.php @@ -0,0 +1,391 @@ + '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( + ObjectSerializer::sanitizeForSerialization($this), + JSON_PRETTY_PRINT + ); + } + + return json_encode(ObjectSerializer::sanitizeForSerialization($this)); + } +} + + diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetStatsByDomain.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetStatsByDomain.php index cedf4f0..15520a2 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetStatsByDomain.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetStatsByDomain.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -199,11 +199,7 @@ class GetStatsByDomain implements ModelInterface, ArrayAccess */ public function valid() { - if (!parent::valid()) { - return false; - } - - return true; + return count($this->listInvalidProperties()) === 0; } /** diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacAggregatedSmsReport.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacAggregatedSmsReport.php index 57bb501..cc7bea3 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacAggregatedSmsReport.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacAggregatedSmsReport.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -284,38 +284,7 @@ class GetTransacAggregatedSmsReport implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['range'] === null) { - return false; - } - if ($this->container['requests'] === null) { - return false; - } - if ($this->container['delivered'] === null) { - return false; - } - if ($this->container['hardBounces'] === null) { - return false; - } - if ($this->container['softBounces'] === null) { - return false; - } - if ($this->container['blocked'] === null) { - return false; - } - if ($this->container['unsubscribed'] === null) { - return false; - } - if ($this->container['replied'] === null) { - return false; - } - if ($this->container['accepted'] === null) { - return false; - } - if ($this->container['rejected'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContacts.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContacts.php new file mode 100644 index 0000000..f1505b9 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContacts.php @@ -0,0 +1,331 @@ + 'int', + 'contacts' => '\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( + ObjectSerializer::sanitizeForSerialization($this), + JSON_PRETTY_PRINT + ); + } + + return json_encode(ObjectSerializer::sanitizeForSerialization($this)); + } +} + + diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsContacts.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsContacts.php new file mode 100644 index 0000000..967bcb1 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsContacts.php @@ -0,0 +1,403 @@ + 'string', + 'senderEmail' => 'string', + 'reason' => '\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' + ]; + + /** + * 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( + ObjectSerializer::sanitizeForSerialization($this), + JSON_PRETTY_PRINT + ); + } + + return json_encode(ObjectSerializer::sanitizeForSerialization($this)); + } +} + + diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsReason.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsReason.php new file mode 100644 index 0000000..fdf5fc9 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacBlockedContactsReason.php @@ -0,0 +1,372 @@ + '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( + ObjectSerializer::sanitizeForSerialization($this), + JSON_PRETTY_PRINT + ); + } + + return json_encode(ObjectSerializer::sanitizeForSerialization($this)); + } +} + + diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContent.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContent.php new file mode 100644 index 0000000..6a30b45 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContent.php @@ -0,0 +1,499 @@ + 'string', + 'subject' => 'string', + 'templateId' => 'int', + 'date' => '\DateTime', + 'events' => '\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( + ObjectSerializer::sanitizeForSerialization($this), + JSON_PRETTY_PRINT + ); + } + + return json_encode(ObjectSerializer::sanitizeForSerialization($this)); + } +} + + diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContentEvents.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContentEvents.php new file mode 100644 index 0000000..15896a9 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailContentEvents.php @@ -0,0 +1,337 @@ + '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( + ObjectSerializer::sanitizeForSerialization($this), + JSON_PRETTY_PRINT + ); + } + + return json_encode(ObjectSerializer::sanitizeForSerialization($this)); + } +} + + diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsList.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsList.php new file mode 100644 index 0000000..486ff66 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsList.php @@ -0,0 +1,301 @@ + '\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( + ObjectSerializer::sanitizeForSerialization($this), + JSON_PRETTY_PRINT + ); + } + + return json_encode(ObjectSerializer::sanitizeForSerialization($this)); + } +} + + diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsListTransactionalEmails.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsListTransactionalEmails.php new file mode 100644 index 0000000..e27ef85 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacEmailsListTransactionalEmails.php @@ -0,0 +1,466 @@ + 'string', + 'subject' => 'string', + 'templateId' => 'int', + 'messageId' => 'string', + 'uuid' => 'string', + 'date' => '\DateTime' + ]; + + /** + * 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' + ]; + + /** + * 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' + ]; + + /** + * 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' + ]; + + /** + * 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' + ]; + + /** + * 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; + } + + /** + * 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; + } + /** + * 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( + ObjectSerializer::sanitizeForSerialization($this), + JSON_PRETTY_PRINT + ); + } + + return json_encode(ObjectSerializer::sanitizeForSerialization($this)); + } +} + + diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReport.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReport.php index 8de91a6..24767e0 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReport.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReport.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -200,8 +200,7 @@ class GetTransacSmsReport implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReportReports.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReportReports.php index 232e1e8..8cf6600 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReportReports.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetTransacSmsReportReports.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -284,38 +284,7 @@ class GetTransacSmsReportReports implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['date'] === null) { - return false; - } - if ($this->container['requests'] === null) { - return false; - } - if ($this->container['delivered'] === null) { - return false; - } - if ($this->container['hardBounces'] === null) { - return false; - } - if ($this->container['softBounces'] === null) { - return false; - } - if ($this->container['blocked'] === null) { - return false; - } - if ($this->container['unsubscribed'] === null) { - return false; - } - if ($this->container['replied'] === null) { - return false; - } - if ($this->container['accepted'] === null) { - return false; - } - if ($this->container['rejected'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetWebhook.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetWebhook.php index be79919..fdccd4c 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetWebhook.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetWebhook.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -256,7 +256,7 @@ class GetWebhook implements ModelInterface, ArrayAccess $invalidProperties[] = "'type' can't be null"; } $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { + 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) @@ -280,33 +280,7 @@ class GetWebhook implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['url'] === null) { - return false; - } - if ($this->container['id'] === null) { - return false; - } - if ($this->container['description'] === null) { - return false; - } - if ($this->container['events'] === null) { - return false; - } - if ($this->container['type'] === null) { - return false; - } - $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { - return false; - } - if ($this->container['createdAt'] === null) { - return false; - } - if ($this->container['modifiedAt'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -426,7 +400,7 @@ class GetWebhook implements ModelInterface, ArrayAccess public function setType($type) { $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($type, $allowedValues)) { + if (!in_array($type, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'type', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetWebhooks.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetWebhooks.php index 302be51..ffd15fa 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetWebhooks.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/GetWebhooks.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -203,11 +203,7 @@ class GetWebhooks implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['webhooks'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/ManageIp.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/ManageIp.php index 9fc28a7..60b4616 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/ManageIp.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/ManageIp.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -200,8 +200,7 @@ class ManageIp implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/ModelInterface.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/ModelInterface.php index 79f6796..d87ff71 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/ModelInterface.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/ModelInterface.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostContactInfo.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostContactInfo.php index e0bd5e8..bd83c4b 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostContactInfo.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostContactInfo.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -203,11 +203,7 @@ class PostContactInfo implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['contacts'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostContactInfoContacts.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostContactInfoContacts.php index b6c9a1c..196b0b2 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostContactInfoContacts.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostContactInfoContacts.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,8 +212,7 @@ class PostContactInfoContacts implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostSendFailed.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostSendFailed.php index b0b71f3..34c3f03 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostSendFailed.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostSendFailed.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -230,14 +230,7 @@ class PostSendFailed implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['code'] === null) { - return false; - } - if ($this->container['message'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostSendSmsTestFailed.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostSendSmsTestFailed.php index 07ed3cc..9c632eb 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostSendSmsTestFailed.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/PostSendSmsTestFailed.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -224,14 +224,7 @@ class PostSendSmsTestFailed implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['code'] === null) { - return false; - } - if ($this->container['message'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModel.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModel.php index 95cad1e..64d3ce4 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModel.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModel.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class RemainingCreditModel implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['child'] === null) { - return false; - } - if ($this->container['reseller'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelChild.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelChild.php index 088bd9a..e203b97 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelChild.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelChild.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -213,14 +213,7 @@ class RemainingCreditModelChild implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['sms'] === null) { - return false; - } - if ($this->container['email'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelReseller.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelReseller.php index c6398f9..bd25822 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelReseller.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemainingCreditModelReseller.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class RemainingCreditModelReseller implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['sms'] === null) { - return false; - } - if ($this->container['email'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemoveContactFromList.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemoveContactFromList.php index 017371b..d8f46ec 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemoveContactFromList.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemoveContactFromList.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -206,8 +206,7 @@ class RemoveContactFromList implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemoveCredits.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemoveCredits.php index 9f9aaf9..5837194 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemoveCredits.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RemoveCredits.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -206,8 +206,7 @@ class RemoveCredits implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactExport.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactExport.php index 42d86ae..627f2bc 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactExport.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactExport.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -59,6 +59,7 @@ class RequestContactExport implements ModelInterface, ArrayAccess protected static $swaggerTypes = [ 'exportAttributes' => 'string[]', 'contactFilter' => 'object', + 'customContactFilter' => '\SendinBlue\Client\Model\RequestContactExportCustomContactFilter', 'notifyUrl' => 'string' ]; @@ -70,6 +71,7 @@ class RequestContactExport implements ModelInterface, ArrayAccess protected static $swaggerFormats = [ 'exportAttributes' => null, 'contactFilter' => null, + 'customContactFilter' => null, 'notifyUrl' => 'url' ]; @@ -102,6 +104,7 @@ class RequestContactExport implements ModelInterface, ArrayAccess protected static $attributeMap = [ 'exportAttributes' => 'exportAttributes', 'contactFilter' => 'contactFilter', + 'customContactFilter' => 'customContactFilter', 'notifyUrl' => 'notifyUrl' ]; @@ -113,6 +116,7 @@ class RequestContactExport implements ModelInterface, ArrayAccess protected static $setters = [ 'exportAttributes' => 'setExportAttributes', 'contactFilter' => 'setContactFilter', + 'customContactFilter' => 'setCustomContactFilter', 'notifyUrl' => 'setNotifyUrl' ]; @@ -124,6 +128,7 @@ class RequestContactExport implements ModelInterface, ArrayAccess protected static $getters = [ 'exportAttributes' => 'getExportAttributes', 'contactFilter' => 'getContactFilter', + 'customContactFilter' => 'getCustomContactFilter', 'notifyUrl' => 'getNotifyUrl' ]; @@ -189,6 +194,7 @@ class RequestContactExport implements ModelInterface, ArrayAccess { $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; } @@ -201,9 +207,6 @@ class RequestContactExport implements ModelInterface, ArrayAccess { $invalidProperties = []; - if ($this->container['contactFilter'] === null) { - $invalidProperties[] = "'contactFilter' can't be null"; - } return $invalidProperties; } @@ -215,11 +218,7 @@ class RequestContactExport implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['contactFilter'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -260,7 +259,7 @@ class RequestContactExport implements ModelInterface, ArrayAccess /** * Sets contactFilter * - * @param object $contactFilter Set the filter for the contacts to be exported. For example, `{\"blacklisted\":true}` will export all the blacklisted contacts. + * @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 */ @@ -271,6 +270,30 @@ class RequestContactExport implements ModelInterface, ArrayAccess 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 * diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactExportCustomContactFilter.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactExportCustomContactFilter.php new file mode 100644 index 0000000..aaa2f5f --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactExportCustomContactFilter.php @@ -0,0 +1,564 @@ + '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( + ObjectSerializer::sanitizeForSerialization($this), + JSON_PRETTY_PRINT + ); + } + + return json_encode(ObjectSerializer::sanitizeForSerialization($this)); + } +} + + diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactImport.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactImport.php index b545b75..089051f 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactImport.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactImport.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -248,8 +248,7 @@ class RequestContactImport implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactImportNewList.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactImportNewList.php index ec1ebda..7b75a55 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactImportNewList.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestContactImportNewList.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -207,8 +207,7 @@ class RequestContactImportNewList implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestSMSRecipientExport.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestSMSRecipientExport.php index d8797ce..655fa25 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestSMSRecipientExport.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/RequestSMSRecipientExport.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -222,7 +222,7 @@ class RequestSmsRecipientExport implements ModelInterface, ArrayAccess $invalidProperties[] = "'recipientsType' can't be null"; } $allowedValues = $this->getRecipientsTypeAllowableValues(); - if (!in_array($this->container['recipientsType'], $allowedValues)) { + 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) @@ -240,15 +240,7 @@ class RequestSmsRecipientExport implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['recipientsType'] === null) { - return false; - } - $allowedValues = $this->getRecipientsTypeAllowableValues(); - if (!in_array($this->container['recipientsType'], $allowedValues)) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -296,7 +288,7 @@ class RequestSmsRecipientExport implements ModelInterface, ArrayAccess public function setRecipientsType($recipientsType) { $allowedValues = $this->getRecipientsTypeAllowableValues(); - if (!in_array($recipientsType, $allowedValues)) { + if (!in_array($recipientsType, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'recipientsType', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendEmail.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendEmail.php index 93f9ec3..3ecd6be 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendEmail.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendEmail.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -251,11 +251,7 @@ class SendEmail implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['emailTo'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -392,7 +388,7 @@ class SendEmail implements ModelInterface, ArrayAccess /** * 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\"}]` + * @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 */ @@ -416,7 +412,7 @@ class SendEmail implements ModelInterface, ArrayAccess /** * 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. For example, `{\"Content-Type\":\"text/html\", \"charset\":\"iso-8859-1\", \"sender.ip\":\"1.2.3.4\"}` + * @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. For example, {'Content-Type':'text/html', 'charset':'iso-8859-1', 'sender.ip':'1.2.3.4'} * * @return $this */ @@ -440,7 +436,7 @@ class SendEmail implements ModelInterface, ArrayAccess /** * Sets attributes * - * @param object $attributes Pass the set of attributes to customize the template. For example, {\"FNAME\":\"Joe\", \"LNAME\":\"Doe\"} + * @param object $attributes Pass the set of attributes to customize the template. For example, {'FNAME':'Joe', 'LNAME':'Doe'} * * @return $this */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendEmailAttachment.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendEmailAttachment.php index a36e8ef..15bbdf5 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendEmailAttachment.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendEmailAttachment.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -216,17 +216,7 @@ class SendEmailAttachment implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['content'] === null) { - return false; - } - if (!preg_match("/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/", $this->container['content'])) { - return false; - } - if ($this->container['name'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendReport.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendReport.php index 73f77c2..e9949be 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendReport.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendReport.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -219,7 +219,7 @@ class SendReport implements ModelInterface, ArrayAccess $invalidProperties = []; $allowedValues = $this->getLanguageAllowableValues(); - if (!in_array($this->container['language'], $allowedValues)) { + 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) @@ -240,15 +240,7 @@ class SendReport implements ModelInterface, ArrayAccess */ public function valid() { - - $allowedValues = $this->getLanguageAllowableValues(); - if (!in_array($this->container['language'], $allowedValues)) { - return false; - } - if ($this->container['email'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -272,7 +264,7 @@ class SendReport implements ModelInterface, ArrayAccess public function setLanguage($language) { $allowedValues = $this->getLanguageAllowableValues(); - if (!is_null($language) && !in_array($language, $allowedValues)) { + if (!is_null($language) && !in_array($language, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'language', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendReportEmail.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendReportEmail.php index 0f42a2d..e145810 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendReportEmail.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendReportEmail.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -242,7 +242,7 @@ class SendReportEmail implements ModelInterface, ArrayAccess $invalidProperties[] = "'to' can't be null"; } $allowedValues = $this->getContentTypeAllowableValues(); - if (!in_array($this->container['contentType'], $allowedValues)) { + 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) @@ -263,21 +263,7 @@ class SendReportEmail implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['subject'] === null) { - return false; - } - if ($this->container['to'] === null) { - return false; - } - $allowedValues = $this->getContentTypeAllowableValues(); - if (!in_array($this->container['contentType'], $allowedValues)) { - return false; - } - if ($this->container['body'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -349,7 +335,7 @@ class SendReportEmail implements ModelInterface, ArrayAccess public function setContentType($contentType) { $allowedValues = $this->getContentTypeAllowableValues(); - if (!is_null($contentType) && !in_array($contentType, $allowedValues)) { + if (!is_null($contentType) && !in_array($contentType, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'contentType', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSms.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSms.php index f6c3e71..c991b8a 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSms.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSms.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -230,14 +230,7 @@ class SendSms implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['reference'] === null) { - return false; - } - if ($this->container['messageId'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmail.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmail.php index c9c6c9c..81f0047 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmail.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmail.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -275,11 +275,7 @@ class SendSmtpEmail implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['to'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -320,7 +316,7 @@ class SendSmtpEmail implements ModelInterface, ArrayAccess /** * 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\"}]` + * @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 */ @@ -488,7 +484,7 @@ class SendSmtpEmail implements ModelInterface, ArrayAccess /** * 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\":\"My attachment 1\"}, {\"content\":\"base64 exmaple content\", \"name\":\"My attachment 2\"}]`. 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 and odt ( If 'templateId' is passed and is in New Template Language format then only attachment url is accepted. If template is in Old template Language format, then 'attachment' is ignored ) + * @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\":\"My attachment 1\"}, {\"content\":\"base64 exmaple content\", \"name\":\"My attachment 2\"}]`. 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 */ @@ -512,7 +508,7 @@ class SendSmtpEmail implements ModelInterface, ArrayAccess /** * 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. For example, `{\"Content-Type\":\"text/html\", \"charset\":\"iso-8859-1\", \"sender.ip\":\"1.2.3.4\"}` + * @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. For example, `{\"sender.ip\":\"1.2.3.4\", \"X-Mailin-custom\":\"some_custom_header\"}`. * * @return $this */ @@ -560,7 +556,7 @@ class SendSmtpEmail implements ModelInterface, ArrayAccess /** * 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. + * @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. Alternatively, you can pass the set of attributes to customize the template for each recipient. For this the email will be the key and its value will be a JSON containing attributes specific to each recipient. For example, `{'abc@example.com':{'name':'ABC', 'age':21}, 'xyz@example.com':{'name':'XYZ', 'age':25}}` * * @return $this */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailAttachment.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailAttachment.php index 48909d1..1bc49fd 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailAttachment.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailAttachment.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -216,11 +216,7 @@ class SendSmtpEmailAttachment implements ModelInterface, ArrayAccess */ public function valid() { - - if (!preg_match("/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/", $this->container['content'])) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailBcc.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailBcc.php index 50d5a20..9861837 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailBcc.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailBcc.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -209,11 +209,7 @@ class SendSmtpEmailBcc implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['email'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -254,7 +250,7 @@ class SendSmtpEmailBcc implements ModelInterface, ArrayAccess /** * Sets name * - * @param string $name Name of the recipient in bcc + * @param string $name Name of the recipient in bcc. Maximum allowed characters are 70. * * @return $this */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailCc.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailCc.php index c73cc01..9104228 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailCc.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailCc.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -209,11 +209,7 @@ class SendSmtpEmailCc implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['email'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -254,7 +250,7 @@ class SendSmtpEmailCc implements ModelInterface, ArrayAccess /** * Sets name * - * @param string $name Name of the recipient in cc + * @param string $name Name of the recipient in cc. Maximum allowed characters are 70. * * @return $this */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailReplyTo.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailReplyTo.php index ded04bc..8bee479 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailReplyTo.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailReplyTo.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -36,7 +36,7 @@ use \SendinBlue\Client\ObjectSerializer; * SendSmtpEmailReplyTo Class Doc Comment * * @category Class - * @description Email (required), along with name (optional), on which transactional mail recipients will be able to reply back. For example, `{\"email':'ann6533@example.com', 'name':'Ann'}` + * @description Email (required), along with name (optional), on which transactional mail recipients will be able to reply back. For example, {'email':'ann6533@example.com', 'name':'Ann'}. * @package SendinBlue\Client * @author Swagger Codegen team * @link https://github.com/swagger-api/swagger-codegen @@ -210,11 +210,7 @@ class SendSmtpEmailReplyTo implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['email'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -255,7 +251,7 @@ class SendSmtpEmailReplyTo implements ModelInterface, ArrayAccess /** * Sets name * - * @param string $name Name in reply to + * @param string $name Name in reply to. Maximum allowed characters are 70. * * @return $this */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailSender.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailSender.php index ce50e46..e146ea4 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailSender.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailSender.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -36,7 +36,7 @@ use \SendinBlue\Client\ObjectSerializer; * SendSmtpEmailSender Class Doc Comment * * @category Class - * @description Mandatory if 'templateId' is not passed. Pass name (optional) and email of sender from which emails will be sent. For example, `{\"name\":\"Mary from MyShop\", \"email\":\"no-reply@myshop.com\"}` + * @description Mandatory if 'templateId' is not passed. Pass name (optional) and email of sender from which emails will be sent. For example, {'name':'Mary from MyShop', 'email':'no-reply@myshop.com'} * @package SendinBlue\Client * @author Swagger Codegen team * @link https://github.com/swagger-api/swagger-codegen @@ -210,11 +210,7 @@ class SendSmtpEmailSender implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['email'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -231,7 +227,7 @@ class SendSmtpEmailSender implements ModelInterface, ArrayAccess /** * Sets name * - * @param string $name Name of the sender from which the emails will be sent + * @param string $name Name of the sender from which the emails will be sent. Maximum allowed characters are 70. * * @return $this */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailTo.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailTo.php index eec8a18..dd046a5 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailTo.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendSmtpEmailTo.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -209,11 +209,7 @@ class SendSmtpEmailTo implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['email'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -254,7 +250,7 @@ class SendSmtpEmailTo implements ModelInterface, ArrayAccess /** * Sets name * - * @param string $name Name of the recipient + * @param string $name Name of the recipient. Maximum allowed characters are 70. * * @return $this */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTemplateEmail.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTemplateEmail.php index 7dac243..8fa7c5a 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTemplateEmail.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTemplateEmail.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -203,11 +203,7 @@ class SendTemplateEmail implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['messageId'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTestEmail.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTestEmail.php index 4131759..126c77f 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTestEmail.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTestEmail.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -200,8 +200,7 @@ class SendTestEmail implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTestSms.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTestSms.php index f2576d3..b9e957b 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTestSms.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTestSms.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -200,8 +200,7 @@ class SendTestSms implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTransacSms.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTransacSms.php index 44b9201..01420c8 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTransacSms.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/SendTransacSms.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -237,7 +237,7 @@ class SendTransacSms implements ModelInterface, ArrayAccess if ($this->container['sender'] === null) { $invalidProperties[] = "'sender' can't be null"; } - if ((strlen($this->container['sender']) > 11)) { + if ((mb_strlen($this->container['sender']) > 11)) { $invalidProperties[] = "invalid value for 'sender', the character length must be smaller than or equal to 11."; } @@ -248,7 +248,7 @@ class SendTransacSms implements ModelInterface, ArrayAccess $invalidProperties[] = "'content' can't be null"; } $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { + 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) @@ -266,24 +266,7 @@ class SendTransacSms implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['sender'] === null) { - return false; - } - if (strlen($this->container['sender']) > 11) { - return false; - } - if ($this->container['recipient'] === null) { - return false; - } - if ($this->container['content'] === null) { - return false; - } - $allowedValues = $this->getTypeAllowableValues(); - if (!in_array($this->container['type'], $allowedValues)) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -306,7 +289,7 @@ class SendTransacSms implements ModelInterface, ArrayAccess */ public function setSender($sender) { - if ((strlen($sender) > 11)) { + if ((mb_strlen($sender) > 11)) { throw new \InvalidArgumentException('invalid length for $sender when calling SendTransacSms., must be smaller than or equal to 11.'); } @@ -383,7 +366,7 @@ class SendTransacSms implements ModelInterface, ArrayAccess public function setType($type) { $allowedValues = $this->getTypeAllowableValues(); - if (!is_null($type) && !in_array($type, $allowedValues)) { + if (!is_null($type) && !in_array($type, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'type', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateAttribute.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateAttribute.php index 7228a81..a26ef99 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateAttribute.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateAttribute.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -206,8 +206,7 @@ class UpdateAttribute implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } @@ -248,7 +247,7 @@ class UpdateAttribute implements ModelInterface, ArrayAccess /** * 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\"}]` + * @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 */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateAttributeEnumeration.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateAttributeEnumeration.php index 7c67fbc..0023dad 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateAttributeEnumeration.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateAttributeEnumeration.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,14 +212,7 @@ class UpdateAttributeEnumeration implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['value'] === null) { - return false; - } - if ($this->container['label'] === null) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateCampaignStatus.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateCampaignStatus.php index 4dcac9a..d4d0168 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateCampaignStatus.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateCampaignStatus.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -218,7 +218,7 @@ class UpdateCampaignStatus implements ModelInterface, ArrayAccess $invalidProperties = []; $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($this->container['status'], $allowedValues)) { + 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) @@ -236,12 +236,7 @@ class UpdateCampaignStatus implements ModelInterface, ArrayAccess */ public function valid() { - - $allowedValues = $this->getStatusAllowableValues(); - if (!in_array($this->container['status'], $allowedValues)) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -265,7 +260,7 @@ class UpdateCampaignStatus implements ModelInterface, ArrayAccess public function setStatus($status) { $allowedValues = $this->getStatusAllowableValues(); - if (!is_null($status) && !in_array($status, $allowedValues)) { + if (!is_null($status) && !in_array($status, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'status', must be one of '%s'", diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateChild.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateChild.php index 2af8482..7ab3c77 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateChild.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateChild.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -224,8 +224,7 @@ class UpdateChild implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateChildAccountStatus.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateChildAccountStatus.php index c5153ef..6e4ed51 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateChildAccountStatus.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateChildAccountStatus.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,8 +212,7 @@ class UpdateChildAccountStatus implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } @@ -230,7 +229,7 @@ class UpdateChildAccountStatus implements ModelInterface, ArrayAccess /** * Sets transactionalEmail * - * @param bool $transactionalEmail Status of Transactional Email (SMTP) Platform activation for your account (true=enabled, false=disabled) + * @param bool $transactionalEmail Status of Transactional Email Platform activation for your account (true=enabled, false=disabled) * * @return $this */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateChildDomain.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateChildDomain.php index 36d4fae..9e3f8b2 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateChildDomain.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateChildDomain.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -200,8 +200,7 @@ class UpdateChildDomain implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateContact.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateContact.php index c59691d..cf69fb7 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateContact.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateContact.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -230,8 +230,7 @@ class UpdateContact implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } @@ -248,7 +247,7 @@ class UpdateContact implements ModelInterface, ArrayAccess /** * 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\"}` + * @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'} `{ \"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 */ @@ -368,7 +367,7 @@ class UpdateContact implements ModelInterface, ArrayAccess /** * Sets smtpBlacklistSender * - * @param string[] $smtpBlacklistSender SMTP forbidden sender for contact. Use only for email Contact + * @param string[] $smtpBlacklistSender transactional email forbidden sender for contact. Use only for email Contact * * @return $this */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaign.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaign.php index d1683bb..30edd3c 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaign.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaign.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -81,7 +81,10 @@ class UpdateEmailCampaign implements ModelInterface, ArrayAccess 'subjectB' => 'string', 'splitRule' => 'int', 'winnerCriteria' => 'string', - 'winnerDelay' => 'int' + 'winnerDelay' => 'int', + 'ipWarmupEnable' => 'bool', + 'initialQuota' => 'int', + 'increaseRate' => 'int' ]; /** @@ -114,7 +117,10 @@ class UpdateEmailCampaign implements ModelInterface, ArrayAccess 'subjectB' => null, 'splitRule' => 'int64', 'winnerCriteria' => null, - 'winnerDelay' => 'int64' + 'winnerDelay' => 'int64', + 'ipWarmupEnable' => null, + 'initialQuota' => 'int64', + 'increaseRate' => 'int64' ]; /** @@ -168,7 +174,10 @@ class UpdateEmailCampaign implements ModelInterface, ArrayAccess 'subjectB' => 'subjectB', 'splitRule' => 'splitRule', 'winnerCriteria' => 'winnerCriteria', - 'winnerDelay' => 'winnerDelay' + 'winnerDelay' => 'winnerDelay', + 'ipWarmupEnable' => 'ipWarmupEnable', + 'initialQuota' => 'initialQuota', + 'increaseRate' => 'increaseRate' ]; /** @@ -201,7 +210,10 @@ class UpdateEmailCampaign implements ModelInterface, ArrayAccess 'subjectB' => 'setSubjectB', 'splitRule' => 'setSplitRule', 'winnerCriteria' => 'setWinnerCriteria', - 'winnerDelay' => 'setWinnerDelay' + 'winnerDelay' => 'setWinnerDelay', + 'ipWarmupEnable' => 'setIpWarmupEnable', + 'initialQuota' => 'setInitialQuota', + 'increaseRate' => 'setIncreaseRate' ]; /** @@ -234,7 +246,10 @@ class UpdateEmailCampaign implements ModelInterface, ArrayAccess 'subjectB' => 'getSubjectB', 'splitRule' => 'getSplitRule', 'winnerCriteria' => 'getWinnerCriteria', - 'winnerDelay' => 'getWinnerDelay' + 'winnerDelay' => 'getWinnerDelay', + 'ipWarmupEnable' => 'getIpWarmupEnable', + 'initialQuota' => 'getInitialQuota', + 'increaseRate' => 'getIncreaseRate' ]; /** @@ -337,6 +352,9 @@ class UpdateEmailCampaign implements ModelInterface, ArrayAccess $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; } /** @@ -357,7 +375,7 @@ class UpdateEmailCampaign implements ModelInterface, ArrayAccess } $allowedValues = $this->getWinnerCriteriaAllowableValues(); - if (!in_array($this->container['winnerCriteria'], $allowedValues)) { + 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) @@ -372,6 +390,14 @@ class UpdateEmailCampaign implements ModelInterface, ArrayAccess $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; } @@ -383,24 +409,7 @@ class UpdateEmailCampaign implements ModelInterface, ArrayAccess */ public function valid() { - - if ($this->container['splitRule'] > 50) { - return false; - } - if ($this->container['splitRule'] < 1) { - return false; - } - $allowedValues = $this->getWinnerCriteriaAllowableValues(); - if (!in_array($this->container['winnerCriteria'], $allowedValues)) { - return false; - } - if ($this->container['winnerDelay'] > 168) { - return false; - } - if ($this->container['winnerDelay'] < 1) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -609,7 +618,7 @@ class UpdateEmailCampaign implements ModelInterface, ArrayAccess /** * 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 + * @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 */ @@ -825,7 +834,7 @@ class UpdateEmailCampaign implements ModelInterface, ArrayAccess /** * 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' + * @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 */ @@ -984,7 +993,7 @@ class UpdateEmailCampaign implements ModelInterface, ArrayAccess public function setWinnerCriteria($winnerCriteria) { $allowedValues = $this->getWinnerCriteriaAllowableValues(); - if (!is_null($winnerCriteria) && !in_array($winnerCriteria, $allowedValues)) { + if (!is_null($winnerCriteria) && !in_array($winnerCriteria, $allowedValues, true)) { throw new \InvalidArgumentException( sprintf( "Invalid value for 'winnerCriteria', must be one of '%s'", @@ -1028,6 +1037,86 @@ class UpdateEmailCampaign implements ModelInterface, ArrayAccess 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. * diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignRecipients.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignRecipients.php index d933339..07b0a4a 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignRecipients.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignRecipients.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -207,8 +207,7 @@ class UpdateEmailCampaignRecipients implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignSender.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignSender.php index 6c40fd8..7049b81 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignSender.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateEmailCampaignSender.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -36,7 +36,7 @@ use \SendinBlue\Client\ObjectSerializer; * UpdateEmailCampaignSender Class Doc Comment * * @category Class - * @description Sender details including email and/or name. For example `{\"name\":\"xyz\", \"email\":\"example@abc.com\"}` + * @description Sender details including id or email and name (optional). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example `{\"name\":\"xyz\", \"email\":\"example@abc.com\"}` , `{\"name\":\"xyz\", \"id\":123}` * @package SendinBlue\Client * @author Swagger Codegen team * @link https://github.com/swagger-api/swagger-codegen @@ -59,7 +59,8 @@ class UpdateEmailCampaignSender implements ModelInterface, ArrayAccess */ protected static $swaggerTypes = [ 'name' => 'string', - 'email' => 'string' + 'email' => 'string', + 'id' => 'int' ]; /** @@ -69,7 +70,8 @@ class UpdateEmailCampaignSender implements ModelInterface, ArrayAccess */ protected static $swaggerFormats = [ 'name' => null, - 'email' => 'email' + 'email' => 'email', + 'id' => 'int64' ]; /** @@ -100,7 +102,8 @@ class UpdateEmailCampaignSender implements ModelInterface, ArrayAccess */ protected static $attributeMap = [ 'name' => 'name', - 'email' => 'email' + 'email' => 'email', + 'id' => 'id' ]; /** @@ -110,7 +113,8 @@ class UpdateEmailCampaignSender implements ModelInterface, ArrayAccess */ protected static $setters = [ 'name' => 'setName', - 'email' => 'setEmail' + 'email' => 'setEmail', + 'id' => 'setId' ]; /** @@ -120,7 +124,8 @@ class UpdateEmailCampaignSender implements ModelInterface, ArrayAccess */ protected static $getters = [ 'name' => 'getName', - 'email' => 'getEmail' + 'email' => 'getEmail', + 'id' => 'getId' ]; /** @@ -185,6 +190,7 @@ class UpdateEmailCampaignSender implements ModelInterface, ArrayAccess { $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; } /** @@ -207,8 +213,7 @@ class UpdateEmailCampaignSender implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } @@ -259,6 +264,30 @@ class UpdateEmailCampaignSender implements ModelInterface, ArrayAccess 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. * diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateList.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateList.php index 1055fa9..325f0a1 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateList.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateList.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -206,8 +206,7 @@ class UpdateList implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSender.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSender.php index 0a3b855..38ffdef 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSender.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSender.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -212,8 +212,7 @@ class UpdateSender implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSmsCampaign.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSmsCampaign.php index 4a8322f..55ad73e 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSmsCampaign.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSmsCampaign.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -213,7 +213,7 @@ class UpdateSmsCampaign implements ModelInterface, ArrayAccess { $invalidProperties = []; - if (!is_null($this->container['sender']) && (strlen($this->container['sender']) > 11)) { + 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."; } @@ -228,11 +228,7 @@ class UpdateSmsCampaign implements ModelInterface, ArrayAccess */ public function valid() { - - if (strlen($this->container['sender']) > 11) { - return false; - } - return true; + return count($this->listInvalidProperties()) === 0; } @@ -279,7 +275,7 @@ class UpdateSmsCampaign implements ModelInterface, ArrayAccess */ public function setSender($sender) { - if (!is_null($sender) && (strlen($sender) > 11)) { + 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.'); } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplate.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplate.php index ebebe21..abe79d0 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplate.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplate.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -254,8 +254,7 @@ class UpdateSmtpTemplate implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } @@ -440,7 +439,7 @@ class UpdateSmtpTemplate implements ModelInterface, ArrayAccess /** * 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 + * @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 */ diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplateSender.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplateSender.php index f675d27..6b71098 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplateSender.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateSmtpTemplateSender.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -36,7 +36,7 @@ use \SendinBlue\Client\ObjectSerializer; * UpdateSmtpTemplateSender Class Doc Comment * * @category Class - * @description Sender details including email and/or name. For example `{\"name\":\"xyz\", \"email\":\"example@abc.com\"}` + * @description Sender details including id or email and name (optional). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example `{\"name\":\"xyz\", \"email\":\"example@abc.com\"}` , `{\"name\":\"xyz\", \"id\":123}` * @package SendinBlue\Client * @author Swagger Codegen team * @link https://github.com/swagger-api/swagger-codegen @@ -59,7 +59,8 @@ class UpdateSmtpTemplateSender implements ModelInterface, ArrayAccess */ protected static $swaggerTypes = [ 'name' => 'string', - 'email' => 'string' + 'email' => 'string', + 'id' => 'int' ]; /** @@ -69,7 +70,8 @@ class UpdateSmtpTemplateSender implements ModelInterface, ArrayAccess */ protected static $swaggerFormats = [ 'name' => null, - 'email' => 'email' + 'email' => 'email', + 'id' => 'int64' ]; /** @@ -100,7 +102,8 @@ class UpdateSmtpTemplateSender implements ModelInterface, ArrayAccess */ protected static $attributeMap = [ 'name' => 'name', - 'email' => 'email' + 'email' => 'email', + 'id' => 'id' ]; /** @@ -110,7 +113,8 @@ class UpdateSmtpTemplateSender implements ModelInterface, ArrayAccess */ protected static $setters = [ 'name' => 'setName', - 'email' => 'setEmail' + 'email' => 'setEmail', + 'id' => 'setId' ]; /** @@ -120,7 +124,8 @@ class UpdateSmtpTemplateSender implements ModelInterface, ArrayAccess */ protected static $getters = [ 'name' => 'getName', - 'email' => 'getEmail' + 'email' => 'getEmail', + 'id' => 'getId' ]; /** @@ -185,6 +190,7 @@ class UpdateSmtpTemplateSender implements ModelInterface, ArrayAccess { $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; } /** @@ -207,8 +213,7 @@ class UpdateSmtpTemplateSender implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } @@ -259,6 +264,30 @@ class UpdateSmtpTemplateSender implements ModelInterface, ArrayAccess 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. * diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateWebhook.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateWebhook.php index 9e2012e..f6adcbe 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateWebhook.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/Model/UpdateWebhook.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -181,6 +181,8 @@ class UpdateWebhook implements ModelInterface, ArrayAccess const EVENTS_UNIQUE_OPENED = 'uniqueOpened'; const EVENTS_UNSUBSCRIBED = 'unsubscribed'; const EVENTS_LIST_ADDITION = 'listAddition'; + const EVENTS_CONTACT_UPDATED = 'contactUpdated'; + const EVENTS_CONTACT_DELETED = 'contactDeleted'; @@ -205,6 +207,8 @@ class UpdateWebhook implements ModelInterface, ArrayAccess self::EVENTS_UNIQUE_OPENED, self::EVENTS_UNSUBSCRIBED, self::EVENTS_LIST_ADDITION, + self::EVENTS_CONTACT_UPDATED, + self::EVENTS_CONTACT_DELETED, ]; } @@ -249,8 +253,7 @@ class UpdateWebhook implements ModelInterface, ArrayAccess */ public function valid() { - - return true; + return count($this->listInvalidProperties()) === 0; } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/ObjectSerializer.php b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/ObjectSerializer.php index 3068625..8af09f3 100644 --- a/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/ObjectSerializer.php +++ b/wp-content/plugins/wp-mail-smtp/vendor/sendinblue/api-v3-sdk/lib/ObjectSerializer.php @@ -13,12 +13,12 @@ /** * SendinBlue API * - * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | + * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git - * Swagger Codegen version: 2.3.1 + * Swagger Codegen version: 2.4.12 */ /** @@ -59,6 +59,11 @@ class ObjectSerializer $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(); @@ -68,7 +73,7 @@ class ObjectSerializer 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())) { + && !in_array($value, $swaggerType::getAllowableEnumValues(), true)) { $imploded = implode("', '", $swaggerType::getAllowableEnumValues()); throw new \InvalidArgumentException("Invalid value for enum '$swaggerType', must be one of: '$imploded'"); } @@ -271,7 +276,7 @@ class ObjectSerializer // determine file name if (array_key_exists('Content-Disposition', $httpHeaders) && preg_match('/inline; filename=[\'"]?([^\'"\s]+)[\'"]?$/i', $httpHeaders['Content-Disposition'], $match)) { - $filename = Configuration::getDefaultConfiguration()->getTempFolderPath() . self::sanitizeFilename($match[1]); + $filename = Configuration::getDefaultConfiguration()->getTempFolderPath() . DIRECTORY_SEPARATOR . self::sanitizeFilename($match[1]); } else { $filename = tempnam(Configuration::getDefaultConfiguration()->getTempFolderPath(), ''); } @@ -284,7 +289,7 @@ class ObjectSerializer return new \SplFileObject($filename, 'r'); } elseif (method_exists($class, 'getAllowableEnumValues')) { - if (!in_array($data, $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'"); } diff --git a/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-intl-idn/Idn.php b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-intl-idn/Idn.php new file mode 100644 index 0000000..adb718d --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-intl-idn/Idn.php @@ -0,0 +1,283 @@ + + * @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) + { + $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/symfony/polyfill-intl-idn/LICENSE b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-intl-idn/LICENSE new file mode 100644 index 0000000..3f853aa --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-intl-idn/LICENSE @@ -0,0 +1,19 @@ +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/symfony/polyfill-intl-idn/bootstrap.php b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-intl-idn/bootstrap.php new file mode 100644 index 0000000..b29d4e5 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-intl-idn/bootstrap.php @@ -0,0 +1,61 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Polyfill\Intl\Idn as p; + +if (!defined('IDNA_DEFAULT')) { + define('U_IDNA_PROHIBITED_ERROR', 66560); + define('U_IDNA_ERROR_START', 66560); + define('U_IDNA_UNASSIGNED_ERROR', 66561); + define('U_IDNA_CHECK_BIDI_ERROR', 66562); + define('U_IDNA_STD3_ASCII_RULES_ERROR', 66563); + define('U_IDNA_ACE_PREFIX_ERROR', 66564); + define('U_IDNA_VERIFICATION_ERROR', 66565); + define('U_IDNA_LABEL_TOO_LONG_ERROR', 66566); + define('U_IDNA_ZERO_LENGTH_LABEL_ERROR', 66567); + define('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR', 66568); + define('U_IDNA_ERROR_LIMIT', 66569); + define('U_STRINGPREP_PROHIBITED_ERROR', 66560); + define('U_STRINGPREP_UNASSIGNED_ERROR', 66561); + define('U_STRINGPREP_CHECK_BIDI_ERROR', 66562); + define('IDNA_DEFAULT', 0); + define('IDNA_ALLOW_UNASSIGNED', 1); + define('IDNA_USE_STD3_RULES', 2); + define('IDNA_CHECK_BIDI', 4); + define('IDNA_CHECK_CONTEXTJ', 8); + define('IDNA_NONTRANSITIONAL_TO_ASCII', 16); + define('IDNA_NONTRANSITIONAL_TO_UNICODE', 32); + define('INTL_IDNA_VARIANT_2003', 0); + define('INTL_IDNA_VARIANT_UTS46', 1); + define('IDNA_ERROR_EMPTY_LABEL', 1); + define('IDNA_ERROR_LABEL_TOO_LONG', 2); + define('IDNA_ERROR_DOMAIN_NAME_TOO_LONG', 4); + define('IDNA_ERROR_LEADING_HYPHEN', 8); + define('IDNA_ERROR_TRAILING_HYPHEN', 16); + define('IDNA_ERROR_HYPHEN_3_4', 32); + define('IDNA_ERROR_LEADING_COMBINING_MARK', 64); + define('IDNA_ERROR_DISALLOWED', 128); + define('IDNA_ERROR_PUNYCODE', 256); + define('IDNA_ERROR_LABEL_HAS_DOT', 512); + define('IDNA_ERROR_INVALID_ACE_LABEL', 1024); + define('IDNA_ERROR_BIDI', 2048); + define('IDNA_ERROR_CONTEXTJ', 4096); +} + +if (!function_exists('idn_to_ascii')) { + if (PHP_VERSION_ID < 70400) { + 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); } + 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 { + 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); } + 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/symfony/polyfill-mbstring/LICENSE b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/LICENSE new file mode 100644 index 0000000..4cd8bdd --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/LICENSE @@ -0,0 +1,19 @@ +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/symfony/polyfill-mbstring/Mbstring.php b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/Mbstring.php new file mode 100644 index 0000000..15503bc --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/Mbstring.php @@ -0,0 +1,847 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace 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('µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"), + array('μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1", 'ι'), + ); + + 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 = 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 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("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4); + + $cnt = floor(\count($convmap) / 4) * 4; + $i = 0; + $len = \strlen($s); + $result = ''; + + while ($i < $len) { + $ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"]; + $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("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4); + + $i = 0; + $len = \strlen($s); + + while ($i < $len) { + $ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"]; + $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) { + return strrchr($haystack, $needle, $part); + } + $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/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php new file mode 100644 index 0000000..e6fbfa6 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php @@ -0,0 +1,1096 @@ + '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/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php new file mode 100644 index 0000000..2a8f6e7 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php @@ -0,0 +1,5 @@ + '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/symfony/polyfill-mbstring/bootstrap.php b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/bootstrap.php new file mode 100644 index 0000000..8c8225c --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-mbstring/bootstrap.php @@ -0,0 +1,64 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Polyfill\Mbstring as p; + +if (!defined('MB_CASE_UPPER')) { + define('MB_CASE_UPPER', 0); + define('MB_CASE_LOWER', 1); + define('MB_CASE_TITLE', 2); +} + +if (!function_exists('mb_strlen')) { + function mb_convert_encoding($s, $to, $from = null) { return p\Mbstring::mb_convert_encoding($s, $to, $from); } + function mb_decode_mimeheader($s) { return p\Mbstring::mb_decode_mimeheader($s); } + function mb_encode_mimeheader($s, $charset = null, $transferEnc = null, $lf = null, $indent = null) { return p\Mbstring::mb_encode_mimeheader($s, $charset, $transferEnc, $lf, $indent); } + function mb_decode_numericentity($s, $convmap, $enc = null) { return p\Mbstring::mb_decode_numericentity($s, $convmap, $enc); } + function mb_encode_numericentity($s, $convmap, $enc = null, $is_hex = false) { return p\Mbstring::mb_encode_numericentity($s, $convmap, $enc, $is_hex); } + function mb_convert_case($s, $mode, $enc = null) { return p\Mbstring::mb_convert_case($s, $mode, $enc); } + function mb_internal_encoding($enc = null) { return p\Mbstring::mb_internal_encoding($enc); } + function mb_language($lang = null) { return p\Mbstring::mb_language($lang); } + function mb_list_encodings() { return p\Mbstring::mb_list_encodings(); } + function mb_encoding_aliases($encoding) { return p\Mbstring::mb_encoding_aliases($encoding); } + function mb_check_encoding($var = null, $encoding = null) { return p\Mbstring::mb_check_encoding($var, $encoding); } + function mb_detect_encoding($str, $encodingList = null, $strict = false) { return p\Mbstring::mb_detect_encoding($str, $encodingList, $strict); } + function mb_detect_order($encodingList = null) { return p\Mbstring::mb_detect_order($encodingList); } + function mb_parse_str($s, &$result = array()) { parse_str($s, $result); } + function mb_strlen($s, $enc = null) { return p\Mbstring::mb_strlen($s, $enc); } + function mb_strpos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_strpos($s, $needle, $offset, $enc); } + function mb_strtolower($s, $enc = null) { return p\Mbstring::mb_strtolower($s, $enc); } + function mb_strtoupper($s, $enc = null) { return p\Mbstring::mb_strtoupper($s, $enc); } + function mb_substitute_character($char = null) { return p\Mbstring::mb_substitute_character($char); } + function mb_substr($s, $start, $length = 2147483647, $enc = null) { return p\Mbstring::mb_substr($s, $start, $length, $enc); } + function mb_stripos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_stripos($s, $needle, $offset, $enc); } + function mb_stristr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_stristr($s, $needle, $part, $enc); } + function mb_strrchr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_strrchr($s, $needle, $part, $enc); } + function mb_strrichr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_strrichr($s, $needle, $part, $enc); } + function mb_strripos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_strripos($s, $needle, $offset, $enc); } + function mb_strrpos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_strrpos($s, $needle, $offset, $enc); } + function mb_strstr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_strstr($s, $needle, $part, $enc); } + function mb_get_info($type = 'all') { return p\Mbstring::mb_get_info($type); } + function mb_http_output($enc = null) { return p\Mbstring::mb_http_output($enc); } + function mb_strwidth($s, $enc = null) { return p\Mbstring::mb_strwidth($s, $enc); } + function mb_substr_count($haystack, $needle, $enc = null) { return p\Mbstring::mb_substr_count($haystack, $needle, $enc); } + function mb_output_handler($contents, $status) { return p\Mbstring::mb_output_handler($contents, $status); } + function mb_http_input($type = '') { return p\Mbstring::mb_http_input($type); } + 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_chr')) { + function mb_ord($s, $enc = null) { return p\Mbstring::mb_ord($s, $enc); } + function mb_chr($code, $enc = null) { return p\Mbstring::mb_chr($code, $enc); } + function mb_scrub($s, $enc = null) { $enc = null === $enc ? mb_internal_encoding() : $enc; return mb_convert_encoding($s, $enc, $enc); } +} + +if (!function_exists('mb_str_split')) { + function mb_str_split($string, $split_length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $split_length, $encoding); } +} diff --git a/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-php72/LICENSE b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-php72/LICENSE new file mode 100644 index 0000000..4cd8bdd --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-php72/LICENSE @@ -0,0 +1,19 @@ +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/symfony/polyfill-php72/Php72.php b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-php72/Php72.php new file mode 100644 index 0000000..d531e84 --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-php72/Php72.php @@ -0,0 +1,216 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace 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] < "\x80": $s[$j] = $s[$i]; break; + case $s[$i] < "\xC0": $s[$j] = "\xC2"; $s[++$j] = $s[$i]; break; + default: $s[$j] = "\xC3"; $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] & "\xF0") { + case "\xC0": + case "\xD0": + $c = (\ord($s[$i] & "\x1F") << 6) | \ord($s[++$i] & "\x3F"); + $s[$j] = $c < 256 ? \chr($c) : '?'; + break; + + case "\xF0": + ++$i; + // no break + + case "\xE0": + $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; + } + + return self::$hashMask ^ hexdec(substr($hash, 16 - \PHP_INT_SIZE, \PHP_INT_SIZE)); + } + + 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 ? 0020000 === ($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, \PHP_INT_SIZE)); + } + + 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/symfony/polyfill-php72/bootstrap.php b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-php72/bootstrap.php new file mode 100644 index 0000000..519056d --- /dev/null +++ b/wp-content/plugins/wp-mail-smtp/vendor/symfony/polyfill-php72/bootstrap.php @@ -0,0 +1,36 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Polyfill\Php72 as p; + +if (PHP_VERSION_ID < 70200) { + 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($s) { return p\Php72::utf8_encode($s); } + function utf8_decode($s) { return p\Php72::utf8_decode($s); } + } + if (!function_exists('spl_object_id')) { + function spl_object_id($s) { return p\Php72::spl_object_id($s); } + } + if (!defined('PHP_OS_FAMILY')) { + define('PHP_OS_FAMILY', p\Php72::php_os_family()); + } + if (!function_exists('mb_chr')) { + function mb_ord($s, $enc = null) { return p\Php72::mb_ord($s, $enc); } + function mb_chr($code, $enc = null) { return p\Php72::mb_chr($code, $enc); } + function mb_scrub($s, $enc = null) { $enc = null === $enc ? mb_internal_encoding() : $enc; return mb_convert_encoding($s, $enc, $enc); } + } +} diff --git a/wp-content/plugins/wp-mail-smtp/wp-mail-smtp-0.11.2.php b/wp-content/plugins/wp-mail-smtp/wp-mail-smtp-0.11.2.php deleted file mode 100644 index 21b2511..0000000 --- a/wp-content/plugins/wp-mail-smtp/wp-mail-smtp-0.11.2.php +++ /dev/null @@ -1,759 +0,0 @@ - '', - 'mail_from_name' => '', - 'mailer' => 'smtp', - 'mail_set_return_path' => 'false', - 'smtp_host' => 'localhost', - 'smtp_port' => '25', - 'smtp_ssl' => 'none', - 'smtp_auth' => false, - 'smtp_user' => '', - 'smtp_pass' => '', - 'pepipost_user' => '', - 'pepipost_pass' => '', - 'pepipost_port' => '2525', - 'pepipost_ssl' => 'none', -); - -/** - * Activation function. This function creates the required options and defaults. - */ -if ( ! function_exists( 'wp_mail_smtp_activate' ) ) : - /** - * What to do on plugin activation. - */ - function wp_mail_smtp_activate() { - - global $wpms_options; - - // Create the required options... - foreach ( $wpms_options as $name => $val ) { - add_option( $name, $val ); - } - } -endif; - -if ( ! function_exists( 'wp_mail_smtp_whitelist_options' ) ) : - /** - * Whitelist plugin options. - * - * @param array $whitelist_options - * - * @return mixed - */ - function wp_mail_smtp_whitelist_options( $whitelist_options ) { - - global $wpms_options; - - // Add our options to the array. - $whitelist_options['email'] = array_keys( $wpms_options ); - - return $whitelist_options; - } -endif; - -/** - * To avoid any (very unlikely) clashes, check if the function already exists. - */ -if ( ! function_exists( 'phpmailer_init_smtp' ) ) : - /** - * This code is copied, from wp-includes/pluggable.php as at version 2.2.2. - * - * @param PHPMailer $phpmailer It's passed by reference, so no need to return anything. - */ - function phpmailer_init_smtp( $phpmailer ) { - /* - * If constants are defined, apply them. - * We should have defined all required constants before using them. - */ - if ( - defined( 'WPMS_ON' ) && WPMS_ON && - defined( 'WPMS_MAILER' ) - ) { - $phpmailer->Mailer = WPMS_MAILER; - - if ( defined( 'WPMS_SET_RETURN_PATH' ) && WPMS_SET_RETURN_PATH ) { - $phpmailer->Sender = $phpmailer->From; - } - - if ( - WPMS_MAILER === 'smtp' && - defined( 'WPMS_SSL' ) && - defined( 'WPMS_SMTP_HOST' ) && - defined( 'WPMS_SMTP_PORT' ) - ) { - $phpmailer->SMTPSecure = WPMS_SSL; - $phpmailer->Host = WPMS_SMTP_HOST; - $phpmailer->Port = WPMS_SMTP_PORT; - - if ( - defined( 'WPMS_SMTP_AUTH' ) && WPMS_SMTP_AUTH && - defined( 'WPMS_SMTP_USER' ) && - defined( 'WPMS_SMTP_PASS' ) - ) { - $phpmailer->SMTPAuth = true; - $phpmailer->Username = WPMS_SMTP_USER; - $phpmailer->Password = WPMS_SMTP_PASS; - } - } - } else { - $option_mailer = get_option( 'mailer' ); - $option_smtp_host = get_option( 'smtp_host' ); - $option_smtp_ssl = get_option( 'smtp_ssl' ); - - // Check that mailer is not blank, and if mailer=smtp, host is not blank. - if ( - ! $option_mailer || - ( 'smtp' === $option_mailer && ! $option_smtp_host ) - ) { - return; - } - - // If the mailer is pepipost, make sure we have a username and password. - if ( 'pepipost' === $option_mailer && ( ! get_option( 'pepipost_user' ) && ! get_option( 'pepipost_pass' ) ) ) { - return; - } - - // Set the mailer type as per config above, this overrides the already called isMail method. - $phpmailer->Mailer = $option_mailer; - - // Set the Sender (return-path) if required. - if ( get_option( 'mail_set_return_path' ) ) { - $phpmailer->Sender = $phpmailer->From; - } - - // Set the SMTPSecure value, if set to none, leave this blank. - $phpmailer->SMTPSecure = $option_smtp_ssl; - if ( 'none' === $option_smtp_ssl ) { - $phpmailer->SMTPSecure = ''; - $phpmailer->SMTPAutoTLS = false; - } - - // If we're sending via SMTP, set the host. - if ( 'smtp' === $option_mailer ) { - // Set the other options. - $phpmailer->Host = $option_smtp_host; - $phpmailer->Port = get_option( 'smtp_port' ); - - // If we're using smtp auth, set the username & password. - if ( get_option( 'smtp_auth' ) === 'true' ) { - $phpmailer->SMTPAuth = true; - $phpmailer->Username = get_option( 'smtp_user' ); - $phpmailer->Password = get_option( 'smtp_pass' ); - } - } elseif ( 'pepipost' === $option_mailer ) { - // Set the Pepipost settings. - $phpmailer->Mailer = 'smtp'; - $phpmailer->Host = 'smtp.pepipost.com'; - $phpmailer->Port = get_option( 'pepipost_port' ); - $phpmailer->SMTPSecure = get_option( 'pepipost_ssl' ) === 'none' ? '' : get_option( 'pepipost_ssl' ); - $phpmailer->SMTPAuth = true; - $phpmailer->Username = get_option( 'pepipost_user' ); - $phpmailer->Password = get_option( 'pepipost_pass' ); - } - } - - // You can add your own options here, see the phpmailer documentation for more info: http://phpmailer.sourceforge.net/docs/. - /** @noinspection PhpUnusedLocalVariableInspection It's passed by reference. */ - $phpmailer = apply_filters( 'wp_mail_smtp_custom_options', $phpmailer ); - } -endif; - -if ( ! function_exists( 'wp_mail_smtp_options_page' ) ) : - /** - * This function outputs the plugin options page. - */ - function wp_mail_smtp_options_page() { - - global $phpmailer; - - // Make sure the PHPMailer class has been instantiated - // (copied verbatim from wp-includes/pluggable.php) - // (Re)create it, if it's gone missing. - if ( ! is_object( $phpmailer ) || ! is_a( $phpmailer, 'PHPMailer' ) ) { - require_once ABSPATH . WPINC . '/class-phpmailer.php'; - $phpmailer = new PHPMailer( true ); - } - - // Send a test mail if necessary. - if ( - isset( $_POST['wpms_action'] ) && - esc_html__( 'Send Test', 'wp-mail-smtp' ) === sanitize_text_field( $_POST['wpms_action'] ) && - is_email( $_POST['to'] ) - ) { - - check_admin_referer( 'test-email' ); - - // Set up the mail variables. - $to = sanitize_text_field( $_POST['to'] ); - /* translators: %s - email address where test mail will be sent to. */ - $subject = 'WP Mail SMTP: ' . sprintf( esc_html__( 'Test mail to %s', 'wp-mail-smtp' ), $to ); - $message = esc_html__( 'This is a test email generated by the WP Mail SMTP WordPress plugin.', 'wp-mail-smtp' ); - - // Set SMTPDebug level, default is 2 (commands + data + connection status). - $phpmailer->SMTPDebug = apply_filters( 'wp_mail_smtp_admin_test_email_smtp_debug', 2 ); - - // Start output buffering to grab smtp debugging output. - ob_start(); - - // Send the test mail. - $result = wp_mail( $to, $subject, $message ); - - // Grab the smtp debugging output. - $smtp_debug = ob_get_clean(); - - // Output the response. - ?> -

-

-
- -

-
- -

-
-
- -
-

- -

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

- ' ); - _e( 'Please Note: You appear to be using a version of WordPress prior to 2.3. Please ignore the From Name field and instead enter Name<email@domain.com> in this field.', 'wp-mail-smtp' ); - print( '' ); - } - ?> -

-
- - - - -

- -

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

- /> - -

-

- /> - -

- - -

- /> - -

-

- ', - '' - ); - ?> -

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

- -

-
-
- -

- -

- -
-

- -

-

- - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - -
-
- - - - - /> -
- - /> -
- - /> - - -

-
-
-
- - - - - /> -
- - /> -
- -

- -

-
-
- - - -
- - - - -

- -

-
- -

- -

-
- - -
-

- -

-

- Pepipost', - '' - ); - ?> -

- - - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - -
- - -
- - - - - - - /> -
- - /> -
- - /> - -
-
- -

- -

-
- - - - - - -

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

-
- -

- -

-
- - - - - ' . esc_html__( 'Settings', 'wp-mail-smtp' ) . ''; - - array_unshift( $links, $settings_link ); - - return $links; -} - -/** - * Check whether the site is using Pepipost or not. - * - * @since 0.11 - * - * @return bool - */ -function wp_mail_smtp_is_pepipost_active() { - return apply_filters( 'wp_mail_smtp_options_is_pepipost_active', 'pepipost' === get_option( 'mailer' ) ); -} - -/** - * Check the current PHP version and display a notice if on unsupported PHP. - * - * @since 0.11 - */ -function wp_mail_smtp_check_php_version() { - - // Display for admins only. - if ( ! is_super_admin() ) { - return; - } - - // Display on Dashboard page only. - if ( isset( $GLOBALS['pagenow'] ) && 'index.php' !== $GLOBALS['pagenow'] ) { - return; - } - - echo '
' . - '

' . - sprintf( - /* translators: %1$s - WP Mail SMTP plugin name; %2$s - opening a link tag; %3$s - closing a link tag. */ - esc_html__( - 'Your site is running an outdated version of PHP that is no longer supported and may cause issues with %1$s. %2$sRead more%3$s for additional information.', - 'wp-mail-smtp' - ), - 'WP Mail SMTP', - '', - '' - ) . - '

' . - '
'; -} - -add_action( 'admin_notices', 'wp_mail_smtp_check_php_version' ); - -// Add an action on phpmailer_init. -add_action( 'phpmailer_init', 'phpmailer_init_smtp' ); - -if ( ! defined( 'WPMS_ON' ) || ! WPMS_ON ) { - // Whitelist our options. - add_filter( 'whitelist_options', 'wp_mail_smtp_whitelist_options' ); - // Add the create pages options. - add_action( 'admin_menu', 'wp_mail_smtp_menus' ); - // Add an activation hook for this plugin. - register_activation_hook( __FILE__, 'wp_mail_smtp_activate' ); - // Adds "Settings" link to the Plugins page. - add_filter( 'plugin_action_links', 'wp_mail_plugin_action_links', 10, 2 ); -} - -// Add filters to replace the mail from name and email address. -add_filter( 'wp_mail_from', 'wp_mail_smtp_mail_from' ); -add_filter( 'wp_mail_from_name', 'wp_mail_smtp_mail_from_name' ); - -load_plugin_textdomain( 'wp-mail-smtp', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' ); diff --git a/wp-content/plugins/wp-mail-smtp/wp_mail_smtp.php b/wp-content/plugins/wp-mail-smtp/wp_mail_smtp.php index 620d75b..a3202b4 100644 --- a/wp-content/plugins/wp-mail-smtp/wp_mail_smtp.php +++ b/wp-content/plugins/wp-mail-smtp/wp_mail_smtp.php @@ -1,7 +1,7 @@ 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 @@ -38,11 +38,15 @@ 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', 'sendinblue', 'mailgun', 'sendgrid', 'gmail', 'smtp'. +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', '' ); @@ -142,26 +146,82 @@ if ( ! function_exists( 'wp_mail_smtp_check_pro_loading_allowed' ) ) { } } +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/' + ); + ?> +

+
+ + =' ) ) { - require_once dirname( __FILE__ ) . '/wp-mail-smtp.php'; +if ( version_compare( phpversion(), WPMS_PHP_VER, '<' ) ) { + add_action( 'admin_notices', 'wp_mail_smtp_insecure_php_version_notice' ); return; } -/** - * PHP 5.2 only. - */ -require_once dirname( __FILE__ ) . '/wp-mail-smtp-0.11.2.php'; +require_once dirname( __FILE__ ) . '/wp-mail-smtp.php';